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',
+ // ]);
+ }
}
-}