%PDF- %PDF-
Direktori : /var/www/html/camillo/camillo-api-master/app/Nova/ |
Current File : /var/www/html/camillo/camillo-api-master/app/Nova/Classroom.php |
<?php namespace App\Nova; use App\Enums\UsertypeEnum; use Commit\Time\Time; use Laraning\NovaTimeField\TimeField; use Laravel\Nova\Fields\BelongsTo; use Laravel\Nova\Fields\BelongsToMany; use Laravel\Nova\Fields\Boolean; use Laravel\Nova\Fields\ID; use Illuminate\Http\Request; use Laravel\Nova\Fields\Text; use Laravel\Nova\Http\Requests\NovaRequest; use Laravel\Nova\Panel; class Classroom extends Resource { /** * The model the resource corresponds to. * * @var string */ public static $model = 'App\Models\Classroom'; public function title() { $user = auth()->user(); if($user->usertype->role === UsertypeEnum::ADMIN){ return $this->class_name . "(" . $this->schoolyear->description . " - " . $this->schoolyear->institute->name . ")"; } return $this->class_name . "(" . $this->schoolyear->description . ")"; } public static function label() { return __('Classrooms'); } public static function singularLabel() { return __('Classroom'); } /** * The columns that should be searched. * * @var array */ public static $search = [ 'id', 'class_name' ]; public static $with = [ 'institute', 'schoolyear', 'minors' ]; /** * Get the fields displayed by the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function fields(Request $request) { return [ ID::make()->sortable()->canSee(function($request){ return $request->user()->usertype->role === UsertypeEnum::ADMIN; }), Text::make(__('Class name*'), 'class_name') ->rules('required') ->sortable(), BelongsTo::make(__('Schoolyear*'), 'schoolyear', Schoolyear::class) ->rules('required') ->sortable(), BelongsTo::make(__('Institute*'), 'institute', Institute::class) ->rules('required') ->sortable(), TimeField::make(__('Opening time*'), 'arrival_time') ->rules('required'), TimeField::make(__('Closing time*'), 'leaving_time') ->rules('required'), new Panel('Open Days', $this->openDays()), BelongsToMany::make(__('Minors'), 'minors', Minor::class) ->fields(function() { return array( Boolean::make(__('Billable'), 'active')->canSee(function($request){ return $request->user()->usertype->role === UsertypeEnum::ADMIN; })->displayUsing(function(){ return isset($this->pivot) ? $this->pivot->active : '-'; }), TimeField::make(__('Minor Arrival time'), 'arrival_time') ->displayUsing(function(){ return isset($this->pivot) ? $this->pivot->arrival_time : '-'; })->rules('required'), ); }) ->searchable(), ]; } protected function openDays() { return [ Boolean::make(__('Open on Monday'), 'mon')->hideFromIndex(), Boolean::make(__('Open on Tuesday'), 'tue')->hideFromIndex(), Boolean::make(__('Open on Wednesday'), 'wed')->hideFromIndex(), Boolean::make(__('Open on Thursday'), 'thu')->hideFromIndex(), Boolean::make(__('Open on Friday'), 'fri')->hideFromIndex(), Boolean::make(__('Open on Saturday'), 'sat')->hideFromIndex(), Boolean::make(__('Open on Sunday'), 'sun')->hideFromIndex(), ]; } /** * Get the cards available for the request. * * @param \Illuminate\Http\Request $request * @return array */ public function cards(Request $request) { return []; } /** * Get the filters available for the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function filters(Request $request) { return []; } /** * Get the lenses available for the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function lenses(Request $request) { return []; } /** * Get the actions available for the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function actions(Request $request) { return []; } }