--- /dev/null
+<?php
+
+namespace App\Console\Commands;
+
+use App\Console\Commands\Base\ToolboxCommand;
+use Cubist\Backpack\Facades\App;
+use Illuminate\Support\Facades\Artisan;
+use Parental\Tests\Models\Tool;
+
+class ToolboxMenuGenerate extends ToolboxCommand
+{
+ protected $signature = 'toolbox:menu:generate';
+
+ public function handle()
+ {
+
+ Artisan::call('config:cache');
+ $items = config('backpack.menu.items');
+
+ $res = '';
+ foreach ($items as $item) {
+ $res .= $this->render($item);
+ }
+ file_put_contents(resource_path('views/toolbox/inc/menu_items.blade.php'), $res);
+ Artisan::call('view:cache');
+ }
+
+ protected function render($item, $level = 0, $type = "menu-item")
+ {
+ if ($item === '----') {
+ return;
+ return str_repeat("\t", $level) . '<x-backpack::menu-separator title="Some text for separation" />' . "\n";
+ }
+ $res = '';
+ $can = $this->getCan($item);
+ $litem = $level;
+ if ($can) {
+ $litem = $level + 1;
+ $res .= str_repeat("\t", $level) . $can . "\n";
+ }
+ if (isset($item['items'])) {
+ $res .= str_repeat("\t", $litem) . '<x-backpack::menu-dropdown title="{!!__(\'' . addcslashes($item['label'], "'") . '\')!!}" icon="' . $item['icon'] . '">' . "\n";
+ foreach ($item['items'] as $i) {
+ $res .= $this->render($i, $litem + 1, 'menu-dropdown-item');
+ }
+ $res .= str_repeat("\t", $litem) . '</x-backpack::menu-dropdown>' . "\n";
+ } else {
+ $res .= str_repeat("\t", $litem) . '<x-backpack::' . $type . ' title="{!!__(\'' . addcslashes($item['label'], "'") . '\')!!}" icon="' . $item['icon'] . '" :link="backpack_url(\'' . $item['url'] . '\')" />' . "\n";
+ }
+ if ($can) {
+ $res .= str_repeat("\t", $level) . '@endcan' . "\n";
+ }
+
+ return $res;
+ }
+
+ protected function getCan($item)
+ {
+ $can = [];
+ if (isset($item['can'])) {
+ if (is_string($item['can'])) {
+ $can = [$item['can']];
+ } else {
+ $can = $item['can'];
+ }
+ } else if (isset($item['items'])) {
+ foreach ($item['items'] as $i) {
+ if (isset($i['can'])) {
+ if (is_string($i['can'])) {
+ $can[] = $i['can'];
+ } else {
+ $can = array_merge($can, $i['can']);
+ }
+ }
+ }
+ }
+ if (empty($can)) {
+ return false;
+ } else if (count($can) > 1) {
+ return "@canany('" . json_encode($can) . "')";
+ } else {
+ return "@can('" . $can[0] . "')";
+ }
+ }
+}
"ext-tidy": "*",
"ext-zip": "*",
"ext-zlib": "*",
- "backpack/theme-coreuiv2": "^1.2.2",
+ "backpack/theme-tabler": "^1.1.2",
"cubedesigners/userdatabase": "dev-backpack6",
"cubist/azuretts": "dev-master",
"cubist/cms-back": "dev-backpack6",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "64181a0ad6d783b9c2d635650850c694",
+ "content-hash": "602600518e723efd92de27b1d355083b",
"packages": [
{
"name": "archtechx/enums",
"time": "2023-07-01T06:33:51+00:00"
},
{
- "name": "backpack/theme-coreuiv2",
- "version": "1.2.2",
+ "name": "backpack/theme-tabler",
+ "version": "1.1.2",
"source": {
"type": "git",
- "url": "https://github.com/Laravel-Backpack/theme-coreuiv2.git",
- "reference": "be5efa1d033a2a4bd7da1d66d143c3ea8989c903"
+ "url": "https://github.com/Laravel-Backpack/theme-tabler.git",
+ "reference": "840fa54b74cbeb8a5d737edcfc958656a523e61f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Laravel-Backpack/theme-coreuiv2/zipball/be5efa1d033a2a4bd7da1d66d143c3ea8989c903",
- "reference": "be5efa1d033a2a4bd7da1d66d143c3ea8989c903",
+ "url": "https://api.github.com/repos/Laravel-Backpack/theme-tabler/zipball/840fa54b74cbeb8a5d737edcfc958656a523e61f",
+ "reference": "840fa54b74cbeb8a5d737edcfc958656a523e61f",
"shasum": ""
},
"require": {
},
"type": "library",
"extra": {
+ "branch-alias": {
+ "dev-main": "1.0.x-dev"
+ },
"laravel": {
"providers": [
- "Backpack\\ThemeCoreuiv2\\AddonServiceProvider"
+ "Backpack\\ThemeTabler\\AddonServiceProvider"
]
}
},
"autoload": {
"psr-4": {
- "Backpack\\ThemeCoreuiv2\\": "src/"
+ "Backpack\\ThemeTabler\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"MIT"
],
"authors": [
+ {
+ "name": "Mauro Martinez",
+ "email": "maurohmartinez@gmail.com",
+ "homepage": "https://backpackforlaravel.com"
+ },
{
"name": "Cristian Tabacitu",
"email": "hello@backpackforlaravel.com",
"homepage": "https://backpackforlaravel.com"
+ },
+ {
+ "name": "Antonio Almeida",
+ "email": "promatik@gmail.com",
+ "homepage": "https://backpackforlaravel.com"
}
],
- "description": "UI that uses CoreUI v2 and Bootstrap v4, provided as a legacy theme for Backpack v6.",
- "homepage": "https://github.com/backpack/theme-coreuiv2",
+ "description": "UI for Backpack v6 that uses Tabler and Bootstrap v5.",
+ "homepage": "https://github.com/backpack/theme-tabler",
"keywords": [
"Backpack Addon",
"Backpack for Laravel",
- "ThemeCoreuiv2",
+ "ThemeTabler",
"backpack",
"laravel"
],
"support": {
- "issues": "https://github.com/Laravel-Backpack/theme-coreuiv2/issues",
- "source": "https://github.com/Laravel-Backpack/theme-coreuiv2/tree/1.2.2"
+ "issues": "https://github.com/Laravel-Backpack/theme-tabler/issues",
+ "source": "https://github.com/Laravel-Backpack/theme-tabler/tree/1.1.2"
},
- "time": "2023-10-11T11:14:19+00:00"
+ "time": "2023-11-29T16:24:09+00:00"
},
{
"name": "bacon/bacon-qr-code",
},
{
"name": "carbonphp/carbon-doctrine-types",
- "version": "2.0.0",
+ "version": "2.1.0",
"source": {
"type": "git",
"url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
- "reference": "67a77972b9f398ae7068dabacc39c08aeee170d5"
+ "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/67a77972b9f398ae7068dabacc39c08aeee170d5",
- "reference": "67a77972b9f398ae7068dabacc39c08aeee170d5",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/99f76ffa36cce3b70a4a6abce41dba15ca2e84cb",
+ "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb",
"shasum": ""
},
"require": {
],
"support": {
"issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
- "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.0.0"
+ "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.1.0"
},
"funding": [
{
"type": "tidelift"
}
],
- "time": "2023-10-01T14:29:01+00:00"
+ "time": "2023-12-11T17:09:12+00:00"
},
{
"name": "chillerlan/php-qrcode",
"source": {
"type": "git",
"url": "git://git.cubedesigners.com/cubist_cms-back.git",
- "reference": "be21c6e3e3391a77bba673d7990888be2d9b2830"
+ "reference": "7266c5e29b8f3b57281ad8ac7130d854fa2b6ade"
},
"dist": {
"type": "tar",
- "url": "https://composer.cubedesigners.com/dist/cubist/cms-back/cubist-cms-back-dev-backpack6-2947b8.tar",
- "reference": "be21c6e3e3391a77bba673d7990888be2d9b2830",
- "shasum": "d3362611fdab156076a880f1288b748b80a01d23"
+ "url": "https://composer.cubedesigners.com/dist/cubist/cms-back/cubist-cms-back-dev-backpack6-92d3f4.tar",
+ "reference": "7266c5e29b8f3b57281ad8ac7130d854fa2b6ade",
+ "shasum": "c19880fe49129b2d781c41dc783cc3e0a0d7deb9"
},
"require": {
"backpack/backupmanager": "^v5.0.0",
}
],
"description": "Cubist Backpack extension",
- "time": "2023-12-11T17:20:44+00:00"
+ "time": "2023-12-12T07:51:20+00:00"
},
{
"name": "cubist/cms-front",
"ext-zlib": "*"
},
"platform-dev": [],
- "plugin-api-version": "2.6.0"
+ "plugin-api-version": "2.1.0"
}
+++ /dev/null
-<?php
-
-return [
-
- /*
- |--------------------------------------------------------------------------
- | Look & feel customizations
- |--------------------------------------------------------------------------
- |
- | Make it yours.
- |
- */
-
-
- // Date & Datetime Format Syntax: https://carbon.nesbot.com/docs/#api-localization
- 'default_date_format' => 'D MMM YYYY',
- 'default_datetime_format' => 'D MMM YYYY, HH:mm',
-
- // Direction, according to language
- // (left-to-right vs right-to-left)
- 'html_direction' => 'ltr',
-
- // ----
- // HEAD
- // ----
-
- // Project name. Shown in the window title.
- 'project_name' => env('APP_NAME'),
-
- // When clicking on the admin panel's top-left logo/name,
- // where should the user be redirected?
- // The string below will be passed through the url() helper.
- // - default: '' (project root)
- // - alternative: 'admin' (the admin's dashboard)
- 'home_link' => '',
-
- // Content of the HTML meta robots tag to prevent indexing and link following
- 'meta_robots_content' => 'noindex, nofollow',
-
- // ---------
- // DASHBOARD
- // ---------
-
- // Show "Getting Started with Backpack" info block?
- 'show_getting_started' => env('APP_ENV') == 'local',
-
- // ------
- // STYLES
- // ------
-
- // CSS files that are loaded in all pages, using Laravel's asset() helper
- 'styles' => [
- 'packages/backpack/base/css/bundle.css',
- 'packages/featherlight/featherlight.min.css',
- 'packages/featherlight/featherlight.gallery.min.css',
- 'packages/fluidbook/toolbox/css/style.css',
- 'packages/fluidbook/toolbox/css/loader.css',
-
- 'https://cdnjs.cloudflare.com/ajax/libs/jquery-contextmenu/2.9.2/jquery.contextMenu.min.css',
- 'https://cdnjs.cloudflare.com/ajax/libs/sweetalert2/11.7.3/sweetalert2.min.css',
- 'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css',
- 'https://cdnjs.cloudflare.com/ajax/libs/select2-bootstrap-theme/0.1.0-beta.10/select2-bootstrap.min.css',
-
- // Here's what's inside the bundle:
- // 'packages/@digitallyhappy/backstrap/css/style.min.css',
- // 'packages/animate.css/animate.min.css',
- // 'packages/noty/noty.css',
-
- // Load the fonts separately (so that you can replace them at will):
- 'packages/source-sans-pro/source-sans-pro.css',
- 'packages/line-awesome/css/line-awesome.min.css',
-
- // Example (the fonts above, loaded from CDN instead)
- // 'https://maxcdn.icons8.com/fonts/line-awesome/1.1/css/line-awesome-font-awesome.min.css',
- // 'https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic',
-
- // Example (load font-awesome instead of line-awesome):
- // 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.10.2/css/all.min.css',
-
- ],
-
- // CSS files that are loaded in all pages, using Laravel's mix() helper
- 'mix_styles' => [ // file_path => manifest_directory_path
- // 'css/app.css' => '',
- ],
-
- // CSS files that are loaded in all pages, using Laravel's @vite() helper
- // Please note that support for Vite was added in Laravel 9.19. Earlier versions are not able to use this feature.
- 'vite_styles' => [ // resource file_path
- // 'resources/css/app.css',
- ],
-
- // ------
- // HEADER
- // ------
-
- // Menu logo. You can replace this with an <img> tag if you have a logo.
- 'project_logo' => '<img src="/themes/'.env('THEME').'/logo.svg" alt="'.env('APP_NAME').'">',
-
- // Show / hide breadcrumbs on admin panel pages.
- 'breadcrumbs' => true,
-
- // Horizontal navbar classes. Helps make the admin panel look similar to your project's design.
- 'header_class' => 'app-header border-0 navbar navbar-color',
- // For background colors use: bg-dark, bg-primary, bg-secondary, bg-danger, bg-warning, bg-success, bg-info, bg-blue, bg-light-blue, bg-indigo, bg-purple, bg-pink, bg-red, bg-orange, bg-yellow, bg-green, bg-teal, bg-cyan, bg-white
- // For links to be visible on different background colors use: "navbar-dark", "navbar-light", "navbar-color"
-
- // ----
- // BODY
- // ----
-
- // Body element classes.
- 'body_class' => 'app aside-menu-fixed sidebar-lg-show skin-blue',
- // Try sidebar-hidden, sidebar-fixed, sidebar-compact, sidebar-lg-show
-
- // Sidebar element classes.
- 'sidebar_class' => 'sidebar sidebar-pills bg-light',
- // Remove "sidebar-transparent" for standard sidebar look
- // Try "sidebar-light" or "sidebar-dark" for dark/light links
- // You can also add a background class like bg-dark, bg-primary, bg-secondary, bg-danger, bg-warning, bg-success, bg-info, bg-blue, bg-light-blue, bg-indigo, bg-purple, bg-pink, bg-red, bg-orange, bg-yellow, bg-green, bg-teal, bg-cyan
-
- // ------
- // FOOTER
- // ------
-
- // Footer element classes.
- 'footer_class' => 'app-footer d-print-none',
- // hide it with d-none
- // change background color with bg-dark, bg-primary, bg-secondary, bg-danger, bg-warning, bg-success, bg-info, bg-blue, bg-light-blue, bg-indigo, bg-purple, bg-pink, bg-red, bg-orange, bg-yellow, bg-green, bg-teal, bg-cyan, bg-white
-
- // Developer or company name. Shown in footer.
- 'developer_name' => 'Fluidbook',
-
- // Developer website. Link in footer. Type false if you want to hide it.
- 'developer_link' => env('POWERED_BY_LINK','https://www.fluidbook.com'),
-
- // Show powered by Laravel Backpack in the footer? true/false
- 'show_powered_by' => false,
-
- // -------
- // SCRIPTS
- // -------
-
- // JS files that are loaded in all pages, using Laravel's asset() helper
- 'scripts' => [
- // Backstrap includes jQuery, Bootstrap, CoreUI, PNotify, Popper
- 'packages/backpack/base/js/bundle.js',
- 'packages/featherlight/featherlight.min.js',
- 'packages/featherlight/featherlight.gallery.min.js',
- 'packages/fluidbook/toolbox/js/bundle.js',
- 'packages/fluidbook/toolbox/js/contextdownload.js',
-
- 'https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.3.0/jquery.form.min.js',
- "https://cdnjs.cloudflare.com/ajax/libs/jquery-contextmenu/2.9.2/jquery.contextMenu.min.js",
- "https://cdnjs.cloudflare.com/ajax/libs/jquery-contextmenu/2.9.2/jquery.ui.position.min.js",
- 'https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/gsap.min.js',
- 'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js',
- 'https://cdnjs.cloudflare.com/ajax/libs/sweetalert2/11.7.3/sweetalert2.all.js',
-
- // examples (everything inside the bundle, loaded from CDN)
- // 'https://code.jquery.com/jquery-3.4.1.min.js',
- // 'https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js',
- // 'https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js',
- // 'https://unpkg.com/@coreui/coreui@2.1.16/dist/js/coreui.min.js',
- // 'https://cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/pace.min.js',
- // 'https://unpkg.com/sweetalert/dist/sweetalert.min.js',
- // 'https://cdnjs.cloudflare.com/ajax/libs/noty/3.1.4/noty.min.js'
-
- // examples (VueJS or React)
- // 'https://unpkg.com/vue@2.4.4/dist/vue.min.js',
- // 'https://unpkg.com/react@16/umd/react.production.min.js',
- // 'https://unpkg.com/react-dom@16/umd/react-dom.production.min.js',
- ],
-
- // JS files that are loaded in all pages, using Laravel's mix() helper
- 'mix_scripts' => [// file_path => manifest_directory_path
- // 'js/app.js' => '',
- ],
-
- // JS files that are loaded in all pages, using Laravel's @vite() helper
- 'vite_scripts' => [ // resource file_path
- // 'resources/js/app.js',
- ],
-
- /*
- |--------------------------------------------------------------------------
- | Registration Open
- |--------------------------------------------------------------------------
- |
- | Choose whether new users/admins are allowed to register.
- | This will show the Register button on the login page and allow access to the
- | Register functions in AuthController.
- |
- | By default the registration is open only on localhost.
- */
-
- 'registration_open' => env('BACKPACK_REGISTRATION_OPEN', env('APP_ENV') === 'local'),
-
- /*
- |--------------------------------------------------------------------------
- | Routing
- |--------------------------------------------------------------------------
- */
-
- // The prefix used in all base routes (the 'admin' in admin/dashboard)
- // You can make sure all your URLs use this prefix by using the backpack_url() helper instead of url()
- 'route_prefix' => '',
-
- // The web middleware (group) used in all base & CRUD routes
- // If you've modified your "web" middleware group (ex: removed sessions), you can use a different
- // route group, that has all the the middleware listed below in the comments.
- 'web_middleware' => 'web',
- // Or you can comment the above, and uncomment the complete list below.
- // 'web_middleware' => [
- // \App\Http\Middleware\EncryptCookies::class,
- // \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
- // \Illuminate\Session\Middleware\StartSession::class,
- // \Illuminate\View\Middleware\ShareErrorsFromSession::class,
- // \App\Http\Middleware\VerifyCsrfToken::class,
- // ],
-
- // Set this to false if you would like to use your own AuthController and PasswordController
- // (you then need to setup your auth routes manually in your routes.php file)
- // Warning: if you disable this, the password recovery routes (below) will be disabled too!
- 'setup_auth_routes' => true,
-
- // Set this to false if you would like to skip adding the dashboard routes
- // (you then need to overwrite the login route on your AuthController)
- 'setup_dashboard_routes' => true,
-
- // Set this to false if you would like to skip adding "my account" routes
- // (you then need to manually define the routes in your web.php)
- 'setup_my_account_routes' => true,
-
- // Set this to false if you would like to skip adding the password recovery routes
- // (you then need to manually define the routes in your web.php)
- 'setup_password_recovery_routes' => true,
-
- /*
- |--------------------------------------------------------------------------
- | Security
- |--------------------------------------------------------------------------
- */
-
- // Backpack will prevent visitors from requesting password recovery too many times
- // for a certain email, to make sure they cannot be spammed that way.
- // How many seconds should a visitor wait, after they've requested a
- // password reset, before they can try again for the same email?
- 'password_recovery_throttle_notifications' => 600, // time in seconds
-
- // How much time should the token sent to the user email be considered valid?
- // After this time expires, user needs to request a new reset token.
- 'password_recovery_token_expiration' => 60, // time in minutes
-
- // Backpack will prevent an IP from trying to reset the password too many times,
- // so that a malicious actor cannot try too many emails, too see if they have
- // accounts or to increase the AWS/SendGrid/etc bill.
- //
- // How many times in any given time period should the user be allowed to
- // attempt a password reset? Take into account that user might wrongly
- // type an email at first, so at least allow one more try.
- // Defaults to 3,10 - 3 times in 10 minutes.
- 'password_recovery_throttle_access' => '3,10',
-
- /*
- |--------------------------------------------------------------------------
- | Authentication
- |--------------------------------------------------------------------------
- */
-
- // Fully qualified namespace of the User model
- 'user_model_fqn' => App\Models\AuthUser::class,
-
- // The classes for the middleware to check if the visitor is an admin
- // Can be a single class or an array of classes
- 'middleware_class' => [
- App\Http\Middleware\CheckIfAdmin::class,
- \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
- \Backpack\CRUD\app\Http\Middleware\UseBackpackAuthGuardInsteadOfDefaultAuthGuard::class,
- ],
-
- // Alias for that middleware
- 'middleware_key' => 'admin',
- // Note: It's recommended to use the backpack_middleware() helper everywhere, which pulls this key for you.
-
- // Username column for authentication
- // The Backpack default is the same as the Laravel default (email)
- // If you need to switch to username, you also need to create that column in your db
- 'authentication_column' => 'email',
- 'authentication_column_name' => 'Email',
-
- // Backpack assumes that your "database email column" for operations like Login and Register is called "email".
- // If your database email column have a different name, you can configure it here. Eg: `user_mail`
- 'email_column' => 'email',
-
- // The guard that protects the Backpack admin panel.
- // If null, the config.auth.defaults.guard value will be used.
- 'guard' => 'backpack',
-
- // The password reset configuration for Backpack.
- // If null, the config.auth.defaults.passwords value will be used.
- 'passwords' => 'backpack',
-
- // What kind of avatar will you like to show to the user?
- // Default: gravatar (automatically use the gravatar for their email)
- // Other options:
- // - null (generic image with their first letter)
- // - example_method_name (specify the method on the User model that returns the URL)
- 'avatar_type' => 'avatar',
-
- /*
- |--------------------------------------------------------------------------
- | Theme (User Interface)
- |--------------------------------------------------------------------------
- */
- // Change the view namespace in order to load a different theme than the one Backpack provides.
- // You can create child themes yourself, by creating a view folder anywhere in your resources/views
- // and choosing that view_namespace instead of the default one. Backpack will load a file from there
- // if it exists, otherwise it will load it from the default namespace ("backpack::").
-
- 'view_namespace' => 'backpack::',
-
- // EXAMPLE: if you create a new folder in resources/views/vendor/myname/mypackage,
- // your namespace would be the one below. IMPORTANT: in this case the namespace ends with a dot.
- // 'view_namespace' => 'vendor.myname.mypackage.',
-
- // Tell Backpack to look in more places for component views (like widgets)
- 'component_view_namespaces' => [
- 'widgets' => [
- 'backpack::widgets', // falls back to 'resources/views/vendor/backpack/base/widgets'
- ],
- ],
-
- /*
- |--------------------------------------------------------------------------
- | File System
- |--------------------------------------------------------------------------
- */
-
- // Backpack\Base sets up its own filesystem disk, just like you would by
- // adding an entry to your config/filesystems.php. It points to the root
- // of your project and it's used throughout all Backpack packages.
- //
- // You can rename this disk here. Default: root
- 'root_disk_name' => 'root',
-
- /*
- |--------------------------------------------------------------------------
- | Backpack Token Username
- |--------------------------------------------------------------------------
- |
- | If you have access to closed-source Backpack add-ons, please provide
- | your token username here, if you're getting yellow alerts on your
- | admin panel's pages. Normally this is not needed, it is
- | preferred to add this as an environment variable
- | (most likely in your .env file).
- |
- | More info and payment form on:
- | https://www.backpackforlaravel.com
- |
- */
-
- 'token_username' => env('BACKPACK_TOKEN_USERNAME', false),
-
- 'locales' => explode(',', env('BACKPACK_LOCALES', 'en')),
-];
--- /dev/null
+<?php
+return [
+ 'items' => [
+ ['label' => 'Tableau de bord', 'icon' => 'la la-dashboard', 'url' => 'dashboard'],
+ ['label' => 'Notifications', 'icon' => 'la la-bell', 'url' => 'tasks'],
+ ['label' => 'Partage de fichiers', 'icon' => 'las la-cloud', 'url' => 'file', 'can' => 'files:read'],
+ ['label' => 'e-Learning', 'icon' => 'la la-chalkboard-teacher', 'section' => 'elearning', 'items' => [
+ ['label' => 'Quiz', 'icon' => 'la la-question', 'url' => 'quiz', 'can' => 'quiz:read'],
+ ['label' => 'Thèmes', 'icon' => 'la la-palette', 'url' => 'quiz-theme', 'can' => 'quiz-theme:read'],
+ '----',
+ ['label' => 'Media', 'icon' => 'la la-photo-video', 'url' => 'elearning-media', 'can' => 'elearning-media:read'],
+ ['label' => 'Package', 'icon' => 'la la-cubes', 'url' => 'elearning-package', 'can' => 'elearning-package:read'],
+ ['label' => 'Traductions', 'icon' => 'la la-language', 'url' => 'elearning-translate', 'can' => 'quiztranslation:read'],
+ ]],
+ ['label' => 'Fluidbook', 'icon' => '/images/icons/icon-fluidbook.svg', 'section' => 'fluidbook', 'items' => [
+ ['label' => 'Publications', 'icon' => 'la la-book-reader', 'url' => 'fluidbook-publication', 'can' => 'fluidbook-publication:read'],
+ ['label' => 'Thème', 'icon' => 'la la-palette', 'url' => 'fluidbook-theme', 'can' => 'fluidbook-theme:read'],
+ ['label' => 'Jeux d\'icônes', 'icon' => 'la la-icons', 'url' => 'fluidbook-iconset', 'can' => 'fluidbook-iconset:read'],
+ ['label' => 'Collections', 'icon' => 'la la-university', 'url' => 'fluidbook-collection', 'can' => 'fluidbook-collection:read'],
+ ['label' => 'Traductions', 'icon' => 'la la-language', 'url' => 'fluidbook-translate/1/edit/?_locale=en', 'can' => 'fluidbook-translate:write'],
+ ['label' => 'Signatures', 'icon' => 'la la-signature', 'url' => 'fluidbook-signature', 'can' => 'fluidbook-signature:read'],
+ ['label' => 'Serveurs externes', 'icon' => 'la la-server', 'url' => 'fluidbook-external-install-server', 'can' => 'fluidbook-external-install-server:read'],
+ ['label' => 'Demandes de devis', 'icon' => 'la la-wpforms', 'url' => 'fluidbook-quote', 'can' => 'fluidbook-quote:read'],
+ ]],
+ ['label' => 'Outils', 'icon' => 'la la-tools', 'section' => 'tools', 'can' => 'tools', 'items' => [
+ ['url' => 'opentools/pdf2svg', 'icon' => 'nav-icon la la-images', 'label' => 'Conversion de PDF en images'],
+ ['url' => 'tools/resizer', 'icon' => 'las la-compress-arrows-alt', 'label' => 'Redimensionner des images'],
+ ['url' => 'tools/fluidbookassetsdownloader', 'icon' => 'las la-cloud-download-alt', 'label' => 'Téléchargement massif d\'assets dans un fluidbook'],
+ ['url' => 'tools/gitreposcreate', 'icon' => 'la la-git', 'label' => 'Créer un répertoire GIT'],
+ ['url' => 'tools/dockerwebcontainer', 'icon' => 'lab la-docker', 'label' => 'Créer un container web'],
+ ['url' => 'tools/tts', 'icon' => 'la la-volume-up', 'label' => 'Text to speech'],
+ ['url' => 'tools/json2excel', 'icon' => 'la la-file-excel', 'label' => 'JSON to Excel'],
+ ['url' => 'opentools/excel2json', 'icon' => 'las la-code', 'label' => 'Excel to JSON'],
+ ['url' => 'tools/fluidbookcopylinks', 'icon' => 'las la-link', 'label' => 'Copier les liens ou assets d\'un fluidbook'],
+ ['url' => 'tools/fluidbookbranchcreate', 'icon' => 'la la-git', 'label' => 'Créer une branche du player fluidbook'],
+ ['url' => 'tools/fluidbookbranchremove', 'icon' => 'la la-git', 'label' => 'Supprimer une branche du player fluidbook'],
+ ['url' => 'tools/fluidbookrefurl', 'icon' => 'las la-link', 'label' => 'Importer des bases de données de références fluidbook'],
+ ['url' => 'tools/favicongen', 'icon' => 'las la-icons', 'label' => 'Générer des favicons'],
+ ['url' => 'tool-sprite', 'icon' => 'las la-marker', 'label' => 'SVG Sprites'],
+ ['url' => 'opentools/sasscompiler', 'icon' => 'lab la-sass', 'label' => 'Compileur SASS'],
+ ['url' => 'tools/svgcleaner', 'icon' => 'la la-broom', 'label' => 'Nettoyer un SVG'],
+ ]],
+ ['label' => 'Clients', 'icon' => 'la la-group', 'section' => 'users', 'items' => [
+ ['label' => 'Clients', 'icon' => 'la la-building', 'url' => 'company', 'can' => 'company:read'],
+ ['label' => 'Utilisateurs', 'icon' => 'la la-user-lock', 'url' => 'users', 'can' => 'company:read'],
+ ['label' => 'Rôles', 'icon' => 'la la-group', 'url' => 'role', 'can' => 'managerolesandpersmissions'],
+ ['label' => 'Permissions', 'icon' => 'la la-key', 'url' => 'permission', 'can' => 'managerolesandpersmissions'],
+ ]],
+ ['label' => 'Équipe', 'icon' => 'la la-mug-hot', 'section' => 'team', 'items' => [
+ ['label' => 'Emails', 'icon' => 'la la-mail-bulk', 'url' => 'team-emails', 'can' => 'extranet:manage_emails'],
+ ['label' => 'Serveurs', 'icon' => 'la la-server', 'url' => 'team-servers', 'can' => 'extranet:manage_servers'],
+ ['label' => 'Bulletins de salaire', 'icon' => 'la la-file-invoice-dollar', 'url' => 'team-pay', 'can' => 'team-pay:read'],
+ ['label' => 'Heures supp', 'icon' => 'la la-stopwatch', 'url' => 'team-overtime', 'can' => 'team-overtime:read'],
+ ]],
+ ['label' => 'Administration', 'icon' => 'la la-cogs', 'section' => 'admin', 'items' => [
+ ['label' => 'Traduction', 'icon' => 'la la-language', 'url' => 'toolbox-translate/1/edit/?_locale=en', 'can' => 'toolbox-translate:admin'],
+ ]],
+ ]
+];
--- /dev/null
+<?php
+
+return [
+ /*
+ |--------------------------------------------------------------------------
+ | Theme Configuration Values
+ |--------------------------------------------------------------------------
+ |
+ | The file provides extra configs on top of config/backpack/ui.php
+ |
+ | Any value set here will override the ones defined in
+ | config/backpack/ui.php when this theme is in use.
+ |
+ */
+
+ /**
+ * 1st layer of customization
+ *
+ * Simple pick a layout and let Backpack decide the best look for it.
+ * No extra step is required.
+ *
+ * Possible values: horizontal, horizontal_dark, horizontal_overlap, vertical,
+ * vertical_dark, vertical_transparent (legacy theme), right_vertical, right_vertical_dark, right_vertical_transparent
+ */
+ 'layout' => 'horizontal',
+
+ /**
+ * Pick a login page layout.
+ * Possible values: default, illustration, cover
+ */
+ 'auth_layout' => 'default', // default, illustration, cover
+
+ /**
+ * Here you can easily load your own extra css styles.
+ * Note: if you want to customize the style to create your own custom skin colors:
+ * - make a copy of the file "vendor/backpack/theme-tabler/resources/assets/css/colors.css" into your project
+ * - adjust colors variables as you wish
+ * - replace "base_path('vendor/backpack/theme-tabler/resources/assets/css/colors.css')," with the path to the file created above
+ * - boom!
+ */
+ 'styles' => [
+ base_path('vendor/backpack/theme-tabler/resources/assets/css/color-adjustments.css'),
+ base_path('vendor/backpack/theme-tabler/resources/assets/css/colors.css'),
+ ],
+
+ /**
+ * 2nd Layer of customization
+ *
+ * If you need to further customize the way your panel looks,
+ * these options will help you achieve that.
+ */
+ 'options' => [
+ /**
+ * The available color modes.
+ */
+ 'colorModes' => [
+ 'system' => 'la-desktop',
+ 'light' => 'la-sun',
+ 'dark' => 'la-moon',
+ ],
+
+ /**
+ * The color mode used by default.
+ */
+ 'defaultColorMode' => 'light', // system, light, dark
+
+ /**
+ * When true, a switch is displayed to let admins choose their favorite theme mode.
+ * When false, the theme will only use the "defaultColorMode" set above.
+ * In case "defaultColorMode" is null, system is the default.
+ */
+ 'showColorModeSwitcher' => false,
+
+ /**
+ * Fix the top-header component (present in "vertical_transparent") and the menu when the layout type is set as "horizontal".
+ * This value is skipped when the layout type is horizontal-overlap, using false as default.
+ */
+ 'useStickyHeader' => false,
+
+ /**
+ * When true, the content area will take the whole screen width.
+ */
+ 'useFluidContainers' => false,
+
+ /**
+ * When true, the sidebar content for vertical layouts will not scroll with the rest of the content.
+ */
+ 'sidebarFixed' => false,
+
+ /**
+ * When true, horizontal layouts will display the classic top bar on top to free some space when multiple nav items are used.
+ */
+ 'doubleTopBarInHorizontalLayouts' => true,
+ ],
+
+ /**
+ * 3rd Layer of customization
+ *
+ * In case the first two steps were not enough, here you have full control over
+ * the classes that make up the look of your panel.
+ */
+ 'classes' => [
+ /**
+ * Use this to pass classes to the <body> HTML element, on all pages.
+ */
+ 'body' => null,
+
+ /**
+ * For background colors use:
+ * bg-dark, bg-primary, bg-secondary, bg-danger, bg-warning, bg-success, bg-info, bg-blue, bg-light-blue,
+ * bg-indigo, bg-purple, bg-pink, bg-red, bg-orange, bg-yellow, bg-green, bg-teal, bg-cyan, bg-white.
+ *
+ * For links to be visible on different background colors use: "navbar-dark", "navbar-light".
+ *
+ */
+ 'topHeader' => null,
+
+ /**
+ * Applies only for Vertical Menu Layout
+ * For standard sidebar look (transparent):
+ * - Remove "navbar-dark/light"
+ * - Remove "navbar-light/dark" from 'classes.topHeader' and instead use "bg-light"
+ * You can also add a background class like bg-dark, bg-primary, bg-secondary, bg-danger, bg-warning, bg-success,
+ * bg-info, bg-blue, bg-light-blue, bg-indigo, bg-purple, bg-pink, bg-red, bg-orange, bg-yellow, bg-green, bg-teal, bg-cyan
+ */
+ 'sidebar' => null,
+
+ /**
+ * Used in the top container menu when the layout is of horizontal type.
+ */
+ 'menuHorizontalContainer' => null,
+
+ /**
+ * Used in the top menu content when the layout is of horizontal type.
+ */
+ 'menuHorizontalContent' => null,
+
+ /**
+ * Make transparent with footer-transparent.
+ * Hide it with d-none.
+ *
+ * Change background color with bg-dark, bg-primary, bg-secondary, bg-danger, bg-warning, bg-success, bg-info,
+ * bg-blue, bg-light-blue, bg-indigo, bg-purple, bg-pink, bg-red, bg-orange, bg-yellow, bg-green, bg-teal, bg-cyan, bg-white.
+ */
+ 'footer' => null,
+
+ /**
+ * Use this to pass classes to the table displayed in List Operation
+ * It defaults to: "table table-striped table-hover nowrap rounded card-table table-vcenter card-table shadow-xs border-xs"
+ */
+ 'table' => null,
+
+ /**
+ * Use this to pass classes to the table wrapper component displayed in List Operation
+ */
+ 'tableWrapper' => null,
+ ],
+
+ /**
+ * 4th Layer of customization
+ *
+ * Alright, if nothing so far met your need, then you still have an easy way to build
+ * a custom layout using the already existing components of this theme.
+ *
+ * 1. Create a new blade file in resources/views/layouts/your-custom-layout.blade.php
+ * 2. Replace the value of layout on this file with "your-custom-layout"
+ * 3. Customize the blade and place components such as sidebar, header, top-bar, where you need them!
+ */
+];
// and choosing that view_namespace instead of the default one. Backpack will load a file from there
// if it exists, otherwise it will load it from the fallback namespace.
- 'view_namespace' => 'backpack.theme-coreuiv2::',
- 'view_namespace_fallback' => 'backpack.theme-coreuiv2::',
+ 'view_namespace' => 'toolbox.',
+ 'view_namespace_fallback' => 'backpack.theme-tabler::',
+
/*
|--------------------------------------------------------------------------
*/
// Date & Datetime Format Syntax: https://carbon.nesbot.com/docs/#api-localization
- 'default_date_format' => 'D MMM YYYY',
+ 'default_date_format' => 'D MMM YYYY',
'default_datetime_format' => 'D MMM YYYY, HH:mm',
// Direction, according to language
'home_link' => '',
// Menu logo. You can replace this with an <img> tag if you have a logo.
- 'project_logo' => '<b>Back</b>pack',
+ 'project_logo' => '<img src="/themes/' . env('THEME') . '/logo.svg" alt="' . env('APP_NAME') . '">',
// Show / hide breadcrumbs on admin panel pages.
- 'breadcrumbs' => true,
+ 'breadcrumbs' => false,
// ------
// FOOTER
// ------
// Developer or company name. Shown in footer.
- 'developer_name' => 'Cristian Tabacitu',
+ 'developer_name' => 'Fluidbook',
// Developer website. Link in footer. Type false if you want to hide it.
- 'developer_link' => 'http://tabacitu.ro',
+ 'developer_link' => env('POWERED_BY_LINK', 'https://www.fluidbook.com'),
// Show powered by Laravel Backpack in the footer? true/false
- 'show_powered_by' => true,
+ 'show_powered_by' => false,
// ---------
// DASHBOARD
'https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.3.0/jquery.form.min.js',
"https://cdnjs.cloudflare.com/ajax/libs/jquery-contextmenu/2.9.2/jquery.contextMenu.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/jquery-contextmenu/2.9.2/jquery.ui.position.min.js",
- 'https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/gsap.min.js',
+ 'https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.3/gsap.min.js',
'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js',
- 'https://cdnjs.cloudflare.com/ajax/libs/sweetalert2/11.7.3/sweetalert2.all.js',
+ 'https://cdnjs.cloudflare.com/ajax/libs/sweetalert2/11.10.1/sweetalert2.all.js',
// 'https://unpkg.com/vue@2.4.4/dist/vue.min.js',
// 'https://unpkg.com/react@16/umd/react.production.min.js',
// 'https://unpkg.com/react-dom@16/umd/react-dom.production.min.js',
'exceptions' => true, // Exception displayer
'log' => true, // Logs from Monolog (merged in messages if enabled)
'db' => true, // Show database (PDO) queries and bindings
- 'views' => false, // Views with their data
+ 'views' => true, // Views with their data
'route' => true, // Current route information
'auth' => true, // Display Laravel authentication status
'gate' => true, // Display Laravel Gate checks
'full_log' => false,
],
'views' => [
- 'timeline' => false, // Add the views to the timeline (Experimental)
+ 'timeline' => true, // Add the views to the timeline (Experimental)
'data' => false, //Note: Can slow down the application, because the data can be quite large..
'exclude_paths' => [], // Add the paths which you don't want to appear in the views
],
--- /dev/null
+<x-backpack::menu-item title="{{__('Tableau de bord')}}" icon="la la-dashboard" :link="backpack_url('dashboard')" />
+<x-backpack::menu-item title="{{__('Notifications')}}" icon="la la-bell" :link="backpack_url('tasks')" />
+@can('files:read')
+ <x-backpack::menu-item title="{{__('Partage de fichiers')}}" icon="las la-cloud" :link="backpack_url('file')" />
+@endcan
+@canany('["quiz:read","quiz-theme:read","elearning-media:read","elearning-package:read","quiztranslation:read"]')
+ <x-backpack::menu-dropdown title="{{__('e-Learning')}}" icon="la la-chalkboard-teacher">
+ @can('quiz:read')
+ <x-backpack::menu-dropdown-item title="{{__('Quiz')}}" icon="la la-question" :link="backpack_url('quiz')" />
+ @endcan
+ @can('quiz-theme:read')
+ <x-backpack::menu-dropdown-item title="{{__('Thèmes')}}" icon="la la-palette" :link="backpack_url('quiz-theme')" />
+ @endcan
+ <x-backpack::menu-separator title="Some text for separation" />
+ @can('elearning-media:read')
+ <x-backpack::menu-dropdown-item title="{{__('Media')}}" icon="la la-photo-video" :link="backpack_url('elearning-media')" />
+ @endcan
+ @can('elearning-package:read')
+ <x-backpack::menu-dropdown-item title="{{__('Package')}}" icon="la la-cubes" :link="backpack_url('elearning-package')" />
+ @endcan
+ @can('quiztranslation:read')
+ <x-backpack::menu-dropdown-item title="{{__('Traductions')}}" icon="la la-language" :link="backpack_url('elearning-translate')" />
+ @endcan
+ </x-backpack::menu-dropdown>
+@endcan
+@canany('["fluidbook-publication:read","fluidbook-theme:read","fluidbook-iconset:read","fluidbook-collection:read","fluidbook-translate:write","fluidbook-signature:read","fluidbook-external-install-server:read","fluidbook-quote:read"]')
+ <x-backpack::menu-dropdown title="{{__('Fluidbook')}}" icon="/images/icons/icon-fluidbook.svg">
+ @can('fluidbook-publication:read')
+ <x-backpack::menu-dropdown-item title="{{__('Publications')}}" icon="la la-book-reader" :link="backpack_url('fluidbook-publication')" />
+ @endcan
+ @can('fluidbook-theme:read')
+ <x-backpack::menu-dropdown-item title="{{__('Thème')}}" icon="la la-palette" :link="backpack_url('fluidbook-theme')" />
+ @endcan
+ @can('fluidbook-iconset:read')
+ <x-backpack::menu-dropdown-item title="{{__('Jeux d\'icônes')}}" icon="la la-icons" :link="backpack_url('fluidbook-iconset')" />
+ @endcan
+ @can('fluidbook-collection:read')
+ <x-backpack::menu-dropdown-item title="{{__('Collections')}}" icon="la la-university" :link="backpack_url('fluidbook-collection')" />
+ @endcan
+ @can('fluidbook-translate:write')
+ <x-backpack::menu-dropdown-item title="{{__('Traductions')}}" icon="la la-language" :link="backpack_url('fluidbook-translate/1/edit/?_locale=en')" />
+ @endcan
+ @can('fluidbook-signature:read')
+ <x-backpack::menu-dropdown-item title="{{__('Signatures')}}" icon="la la-signature" :link="backpack_url('fluidbook-signature')" />
+ @endcan
+ @can('fluidbook-external-install-server:read')
+ <x-backpack::menu-dropdown-item title="{{__('Serveurs externes')}}" icon="la la-server" :link="backpack_url('fluidbook-external-install-server')" />
+ @endcan
+ @can('fluidbook-quote:read')
+ <x-backpack::menu-dropdown-item title="{{__('Demandes de devis')}}" icon="la la-wpforms" :link="backpack_url('fluidbook-quote')" />
+ @endcan
+ </x-backpack::menu-dropdown>
+@endcan
+@can('tools')
+ <x-backpack::menu-dropdown title="{{__('Outils')}}" icon="la la-tools">
+ <x-backpack::menu-dropdown-item title="{{__('Conversion de PDF en images')}}" icon="nav-icon la la-images" :link="backpack_url('opentools/pdf2svg')" />
+ <x-backpack::menu-dropdown-item title="{{__('Redimensionner des images')}}" icon="las la-compress-arrows-alt" :link="backpack_url('tools/resizer')" />
+ <x-backpack::menu-dropdown-item title="{{__('Téléchargement massif d\'assets dans un fluidbook')}}" icon="las la-cloud-download-alt" :link="backpack_url('tools/fluidbookassetsdownloader')" />
+ <x-backpack::menu-dropdown-item title="{{__('Créer un répertoire GIT')}}" icon="la la-git" :link="backpack_url('tools/gitreposcreate')" />
+ <x-backpack::menu-dropdown-item title="{{__('Créer un container web')}}" icon="lab la-docker" :link="backpack_url('tools/dockerwebcontainer')" />
+ <x-backpack::menu-dropdown-item title="{{__('Text to speech')}}" icon="la la-volume-up" :link="backpack_url('tools/tts')" />
+ <x-backpack::menu-dropdown-item title="{{__('JSON to Excel')}}" icon="la la-file-excel" :link="backpack_url('tools/json2excel')" />
+ <x-backpack::menu-dropdown-item title="{{__('Excel to JSON')}}" icon="las la-code" :link="backpack_url('opentools/excel2json')" />
+ <x-backpack::menu-dropdown-item title="{{__('Copier les liens ou assets d\'un fluidbook')}}" icon="las la-link" :link="backpack_url('tools/fluidbookcopylinks')" />
+ <x-backpack::menu-dropdown-item title="{{__('Créer une branche du player fluidbook')}}" icon="la la-git" :link="backpack_url('tools/fluidbookbranchcreate')" />
+ <x-backpack::menu-dropdown-item title="{{__('Supprimer une branche du player fluidbook')}}" icon="la la-git" :link="backpack_url('tools/fluidbookbranchremove')" />
+ <x-backpack::menu-dropdown-item title="{{__('Importer des bases de données de références fluidbook')}}" icon="las la-link" :link="backpack_url('tools/fluidbookrefurl')" />
+ <x-backpack::menu-dropdown-item title="{{__('Générer des favicons')}}" icon="las la-icons" :link="backpack_url('tools/favicongen')" />
+ <x-backpack::menu-dropdown-item title="{{__('SVG Sprites')}}" icon="las la-marker" :link="backpack_url('tool-sprite')" />
+ <x-backpack::menu-dropdown-item title="{{__('Compileur SASS')}}" icon="lab la-sass" :link="backpack_url('opentools/sasscompiler')" />
+ <x-backpack::menu-dropdown-item title="{{__('Nettoyer un SVG')}}" icon="la la-broom" :link="backpack_url('tools/svgcleaner')" />
+ </x-backpack::menu-dropdown>
+@endcan
+@canany('["company:read","company:read","managerolesandpersmissions","managerolesandpersmissions"]')
+ <x-backpack::menu-dropdown title="{{__('Clients')}}" icon="la la-group">
+ @can('company:read')
+ <x-backpack::menu-dropdown-item title="{{__('Clients')}}" icon="la la-building" :link="backpack_url('company')" />
+ @endcan
+ @can('company:read')
+ <x-backpack::menu-dropdown-item title="{{__('Utilisateurs')}}" icon="la la-user-lock" :link="backpack_url('users')" />
+ @endcan
+ @can('managerolesandpersmissions')
+ <x-backpack::menu-dropdown-item title="{{__('Rôles')}}" icon="la la-group" :link="backpack_url('role')" />
+ @endcan
+ @can('managerolesandpersmissions')
+ <x-backpack::menu-dropdown-item title="{{__('Permissions')}}" icon="la la-key" :link="backpack_url('permission')" />
+ @endcan
+ </x-backpack::menu-dropdown>
+@endcan
+@canany('["extranet:manage_emails","extranet:manage_servers","team-pay:read","team-overtime:read"]')
+ <x-backpack::menu-dropdown title="{{__('Équipe')}}" icon="la la-mug-hot">
+ @can('extranet:manage_emails')
+ <x-backpack::menu-dropdown-item title="{{__('Emails')}}" icon="la la-mail-bulk" :link="backpack_url('team-emails')" />
+ @endcan
+ @can('extranet:manage_servers')
+ <x-backpack::menu-dropdown-item title="{{__('Serveurs')}}" icon="la la-server" :link="backpack_url('team-servers')" />
+ @endcan
+ @can('team-pay:read')
+ <x-backpack::menu-dropdown-item title="{{__('Bulletins de salaire')}}" icon="la la-file-invoice-dollar" :link="backpack_url('team-pay')" />
+ @endcan
+ @can('team-overtime:read')
+ <x-backpack::menu-dropdown-item title="{{__('Heures supp')}}" icon="la la-stopwatch" :link="backpack_url('team-overtime')" />
+ @endcan
+ </x-backpack::menu-dropdown>
+@endcan
+@can('toolbox-translate:admin')
+ <x-backpack::menu-dropdown title="{{__('Administration')}}" icon="la la-cogs">
+ @can('toolbox-translate:admin')
+ <x-backpack::menu-dropdown-item title="{{__('Traduction')}}" icon="la la-language" :link="backpack_url('toolbox-translate/1/edit/?_locale=en')" />
+ @endcan
+ </x-backpack::menu-dropdown>
+@endcan
--- /dev/null
+<header data-bs-theme={{ $theme ?? 'system' }} class="d-print-none {{ backpack_theme_config('classes.topHeader') ?? 'd-none d-lg-block px-3 navbar navbar-expand-md navbar-'.($theme ?? 'light') }}">
+ <div class="{{ backpack_theme_config('options.useFluidContainers') ? 'container-fluid' : 'container-xl' }}">
+ <div class="{{ backpack_theme_config('options.useFluidContainers') ? 'container-fluid' : 'container-xl' }} d-flex align-items-center justify-content-between">
+ <a class="h2 text-decoration-none mb-0" href="{{ url(backpack_theme_config('home_link')) }}" title="!!{{ backpack_theme_config('project_name') }}">
+ {!! backpack_theme_config('project_logo') !!}
+ </a>
+ <div class="navbar-nav">
+ @include(backpack_view('inc.menu'))
+ </div>
+ </div>
+ </div>
+
+</header>
+++ /dev/null
-{{-- __('!! Outils') --}}
-<ul class='nav-dropdown-items'>
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('opentools/pdf2svg') }}'><i
- class='nav-icon la la-images'></i>
- <span>{{__('Conversion de PDF en images')}}</span></a></li>
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/resizer') }}'><i
- class="nav-icon las la-compress-arrows-alt"></i>
- <span>{{__('Redimensionner des images')}}</span></a></li>
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/fluidbookassetsdownloader') }}'><i
- class='nav-icon las la-cloud-download-alt'></i>
- <span>{{__('Téléchargement massif d\'assets dans un fluidbook')}}</span></a></li>
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/gitreposcreate') }}'><i
- class='nav-icon la la-git'></i>
- <span>{{__('Créer un répertoire GIT')}}</span></a></li>
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/dockerwebcontainer') }}'><i
- class='nav-icon lab la-docker'></i>
- <span>{{__('Créer un container web')}}</span></a></li>
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/tts') }}'><i
- class='nav-icon la la-volume-up'></i>
- <span>{{__('Text to speech')}}</span></a></li>
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/json2excel') }}'><i
- class='nav-icon la la-file-excel'></i>
- <span>{{__('JSON to Excel')}}</span></a></li>
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('opentools/excel2json') }}'><i
- class='nav-icon las la-code'></i>
- <span>{{__('Excel to JSON')}}</span></a></li>
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/fluidbookcopylinks') }}'><i
- class='nav-icon las la-link'></i>
- <span>{{__('Copier les liens ou assets d\'un fluidbook')}}</span></a></li>
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/fluidbookbranchcreate') }}'><i
- class='nav-icon la la-git'></i>
- <span>{{__('Créer une branche du player fluidbook')}}</span></a></li>
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/fluidbookbranchremove') }}'><i
- class='nav-icon la la-git'></i>
- <span>{{__('Supprimer une branche du player fluidbook')}}</span></a></li>
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/fluidbookrefurl') }}'><i
- class='nav-icon las la-link'></i>
- <span>{{__('Importer des bases de données de références fluidbook')}}</span></a></li>
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/favicongen') }}'><i
- class='nav-icon las la-icons'></i>
- <span>{{__('Générer des favicons')}}</span></a></li>
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tool-sprite') }}'><i
- class="nav-icon las la-marker"></i>
- <span>{{__('SVG Sprites')}}</span></a></li>
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('opentools/sasscompiler') }}'><i
- class="nav-icon lab la-sass"></i>
- <span>{{__('Compileur SASS')}}</span></a></li>
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/svgcleaner') }}'><i
- class='nav-icon la la-broom'></i>
- <span>{{__('Nettoyer un SVG')}}</span></a></li>
-</ul>
@stack('after_styles')
<link rel="stylesheet" type="text/css" href="/themes/{{ config('theme.name') }}/style.css">
-
-{{-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --}}
- {{-- WARNING: Respond.js doesn't work if you view the page via file:// --}}
- <!--[if lt IE 9]>
-<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
-<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
-<![endif]-->
{{-- __('!! Toolbox') --}}
@php
- function sidebarState($id,$default=false){
- $default=$default?'1':'0';
+ if(!function_exists('toolboxSidebarState')){
+ function toolboxSidebarState($id,$default=false){
+ $default=$default?'1':'0';
- $state=(backpack_user()->getToolboxSetting('sidebar_'.$id,$default)=='1')?' open':'';
- return 'class="nav-item nav-dropdown'.$state.'" data-sidebar-id="'.$id.'"';
+ $state=(backpack_user()->getToolboxSetting('sidebar_'.$id,$default)=='1')?' open':'';
+ return 'class="nav-item nav-dropdown'.$state.'" data-sidebar-id="'.$id.'"';
+ }
}
@endphp
});
</script>
@endpush
-@if(config('app.env') !== 'ysl')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('dashboard') }}"><i
- class='nav-icon la la-dashboard'></i>{{ trans('backpack::base.dashboard') }}
- </a></li>
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('tasks') }}"><i
- class='nav-icon la la-bell'></i>{{ __('Notifications') }}
- </a></li>
+@php
+ $items=
- @can('files:read')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('file') }}"><i
- class='nav-icon las la-cloud'></i>{{ __('Partage de fichiers') }}
- </a></li>
- @endcan
-
- @canany(['quiz:read','quiztranslation:read','elearning_media:read'])
- <li {!! sidebarState('elearning',true) !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
- class='nav-icon la la-chalkboard-teacher'></i>{{__('e-Learning')}}</a>
- <ul class='nav-dropdown-items'>
- @can('quiz:read')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('quiz') }}"><i
- class="la la-question nav-icon"></i> {{__('Quiz')}}</a></li>
- @endcan
- @can('quiz-theme:read')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('quiz-theme') }}"><i
- class="la la-palette nav-icon"></i> {{__('Thèmes')}}</a></li>
- @endcan
- <li class="nav-divider"></li>
- @can('elearning-media:read')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('elearning-media') }}"><i
- class="la la-photo-video nav-icon"></i> {{__('Media')}}</a></li>
- @endcan
- @can('elearning-package:read')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('elearning-package') }}"><i
- class="la la-cubes nav-icon"></i> {{__('Package')}}</a></li>
- @endcan
-
- @can('quiztranslation:read')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('elearning-translate') }}"><i
- class="la la-language nav-icon"></i> {{__('Traductions')}}</a></li>
- @endcan
- </ul>
- </li>
- @endcanany
-@endif
-
-@canany(['fluidbook-quote:read','signature:read','fluidbook-theme:read','fluidbook-iconset:read','fluibook-translate:write','fluidbook-publication:read'])
- <li {!! sidebarState('fluidbook',true) !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
- class="nav-icon la"><img src="/images/icons/icon-fluidbook.svg"/></i>{{__('Fluidbook')}}</a>
- <ul class='nav-dropdown-items'>
- @can('fluidbook-publication:read')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('fluidbook-publication') }}"><i
- class="la la-book-reader nav-icon"></i> {{__('Publications')}}</a></li>
- @endcan
- @if(config('app.env') !== 'ysl')
- @can('fluidbook-theme:read')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('fluidbook-theme') }}"><i
- class="la la-palette nav-icon"></i> {{__('Thèmes')}}</a></li>
- @endcan
- @can('fluidbook-iconset:read')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('fluidbook-iconset') }}"><i
- class="la la-icons nav-icon"></i> {{__('Jeux d\'icônes')}}</a></li>
- @endcan
- @can('fluidbook-collection:read')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('fluidbook-collection') }}"><i
- class="la la-university nav-icon"></i> {{__('Collections')}}</a></li>
- @endcan
- @can('fluidbook-translate:write')
- <li class="nav-item"><a class="nav-link"
- href='{{ backpack_url('fluidbook-translate/1/edit/?_locale=en') }}'><i
- class='la la-language nav-icon'></i>
- <span> {{__('Traductions')}}</span></a>
- </li>
- @endcan
- @can('signature:read')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('signature') }}"><i
- class="la la-signature nav-icon"></i> {{__('Signatures')}}</a></li>
- @endcan
- @can('fluidbook-external-install-server:read')
- <li class="nav-item"><a class="nav-link"
- href="{{ backpack_url('fluidbook-external-install-server') }}"><i
- class="la las la-server nav-icon"></i> {{__('Serveurs externes')}}</a></li>
- @endcan
- @can('fluidbook-quote:read')
- <li class="nav-item"><a class="nav-link" href="{{ backpack_url('fluidbook-quote') }}"><i
- class="la la-wpforms nav-icon"></i> {{__('Demandes de devis')}}</a></li>
- @endcan
- @endif
- </ul>
- </li>
-@endcanany
-@if(config('app.env') !== 'ysl')
- @can('tools')
- <li {!! sidebarState('tools') !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
- class='nav-icon la la-tools'></i>{{__('Outils')}}</a>
- @include('tools.sidebar')
- </li>
- @endcan
- @canany(['users:read','company:read','managerolesandpersmissions'])
- <li {!! sidebarState('users') !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
- class='nav-icon la la-group'></i>{{__('Clients')}}</a>
- <ul class='nav-dropdown-items'>
- @can('company:read')
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('company') }}'><i
- class='nav-icon la la-building'></i>
- <span>{{__('Clients')}}</span></a></li>
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('users') }}'><i
- class='nav-icon la la-user-lock'></i>
- <span>{{__('Utilisateurs')}}</span></a></li>
- @endcan
- @can('managerolesandpersmissions')
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('role') }}'><i
- class='nav-icon la la-group'></i>
- <span>{{__('Roles')}}</span></a></li>
- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('permission') }}'><i
- class='nav-icon la la-key'></i><span>{{__('Permissions')}}</span></a></li>
- @endcan
- </ul>
- </li>
- @endcan
-
- @canany(['team-leave:read','team-overtime:read','extranet:manage_emails'])
- <li {!! sidebarState('team') !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
- class='nav-icon la la-mug-hot'></i>{{__('Équipe')}}</a>
- <ul class='nav-dropdown-items'>
- @can('extranet:manage_emails')
- <li class="nav-item"><a class="nav-link"
- href='{{ backpack_url('team-emails') }}'><i
- class='nav-icon la la-mail-bulk'></i>
- <span>{{__('Emails')}}</span></a>
- </li>
- @endcan
- @can('extranet:manage_servers')
- <li class="nav-item"><a class="nav-link"
- href='{{ backpack_url('team-servers') }}'><i
- class='nav-icon las la-server'></i>
- <span>{{__('Serveurs')}}</span></a>
- </li>
- @endcan
- @can('team-pay:read')
- <li class="nav-item"><a class="nav-link"
- href='{{ backpack_url('team-pay') }}'><i
- class="nav-icon las la-file-invoice-dollar"></i>
- <span>{{__('Bulletins de salaire')}}</span></a>
- </li>
- @endcan
- @can('team-leave:read')
- <li class="nav-item"><a class="nav-link"
- href='{{ backpack_url('team-leave') }}'><i
- class="nav-icon las la-umbrella-beach"></i>
- <span>{{__('Congés et absences')}}</span></a>
- </li>
- @endcan
- @can('team-overtime:read')
- <li class="nav-item"><a class="nav-link"
- href='{{ backpack_url('team-overtime') }}'><i
- class="nav-icon las la-stopwatch"></i>
- <span>{{__('Heures supp')}}</span></a>
- </li>
- @endcan
- </ul>
- </li>
- @endcan
-
- @canany(['maintenance','toolbox-translate:admin'])
- <li {!! sidebarState('admin') !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
- class='nav-icon la la-cogs'></i>{{__('Administration')}}</a>
- <ul class='nav-dropdown-items'>
- @can('toolbox-translate:admin')
- <li class="nav-item"><a class="nav-link"
- href='{{ backpack_url('toolbox-translate/1/edit/?_locale=en') }}'><i
- class='la la-language'></i>
- <span>{{__('Traduction')}}</span></a>
- </li>
- @endcan
- @can('maintenance')
- <li class="nav-item"><a class="nav-link" href='{{ backpack_url('backup') }}'><i
- class='la la-hdd-o'></i>
- <span>{{__('Sauvegardes')}}</span></a>
- </li>
- <li class="nav-item"><a class="nav-link" href='{{ backpack_url('log') }}'><i
- class='la la-terminal'></i>
- <span>{{__('Journaux d\'erreurs')}}</span></a>
- </li>
- @endcan
- </ul>
- </li>
- @endcanany
-@endif
-
+@endphp