diff --git a/src/Controllers/BadasoMenuController.php b/src/Controllers/BadasoMenuController.php index 8b47bc561..ebf59ed56 100644 --- a/src/Controllers/BadasoMenuController.php +++ b/src/Controllers/BadasoMenuController.php @@ -192,7 +192,8 @@ public function browseMenuItemByKeys(Request $request) $data = []; foreach ($menus as $index => $menu) { - $menu_items = $all_menu_items->whereNull($prefix.'menu_items.parent_id') + $menu_items = $all_menu_items + ->where('parent_id', null) ->where('menu_id', $menu->id)->map(function ($item) use ($all_menu_items) { $children = array_values($all_menu_items->where('parent_id', $item->id)->toArray()); diff --git a/src/Seeder/Configurations/FixedMenuItemSeeder.php b/src/Seeder/Configurations/FixedMenuItemSeeder.php index 5b57200a2..46b61d037 100644 --- a/src/Seeder/Configurations/FixedMenuItemSeeder.php +++ b/src/Seeder/Configurations/FixedMenuItemSeeder.php @@ -135,31 +135,57 @@ public function run() 9 => [ 'id' => 10, 'menu_id' => $menu_core, - 'title' => 'File Manager', - 'url' => '/file-manager', + 'title' => 'API Documentation', + 'url' => '/api-docs', 'target' => '_self', - 'icon_class' => 'perm_media', + 'icon_class' => 'menu_book', 'color' => '', 'parent_id' => null, - 'order' => 8, - 'permissions' => 'browse_file_manager', + 'order' => 9, + 'permissions' => 'browse_apidocs', ], + + // media manager 10 => [ 'id' => 11, 'menu_id' => $menu_core, - 'title' => 'API Documentation', - 'url' => '/api-docs', + 'title' => 'Media Manager', + 'url' => '#', 'target' => '_self', - 'icon_class' => 'menu_book', + 'icon_class' => '', 'color' => '', 'parent_id' => null, - 'order' => 9, - 'permissions' => 'browse_apidocs', + 'order' => 10, + 'permissions' => '', ], - - // general menu 11 => [ 'id' => 12, + 'menu_id' => $menu_core, + 'title' => 'Files', + 'url' => '/file-manager', + 'target' => '_self', + 'icon_class' => 'folder', + 'color' => '', + 'parent_id' => 11, + 'order' => 1, + 'permissions' => 'browse_file_manager', + ], + 12 => [ + 'id' => 13, + 'menu_id' => $menu_core, + 'title' => 'Images', + 'url' => '/image-manager', + 'target' => '_self', + 'icon_class' => 'perm_media', + 'color' => '', + 'parent_id' => 11, + 'order' => 2, + 'permissions' => 'browse_file_manager', + ], + + // general menu + 13 => [ + 'id' => 14, 'menu_id' => $menu_general, 'title' => 'Dashboard', 'url' => '/home', @@ -182,10 +208,15 @@ public function run() continue; } - MenuItem::create($value); + $menu_item = MenuItem::find($value['id']); + if (isset($menu_item)) { + $menu_item->update($value); + } else { + $menu_item = MenuItem::create($value); + } } - } catch (Exception $e) { - throw new Exception('Exception occur '.$e); + } catch (\Exception $e) { + throw new \Exception('Exception occur '.$e); \DB::rollBack(); } diff --git a/src/resources/js/pages/file-manager/browse.vue b/src/resources/js/pages/file-manager/browse.vue index aa973a692..a4318c8b7 100644 --- a/src/resources/js/pages/file-manager/browse.vue +++ b/src/resources/js/pages/file-manager/browse.vue @@ -76,7 +76,7 @@ export default { urlFileManager() { let host = window.location.origin; let token = localStorage.getItem("token"); - let url = `${host}/filemanager?token=${token}`; + let url = `${host}/filemanager?type=Files&token=${token}`; return url; }, }, diff --git a/src/resources/js/pages/image-manager/browse.vue b/src/resources/js/pages/image-manager/browse.vue new file mode 100644 index 000000000..2084495c2 --- /dev/null +++ b/src/resources/js/pages/image-manager/browse.vue @@ -0,0 +1,84 @@ + + + + + + + + + + {{ $t("fileManager.title") }} + + + + {{ message }} + + + + + + + + + + {{ $t("fileManager.warning.notAllowedToBrowse") }} + + + + + + + + diff --git a/src/resources/js/pages/index.vue b/src/resources/js/pages/index.vue index 7198bd30a..a1effac6d 100644 --- a/src/resources/js/pages/index.vue +++ b/src/resources/js/pages/index.vue @@ -53,6 +53,7 @@ import UserManagementEdit from "./user-management/edit"; import UserManagementAdd from "./user-management/add"; import UserManagementRoles from "./user-management/roles"; import FileManagerBrowse from "./file-manager/browse"; +import ImageManagerBrowse from "./image-manager/browse"; import LogViewerBrowse from './log-viewer/browse'; import NotificationBrowse from './notification/browse'; import DataPendingAddBrowse from './data-pending-add/browse'; @@ -110,6 +111,7 @@ export default { DataPendingAddBrowse, DataPendingEditRead, ApiDocsBrowse, + ImageManagerBrowse, }, name: "ActivityLogIndex", data: () => ({ diff --git a/src/resources/js/router/admin/configuration-router.js b/src/resources/js/router/admin/configuration-router.js index c3d2a25e3..0b6090601 100644 --- a/src/resources/js/router/admin/configuration-router.js +++ b/src/resources/js/router/admin/configuration-router.js @@ -274,7 +274,15 @@ export default [ name: "FileManagerBrowse", component: Pages, meta: { - title: "File Manager", + title: "Files", + }, + }, + { + path: prefix + "/image-manager", + name: "ImageManagerBrowse", + component: Pages, + meta: { + title: "Images", }, }, { diff --git a/src/resources/js/store/modules/badaso.js b/src/resources/js/store/modules/badaso.js index 8f5783591..ec2cb9846 100644 --- a/src/resources/js/store/modules/badaso.js +++ b/src/resources/js/store/modules/badaso.js @@ -54,6 +54,12 @@ export default { state.menu = data.map((menu) => { menu.menuItems.map((menuItem) => { menuItem.url = "/" + prefix + menuItem.url; + if (menuItem.children) { + menuItem.children = menuItem.children.map((menuChildren) => { + menuChildren.url = "/" + prefix + menuChildren.url; + return menuChildren; + }); + } return menuItem; }); return menu;