first commit

This commit is contained in:
Muhammad Herdy Iskandar
2024-07-26 10:33:44 +00:00
commit 7117a42b13
399 changed files with 19527 additions and 0 deletions

View File

@@ -0,0 +1,92 @@
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\AttendanceResource\Pages;
use App\Filament\Resources\AttendanceResource\RelationManagers;
use App\Models\Attendance;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class AttendanceResource extends Resource
{
protected static ?string $model = Attendance::class;
protected static ?string $navigationIcon = 'eva-calendar-outline';
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\Select::make('student_id')
->relationship('student', 'name')
->required(),
Forms\Components\Select::make('theme_id')
->relationship('theme', 'name')
->required(),
Forms\Components\DateTimePicker::make('check_in')
->required(),
Forms\Components\DateTimePicker::make('check_out')
->required(),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('student_id')
->numeric()
->sortable(),
Tables\Columns\TextColumn::make('theme_id')
->numeric()
->sortable(),
Tables\Columns\TextColumn::make('check_in')
->dateTime()
->sortable(),
Tables\Columns\TextColumn::make('check_out')
->dateTime()
->sortable(),
Tables\Columns\TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
Tables\Columns\TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListAttendances::route('/'),
'create' => Pages\CreateAttendance::route('/create'),
'edit' => Pages\EditAttendance::route('/{record}/edit'),
];
}
}

View File

@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\AttendanceResource\Pages;
use App\Filament\Resources\AttendanceResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateAttendance extends CreateRecord
{
protected static string $resource = AttendanceResource::class;
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\AttendanceResource\Pages;
use App\Filament\Resources\AttendanceResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditAttendance extends EditRecord
{
protected static string $resource = AttendanceResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\AttendanceResource\Pages;
use App\Filament\Resources\AttendanceResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListAttendances extends ListRecords
{
protected static string $resource = AttendanceResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}

View File

@@ -0,0 +1,94 @@
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\CofasilitatorResource\Pages;
use App\Filament\Resources\CofasilitatorResource\RelationManagers;
use App\Models\Cofasilitator;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class CofasilitatorResource extends Resource
{
protected static ?string $model = Cofasilitator::class;
protected static ?string $navigationIcon = 'iconpark-people';
protected static ?string $navigationGroup = 'Data Master';
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('name')
->required()
->maxLength(255),
Forms\Components\TextInput::make('nim')
->required()
->maxLength(255),
Forms\Components\TextInput::make('email')
->email()
->required()
->maxLength(255),
Forms\Components\TextInput::make('phone')
->tel()
->maxLength(255)
->default(null),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('name')
->searchable(),
Tables\Columns\TextColumn::make('nim')
->searchable(),
Tables\Columns\TextColumn::make('email')
->searchable(),
Tables\Columns\TextColumn::make('phone')
->searchable(),
Tables\Columns\TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
Tables\Columns\TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListCofasilitators::route('/'),
'create' => Pages\CreateCofasilitator::route('/create'),
'edit' => Pages\EditCofasilitator::route('/{record}/edit'),
];
}
}

View File

@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\CofasilitatorResource\Pages;
use App\Filament\Resources\CofasilitatorResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateCofasilitator extends CreateRecord
{
protected static string $resource = CofasilitatorResource::class;
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\CofasilitatorResource\Pages;
use App\Filament\Resources\CofasilitatorResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditCofasilitator extends EditRecord
{
protected static string $resource = CofasilitatorResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\CofasilitatorResource\Pages;
use App\Filament\Resources\CofasilitatorResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListCofasilitators extends ListRecords
{
protected static string $resource = CofasilitatorResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}

View File

@@ -0,0 +1,77 @@
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\FacultyResource\Pages;
use App\Filament\Resources\FacultyResource\RelationManagers;
use App\Models\Faculty;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class FacultyResource extends Resource
{
protected static ?string $model = Faculty::class;
protected static ?string $navigationIcon = 'fas-building-columns';
protected static ?string $navigationGroup = 'Instance';
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('name')
->required()
->maxLength(255),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('name')
->searchable(),
Tables\Columns\TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
Tables\Columns\TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListFaculties::route('/'),
'create' => Pages\CreateFaculty::route('/create'),
'edit' => Pages\EditFaculty::route('/{record}/edit'),
];
}
}

