Add member index
This commit is contained in:
parent
7dfad87896
commit
6054ee4add
|
@ -59,7 +59,7 @@ class InitializeMembers {
|
|||
'active' => $data->status == 'Aktiv'
|
||||
];
|
||||
|
||||
$m = new \App\Member($attributes);
|
||||
$m = new \App\Member\Member($attributes);
|
||||
|
||||
$m->gender()->associate($gender);
|
||||
$m->country()->associate($country);
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace App;
|
||||
namespace App\Member;
|
||||
|
||||
use App\Collections\OwnCollection;
|
||||
use App\Events\MemberCreated;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
|
@ -27,11 +26,15 @@ class Member extends Model
|
|||
'nami_id' => 'integer',
|
||||
];
|
||||
|
||||
public function newCollection(array $models = [])
|
||||
{
|
||||
return new OwnCollection($models);
|
||||
public function scopeSearch($q, $text) {
|
||||
return $q->where('firstname', 'LIKE', '%'.$text.'%')
|
||||
->orWhere('lastname', 'LIKE', '%'.$text.'%')
|
||||
->orWhere('address', 'LIKE', '%'.$text.'%')
|
||||
->orWhere('zip', 'LIKE', '%'.$text.'%')
|
||||
->orWhere('city', 'LIKE', '%'.$text.'%');
|
||||
}
|
||||
|
||||
|
||||
//----------------------------------- Getters -----------------------------------
|
||||
public function getFullnameAttribute() {
|
||||
return $this->firstname.' '.$this->lastname;
|
||||
|
@ -65,21 +68,21 @@ class Member extends Model
|
|||
|
||||
public function way()
|
||||
{
|
||||
return $this->belongsTo(Way::class);
|
||||
return $this->belongsTo(App\Way::class);
|
||||
}
|
||||
|
||||
public function nationality()
|
||||
{
|
||||
return $this->belongsTo(Nationality::class);
|
||||
return $this->belongsTo(App\Nationality::class);
|
||||
}
|
||||
|
||||
public function memberships()
|
||||
{
|
||||
return $this->hasMany(Membership::class);
|
||||
return $this->hasMany(App\Membership::class);
|
||||
}
|
||||
|
||||
public function subscription()
|
||||
{
|
||||
return $this->belongsTo(Subscription::class);
|
||||
return $this->belongsTo(App\Subscription::class);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
|
||||
namespace App\Member;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class MemberController extends Controller
|
||||
{
|
||||
public function index(Request $request) {
|
||||
return \Inertia::render('Member/Index', [
|
||||
'data' => MemberResource::collection(Member::search($request->query('search', null))->get())
|
||||
]);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
<?php
|
||||
|
||||
namespace App\Member;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class MemberResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return parent::toArray($request);
|
||||
}
|
||||
}
|
|
@ -15,6 +15,8 @@ class AppServiceProvider extends ServiceProvider
|
|||
public function register()
|
||||
{
|
||||
JsonResource::withoutWrapping();
|
||||
|
||||
\Inertia::share('search', request()->query('search', ''));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -3124,8 +3124,7 @@
|
|||
"decode-uri-component": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
|
||||
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
|
||||
"dev": true
|
||||
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
|
||||
},
|
||||
"deep-equal": {
|
||||
"version": "1.1.1",
|
||||
|
@ -8312,6 +8311,16 @@
|
|||
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
|
||||
"dev": true
|
||||
},
|
||||
"query-string": {
|
||||
"version": "6.12.1",
|
||||
"resolved": "https://registry.npmjs.org/query-string/-/query-string-6.12.1.tgz",
|
||||
"integrity": "sha512-OHj+zzfRMyj3rmo/6G8a5Ifvw3AleL/EbcHMD27YA31Q+cO5lfmQxECkImuNVjcskLcvBRVHNAB3w6udMs1eAA==",
|
||||
"requires": {
|
||||
"decode-uri-component": "^0.2.0",
|
||||
"split-on-first": "^1.0.0",
|
||||
"strict-uri-encode": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"querystring": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
|
||||
|
@ -9437,6 +9446,11 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"split-on-first": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz",
|
||||
"integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw=="
|
||||
},
|
||||
"split-string": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
|
||||
|
@ -9540,6 +9554,11 @@
|
|||
"integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==",
|
||||
"dev": true
|
||||
},
|
||||
"strict-uri-encode": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
|
||||
"integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY="
|
||||
},
|
||||
"string-width": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
"js-modules": "file:resources/js/libs/js-modules",
|
||||
"laravel-echo": "^1.7.0",
|
||||
"postcss-import": "^12.0.1",
|
||||
"query-string": "^6.12.1",
|
||||
"socket.io-client": "^2.3.0",
|
||||
"tailwindcss": "^1.2.0",
|
||||
"vue-inputmask": "^0.2.1",
|
||||
|
|
|
@ -3,6 +3,7 @@ export default {
|
|||
open: false,
|
||||
links: [
|
||||
{ icon: 'home', href: '/', title: 'Dashboard' },
|
||||
{ icon: 'user', href: '/member', title: 'Mitglieder' },
|
||||
]
|
||||
},
|
||||
footer: {
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
<template>
|
||||
<div>
|
||||
<v-table :headers="[
|
||||
{text: 'Nachname', value: 'lastname', align: 'left'},
|
||||
{text: 'Vorname', value: 'firstname', align: 'left'},
|
||||
{text: 'Adresse', value: 'address', align: 'left'},
|
||||
]" :items="data" actions>
|
||||
<template slot="Nachname" slot-scope="{item}">
|
||||
{{item.lastname}}
|
||||
</template>
|
||||
<template slot="Vorname" slot-scope="{item}">
|
||||
{{item.firstname}}
|
||||
</template>
|
||||
<template slot="Adresse" slot-scope="{item}">
|
||||
{{item.address}} {{item.zip}}, {{item.city}}
|
||||
</template>
|
||||
<template slot="Aktion" slot-scope="{item}"></template>
|
||||
</v-table>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import App from '../../layouts/App';
|
||||
|
||||
export default {
|
||||
layout: App,
|
||||
|
||||
props: ['data']
|
||||
}
|
||||
</script>
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
use App\Member\MemberController;
|
||||
use App\Http\Controllers\HomeController;
|
||||
use App\Initialize\InitializeController;
|
||||
|
||||
|
@ -10,5 +11,6 @@ Route::group(['namespace' => 'App\\Http\\Controllers'], function() {
|
|||
Route::group(['middleware' => 'auth:web'], function () {
|
||||
Route::get('/', HomeController::class)->name('home');
|
||||
Route::resource('initialize', InitializeController::class);
|
||||
Route::resource('member', MemberController::class);
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue