This commit merges list of all uploaded files and created directories into one page. It also modifies way of uploading files. Special page for uploading files was removed (because of no support for directories) and files can be uploaded only via overview.
137 lines
6.0 KiB
PHP
137 lines
6.0 KiB
PHP
<?php
|
|
namespace App\Handlers;
|
|
|
|
use App\Enumerations\ModuleNamesWithIds;
|
|
use App\Enumerations\TemplatePathsHumanReadableRootOnly;
|
|
use App\Enumerations\WidgetTypes;
|
|
use App\Handlers\Contracts\AppHandler;
|
|
use App\Models\User;
|
|
|
|
/**
|
|
* Class Handler
|
|
*
|
|
* Handler is a class which handles module-specific behaviour which cannot be done by module itself, resp. cannot be
|
|
* done by some abstract magic.
|
|
*
|
|
* @package App\Handlers
|
|
*/
|
|
abstract class Handler implements AppHandler
|
|
{
|
|
public static function getHistoryHandler()
|
|
{
|
|
return History::class;
|
|
}
|
|
|
|
public static function getExtendedFormSections()
|
|
{
|
|
return [
|
|
'basicInfo' => trans('admin/contents.basicInfo'),
|
|
'meta' => trans('admin/contents.metaOptions'),
|
|
'publication' => trans('admin/contents.publicationOptions'),
|
|
'appearance' => trans('admin/contents.appearance')
|
|
];
|
|
}
|
|
|
|
public static function getExtendedFormInputsCreate()
|
|
{
|
|
return [
|
|
'basicInfo' => 'admin.content.formParts.basicInformation',
|
|
'meta' => 'admin.content.formParts.metaInformation',
|
|
'publication' => 'admin.content.formParts.publicationSetup',
|
|
'appearance' => 'admin.content.formParts.appearance',
|
|
];
|
|
}
|
|
|
|
public static function getExtendedFormInputsEdit()
|
|
{
|
|
return self::getExtendedFormInputsCreate();
|
|
}
|
|
|
|
/**
|
|
* Register admin menu (or multiple ones)
|
|
*
|
|
* This cannot be in ServiceProvider because Session is started at middleware. And ServiceProvider is called before
|
|
* starting any middleware..
|
|
*
|
|
* @param User $user model of logged user
|
|
*/
|
|
public static function registerAdminMenu(User $user)
|
|
{
|
|
$menu = \Menu::instance('mainMenu');
|
|
if (!is_null($menu)) {
|
|
// menus were already defined
|
|
return;
|
|
}
|
|
|
|
// create instance of main menu
|
|
\Menu::create('mainMenu', function ($menu) {
|
|
/**
|
|
* @var $menu \Pingpong\Menus\MenuBuilder
|
|
*/
|
|
|
|
// create menu entries
|
|
|
|
/*
|
|
* WARNING: MenuBuilder::route() does not seem to work,
|
|
* nor route() helper function. We need to use action() helper instaed.
|
|
*/
|
|
$menu->route('admin.dashboard', trans('admin/mainMenu.dashboard'), [], 10, ['icon' => 'fa fa-dashboard']);
|
|
$menu->dropdown(trans('admin/mainMenu.userManagement'), function ($sub) {
|
|
$sub->route('users.new', trans('admin/mainMenu.newUser'), [], 10, ['icon' => 'fa fa-user-plus']);
|
|
$sub->route('users.detail', trans('admin/mainMenu.userDetail'), [], 20, ['icon' => 'fa fa-user']);
|
|
$sub->route('users.overview', trans('admin/mainMenu.usersOverview'), [], 30, ['icon' => 'fa fa-users']);
|
|
}, 20, ['icon' => 'fa fa-users']);
|
|
$menu->dropdown(trans('admin/mainMenu.contentPages'), function ($sub) {
|
|
|
|
$sub->dropdown(trans('admin/mainMenu.newContentPage'), function ($sub) {
|
|
$i = 1;
|
|
$modules = ModuleNamesWithIds::getWithTranslations();
|
|
foreach ($modules as $module => $name) {
|
|
$sub->route('content.new', trans($name), ['moduleId' => $module], $i++);
|
|
}
|
|
}, 10, ['icon' => 'fa fa-plus']);
|
|
|
|
$sub->route('content.overview', trans('admin/mainMenu.contentPageOverview'), [], 20, ['icon' => 'fa fa-list']);
|
|
}, 15, ['icon' => 'fa fa-database']);
|
|
$menu->route('upload.overview', trans('admin/mainMenu.fileManager'), [], 30, ['icon' => 'fa fa-folder']);
|
|
$menu->dropdown(trans('admin/mainMenu.widgets'), function ($sub) {
|
|
// create list of all widget types
|
|
$sub->dropdown(trans('admin/mainMenu.newWidget'), function ($sub) {
|
|
$i = 1;
|
|
foreach (WidgetTypes::getWithTranslations() as $type => $name) {
|
|
$sub->route('widgets.new', $name, ['type' => $type], $i++);
|
|
}
|
|
}, 10, ['icon' => 'fa fa-plus']);
|
|
|
|
$sub->route('widgets.overview', trans('admin/mainMenu.widgetsOverview'), [], 20, ['icon' => 'fa fa-list']);
|
|
|
|
// menu for widget areas
|
|
$sub->dropdown(trans('admin/mainMenu.widgetAreas'), function ($sub) {
|
|
$sub->route('widgetareas.new', trans('admin/mainMenu.newWidgetArea'), [], 1, ['icon' => 'fa fa-plus']);
|
|
$sub->route('widgetareas.overview', trans('admin/mainMenu.widgetAreaOverview'), [], 2, ['icon' => 'fa fa-list']);
|
|
}, 50, ['icon' => 'fa fa-object-group']);
|
|
}, 28, ['icon' => 'fa fa-gears']);
|
|
$menu->dropdown(trans('admin/mainMenu.templates'), function ($sub) {
|
|
$i = 1;
|
|
$templatePaths = TemplatePathsHumanReadableRootOnly::getWithTranslations();
|
|
foreach ($templatePaths as $id => $name) {
|
|
$sub->route('templates.overview', $name, ['id' => $id], $i++);
|
|
}
|
|
}, 29, ['icon' => 'fa fa-folder-open']);
|
|
$menu->dropdown(trans('admin/mainMenu.customFields'), function ($sub) {
|
|
$sub->route('customfields.new', trans('admin/mainMenu.customFieldsNew'), [], 10, ['icon' => 'fa fa-code']);
|
|
$sub->route('customfields.overview', trans('admin/mainMenu.customFieldsOverview'), [], 50, ['icon' => 'fa fa-code-fork']);
|
|
}, 30, ['icon' => 'fa fa-code']);
|
|
$menu->route('log.overview', trans('admin/mainMenu.actionLog'), [], 40, ['icon' => 'fa fa-history']);
|
|
$menu->url('#', trans('admin/mainMenu.settings'), 50, ['icon' => 'fa fa-gear']);
|
|
});
|
|
|
|
// order
|
|
|
|
// create menu with user profile
|
|
\Menu::create('profileMenu', function ($menu) {
|
|
$menu->route('users.detail', trans('admin/userManagement.profile'));
|
|
$menu->route('logout', trans('admin/common.logout'));
|
|
});
|
|
}
|
|
} |