View File

@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\FacultyResource\Pages;
use App\Filament\Resources\FacultyResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateFaculty extends CreateRecord
{
protected static string $resource = FacultyResource::class;
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\FacultyResource\Pages;
use App\Filament\Resources\FacultyResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditFaculty extends EditRecord
{
protected static string $resource = FacultyResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\FacultyResource\Pages;
use App\Filament\Resources\FacultyResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListFaculties extends ListRecords
{
protected static string $resource = FacultyResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}

View File

@@ -0,0 +1,83 @@
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\MajorResource\Pages;
use App\Filament\Resources\MajorResource\RelationManagers;
use App\Models\Major;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class MajorResource extends Resource
{
protected static ?string $model = Major::class;
protected static ?string $navigationIcon = 'feathericon-target';
protected static ?string $navigationGroup = 'Instance';
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\Select::make('faculty_id')
->relationship('faculty', 'name')
->required(),
Forms\Components\TextInput::make('name')
->required()
->maxLength(255),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('name')
->searchable(),
Tables\Columns\TextColumn::make('faculty_id')
->numeric()
->sortable(),
Tables\Columns\TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
Tables\Columns\TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListMajors::route('/'),
'create' => Pages\CreateMajor::route('/create'),
'edit' => Pages\EditMajor::route('/{record}/edit'),
];
}
}

View File

@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\MajorResource\Pages;
use App\Filament\Resources\MajorResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateMajor extends CreateRecord
{
protected static string $resource = MajorResource::class;
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\MajorResource\Pages;
use App\Filament\Resources\MajorResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditMajor extends EditRecord
{
protected static string $resource = MajorResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\MajorResource\Pages;
use App\Filament\Resources\MajorResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListMajors extends ListRecords
{
protected static string $resource = MajorResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}

View File

@@ -0,0 +1,83 @@
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\PeletonResource\Pages;
use App\Filament\Resources\PeletonResource\RelationManagers;
use App\Models\Peleton;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class PeletonResource extends Resource
{
protected static ?string $model = Peleton::class;
protected static ?string $navigationIcon = 'fas-group-arrows-rotate';
protected static ?string $navigationGroup = 'Data Master';
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('name')
->required()
->maxLength(255),
Forms\Components\Select::make('cofasilitator_id')
->relationship('cofasilitator', 'name')
->required(),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('name')
->searchable(),
Tables\Columns\TextColumn::make('cofasilitator.name')
->label('Cofasilitator')
->sortable(),
Tables\Columns\TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
Tables\Columns\TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListPeletons::route('/'),
'create' => Pages\CreatePeleton::route('/create'),
'edit' => Pages\EditPeleton::route('/{record}/edit'),
];
}
}

View File

@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\PeletonResource\Pages;
use App\Filament\Resources\PeletonResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreatePeleton extends CreateRecord
{
protected static string $resource = PeletonResource::class;
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\PeletonResource\Pages;
use App\Filament\Resources\PeletonResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditPeleton extends EditRecord
{
protected static string $resource = PeletonResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}

View File

@@ -0,0 +1,20 @@
<?php
namespace App\Filament\Resources\PeletonResource\Pages;
use App\Filament\Resources\PeletonResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListPeletons extends ListRecords
{
protected static string $resource = PeletonResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make()
->label('New Peleton'),
];
}
}

View File

