]> _ Git - cubist_cms-back.git/commitdiff
wip #3439 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 27 Feb 2020 16:10:48 +0000 (17:10 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 27 Feb 2020 16:10:48 +0000 (17:10 +0100)
37 files changed:
src/resources/install/.env [new file with mode: 0644]
src/resources/install/app/bootstrap.php [new file with mode: 0644]
src/resources/install/config/app.php [new file with mode: 0644]
src/resources/install/config/auth.php [new file with mode: 0644]
src/resources/install/config/backpack/base.php [new file with mode: 0644]
src/resources/install/config/backpack/crud.php [new file with mode: 0644]
src/resources/install/config/backpack/langfilemanager.php [new file with mode: 0644]
src/resources/install/config/backpack/permissionmanager.php [new file with mode: 0644]
src/resources/install/config/backup.php [new file with mode: 0644]
src/resources/install/config/base.php [new file with mode: 0644]
src/resources/install/config/blade-svg.php [new file with mode: 0644]
src/resources/install/config/broadcasting.php [new file with mode: 0644]
src/resources/install/config/cache.php [new file with mode: 0644]
src/resources/install/config/crud.php [new file with mode: 0644]
src/resources/install/config/cubist-front.php [new file with mode: 0644]
src/resources/install/config/cubist.php [new file with mode: 0644]
src/resources/install/config/database.php [new file with mode: 0644]
src/resources/install/config/elasticsearch.php [new file with mode: 0644]
src/resources/install/config/elfinder.php [new file with mode: 0644]
src/resources/install/config/features.php [new file with mode: 0644]
src/resources/install/config/filesystems.php [new file with mode: 0644]
src/resources/install/config/googletagmanager.php [new file with mode: 0644]
src/resources/install/config/gravatar.php [new file with mode: 0644]
src/resources/install/config/gtag.php [new file with mode: 0644]
src/resources/install/config/hashing.php [new file with mode: 0644]
src/resources/install/config/laravel-menu/settings.php [new file with mode: 0644]
src/resources/install/config/laravel-menu/views.php [new file with mode: 0644]
src/resources/install/config/logging.php [new file with mode: 0644]
src/resources/install/config/mail.php [new file with mode: 0644]
src/resources/install/config/markdown.php [new file with mode: 0644]
src/resources/install/config/medialibrary.php [new file with mode: 0644]
src/resources/install/config/permission.php [new file with mode: 0644]
src/resources/install/config/prologue/alerts.php [new file with mode: 0644]
src/resources/install/config/queue.php [new file with mode: 0644]
src/resources/install/config/services.php [new file with mode: 0644]
src/resources/install/config/session.php [new file with mode: 0644]
src/resources/install/config/view.php [new file with mode: 0644]

