fix seeder menu role and user assign, create 503 page and fix redirect home
This commit is contained in:
287
database/seeders/MenuSeeder.php
Normal file
287
database/seeders/MenuSeeder.php
Normal file
@@ -0,0 +1,287 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
use App\Models\Menu;
|
||||
use Illuminate\Support\Arr;
|
||||
|
||||
class MenuSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
$menus = [
|
||||
[
|
||||
"name" => "Dashboard",
|
||||
"url" => "/dashboard",
|
||||
"icon" => "mingcute:home-3-line",
|
||||
"parent_id" => null,
|
||||
"sort_order" => 1,
|
||||
"children" => [
|
||||
[
|
||||
"name" => "Dashboard Pimpinan",
|
||||
"url" => "dashboard.home",
|
||||
"icon" => null,
|
||||
"sort_order" => 1,
|
||||
],
|
||||
[
|
||||
"name" => "Dashboard PBG",
|
||||
"url" => "dashboard.pbg",
|
||||
"icon" => null,
|
||||
"sort_order" => 2,
|
||||
],
|
||||
[
|
||||
"name" => "Dashboard Potensi",
|
||||
"url" => '/potentials',
|
||||
"icon" => null,
|
||||
"sort_order" => 3,
|
||||
"children" => [
|
||||
[
|
||||
"name" => "Luar Sistem",
|
||||
"url" => "dashboard.potentials.inside_system",
|
||||
"icon" => null,
|
||||
"sort_order" => 1,
|
||||
],
|
||||
[
|
||||
"name" => "Dalam Sistem",
|
||||
"url" => "dashboard.potentials.outside_system",
|
||||
"icon" => null,
|
||||
"sort_order" => 2,
|
||||
],
|
||||
]
|
||||
],
|
||||
[
|
||||
"name" => "PETA",
|
||||
"url" => "dashboard.maps",
|
||||
"icon" => null,
|
||||
"sort_order" => 4,
|
||||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
"name" => "Master",
|
||||
"url" => "/master",
|
||||
"icon" => "mingcute:cylinder-line",
|
||||
"parent_id" => null,
|
||||
"sort_order" => 2,
|
||||
"children" => [
|
||||
[
|
||||
"name" => "Users",
|
||||
"url" => "users.index",
|
||||
"icon" => null,
|
||||
"sort_order" => 1,
|
||||
],
|
||||
]
|
||||
],
|
||||
[
|
||||
"name" => "Settings",
|
||||
"url" => "/settings",
|
||||
"icon" => "mingcute:settings-6-line",
|
||||
"parent_id" => null,
|
||||
"sort_order" => 3,
|
||||
"children" => [
|
||||
[
|
||||
"name" => "Syncronize",
|
||||
"url" => "settings.syncronize",
|
||||
"icon" => null,
|
||||
"sort_order" => 1,
|
||||
],
|
||||
[
|
||||
"name" => "Menu",
|
||||
"url" => "menus.index",
|
||||
"icon" => null,
|
||||
"sort_order" => 2,
|
||||
],
|
||||
[
|
||||
"name" => "Role",
|
||||
"url" => "roles.index",
|
||||
"icon" => null,
|
||||
"sort_order" => 3,
|
||||
],
|
||||
]
|
||||
],
|
||||
[
|
||||
"name" => "Data Settings",
|
||||
"url" => "/data-settings",
|
||||
"icon" => "mingcute:settings-1-line",
|
||||
"parent_id" => null,
|
||||
"sort_order" => 4,
|
||||
"children" => [
|
||||
[
|
||||
"name" => "Setting Dashboard",
|
||||
"url" => "data-settings.index",
|
||||
"icon" => null,
|
||||
"sort_order" => 1,
|
||||
],
|
||||
]
|
||||
],
|
||||
[
|
||||
"name" => "Data",
|
||||
"url" => "/data",
|
||||
"icon" => "mingcute:task-line",
|
||||
"parent_id" => null,
|
||||
"sort_order" => 5,
|
||||
"children" => [
|
||||
[
|
||||
"name" => "PBG",
|
||||
"url" => "pbg-task.index",
|
||||
"icon" => null,
|
||||
"sort_order" => 1,
|
||||
],
|
||||
[
|
||||
"name" => "Reklame",
|
||||
"url" => "web.advertisements.index",
|
||||
"icon" => null,
|
||||
"sort_order" => 2,
|
||||
],
|
||||
[
|
||||
"name" => "Usaha atau Industri",
|
||||
"url" => "business-industries.index",
|
||||
"icon" => null,
|
||||
"sort_order" => 3,
|
||||
],
|
||||
[
|
||||
"name" => "UMKM",
|
||||
"url" => "web-umkm.index",
|
||||
"icon" => null,
|
||||
"sort_order" => 4,
|
||||
],
|
||||
[
|
||||
"name" => "Pariwisata",
|
||||
"url" => "web-tourisms.index",
|
||||
"icon" => null,
|
||||
"sort_order" => 5,
|
||||
],
|
||||
[
|
||||
"name" => "Tata Ruang",
|
||||
"url" => "web-spatial-plannings.index",
|
||||
"icon" => null,
|
||||
"sort_order" => 6,
|
||||
],
|
||||
[
|
||||
"name" => "PDAM",
|
||||
"url" => "customers",
|
||||
"icon" => null,
|
||||
"sort_order" => 7,
|
||||
],
|
||||
[
|
||||
"name" => "Google Sheets",
|
||||
"url" => "google-sheets",
|
||||
"icon" => null,
|
||||
"sort_order" => 8,
|
||||
],
|
||||
[
|
||||
"name" => "TPA TPT",
|
||||
"url" => "tpa-tpt.index",
|
||||
"icon" => null,
|
||||
"sort_order" => 9,
|
||||
],
|
||||
]
|
||||
],
|
||||
[
|
||||
"name" => "Laporan",
|
||||
"url" => "/laporan",
|
||||
"icon" => "mingcute:report-line",
|
||||
"parent_id" => null,
|
||||
"sort_order" => 6,
|
||||
"children" => [
|
||||
[
|
||||
"name" => "Lap Pariwisata",
|
||||
"url" => "tourisms-report.index",
|
||||
"icon" => null,
|
||||
"sort_order" => 1,
|
||||
],
|
||||
[
|
||||
"name" => "Lap Pimpinan",
|
||||
"url" => "bigdata-resumes",
|
||||
"icon" => null,
|
||||
"sort_order" => 2,
|
||||
],
|
||||
[
|
||||
"name" => "Rekap Pembayaran",
|
||||
"url" => "payment-recaps",
|
||||
"icon" => null,
|
||||
"sort_order" => 3,
|
||||
],
|
||||
[
|
||||
"name" => "Lap Rekap Data Pembayaran",
|
||||
"url" => "report-payment-recaps",
|
||||
"icon" => null,
|
||||
"sort_order" => 4,
|
||||
],
|
||||
[
|
||||
"name" => "Lap PBG (PTSP)",
|
||||
"url" => "report-pbg-ptsp",
|
||||
"icon" => null,
|
||||
"sort_order" => 5,
|
||||
],
|
||||
]
|
||||
],
|
||||
[
|
||||
"name" => "Neng Bedas",
|
||||
"url" => "/chat",
|
||||
"icon" => "mingcute:wechat-line",
|
||||
"parent_id" => null,
|
||||
"sort_order" => 7,
|
||||
"children" => [
|
||||
[
|
||||
"name" => "Chat",
|
||||
"url" => "main-chatbot.index",
|
||||
"icon" => null,
|
||||
"sort_order" => 1,
|
||||
],
|
||||
]
|
||||
],
|
||||
[
|
||||
"name" => "Approval",
|
||||
"url" => "/approval",
|
||||
"icon" => "mingcute:user-follow-2-line",
|
||||
"parent_id" => null,
|
||||
"sort_order" => 8,
|
||||
"children" => [
|
||||
[
|
||||
"name" => "Approval Pejabat",
|
||||
"url" => "approval-list",
|
||||
"icon" => null,
|
||||
"sort_order" => 1,
|
||||
],
|
||||
]
|
||||
],
|
||||
[
|
||||
"name" => "Tools",
|
||||
"url" => "/tools",
|
||||
"icon" => "mingcute:tool-line",
|
||||
"parent_id" => null,
|
||||
"sort_order" => 9,
|
||||
"children" => [
|
||||
[
|
||||
"name" => "Undangan",
|
||||
"url" => "invitations",
|
||||
"icon" => null,
|
||||
"sort_order" => 1,
|
||||
],
|
||||
]
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($menus as $menuData) {
|
||||
$this->createOrUpdateMenu($menuData);
|
||||
}
|
||||
}
|
||||
|
||||
private function createOrUpdateMenu($menuData, $parentId = null){
|
||||
$menuData['parent_id'] = $parentId;
|
||||
|
||||
$menu = Menu::updateOrCreate(['name' => $menuData['name']], Arr::except($menuData, ['children']));
|
||||
|
||||
if(!empty($menuData['children'])){
|
||||
foreach($menuData['children'] as $child){
|
||||
$this->createOrUpdateMenu($child, $menu->id);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user