@@ -0,0 +1,160 @@
<?php
namespace App\Filament\Resources;
use Filament\Forms;
use Filament\Tables;
use App\Models\Student;
use Filament\Forms\Form;
use Actions\CreateAction;
use Filament\Tables\Table;
use App\Imports\MyStudentImport;
use Filament\Resources\Resource;
use Filament\Actions\ActionGroup;
use Filament\Support\Enums\ActionSize;
use pxlrbt\FilamentExcel\Columns\Column;
use Illuminate\Database\Eloquent\Builder;
use EightyNine\ExcelImport\ExcelImportAction;
use pxlrbt\FilamentExcel\Exports\ExcelExport;
use App\Filament\Resources\StudentResource\Pages;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use pxlrbt\FilamentExcel\Actions\Tables\ExportAction;
use pxlrbt\FilamentExcel\Actions\Tables\ExportBulkAction;
use App\Filament\Resources\StudentResource\RelationManagers;
class StudentResource extends Resource
{
protected static ?string $model = Student::class;
protected static ?string $navigationIcon = 'fas-people-group';
protected static ?string $navigationGroup = 'Data Master';
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('name')
->required()
->maxLength(255),
Forms\Components\TextInput::make('nim')
->required()
->maxLength(255),
Forms\Components\FileUpload::make('image')
->image(),
Forms\Components\Select::make('major_id')
->relationship('major', 'name')
->required(),
Forms\Components\TextInput::make('email')
->email()
->required()
->maxLength(255),
Forms\Components\TextInput::make('phone')
->tel()
->maxLength(255)
->default(null),
Forms\Components\Select::make('peleton_id')
->relationship('peleton', 'name')
->required(),
]);
}
protected function getHeaderActions(): array
{
return [
ExcelImportAction::make()
->slideOver()
->color("primary")
->use(MyStudentImport::class),
CreateAction::make(),
];
}
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('name')
->searchable(),
Tables\Columns\TextColumn::make('nim')
->searchable(),
Tables\Columns\ImageColumn::make('qr')
->defaultImageUrl(fn(Student $record) => url('/qr/student\/') . $record->nim),
Tables\Columns\TextColumn::make('major.name')
->description(fn(Student $record) => $record->major->faculty->name)
->label('Major')
->sortable(),
Tables\Columns\TextColumn::make('email')
->searchable(),
Tables\Columns\TextColumn::make('phone')
->searchable(),
Tables\Columns\TextColumn::make('peleton.nama')
->label('Peleton')
->sortable(),
Tables\Columns\TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
Tables\Columns\TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
ExportBulkAction::make()->exports([
ExcelExport::make()->withColumns([
Column::make('id')
->heading('ID'),
Column::make('name')
->heading('Name'),
Column::make('nim')
->heading('NIM'),
Column::make('image')
->heading('Image'),
Column::make('major_id')
->heading('Major ID'),
Column::make('email')
->heading('Email'),
Column::make('phone')
// ->format(DataType::TYPE_STRING)
->heading('Phone'),
Column::make('peleton_id')
->heading('Peleton ID'),
]),
]),
]);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListStudents::route('/'),
'create' => Pages\CreateStudent::route('/create'),
'edit' => Pages\EditStudent::route('/{record}/edit'),
// ActionGroup::make([
// 'QR' => Pages\QR::route('/qr'),
// ])
// ->label('More actions')
// ->icon('heroicon-m-ellipsis-vertical')
// ->size(ActionSize::Small)
// ->color('primary')
// ->button()
];
}
}

View File

