Skip to content

Commit f03494f

Browse files
authored
Merge pull request #5 from giauphan/feat/pannel
[Wip] Feat pannel admin
2 parents a9b98b5 + f599892 commit f03494f

File tree

40 files changed

+1319
-4
lines changed

40 files changed

+1319
-4
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
<?php
2+
3+
namespace App\Filament\Resources;
4+
5+
use App\Filament\Resources\PermissionResource\Pages;
6+
use App\Models\Permission;
7+
use Filament\Forms;
8+
use Filament\Forms\Form;
9+
use Filament\Resources\Resource;
10+
use Filament\Tables;
11+
use Filament\Tables\Table;
12+
13+
class PermissionResource extends Resource
14+
{
15+
protected static ?string $model = Permission::class;
16+
17+
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
18+
19+
public static function form(Form $form): Form
20+
{
21+
return $form
22+
->schema([
23+
Forms\Components\TextInput::make('name')
24+
->required(),
25+
Forms\Components\TextInput::make('guard_name')
26+
->required(),
27+
]);
28+
}
29+
30+
public static function table(Table $table): Table
31+
{
32+
return $table
33+
->columns([
34+
Tables\Columns\TextColumn::make('name')
35+
->searchable(),
36+
Tables\Columns\TextColumn::make('guard_name')
37+
->searchable(),
38+
Tables\Columns\TextColumn::make('created_at')
39+
->dateTime()
40+
->sortable()
41+
->toggleable(isToggledHiddenByDefault: true),
42+
Tables\Columns\TextColumn::make('updated_at')
43+
->dateTime()
44+
->sortable()
45+
->toggleable(isToggledHiddenByDefault: true),
46+
])
47+
->filters([
48+
//
49+
])
50+
->actions([
51+
Tables\Actions\EditAction::make(),
52+
])
53+
->bulkActions([
54+
Tables\Actions\BulkActionGroup::make([
55+
Tables\Actions\DeleteBulkAction::make(),
56+
]),
57+
]);
58+
}
59+
60+
public static function getRelations(): array
61+
{
62+
return [
63+
//
64+
];
65+
}
66+
67+
public static function getPages(): array
68+
{
69+
return [
70+
'index' => Pages\ListPermissions::route('/'),
71+
'create' => Pages\CreatePermission::route('/create'),
72+
'edit' => Pages\EditPermission::route('/{record}/edit'),
73+
];
74+
}
75+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php
2+
3+
namespace App\Filament\Resources\PermissionResource\Pages;
4+
5+
use App\Filament\Resources\PermissionResource;
6+
use Filament\Resources\Pages\CreateRecord;
7+
8+
class CreatePermission extends CreateRecord
9+
{
10+
protected static string $resource = PermissionResource::class;
11+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace App\Filament\Resources\PermissionResource\Pages;
4+
5+
use App\Filament\Resources\PermissionResource;
6+
use Filament\Actions;
7+
use Filament\Resources\Pages\EditRecord;
8+
9+
class EditPermission extends EditRecord
10+
{
11+
protected static string $resource = PermissionResource::class;
12+
13+
protected function getHeaderActions(): array
14+
{
15+
return [
16+
Actions\DeleteAction::make(),
17+
];
18+
}
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace App\Filament\Resources\PermissionResource\Pages;
4+
5+
use App\Filament\Resources\PermissionResource;
6+
use Filament\Actions;
7+
use Filament\Resources\Pages\ListRecords;
8+
9+
class ListPermissions extends ListRecords
10+
{
11+
protected static string $resource = PermissionResource::class;
12+
13+
protected function getHeaderActions(): array
14+
{
15+
return [
16+
Actions\CreateAction::make(),
17+
];
18+
}
19+
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
<?php
2+
3+
namespace App\Filament\Resources;
4+
5+
use App\Filament\Resources\RoleResource\Pages;
6+
use App\Models\Role;
7+
use Filament\Forms;
8+
use Filament\Forms\Form;
9+
use Filament\Resources\Resource;
10+
use Filament\Tables;
11+
use Filament\Tables\Table;
12+
13+
class RoleResource extends Resource
14+
{
15+
protected static ?string $model = Role::class;
16+
17+
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
18+
19+
public static function form(Form $form): Form
20+
{
21+
return $form
22+
->schema([
23+
Forms\Components\TextInput::make('name')
24+
->required(),
25+
Forms\Components\TextInput::make('guard_name')
26+
->default(config('auth.defaults.guard'))
27+
->required(),
28+
]);
29+
}
30+
31+
public static function table(Table $table): Table
32+
{
33+
return $table
34+
->columns([
35+
Tables\Columns\TextColumn::make('name')
36+
->searchable(),
37+
Tables\Columns\TextColumn::make('guard_name')
38+
->searchable(),
39+
Tables\Columns\TextColumn::make('created_at')
40+
->dateTime()
41+
->sortable()
42+
->toggleable(isToggledHiddenByDefault: true),
43+
Tables\Columns\TextColumn::make('updated_at')
44+
->dateTime()
45+
->sortable()
46+
->toggleable(isToggledHiddenByDefault: true),
47+
])
48+
->filters([
49+
//
50+
])
51+
->actions([
52+
Tables\Actions\EditAction::make(),
53+
])
54+
->bulkActions([
55+
Tables\Actions\BulkActionGroup::make([
56+
Tables\Actions\DeleteBulkAction::make(),
57+
]),
58+
]);
59+
}
60+
61+
public static function getRelations(): array
62+
{
63+
return [
64+
//
65+
];
66+
}
67+
68+
public static function getPages(): array
69+
{
70+
return [
71+
'index' => Pages\ListRoles::route('/'),
72+
'create' => Pages\CreateRole::route('/create'),
73+
'edit' => Pages\EditRole::route('/{record}/edit'),
74+
];
75+
}
76+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php
2+
3+
namespace App\Filament\Resources\RoleResource\Pages;
4+
5+
use App\Filament\Resources\RoleResource;
6+
use Filament\Resources\Pages\CreateRecord;
7+
8+
class CreateRole extends CreateRecord
9+
{
10+
protected static string $resource = RoleResource::class;
11+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace App\Filament\Resources\RoleResource\Pages;
4+
5+
use App\Filament\Resources\RoleResource;
6+
use Filament\Actions;
7+
use Filament\Resources\Pages\EditRecord;
8+
9+
class EditRole extends EditRecord
10+
{
11+
protected static string $resource = RoleResource::class;
12+
13+
protected function getHeaderActions(): array
14+
{
15+
return [
16+
Actions\DeleteAction::make(),
17+
];
18+
}
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace App\Filament\Resources\RoleResource\Pages;
4+
5+
use App\Filament\Resources\RoleResource;
6+
use Filament\Actions;
7+
use Filament\Resources\Pages\ListRecords;
8+
9+
class ListRoles extends ListRecords
10+
{
11+
protected static string $resource = RoleResource::class;
12+
13+
protected function getHeaderActions(): array
14+
{
15+
return [
16+
Actions\CreateAction::make(),
17+
];
18+
}
19+
}
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
<?php
2+
3+
namespace App\Filament\Resources;
4+
5+
use App\Filament\Resources\UserResource\Pages;
6+
use App\Filament\Resources\UserResource\Pages\CreateUser;
7+
use App\Models\User;
8+
use Filament\Forms;
9+
use Filament\Forms\Components\Select;
10+
use Filament\Forms\Form;
11+
use Filament\Pages\Page;
12+
use Filament\Resources\Resource;
13+
use Filament\Tables;
14+
use Filament\Tables\Table;
15+
use Illuminate\Support\Facades\Hash;
16+
17+
class UserResource extends Resource
18+
{
19+
protected static ?string $model = User::class;
20+
21+
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
22+
23+
public static function form(Form $form): Form
24+
{
25+
return $form
26+
->schema([
27+
Forms\Components\TextInput::make('name')
28+
->required(),
29+
Forms\Components\TextInput::make('email')
30+
->email()
31+
->required(),
32+
Forms\Components\DateTimePicker::make('email_verified_at'),
33+
Forms\Components\TextInput::make('password')
34+
->password()
35+
->dehydrateStateUsing(fn ($state) => Hash::make($state))
36+
->dehydrated(fn (?string $state) => filled($state))
37+
->required(fn (Page $livewire) => ($livewire instanceof CreateUser))
38+
->minLength(6),
39+
Select::make('roles')
40+
->relationship('roles', 'name')
41+
->multiple()
42+
->preload(),
43+
]);
44+
}
45+
46+
public static function table(Table $table): Table
47+
{
48+
return $table
49+
->columns([
50+
Tables\Columns\TextColumn::make('name')
51+
->searchable(),
52+
Tables\Columns\TextColumn::make('email')
53+
->searchable(),
54+
Tables\Columns\TextColumn::make('email_verified_at')
55+
->dateTime()
56+
->sortable(),
57+
Tables\Columns\TextColumn::make('created_at')
58+
->dateTime()
59+
->sortable()
60+
->toggleable(isToggledHiddenByDefault: true),
61+
Tables\Columns\TextColumn::make('updated_at')
62+
->dateTime()
63+
->sortable()
64+
->toggleable(isToggledHiddenByDefault: true),
65+
])
66+
->filters([
67+
//
68+
])
69+
->actions([
70+
Tables\Actions\EditAction::make(),
71+
])
72+
->bulkActions([
73+
Tables\Actions\BulkActionGroup::make([
74+
Tables\Actions\DeleteBulkAction::make(),
75+
]),
76+
]);
77+
}
78+
79+
public static function getRelations(): array
80+
{
81+
return [
82+
//
83+
];
84+
}
85+
86+
public static function getPages(): array
87+
{
88+
return [
89+
'index' => Pages\ListUsers::route('/'),
90+
'create' => Pages\CreateUser::route('/create'),
91+
'edit' => Pages\EditUser::route('/{record}/edit'),
92+
];
93+
}
94+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php
2+
3+
namespace App\Filament\Resources\UserResource\Pages;
4+
5+
use App\Filament\Resources\UserResource;
6+
use Filament\Resources\Pages\CreateRecord;
7+
8+
class CreateUser extends CreateRecord
9+
{
10+
protected static string $resource = UserResource::class;
11+
}

0 commit comments

Comments
 (0)