diff --git a/app/Http/Controllers/CMS/CategoryController.php b/app/Http/Controllers/CMS/CategoryController.php index 97473dfd5..d518843dd 100644 --- a/app/Http/Controllers/CMS/CategoryController.php +++ b/app/Http/Controllers/CMS/CategoryController.php @@ -106,7 +106,7 @@ public function update($id, UpdateCategoryRequest $request) $category = $this->categoryRepository->update($request->all(), $id); - Session::flash('success', 'Kategori updated successfully.'); + Session::flash('success', 'Kategori berhasil diperbarui.'); return redirect(route('categories.index')); } diff --git a/app/Http/Controllers/CMS/DownloadController.php b/app/Http/Controllers/CMS/DownloadController.php index c5d7b9d43..e6000b0af 100644 --- a/app/Http/Controllers/CMS/DownloadController.php +++ b/app/Http/Controllers/CMS/DownloadController.php @@ -137,7 +137,7 @@ public function destroy($id) $this->downloadRepository->delete($id); if (request()->ajax()) { - return $this->sendSuccess('Role deleted successfully.'); + return $this->sendSuccess('File download berhasil dihapus.'); } Session::flash('success', 'File download berhasil dihapus.'); diff --git a/app/Http/Controllers/CMS/SlideController.php b/app/Http/Controllers/CMS/SlideController.php index 2b173e63e..53a8909ee 100644 --- a/app/Http/Controllers/CMS/SlideController.php +++ b/app/Http/Controllers/CMS/SlideController.php @@ -142,7 +142,7 @@ public function destroy($id) $this->slideRepository->delete($id); if (request()->ajax()) { - return $this->sendSuccess('Role deleted successfully.'); + return $this->sendSuccess('Slide berhasil dihapus.'); } Session::flash('success', 'Slide berhasil dihapus.'); diff --git a/app/Http/Controllers/DepartmentController.php b/app/Http/Controllers/DepartmentController.php index 900445203..8ec4c4574 100644 --- a/app/Http/Controllers/DepartmentController.php +++ b/app/Http/Controllers/DepartmentController.php @@ -81,7 +81,7 @@ public function edit($id) $department = $this->departmentRepository->find($id); if (empty($department)) { - Session::flash('error', 'Departemen not found'); + Session::flash('error', 'Departemen tidak ditemukan'); return redirect(route('departments.index')); } diff --git a/app/Http/Controllers/PositionController.php b/app/Http/Controllers/PositionController.php index 22b113a84..bc10c08ee 100644 --- a/app/Http/Controllers/PositionController.php +++ b/app/Http/Controllers/PositionController.php @@ -104,7 +104,7 @@ public function update($id, UpdatePositionRequest $request) $position = $this->positionRepository->update($request->all(), $id); - Session::flash('success', 'Jabatan updated successfully.'); + Session::flash('success', 'Jabatan berhasil diperbarui.'); return redirect(route('positions.index')); } @@ -126,7 +126,7 @@ public function destroy($id) $this->positionRepository->delete($id); if (request()->ajax()) { - return $this->sendSuccess('Role berhasil dihapus.'); + return $this->sendSuccess('Jabatan berhasil dihapus.'); } Session::flash('success', 'Jabatan berhasil dihapus.'); diff --git a/app/Http/Transformers/DownloadTransformer.php b/app/Http/Transformers/DownloadTransformer.php index 40912ca38..8deb7427f 100644 --- a/app/Http/Transformers/DownloadTransformer.php +++ b/app/Http/Transformers/DownloadTransformer.php @@ -6,6 +6,7 @@ use App\Models\Enums\StatusEnum; use Illuminate\Support\Facades\Storage; use League\Fractal\TransformerAbstract; +use Spatie\Html\Facades\Html; class DownloadTransformer extends TransformerAbstract { @@ -14,7 +15,7 @@ public function transform(Download $download) return [ 'id' => $download->id, 'title' => $download->title, - 'url' => $download->url ? link_to(Storage::url($download->url), 'berkas', ['class' => 'text-primary'])->toHtml() : '', + 'url' => $download->url ? Html::a(Storage::url($download->url), 'berkas')->class('text-primary')->toHtml() : '', 'description' => $download->description, 'state' => $download->state == StatusEnum::aktif ? 'Tampilkan' : 'Tidak', 'created_at' => $download->created_at, diff --git a/app/Http/Transformers/SlideTransformer.php b/app/Http/Transformers/SlideTransformer.php index 1b23b8851..ee000a5e6 100644 --- a/app/Http/Transformers/SlideTransformer.php +++ b/app/Http/Transformers/SlideTransformer.php @@ -6,6 +6,7 @@ use App\Models\Enums\StatusEnum; use Illuminate\Support\Facades\Storage; use League\Fractal\TransformerAbstract; +use Spatie\Html\Facades\Html; class SlideTransformer extends TransformerAbstract { @@ -14,7 +15,7 @@ public function transform(Slide $slide) return [ 'id' => $slide->id, 'title' => $slide->title, - 'url' => $slide->url ? link_to($slide->url, 'tautan', ['class' => 'text-primary'])->toHtml() : '', + 'url' => $slide->url ? Html::a($slide->url, 'tautan')->class('text-primary')->toHtml() : '', 'thumbnail' => $slide->thumbnail ? Storage::url($slide->thumbnail) : '', 'description' => $slide->description, 'state' => $slide->state == StatusEnum::aktif ? 'Aktif' : 'Non Aktif', diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 5a60d3915..f1a9dc8f9 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -35,8 +35,6 @@ public function boot() { $this->bootHttps(); $this->addValidation(); - // daftarkan manual karena gagal install infyomlabs/adminlte-templates terkendala depedency - View::addNamespace('adminlte-templates', resource_path('views/vendor/adminlte-templates')); $this->addLogQuery(); if (App::runningInConsole()) { diff --git a/catatan_rilis.md b/catatan_rilis.md index e4a3bc264..c3aed00eb 100644 --- a/catatan_rilis.md +++ b/catatan_rilis.md @@ -10,4 +10,5 @@ Di rilis ini, versi 2508.0.1 berisi penambahan dan perbaikan yang diminta penggu #### Perubahan Teknis -1. [#790](https://github.com/OpenSID/OpenKab/issues/790) Upgrade versi laravel dari 9.52.16 menjadi 10.48.29. \ No newline at end of file +1. [#790](https://github.com/OpenSID/OpenKab/issues/790) Upgrade versi laravel dari 9.52.16 menjadi 10.48.29. +2. [#791](https://github.com/OpenSID/OpenKab/issues/791) Upgrade teknis berdasarkan composer audit pada OpenKab. \ No newline at end of file diff --git a/composer.json b/composer.json index 4ee1d7fe2..de80d462a 100644 --- a/composer.json +++ b/composer.json @@ -10,7 +10,6 @@ "require": { "php": "^8.1", "akaunting/laravel-apexcharts": "^3.0", - "akaunting/money": "^5.2", "alexusmai/laravel-file-manager": "^3.0", "bensampo/laravel-enum": "^6.3", "cviebrock/eloquent-sluggable": "^10.0", @@ -23,7 +22,6 @@ "laravel/sanctum": "^3.3", "laravel/tinker": "^2.8", "laravel/ui": "^4.2", - "laravelcollective/html": "^6.4", "league/flysystem-ftp": "^3.10", "openspout/openspout": "^4.24", "proengsoft/laravel-jsvalidation": "^4.8", @@ -31,6 +29,7 @@ "spatie/laravel-activitylog": "^4.7", "spatie/laravel-csp": "^2.8", "spatie/laravel-fractal": "^6.0", + "spatie/laravel-html": "^3.5", "spatie/laravel-json-api-paginate": "^1.13", "spatie/laravel-permission": "^6.4", "spatie/laravel-query-builder": "^5.2", diff --git a/composer.lock b/composer.lock index 1f8f677ba..d488948f9 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "4e7ee1edfe6896b0c775d0fe454a198b", + "content-hash": "2ffcf31285ea53025ab70e536dafe411", "packages": [ { "name": "akaunting/laravel-apexcharts", @@ -75,76 +75,6 @@ }, "time": "2025-04-04T21:02:33+00:00" }, - { - "name": "akaunting/money", - "version": "5.2.2", - "source": { - "type": "git", - "url": "https://github.com/akaunting/laravel-money.git", - "reference": "d99a9e8e576cac40668d0a5afaf7ea153590aff9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/akaunting/laravel-money/zipball/d99a9e8e576cac40668d0a5afaf7ea153590aff9", - "reference": "d99a9e8e576cac40668d0a5afaf7ea153590aff9", - "shasum": "" - }, - "require": { - "illuminate/contracts": "^9.0|^10.0|^11.0", - "illuminate/support": "^9.0|^10.0|^11.0", - "illuminate/validation": "^9.0|^10.0|^11.0", - "illuminate/view": "^9.0|^10.0|^11.0", - "php": "^8.0", - "vlucas/phpdotenv": "^5.4.1" - }, - "require-dev": { - "orchestra/testbench": "^7.4|^8.0|^9.0", - "phpunit/phpunit": "^9.5|^10.0|^11.0", - "vimeo/psalm": "^4.23|^5.1" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Akaunting\\Money\\Provider" - ] - } - }, - "autoload": { - "files": [ - "src/helpers.php" - ], - "psr-4": { - "Akaunting\\Money\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Denis Duliçi", - "email": "info@akaunting.com", - "homepage": "https://akaunting.com", - "role": "Developer" - } - ], - "description": "Currency formatting and conversion package for Laravel", - "keywords": [ - "convert", - "currency", - "format", - "laravel", - "money" - ], - "support": { - "issues": "https://github.com/akaunting/laravel-money/issues", - "source": "https://github.com/akaunting/laravel-money/tree/5.2.2" - }, - "abandoned": "akaunting/laravel-money", - "time": "2024-09-25T10:06:11+00:00" - }, { "name": "alexusmai/laravel-file-manager", "version": "v3.1.1", @@ -2949,79 +2879,6 @@ }, "time": "2025-01-28T15:15:29+00:00" }, - { - "name": "laravelcollective/html", - "version": "v6.4.1", - "source": { - "type": "git", - "url": "https://github.com/LaravelCollective/html.git", - "reference": "64ddfdcaeeb8d332bd98bef442bef81e39c3910b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/LaravelCollective/html/zipball/64ddfdcaeeb8d332bd98bef442bef81e39c3910b", - "reference": "64ddfdcaeeb8d332bd98bef442bef81e39c3910b", - "shasum": "" - }, - "require": { - "illuminate/http": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/routing": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/session": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/view": "^6.0|^7.0|^8.0|^9.0|^10.0", - "php": ">=7.2.5" - }, - "require-dev": { - "illuminate/database": "^6.0|^7.0|^8.0|^9.0|^10.0", - "mockery/mockery": "~1.0", - "phpunit/phpunit": "~8.5|^9.5.10" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.x-dev" - }, - "laravel": { - "providers": [ - "Collective\\Html\\HtmlServiceProvider" - ], - "aliases": { - "Form": "Collective\\Html\\FormFacade", - "Html": "Collective\\Html\\HtmlFacade" - } - } - }, - "autoload": { - "files": [ - "src/helpers.php" - ], - "psr-4": { - "Collective\\Html\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Adam Engebretson", - "email": "adam@laravelcollective.com" - }, - { - "name": "Taylor Otwell", - "email": "taylorotwell@gmail.com" - } - ], - "description": "HTML and Form Builders for the Laravel Framework", - "homepage": "https://laravelcollective.com", - "support": { - "issues": "https://github.com/LaravelCollective/html/issues", - "source": "https://github.com/LaravelCollective/html" - }, - "abandoned": "spatie/laravel-html", - "time": "2023-04-25T02:46:11+00:00" - }, { "name": "league/commonmark", "version": "2.7.1", @@ -6011,6 +5868,84 @@ ], "time": "2025-02-14T10:43:50+00:00" }, + { + "name": "spatie/laravel-html", + "version": "3.5.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-html.git", + "reference": "ead179a8b6802647027486049f5209bd23b610a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-html/zipball/ead179a8b6802647027486049f5209bd23b610a9", + "reference": "ead179a8b6802647027486049f5209bd23b610a9", + "shasum": "" + }, + "require": { + "illuminate/http": "^9.0|^8.0|^10.0", + "illuminate/support": "^9.0|^8.0|^10.0", + "php": "^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.3", + "orchestra/testbench": "^7.0|^6.23|^8.0", + "pestphp/pest": "^1.22" + }, + "type": "library", + "extra": { + "laravel": { + "aliases": { + "Html": "Spatie\\Html\\Facades\\Html" + }, + "providers": [ + "Spatie\\Html\\HtmlServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Spatie\\Html\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Sebastian De Deyne", + "email": "sebastian@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + }, + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "A fluent html builder", + "homepage": "https://github.com/spatie/laravel-html", + "keywords": [ + "html", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/laravel-html/tree/3.5.0" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + } + ], + "time": "2024-02-20T15:17:00+00:00" + }, { "name": "spatie/laravel-json-api-paginate", "version": "1.16.3", @@ -10054,16 +9989,16 @@ }, { "name": "laravel/sail", - "version": "v1.44.0", + "version": "v1.45.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "a09097bd2a8a38e23ac472fa6a6cf5b0d1c1d3fe" + "reference": "019a2933ff4a9199f098d4259713f9bc266a874e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/a09097bd2a8a38e23ac472fa6a6cf5b0d1c1d3fe", - "reference": "a09097bd2a8a38e23ac472fa6a6cf5b0d1c1d3fe", + "url": "https://api.github.com/repos/laravel/sail/zipball/019a2933ff4a9199f098d4259713f9bc266a874e", + "reference": "019a2933ff4a9199f098d4259713f9bc266a874e", "shasum": "" }, "require": { @@ -10113,7 +10048,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2025-07-04T16:17:06+00:00" + "time": "2025-08-25T19:28:31+00:00" }, { "name": "mockery/mockery", diff --git a/config/app.php b/config/app.php index 026ad258d..45c99bd65 100644 --- a/config/app.php +++ b/config/app.php @@ -199,7 +199,6 @@ /* * Package Service Providers... */ - Collective\Html\HtmlServiceProvider::class, /* * Application Service Providers... @@ -227,8 +226,7 @@ 'aliases' => Facade::defaultAliases()->merge([ // 'ExampleClass' => App\Example\ExampleClass::class, 'Image' => Intervention\Image\Facades\Image::class, - 'Form' => Collective\Html\FormFacade::class, - 'Html' => Collective\Html\HtmlFacade::class, + 'Html' => Spatie\Html\Facades\Html::class, ])->toArray(), 'format' => [ diff --git a/config/laravel_generator.php b/config/laravel_generator.php deleted file mode 100644 index 95428d5c7..000000000 --- a/config/laravel_generator.php +++ /dev/null @@ -1,215 +0,0 @@ - [ - - 'migration' => database_path('migrations/'), - - 'model' => app_path('Models/'), - - 'datatables' => app_path('DataTables/'), - - 'livewire_tables' => app_path('Http/Livewire/'), - - 'repository' => app_path('Http/Repository/'), - - 'transformer' => app_path('Http/Transformers/'), - - 'routes' => base_path('routes/web.php'), - - 'api_routes' => base_path('routes/api.php'), - - 'request' => app_path('Http/Requests/'), - - 'api_request' => app_path('Http/Requests/API/'), - - 'controller' => app_path('Http/Controllers/'), - - 'api_controller' => app_path('Http/Controllers/API/'), - - 'api_resource' => app_path('Http/Resources/'), - - 'schema_files' => resource_path('model_schemas/'), - - 'seeder' => database_path('seeders/'), - - 'database_seeder' => database_path('seeders/DatabaseSeeder.php'), - - 'factory' => database_path('factories/'), - - 'view_provider' => app_path('Providers/ViewServiceProvider.php'), - - 'tests' => base_path('tests/'), - - 'repository_test' => base_path('tests/Repositories/'), - - 'api_test' => base_path('tests/APIs/'), - - 'views' => resource_path('views/'), - - 'menu_file' => resource_path('views/layouts/menu.blade.php'), - ], - - /* - |-------------------------------------------------------------------------- - | Namespaces - |-------------------------------------------------------------------------- - | - */ - - 'namespace' => [ - - 'model' => 'App\Models', - - 'datatables' => 'App\DataTables', - - 'livewire_tables' => 'App\Http\Livewire', - - 'repository' => 'App\Http\Repository', - - 'transformer' => 'App\Http\Transformers', - - 'controller' => 'App\Http\Controllers', - - 'api_controller' => 'App\Http\Controllers\API', - - 'api_resource' => 'App\Http\Resources', - - 'request' => 'App\Http\Requests', - - 'api_request' => 'App\Http\Requests\API', - - 'seeder' => 'Database\Seeders', - - 'factory' => 'Database\Factories', - - 'tests' => 'Tests', - - 'repository_test' => 'Tests\Repositories', - - 'api_test' => 'Tests\APIs', - ], - - /* - |-------------------------------------------------------------------------- - | Templates - |-------------------------------------------------------------------------- - | - */ - - 'templates' => 'adminlte-templates', - - /* - |-------------------------------------------------------------------------- - | Model extend class - |-------------------------------------------------------------------------- - | - */ - - 'model_extend_class' => 'Illuminate\Database\Eloquent\Model', - - /* - |-------------------------------------------------------------------------- - | API routes prefix & version - |-------------------------------------------------------------------------- - | - */ - - 'api_prefix' => 'api', - - /* - |-------------------------------------------------------------------------- - | Options - |-------------------------------------------------------------------------- - | - */ - - 'options' => [ - - 'soft_delete' => true, - - 'save_schema_file' => false, - - 'localized' => false, - - 'repository_pattern' => true, - - 'resources' => false, - - 'factory' => false, - - 'seeder' => false, - - 'swagger' => false, // generate swagger for your APIs - - 'tests' => false, // generate test cases for your APIs - - 'excluded_fields' => ['id'], // Array of columns that doesn't required while creating module - ], - - /* - |-------------------------------------------------------------------------- - | Prefixes - |-------------------------------------------------------------------------- - | - */ - - 'prefixes' => [ - - 'route' => '', // e.g. admin or admin.shipping or admin.shipping.logistics - - 'namespace' => '', // e.g. Admin or Admin\Shipping or Admin\Shipping\Logistics - - 'view' => '', // e.g. admin or admin/shipping or admin/shipping/logistics - ], - - /* - |-------------------------------------------------------------------------- - | Table Types - | - | Possible Options: blade, datatables, livewire - |-------------------------------------------------------------------------- - | - */ - - 'tables' => 'blade', - - /* - |-------------------------------------------------------------------------- - | Timestamp Fields - |-------------------------------------------------------------------------- - | - */ - - 'timestamps' => [ - - 'enabled' => true, - - 'created_at' => 'created_at', - - 'updated_at' => 'updated_at', - - 'deleted_at' => 'deleted_at', - ], - - /* - |-------------------------------------------------------------------------- - | Specify custom doctrine mappings as per your need - |-------------------------------------------------------------------------- - | - */ - - 'from_table' => [ - - 'doctrine_mappings' => [], - ], - -]; diff --git a/playwright.config.js b/playwright.config.js index d6e42fb5b..7a41bd696 100644 --- a/playwright.config.js +++ b/playwright.config.js @@ -47,10 +47,10 @@ module.exports = defineConfig({ }, ], -// webServer: { -// command: `${configLoader.get('app.phpVersion')} artisan serve`, -// url: configLoader.get('app.baseURL'), -// reuseExistingServer: !process.env.CI, -// timeout: 120 * 1000, -// }, + webServer: { + command: 'php artisan serve', + url: configLoader.get('app.baseURL'), + reuseExistingServer: !process.env.CI, + timeout: 120 * 1000, + }, }); diff --git a/resources/views/articles/create.blade.php b/resources/views/articles/create.blade.php index 02eb13e4a..532d495b2 100644 --- a/resources/views/articles/create.blade.php +++ b/resources/views/articles/create.blade.php @@ -8,25 +8,25 @@ @include('partials.breadcrumbs')
{{ $article->category_id }}
{{ $article->published_at }}
{{ $article->slug }}
{{ $article->title }}
{{ $article->description }}
{{ $article->content }}
{{ $category->slug }}
{{ $category->title }}
{{ $category->description }}
{{ $message }}
+{{ $department->name }}
{{ $department->description }}
{{ $department->parent_id }}
{{ $employee->name }}
{{ $employee->identity_number }}
{{ $employee->email }}
{{ $employee->description }}
{{ $employee->phone }}
{{ $employee->foto }}
{{ $employee->position_id }}
{{ $employee->department_id }}
{{ $employee->user_id }}
{{ $position->name }}
{{ $position->description }}
{{ $position->parent_id }}
{{ $setting->key }}
{{ $setting->name }}
{{ $setting->value }}
{{ $setting->type }}
{{ $setting->attribute }}
{{ $setting->description }}
@@lang('models/{{ $config->modelNames->camelPlural }}.plural')
-@else -{{ $config->modelNames->humanPlural }}
-@endif - -@{{ ${!! $config->modelNames->camel !!}->{!! $fieldName !!} }}
-| @lang('crud.action') | -@else -Action | -@endif -||||
|---|---|---|---|---|---|
| - @{!! Form::open(['route' => ['{{ $config->prefixes->getRoutePrefixWith('.') }}{{ $config->modelNames->camelPlural }}.destroy', ${{ $config->modelNames->camel }}->{{ $config->primaryName }}], 'method' => 'delete']) !!} - - @{!! Form::close() !!} - | -|||||
| No | - {!! $fieldHeaders !!} -@if($config->options->localized) -@lang('crud.action') | -@else -Aksi | -@endif -||
|---|---|---|---|---|
Users
- -{!! $user->name !!}
-{!! $user->email !!}
-| Name | -Action | -|||
|---|---|---|---|---|
| {!! $user->name !!} | -{!! $user->email !!} | -- {!! Form::open(['route' => ['users.destroy', $user->id], 'method' => 'delete']) !!} - - {!! Form::close() !!} - | -||