@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\StudentResource\Pages;
use App\Filament\Resources\StudentResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateStudent extends CreateRecord
{
protected static string $resource = StudentResource::class;
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\StudentResource\Pages;
use App\Filament\Resources\StudentResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditStudent extends EditRecord
{
protected static string $resource = StudentResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}

View File

@@ -0,0 +1,103 @@
<?php
namespace App\Filament\Resources\StudentResource\Pages;
use Filament\Actions;
use App\Models\Student;
use Filament\Actions\ActionGroup;
use Filament\Actions\CreateAction;
use pxlrbt\FilamentExcel\Columns\Column;
use Filament\Resources\Pages\ListRecords;
use App\Filament\Resources\StudentResource;
use PhpOffice\PhpSpreadsheet\Cell\DataType;
use pxlrbt\FilamentExcel\Exports\ExcelExport;
use Konnco\FilamentImport\Actions\ImportField;
use Konnco\FilamentImport\Actions\ImportAction;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use pxlrbt\FilamentExcel\Actions\Pages\ExportAction;
use Filament\Support\Enums\ActionSize;
class ListStudents extends ListRecords
{
protected static string $resource = StudentResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make()
->label('New Student'),
ImportAction::make()
->handleRecordCreation(function($data){
return Student::create($data);
}),
// ->uniqueField('name')
// ->fields([
// ImportField::make('id')
// ->label('ID')
// ->required(),
// ImportField::make('name')
// ->required(),
// ImportField::make('nim')
// ->required(),
// // ->label('Category name'),
// ImportField::make('image')
// ->required(),
// ImportField::make('major.id')
// ->label('Major ID')
// ->required(),
// ImportField::make('email')
// ->required(),
// ImportField::make('phone')
// ->required(),
// ImportField::make('peleton.id')
// ->label('Peleton ID')
// ->required(),
// ]),
// ->handleRecordCreation(function(array $data) {
// if ($category = StudentResource::getEloquentQuery()->where('name', $data['category']['name'])->first()) {
// return Item::create([
// 'name' => $data['name'],
// 'current_stock' => $data['stock'],
// 'category_id' => $category->id,
// ]);
// }
// return new Item();
// }),
ExportAction::make()
->exports([
ExcelExport::make()
// ->fromTable()
->withFilename(fn ($resource) => $resource::getModelLabel() . '-' . date('Y-m-d'))
->withWriterType(\Maatwebsite\Excel\Excel::XLSX)
->withColumns([
Column::make('id')
->heading('ID'),
Column::make('name')
->heading('Name'),
Column::make('nim')
->heading('NIM'),
Column::make('image')
->heading('Image'),
Column::make('major_id')
->heading('Major ID'),
Column::make('email')
->heading('Email'),
Column::make('phone')
// ->format(DataType::TYPE_STRING)
->heading('Phone'),
Column::make('peleton_id')
->heading('Peleton ID'),
])
]),
ActionGroup::make([
// Array of actions
])
->label('More actions')
->icon('heroicon-m-ellipsis-vertical')
->size(ActionSize::Small)
->color('primary')
->button()
];
}
}

View File

@@ -0,0 +1,80 @@
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\ThemeResource\Pages;
use App\Filament\Resources\ThemeResource\RelationManagers;
use App\Models\Theme;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class ThemeResource extends Resource
{
protected static ?string $model = Theme::class;
protected static ?string $navigationIcon = 'eos-activate-subscriptions-o';
protected static ?string $navigationGroup = 'Karisma';
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('name')
->required()
->maxLength(255),
Forms\Components\TextInput::make('year')
->required(),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('name')
->searchable(),
Tables\Columns\TextColumn::make('year'),
Tables\Columns\TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
Tables\Columns\TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListThemes::route('/'),
'create' => Pages\CreateTheme::route('/create'),
'edit' => Pages\EditTheme::route('/{record}/edit'),
];
}
}

View File

@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\ThemeResource\Pages;
use App\Filament\Resources\ThemeResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateTheme extends CreateRecord
{
protected static string $resource = ThemeResource::class;
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\ThemeResource\Pages;
use App\Filament\Resources\ThemeResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditTheme extends EditRecord
{
protected static string $resource = ThemeResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\ThemeResource\Pages;
use App\Filament\Resources\ThemeResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListThemes extends ListRecords
{
protected static string $resource = ThemeResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}

View File

@@ -0,0 +1,32 @@
<?php
namespace App\Filament\Widgets;
use App\Models\Student;
use App\Models\Cofasilitator;
use Filament\Widgets\StatsOverviewWidget\Stat;
use Filament\Widgets\StatsOverviewWidget as BaseWidget;
class StatsOverview extends BaseWidget
{
protected function getStats(): array
{
$mentors = Cofasilitator::count();
$students = Student::count();
$averageTimeOnPage = '3:12';
return [
Stat::make('Mentors', $mentors)
->icon('heroicon-o-users')
->color('success')
->description('Last 30 days'),
Stat::make('Students', $students)
->icon('heroicon-o-user-group')
->color('primary')
->description('Last 30 days'),
Stat::make('Average time on page', '3:12')
->icon('heroicon-o-clock')
->color('warning')
->description('Last 30 days'),
];
}
}