diff --git a/Modules/CetakLabel/Config/database.php b/Modules/CetakLabel/Config/database.php new file mode 100644 index 0000000..efd4e79 --- /dev/null +++ b/Modules/CetakLabel/Config/database.php @@ -0,0 +1,112 @@ + env('DB_CONNECTION', 'mysql'), + + /* + |-------------------------------------------------------------------------- + | Database Connections + |-------------------------------------------------------------------------- + | + | Here are each of the database connections setup for your application. + | Of course, examples of configuring each database platform that is + | supported by Laravel is shown below to make development simple. + | + | + | All database work in Laravel is done through the PHP PDO facilities + | so make sure you have the driver for your particular database of + | choice installed on your machine before you begin development. + | + */ + + 'connections' => [ + 'cetaklabel' => [ + 'driver' => 'mysql', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => 'cetak', + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => 'utf8mb4', + 'collation' => 'utf8mb4_unicode_ci', + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Migration Repository Table + |-------------------------------------------------------------------------- + | + | This table keeps track of all the migrations that have already run for + | your application. Using this information, we can determine which of + | the migrations on disk haven't actually been run in the database. + | + */ + + 'migrations' => 'migrations', + + /* + |-------------------------------------------------------------------------- + | Redis Databases + |-------------------------------------------------------------------------- + | + | Redis is an open source, fast, and advanced key-value store that also + | provides a richer body of commands than a typical key-value system + | such as APC or Memcached. Laravel makes it easy to dig right in. + | + */ + + 'redis' => [ + + 'client' => env('REDIS_CLIENT', 'phpredis'), + + 'options' => [ + 'cluster' => env('REDIS_CLUSTER', 'redis'), + 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), + ], + + 'default' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'username' => env('REDIS_USERNAME'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_DB', '0'), + ], + + 'cache' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'username' => env('REDIS_USERNAME'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_CACHE_DB', '1'), + ], + + ], + +]; diff --git a/Modules/CetakLabel/DataTables/DirectoratDataTable.php b/Modules/CetakLabel/DataTables/DirectoratDataTable.php new file mode 100644 index 0000000..295c79c --- /dev/null +++ b/Modules/CetakLabel/DataTables/DirectoratDataTable.php @@ -0,0 +1,91 @@ +filter(function ($query) { + if (request()->has('search')) { + $search = request()->get('search'); + $query->where('kode', 'like', "%" . $search['value'] . "%") + ->orWhere('name', 'like', "%" . $search['value'] . "%"); + } + }) + ->addIndexColumn() + ->addColumn('action', 'cetaklabel::masters.directorat._action') + ->setRowId('id'); + } + + /** + * Get the query source of dataTable. + */ + public function query(Directorat $model) + : QueryBuilder + { + return $model->newQuery(); + } + + /** + * Optional method if you want to use the html builder. + */ + public function html() + : HtmlBuilder + { + return $this->builder() + ->setTableId('directorat-table') + ->columns($this->getColumns()) + ->minifiedAjax() + ->stateSave(false) + ->responsive() + ->autoWidth(true) + ->orderBy(1) + ->parameters([ + 'scrollX' => true, + 'drawCallback' => 'function() { KTMenu.createInstances(); }', + ]) + ->addTableClass('align-middle table-row-dashed fs-6 gy-5'); + } + + /** + * Get the dataTable columns definition. + */ + public function getColumns() + : array + { + return [ + Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false), + Column::make('kode'), + Column::make('name'), + Column::computed('action') + ->exportable(false) + ->printable(false) + ->width(60) + ->addClass('text-center'), + ]; + } + + /** + * Get the filename for export. + */ + protected function filename() + : string + { + return 'Directorat_' . date('YmdHis'); + } + } diff --git a/database/migrations/2023_04_10_024720_create_directorats_table.php b/Modules/CetakLabel/Database/Migrations/2023_04_10_024720_create_directorats_table.php similarity index 100% rename from database/migrations/2023_04_10_024720_create_directorats_table.php rename to Modules/CetakLabel/Database/Migrations/2023_04_10_024720_create_directorats_table.php diff --git a/Modules/CetakLabel/Database/Seeders/CetakLabelDatabaseSeeder.php b/Modules/CetakLabel/Database/Seeders/CetakLabelDatabaseSeeder.php index fcdafba..797cfc7 100644 --- a/Modules/CetakLabel/Database/Seeders/CetakLabelDatabaseSeeder.php +++ b/Modules/CetakLabel/Database/Seeders/CetakLabelDatabaseSeeder.php @@ -16,6 +16,8 @@ class CetakLabelDatabaseSeeder extends Seeder { Model::unguard(); - // $this->call("OthersTableSeeder"); + $this->call([ + CetakLabelSeeder::class + ]); } } diff --git a/database/seeders/LabelSeeder.php b/Modules/CetakLabel/Database/Seeders/CetakLabelSeeder.php similarity index 93% rename from database/seeders/LabelSeeder.php rename to Modules/CetakLabel/Database/Seeders/CetakLabelSeeder.php index c4a5a3c..eb170b9 100644 --- a/database/seeders/LabelSeeder.php +++ b/Modules/CetakLabel/Database/Seeders/CetakLabelSeeder.php @@ -1,8 +1,7 @@ sendResponse($directorats, 'Directorats retrieved successfully.'); + } + + public function show($directorat) + : JsonResponse + { + $directorat = Directorat::find($directorat); + if (is_null($directorat)) { + return $this->sendError('Directorat not found.'); + } + + return $this->sendResponse($directorat, 'Directorat retrieved successfully.'); + } + + public function store(StoreDirectoratRequest $request) + : JsonResponse + { + // Validate the request... + $validated = $request->validated(); + + // Store the Directorat... + if ($validated) { + try { + $data = Directorat::create($validated); + + return $this->sendResponse($data, 'Directorat created successfully.'); + } catch (Exception $e) { + return $this->sendError($e->getMessage(), $e->getCode()); + } + } + + return $this->sendError('Directorat created failed.', 400); + } + + public function update(UpdateDirectoratRequest $request, Directorat $directorat) + : JsonResponse + { + // Validate the request... + $validated = $request->validated(); + + // Store the Directorat... + if ($validated) { + try { + $data = $directorat->update($validated); + + return $this->sendResponse($data, 'Directorat updated successfully.'); + } catch (Exception $e) { + return $this->sendError($e->getMessage(), $e->getCode()); + } + } + + return $this->sendError('Directorat created failed.', 400); + } + + public function destroy($id) + : JsonResponse + { + $directorat = Directorat::find($id); + if (is_null($directorat)) { + return $this->sendError('Directorat not found.'); + } + + try { + $directorat->delete(); + + return $this->sendResponse($directorat, 'Directorat deleted successfully.'); + } catch (Exception $e) { + return $this->sendError($e->getMessage(), $e->getCode()); + } + } + } diff --git a/Modules/CetakLabel/Http/Controllers/CetakLabelController.php b/Modules/CetakLabel/Http/Controllers/CetakLabelController.php deleted file mode 100644 index 341b454..0000000 --- a/Modules/CetakLabel/Http/Controllers/CetakLabelController.php +++ /dev/null @@ -1,79 +0,0 @@ -sendResponse($directorats, 'Directorats retrieved successfully.'); + public function __construct() + { + $this->middleware(function ($request, $next) { + $this->user = Auth::guard('web')->user(); + return $next($request); + }); + } + + /** + * Display a listing of the Directorats. + * + * @param \App\DataTables\DirectoratDataTable $dataTable + * + * @return mixed + */ + public function index(DirectoratDataTable $dataTable, Request $request) + { + if (is_null($this->user) || !$this->user->can('masters.read')) { + abort(403, 'Sorry !! You are Unauthorized to view any master data !'); + } + + return $dataTable->render('cetaklabel::masters.directorat.index'); + } + + /** + * Store a newly created Directorat in storage. + * + * @param \App\Http\Requests\StoreDirectoratRequest $request + * + * @return mixed + */ + public function store(StoreDirectoratRequest $request) + { + if (is_null($this->user) || !$this->user->can('masters.create')) { + abort(403, 'Sorry !! You are Unauthorized to create any master data !'); + } + + // Validate the request... + $validated = $request->validated(); + + // Store the Directorat... + if ($validated) { + try { + Directorat::create($validated); + echo json_encode(['status' => 'success', 'message' => 'Directorat created successfully.']); + } catch (Exception $e) { + echo json_encode(['status' => 'error', 'message' => 'Directorat created failed.']); + } + return; + } + + echo json_encode(['status' => 'error', 'message' => 'Directorat created failed.']); + } + + /** + * Show the form for creating a new Directorat. + */ + public function create() + { + if (is_null($this->user) || !$this->user->can('masters.create')) { + abort(403, 'Sorry !! You are Unauthorized to create any master data !'); + } + + show_404(); + } + + /** + * Display the specified Directorat. + * + * @param \Modules\CetakLabel\Entities\Directorat $directorat + */ + public function show(Directorat $directorat) + { + if (is_null($this->user) || !$this->user->can('masters.read')) { + abort(403, 'Sorry !! You are Unauthorized to view any master data !'); + } + } + + /** + * Show the form for editing the specified Directorat. + * + * @param $id + */ + public function edit($id) + { + if (is_null($this->user) || !$this->user->can('masters.update')) { + abort(403, 'Sorry !! You are Unauthorized to update any master data !'); + } + + $directorat = Directorat::find($id); + echo json_encode($directorat); + } + + /** + * Update the specified Directorat in storage. + * + * @param \App\Http\Requests\UpdateDirectoratRequest $request + * @param \Modules\CetakLabel\Entities\Directorat $directorat + * + * @return mixed + */ + public function update(UpdateDirectoratRequest $request, Directorat $directorat) + { + if (is_null($this->user) || !$this->user->can('masters.update')) { + abort(403, 'Sorry !! You are Unauthorized to update any master data !'); + } + + // Validate the request... + $validated = $request->validated(); + + // Update the Directorat... + if ($validated) { + try { + $directorat->update($validated); + + echo json_encode(['status' => 'success', 'message' => 'Directorat updated successfully.']); + } catch (Exception $e) { + echo json_encode(['status' => 'error', 'message' => 'Directorat updated failed.']); + } + + return; + } + + echo json_encode(['status' => 'error', 'message' => 'Directorat updated failed.']); + } + + /** + * Remove the specified Directorat from storage. + * + * @param \Modules\CetakLabel\Entities\Directorat $directorat + * + * @return void + */ + public function destroy(Directorat $directorat) + { + if (is_null($this->user) || !$this->user->can('masters.delete')) { + abort(403, 'Sorry !! You are Unauthorized to delete any master data !'); + } + + $directorat->delete(); + echo json_encode(['status' => 'success', 'message' => 'Directorat deleted successfully.']); } } diff --git a/Modules/CetakLabel/Http/Requests/Directorat/StoreDirectoratRequest.php b/Modules/CetakLabel/Http/Requests/Directorat/StoreDirectoratRequest.php new file mode 100644 index 0000000..156fbb3 --- /dev/null +++ b/Modules/CetakLabel/Http/Requests/Directorat/StoreDirectoratRequest.php @@ -0,0 +1,65 @@ + + */ + public function rules() + : array + { + return [ + 'kode' => 'required|string|max:2|min:2|unique:directorats,kode', + 'name' => 'required|string|max:50' + ]; + } + + /** + * Configure the validator instance. + */ + public function withValidator(Validator $validator) + : void + { + $validator->after(function (Validator $validator) { + if ($validator->errors()->any()) { + $errors = json_decode($validator->errors()->toJson(), true); + + + foreach ($errors as $key => $value) { + flash($value[0]); + } + return redirect()->route('directorat.index')->with('error', 'Directorat created failed.'); + } + + }); + } + + protected function failedValidation(Validator|\Illuminate\Contracts\Validation\Validator $validator) + : JsonResponse + { + $errors = (new ValidationException($validator))->errors(); + + throw new HttpResponseException( + response()->json(['success' => false, 'errors' => $errors, 'messages' => 'Directorat created failed.'], JsonResponse::HTTP_UNPROCESSABLE_ENTITY) + ); + } + } diff --git a/Modules/CetakLabel/Http/Requests/Directorat/UpdateDirectoratRequest.php b/Modules/CetakLabel/Http/Requests/Directorat/UpdateDirectoratRequest.php new file mode 100644 index 0000000..7eba857 --- /dev/null +++ b/Modules/CetakLabel/Http/Requests/Directorat/UpdateDirectoratRequest.php @@ -0,0 +1,63 @@ + + */ + public function rules() + : array + { + return [ + 'kode' => 'required|string|max:2|min:2|unique:directorats,kode,' . $this->directorat->id, + 'name' => 'required|string|max:50' + ]; + } + + /** + * Configure the validator instance. + */ + public function withValidator(Validator $validator) + : void + { + $validator->after(function (Validator $validator) { + if ($validator->errors()->any()) { + $error = json_decode($validator->errors()->toJson(), true); + foreach ($error as $key => $value) { + flash($value[0]); + } + + return redirect()->route('directorat.index')->with('error', 'Directorat updated failed.'); + } + }); + } + + protected function failedValidation(Validator|\Illuminate\Contracts\Validation\Validator $validator) + : JsonResponse + { + $errors = (new ValidationException($validator))->errors(); + + throw new HttpResponseException( + response()->json(['success' => false, 'errors' => $errors, 'messages' => 'Directorat updated failed.'], JsonResponse::HTTP_UNPROCESSABLE_ENTITY) + ); + } + } diff --git a/Modules/CetakLabel/Providers/CetakLabelServiceProvider.php b/Modules/CetakLabel/Providers/CetakLabelServiceProvider.php index e4b392c..5f83d20 100644 --- a/Modules/CetakLabel/Providers/CetakLabelServiceProvider.php +++ b/Modules/CetakLabel/Providers/CetakLabelServiceProvider.php @@ -27,6 +27,7 @@ class CetakLabelServiceProvider extends ServiceProvider $this->registerTranslations(); $this->registerConfig(); $this->registerViews(); + $this->registerDatabase(); $this->loadMigrationsFrom(module_path($this->moduleName, 'Database/Migrations')); } @@ -55,6 +56,19 @@ class CetakLabelServiceProvider extends ServiceProvider ); } + protected function registerDatabase() + { + $this->publishes([ + module_path($this->moduleName, 'Config/database.php') => config_path($this->moduleNameLower . '.php'), + ], 'database'); + + + array_merge( + require base_path().'/config/database.php', + require base_path().'/Modules/CetakLabel/Config/database.php' + ); + } + /** * Register views. * diff --git a/Modules/CetakLabel/Resources/assets/.gitkeep b/Modules/CetakLabel/Resources/assets/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/Modules/CetakLabel/Resources/assets/js/app.js b/Modules/CetakLabel/Resources/assets/js/app.js deleted file mode 100644 index e69de29..0000000 diff --git a/Modules/CetakLabel/Resources/assets/sass/app.scss b/Modules/CetakLabel/Resources/assets/sass/app.scss deleted file mode 100644 index e69de29..0000000 diff --git a/Modules/CetakLabel/Resources/views/index.blade.php b/Modules/CetakLabel/Resources/views/index.blade.php deleted file mode 100644 index 083c48a..0000000 --- a/Modules/CetakLabel/Resources/views/index.blade.php +++ /dev/null @@ -1,9 +0,0 @@ -@extends('cetaklabel::layouts.master') - -@section('content') -

Hello World

- -

- This view is loaded from module: {!! config('cetaklabel.name') !!} -

-@endsection diff --git a/Modules/CetakLabel/Resources/views/layouts/master.blade.php b/Modules/CetakLabel/Resources/views/layouts/master.blade.php deleted file mode 100644 index 8870bcb..0000000 --- a/Modules/CetakLabel/Resources/views/layouts/master.blade.php +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - Module CetakLabel - - {{-- Laravel Vite - CSS File --}} - {{-- {{ module_vite('build-cetaklabel', 'Resources/assets/sass/app.scss') }} --}} - - - - @yield('content') - - {{-- Laravel Vite - JS File --}} - {{-- {{ module_vite('build-cetaklabel', 'Resources/assets/js/app.js') }} --}} - - diff --git a/Modules/CetakLabel/Resources/views/masters/directorat/_action.blade.php b/Modules/CetakLabel/Resources/views/masters/directorat/_action.blade.php new file mode 100644 index 0000000..a763751 --- /dev/null +++ b/Modules/CetakLabel/Resources/views/masters/directorat/_action.blade.php @@ -0,0 +1,13 @@ +@php + $route = explode('.', Route::currentRouteName()); +@endphp +
+ + {!! getIcon("pencil", "fs-1 text-info","duotune") !!} + + + {!! Form::open(['method' => 'DELETE','route' => [$route[0].'.destroy', $model->id],'class'=>'']) !!} + {{ Form::button(getIcon("trash", "fs-1 text-danger","duotune"), ['type' => 'submit', 'class' => 'delete btn btn-icon btn-bg-light btn-active-light-danger btn-sm'] ) }} + {!! Form::close() !!} +
diff --git a/Modules/CetakLabel/Resources/views/masters/directorat/_form.blade.php b/Modules/CetakLabel/Resources/views/masters/directorat/_form.blade.php new file mode 100644 index 0000000..98c7455 --- /dev/null +++ b/Modules/CetakLabel/Resources/views/masters/directorat/_form.blade.php @@ -0,0 +1,70 @@ +@php + $route = explode('.', Route::currentRouteName()); +@endphp + + + + diff --git a/Modules/CetakLabel/Resources/views/masters/directorat/_table.blade.php b/Modules/CetakLabel/Resources/views/masters/directorat/_table.blade.php new file mode 100644 index 0000000..0d3f296 --- /dev/null +++ b/Modules/CetakLabel/Resources/views/masters/directorat/_table.blade.php @@ -0,0 +1,116 @@ + +{{ $dataTable->table() }} + + +{{-- Inject Scripts --}} +@section('scripts') + {{ $dataTable->scripts() }} +@endsection + +@push('customscript') + @php + $route = explode('.', Route::currentRouteName()); + @endphp + + +@endpush + +@section('styles') + +@endsection diff --git a/Modules/CetakLabel/Resources/views/masters/directorat/index.blade.php b/Modules/CetakLabel/Resources/views/masters/directorat/index.blade.php new file mode 100644 index 0000000..46dcb7b --- /dev/null +++ b/Modules/CetakLabel/Resources/views/masters/directorat/index.blade.php @@ -0,0 +1,131 @@ + + +
+ +
+
+
+ + + + + + + + + +
+ + +
+ + +
+ +
+ + + + + + + +
+ + +
+
+
+ @include('cetaklabel::masters.directorat._table') + @include('cetaklabel::masters.directorat._form') +
+ +
+ + @push('customscript') + + @endpush +
diff --git a/Modules/CetakLabel/Routes/api.php b/Modules/CetakLabel/Routes/api.php index 0b478d5..70b1ada 100644 --- a/Modules/CetakLabel/Routes/api.php +++ b/Modules/CetakLabel/Routes/api.php @@ -1,6 +1,6 @@ getLowerName().'.domain'); + $domain = config($module->getLowerName() . '.domain'); Route::domain($domain)->group(function () { Route::middleware('auth:sanctum')->group(function () { diff --git a/Modules/CetakLabel/Routes/web.php b/Modules/CetakLabel/Routes/web.php index fb8e080..d051747 100644 --- a/Modules/CetakLabel/Routes/web.php +++ b/Modules/CetakLabel/Routes/web.php @@ -1,20 +1,25 @@ group(function() { - Route::get('/', 'CetakLabelController@index'); -}); + $module = Module::find('CetakLabel'); + $domain = config($module->getLowerName() . '.domain'); + + Route::domain($domain)->group(function () { + Route::group(['middleware' => ['auth', 'verified']], function () { + Route::resource('directorat', DirectoratController::class); + }); + }); + -Route::resource('directorat', DirectoratController::class); diff --git a/app/DataTables/DirectoratDataTable.php b/app/DataTables/DirectoratDataTable.php deleted file mode 100644 index 7321cbc..0000000 --- a/app/DataTables/DirectoratDataTable.php +++ /dev/null @@ -1,89 +0,0 @@ -filter(function ($query) { - if (request()->has('search')) { - $search = request()->get('search'); - $query->where('kode', 'like', "%" . $search['value'] . "%") - ->orWhere('name', 'like', "%" . $search['value'] . "%"); - } - }) - ->addIndexColumn() - ->addColumn('action', 'pages.masters.directorat._action') - ->setRowId('id'); - } - - /** - * Get the query source of dataTable. - */ - public function query(Directorat $model): QueryBuilder - { - return $model->newQuery(); - } - - /** - * Optional method if you want to use the html builder. - */ - public function html(): HtmlBuilder - { - return $this->builder() - ->setTableId('directorat-table') - ->columns($this->getColumns()) - ->minifiedAjax() - ->stateSave(false) - ->responsive() - ->autoWidth(true) - ->orderBy(1) - ->parameters([ - 'scrollX' => true, - 'drawCallback' => 'function() { KTMenu.createInstances(); }', - ]) - ->addTableClass('align-middle table-row-dashed fs-6 gy-5'); - } - - /** - * Get the dataTable columns definition. - */ - public function getColumns(): array - { - return [ - Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false), - Column::make('kode'), - Column::make('name'), - Column::computed('action') - ->exportable(false) - ->printable(false) - ->width(60) - ->addClass('text-center'), - ]; - } - - /** - * Get the filename for export. - */ - protected function filename(): string - { - return 'Directorat_' . date('YmdHis'); - } -} diff --git a/app/Http/Controllers/DirectoratController.php b/app/Http/Controllers/DirectoratController.php deleted file mode 100644 index 683efef..0000000 --- a/app/Http/Controllers/DirectoratController.php +++ /dev/null @@ -1,157 +0,0 @@ -middleware(function ($request, $next) { - $this->user = Auth::guard('web')->user(); - return $next($request); - }); - } - - /** - * Display a listing of the Directorats. - * - * @param \App\DataTables\DirectoratDataTable $dataTable - * - * @return mixed - */ - public function index(DirectoratDataTable $dataTable, Request $request) - { - if (is_null($this->user) || !$this->user->can('masters.read')) { - abort(403, 'Sorry !! You are Unauthorized to view any master data !'); - } - - return $dataTable->render('pages.masters.directorat.index'); - } - - /** - * Store a newly created Directorat in storage. - * - * @param \App\Http\Requests\StoreDirectoratRequest $request - * - * @return mixed - */ - public function store(StoreDirectoratRequest $request) - { - if (is_null($this->user) || !$this->user->can('masters.create')) { - abort(403, 'Sorry !! You are Unauthorized to create any master data !'); - } - - // Validate the request... - $validated = $request->validated(); - - // Store the Directorat... - if ($validated) { - try { - Directorat::create($validated); - echo json_encode(['status' => 'success', 'message' => 'Directorat created successfully.']); - } catch (Exception $e) { - echo json_encode(['status' => 'error', 'message' => 'Directorat created failed.']); - } - } - - echo json_encode(['status' => 'error', 'message' => 'Directorat created failed.']); - } - - /** - * Show the form for creating a new Directorat. - */ - public function create() - { - if (is_null($this->user) || !$this->user->can('masters.create')) { - abort(403, 'Sorry !! You are Unauthorized to create any master data !'); - } - - show_404(); - } - - /** - * Display the specified Directorat. - * - * @param \App\Models\Directorat $directorat - */ - public function show(Directorat $directorat) - { - if (is_null($this->user) || !$this->user->can('masters.read')) { - abort(403, 'Sorry !! You are Unauthorized to view any master data !'); - } - } - - /** - * Show the form for editing the specified Directorat. - * - * @param $id - */ - public function edit($id) - { - if (is_null($this->user) || !$this->user->can('masters.update')) { - abort(403, 'Sorry !! You are Unauthorized to update any master data !'); - } - - $directorat = Directorat::find($id); - echo json_encode($directorat); - } - - /** - * Update the specified Directorat in storage. - * - * @param \App\Http\Requests\UpdateDirectoratRequest $request - * @param \App\Models\Directorat $directorat - * - * @return mixed - */ - public function update(UpdateDirectoratRequest $request, Directorat $directorat) - { - if (is_null($this->user) || !$this->user->can('masters.update')) { - abort(403, 'Sorry !! You are Unauthorized to update any master data !'); - } - - // Validate the request... - $validated = $request->validated(); - - // Update the Directorat... - if ($validated) { - try { - CauserResolver::setCauser($this->user); - $directorat->update($validated); - - echo json_encode(['status' => 'success', 'message' => 'Directorat updated successfully.']); - } catch (Exception $e) { - echo json_encode(['status' => 'error', 'message' => 'Directorat updated failed.']); - } - } - - echo json_encode(['status' => 'error', 'message' => 'Directorat updated failed.']); - } - - /** - * Remove the specified Directorat from storage. - * - * @param \App\Models\Directorat $directorat - * - * @return void - */ - public function destroy(Directorat $directorat) - { - if (is_null($this->user) || !$this->user->can('masters.delete')) { - abort(403, 'Sorry !! You are Unauthorized to delete any master data !'); - } - - $directorat->delete(); - echo json_encode(['status' => 'success', 'message' => 'Directorat deleted successfully.']); - } - } diff --git a/app/Http/Controllers/DocumentController.php b/app/Http/Controllers/DocumentController.php index 15667ed..91639f9 100644 --- a/app/Http/Controllers/DocumentController.php +++ b/app/Http/Controllers/DocumentController.php @@ -5,7 +5,6 @@ use App\DataTables\DocumentDataTable; use App\Http\Requests\StoreDocumentRequest; use App\Http\Requests\UpdateDocumentRequest; - use App\Models\Directorat; use App\Models\Document; use App\Models\DocumentDetail; use App\Models\DocumentType; @@ -16,7 +15,7 @@ use App\Models\SubSubJob; use Exception; use Illuminate\Http\Request; - use Spatie\Activitylog\Facades\CauserResolver; + use Modules\CetakLabel\Entities\Directorat; class DocumentController extends Controller { diff --git a/app/Http/Controllers/JobController.php b/app/Http/Controllers/JobController.php index 099a37e..cd87fdf 100644 --- a/app/Http/Controllers/JobController.php +++ b/app/Http/Controllers/JobController.php @@ -5,10 +5,10 @@ use App\DataTables\JobDataTable; use App\Http\Requests\StoreJobRequest; use App\Http\Requests\UpdateJobRequest; - use App\Models\Directorat; use App\Models\Job; use Exception; use Illuminate\Http\Request; + use Modules\CetakLabel\Entities\Directorat; class JobController extends Controller { diff --git a/app/Http/Controllers/SubDirectoratController.php b/app/Http/Controllers/SubDirectoratController.php index 23ff1fb..e63c9b8 100644 --- a/app/Http/Controllers/SubDirectoratController.php +++ b/app/Http/Controllers/SubDirectoratController.php @@ -5,10 +5,10 @@ use App\DataTables\SubDirectoratDataTable; use App\Http\Requests\StoreSubDirectoratRequest; use App\Http\Requests\UpdateSubDirectoratRequest; - use App\Models\Directorat; use App\Models\SubDirectorat; use Exception; use Illuminate\Http\Request; + use Modules\CetakLabel\Entities\Directorat; class SubDirectoratController extends Controller { diff --git a/app/Http/Controllers/SubJobController.php b/app/Http/Controllers/SubJobController.php index ff700fd..60b9543 100644 --- a/app/Http/Controllers/SubJobController.php +++ b/app/Http/Controllers/SubJobController.php @@ -5,10 +5,10 @@ use App\DataTables\SubJobDataTable; use App\Http\Requests\StoreSubJobRequest; use App\Http\Requests\UpdateSubJobRequest; - use App\Models\Directorat; use App\Models\SubJob; use Exception; use Illuminate\Http\Request; + use Modules\CetakLabel\Entities\Directorat; class SubJobController extends Controller { diff --git a/app/Http/Controllers/SubSubjobController.php b/app/Http/Controllers/SubSubjobController.php index a15d24b..33923ba 100644 --- a/app/Http/Controllers/SubSubjobController.php +++ b/app/Http/Controllers/SubSubjobController.php @@ -5,10 +5,10 @@ use App\DataTables\SubSubJobDataTable; use App\Http\Requests\StoreSubSubJobRequest; use App\Http\Requests\UpdateSubSubJobRequest; - use App\Models\Directorat; use App\Models\SubSubJob; use Exception; use Illuminate\Http\Request; + use Modules\CetakLabel\Entities\Directorat; class SubSubJobController extends Controller { diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index 165659b..23f402b 100644 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -3,16 +3,15 @@ namespace App\Http\Controllers\Users; use App\DataTables\Users\UsersDataTable; -use App\Models\Directorat; -use App\Models\User; use App\Http\Controllers\Controller; +use App\Models\User; use App\Models\UserInfo; use Exception; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; -use App\Models\Permission; +use Modules\CetakLabel\Entities\Directorat; use Spatie\Permission\Models\Role; class UsersController extends Controller diff --git a/app/Http/Requests/StoreDirectoratRequest.php b/app/Http/Requests/StoreDirectoratRequest.php deleted file mode 100644 index ca42eed..0000000 --- a/app/Http/Requests/StoreDirectoratRequest.php +++ /dev/null @@ -1,47 +0,0 @@ - - */ - public function rules(): array - { - return [ - 'kode' => 'required|string|max:2|min:2|unique:directorats,kode', - 'name' => 'required|string|max:50' - ]; - } - - /** - * Configure the validator instance. - */ - public function withValidator(Validator $validator): void - { - $validator->after(function (Validator $validator) { - if($validator->errors()->any()) { - $error = json_decode($validator->errors()->toJson(), true); - foreach ($error as $key => $value) { - flash( $value[0]); - } - - return redirect()->route('directorat.index')->with('error', 'Directorat created failed.'); - } - }); - } -} diff --git a/app/Http/Requests/UpdateDirectoratRequest.php b/app/Http/Requests/UpdateDirectoratRequest.php deleted file mode 100644 index 360bb67..0000000 --- a/app/Http/Requests/UpdateDirectoratRequest.php +++ /dev/null @@ -1,47 +0,0 @@ - - */ - public function rules(): array - { - return [ - 'kode' => 'required|string|max:2|min:2|unique:directorats,kode,'.$this->id, - 'name' => 'required|string|max:50' - ]; - } - - /** - * Configure the validator instance. - */ - public function withValidator(Validator $validator): void - { - $validator->after(function (Validator $validator) { - if($validator->errors()->any()) { - $error = json_decode($validator->errors()->toJson(), true); - foreach ($error as $key => $value) { - flash( $value[0]); - } - - return redirect()->route('directorat.index')->with('error', 'Directorat updated failed.'); - } - }); - } -} diff --git a/app/Models/Document.php b/app/Models/Document.php index a1fc9dc..e1c6472 100644 --- a/app/Models/Document.php +++ b/app/Models/Document.php @@ -2,11 +2,12 @@ namespace App\Models; -use Spatie\Activitylog\LogOptions; -use Spatie\Activitylog\Traits\LogsActivity; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; +use Modules\CetakLabel\Entities\Directorat; +use Spatie\Activitylog\LogOptions; +use Spatie\Activitylog\Traits\LogsActivity; use Wildside\Userstamps\Userstamps; class Document extends Model diff --git a/app/Models/Job.php b/app/Models/Job.php index 748ebe3..480077d 100644 --- a/app/Models/Job.php +++ b/app/Models/Job.php @@ -2,11 +2,12 @@ namespace App\Models; -use Spatie\Activitylog\LogOptions; -use Spatie\Activitylog\Traits\LogsActivity; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; +use Modules\CetakLabel\Entities\Directorat; +use Spatie\Activitylog\LogOptions; +use Spatie\Activitylog\Traits\LogsActivity; class Job extends Model { diff --git a/app/Models/SubDirectorat.php b/app/Models/SubDirectorat.php index fc17ba7..11b9d3d 100644 --- a/app/Models/SubDirectorat.php +++ b/app/Models/SubDirectorat.php @@ -2,11 +2,12 @@ namespace App\Models; -use Spatie\Activitylog\LogOptions; -use Spatie\Activitylog\Traits\LogsActivity; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; +use Modules\CetakLabel\Entities\Directorat; +use Spatie\Activitylog\LogOptions; +use Spatie\Activitylog\Traits\LogsActivity; class SubDirectorat extends Model { diff --git a/app/Models/SubJob.php b/app/Models/SubJob.php index 89eb581..27536d3 100644 --- a/app/Models/SubJob.php +++ b/app/Models/SubJob.php @@ -2,11 +2,12 @@ namespace App\Models; -use Spatie\Activitylog\LogOptions; -use Spatie\Activitylog\Traits\LogsActivity; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; +use Modules\CetakLabel\Entities\Directorat; +use Spatie\Activitylog\LogOptions; +use Spatie\Activitylog\Traits\LogsActivity; class SubJob extends Model { diff --git a/app/Models/SubSubJob.php b/app/Models/SubSubJob.php index 81285eb..61e727a 100644 --- a/app/Models/SubSubJob.php +++ b/app/Models/SubSubJob.php @@ -2,11 +2,12 @@ namespace App\Models; -use Spatie\Activitylog\LogOptions; -use Spatie\Activitylog\Traits\LogsActivity; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; +use Modules\CetakLabel\Entities\Directorat; +use Spatie\Activitylog\LogOptions; +use Spatie\Activitylog\Traits\LogsActivity; class SubSubJob extends Model { diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php index ef02d09..c12d856 100644 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -1,10 +1,10 @@ id(); - $table->foreignIdFor('App\Models\Directorat', 'directorat_id')->nullable(); + $table->foreignIdFor('Modules\CetakLabel\Entities\Directorat', 'directorat_id')->nullable(); $table->foreignIdFor('App\Models\SubDirectorat', 'sub_directorat_id')->nullable(); $table->string('name'); $table->string('email')->unique(); diff --git a/database/migrations/2023_04_17_135901_create_documents_table.php b/database/migrations/2023_04_17_135901_create_documents_table.php index 77d6316..769d506 100644 --- a/database/migrations/2023_04_17_135901_create_documents_table.php +++ b/database/migrations/2023_04_17_135901_create_documents_table.php @@ -1,16 +1,16 @@ call([ - UsersSeeder::class, - LabelSeeder::class, - ]); + /** + * Seed the application's database. + * + * @return void + */ + public function run() + { + $this->call([ + UsersSeeder::class + ]); - // \App\Models\User::factory(10)->create(); + // \App\Models\User::factory(10)->create(); - // \App\Models\User::factory()->create([ - // 'name' => 'Test User', - // 'email' => 'test@example.com', - // ]); + // \App\Models\User::factory()->create([ + // 'name' => 'Test User', + // 'email' => 'test@example.com', + // ]); + } } -}