diff --git a/src/resources/install/.env b/src/resources/install/.env
new file mode 100644 (file)
index 0000000..043de38
--- /dev/null
@@ -0,0 +1,41 @@
+APP_NAME=QuizFactory
+APP_ENV=staging
+APP_KEY=base64:DRIdIwSEuQNkxuUTfyyRyssizosh3D9QHWTnobrW44U=
+APP_DEBUG=true
+APP_URL=https://quizfactory.cubedesigners.com
+
+LOG_CHANNEL=stack
+APP_LOG=daily
+
+DB_CONNECTION=mysql
+DB_SOCKET=/var/run/mysqld/mysqld.sock
+DB_HOST=127.0.0.1
+DB_PORT=3306
+DB_DATABASE=quizfactory
+DB_USERNAME=extranet
+DB_PASSWORD=WvcAeYBDnrB93RXa
+
+LOCALE=en
+LOCALE_FALLBACK=en
+
+BROADCAST_DRIVER=log
+CACHE_DRIVER=file
+QUEUE_CONNECTION=sync
+SESSION_DRIVER=file
+SESSION_LIFETIME=120
+
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
+REDIS_PORT=6379
+
+MAIL_DRIVER=smtp
+MAIL_HOST=localhost
+MAIL_PORT=25
+MAIL_USERNAME=null
+MAIL_PASSWORD=null
+MAIL_ENCRYPTION=null
+MAIL_FROM_ADDRESS=null
+MAIL_FROM_NAME="${APP_NAME}"
+
+MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
+MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
diff --git a/src/resources/install/app/bootstrap.php b/src/resources/install/app/bootstrap.php
new file mode 100644 (file)
index 0000000..8d4e15e
--- /dev/null
@@ -0,0 +1,55 @@
+<?php
+
+/*
+|--------------------------------------------------------------------------
+| Create The Application
+|--------------------------------------------------------------------------
+|
+| The first thing we will do is create a new Laravel application instance
+| which serves as the "glue" for all the components of Laravel, and is
+| the IoC container for the system binding all of the various parts.
+|
+*/
+
+$app = new Cubist\Backpack\Application(
+    $_ENV['APP_BASE_PATH'] ?? dirname(__DIR__)
+);
+
+/*
+|--------------------------------------------------------------------------
+| Bind Important Interfaces
+|--------------------------------------------------------------------------
+|
+| Next, we need to bind some important interfaces into the container so
+| we will be able to resolve them when needed. The kernels serve the
+| incoming requests to this application from both the web and CLI.
+|
+*/
+
+$app->singleton(
+    Illuminate\Contracts\Http\Kernel::class,
+    App\Http\Kernel::class
+);
+
+$app->singleton(
+    Illuminate\Contracts\Console\Kernel::class,
+    App\Console\Kernel::class
+);
+
+$app->singleton(
+    Illuminate\Contracts\Debug\ExceptionHandler::class,
+    App\Exceptions\Handler::class
+);
+
+/*
+|--------------------------------------------------------------------------
+| Return The Application
+|--------------------------------------------------------------------------
+|
+| This script returns the application instance. The instance is given to
+| the calling script so we can separate the building of the instances
+| from the actual running of the application and sending responses.
+|
+*/
+
+return $app;
diff --git a/src/resources/install/config/app.php b/src/resources/install/config/app.php
new file mode 100644 (file)
index 0000000..a3498e1
--- /dev/null
@@ -0,0 +1,258 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Application Name
+    |--------------------------------------------------------------------------
+    |
+    | This value is the name of your application. This value is used when the
+    | framework needs to place the application's name in a notification or
+    | any other location as required by the application or its packages.
+    |
+    */
+
+    'name' => env('APP_NAME', 'Laravel'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Application Environment
+    |--------------------------------------------------------------------------
+    |
+    | This value determines the "environment" your application is currently
+    | running in. This may determine how you prefer to configure various
+    | services the application utilizes. Set this in your ".env" file.
+    |
+    */
+
+    'env' => env('APP_ENV', 'production'),
+
+
+    /*
+     * Variants
+     */
+
+    'variants' => env('APP_VARIANTS', '') === '' ? [] : explode(',', env('APP_VARIANTS')),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Application Debug Mode
+    |--------------------------------------------------------------------------
+    |
+    | When your application is in debug mode, detailed error messages with
+    | stack traces will be shown on every error that occurs within your
+    | application. If disabled, a simple generic error page is shown.
+    |
+    */
+
+    'debug' => env('APP_DEBUG', false),
+
+    'debug_blacklist' => [
+        '_ENV' => [
+            'APP_KEY',
+            'DB_PASSWORD',
+            'REDIS_PASSWORD',
+            'MAIL_PASSWORD',
+            'PUSHER_APP_KEY',
+            'PUSHER_APP_SECRET',
+            'BACKPACK_LICENSE',
+        ],
+        '_SERVER' => [
+            'APP_KEY',
+            'DB_PASSWORD',
+            'REDIS_PASSWORD',
+            'MAIL_PASSWORD',
+            'PUSHER_APP_KEY',
+            'PUSHER_APP_SECRET',
+            'BACKPACK_LICENSE',
+        ],
+        '_POST' => [
+            'password',
+        ],
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Application URL
+    |--------------------------------------------------------------------------
+    |
+    | This URL is used by the console to properly generate URLs when using
+    | the Artisan command line tool. You should set this to the root of
+    | your application so that it is used when running Artisan tasks.
+    |
+    */
+
+    'url' => env('APP_URL', 'http://localhost'),
+
+    'asset_url' => env('ASSET_URL', null),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Application Timezone
+    |--------------------------------------------------------------------------
+    |
+    | Here you may specify the default timezone for your application, which
+    | will be used by the PHP date and date-time functions. We have gone
+    | ahead and set this to a sensible default for you out of the box.
+    |
+    */
+
+    'timezone' => 'UTC',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Application Locale Configuration
+    |--------------------------------------------------------------------------
+    |
+    | The application locale determines the default locale that will be used
+    | by the translation service provider. You are free to set this value
+    | to any of the locales which will be supported by the application.
+    |
+    */
+
+    'locale' => env('LOCALE','en'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Application Fallback Locale
+    |--------------------------------------------------------------------------
+    |
+    | The fallback locale determines the locale to use when the current one
+    | is not available. You may change the value to correspond to any of
+    | the language folders that are provided through your application.
+    |
+    */
+
+    'fallback_locale' => env('LOCALE_FALLBACK','en'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Faker Locale
+    |--------------------------------------------------------------------------
+    |
+    | This locale will be used by the Faker PHP library when generating fake
+    | data for your database seeds. For example, this will be used to get
+    | localized telephone numbers, street address information and more.
+    |
+    */
+
+    'faker_locale' => 'en_US',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Encryption Key
+    |--------------------------------------------------------------------------
+    |
+    | This key is used by the Illuminate encrypter service and should be set
+    | to a random, 32 character string, otherwise these encrypted strings
+    | will not be safe. Please do this before deploying an application!
+    |
+    */
+
+    'key' => env('APP_KEY'),
+
+    'cipher' => 'AES-256-CBC',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Autoloaded Service Providers
+    |--------------------------------------------------------------------------
+    |
+    | The service providers listed here will be automatically loaded on the
+    | request to your application. Feel free to add your own services to
+    | this array to grant expanded functionality to your applications.
+    |
+    */
+
+    'providers' => [
+
+        /*
+         * Laravel Framework Service Providers...
+         */
+        Illuminate\Auth\AuthServiceProvider::class,
+        Illuminate\Broadcasting\BroadcastServiceProvider::class,
+        Illuminate\Bus\BusServiceProvider::class,
+        Illuminate\Cache\CacheServiceProvider::class,
+        Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
+        Cubist\Backpack\CookieServiceProvider::class,
+        Illuminate\Database\DatabaseServiceProvider::class,
+        Illuminate\Encryption\EncryptionServiceProvider::class,
+        Illuminate\Filesystem\FilesystemServiceProvider::class,
+        Illuminate\Foundation\Providers\FoundationServiceProvider::class,
+        Illuminate\Hashing\HashServiceProvider::class,
+        Illuminate\Mail\MailServiceProvider::class,
+        Illuminate\Notifications\NotificationServiceProvider::class,
+        Illuminate\Pagination\PaginationServiceProvider::class,
+        Illuminate\Pipeline\PipelineServiceProvider::class,
+        Illuminate\Queue\QueueServiceProvider::class,
+        Illuminate\Redis\RedisServiceProvider::class,
+        Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
+        Illuminate\Session\SessionServiceProvider::class,
+        Illuminate\Translation\TranslationServiceProvider::class,
+        Illuminate\Validation\ValidationServiceProvider::class,
+        Illuminate\View\ViewServiceProvider::class,
+
+        /*
+         * Package Service Providers...
+         */
+
+        /*
+         * Application Service Providers...
+         */
+        App\Providers\AppServiceProvider::class,
+        App\Providers\AuthServiceProvider::class,
+        // App\Providers\BroadcastServiceProvider::class,
+        App\Providers\EventServiceProvider::class,
+        App\Providers\RouteServiceProvider::class,
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Class Aliases
+    |--------------------------------------------------------------------------
+    |
+    | This array of class aliases will be registered when this application
+    | is started. However, feel free to register as many as you wish as
+    | the aliases are "lazy" loaded so they don't hinder performance.
+    |
+    */
+
+    'aliases' => [
+
+        'App' => Illuminate\Support\Facades\App::class,
+        'Artisan' => Illuminate\Support\Facades\Artisan::class,
+        'Auth' => Illuminate\Support\Facades\Auth::class,
+        'Blade' => Illuminate\Support\Facades\Blade::class,
+        'Broadcast' => Illuminate\Support\Facades\Broadcast::class,
+        'Bus' => Illuminate\Support\Facades\Bus::class,
+        'Cache' => Illuminate\Support\Facades\Cache::class,
+        'Config' => Illuminate\Support\Facades\Config::class,
+        'Cookie' => Illuminate\Support\Facades\Cookie::class,
+        'Crypt' => Illuminate\Support\Facades\Crypt::class,
+        'DB' => Illuminate\Support\Facades\DB::class,
+        'Eloquent' => Illuminate\Database\Eloquent\Model::class,
+        'Event' => Illuminate\Support\Facades\Event::class,
+        'File' => Illuminate\Support\Facades\File::class,
+        'Gate' => Illuminate\Support\Facades\Gate::class,
+        'Hash' => Illuminate\Support\Facades\Hash::class,
+        'Lang' => Illuminate\Support\Facades\Lang::class,
+        'Log' => Illuminate\Support\Facades\Log::class,
+        'Mail' => Illuminate\Support\Facades\Mail::class,
+        'Notification' => Illuminate\Support\Facades\Notification::class,
+        'Password' => Illuminate\Support\Facades\Password::class,
+        'Queue' => Illuminate\Support\Facades\Queue::class,
+        'Redirect' => Illuminate\Support\Facades\Redirect::class,
+        'Redis' => Illuminate\Support\Facades\Redis::class,
+        'Request' => Illuminate\Support\Facades\Request::class,
+        'Response' => Illuminate\Support\Facades\Response::class,
+        'Route' => Illuminate\Support\Facades\Route::class,
+        'Schema' => Illuminate\Support\Facades\Schema::class,
+        'Session' => Illuminate\Support\Facades\Session::class,
+        'Storage' => Illuminate\Support\Facades\Storage::class,
+        'URL' => Illuminate\Support\Facades\URL::class,
+        'Validator' => Illuminate\Support\Facades\Validator::class,
+        'View' => Illuminate\Support\Facades\View::class,
+    ],
+
+];
diff --git a/src/resources/install/config/auth.php b/src/resources/install/config/auth.php
new file mode 100644 (file)
index 0000000..8d5b185
--- /dev/null
@@ -0,0 +1,102 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Authentication Defaults
+    |--------------------------------------------------------------------------
+    |
+    | This option controls the default authentication "guard" and password
+    | reset options for your application. You may change these defaults
+    | as required, but they're a perfect start for most applications.
+    |
+    */
+
+    'defaults' => [
+        'guard' => 'admin',
+        'passwords' => 'users',
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Authentication Guards
+    |--------------------------------------------------------------------------
+    |
+    | Next, you may define every authentication guard for your application.
+    | Of course, a great default configuration has been defined for you
+    | here which uses session storage and the Eloquent user provider.
+    |
+    | All authentication drivers have a user provider. This defines how the
+    | users are actually retrieved out of your database or other storage
+    | mechanisms used by this application to persist your user's data.
+    |
+    | Supported: "session", "token"
+    |
+    */
+
+    'guards' => [
+        'web' => [
+            'driver' => 'session',
+            'provider' => 'users',
+        ],
+
+        'api' => [
+            'driver' => 'token',
+            'provider' => 'users',
+        ],
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | User Providers
+    |--------------------------------------------------------------------------
+    |
+    | All authentication drivers have a user provider. This defines how the
+    | users are actually retrieved out of your database or other storage
+    | mechanisms used by this application to persist your user's data.
+    |
+    | If you have multiple user tables or models you may configure multiple
+    | sources which represent each model / table. These sources may then
+    | be assigned to any extra authentication guards you have defined.
+    |
+    | Supported: "database", "eloquent"
+    |
+    */
+
+    'providers' => [
+        'users' => [
+            'driver' => 'eloquent',
+            'model' => App\User::class,
+        ],
+
+        // 'users' => [
+        //     'driver' => 'database',
+        //     'table' => 'users',
+        // ],
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Resetting Passwords
+    |--------------------------------------------------------------------------
+    |
+    | You may specify multiple password reset configurations if you have more
+    | than one user table or model in the application and you want to have
+    | separate password reset settings based on the specific user types.
+    |
+    | The expire time is the number of minutes that the reset token should be
+    | considered valid. This security feature keeps tokens short-lived so
+    | they have less time to be guessed. You may change this as needed.
+    |
+    */
+
+    'passwords' => [
+        'users' => [
+            'provider' => 'users',
+            'table' => 'password_resets',
+            'expire' => 60,
+        ],
+    ],
+
+];
diff --git a/src/resources/install/config/backpack/base.php b/src/resources/install/config/backpack/base.php
new file mode 100644 (file)
index 0000000..568e15b
--- /dev/null
@@ -0,0 +1,277 @@
+<?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' => 'Project 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' => 'admin',
+
+    // Content of the HTML meta robots tag to prevent indexing and link following
+    'meta_robots_content' => 'noindex, nofollow',
+
+    // ------
+    // STYLES
+    // ------
+
+    // CSS files that are loaded in all pages, using Laravel's asset() helper
+    'styles' => [
+        'packages/backpack/base/css/bundle.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' => '',
+    ],
+
+    // ------
+    // HEADER
+    // ------
+
+    // Menu logo. You can replace this with an <img> tag if you have a logo.
+    'project_logo'   => '<b>PROJECT</b> LOGO',
+
+    // 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 bg-purple 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',
+    // 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' => 'Cubedesigners',
+
+    // Developer website. Link in footer. Type false if you want to hide it.
+    'developer_link' => 'https://www.cubedesigners.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',
+
+        // 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/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' => '',
+    ],
+
+    // -------------
+    // CACHE-BUSTING
+    // -------------
+
+    // All JS and CSS assets defined above have this string appended as query string (?v=string).
+    // If you want to manually trigger cachebusting for all styles and scripts,
+    // append or prepent something to the string below, so that it's different.
+    'cachebusting_string' => \PackageVersions\Versions::getVersion('backpack/crud'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | 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' => 'admin',
+
+    // 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)
+    '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,
+
+    /*
+    |--------------------------------------------------------------------------
+    | Authentication
+    |--------------------------------------------------------------------------
+    */
+
+    // Fully qualified namespace of the User model
+    'user_model_fqn' => App\Models\BackpackUser::class,
+
+    // The classes for the middleware to check if the visitor is an admin
+    // Can be a single class or an array of clases
+    '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',
+
+    // 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 his email)
+    // Other options:
+    // - placehold (generic image with his first letter)
+    // - example_method_name (specify the method on the User model that returns the URL)
+    'avatar_type' => 'gravatar',
+
+    /*
+    |--------------------------------------------------------------------------
+    | 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.',
+
+    /*
+    |--------------------------------------------------------------------------
+    | 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',
+
+    /*
+    |--------------------------------------------------------------------------
+    | License Code
+    |--------------------------------------------------------------------------
+    |
+    | If you, your employer or your client make money by using Backpack, you need
+    | to purchase a license. A license code will be provided after purchase,
+    | which you can put here or in your ENV file in staging & production.
+    |
+    | More info and payment form on:
+    | https://www.backpackforlaravel.com
+    |
+    */
+
+    'license_code' => env('BACKPACK_LICENSE', false),
+];
diff --git a/src/resources/install/config/backpack/crud.php b/src/resources/install/config/backpack/crud.php
new file mode 100644 (file)
index 0000000..9a35027
--- /dev/null
@@ -0,0 +1,549 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Backpack\CRUD preferences
+    |--------------------------------------------------------------------------
+    */
+
+    /*
+    |------------
+    | CREATE & UPDATE
+    |------------
+    */
+    // Where do you want to redirect the user by default, after a CRUD entry is saved in the Add or Edit forms?
+    'default_save_action' => 'save_and_back', //options: save_and_back, save_and_edit, save_and_new
+
+    // When the user chooses "save and back" or "save and new", show a bubble
+    // for the fact that the default save action has been changed?
+    'show_save_action_change' => true, //options: true, false
+
+    // When using tabbed forms (create & update), what kind of tabs would you like?
+    'tabs_type' => 'horizontal', //options: horizontal, vertical
+
+    // How would you like the validation errors to be shown?
+    'show_grouped_errors' => true,
+    'show_inline_errors' => true,
+
+    // Here you may override the css-classes for the content section of the create view globally
+    // To override per view use $this->crud->setCreateContentClass('class-string')
+    'create_content_class' => 'col-md-8 col-md-offset-2',
+
+    // Here you may override the css-classes for the content section of the edit view globally
+    // To override per view use $this->crud->setEditContentClass('class-string')
+    'edit_content_class' => 'col-md-8 col-md-offset-2',
+
+    // Here you may override the css-classes for the content section of the revisions timeline view globally
+    // To override per view use $this->crud->setRevisionsTimelineContentClass('class-string')
+    'revisions_timeline_content_class' => 'col-md-10 col-md-offset-1',
+
+    /*
+    |------------
+    | READ
+    |------------
+    */
+
+    // LIST VIEW (table view)
+
+    // enable the datatables-responsive plugin, which hides columns if they don't fit?
+    // if not, a horizontal scrollbar will be shown instead
+    'responsive_table' => true,
+
+    // stores pagination and filters in localStorage for two hours
+    // whenever the user tries to see that page, backpack loads the previous pagination and filtration
+    'persistent_table' => false,
+
+    // How many items should be shown by default by the Datatable?
+    // This value can be overwritten on a specific CRUD by calling
+    // $this->crud->setDefaultPageLength(50);
+    'default_page_length' => 25,
+
+    // A 1D array of options which will be used for both the displayed option and the value, or
+    // A 2D array in which the first array is used to define the value options and the second array the displayed options
+    // If a 2D array is used, strings in the right hand array will be automatically run through trans()
+    'page_length_menu' => [[10, 25, 50, 100, -1], [10, 25, 50, 100, 'backpack::crud.all']],
+
+    // Here you may override the css-class for the content section of the list view globally
+    // To override per view use $this->crud->setListContentClass('class-string')
+    'list_content_class' => 'col-md-12',
+
+    // SHOW (PREVIEW)
+
+    // Here you may override the css-classes for the content section of the show view globally
+    // To override per view use $this->crud->setShowContentClass('class-string')
+    'show_content_class' => 'col-md-8 col-md-offset-2',
+
+    /*
+    |------------
+    | DELETE
+    |------------
+    */
+
+    /*
+    |------------
+    | REORDER
+    |------------
+    */
+
+    // Here you may override the css-classes for the content section of the reorder view globally
+    // To override per view use $this->crud->setReorderContentClass('class-string')
+    'reorder_content_class' => 'col-md-8 col-md-offset-2',
+
+    /*
+    |------------
+    | DETAILS ROW
+    |------------
+    */
+
+    /*
+    |-------------------
+    | TRANSLATABLE CRUDS
+    |-------------------
+    */
+
+    'show_translatable_field_icon' => true,
+    'translatable_field_icon_position' => 'right', // left or right
+
+    'locales' => [
+        'fr' => 'French',
+        'en' => 'English',
+        "de" => "German",
+        // "af_NA" => "Afrikaans (Namibia)",
+        // "af_ZA" => "Afrikaans (South Africa)",
+        // "af" => "Afrikaans",
+        // "ak_GH" => "Akan (Ghana)",
+        // "ak" => "Akan",
+        // "sq_AL" => "Albanian (Albania)",
+        // "sq" => "Albanian",
+        // "am_ET" => "Amharic (Ethiopia)",
+        // "am" => "Amharic",
+        // "ar_DZ" => "Arabic (Algeria)",
+        // "ar_BH" => "Arabic (Bahrain)",
+        // "ar_EG" => "Arabic (Egypt)",
+        // "ar_IQ" => "Arabic (Iraq)",
+        // "ar_JO" => "Arabic (Jordan)",
+        // "ar_KW" => "Arabic (Kuwait)",
+        // "ar_LB" => "Arabic (Lebanon)",
+        // "ar_LY" => "Arabic (Libya)",
+        // "ar_MA" => "Arabic (Morocco)",
+        // "ar_OM" => "Arabic (Oman)",
+        // "ar_QA" => "Arabic (Qatar)",
+        // "ar_SA" => "Arabic (Saudi Arabia)",
+        // "ar_SD" => "Arabic (Sudan)",
+        // "ar_SY" => "Arabic (Syria)",
+        // "ar_TN" => "Arabic (Tunisia)",
+        // "ar_AE" => "Arabic (United Arab Emirates)",
+        // "ar_YE" => "Arabic (Yemen)",
+        // "ar" => "Arabic",
+        // "hy_AM" => "Armenian (Armenia)",
+        // "hy" => "Armenian",
+        // "as_IN" => "Assamese (India)",
+        // "as" => "Assamese",
+        // "asa_TZ" => "Asu (Tanzania)",
+        // "asa" => "Asu",
+        // "az_Cyrl" => "Azerbaijani (Cyrillic)",
+        // "az_Cyrl_AZ" => "Azerbaijani (Cyrillic, Azerbaijan)",
+        // "az_Latn" => "Azerbaijani (Latin)",
+        // "az_Latn_AZ" => "Azerbaijani (Latin, Azerbaijan)",
+        // "az" => "Azerbaijani",
+        // "bm_ML" => "Bambara (Mali)",
+        // "bm" => "Bambara",
+        // "eu_ES" => "Basque (Spain)",
+        // "eu" => "Basque",
+        // "be_BY" => "Belarusian (Belarus)",
+        // "be" => "Belarusian",
+        // "bem_ZM" => "Bemba (Zambia)",
+        // "bem" => "Bemba",
+        // "bez_TZ" => "Bena (Tanzania)",
+        // "bez" => "Bena",
+        // "bn_BD" => "Bengali (Bangladesh)",
+        // "bn_IN" => "Bengali (India)",
+        // "bn" => "Bengali",
+        // "bs_BA" => "Bosnian (Bosnia and Herzegovina)",
+        // "bs" => "Bosnian",
+        // "bg_BG" => "Bulgarian (Bulgaria)",
+        // "bg" => "Bulgarian",
+        // "my_MM" => "Burmese (Myanmar [Burma])",
+        // "my" => "Burmese",
+        // "ca_ES" => "Catalan (Spain)",
+        // "ca" => "Catalan",
+        // "tzm_Latn" => "Central Morocco Tamazight (Latin)",
+        // "tzm_Latn_MA" => "Central Morocco Tamazight (Latin, Morocco)",
+        // "tzm" => "Central Morocco Tamazight",
+        // "chr_US" => "Cherokee (United States)",
+        // "chr" => "Cherokee",
+        // "cgg_UG" => "Chiga (Uganda)",
+        // "cgg" => "Chiga",
+        // "zh_Hans" => "Chinese (Simplified Han)",
+        // "zh_Hans_CN" => "Chinese (Simplified Han, China)",
+        // "zh_Hans_HK" => "Chinese (Simplified Han, Hong Kong SAR China)",
+        // "zh_Hans_MO" => "Chinese (Simplified Han, Macau SAR China)",
+        // "zh_Hans_SG" => "Chinese (Simplified Han, Singapore)",
+        // "zh_Hant" => "Chinese (Traditional Han)",
+        // "zh_Hant_HK" => "Chinese (Traditional Han, Hong Kong SAR China)",
+        // "zh_Hant_MO" => "Chinese (Traditional Han, Macau SAR China)",
+        // "zh_Hant_TW" => "Chinese (Traditional Han, Taiwan)",
+        // "zh" => "Chinese",
+        // "kw_GB" => "Cornish (United Kingdom)",
+        // "kw" => "Cornish",
+        // "hr_HR" => "Croatian (Croatia)",
+        // "hr" => "Croatian",
+        // "cs_CZ" => "Czech (Czech Republic)",
+        // "cs" => "Czech",
+        // "da_DK" => "Danish (Denmark)",
+        // "da" => "Danish",
+        // "nl_BE" => "Dutch (Belgium)",
+        // "nl_NL" => "Dutch (Netherlands)",
+        // "nl" => "Dutch",
+        // "ebu_KE" => "Embu (Kenya)",
+        // "ebu" => "Embu",
+        // "en_AS" => "English (American Samoa)",
+        // "en_AU" => "English (Australia)",
+        // "en_BE" => "English (Belgium)",
+        // "en_BZ" => "English (Belize)",
+        // "en_BW" => "English (Botswana)",
+        // "en_CA" => "English (Canada)",
+        // "en_GU" => "English (Guam)",
+        // "en_HK" => "English (Hong Kong SAR China)",
+        // "en_IN" => "English (India)",
+        // "en_IE" => "English (Ireland)",
+        // "en_JM" => "English (Jamaica)",
+        // "en_MT" => "English (Malta)",
+        // "en_MH" => "English (Marshall Islands)",
+        // "en_MU" => "English (Mauritius)",
+        // "en_NA" => "English (Namibia)",
+        // "en_NZ" => "English (New Zealand)",
+        // "en_MP" => "English (Northern Mariana Islands)",
+        // "en_PK" => "English (Pakistan)",
+        // "en_PH" => "English (Philippines)",
+        // "en_SG" => "English (Singapore)",
+        // "en_ZA" => "English (South Africa)",
+        // "en_TT" => "English (Trinidad and Tobago)",
+        // "en_UM" => "English (U.S. Minor Outlying Islands)",
+        // "en_VI" => "English (U.S. Virgin Islands)",
+        // "en_GB" => "English (United Kingdom)",
+        // "en_US" => "English (United States)",
+        // "en_ZW" => "English (Zimbabwe)",
+
+        // "eo" => "Esperanto",
+        // "et_EE" => "Estonian (Estonia)",
+        // "et" => "Estonian",
+        // "ee_GH" => "Ewe (Ghana)",
+        // "ee_TG" => "Ewe (Togo)",
+        // "ee" => "Ewe",
+        // "fo_FO" => "Faroese (Faroe Islands)",
+        // "fo" => "Faroese",
+        // "fil_PH" => "Filipino (Philippines)",
+        // "fil" => "Filipino",
+        // "fi_FI" => "Finnish (Finland)",
+        // "fi" => "Finnish",
+        // "fr_BE" => "French (Belgium)",
+        // "fr_BJ" => "French (Benin)",
+        // "fr_BF" => "French (Burkina Faso)",
+        // "fr_BI" => "French (Burundi)",
+        // "fr_CM" => "French (Cameroon)",
+        // "fr_CA" => "French (Canada)",
+        // "fr_CF" => "French (Central African Republic)",
+        // "fr_TD" => "French (Chad)",
+        // "fr_KM" => "French (Comoros)",
+        // "fr_CG" => "French (Congo - Brazzaville)",
+        // "fr_CD" => "French (Congo - Kinshasa)",
+        // "fr_CI" => "French (Côte d’Ivoire)",
+        // "fr_DJ" => "French (Djibouti)",
+        // "fr_GQ" => "French (Equatorial Guinea)",
+        // "fr_FR" => "French (France)",
+        // "fr_GA" => "French (Gabon)",
+        // "fr_GP" => "French (Guadeloupe)",
+        // "fr_GN" => "French (Guinea)",
+        // "fr_LU" => "French (Luxembourg)",
+        // "fr_MG" => "French (Madagascar)",
+        // "fr_ML" => "French (Mali)",
+        // "fr_MQ" => "French (Martinique)",
+        // "fr_MC" => "French (Monaco)",
+        // "fr_NE" => "French (Niger)",
+        // "fr_RW" => "French (Rwanda)",
+        // "fr_RE" => "French (Réunion)",
+        // "fr_BL" => "French (Saint Barthélemy)",
+        // "fr_MF" => "French (Saint Martin)",
+        // "fr_SN" => "French (Senegal)",
+        // "fr_CH" => "French (Switzerland)",
+        // "fr_TG" => "French (Togo)",
+
+        // "ff_SN" => "Fulah (Senegal)",
+        // "ff" => "Fulah",
+        // "gl_ES" => "Galician (Spain)",
+        // "gl" => "Galician",
+        // "lg_UG" => "Ganda (Uganda)",
+        // "lg" => "Ganda",
+        // "ka_GE" => "Georgian (Georgia)",
+        // "ka" => "Georgian",
+        // "de_AT" => "German (Austria)",
+        // "de_BE" => "German (Belgium)",
+        // "de_DE" => "German (Germany)",
+        // "de_LI" => "German (Liechtenstein)",
+        // "de_LU" => "German (Luxembourg)",
+        // "de_CH" => "German (Switzerland)",
+
+        // "el_CY" => "Greek (Cyprus)",
+        // "el_GR" => "Greek (Greece)",
+        // "el" => "Greek",
+        // "gu_IN" => "Gujarati (India)",
+        // "gu" => "Gujarati",
+        // "guz_KE" => "Gusii (Kenya)",
+        // "guz" => "Gusii",
+        // "ha_Latn" => "Hausa (Latin)",
+        // "ha_Latn_GH" => "Hausa (Latin, Ghana)",
+        // "ha_Latn_NE" => "Hausa (Latin, Niger)",
+        // "ha_Latn_NG" => "Hausa (Latin, Nigeria)",
+        // "ha" => "Hausa",
+        // "haw_US" => "Hawaiian (United States)",
+        // "haw" => "Hawaiian",
+        // "he_IL" => "Hebrew (Israel)",
+        // "he" => "Hebrew",
+        // "hi_IN" => "Hindi (India)",
+        // "hi" => "Hindi",
+        // "hu_HU" => "Hungarian (Hungary)",
+        // "hu" => "Hungarian",
+        // "is_IS" => "Icelandic (Iceland)",
+        // "is" => "Icelandic",
+        // "ig_NG" => "Igbo (Nigeria)",
+        // "ig" => "Igbo",
+        // "id_ID" => "Indonesian (Indonesia)",
+        // "id" => "Indonesian",
+        // "ga_IE" => "Irish (Ireland)",
+        // "ga" => "Irish",
+        // "it_IT" => "Italian (Italy)",
+        // "it_CH" => "Italian (Switzerland)",
+        //'it' => 'Italian',
+        // "ja_JP" => "Japanese (Japan)",
+        // "ja" => "Japanese",
+        // "kea_CV" => "Kabuverdianu (Cape Verde)",
+        // "kea" => "Kabuverdianu",
+        // "kab_DZ" => "Kabyle (Algeria)",
+        // "kab" => "Kabyle",
+        // "kl_GL" => "Kalaallisut (Greenland)",
+        // "kl" => "Kalaallisut",
+        // "kln_KE" => "Kalenjin (Kenya)",
+        // "kln" => "Kalenjin",
+        // "kam_KE" => "Kamba (Kenya)",
+        // "kam" => "Kamba",
+        // "kn_IN" => "Kannada (India)",
+        // "kn" => "Kannada",
+        // "kk_Cyrl" => "Kazakh (Cyrillic)",
+        // "kk_Cyrl_KZ" => "Kazakh (Cyrillic, Kazakhstan)",
+        // "kk" => "Kazakh",
+        // "km_KH" => "Khmer (Cambodia)",
+        // "km" => "Khmer",
+        // "ki_KE" => "Kikuyu (Kenya)",
+        // "ki" => "Kikuyu",
+        // "rw_RW" => "Kinyarwanda (Rwanda)",
+        // "rw" => "Kinyarwanda",
+        // "kok_IN" => "Konkani (India)",
+        // "kok" => "Konkani",
+        // "ko_KR" => "Korean (South Korea)",
+        // "ko" => "Korean",
+        // "khq_ML" => "Koyra Chiini (Mali)",
+        // "khq" => "Koyra Chiini",
+        // "ses_ML" => "Koyraboro Senni (Mali)",
+        // "ses" => "Koyraboro Senni",
+        // "lag_TZ" => "Langi (Tanzania)",
+        // "lag" => "Langi",
+        // "lv_LV" => "Latvian (Latvia)",
+        // "lv" => "Latvian",
+        // "lt_LT" => "Lithuanian (Lithuania)",
+        // "lt" => "Lithuanian",
+        // "luo_KE" => "Luo (Kenya)",
+        // "luo" => "Luo",
+        // "luy_KE" => "Luyia (Kenya)",
+        // "luy" => "Luyia",
+        // "mk_MK" => "Macedonian (Macedonia)",
+        // "mk" => "Macedonian",
+        // "jmc_TZ" => "Machame (Tanzania)",
+        // "jmc" => "Machame",
+        // "kde_TZ" => "Makonde (Tanzania)",
+        // "kde" => "Makonde",
+        // "mg_MG" => "Malagasy (Madagascar)",
+        // "mg" => "Malagasy",
+        // "ms_BN" => "Malay (Brunei)",
+        // "ms_MY" => "Malay (Malaysia)",
+        // "ms" => "Malay",
+        // "ml_IN" => "Malayalam (India)",
+        // "ml" => "Malayalam",
+        // "mt_MT" => "Maltese (Malta)",
+        // "mt" => "Maltese",
+        // "gv_GB" => "Manx (United Kingdom)",
+        // "gv" => "Manx",
+        // "mr_IN" => "Marathi (India)",
+        // "mr" => "Marathi",
+        // "mas_KE" => "Masai (Kenya)",
+        // "mas_TZ" => "Masai (Tanzania)",
+        // "mas" => "Masai",
+        // "mer_KE" => "Meru (Kenya)",
+        // "mer" => "Meru",
+        // "mfe_MU" => "Morisyen (Mauritius)",
+        // "mfe" => "Morisyen",
+        // "naq_NA" => "Nama (Namibia)",
+        // "naq" => "Nama",
+        // "ne_IN" => "Nepali (India)",
+        // "ne_NP" => "Nepali (Nepal)",
+        // "ne" => "Nepali",
+        // "nd_ZW" => "North Ndebele (Zimbabwe)",
+        // "nd" => "North Ndebele",
+        // "nb_NO" => "Norwegian BokmÃ¥l (Norway)",
+        // "nb" => "Norwegian BokmÃ¥l",
+        // "nn_NO" => "Norwegian Nynorsk (Norway)",
+        // "nn" => "Norwegian Nynorsk",
+        // "nyn_UG" => "Nyankole (Uganda)",
+        // "nyn" => "Nyankole",
+        // "or_IN" => "Oriya (India)",
+        // "or" => "Oriya",
+        // "om_ET" => "Oromo (Ethiopia)",
+        // "om_KE" => "Oromo (Kenya)",
+        // "om" => "Oromo",
+        // "ps_AF" => "Pashto (Afghanistan)",
+        // "ps" => "Pashto",
+        // "fa_AF" => "Persian (Afghanistan)",
+        // "fa_IR" => "Persian (Iran)",
+        // "fa" => "Persian",
+        // "pl_PL" => "Polish (Poland)",
+        // "pl" => "Polish",
+        // "pt_BR" => "Portuguese (Brazil)",
+        // "pt_GW" => "Portuguese (Guinea-Bissau)",
+        // "pt_MZ" => "Portuguese (Mozambique)",
+        // "pt_PT" => "Portuguese (Portugal)",
+        // "pt" => "Portuguese",
+        // "pa_Arab" => "Punjabi (Arabic)",
+        // "pa_Arab_PK" => "Punjabi (Arabic, Pakistan)",
+        // "pa_Guru" => "Punjabi (Gurmukhi)",
+        // "pa_Guru_IN" => "Punjabi (Gurmukhi, India)",
+        // "pa" => "Punjabi",
+        // "ro_MD" => "Romanian (Moldova)",
+        // "ro_RO" => "Romanian (Romania)",
+        //'ro' => 'Romanian',
+        // "rm_CH" => "Romansh (Switzerland)",
+        // "rm" => "Romansh",
+        // "rof_TZ" => "Rombo (Tanzania)",
+        // "rof" => "Rombo",
+        // "ru_MD" => "Russian (Moldova)",
+        // "ru_RU" => "Russian (Russia)",
+        // "ru_UA" => "Russian (Ukraine)",
+        // "ru" => "Russian",
+        // "rwk_TZ" => "Rwa (Tanzania)",
+        // "rwk" => "Rwa",
+        // "saq_KE" => "Samburu (Kenya)",
+        // "saq" => "Samburu",
+        // "sg_CF" => "Sango (Central African Republic)",
+        // "sg" => "Sango",
+        // "seh_MZ" => "Sena (Mozambique)",
+        // "seh" => "Sena",
+        // "sr_Cyrl" => "Serbian (Cyrillic)",
+        // "sr_Cyrl_BA" => "Serbian (Cyrillic, Bosnia and Herzegovina)",
+        // "sr_Cyrl_ME" => "Serbian (Cyrillic, Montenegro)",
+        // "sr_Cyrl_RS" => "Serbian (Cyrillic, Serbia)",
+        // "sr_Latn" => "Serbian (Latin)",
+        // "sr_Latn_BA" => "Serbian (Latin, Bosnia and Herzegovina)",
+        // "sr_Latn_ME" => "Serbian (Latin, Montenegro)",
+        // "sr_Latn_RS" => "Serbian (Latin, Serbia)",
+        // "sr" => "Serbian",
+        // "sn_ZW" => "Shona (Zimbabwe)",
+        // "sn" => "Shona",
+        // "ii_CN" => "Sichuan Yi (China)",
+        // "ii" => "Sichuan Yi",
+        // "si_LK" => "Sinhala (Sri Lanka)",
+        // "si" => "Sinhala",
+        // "sk_SK" => "Slovak (Slovakia)",
+        // "sk" => "Slovak",
+        // "sl_SI" => "Slovenian (Slovenia)",
+        // "sl" => "Slovenian",
+        // "xog_UG" => "Soga (Uganda)",
+        // "xog" => "Soga",
+        // "so_DJ" => "Somali (Djibouti)",
+        // "so_ET" => "Somali (Ethiopia)",
+        // "so_KE" => "Somali (Kenya)",
+        // "so_SO" => "Somali (Somalia)",
+        // "so" => "Somali",
+        // "es_AR" => "Spanish (Argentina)",
+        // "es_BO" => "Spanish (Bolivia)",
+        // "es_CL" => "Spanish (Chile)",
+        // "es_CO" => "Spanish (Colombia)",
+        // "es_CR" => "Spanish (Costa Rica)",
+        // "es_DO" => "Spanish (Dominican Republic)",
+        // "es_EC" => "Spanish (Ecuador)",
+        // "es_SV" => "Spanish (El Salvador)",
+        // "es_GQ" => "Spanish (Equatorial Guinea)",
+        // "es_GT" => "Spanish (Guatemala)",
+        // "es_HN" => "Spanish (Honduras)",
+        // "es_419" => "Spanish (Latin America)",
+        // "es_MX" => "Spanish (Mexico)",
+        // "es_NI" => "Spanish (Nicaragua)",
+        // "es_PA" => "Spanish (Panama)",
+        // "es_PY" => "Spanish (Paraguay)",
+        // "es_PE" => "Spanish (Peru)",
+        // "es_PR" => "Spanish (Puerto Rico)",
+        // "es_ES" => "Spanish (Spain)",
+        // "es_US" => "Spanish (United States)",
+        // "es_UY" => "Spanish (Uruguay)",
+        // "es_VE" => "Spanish (Venezuela)",
+        // "es" => "Spanish",
+        // "sw_KE" => "Swahili (Kenya)",
+        // "sw_TZ" => "Swahili (Tanzania)",
+        // "sw" => "Swahili",
+        // "sv_FI" => "Swedish (Finland)",
+        // "sv_SE" => "Swedish (Sweden)",
+        // "sv" => "Swedish",
+        // "gsw_CH" => "Swiss German (Switzerland)",
+        // "gsw" => "Swiss German",
+        // "shi_Latn" => "Tachelhit (Latin)",
+        // "shi_Latn_MA" => "Tachelhit (Latin, Morocco)",
+        // "shi_Tfng" => "Tachelhit (Tifinagh)",
+        // "shi_Tfng_MA" => "Tachelhit (Tifinagh, Morocco)",
+        // "shi" => "Tachelhit",
+        // "dav_KE" => "Taita (Kenya)",
+        // "dav" => "Taita",
+        // "ta_IN" => "Tamil (India)",
+        // "ta_LK" => "Tamil (Sri Lanka)",
+        // "ta" => "Tamil",
+        // "te_IN" => "Telugu (India)",
+        // "te" => "Telugu",
+        // "teo_KE" => "Teso (Kenya)",
+        // "teo_UG" => "Teso (Uganda)",
+        // "teo" => "Teso",
+        // "th_TH" => "Thai (Thailand)",
+        // "th" => "Thai",
+        // "bo_CN" => "Tibetan (China)",
+        // "bo_IN" => "Tibetan (India)",
+        // "bo" => "Tibetan",
+        // "ti_ER" => "Tigrinya (Eritrea)",
+        // "ti_ET" => "Tigrinya (Ethiopia)",
+        // "ti" => "Tigrinya",
+        // "to_TO" => "Tonga (Tonga)",
+        // "to" => "Tonga",
+        // "tr_TR" => "Turkish (Turkey)",
+        // "tr" => "Turkish",
+        // "uk_UA" => "Ukrainian (Ukraine)",
+        // "uk" => "Ukrainian",
+        // "ur_IN" => "Urdu (India)",
+        // "ur_PK" => "Urdu (Pakistan)",
+        // "ur" => "Urdu",
+        // "uz_Arab" => "Uzbek (Arabic)",
+        // "uz_Arab_AF" => "Uzbek (Arabic, Afghanistan)",
+        // "uz_Cyrl" => "Uzbek (Cyrillic)",
+        // "uz_Cyrl_UZ" => "Uzbek (Cyrillic, Uzbekistan)",
+        // "uz_Latn" => "Uzbek (Latin)",
+        // "uz_Latn_UZ" => "Uzbek (Latin, Uzbekistan)",
+        // "uz" => "Uzbek",
+        // "vi_VN" => "Vietnamese (Vietnam)",
+        // "vi" => "Vietnamese",
+        // "vun_TZ" => "Vunjo (Tanzania)",
+        // "vun" => "Vunjo",
+        // "cy_GB" => "Welsh (United Kingdom)",
+        // "cy" => "Welsh",
+        // "yo_NG" => "Yoruba (Nigeria)",
+        // "yo" => "Yoruba",
+        // "zu_ZA" => "Zulu (South Africa)",
+        // "zu" => "Zulu"
+    ],
+
+];
diff --git a/src/resources/install/config/backpack/langfilemanager.php b/src/resources/install/config/backpack/langfilemanager.php
new file mode 100644 (file)
index 0000000..005661b
--- /dev/null
@@ -0,0 +1,10 @@
+<?php
+
+return [
+
+    // DO NOT ALLOW EDITS ON THESE LANGUAGE FILES
+    // Language files to NOT show in the LangFile Manager
+    //
+    'language_ignore' => ['pagination', 'reminders', 'validation', 'log', 'crud'],
+
+];
diff --git a/src/resources/install/config/backpack/permissionmanager.php b/src/resources/install/config/backpack/permissionmanager.php
new file mode 100644 (file)
index 0000000..ed07ad7
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Models
+    |--------------------------------------------------------------------------
+    |
+    | Models used in the User, Role and Permission CRUDs.
+    |
+    */
+
+    'models' => [
+        'user' => App\Models\BackpackUser::class,
+        'permission' => Backpack\PermissionManager\app\Models\Permission::class,
+        'role' => Backpack\PermissionManager\app\Models\Role::class,
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Disallow the user interface for creating/updating permissions or roles.
+    |--------------------------------------------------------------------------
+    | Roles and permissions are used in code by their name
+    | - ex: $user->hasPermissionTo('edit articles');
+    |
+    | So after the developer has entered all permissions and roles, the administrator should either:
+    | - not have access to the panels
+    | or
+    | - creating and updating should be disabled
+    */
+
+    'allow_permission_create' => true,
+    'allow_permission_update' => true,
+    'allow_permission_delete' => true,
+    'allow_role_create'       => true,
+    'allow_role_update'       => true,
+    'allow_role_delete'       => true,
+
+    /*
+    |--------------------------------------------------------------------------
+    | Multiple-guards functionality
+    |--------------------------------------------------------------------------
+    |
+    */
+    'multiple_guards' => false,
+
+];
diff --git a/src/resources/install/config/backup.php b/src/resources/install/config/backup.php
new file mode 100644 (file)
index 0000000..deaa8a4
--- /dev/null
@@ -0,0 +1,202 @@
+<?php
+
+return [
+
+    'backup' => [
+
+        /* --------------------------------------
+         * Backpack\BackupManager Command Flags
+         * --------------------------------------
+         * These flags will be attached every time a backup is triggered
+         * by Backpack\BackupManager. By default only notifications are disabled.
+         *
+         * https://docs.spatie.be/laravel-backup/v4/taking-backups/overview
+         * --only-to-disk=name-of-your-disk
+         * --only-db
+         * --only-files
+         * --disable-notifications
+         */
+        'backpack_flags' => [
+            '--disable-notifications'=> true,
+        ],
+
+        /*
+         * The name of this application. You can use this name to monitor
+         * the backups.
+         */
+        'name' => env('APP_URL'),
+
+        'source' => [
+
+            'files' => [
+
+                /*
+                 * The list of directories that should be part of the backup. You can
+                 * specify individual files as well.
+                 */
+                'include' => [
+                    base_path(),
+                ],
+
+                /*
+                 * These directories will be excluded from the backup.
+                 * You can specify individual files as well.
+                 */
+                'exclude' => [
+                    base_path('vendor'),
+                    storage_path(),
+                ],
+
+                /*
+                 * Determines if symlinks should be followed.
+                 */
+                'followLinks' => false,
+            ],
+
+            /*
+             * The names of the connections to the databases that should be part of the backup.
+             * Currently only MySQL- and PostgreSQL-databases are supported.
+             */
+            'databases' => [
+                'mysql',
+            ],
+        ],
+
+        /*
+         * The database dump can be gzipped to decrease diskspace usage.
+         */
+        'gzip_database_dump' => false,
+
+        'destination' => [
+
+            /*
+             * The filename prefix used for the backup zip file.
+             */
+            'filename_prefix' => '',
+
+            /*
+             * The disk names on which the backups will be stored.
+             */
+            'disks' => [
+                'backups',
+            ],
+        ],
+
+        'temporary_directory' => storage_path('app/backup-temp'),
+    ],
+
+    /*
+     * You can get notified when specific events occur. Out of the box you can use 'mail' and 'slack'.
+     * For Slack you need to install guzzlehttp/guzzle.
+     *
+     * You can also use your own notification classes, just make sure the class is named after one of
+     * the `Spatie\Backup\Events` classes.
+     */
+    'notifications' => [
+
+        'notifications' => [
+            \Spatie\Backup\Notifications\Notifications\BackupHasFailed::class         => ['mail'],
+            \Spatie\Backup\Notifications\Notifications\UnhealthyBackupWasFound::class => ['mail'],
+            \Spatie\Backup\Notifications\Notifications\CleanupHasFailed::class        => ['mail'],
+            \Spatie\Backup\Notifications\Notifications\BackupWasSuccessful::class     => ['mail'],
+            \Spatie\Backup\Notifications\Notifications\HealthyBackupWasFound::class   => ['mail'],
+            \Spatie\Backup\Notifications\Notifications\CleanupWasSuccessful::class    => ['mail'],
+        ],
+
+        /*
+         * Here you can specify the notifiable to which the notifications should be sent. The default
+         * notifiable will use the variables specified in this config file.
+         */
+        'notifiable' => \Spatie\Backup\Notifications\Notifiable::class,
+
+        /*
+         * Here you can specify how emails should be sent.
+         */
+        'mail' => [
+            'to'   => 'your@email.com',
+        ],
+
+        /*
+         * Here you can specify how messages should be sent to Slack.
+         */
+        'slack' => [
+            'webhook_url' => '',
+
+            /*
+             * If this is set to null the default channel of the webhook will be used.
+             */
+            'channel' => null,
+        ],
+    ],
+
+    /*
+     * Here you can specify which backups should be monitored.
+     * If a backup does not meet the specified requirements the
+     * UnHealthyBackupWasFound event will be fired.
+     */
+    'monitorBackups' => [
+        [
+            'name'                                   => env('APP_NAME'),
+            'disks'                                  => ['backups'],
+            'newestBackupsShouldNotBeOlderThanDays'  => 1,
+            'storageUsedMayNotBeHigherThanMegabytes' => 5000,
+        ],
+
+        /*
+        [
+            'name' => 'name of the second app',
+            'disks' => ['local', 's3'],
+            'newestBackupsShouldNotBeOlderThanDays' => 1,
+            'storageUsedMayNotBeHigherThanMegabytes' => 5000,
+        ],
+        */
+    ],
+
+    'cleanup' => [
+        /*
+         * The strategy that will be used to cleanup old backups. The default strategy
+         * will keep all backups for a certain amount of days. After that period only
+         * a daily backup will be kept. After that period only weekly backups will
+         * be kept and so on.
+         *
+         * No matter how you configure it the default strategy will never
+         * delete the newest backup.
+         */
+        'strategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,
+
+        'defaultStrategy' => [
+
+            /*
+             * The number of days for which backups must be kept.
+             */
+            'keepAllBackupsForDays' => 7,
+
+            /*
+             * The number of days for which daily backups must be kept.
+             */
+            'keepDailyBackupsForDays' => 16,
+
+            /*
+             * The number of weeks for which one weekly backup must be kept.
+             */
+            'keepWeeklyBackupsForWeeks' => 8,
+
+            /*
+             * The number of months for which one monthly backup must be kept.
+             */
+            'keepMonthlyBackupsForMonths' => 4,
+
+            /*
+             * The number of years for which one yearly backup must be kept.
+             */
+            'keepYearlyBackupsForYears' => 2,
+
+            /*
+             * After cleaning up the backups remove the oldest backup until
+             * this amount of megabytes has been reached.
+             */
+            'deleteOldestBackupsWhenUsingMoreMegabytesThan' => 5000,
+        ],
+    ],
+
+];
diff --git a/src/resources/install/config/base.php b/src/resources/install/config/base.php
new file mode 100644 (file)
index 0000000..2e26533
--- /dev/null
@@ -0,0 +1,277 @@
+<?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' => 'Quiz Factory',
+
+    // 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' => 'admin',
+
+    // Content of the HTML meta robots tag to prevent indexing and link following
+    'meta_robots_content' => 'noindex, nofollow',
+
+    // ------
+    // STYLES
+    // ------
+
+    // CSS files that are loaded in all pages, using Laravel's asset() helper
+    'styles' => [
+        'packages/backpack/base/css/bundle.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' => '',
+    ],
+
+    // ------
+    // HEADER
+    // ------
+
+    // Menu logo. You can replace this with an <img> tag if you have a logo.
+    'project_logo'   => '<b>PROJECT</b>LOGO',
+
+    // 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 bg-purple 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',
+    // 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' => 'Cubedesigners',
+
+    // Developer website. Link in footer. Type false if you want to hide it.
+    'developer_link' => 'https://www.cubedesigners.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',
+
+        // 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/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' => '',
+    ],
+
+    // -------------
+    // CACHE-BUSTING
+    // -------------
+
+    // All JS and CSS assets defined above have this string appended as query string (?v=string).
+    // If you want to manually trigger cachebusting for all styles and scripts,
+    // append or prepent something to the string below, so that it's different.
+    'cachebusting_string' => \PackageVersions\Versions::getVersion('backpack/crud'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | 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' => 'admin',
+
+    // 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)
+    '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,
+
+    /*
+    |--------------------------------------------------------------------------
+    | Authentication
+    |--------------------------------------------------------------------------
+    */
+
+    // Fully qualified namespace of the User model
+    'user_model_fqn' => App\Models\BackpackUser::class,
+
+    // The classes for the middleware to check if the visitor is an admin
+    // Can be a single class or an array of clases
+    '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',
+
+    // 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 his email)
+    // Other options:
+    // - placehold (generic image with his first letter)
+    // - example_method_name (specify the method on the User model that returns the URL)
+    'avatar_type' => 'gravatar',
+
+    /*
+    |--------------------------------------------------------------------------
+    | 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.',
+
+    /*
+    |--------------------------------------------------------------------------
+    | 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',
+
+    /*
+    |--------------------------------------------------------------------------
+    | License Code
+    |--------------------------------------------------------------------------
+    |
+    | If you, your employer or your client make money by using Backpack, you need
+    | to purchase a license. A license code will be provided after purchase,
+    | which you can put here or in your ENV file in staging & production.
+    |
+    | More info and payment form on:
+    | https://www.backpackforlaravel.com
+    |
+    */
+
+    'license_code' => env('BACKPACK_LICENSE', false),
+];
diff --git a/src/resources/install/config/blade-svg.php b/src/resources/install/config/blade-svg.php
new file mode 100644 (file)
index 0000000..4d4a955
--- /dev/null
@@ -0,0 +1,72 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | SVG Path
+    |--------------------------------------------------------------------------
+    |
+    | This value is the path to the directory of individual SVG files. This
+    | path is then resolved internally. Please ensure that this value is
+    | set relative to the root directory and not the public directory.
+    |
+    */
+
+    'svg_path' => 'public/images',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Spritesheet Path
+    |--------------------------------------------------------------------------
+    |
+    | If you would rather have one spritesheet than a lot of individual SVG
+    | files, you may specify a path to a spritesheet. The SVG images are
+    | extracted from this spritesheet to be rendered out individually.
+    |
+    */
+
+    'spritesheet_path' => 'resources/svg/spritesheet.svg',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Spritesheet URL
+    |--------------------------------------------------------------------------
+    |
+    | If you don't want to embed the spritesheet directly in your markup and
+    | would rather reference an external URL, you can specify the path to
+    | the external spritesheet to use with this configuration option.
+    |
+    */
+
+    'spritesheet_url' => '',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Inline Rendering
+    |--------------------------------------------------------------------------
+    |
+    | This value will determine whether or not the SVG should be rendered inline
+    | or if it should reference a spritesheet through a <use> element.
+    |
+    | Default: true
+    |
+    */
+
+    'inline' => true,
+
+    /*
+    |--------------------------------------------------------------------------
+    | Optional Class
+    |--------------------------------------------------------------------------
+    |
+    | If you would like to have CSS classes applied to your SVGs, you must
+    | specify them here. Much like how you would define multiple classes
+    | in an HTML attribute, you may separate each class using a space.
+    |
+    | Default: ''
+    |
+    */
+
+    'class' => 'svg fill-current',
+];
diff --git a/src/resources/install/config/broadcasting.php b/src/resources/install/config/broadcasting.php
new file mode 100644 (file)
index 0000000..3ca45ea
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Default Broadcaster
+    |--------------------------------------------------------------------------
+    |
+    | This option controls the default broadcaster that will be used by the
+    | framework when an event needs to be broadcast. You may set this to
+    | any of the connections defined in the "connections" array below.
+    |
+    | Supported: "pusher", "redis", "log", "null"
+    |
+    */
+
+    'default' => env('BROADCAST_DRIVER', 'null'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Broadcast Connections
+    |--------------------------------------------------------------------------
+    |
+    | Here you may define all of the broadcast connections that will be used
+    | to broadcast events to other systems or over websockets. Samples of
+    | each available type of connection are provided inside this array.
+    |
+    */
+
+    'connections' => [
+
+        'pusher' => [
+            'driver' => 'pusher',
+            'key' => env('PUSHER_APP_KEY'),
+            'secret' => env('PUSHER_APP_SECRET'),
+            'app_id' => env('PUSHER_APP_ID'),
+            'options' => [
+                'cluster' => env('PUSHER_APP_CLUSTER'),
+                'encrypted' => true,
+            ],
+        ],
+
+        'redis' => [
+            'driver' => 'redis',
+            'connection' => 'default',
+        ],
+
+        'log' => [
+            'driver' => 'log',
+        ],
+
+        'null' => [
+            'driver' => 'null',
+        ],
+
+    ],
+
+];
diff --git a/src/resources/install/config/cache.php b/src/resources/install/config/cache.php
new file mode 100644 (file)
index 0000000..c291ff0
--- /dev/null
@@ -0,0 +1,93 @@
+<?php
+
+use Illuminate\Support\Str;
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Default Cache Store
+    |--------------------------------------------------------------------------
+    |
+    | This option controls the default cache connection that gets used while
+    | using this caching library. This connection is used when another is
+    | not explicitly specified when executing a given caching function.
+    |
+    | Supported: "apc", "array", "database", "file", "memcached", "redis"
+    |
+    */
+
+    'default' => env('CACHE_DRIVER', 'file'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Cache Stores
+    |--------------------------------------------------------------------------
+    |
+    | Here you may define all of the cache "stores" for your application as
+    | well as their drivers. You may even define multiple stores for the
+    | same cache driver to group types of items stored in your caches.
+    |
+    */
+
+    'stores' => [
+
+        'apc' => [
+            'driver' => 'apc',
+        ],
+
+        'array' => [
+            'driver' => 'array',
+        ],
+
+        'database' => [
+            'driver' => 'database',
+            'table' => 'cache',
+            'connection' => null,
+        ],
+
+        'file' => [
+            'driver' => 'file',
+            'path' => storage_path('framework/cache/data'),
+        ],
+
+        'memcached' => [
+            'driver' => 'memcached',
+            'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
+            'sasl' => [
+                env('MEMCACHED_USERNAME'),
+                env('MEMCACHED_PASSWORD'),
+            ],
+            'options' => [
+                // Memcached::OPT_CONNECT_TIMEOUT => 2000,
+            ],
+            'servers' => [
+                [
+                    'host' => env('MEMCACHED_HOST', '127.0.0.1'),
+                    'port' => env('MEMCACHED_PORT', 11211),
+                    'weight' => 100,
+                ],
+            ],
+        ],
+
+        'redis' => [
+            'driver' => 'redis',
+            'connection' => 'cache',
+        ],
+
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Cache Key Prefix
+    |--------------------------------------------------------------------------
+    |
+    | When utilizing a RAM based store such as APC or Memcached, there might
+    | be other applications utilizing the same cache. So, we'll specify a
+    | value to get prefixed to all our keys so we can avoid collisions.
+    |
+    */
+
+    'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_' . Str::slug(env('APP_ENV', 'env')) . '_cache'),
+
+];
diff --git a/src/resources/install/config/crud.php b/src/resources/install/config/crud.php
new file mode 100644 (file)
index 0000000..7114ca9
--- /dev/null
@@ -0,0 +1,598 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Backpack\CRUD preferences
+    |--------------------------------------------------------------------------
+    */
+
+    // --------------------------
+    // Default operation settings
+    // --------------------------
+    'operations' => [
+
+        /*
+         * List Operation
+         */
+        'list' => [
+            // Define the size/looks of the content div for all CRUDs
+            // To override per view use $this->crud->setListContentClass('class-string')
+            'contentClass' => 'col-md-12',
+
+            // enable the datatables-responsive plugin, which hides columns if they don't fit?
+            // if not, a horizontal scrollbar will be shown instead
+            'responsiveTable' => true,
+
+            // stores pagination and filters in localStorage for two hours
+            // whenever the user tries to see that page, backpack loads the previous pagination and filtration
+            'persistentTable' => true,
+
+            // the time the table will be persisted in minutes
+            // after this the table info is cleared from localStorage.
+            // use false to never force localStorage clear. (default)
+            // keep in mind: User can clear his localStorage whenever he wants.
+
+            'persistentTableDuration' => false,
+
+            // How many items should be shown by default by the Datatable?
+            // This value can be overwritten on a specific CRUD by calling
+            // $this->crud->setDefaultPageLength(50);
+            'defaultPageLength' => 10,
+
+            // A 1D array of options which will be used for both the displayed option and the value, or
+            // A 2D array in which the first array is used to define the value options and the second array the displayed options
+            // If a 2D array is used, strings in the right hand array will be automatically run through trans()
+            'pageLengthMenu' => [[10, 25, 50, 100, -1], [10, 25, 50, 100, 'backpack::crud.all']],
+
+            // How important is it for the action buttons to be visible?
+            // - 0 - most important
+            // - 1 - as important as bulk buttons
+            // - 2-3 - more important than the rest of the columns
+            // - 4 - less important than most columns
+            'actionsColumnPriority' => 1,
+        ],
+
+        /*
+         * Create Operation
+         */
+        'create' => [
+            // Define the size/looks of the content div for all CRUDs
+            // To override per view use $this->crud->setCreateContentClass('class-string')
+            'contentClass' => 'col-md-8 bold-labels',
+
+            // When using tabbed forms (create & update), what kind of tabs would you like?
+            'tabsType' => 'horizontal', //options: horizontal, vertical
+
+            // How would you like the validation errors to be shown?
+            'groupedErrors' => true,
+            'inlineErrors'  => true,
+
+            // when the page loads, put the cursor on the first input?
+            'autoFocusOnFirstField' => true,
+
+            // Where do you want to redirect the user by default, save?
+            // options: save_and_back, save_and_edit, save_and_new
+            'defaultSaveAction' => 'save_and_back',
+
+            // When the user chooses "save and back" or "save and new", show a bubble
+            // for the fact that the default save action has been changed?
+            'showSaveActionChange' => true, //options: true, false
+
+            // Before saving the entry, how would you like the request to be stripped?
+            // - false - ONLY save inputs that have fields (safest)
+            // - [x, y, z] - save ALL inputs, EXCEPT the ones given in this array
+            'saveAllInputsExcept' => false,
+            // 'saveAllInputsExcept' => ['_token', '_method', 'http_referrer', 'current_tab', 'save_action'],
+        ],
+
+        /*
+         * Update Operation
+         */
+        'update' => [
+            // Define the size/looks of the content div for all CRUDs
+            // To override per view use $this->crud->setEditContentClass('class-string')
+            'contentClass'   => 'col-md-8 bold-labels',
+
+            // When using tabbed forms (create & update), what kind of tabs would you like?
+            'tabsType' => 'horizontal', //options: horizontal, vertical
+
+            // How would you like the validation errors to be shown?
+            'groupedErrors' => true,
+            'inlineErrors'  => true,
+
+            // when the page loads, put the cursor on the first input?
+            'autoFocusOnFirstField' => true,
+
+            // Where do you want to redirect the user by default, save?
+            // options: save_and_back, save_and_edit, save_and_new
+            'defaultSaveAction' => 'save_and_back',
+
+            // When the user chooses "save and back" or "save and new", show a bubble
+            // for the fact that the default save action has been changed?
+            'showSaveActionChange' => true, //options: true, false
+
+            // Before saving the entry, how would you like the request to be stripped?
+            // - false - Save ONLY inputs that have a field (safest, default);
+            // - [x, y, z] - Save ALL inputs, EXCEPT the ones given in this array;
+            'saveAllInputsExcept' => false,
+            // 'saveAllInputsExcept' => ['_token', '_method', 'http_referrer', 'current_tab', 'save_action'],
+        ],
+
+        /*
+         * Show Operation
+         */
+        'show' => [
+            // Define the size/looks of the content div for all CRUDs
+            // To override per Controller use $this->crud->setShowContentClass('class-string')
+            'contentClass' => 'col-md-8',
+        ],
+
+        /*
+         * Reorder Operation
+         */
+        'reorder' => [
+            // Define the size/looks of the content div for all CRUDs
+            // To override per Controller use $this->crud->setReorderContentClass('class-string')
+            'contentClass'   => 'col-md-8 col-md-offset-2',
+        ],
+
+        /*
+         * Revisions Operation
+         */
+        'revisions' => [
+            // Define the size/looks of the content div for all CRUDs
+            // To override per view use $this->crud->setRevisionsTimelineContentClass('class-string')
+            'timelineContentClass' => 'col-md-12',
+        ],
+
+    ],
+
+    /*
+    |-------------------
+    | TRANSLATABLE CRUDS
+    |-------------------
+    */
+
+    'show_translatable_field_icon'     => true,
+    'translatable_field_icon_position' => 'right', // left or right
+
+    'locales' => [
+        // "af_NA" => "Afrikaans (Namibia)",
+        // "af_ZA" => "Afrikaans (South Africa)",
+        // "af" => "Afrikaans",
+        // "ak_GH" => "Akan (Ghana)",
+        // "ak" => "Akan",
+        // "sq_AL" => "Albanian (Albania)",
+        // "sq" => "Albanian",
+        // "am_ET" => "Amharic (Ethiopia)",
+        // "am" => "Amharic",
+        // "ar_DZ" => "Arabic (Algeria)",
+        // "ar_BH" => "Arabic (Bahrain)",
+        // "ar_EG" => "Arabic (Egypt)",
+        // "ar_IQ" => "Arabic (Iraq)",
+        // "ar_JO" => "Arabic (Jordan)",
+        // "ar_KW" => "Arabic (Kuwait)",
+        // "ar_LB" => "Arabic (Lebanon)",
+        // "ar_LY" => "Arabic (Libya)",
+        // "ar_MA" => "Arabic (Morocco)",
+        // "ar_OM" => "Arabic (Oman)",
+        // "ar_QA" => "Arabic (Qatar)",
+        // "ar_SA" => "Arabic (Saudi Arabia)",
+        // "ar_SD" => "Arabic (Sudan)",
+        // "ar_SY" => "Arabic (Syria)",
+        // "ar_TN" => "Arabic (Tunisia)",
+        // "ar_AE" => "Arabic (United Arab Emirates)",
+        // "ar_YE" => "Arabic (Yemen)",
+        // "ar" => "Arabic",
+        // "hy_AM" => "Armenian (Armenia)",
+        // "hy" => "Armenian",
+        // "as_IN" => "Assamese (India)",
+        // "as" => "Assamese",
+        // "asa_TZ" => "Asu (Tanzania)",
+        // "asa" => "Asu",
+        // "az_Cyrl" => "Azerbaijani (Cyrillic)",
+        // "az_Cyrl_AZ" => "Azerbaijani (Cyrillic, Azerbaijan)",
+        // "az_Latn" => "Azerbaijani (Latin)",
+        // "az_Latn_AZ" => "Azerbaijani (Latin, Azerbaijan)",
+        // "az" => "Azerbaijani",
+        // "bm_ML" => "Bambara (Mali)",
+        // "bm" => "Bambara",
+        // "eu_ES" => "Basque (Spain)",
+        // "eu" => "Basque",
+        // "be_BY" => "Belarusian (Belarus)",
+        // "be" => "Belarusian",
+        // "bem_ZM" => "Bemba (Zambia)",
+        // "bem" => "Bemba",
+        // "bez_TZ" => "Bena (Tanzania)",
+        // "bez" => "Bena",
+        // "bn_BD" => "Bengali (Bangladesh)",
+        // "bn_IN" => "Bengali (India)",
+        // "bn" => "Bengali",
+        // "bs_BA" => "Bosnian (Bosnia and Herzegovina)",
+        // "bs" => "Bosnian",
+        // "bg_BG" => "Bulgarian (Bulgaria)",
+        // "bg" => "Bulgarian",
+        // "my_MM" => "Burmese (Myanmar [Burma])",
+        // "my" => "Burmese",
+        // "ca_ES" => "Catalan (Spain)",
+        // "ca" => "Catalan",
+        // "tzm_Latn" => "Central Morocco Tamazight (Latin)",
+        // "tzm_Latn_MA" => "Central Morocco Tamazight (Latin, Morocco)",
+        // "tzm" => "Central Morocco Tamazight",
+        // "chr_US" => "Cherokee (United States)",
+        // "chr" => "Cherokee",
+        // "cgg_UG" => "Chiga (Uganda)",
+        // "cgg" => "Chiga",
+        // "zh_Hans" => "Chinese (Simplified Han)",
+        // "zh_Hans_CN" => "Chinese (Simplified Han, China)",
+        // "zh_Hans_HK" => "Chinese (Simplified Han, Hong Kong SAR China)",
+        // "zh_Hans_MO" => "Chinese (Simplified Han, Macau SAR China)",
+        // "zh_Hans_SG" => "Chinese (Simplified Han, Singapore)",
+        // "zh_Hant" => "Chinese (Traditional Han)",
+        // "zh_Hant_HK" => "Chinese (Traditional Han, Hong Kong SAR China)",
+        // "zh_Hant_MO" => "Chinese (Traditional Han, Macau SAR China)",
+        // "zh_Hant_TW" => "Chinese (Traditional Han, Taiwan)",
+        // "zh" => "Chinese",
+        // "kw_GB" => "Cornish (United Kingdom)",
+        // "kw" => "Cornish",
+        // "hr_HR" => "Croatian (Croatia)",
+        // "hr" => "Croatian",
+        // "cs_CZ" => "Czech (Czech Republic)",
+        // "cs" => "Czech",
+        // "da_DK" => "Danish (Denmark)",
+        // "da" => "Danish",
+        // "nl_BE" => "Dutch (Belgium)",
+        // "nl_NL" => "Dutch (Netherlands)",
+        // "nl" => "Dutch",
+        // "ebu_KE" => "Embu (Kenya)",
+        // "ebu" => "Embu",
+        // "en_AS" => "English (American Samoa)",
+        // "en_AU" => "English (Australia)",
+        // "en_BE" => "English (Belgium)",
+        // "en_BZ" => "English (Belize)",
+        // "en_BW" => "English (Botswana)",
+        // "en_CA" => "English (Canada)",
+        // "en_GU" => "English (Guam)",
+        // "en_HK" => "English (Hong Kong SAR China)",
+        // "en_IN" => "English (India)",
+        // "en_IE" => "English (Ireland)",
+        // "en_JM" => "English (Jamaica)",
+        // "en_MT" => "English (Malta)",
+        // "en_MH" => "English (Marshall Islands)",
+        // "en_MU" => "English (Mauritius)",
+        // "en_NA" => "English (Namibia)",
+        // "en_NZ" => "English (New Zealand)",
+        // "en_MP" => "English (Northern Mariana Islands)",
+        // "en_PK" => "English (Pakistan)",
+        // "en_PH" => "English (Philippines)",
+        // "en_SG" => "English (Singapore)",
+        // "en_ZA" => "English (South Africa)",
+        // "en_TT" => "English (Trinidad and Tobago)",
+        // "en_UM" => "English (U.S. Minor Outlying Islands)",
+        // "en_VI" => "English (U.S. Virgin Islands)",
+        // "en_GB" => "English (United Kingdom)",
+        // "en_US" => "English (United States)",
+        // "en_ZW" => "English (Zimbabwe)",
+        'en' => 'English',
+        // "eo" => "Esperanto",
+        // "et_EE" => "Estonian (Estonia)",
+        // "et" => "Estonian",
+        // "ee_GH" => "Ewe (Ghana)",
+        // "ee_TG" => "Ewe (Togo)",
+        // "ee" => "Ewe",
+        // "fo_FO" => "Faroese (Faroe Islands)",
+        // "fo" => "Faroese",
+        // "fil_PH" => "Filipino (Philippines)",
+        // "fil" => "Filipino",
+        // "fi_FI" => "Finnish (Finland)",
+        // "fi" => "Finnish",
+        // "fr_BE" => "French (Belgium)",
+        // "fr_BJ" => "French (Benin)",
+        // "fr_BF" => "French (Burkina Faso)",
+        // "fr_BI" => "French (Burundi)",
+        // "fr_CM" => "French (Cameroon)",
+        // "fr_CA" => "French (Canada)",
+        // "fr_CF" => "French (Central African Republic)",
+        // "fr_TD" => "French (Chad)",
+        // "fr_KM" => "French (Comoros)",
+        // "fr_CG" => "French (Congo - Brazzaville)",
+        // "fr_CD" => "French (Congo - Kinshasa)",
+        // "fr_CI" => "French (Côte d’Ivoire)",
+        // "fr_DJ" => "French (Djibouti)",
+        // "fr_GQ" => "French (Equatorial Guinea)",
+        // "fr_FR" => "French (France)",
+        // "fr_GA" => "French (Gabon)",
+        // "fr_GP" => "French (Guadeloupe)",
+        // "fr_GN" => "French (Guinea)",
+        // "fr_LU" => "French (Luxembourg)",
+        // "fr_MG" => "French (Madagascar)",
+        // "fr_ML" => "French (Mali)",
+        // "fr_MQ" => "French (Martinique)",
+        // "fr_MC" => "French (Monaco)",
+        // "fr_NE" => "French (Niger)",
+        // "fr_RW" => "French (Rwanda)",
+        // "fr_RE" => "French (Réunion)",
+        // "fr_BL" => "French (Saint Barthélemy)",
+        // "fr_MF" => "French (Saint Martin)",
+        // "fr_SN" => "French (Senegal)",
+        // "fr_CH" => "French (Switzerland)",
+        // "fr_TG" => "French (Togo)",
+        'fr' => 'French',
+        // "ff_SN" => "Fulah (Senegal)",
+        // "ff" => "Fulah",
+        // "gl_ES" => "Galician (Spain)",
+        // "gl" => "Galician",
+        // "lg_UG" => "Ganda (Uganda)",
+        // "lg" => "Ganda",
+        // "ka_GE" => "Georgian (Georgia)",
+        // "ka" => "Georgian",
+        // "de_AT" => "German (Austria)",
+        // "de_BE" => "German (Belgium)",
+        // "de_DE" => "German (Germany)",
+        // "de_LI" => "German (Liechtenstein)",
+        // "de_LU" => "German (Luxembourg)",
+        // "de_CH" => "German (Switzerland)",
+        // "de" => "German",
+        // "el_CY" => "Greek (Cyprus)",
+        // "el_GR" => "Greek (Greece)",
+        // "el" => "Greek",
+        // "gu_IN" => "Gujarati (India)",
+        // "gu" => "Gujarati",
+        // "guz_KE" => "Gusii (Kenya)",
+        // "guz" => "Gusii",
+        // "ha_Latn" => "Hausa (Latin)",
+        // "ha_Latn_GH" => "Hausa (Latin, Ghana)",
+        // "ha_Latn_NE" => "Hausa (Latin, Niger)",
+        // "ha_Latn_NG" => "Hausa (Latin, Nigeria)",
+        // "ha" => "Hausa",
+        // "haw_US" => "Hawaiian (United States)",
+        // "haw" => "Hawaiian",
+        // "he_IL" => "Hebrew (Israel)",
+        // "he" => "Hebrew",
+        // "hi_IN" => "Hindi (India)",
+        // "hi" => "Hindi",
+        // "hu_HU" => "Hungarian (Hungary)",
+        // "hu" => "Hungarian",
+        // "is_IS" => "Icelandic (Iceland)",
+        // "is" => "Icelandic",
+        // "ig_NG" => "Igbo (Nigeria)",
+        // "ig" => "Igbo",
+        // "id_ID" => "Indonesian (Indonesia)",
+        // "id" => "Indonesian",
+        // "ga_IE" => "Irish (Ireland)",
+        // "ga" => "Irish",
+        // "it_IT" => "Italian (Italy)",
+        // "it_CH" => "Italian (Switzerland)",
+        'it' => 'Italian',
+        // "ja_JP" => "Japanese (Japan)",
+        // "ja" => "Japanese",
+        // "kea_CV" => "Kabuverdianu (Cape Verde)",
+        // "kea" => "Kabuverdianu",
+        // "kab_DZ" => "Kabyle (Algeria)",
+        // "kab" => "Kabyle",
+        // "kl_GL" => "Kalaallisut (Greenland)",
+        // "kl" => "Kalaallisut",
+        // "kln_KE" => "Kalenjin (Kenya)",
+        // "kln" => "Kalenjin",
+        // "kam_KE" => "Kamba (Kenya)",
+        // "kam" => "Kamba",
+        // "kn_IN" => "Kannada (India)",
+        // "kn" => "Kannada",
+        // "kk_Cyrl" => "Kazakh (Cyrillic)",
+        // "kk_Cyrl_KZ" => "Kazakh (Cyrillic, Kazakhstan)",
+        // "kk" => "Kazakh",
+        // "km_KH" => "Khmer (Cambodia)",
+        // "km" => "Khmer",
+        // "ki_KE" => "Kikuyu (Kenya)",
+        // "ki" => "Kikuyu",
+        // "rw_RW" => "Kinyarwanda (Rwanda)",
+        // "rw" => "Kinyarwanda",
+        // "kok_IN" => "Konkani (India)",
+        // "kok" => "Konkani",
+        // "ko_KR" => "Korean (South Korea)",
+        // "ko" => "Korean",
+        // "khq_ML" => "Koyra Chiini (Mali)",
+        // "khq" => "Koyra Chiini",
+        // "ses_ML" => "Koyraboro Senni (Mali)",
+        // "ses" => "Koyraboro Senni",
+        // "lag_TZ" => "Langi (Tanzania)",
+        // "lag" => "Langi",
+        // "lv_LV" => "Latvian (Latvia)",
+        // "lv" => "Latvian",
+        // "lt_LT" => "Lithuanian (Lithuania)",
+        // "lt" => "Lithuanian",
+        // "luo_KE" => "Luo (Kenya)",
+        // "luo" => "Luo",
+        // "luy_KE" => "Luyia (Kenya)",
+        // "luy" => "Luyia",
+        // "mk_MK" => "Macedonian (Macedonia)",
+        // "mk" => "Macedonian",
+        // "jmc_TZ" => "Machame (Tanzania)",
+        // "jmc" => "Machame",
+        // "kde_TZ" => "Makonde (Tanzania)",
+        // "kde" => "Makonde",
+        // "mg_MG" => "Malagasy (Madagascar)",
+        // "mg" => "Malagasy",
+        // "ms_BN" => "Malay (Brunei)",
+        // "ms_MY" => "Malay (Malaysia)",
+        // "ms" => "Malay",
+        // "ml_IN" => "Malayalam (India)",
+        // "ml" => "Malayalam",
+        // "mt_MT" => "Maltese (Malta)",
+        // "mt" => "Maltese",
+        // "gv_GB" => "Manx (United Kingdom)",
+        // "gv" => "Manx",
+        // "mr_IN" => "Marathi (India)",
+        // "mr" => "Marathi",
+        // "mas_KE" => "Masai (Kenya)",
+        // "mas_TZ" => "Masai (Tanzania)",
+        // "mas" => "Masai",
+        // "mer_KE" => "Meru (Kenya)",
+        // "mer" => "Meru",
+        // "mfe_MU" => "Morisyen (Mauritius)",
+        // "mfe" => "Morisyen",
+        // "naq_NA" => "Nama (Namibia)",
+        // "naq" => "Nama",
+        // "ne_IN" => "Nepali (India)",
+        // "ne_NP" => "Nepali (Nepal)",
+        // "ne" => "Nepali",
+        // "nd_ZW" => "North Ndebele (Zimbabwe)",
+        // "nd" => "North Ndebele",
+        // "nb_NO" => "Norwegian BokmÃ¥l (Norway)",
+        // "nb" => "Norwegian BokmÃ¥l",
+        // "nn_NO" => "Norwegian Nynorsk (Norway)",
+        // "nn" => "Norwegian Nynorsk",
+        // "nyn_UG" => "Nyankole (Uganda)",
+        // "nyn" => "Nyankole",
+        // "or_IN" => "Oriya (India)",
+        // "or" => "Oriya",
+        // "om_ET" => "Oromo (Ethiopia)",
+        // "om_KE" => "Oromo (Kenya)",
+        // "om" => "Oromo",
+        // "ps_AF" => "Pashto (Afghanistan)",
+        // "ps" => "Pashto",
+        // "fa_AF" => "Persian (Afghanistan)",
+        // "fa_IR" => "Persian (Iran)",
+        // "fa" => "Persian",
+        // "pl_PL" => "Polish (Poland)",
+        // "pl" => "Polish",
+        // "pt_BR" => "Portuguese (Brazil)",
+        // "pt_GW" => "Portuguese (Guinea-Bissau)",
+        // "pt_MZ" => "Portuguese (Mozambique)",
+        // "pt_PT" => "Portuguese (Portugal)",
+        // "pt" => "Portuguese",
+        // "pa_Arab" => "Punjabi (Arabic)",
+        // "pa_Arab_PK" => "Punjabi (Arabic, Pakistan)",
+        // "pa_Guru" => "Punjabi (Gurmukhi)",
+        // "pa_Guru_IN" => "Punjabi (Gurmukhi, India)",
+        // "pa" => "Punjabi",
+        // "ro_MD" => "Romanian (Moldova)",
+        // "ro_RO" => "Romanian (Romania)",
+        'ro' => 'Romanian',
+        // "rm_CH" => "Romansh (Switzerland)",
+        // "rm" => "Romansh",
+        // "rof_TZ" => "Rombo (Tanzania)",
+        // "rof" => "Rombo",
+        // "ru_MD" => "Russian (Moldova)",
+        // "ru_RU" => "Russian (Russia)",
+        // "ru_UA" => "Russian (Ukraine)",
+        // "ru" => "Russian",
+        // "rwk_TZ" => "Rwa (Tanzania)",
+        // "rwk" => "Rwa",
+        // "saq_KE" => "Samburu (Kenya)",
+        // "saq" => "Samburu",
+        // "sg_CF" => "Sango (Central African Republic)",
+        // "sg" => "Sango",
+        // "seh_MZ" => "Sena (Mozambique)",
+        // "seh" => "Sena",
+        // "sr_Cyrl" => "Serbian (Cyrillic)",
+        // "sr_Cyrl_BA" => "Serbian (Cyrillic, Bosnia and Herzegovina)",
+        // "sr_Cyrl_ME" => "Serbian (Cyrillic, Montenegro)",
+        // "sr_Cyrl_RS" => "Serbian (Cyrillic, Serbia)",
+        // "sr_Latn" => "Serbian (Latin)",
+        // "sr_Latn_BA" => "Serbian (Latin, Bosnia and Herzegovina)",
+        // "sr_Latn_ME" => "Serbian (Latin, Montenegro)",
+        // "sr_Latn_RS" => "Serbian (Latin, Serbia)",
+        // "sr" => "Serbian",
+        // "sn_ZW" => "Shona (Zimbabwe)",
+        // "sn" => "Shona",
+        // "ii_CN" => "Sichuan Yi (China)",
+        // "ii" => "Sichuan Yi",
+        // "si_LK" => "Sinhala (Sri Lanka)",
+        // "si" => "Sinhala",
+        // "sk_SK" => "Slovak (Slovakia)",
+        // "sk" => "Slovak",
+        // "sl_SI" => "Slovenian (Slovenia)",
+        // "sl" => "Slovenian",
+        // "xog_UG" => "Soga (Uganda)",
+        // "xog" => "Soga",
+        // "so_DJ" => "Somali (Djibouti)",
+        // "so_ET" => "Somali (Ethiopia)",
+        // "so_KE" => "Somali (Kenya)",
+        // "so_SO" => "Somali (Somalia)",
+        // "so" => "Somali",
+        // "es_AR" => "Spanish (Argentina)",
+        // "es_BO" => "Spanish (Bolivia)",
+        // "es_CL" => "Spanish (Chile)",
+        // "es_CO" => "Spanish (Colombia)",
+        // "es_CR" => "Spanish (Costa Rica)",
+        // "es_DO" => "Spanish (Dominican Republic)",
+        // "es_EC" => "Spanish (Ecuador)",
+        // "es_SV" => "Spanish (El Salvador)",
+        // "es_GQ" => "Spanish (Equatorial Guinea)",
+        // "es_GT" => "Spanish (Guatemala)",
+        // "es_HN" => "Spanish (Honduras)",
+        // "es_419" => "Spanish (Latin America)",
+        // "es_MX" => "Spanish (Mexico)",
+        // "es_NI" => "Spanish (Nicaragua)",
+        // "es_PA" => "Spanish (Panama)",
+        // "es_PY" => "Spanish (Paraguay)",
+        // "es_PE" => "Spanish (Peru)",
+        // "es_PR" => "Spanish (Puerto Rico)",
+        // "es_ES" => "Spanish (Spain)",
+        // "es_US" => "Spanish (United States)",
+        // "es_UY" => "Spanish (Uruguay)",
+        // "es_VE" => "Spanish (Venezuela)",
+        // "es" => "Spanish",
+        // "sw_KE" => "Swahili (Kenya)",
+        // "sw_TZ" => "Swahili (Tanzania)",
+        // "sw" => "Swahili",
+        // "sv_FI" => "Swedish (Finland)",
+        // "sv_SE" => "Swedish (Sweden)",
+        // "sv" => "Swedish",
+        // "gsw_CH" => "Swiss German (Switzerland)",
+        // "gsw" => "Swiss German",
+        // "shi_Latn" => "Tachelhit (Latin)",
+        // "shi_Latn_MA" => "Tachelhit (Latin, Morocco)",
+        // "shi_Tfng" => "Tachelhit (Tifinagh)",
+        // "shi_Tfng_MA" => "Tachelhit (Tifinagh, Morocco)",
+        // "shi" => "Tachelhit",
+        // "dav_KE" => "Taita (Kenya)",
+        // "dav" => "Taita",
+        // "ta_IN" => "Tamil (India)",
+        // "ta_LK" => "Tamil (Sri Lanka)",
+        // "ta" => "Tamil",
+        // "te_IN" => "Telugu (India)",
+        // "te" => "Telugu",
+        // "teo_KE" => "Teso (Kenya)",
+        // "teo_UG" => "Teso (Uganda)",
+        // "teo" => "Teso",
+        // "th_TH" => "Thai (Thailand)",
+        // "th" => "Thai",
+        // "bo_CN" => "Tibetan (China)",
+        // "bo_IN" => "Tibetan (India)",
+        // "bo" => "Tibetan",
+        // "ti_ER" => "Tigrinya (Eritrea)",
+        // "ti_ET" => "Tigrinya (Ethiopia)",
+        // "ti" => "Tigrinya",
+        // "to_TO" => "Tonga (Tonga)",
+        // "to" => "Tonga",
+        // "tr_TR" => "Turkish (Turkey)",
+        // "tr" => "Turkish",
+        // "uk_UA" => "Ukrainian (Ukraine)",
+        // "uk" => "Ukrainian",
+        // "ur_IN" => "Urdu (India)",
+        // "ur_PK" => "Urdu (Pakistan)",
+        // "ur" => "Urdu",
+        // "uz_Arab" => "Uzbek (Arabic)",
+        // "uz_Arab_AF" => "Uzbek (Arabic, Afghanistan)",
+        // "uz_Cyrl" => "Uzbek (Cyrillic)",
+        // "uz_Cyrl_UZ" => "Uzbek (Cyrillic, Uzbekistan)",
+        // "uz_Latn" => "Uzbek (Latin)",
+        // "uz_Latn_UZ" => "Uzbek (Latin, Uzbekistan)",
+        // "uz" => "Uzbek",
+        // "vi_VN" => "Vietnamese (Vietnam)",
+        // "vi" => "Vietnamese",
+        // "vun_TZ" => "Vunjo (Tanzania)",
+        // "vun" => "Vunjo",
+        // "cy_GB" => "Welsh (United Kingdom)",
+        // "cy" => "Welsh",
+        // "yo_NG" => "Yoruba (Nigeria)",
+        // "yo" => "Yoruba",
+        // "zu_ZA" => "Zulu (South Africa)",
+        // "zu" => "Zulu"
+    ],
+
+];
diff --git a/src/resources/install/config/cubist-front.php b/src/resources/install/config/cubist-front.php
new file mode 100644 (file)
index 0000000..a1b26e6
--- /dev/null
@@ -0,0 +1,2 @@
+<?php
+return [];
\ No newline at end of file
diff --git a/src/resources/install/config/cubist.php b/src/resources/install/config/cubist.php
new file mode 100644 (file)
index 0000000..30b613b
--- /dev/null
@@ -0,0 +1,10 @@
+<?php
+return [
+    'internal_search' => env('CUBIST_INTERNAL_SEARCH', false),
+    'internal_search_index' => env('CUBIST_INTERNAL_SEARCH_INDEX', strtolower(env('APP_NAME', 'App_name') . '_' . env('APP_ENV', 'dev'))),
+    'page_model' => '\App\Models\Page',
+    'settings_model' => '\App\Models\Settings',
+    'locale_model' => '\App\Models\Locale',
+    'seo_robots' => env('SEO_ROBOTS', true),
+];
+
diff --git a/src/resources/install/config/database.php b/src/resources/install/config/database.php
new file mode 100644 (file)
index 0000000..22347a4
--- /dev/null
@@ -0,0 +1,131 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Default Database Connection Name
+    |--------------------------------------------------------------------------
+    |
+    | Here you may specify which of the database connections below you wish
+    | to use as your default connection for all database work. Of course
+    | you may use many connections at once using the Database library.
+    |
+    */
+
+    'default' => env('DB_CONNECTION', 'mysql'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Database Connections
+    |--------------------------------------------------------------------------
+    |
+    | Here are each of the database connections setup for your application.
+    | Of course, examples of configuring each database platform that is
+    | supported by Laravel is shown below to make development simple.
+    |
+    |
+    | All database work in Laravel is done through the PHP PDO facilities
+    | so make sure you have the driver for your particular database of
+    | choice installed on your machine before you begin development.
+    |
+    */
+
+    'connections' => [
+
+        'sqlite' => [
+            'driver' => 'sqlite',
+            'database' => env('DB_DATABASE', database_path('database.sqlite')),
+            'prefix' => '',
+            'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
+        ],
+
+        'mysql' => [
+            'driver' => 'mysql',
+            'host' => env('DB_HOST', '127.0.0.1'),
+            'port' => env('DB_PORT', '3306'),
+            'database' => env('DB_DATABASE', 'forge'),
+            'username' => env('DB_USERNAME', 'forge'),
+            'password' => env('DB_PASSWORD', ''),
+            'unix_socket' => env('DB_SOCKET', ''),
+            'charset' => 'utf8mb4',
+            'collation' => 'utf8mb4_unicode_ci',
+            'prefix' => '',
+            'prefix_indexes' => true,
+            'strict' => true,
+            'engine' => null,
+        ],
+
+        'pgsql' => [
+            'driver' => 'pgsql',
+            'host' => env('DB_HOST', '127.0.0.1'),
+            'port' => env('DB_PORT', '5432'),
+            'database' => env('DB_DATABASE', 'forge'),
+            'username' => env('DB_USERNAME', 'forge'),
+            'password' => env('DB_PASSWORD', ''),
+            'charset' => 'utf8',
+            'prefix' => '',
+            'prefix_indexes' => true,
+            'schema' => 'public',
+            'sslmode' => 'prefer',
+        ],
+
+        'sqlsrv' => [
+            'driver' => 'sqlsrv',
+            'host' => env('DB_HOST', 'localhost'),
+            'port' => env('DB_PORT', '1433'),
+            'database' => env('DB_DATABASE', 'forge'),
+            'username' => env('DB_USERNAME', 'forge'),
+            'password' => env('DB_PASSWORD', ''),
+            'charset' => 'utf8',
+            'prefix' => '',
+            'prefix_indexes' => true,
+        ],
+
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Migration Repository Table
+    |--------------------------------------------------------------------------
+    |
+    | This table keeps track of all the migrations that have already run for
+    | your application. Using this information, we can determine which of
+    | the migrations on disk haven't actually been run in the database.
+    |
+    */
+
+    'migrations' => 'migrations',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Redis Databases
+    |--------------------------------------------------------------------------
+    |
+    | Redis is an open source, fast, and advanced key-value store that also
+    | provides a richer body of commands than a typical key-value system
+    | such as APC or Memcached. Laravel makes it easy to dig right in.
+    |
+    */
+
+    'redis' => [
+
+        'client' => 'predis',
+
+        'default' => [
+            'host' => env('REDIS_HOST', '127.0.0.1'),
+            'password' => env('REDIS_PASSWORD', null),
+            'port' => env('REDIS_PORT', 6379),
+            'database' => env('REDIS_DB', 0),
+        ],
+
+        'cache' => [
+            'host' => env('REDIS_HOST', '127.0.0.1'),
+            'password' => env('REDIS_PASSWORD', null),
+            'port' => env('REDIS_PORT', 6379),
+            'database' => env('REDIS_CACHE_DB', 1),
+        ],
+
+    ],
+
+];
diff --git a/src/resources/install/config/elasticsearch.php b/src/resources/install/config/elasticsearch.php
new file mode 100644 (file)
index 0000000..98c1ecd
--- /dev/null
@@ -0,0 +1,206 @@
+<?php
+
+return [
+
+    /**
+     * You can specify one of several different connections when building an
+     * Elasticsearch client.
+     *
+     * Here you may specify which of the connections below you wish to use
+     * as your default connection when building an client. Of course you may
+     * use create several clients at once, each with different configurations.
+     */
+
+    'defaultConnection' => 'default',
+
+    /**
+     * These are the connection parameters used when building a client.
+     */
+
+    'connections' => [
+
+        'default' => [
+
+            /**
+             * Hosts
+             *
+             * This is an array of hosts that the client will connect to. It can be a
+             * single host, or an array if you are running a cluster of Elasticsearch
+             * instances.
+             *
+             * This is the only configuration value that is mandatory.
+             *
+             * Presently using "extended" host configuration method
+             *
+             * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_extended_host_configuration
+             *
+             * There is also the shorter "inline" configuration method available
+             *
+             * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_inline_host_configuration
+             */
+
+            'hosts' => [
+                [
+                    'host'       => env('ELASTICSEARCH_HOST', '127.0.0.1'),
+                    'port'       => env('ELASTICSEARCH_PORT', 9200),
+                    'scheme'     => env('ELASTICSEARCH_SCHEME', null),
+                    'user'       => env('ELASTICSEARCH_USER', null),
+                    'pass'       => env('ELASTICSEARCH_PASS', null),
+
+                    // If you are connecting to an Elasticsearch instance on AWS, you will need these values as well
+                    'aws'        => env('AWS_ELASTICSEARCH_ENABLED', false),
+                    'aws_region' => env('AWS_REGION', ''),
+                    'aws_key'    => env('AWS_ACCESS_KEY_ID', ''),
+                    'aws_secret' => env('AWS_SECRET_ACCESS_KEY', '')
+                ],
+            ],
+
+            /**
+             * SSL
+             *
+             * If your Elasticsearch instance uses an out-dated or self-signed SSL
+             * certificate, you will need to pass in the certificate bundle.  This can
+             * either be the path to the certificate file (for self-signed certs), or a
+             * package like https://github.com/Kdyby/CurlCaBundle.  See the documentation
+             * below for all the details.
+             *
+             * If you are using SSL instances, and the certificates are up-to-date and
+             * signed by a public certificate authority, then you can leave this null and
+             * just use "https" in the host path(s) above and you should be fine.
+             *
+             * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_security.html#_ssl_encryption_2
+             */
+
+            'sslVerification' => null,
+
+            /**
+             * Logging
+             *
+             * Logging is handled by passing in an instance of Monolog\Logger (which
+             * coincidentally is what Laravel's default logger is).
+             *
+             * If logging is enabled, you either need to set the path and log level
+             * (some defaults are given for you below), or you can use a custom logger by
+             * setting 'logObject' to an instance of Psr\Log\LoggerInterface.  In fact,
+             * if you just want to use the default Laravel logger, then set 'logObject'
+             * to \Log::getMonolog().
+             *
+             * Note: 'logObject' takes precedent over 'logPath'/'logLevel', so set
+             * 'logObject' null if you just want file-based logging to a custom path.
+             *
+             * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#enabling_logger
+             */
+
+            'logging' => false,
+
+            // If you have an existing instance of Monolog you can use it here.
+            // 'logObject' => \Log::getMonolog(),
+
+            'logPath' => storage_path('logs/elasticsearch.log'),
+
+            'logLevel' => Monolog\Logger::INFO,
+
+            /**
+             * Retries
+             *
+             * By default, the client will retry n times, where n = number of nodes in
+             * your cluster. If you would like to disable retries, or change the number,
+             * you can do so here.
+             *
+             * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_set_retries
+             */
+
+            'retries' => null,
+
+            /**
+             * The remainder of the configuration options can almost always be left
+             * as-is unless you have specific reasons to change them.  Refer to the
+             * appropriate sections in the Elasticsearch documentation for what each option
+             * does and what values it expects.
+             */
+
+            /**
+             * Sniff On Start
+             *
+             * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html
+             */
+
+            'sniffOnStart' => false,
+
+            /**
+             * HTTP Handler
+             *
+             * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_configure_the_http_handler
+             * @see http://ringphp.readthedocs.org/en/latest/client_handlers.html
+             */
+
+            'httpHandler' => null,
+
+            /**
+             * Connection Pool
+             *
+             * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_setting_the_connection_pool
+             * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_connection_pool.html
+             */
+
+            'connectionPool' => null,
+
+            /**
+             * Connection Selector
+             *
+             * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_setting_the_connection_selector
+             * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_selectors.html
+             */
+
+            'connectionSelector' => null,
+
+            /**
+             * Serializer
+             *
+             * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_setting_the_serializer
+             * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_serializers.html
+             */
+
+            'serializer' => null,
+
+            /**
+             * Connection Factory
+             *
+             * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_setting_a_custom_connectionfactory
+             */
+
+            'connectionFactory' => null,
+
+            /**
+             * Endpoint
+             *
+             * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/6.0/_configuration.html#_set_the_endpoint_closure
+             */
+
+            'endpoint' => null,
+
+
+            /**
+             * Register additional namespaces
+             *
+             * An array of additional namespaces to register.
+             *
+             * @example 'namespaces' => [XPack::Security(), XPack::Watcher()]
+             * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/ElasticsearchPHP_Endpoints.html#Elasticsearch_ClientBuilderregisterNamespace_registerNamespace
+             */
+            'namespaces' => [],
+
+            /**
+             * Tracer
+             *
+             * Tracer is handled by passing in a name of the class implements Psr\Log\LoggerInterface.
+             *
+             * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_setting_a_custom_connectionfactory
+             */
+            'tracer' => null,
+
+        ],
+
+    ],
+
+];
diff --git a/src/resources/install/config/elfinder.php b/src/resources/install/config/elfinder.php
new file mode 100644 (file)
index 0000000..4515d5e
--- /dev/null
@@ -0,0 +1,81 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Upload dir
+    |--------------------------------------------------------------------------
+    |
+    | The dir where to store the images (relative from public).
+    |
+    */
+    'dir' => ['uploads'],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Filesystem disks (Flysytem)
+    |--------------------------------------------------------------------------
+    |
+    | Define an array of Filesystem disks, which use Flysystem.
+    | You can set extra options, example:
+    |
+    | 'my-disk' => [
+    |        'URL' => url('to/disk'),
+    |        'alias' => 'Local storage',
+    |    ]
+    */
+    'disks' => [
+        // 'uploads',
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Routes group config
+    |--------------------------------------------------------------------------
+    |
+    | The default group settings for the elFinder routes.
+    |
+    */
+
+    'route' => [
+        'prefix'     => config('backpack.base.route_prefix', 'admin').'/elfinder',
+        'middleware' => ['web', config('backpack.base.middleware_key', 'admin')], //Set to null to disable middleware filter
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Access filter
+    |--------------------------------------------------------------------------
+    |
+    | Filter callback to check the files
+    |
+    */
+
+    'access' => 'Barryvdh\Elfinder\Elfinder::checkAccess',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Roots
+    |--------------------------------------------------------------------------
+    |
+    | By default, the roots file is LocalFileSystem, with the above public dir.
+    | If you want custom options, you can set your own roots below.
+    |
+    */
+
+    'roots' => null,
+
+    /*
+    |--------------------------------------------------------------------------
+    | Options
+    |--------------------------------------------------------------------------
+    |
+    | These options are merged, together with 'roots' and passed to the Connector.
+    | See https://github.com/Studio-42/elFinder/wiki/Connector-configuration-options-2.1
+    |
+    */
+
+    'options' => [],
+
+];
diff --git a/src/resources/install/config/features.php b/src/resources/install/config/features.php
new file mode 100644 (file)
index 0000000..397f405
--- /dev/null
@@ -0,0 +1,10 @@
+<?php
+return [
+    'search' => env('FEATURE_SEARCH', true),
+    'quote' => env('FEATURE_QUOTE', true),
+    'news' => env('FEATURE_NEWS', true),
+    'i18n' => env('FEATURE_I18N', true),
+    'team' => env('FEATURE_TEAM', true),
+    'partners' => env('FEATURE_PARTNERS', true),
+    'clients' => env('FEATURE_CLIENTS', true),
+];
diff --git a/src/resources/install/config/filesystems.php b/src/resources/install/config/filesystems.php
new file mode 100644 (file)
index 0000000..0e611cb
--- /dev/null
@@ -0,0 +1,80 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Default Filesystem Disk
+    |--------------------------------------------------------------------------
+    |
+    | Here you may specify the default filesystem disk that should be used
+    | by the framework. The "local" disk, as well as a variety of cloud
+    | based disks are available to your application. Just store away!
+    |
+    */
+
+    'default' => env('FILESYSTEM_DRIVER', 'local'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Default Cloud Filesystem Disk
+    |--------------------------------------------------------------------------
+    |
+    | Many applications store files both locally and in the cloud. For this
+    | reason, you may specify a default "cloud" driver here. This driver
+    | will be bound as the Cloud disk implementation in the container.
+    |
+    */
+
+    'cloud' => env('FILESYSTEM_CLOUD', 's3'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Filesystem Disks
+    |--------------------------------------------------------------------------
+    |
+    | Here you may configure as many filesystem "disks" as you wish, and you
+    | may even configure multiple disks of the same driver. Defaults have
+    | been setup for each driver as an example of the required options.
+    |
+    | Supported Drivers: "local", "ftp", "sftp", "s3", "rackspace"
+    |
+    */
+
+    'disks' => [
+
+        'local' => [
+            'driver' => 'local',
+            'root' => storage_path('app'),
+        ],
+
+        'public' => [
+            'driver' => 'local',
+            'root' => storage_path('app/public'),
+            'url' => env('APP_URL').'/storage',
+            'visibility' => 'public',
+        ],
+
+        's3' => [
+            'driver' => 's3',
+            'key' => env('AWS_ACCESS_KEY_ID'),
+            'secret' => env('AWS_SECRET_ACCESS_KEY'),
+            'region' => env('AWS_DEFAULT_REGION'),
+            'bucket' => env('AWS_BUCKET'),
+            'url' => env('AWS_URL'),
+        ],
+
+        // used for Backpack/BackupManager
+        'backups' => [
+            'driver' => 'local',
+            'root'   => storage_path('backups'), // that's where your backups are stored by default: storage/backups
+        ],
+
+        'storage' => [
+            'driver' => 'local',
+            'root'   => storage_path(),
+        ],
+
+    ],
+
+];
diff --git a/src/resources/install/config/googletagmanager.php b/src/resources/install/config/googletagmanager.php
new file mode 100644 (file)
index 0000000..eeb26cd
--- /dev/null
@@ -0,0 +1,26 @@
+<?php
+return [
+
+    /*
+     * The Google Tag Manager id, should be a code that looks something like "gtm-xxxx".
+     */
+    'id' => env('GOOGLE_TAGMANAGER_ID', ''),
+
+    /*
+     * Enable or disable script rendering. Useful for local development.
+     */
+    'enabled' => env('GOOGLE_TAGMANAGER_ID', '') != '',
+
+    /*
+     * If you want to use some macro's you 'll probably store them
+     * in a dedicated file. You can optionally define the path
+     * to that file here and we will load it for you.
+     */
+    'macroPath' => '',
+
+    /*
+     * The key under which data is saved to the session with flash.
+     */
+    'sessionKey' => '_googleTagManager',
+
+];
diff --git a/src/resources/install/config/gravatar.php b/src/resources/install/config/gravatar.php
new file mode 100644 (file)
index 0000000..8f4466b
--- /dev/null
@@ -0,0 +1,34 @@
+<?php
+
+return array(
+       'default' => array(
+
+               // By default, images are presented at 80px by 80px if no size parameter is supplied.
+               // You may request a specific image size, which will be dynamically delivered from Gravatar
+               // by passing a single pixel dimension (since the images are square):
+               'size'   => 80,
+
+               // the fallback image, can be a string or a url
+               // for more info, visit: http://en.gravatar.com/site/implement/images/#default-image
+               'fallback' => 'mm',
+
+               // would you like to return a https://... image
+               'secure' => false,
+
+               // Gravatar allows users to self-rate their images so that they can indicate if an image
+               // is appropriate for a certain audience. By default, only 'G' rated images are displayed
+               // unless you indicate that you would like to see higher ratings.
+               // Available options:
+               // g: suitable for display on all websites with any audience type.
+               // pg: may contain rude gestures, provocatively dressed individuals, the lesser swear words, or mild violence.
+               // r: may contain such things as harsh profanity, intense violence, nudity, or hard drug use.
+               // x: may contain hardcore sexual imagery or extremely disturbing violence.
+               'maximumRating' => 'g',
+
+               // If for some reason you wanted to force the default image to always load, you can do that setting this to true
+               'forceDefault' => false,
+
+               // If you require a file-type extension (some places do) then you may also add an (optional) .jpg extension to that URL
+               'forceExtension' => 'jpg',
+       )
+);
\ No newline at end of file
diff --git a/src/resources/install/config/gtag.php b/src/resources/install/config/gtag.php
new file mode 100644 (file)
index 0000000..a0c3110
--- /dev/null
@@ -0,0 +1,19 @@
+<?php
+
+return [
+
+    /*
+     * The Google Tag Manager id, should be a code that looks something like "gtm-xxxx".
+     */
+    'id' => env('GOOGLE_ANALYTICS_ID', ''),
+
+    /*
+     * Enable or disable script rendering. Useful for local development.
+     */
+    'enabled' => env('GOOGLE_ANALYTICS_ID', '') != '',
+
+    /*
+     * Observe Do Not Track header. Disable google analytics tracking when enabled on the user agent
+     */
+    'observe_dnt' => true,
+];
diff --git a/src/resources/install/config/hashing.php b/src/resources/install/config/hashing.php
new file mode 100644 (file)
index 0000000..8425770
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Default Hash Driver
+    |--------------------------------------------------------------------------
+    |
+    | This option controls the default hash driver that will be used to hash
+    | passwords for your application. By default, the bcrypt algorithm is
+    | used; however, you remain free to modify this option if you wish.
+    |
+    | Supported: "bcrypt", "argon", "argon2id"
+    |
+    */
+
+    'driver' => 'bcrypt',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Bcrypt Options
+    |--------------------------------------------------------------------------
+    |
+    | Here you may specify the configuration options that should be used when
+    | passwords are hashed using the Bcrypt algorithm. This will allow you
+    | to control the amount of time it takes to hash the given password.
+    |
+    */
+
+    'bcrypt' => [
+        'rounds' => env('BCRYPT_ROUNDS', 10),
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Argon Options
+    |--------------------------------------------------------------------------
+    |
+    | Here you may specify the configuration options that should be used when
+    | passwords are hashed using the Argon algorithm. These will allow you
+    | to control the amount of time it takes to hash the given password.
+    |
+    */
+
+    'argon' => [
+        'memory' => 1024,
+        'threads' => 2,
+        'time' => 2,
+    ],
+
+];
diff --git a/src/resources/install/config/laravel-menu/settings.php b/src/resources/install/config/laravel-menu/settings.php
new file mode 100644 (file)
index 0000000..22dc044
--- /dev/null
@@ -0,0 +1,13 @@
+<?php
+
+return [
+    'default' => [
+        'auto_activate' => true,
+        'activate_parents' => true,
+        'active_class' => 'active',
+        'restful' => false,
+        'cascade_data' => true,
+        'rest_base' => '',      // string|array
+        'active_element' => 'item',  // item|link
+    ],
+];
diff --git a/src/resources/install/config/laravel-menu/views.php b/src/resources/install/config/laravel-menu/views.php
new file mode 100644 (file)
index 0000000..e136d88
--- /dev/null
@@ -0,0 +1,5 @@
+<?php
+
+return [
+    'bootstrap-items' => 'laravel-menu::bootstrap-navbar-items',
+];
diff --git a/src/resources/install/config/logging.php b/src/resources/install/config/logging.php
new file mode 100644 (file)
index 0000000..d09cd7d
--- /dev/null
@@ -0,0 +1,94 @@
+<?php
+
+use Monolog\Handler\StreamHandler;
+use Monolog\Handler\SyslogUdpHandler;
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Default Log Channel
+    |--------------------------------------------------------------------------
+    |
+    | This option defines the default log channel that gets used when writing
+    | messages to the logs. The name specified in this option should match
+    | one of the channels defined in the "channels" configuration array.
+    |
+    */
+
+    'default' => env('LOG_CHANNEL', 'stack'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Log Channels
+    |--------------------------------------------------------------------------
+    |
+    | Here you may configure the log channels for your application. Out of
+    | the box, Laravel uses the Monolog PHP logging library. This gives
+    | you a variety of powerful log handlers / formatters to utilize.
+    |
+    | Available Drivers: "single", "daily", "slack", "syslog",
+    |                    "errorlog", "monolog",
+    |                    "custom", "stack"
+    |
+    */
+
+    'channels' => [
+        'stack' => [
+            'driver' => 'stack',
+            'channels' => ['daily'],
+            'ignore_exceptions' => false,
+        ],
+
+        'single' => [
+            'driver' => 'single',
+            'path' => storage_path('logs/laravel.log'),
+            'level' => 'debug',
+        ],
+
+        'daily' => [
+            'driver' => 'daily',
+            'path' => storage_path('logs/laravel.log'),
+            'level' => 'debug',
+            'days' => 14,
+        ],
+
+        'slack' => [
+            'driver' => 'slack',
+            'url' => env('LOG_SLACK_WEBHOOK_URL'),
+            'username' => 'Laravel Log',
+            'emoji' => ':boom:',
+            'level' => 'critical',
+        ],
+
+        'papertrail' => [
+            'driver' => 'monolog',
+            'level' => 'debug',
+            'handler' => SyslogUdpHandler::class,
+            'handler_with' => [
+                'host' => env('PAPERTRAIL_URL'),
+                'port' => env('PAPERTRAIL_PORT'),
+            ],
+        ],
+
+        'stderr' => [
+            'driver' => 'monolog',
+            'handler' => StreamHandler::class,
+            'formatter' => env('LOG_STDERR_FORMATTER'),
+            'with' => [
+                'stream' => 'php://stderr',
+            ],
+        ],
+
+        'syslog' => [
+            'driver' => 'syslog',
+            'level' => 'debug',
+        ],
+
+        'errorlog' => [
+            'driver' => 'errorlog',
+            'level' => 'debug',
+        ],
+    ],
+
+];
diff --git a/src/resources/install/config/mail.php b/src/resources/install/config/mail.php
new file mode 100644 (file)
index 0000000..83dd874
--- /dev/null
@@ -0,0 +1,136 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Mail Driver
+    |--------------------------------------------------------------------------
+    |
+    | Laravel supports both SMTP and PHP's "mail" function as drivers for the
+    | sending of e-mail. You may specify which one you're using throughout
+    | your application here. By default, Laravel is setup for SMTP mail.
+    |
+    | Supported: "smtp", "sendmail", "mailgun", "mandrill", "ses",
+    |            "sparkpost", "log", "array"
+    |
+    */
+
+    'driver' => env('MAIL_DRIVER', 'smtp'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | SMTP Host Address
+    |--------------------------------------------------------------------------
+    |
+    | Here you may provide the host address of the SMTP server used by your
+    | applications. A default option is provided that is compatible with
+    | the Mailgun mail service which will provide reliable deliveries.
+    |
+    */
+
+    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | SMTP Host Port
+    |--------------------------------------------------------------------------
+    |
+    | This is the SMTP port used by your application to deliver e-mails to
+    | users of the application. Like the host we have set this value to
+    | stay compatible with the Mailgun e-mail application by default.
+    |
+    */
+
+    'port' => env('MAIL_PORT', 587),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Global "From" Address
+    |--------------------------------------------------------------------------
+    |
+    | You may wish for all e-mails sent by your application to be sent from
+    | the same address. Here, you may specify a name and address that is
+    | used globally for all e-mails that are sent by your application.
+    |
+    */
+
+    'from' => [
+        'address' => env('MAIL_FROM_ADDRESS', 'pmi@cubedesigners.com'),
+        'name' => env('MAIL_FROM_NAME', 'PM-Instrumentation'),
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | E-Mail Encryption Protocol
+    |--------------------------------------------------------------------------
+    |
+    | Here you may specify the encryption protocol that should be used when
+    | the application send e-mail messages. A sensible default using the
+    | transport layer security protocol should provide great security.
+    |
+    */
+
+    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | SMTP Server Username
+    |--------------------------------------------------------------------------
+    |
+    | If your SMTP server requires a username for authentication, you should
+    | set it here. This will get used to authenticate with your server on
+    | connection. You may also set the "password" value below this one.
+    |
+    */
+
+    'username' => env('MAIL_USERNAME'),
+
+    'password' => env('MAIL_PASSWORD'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Sendmail System Path
+    |--------------------------------------------------------------------------
+    |
+    | When using the "sendmail" driver to send e-mails, we will need to know
+    | the path to where Sendmail lives on this server. A default path has
+    | been provided here, which will work well on most of your systems.
+    |
+    */
+
+    'sendmail' => '/usr/sbin/sendmail -bs',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Markdown Mail Settings
+    |--------------------------------------------------------------------------
+    |
+    | If you are using Markdown based email rendering, you may configure your
+    | theme and component paths here, allowing you to customize the design
+    | of the emails. Or, you may simply stick with the Laravel defaults!
+    |
+    */
+
+    'markdown' => [
+        'theme' => 'default',
+
+        'paths' => [
+            resource_path('views/vendor/mail'),
+        ],
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Log Channel
+    |--------------------------------------------------------------------------
+    |
+    | If you are using the "log" driver, you may specify the logging channel
+    | if you prefer to keep mail messages separate from other log entries
+    | for simpler reading. Otherwise, the default channel will be used.
+    |
+    */
+
+    'log_channel' => env('MAIL_LOG_CHANNEL'),
+
+];
diff --git a/src/resources/install/config/markdown.php b/src/resources/install/config/markdown.php
new file mode 100644 (file)
index 0000000..5f7115c
--- /dev/null
@@ -0,0 +1,168 @@
+<?php
+
+declare(strict_types=1);
+
+/*
+ * This file is part of Laravel Markdown.
+ *
+ * (c) Graham Campbell <graham@alt-three.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Enable View Integration
+    |--------------------------------------------------------------------------
+    |
+    | This option specifies if the view integration is enabled so you can write
+    | markdown views and have them rendered as html. The following extensions
+    | are currently supported: ".md", ".md.php", and ".md.blade.php". You may
+    | disable this integration if it is conflicting with another package.
+    |
+    | Default: true
+    |
+    */
+
+    'views' => true,
+
+    /*
+    |--------------------------------------------------------------------------
+    | CommonMark Extensions
+    |--------------------------------------------------------------------------
+    |
+    | This option specifies what extensions will be automatically enabled.
+    | Simply provide your extension class names here.
+    |
+    | Default: []
+    |
+    */
+
+    'extensions' => [
+        Cubist\Backpack\app\Markdown\Heading\Extension::class,
+        Cubist\Backpack\app\Markdown\Wrapper\Extension::class,
+        League\CommonMark\Ext\Autolink\AutolinkExtension::class,
+        League\CommonMark\Ext\Table\TableExtension::class,
+        Cubist\Backpack\app\Markdown\InternalLink\Extension::class,
+
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Renderer Configuration
+    |--------------------------------------------------------------------------
+    |
+    | This option specifies an array of options for rendering HTML.
+    |
+    | Default: [
+    |              'block_separator' => "\n",
+    |              'inner_separator' => "\n",
+    |              'soft_break'      => "\n",
+    |          ]
+    |
+    */
+
+    'renderer' => [
+        'block_separator' => "\n",
+        'inner_separator' => "\n",
+        'soft_break' => "\n",
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Enable Em Tag Parsing
+    |--------------------------------------------------------------------------
+    |
+    | This option specifies if `<em>` parsing is enabled.
+    |
+    | Default: true
+    |
+    */
+
+    'enable_em' => true,
+
+    /*
+    |--------------------------------------------------------------------------
+    | Enable Strong Tag Parsing
+    |--------------------------------------------------------------------------
+    |
+    | This option specifies if `<strong>` parsing is enabled.
+    |
+    | Default: true
+    |
+    */
+
+    'enable_strong' => true,
+
+    /*
+    |--------------------------------------------------------------------------
+    | Enable Asterisk Parsing
+    |--------------------------------------------------------------------------
+    |
+    | This option specifies if `*` should be parsed for emphasis.
+    |
+    | Default: true
+    |
+    */
+
+    'use_asterisk' => true,
+
+    /*
+    |--------------------------------------------------------------------------
+    | Enable Underscore Parsing
+    |--------------------------------------------------------------------------
+    |
+    | This option specifies if `_` should be parsed for emphasis.
+    |
+    | Default: true
+    |
+    */
+
+    'use_underscore' => true,
+
+    /*
+    |--------------------------------------------------------------------------
+    | HTML Input
+    |--------------------------------------------------------------------------
+    |
+    | This option specifies how to handle untrusted HTML input.
+    |
+    | Default: 'strip'
+    |
+    */
+
+    'html_input' => 'strip',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Allow Unsafe Links
+    |--------------------------------------------------------------------------
+    |
+    | This option specifies whether to allow risky image URLs and links.
+    |
+    | Default: true
+    |
+    */
+
+    'allow_unsafe_links' => true,
+
+    /*
+    |--------------------------------------------------------------------------
+    | Maximum Nesting Level
+    |--------------------------------------------------------------------------
+    |
+    | This option specifies the maximum permitted block nesting level.
+    |
+    | Default: INF
+    |
+    */
+
+    'max_nesting_level' => INF,
+
+    'heading_offset' => 0,
+    'heading_max' => 6
+
+];
diff --git a/src/resources/install/config/medialibrary.php b/src/resources/install/config/medialibrary.php
new file mode 100644 (file)
index 0000000..9275e29
--- /dev/null
@@ -0,0 +1,150 @@
+<?php
+
+return [
+
+    /*
+     * The disk on which to store added files and derived images by default. Choose
+     * one or more of the disks you've configured in config/filesystems.php.
+     */
+    'disk_name' => 'public',
+
+    /*
+     * The maximum file size of an item in bytes.
+     * Adding a larger file will result in an exception.
+     */
+    'max_file_size' => 1024 * 1024 * 1024,
+
+    /*
+     * This queue will be used to generate derived and responsive images.
+     * Leave empty to use the default queue.
+     */
+    'queue_name' => '',
+
+    /*
+     * The fully qualified class name of the media model.
+     */
+    'media_model' => Spatie\MediaLibrary\Models\Media::class,
+
+    's3' => [
+        /*
+         * The domain that should be prepended when generating urls.
+         */
+        'domain' => 'https://'.env('AWS_BUCKET').'.s3.amazonaws.com',
+    ],
+
+    'remote' => [
+        /*
+         * Any extra headers that should be included when uploading media to
+         * a remote disk. Even though supported headers may vary between
+         * different drivers, a sensible default has been provided.
+         *
+         * Supported by S3: CacheControl, Expires, StorageClass,
+         * ServerSideEncryption, Metadata, ACL, ContentEncoding
+         */
+        'extra_headers' => [
+            'CacheControl' => 'max-age=604800',
+        ],
+    ],
+
+    'responsive_images' => [
+
+        /*
+        * This class is responsible for calculating the target widths of the responsive
+        * images. By default we optimize for filesize and create variations that each are 20%
+        * smaller than the previous one. More info in the documentation.
+        *
+        * https://docs.spatie.be/laravel-medialibrary/v7/advanced-usage/generating-responsive-images
+        */
+        'width_calculator' => Spatie\MediaLibrary\ResponsiveImages\WidthCalculator\FileSizeOptimizedWidthCalculator::class,
+
+        /*
+         * By default rendering media to a responsive image will add some javascript and a tiny placeholder.
+         * This ensures that the browser can already determine the correct layout.
+         */
+        'use_tiny_placeholders' => true,
+
+        /*
+         * This class will generate the tiny placeholder used for progressive image loading. By default
+         * the medialibrary will use a tiny blurred jpg image.
+         */
+        'tiny_placeholder_generator' => Spatie\MediaLibrary\ResponsiveImages\TinyPlaceholderGenerator\Blurred::class,
+    ],
+
+    /*
+     * When urls to files get generated, this class will be called. Leave empty
+     * if your files are stored locally above the site root or on s3.
+     */
+    'url_generator' => null,
+
+    /*
+     * The class that contains the strategy for determining a media file's path.
+     */
+    'path_generator' => null,
+
+    /*
+     * Medialibrary will try to optimize all converted images by removing
+     * metadata and applying a little bit of compression. These are
+     * the optimizers that will be used by default.
+     */
+    'image_optimizers' => [
+        Spatie\ImageOptimizer\Optimizers\Jpegoptim::class => [
+            '--strip-all', // this strips out all text information such as comments and EXIF data
+            '--all-progressive', // this will make sure the resulting image is a progressive one
+        ],
+        Spatie\ImageOptimizer\Optimizers\Pngquant::class => [
+            '--force', // required parameter for this package
+        ],
+        Spatie\ImageOptimizer\Optimizers\Optipng::class => [
+            '-i0', // this will result in a non-interlaced, progressive scanned image
+            '-o2', // this set the optimization level to two (multiple IDAT compression trials)
+            '-quiet', // required parameter for this package
+        ],
+        Spatie\ImageOptimizer\Optimizers\Svgo::class => [
+            '--disable=cleanupIDs', // disabling because it is known to cause troubles
+        ],
+        Spatie\ImageOptimizer\Optimizers\Gifsicle::class => [
+            '-b', // required parameter for this package
+            '-O3', // this produces the slowest but best results
+        ],
+    ],
+
+    /*
+     * These generators will be used to create an image of media files.
+     */
+    'image_generators' => [
+        Spatie\MediaLibrary\ImageGenerators\FileTypes\Image::class,
+        Spatie\MediaLibrary\ImageGenerators\FileTypes\Webp::class,
+        Spatie\MediaLibrary\ImageGenerators\FileTypes\Pdf::class,
+        Spatie\MediaLibrary\ImageGenerators\FileTypes\Svg::class,
+        Spatie\MediaLibrary\ImageGenerators\FileTypes\Video::class,
+    ],
+
+    /*
+     * The engine that should perform the image conversions.
+     * Should be either `gd` or `imagick`.
+     */
+    'image_driver' => 'gd',
+
+    /*
+     * FFMPEG & FFProbe binaries paths, only used if you try to generate video
+     * thumbnails and have installed the php-ffmpeg/php-ffmpeg composer
+     * dependency.
+     */
+    'ffmpeg_path' => env('FFMPEG_PATH', '/usr/bin/ffmpeg'),
+    'ffprobe_path' => env('FFPROBE_PATH', '/usr/bin/ffprobe'),
+
+    /*
+     * The path where to store temporary files while performing image conversions.
+     * If set to null, storage_path('medialibrary/temp') will be used.
+     */
+    'temporary_directory_path' => null,
+
+    /*
+     * Here you can override the class names of the jobs used by this package. Make sure
+     * your custom jobs extend the ones provided by the package.
+     */
+    'jobs' => [
+        'perform_conversions' => Spatie\MediaLibrary\Jobs\PerformConversions::class,
+        'generate_responsive_images' => Spatie\MediaLibrary\Jobs\GenerateResponsiveImages::class,
+    ],
+];
diff --git a/src/resources/install/config/permission.php b/src/resources/install/config/permission.php
new file mode 100644 (file)
index 0000000..c675dce
--- /dev/null
@@ -0,0 +1,127 @@
+<?php
+
+return [
+
+    'models' => [
+
+        /*
+         * When using the "HasPermissions" trait from this package, we need to know which
+         * Eloquent model should be used to retrieve your permissions. Of course, it
+         * is often just the "Permission" model but you may use whatever you like.
+         *
+         * The model you want to use as a Permission model needs to implement the
+         * `Spatie\Permission\Contracts\Permission` contract.
+         */
+
+        'permission' => Spatie\Permission\Models\Permission::class,
+
+        /*
+         * When using the "HasRoles" trait from this package, we need to know which
+         * Eloquent model should be used to retrieve your roles. Of course, it
+         * is often just the "Role" model but you may use whatever you like.
+         *
+         * The model you want to use as a Role model needs to implement the
+         * `Spatie\Permission\Contracts\Role` contract.
+         */
+
+        'role' => Spatie\Permission\Models\Role::class,
+
+    ],
+
+    'table_names' => [
+
+        /*
+         * When using the "HasRoles" trait from this package, we need to know which
+         * table should be used to retrieve your roles. We have chosen a basic
+         * default value but you may easily change it to any table you like.
+         */
+
+        'roles' => 'roles',
+
+        /*
+         * When using the "HasPermissions" trait from this package, we need to know which
+         * table should be used to retrieve your permissions. We have chosen a basic
+         * default value but you may easily change it to any table you like.
+         */
+
+        'permissions' => 'permissions',
+
+        /*
+         * When using the "HasPermissions" trait from this package, we need to know which
+         * table should be used to retrieve your models permissions. We have chosen a
+         * basic default value but you may easily change it to any table you like.
+         */
+
+        'model_has_permissions' => 'model_has_permissions',
+
+        /*
+         * When using the "HasRoles" trait from this package, we need to know which
+         * table should be used to retrieve your models roles. We have chosen a
+         * basic default value but you may easily change it to any table you like.
+         */
+
+        'model_has_roles' => 'model_has_roles',
+
+        /*
+         * When using the "HasRoles" trait from this package, we need to know which
+         * table should be used to retrieve your roles permissions. We have chosen a
+         * basic default value but you may easily change it to any table you like.
+         */
+
+        'role_has_permissions' => 'role_has_permissions',
+    ],
+
+    'column_names' => [
+
+        /*
+         * Change this if you want to name the related model primary key other than
+         * `model_id`.
+         *
+         * For example, this would be nice if your primary keys are all UUIDs. In
+         * that case, name this `model_uuid`.
+         */
+        'model_morph_key' => 'model_id',
+    ],
+
+    /*
+     * When set to true, the required permission/role names are added to the exception
+     * message. This could be considered an information leak in some contexts, so
+     * the default setting is false here for optimum safety.
+     */
+
+    'display_permission_in_exception' => false,
+
+    'cache' => [
+
+        /*
+         * By default all permissions will be cached for 24 hours unless a permission or
+         * role is updated. Then the cache will be flushed immediately.
+         */
+
+        'expiration_time' => 60 * 24,
+
+        /*
+         * The key to use when tagging and prefixing entries in the cache.
+         */
+
+        'key' => 'spatie.permission.cache',
+
+        /*
+         * When checking for a permission against a model by passing a Permission
+         * instance to the check, this key determines what attribute on the
+         * Permissions model is used to cache against.
+         *
+         * Ideally, this should match your preferred way of checking permissions, eg:
+         * `$user->can('view-posts')` would be 'name'.
+         */
+
+        'model_key' => 'name',
+
+        /*
+         * You may optionally indicate a specific cache driver to use for permission and
+         * role caching using any of the `store` drivers listed in the cache.php config
+         * file. Using 'default' here means to use the `default` set in cache.php.
+         */
+        'store' => 'default',
+    ],
+];
diff --git a/src/resources/install/config/prologue/alerts.php b/src/resources/install/config/prologue/alerts.php
new file mode 100644 (file)
index 0000000..8f816d4
--- /dev/null
@@ -0,0 +1,39 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Alert Levels
+    |--------------------------------------------------------------------------
+    |
+    | The default sort of alert levels which can be called as functions on the
+    | AlertsMessageBag class. This gives a convenient way to add certain type's
+    | of messages.
+    |
+    | For example:
+    |
+    |     Alerts::info($message);
+    |
+    */
+
+    'levels' => [
+        'info',
+        'warning',
+        'error',
+        'success',
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Key
+    |--------------------------------------------------------------------------
+    |
+    | The session key which is used to store flashed messages into the current
+    | session. This can be changed if it conflicts with another key.
+    |
+    */
+
+    'session_key' => 'alert_messages',
+
+];
diff --git a/src/resources/install/config/queue.php b/src/resources/install/config/queue.php
new file mode 100644 (file)
index 0000000..c1430b4
--- /dev/null
@@ -0,0 +1,86 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Default Queue Connection Name
+    |--------------------------------------------------------------------------
+    |
+    | Laravel's queue API supports an assortment of back-ends via a single
+    | API, giving you convenient access to each back-end using the same
+    | syntax for every one. Here you may define a default connection.
+    |
+    */
+
+    'default' => env('QUEUE_CONNECTION', 'sync'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Queue Connections
+    |--------------------------------------------------------------------------
+    |
+    | Here you may configure the connection information for each server that
+    | is used by your application. A default configuration has been added
+    | for each back-end shipped with Laravel. You are free to add more.
+    |
+    | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null"
+    |
+    */
+
+    'connections' => [
+
+        'sync' => [
+            'driver' => 'sync',
+        ],
+
+        'database' => [
+            'driver' => 'database',
+            'table' => 'jobs',
+            'queue' => 'default',
+            'retry_after' => 90,
+        ],
+
+        'beanstalkd' => [
+            'driver' => 'beanstalkd',
+            'host' => 'localhost',
+            'queue' => 'default',
+            'retry_after' => 90,
+        ],
+
+        'sqs' => [
+            'driver' => 'sqs',
+            'key' => env('SQS_KEY', 'your-public-key'),
+            'secret' => env('SQS_SECRET', 'your-secret-key'),
+            'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
+            'queue' => env('SQS_QUEUE', 'your-queue-name'),
+            'region' => env('SQS_REGION', 'us-east-1'),
+        ],
+
+        'redis' => [
+            'driver' => 'redis',
+            'connection' => 'default',
+            'queue' => env('REDIS_QUEUE', 'default'),
+            'retry_after' => 90,
+            'block_for' => null,
+        ],
+
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Failed Queue Jobs
+    |--------------------------------------------------------------------------
+    |
+    | These options configure the behavior of failed queue job logging so you
+    | can control which database and table are used to store the jobs that
+    | have failed. You may change them to any database / table you wish.
+    |
+    */
+
+    'failed' => [
+        'database' => env('DB_CONNECTION', 'mysql'),
+        'table' => 'failed_jobs',
+    ],
+
+];
diff --git a/src/resources/install/config/services.php b/src/resources/install/config/services.php
new file mode 100644 (file)
index 0000000..bb4d2ec
--- /dev/null
@@ -0,0 +1,43 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Third Party Services
+    |--------------------------------------------------------------------------
+    |
+    | This file is for storing the credentials for third party services such
+    | as Stripe, Mailgun, SparkPost and others. This file provides a sane
+    | default location for this type of information, allowing packages
+    | to have a conventional place to find your various credentials.
+    |
+    */
+
+    'mailgun' => [
+        'domain' => env('MAILGUN_DOMAIN'),
+        'secret' => env('MAILGUN_SECRET'),
+        'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
+    ],
+
+    'ses' => [
+        'key' => env('SES_KEY'),
+        'secret' => env('SES_SECRET'),
+        'region' => env('SES_REGION', 'us-east-1'),
+    ],
+
+    'sparkpost' => [
+        'secret' => env('SPARKPOST_SECRET'),
+    ],
+
+    'stripe' => [
+        'model' => App\User::class,
+        'key' => env('STRIPE_KEY'),
+        'secret' => env('STRIPE_SECRET'),
+        'webhook' => [
+            'secret' => env('STRIPE_WEBHOOK_SECRET'),
+            'tolerance' => env('STRIPE_WEBHOOK_TOLERANCE', 300),
+        ],
+    ],
+
+];
diff --git a/src/resources/install/config/session.php b/src/resources/install/config/session.php
new file mode 100644 (file)
index 0000000..fae302a
--- /dev/null
@@ -0,0 +1,199 @@
+<?php
+
+use Illuminate\Support\Str;
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | Default Session Driver
+    |--------------------------------------------------------------------------
+    |
+    | This option controls the default session "driver" that will be used on
+    | requests. By default, we will use the lightweight native driver but
+    | you may specify any of the other wonderful drivers provided here.
+    |
+    | Supported: "file", "cookie", "database", "apc",
+    |            "memcached", "redis", "array"
+    |
+    */
+
+    'driver' => env('SESSION_DRIVER', 'file'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Lifetime
+    |--------------------------------------------------------------------------
+    |
+    | Here you may specify the number of minutes that you wish the session
+    | to be allowed to remain idle before it expires. If you want them
+    | to immediately expire on the browser closing, set that option.
+    |
+    */
+
+    'lifetime' => env('SESSION_LIFETIME', 120),
+
+    'expire_on_close' => false,
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Encryption
+    |--------------------------------------------------------------------------
+    |
+    | This option allows you to easily specify that all of your session data
+    | should be encrypted before it is stored. All encryption will be run
+    | automatically by Laravel and you can use the Session like normal.
+    |
+    */
+
+    'encrypt' => false,
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session File Location
+    |--------------------------------------------------------------------------
+    |
+    | When using the native session driver, we need a location where session
+    | files may be stored. A default has been set for you but a different
+    | location may be specified. This is only needed for file sessions.
+    |
+    */
+
+    'files' => storage_path('framework/sessions'),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Database Connection
+    |--------------------------------------------------------------------------
+    |
+    | When using the "database" or "redis" session drivers, you may specify a
+    | connection that should be used to manage these sessions. This should
+    | correspond to a connection in your database configuration options.
+    |
+    */
+
+    'connection' => env('SESSION_CONNECTION', null),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Database Table
+    |--------------------------------------------------------------------------
+    |
+    | When using the "database" session driver, you may specify the table we
+    | should use to manage the sessions. Of course, a sensible default is
+    | provided for you; however, you are free to change this as needed.
+    |
+    */
+
+    'table' => 'sessions',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Cache Store
+    |--------------------------------------------------------------------------
+    |
+    | When using the "apc" or "memcached" session drivers, you may specify a
+    | cache store that should be used for these sessions. This value must
+    | correspond with one of the application's configured cache stores.
+    |
+    */
+
+    'store' => env('SESSION_STORE', null),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Sweeping Lottery
+    |--------------------------------------------------------------------------
+    |
+    | Some session drivers must manually sweep their storage location to get
+    | rid of old sessions from storage. Here are the chances that it will
+    | happen on a given request. By default, the odds are 2 out of 100.
+    |
+    */
+
+    'lottery' => [2, 100],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Cookie Name
+    |--------------------------------------------------------------------------
+    |
+    | Here you may change the name of the cookie used to identify a session
+    | instance by ID. The name specified here will get used every time a
+    | new session cookie is created by the framework for every driver.
+    |
+    */
+
+    'cookie' => env(
+        'SESSION_COOKIE',
+        Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
+    ),
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Cookie Path
+    |--------------------------------------------------------------------------
+    |
+    | The session cookie path determines the path for which the cookie will
+    | be regarded as available. Typically, this will be the root path of
+    | your application but you are free to change this when necessary.
+    |
+    */
+
+    'path' => '/',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Session Cookie Domain
+    |--------------------------------------------------------------------------
+    |
+    | Here you may change the domain of the cookie used to identify a session
+    | in your application. This will determine which domains the cookie is
+    | available to in your application. A sensible default has been set.
+    |
+    */
+
+    'domain' => env('SESSION_DOMAIN', null),
+
+    /*
+    |--------------------------------------------------------------------------
+    | HTTPS Only Cookies
+    |--------------------------------------------------------------------------
+    |
+    | By setting this option to true, session cookies will only be sent back
+    | to the server if the browser has a HTTPS connection. This will keep
+    | the cookie from being sent to you if it can not be done securely.
+    |
+    */
+
+    'secure' => env('SESSION_SECURE_COOKIE', false),
+
+    /*
+    |--------------------------------------------------------------------------
+    | HTTP Access Only
+    |--------------------------------------------------------------------------
+    |
+    | Setting this value to true will prevent JavaScript from accessing the
+    | value of the cookie and the cookie will only be accessible through
+    | the HTTP protocol. You are free to modify this option if needed.
+    |
+    */
+
+    'http_only' => true,
+
+    /*
+    |--------------------------------------------------------------------------
+    | Same-Site Cookies
+    |--------------------------------------------------------------------------
+    |
+    | This option determines how your cookies behave when cross-site requests
+    | take place, and can be used to mitigate CSRF attacks. By default, we
+    | do not enable this as other CSRF protection services are in place.
+    |
+    | Supported: "lax", "strict"
+    |
+    */
+
+    'same_site' => null,
+
+];
diff --git a/src/resources/install/config/view.php b/src/resources/install/config/view.php
new file mode 100644 (file)
index 0000000..22b8a18
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | View Storage Paths
+    |--------------------------------------------------------------------------
+    |
+    | Most templating systems load templates from disk. Here you may specify
+    | an array of paths that should be checked for your views. Of course
+    | the usual Laravel view path has already been registered for you.
+    |
+    */
+
+    'paths' => [
+        resource_path('views'),
+    ],
+
+    /*
+    |--------------------------------------------------------------------------
+    | Compiled View Path
+    |--------------------------------------------------------------------------
+    |
+    | This option determines where all the compiled Blade templates will be
+    | stored for your application. Typically, this is within the storage
+    | directory. However, as usual, you are free to change this value.
+    |
+    */
+
+    'compiled' => env(
+        'VIEW_COMPILED_PATH',
+        realpath(storage_path('framework/views'))
+    ),
+
+];