1day2die 2 лет назад
Родитель
Сommit
9b7ca02f00
100 измененных файлов с 458 добавлено и 61 удалено
  1. 8 0
      app/Classes/Settings/System.php
  2. 9 1
      app/Http/Controllers/Admin/SettingsController.php
  3. 10 0
      app/Providers/AppServiceProvider.php
  4. 1 0
      composer.json
  5. 124 1
      composer.lock
  6. 34 0
      config/theme.php
  7. 7 0
      database/seeders/Seeds/SettingsSeeder.php
  8. 115 52
      package-lock.json
  9. 10 6
      package.json
  10. 7 0
      themes/1day2die/js/app.js
  11. 48 0
      themes/1day2die/js/bootstrap.js
  12. 19 0
      themes/1day2die/sass/_variables.scss
  13. 8 0
      themes/1day2die/sass/app.scss
  14. 0 0
      themes/1day2die/views/admin/activitylogs/index.blade.php
  15. 0 0
      themes/1day2die/views/admin/api/create.blade.php
  16. 0 0
      themes/1day2die/views/admin/api/edit.blade.php
  17. 0 0
      themes/1day2die/views/admin/api/index.blade.php
  18. 0 0
      themes/1day2die/views/admin/nests/index.blade.php
  19. 0 0
      themes/1day2die/views/admin/nodes/index.blade.php
  20. 0 0
      themes/1day2die/views/admin/overview/index.blade.php
  21. 0 0
      themes/1day2die/views/admin/partners/create.blade.php
  22. 0 0
      themes/1day2die/views/admin/partners/edit.blade.php
  23. 0 0
      themes/1day2die/views/admin/partners/index.blade.php
  24. 0 0
      themes/1day2die/views/admin/payments/index.blade.php
  25. 0 0
      themes/1day2die/views/admin/products/create.blade.php
  26. 0 0
      themes/1day2die/views/admin/products/edit.blade.php
  27. 0 0
      themes/1day2die/views/admin/products/index.blade.php
  28. 0 0
      themes/1day2die/views/admin/products/show.blade.php
  29. 0 0
      themes/1day2die/views/admin/servers/edit.blade.php
  30. 0 0
      themes/1day2die/views/admin/servers/index.blade.php
  31. 0 0
      themes/1day2die/views/admin/servers/table.blade.php
  32. 0 0
      themes/1day2die/views/admin/settings/index.blade.php
  33. 0 0
      themes/1day2die/views/admin/settings/tabs/invoices.blade.php
  34. 0 0
      themes/1day2die/views/admin/settings/tabs/language.blade.php
  35. 0 0
      themes/1day2die/views/admin/settings/tabs/misc.blade.php
  36. 0 0
      themes/1day2die/views/admin/settings/tabs/payment.blade.php
  37. 1 0
      themes/1day2die/views/admin/settings/tabs/system.blade.php
  38. 0 0
      themes/1day2die/views/admin/store/create.blade.php
  39. 0 0
      themes/1day2die/views/admin/store/edit.blade.php
  40. 0 0
      themes/1day2die/views/admin/store/index.blade.php
  41. 0 0
      themes/1day2die/views/admin/usefullinks/create.blade.php
  42. 0 0
      themes/1day2die/views/admin/usefullinks/edit.blade.php
  43. 0 0
      themes/1day2die/views/admin/usefullinks/index.blade.php
  44. 0 0
      themes/1day2die/views/admin/users/edit.blade.php
  45. 0 0
      themes/1day2die/views/admin/users/index.blade.php
  46. 0 0
      themes/1day2die/views/admin/users/notifications.blade.php
  47. 0 0
      themes/1day2die/views/admin/users/show.blade.php
  48. 0 0
      themes/1day2die/views/admin/vouchers/create.blade.php
  49. 0 0
      themes/1day2die/views/admin/vouchers/edit.blade.php
  50. 0 0
      themes/1day2die/views/admin/vouchers/index.blade.php
  51. 0 0
      themes/1day2die/views/admin/vouchers/users.blade.php
  52. 0 0
      themes/1day2die/views/auth/login.blade.php
  53. 0 0
      themes/1day2die/views/auth/passwords/confirm.blade.php
  54. 0 0
      themes/1day2die/views/auth/passwords/email.blade.php
  55. 0 0
      themes/1day2die/views/auth/passwords/reset.blade.php
  56. 0 0
      themes/1day2die/views/auth/register.blade.php
  57. 0 0
      themes/1day2die/views/auth/verify.blade.php
  58. 0 0
      themes/1day2die/views/home.blade.php
  59. 0 0
      themes/1day2die/views/information/imprint-content.blade.php
  60. 0 0
      themes/1day2die/views/information/imprint.blade.php
  61. 0 0
      themes/1day2die/views/information/privacy-content.blade.php
  62. 0 0
      themes/1day2die/views/information/privacy.blade.php
  63. 0 0
      themes/1day2die/views/information/tos-content.blade.php
  64. 0 0
      themes/1day2die/views/information/tos.blade.php
  65. 0 0
      themes/1day2die/views/layouts/app.blade.php
  66. 0 0
      themes/1day2die/views/layouts/main.blade.php
  67. 0 0
      themes/1day2die/views/mail/payment/confirmed.blade.php
  68. 0 0
      themes/1day2die/views/mail/ticket/admin/create.blade.php
  69. 0 0
      themes/1day2die/views/mail/ticket/admin/reply.blade.php
  70. 0 0
      themes/1day2die/views/mail/ticket/user/create.blade.php
  71. 0 0
      themes/1day2die/views/mail/ticket/user/reply.blade.php
  72. 0 0
      themes/1day2die/views/models/redeem_voucher_modal.blade.php
  73. 0 0
      themes/1day2die/views/moderator/ticket/blacklist.blade.php
  74. 0 0
      themes/1day2die/views/moderator/ticket/index.blade.php
  75. 0 0
      themes/1day2die/views/moderator/ticket/show.blade.php
  76. 0 0
      themes/1day2die/views/notifications/index.blade.php
  77. 0 0
      themes/1day2die/views/notifications/show.blade.php
  78. 0 0
      themes/1day2die/views/profile/index.blade.php
  79. 1 1
      themes/1day2die/views/servers/create.blade.php
  80. 0 0
      themes/1day2die/views/servers/index.blade.php
  81. 0 0
      themes/1day2die/views/servers/settings.blade.php
  82. 0 0
      themes/1day2die/views/store/checkout.blade.php
  83. 0 0
      themes/1day2die/views/store/index.blade.php
  84. 0 0
      themes/1day2die/views/ticket/create.blade.php
  85. 0 0
      themes/1day2die/views/ticket/index.blade.php
  86. 0 0
      themes/1day2die/views/ticket/show.blade.php
  87. 0 0
      themes/1day2die/views/vendor/invoices/templates/controlpanel.blade.php
  88. 0 0
      themes/1day2die/views/vendor/invoices/templates/default.blade.php
  89. 37 0
      themes/1day2die/vite.config.js
  90. 0 0
      themes/default/css/adminlte.min.css
  91. 0 0
      themes/default/css/slim.min.css
  92. 0 0
      themes/default/css/stylesheet.css
  93. 0 0
      themes/default/js/adminlte.js
  94. 0 0
      themes/default/js/alpine.js
  95. 0 0
      themes/default/js/app.js
  96. 0 0
      themes/default/js/bootstrap.js
  97. 0 0
      themes/default/js/jquery.js
  98. 0 0
      themes/default/js/slim.kickstart.min.js
  99. 19 0
      themes/default/sass/_variables.scss
  100. 0 0
      themes/default/sass/app.scss

+ 8 - 0
app/Classes/Settings/System.php

@@ -7,6 +7,8 @@ use App\Models\Settings;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Cache;
 use Illuminate\Support\Facades\Validator;
+use Qirolab\Theme\Theme;
+
 
 class System
 {
@@ -102,6 +104,7 @@ class System
             "SETTINGS::SYSTEM:ALERT_ENABLED" => "alert-enabled",
             "SETTINGS::SYSTEM:ALERT_TYPE" => "alert-type",
             "SETTINGS::SYSTEM:ALERT_MESSAGE" => "alert-message",
+            "SETTINGS::SYSTEM:THEME" => "theme",
         ];
 
         foreach ($values as $key => $value) {
@@ -111,6 +114,11 @@ class System
             Cache::forget('setting'.':'.$key);
         }
 
+        //SET THEME
+        $theme = $request->get('theme');
+        Theme::set($theme);
+
+
         return redirect(route('admin.settings.index').'#system')->with('success', __('System settings updated!'));
     }
 

+ 9 - 1
app/Http/Controllers/Admin/SettingsController.php

@@ -7,6 +7,7 @@ use Illuminate\Contracts\Foundation\Application;
 use Illuminate\Contracts\View\Factory;
 use Illuminate\Contracts\View\View;
 use Illuminate\Http\Response;
+use Qirolab\Theme\Theme;
 
 class SettingsController extends Controller
 {
@@ -17,12 +18,15 @@ class SettingsController extends Controller
      */
     public function index()
     {
+
+
         //Get all tabs as laravel view paths
         $tabs = [];
-        foreach (glob(resource_path('views/admin/settings/tabs/*.blade.php')) as $filename) {
+        foreach (glob(Theme::getViewPaths()[0] . '/admin/settings/tabs/*.blade.php') as $filename) {
             $tabs[] = 'admin.settings.tabs.'.basename($filename, '.blade.php');
         }
 
+
         //Generate a html list item for each tab based on tabs file basename, set first tab as active
         $tabListItems = [];
         foreach ($tabs as $tab) {
@@ -33,9 +37,13 @@ class SettingsController extends Controller
             </a></li>';
         }
 
+        $themes = array_diff(scandir(base_path('themes')), array('..', '.'));
+
         return view('admin.settings.index', [
             'tabs' => $tabs,
             'tabListItems' => $tabListItems,
+            'themes' => $themes,
+            'active_theme' => Theme::active(),
         ]);
     }
 }

+ 10 - 0
app/Providers/AppServiceProvider.php

@@ -10,6 +10,7 @@ use Illuminate\Support\Facades\Log;
 use Illuminate\Support\Facades\Schema;
 use Illuminate\Support\Facades\Validator;
 use Illuminate\Support\ServiceProvider;
+use Qirolab\Theme\Theme;
 
 class AppServiceProvider extends ServiceProvider
 {
@@ -60,6 +61,15 @@ class AppServiceProvider extends ServiceProvider
                 config([$setting->key => $setting->value]);
             }
 
+
+            if(!file_exists(base_path('themes')."/".config("SETTINGS::SYSTEM:THEME"))){
+                config(['SETTINGS::SYSTEM:THEME' => "default"]);
+            }
+
+            if(config('theme.active') == null){
+                Theme::set(config("SETTINGS::SYSTEM:THEME"));
+            }
+
             // Set Mail Config
             //only update config if mail settings have changed in DB
             if (

+ 1 - 0
composer.json

@@ -22,6 +22,7 @@
         "league/flysystem-aws-s3-v3": "^3.0",
         "paypal/paypal-checkout-sdk": "^1.0",
         "paypal/rest-api-sdk-php": "^1.14",
+        "qirolab/laravel-themer": "^2.0",
         "socialiteproviders/discord": "^4.1",
         "spatie/laravel-activitylog": "^4.4",
         "spatie/laravel-query-builder": "^5.0",

+ 124 - 1
composer.lock

@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "8c024e627a38373a5d538e20061aff8f",
+    "content-hash": "be76c9bab8622d363a4eb843794e9e3e",
     "packages": [
         {
             "name": "aws/aws-crt-php",
@@ -1126,6 +1126,59 @@
             ],
             "time": "2023-01-02T17:26:14+00:00"
         },
+        {
+            "name": "facade/ignition-contracts",
+            "version": "1.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/facade/ignition-contracts.git",
+                "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267",
+                "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.3|^8.0"
+            },
+            "require-dev": {
+                "friendsofphp/php-cs-fixer": "^v2.15.8",
+                "phpunit/phpunit": "^9.3.11",
+                "vimeo/psalm": "^3.17.1"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Facade\\IgnitionContracts\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Freek Van der Herten",
+                    "email": "freek@spatie.be",
+                    "homepage": "https://flareapp.io",
+                    "role": "Developer"
+                }
+            ],
+            "description": "Solution contracts for Ignition",
+            "homepage": "https://github.com/facade/ignition-contracts",
+            "keywords": [
+                "contracts",
+                "flare",
+                "ignition"
+            ],
+            "support": {
+                "issues": "https://github.com/facade/ignition-contracts/issues",
+                "source": "https://github.com/facade/ignition-contracts/tree/1.0.2"
+            },
+            "time": "2020-10-16T08:27:54+00:00"
+        },
         {
             "name": "fruitcake/php-cors",
             "version": "v1.2.0",
@@ -4180,6 +4233,76 @@
             },
             "time": "2022-12-23T17:47:18+00:00"
         },
+        {
+            "name": "qirolab/laravel-themer",
+            "version": "2.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/qirolab/laravel-themer.git",
+                "reference": "9c4e17fe7334c921bf5c57395d926154cc25a1e8"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/qirolab/laravel-themer/zipball/9c4e17fe7334c921bf5c57395d926154cc25a1e8",
+                "reference": "9c4e17fe7334c921bf5c57395d926154cc25a1e8",
+                "shasum": ""
+            },
+            "require": {
+                "facade/ignition-contracts": "^1.0",
+                "illuminate/support": "^9.19",
+                "php": ">=7.1.0"
+            },
+            "require-dev": {
+                "orchestra/testbench": "^7.0",
+                "phpunit/phpunit": "^8.3|^9.0",
+                "vimeo/psalm": "^4.0"
+            },
+            "type": "library",
+            "extra": {
+                "laravel": {
+                    "providers": [
+                        "Qirolab\\Theme\\ThemeServiceProvider"
+                    ]
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Qirolab\\Theme\\": "src",
+                    "Qirolab\\Theme\\Database\\Factories\\": "database/factories"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Harish Kumar",
+                    "email": "harish@qirolab.com",
+                    "homepage": "https://qirolab.com",
+                    "role": "Developer"
+                }
+            ],
+            "description": "A Laravel theme manager, that will help you organize and maintain your themes inside Laravel projects.",
+            "homepage": "https://qirolab.com",
+            "keywords": [
+                "laravel",
+                "laravel-theme",
+                "qirolab",
+                "theme"
+            ],
+            "support": {
+                "issues": "https://github.com/qirolab/laravel-themer/issues",
+                "source": "https://github.com/qirolab/laravel-themer/tree/2.0.2"
+            },
+            "funding": [
+                {
+                    "url": "https://www.buymeacoffee.com/qirolab",
+                    "type": "other"
+                }
+            ],
+            "time": "2022-09-03T21:30:32+00:00"
+        },
         {
             "name": "ralouphie/getallheaders",
             "version": "3.0.3",

+ 34 - 0
config/theme.php

@@ -0,0 +1,34 @@
+<?php
+
+return [
+    /*
+    |--------------------------------------------------------------------------
+    | Default Active Theme
+    |--------------------------------------------------------------------------
+    |
+    | It will assign the default active theme to be used if one is not set during
+    | runtime.
+    */
+    'active' => null,
+
+    /*
+    |--------------------------------------------------------------------------
+    | Parent Theme
+    |--------------------------------------------------------------------------
+    |
+    | This is a parent theme for the theme specified in the active config
+    | option. It works like the WordPress style theme hierarchy, if the blade
+    | file is not found in the currently active theme, then it will look for it
+    | in the parent theme.
+    */
+    'parent' => "default",
+
+    /*
+    |--------------------------------------------------------------------------
+    | Base Path
+    |--------------------------------------------------------------------------
+    |
+    | The base path where all the themes are located.
+    */
+    'base_path' => base_path('themes')
+];

+ 7 - 0
database/seeders/Seeds/SettingsSeeder.php

@@ -597,5 +597,12 @@ class SettingsSeeder extends Seeder
             'type' => 'text',
             'description' => 'Changes the Content the Alert',
         ]);
+        Settings::firstOrCreate([
+            'key' => 'SETTINGS::SYSTEM:THEME',
+        ], [
+            'value' => 'default',
+            'type' => 'text',
+            'description' => 'Current active theme',
+        ]);
     }
 }

+ 115 - 52
package-lock.json

@@ -1,20 +1,20 @@
 {
-    "name": "controllpanelgg",
+    "name": "dashboard",
     "lockfileVersion": 2,
     "requires": true,
     "packages": {
         "": {
             "devDependencies": {
-                "axios": "^0.21",
-                "bootstrap": "^4.0.0",
-                "jquery": "^3.2",
+                "axios": "^0.25",
+                "bootstrap": "^4.6.0",
+                "jquery": "^3.5",
                 "laravel-mix": "^6.0.6",
                 "lodash": "^4.17.19",
-                "popper.js": "^1.12",
+                "popper.js": "^1.16",
                 "postcss": "^8.1.14",
                 "resolve-url-loader": "^3.1.2",
-                "sass": "^1.15.2",
-                "sass-loader": "^8.0.0"
+                "sass": "^1.32.1",
+                "sass-loader": "^10.1.1"
             }
         },
         "node_modules/@babel/code-frame": {
@@ -1633,9 +1633,9 @@
             }
         },
         "node_modules/@types/json-schema": {
-            "version": "7.0.7",
-            "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
-            "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==",
+            "version": "7.0.11",
+            "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
+            "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
             "dev": true
         },
         "node_modules/@types/micromatch": {
@@ -2262,12 +2262,12 @@
             }
         },
         "node_modules/axios": {
-            "version": "0.21.1",
-            "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
-            "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
+            "version": "0.25.0",
+            "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz",
+            "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==",
             "dev": true,
             "dependencies": {
-                "follow-redirects": "^1.10.0"
+                "follow-redirects": "^1.14.7"
             }
         },
         "node_modules/babel-loader": {
@@ -5454,9 +5454,9 @@
             }
         },
         "node_modules/follow-redirects": {
-            "version": "1.13.2",
-            "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.2.tgz",
-            "integrity": "sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA==",
+            "version": "1.15.2",
+            "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+            "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
             "dev": true,
             "funding": [
                 {
@@ -11728,19 +11728,19 @@
             }
         },
         "node_modules/sass-loader": {
-            "version": "8.0.2",
-            "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz",
-            "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==",
+            "version": "10.4.1",
+            "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.4.1.tgz",
+            "integrity": "sha512-aX/iJZTTpNUNx/OSYzo2KsjIUQHqvWsAhhUijFjAPdZTEhstjZI9zTNvkTTwsx+uNUJqUwOw5gacxQMx4hJxGQ==",
             "dev": true,
             "dependencies": {
-                "clone-deep": "^4.0.1",
-                "loader-utils": "^1.2.3",
-                "neo-async": "^2.6.1",
-                "schema-utils": "^2.6.1",
-                "semver": "^6.3.0"
+                "klona": "^2.0.4",
+                "loader-utils": "^2.0.0",
+                "neo-async": "^2.6.2",
+                "schema-utils": "^3.0.0",
+                "semver": "^7.3.2"
             },
             "engines": {
-                "node": ">= 8.9.0"
+                "node": ">= 10.13.0"
             },
             "funding": {
                 "type": "opencollective",
@@ -11748,7 +11748,7 @@
             },
             "peerDependencies": {
                 "fibers": ">= 3.1.0",
-                "node-sass": "^4.0.0",
+                "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0",
                 "sass": "^1.3.0",
                 "webpack": "^4.36.0 || ^5.0.0"
             },
@@ -11764,13 +11764,51 @@
                 }
             }
         },
+        "node_modules/sass-loader/node_modules/loader-utils": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+            "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+            "dev": true,
+            "dependencies": {
+                "big.js": "^5.2.2",
+                "emojis-list": "^3.0.0",
+                "json5": "^2.1.2"
+            },
+            "engines": {
+                "node": ">=8.9.0"
+            }
+        },
+        "node_modules/sass-loader/node_modules/schema-utils": {
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
+            "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+            "dev": true,
+            "dependencies": {
+                "@types/json-schema": "^7.0.8",
+                "ajv": "^6.12.5",
+                "ajv-keywords": "^3.5.2"
+            },
+            "engines": {
+                "node": ">= 10.13.0"
+            },
+            "funding": {
+                "type": "opencollective",
+                "url": "https://opencollective.com/webpack"
+            }
+        },
         "node_modules/sass-loader/node_modules/semver": {
-            "version": "6.3.0",
-            "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-            "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+            "version": "7.3.8",
+            "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+            "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
             "dev": true,
+            "dependencies": {
+                "lru-cache": "^6.0.0"
+            },
             "bin": {
                 "semver": "bin/semver.js"
+            },
+            "engines": {
+                "node": ">=10"
             }
         },
         "node_modules/sax": {
@@ -15169,9 +15207,9 @@
             }
         },
         "@types/json-schema": {
-            "version": "7.0.7",
-            "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
-            "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==",
+            "version": "7.0.11",
+            "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
+            "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
             "dev": true
         },
         "@types/micromatch": {
@@ -15705,12 +15743,12 @@
             }
         },
         "axios": {
-            "version": "0.21.1",
-            "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
-            "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
+            "version": "0.25.0",
+            "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz",
+            "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==",
             "dev": true,
             "requires": {
-                "follow-redirects": "^1.10.0"
+                "follow-redirects": "^1.14.7"
             }
         },
         "babel-loader": {
@@ -18293,9 +18331,9 @@
             }
         },
         "follow-redirects": {
-            "version": "1.13.2",
-            "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.2.tgz",
-            "integrity": "sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA==",
+            "version": "1.15.2",
+            "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+            "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
             "dev": true
         },
         "for-in": {
@@ -23134,23 +23172,48 @@
             }
         },
         "sass-loader": {
-            "version": "8.0.2",
-            "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz",
-            "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==",
+            "version": "10.4.1",
+            "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.4.1.tgz",
+            "integrity": "sha512-aX/iJZTTpNUNx/OSYzo2KsjIUQHqvWsAhhUijFjAPdZTEhstjZI9zTNvkTTwsx+uNUJqUwOw5gacxQMx4hJxGQ==",
             "dev": true,
             "requires": {
-                "clone-deep": "^4.0.1",
-                "loader-utils": "^1.2.3",
-                "neo-async": "^2.6.1",
-                "schema-utils": "^2.6.1",
-                "semver": "^6.3.0"
+                "klona": "^2.0.4",
+                "loader-utils": "^2.0.0",
+                "neo-async": "^2.6.2",
+                "schema-utils": "^3.0.0",
+                "semver": "^7.3.2"
             },
             "dependencies": {
+                "loader-utils": {
+                    "version": "2.0.4",
+                    "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+                    "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+                    "dev": true,
+                    "requires": {
+                        "big.js": "^5.2.2",
+                        "emojis-list": "^3.0.0",
+                        "json5": "^2.1.2"
+                    }
+                },
+                "schema-utils": {
+                    "version": "3.1.1",
+                    "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
+                    "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+                    "dev": true,
+                    "requires": {
+                        "@types/json-schema": "^7.0.8",
+                        "ajv": "^6.12.5",
+                        "ajv-keywords": "^3.5.2"
+                    }
+                },
                 "semver": {
-                    "version": "6.3.0",
-                    "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-                    "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-                    "dev": true
+                    "version": "7.3.8",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+                    "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+                    "dev": true,
+                    "requires": {
+                        "lru-cache": "^6.0.0"
+                    }
                 }
             }
         },

+ 10 - 6
package.json

@@ -7,18 +7,22 @@
         "watch-poll": "mix watch -- --watch-options-poll=1000",
         "hot": "mix watch --hot",
         "prod": "npm run production",
-        "production": "mix --production"
+        "production": "mix --production",
+        "dev:default": "vite --config themes/default/vite.config.js",
+        "build:default": "vite build --config themes/default/vite.config.js",
+    	"dev:1day2die": "vite --config themes/1day2die/vite.config.js",
+    	"build:1day2die": "vite build --config themes/1day2die/vite.config.js"
     },
     "devDependencies": {
         "axios": "^0.25",
-        "bootstrap": "^4.0.0",
-        "jquery": "^3.2",
+        "bootstrap": "^4.6.0",
+        "jquery": "^3.5",
         "laravel-mix": "^6.0.6",
         "lodash": "^4.17.19",
-        "popper.js": "^1.12",
+        "popper.js": "^1.16",
         "postcss": "^8.1.14",
         "resolve-url-loader": "^3.1.2",
-        "sass": "^1.15.2",
-        "sass-loader": "^8.0.0"
+        "sass": "^1.32.1",
+        "sass-loader": "^10.1.1"
     }
 }

+ 7 - 0
themes/1day2die/js/app.js

@@ -0,0 +1,7 @@
+/**
+ * First we will load all of this project's JavaScript dependencies which
+ * includes Vue and other libraries. It is a great starting point when
+ * building robust, powerful web applications using Vue and Laravel.
+ */
+
+import "./bootstrap";

+ 48 - 0
themes/1day2die/js/bootstrap.js

@@ -0,0 +1,48 @@
+import _ from "lodash";
+window._ = _;
+
+/**
+ * We'll load jQuery and the Bootstrap jQuery plugin which provides support
+ * for JavaScript based Bootstrap features such as modals and tabs. This
+ * code may be modified to fit the specific needs of your application.
+ */
+import * as Popper from "popper.js";
+window.Popper = Popper;
+
+import jquery from "jquery";
+window.$ = window.jQuery = jquery;
+
+// Import all of Bootstrap's JS
+import * as bootstrap from "bootstrap";
+
+/**
+ * We'll load the axios HTTP library which allows us to easily issue requests
+ * to our Laravel back-end. This library automatically handles sending the
+ * CSRF token as a header based on the value of the "XSRF" token cookie.
+ */
+
+import axios from "axios";
+window.axios = axios;
+
+window.axios.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest";
+
+/**
+ * Echo exposes an expressive API for subscribing to channels and listening
+ * for events that are broadcast by Laravel. Echo and event broadcasting
+ * allows your team to easily build robust real-time web applications.
+ */
+
+// import Echo from 'laravel-echo';
+
+// import Pusher from 'pusher-js';
+// window.Pusher = Pusher;
+
+// window.Echo = new Echo({
+//     broadcaster: 'pusher',
+//     key: import.meta.env.VITE_PUSHER_APP_KEY,
+//     wsHost: import.meta.env.VITE_PUSHER_HOST ?? `ws-${import.meta.env.VITE_PUSHER_CLUSTER}.pusher.com`,
+//     wsPort: import.meta.env.VITE_PUSHER_PORT ?? 80,
+//     wssPort: import.meta.env.VITE_PUSHER_PORT ?? 443,
+//     forceTLS: (import.meta.env.VITE_PUSHER_SCHEME ?? 'https') === 'https',
+//     enabledTransports: ['ws', 'wss'],
+// });

+ 19 - 0
themes/1day2die/sass/_variables.scss

@@ -0,0 +1,19 @@
+// Body
+$body-bg: #f8fafc;
+
+// Typography
+$font-family-sans-serif: 'Nunito', sans-serif;
+$font-size-base: 0.9rem;
+$line-height-base: 1.6;
+
+// Colors
+$blue: #3490dc;
+$indigo: #6574cd;
+$purple: #9561e2;
+$pink: #f66d9b;
+$red: #e3342f;
+$orange: #f6993f;
+$yellow: #ffed4a;
+$green: #38c172;
+$teal: #4dc0b5;
+$cyan: #6cb2eb;

+ 8 - 0
themes/1day2die/sass/app.scss

@@ -0,0 +1,8 @@
+// Fonts
+@import url('https://fonts.googleapis.com/css?family=Nunito');
+
+// Variables
+@import 'variables';
+
+// Bootstrap
+@import '~bootstrap/scss/bootstrap';

+ 0 - 0
resources/views/admin/activitylogs/index.blade.php → themes/1day2die/views/admin/activitylogs/index.blade.php


+ 0 - 0
resources/views/admin/api/create.blade.php → themes/1day2die/views/admin/api/create.blade.php


+ 0 - 0
resources/views/admin/api/edit.blade.php → themes/1day2die/views/admin/api/edit.blade.php


+ 0 - 0
resources/views/admin/api/index.blade.php → themes/1day2die/views/admin/api/index.blade.php


+ 0 - 0
resources/views/admin/nests/index.blade.php → themes/1day2die/views/admin/nests/index.blade.php


+ 0 - 0
resources/views/admin/nodes/index.blade.php → themes/1day2die/views/admin/nodes/index.blade.php


+ 0 - 0
resources/views/admin/overview/index.blade.php → themes/1day2die/views/admin/overview/index.blade.php


+ 0 - 0
resources/views/admin/partners/create.blade.php → themes/1day2die/views/admin/partners/create.blade.php


+ 0 - 0
resources/views/admin/partners/edit.blade.php → themes/1day2die/views/admin/partners/edit.blade.php


+ 0 - 0
resources/views/admin/partners/index.blade.php → themes/1day2die/views/admin/partners/index.blade.php


+ 0 - 0
resources/views/admin/payments/index.blade.php → themes/1day2die/views/admin/payments/index.blade.php


+ 0 - 0
resources/views/admin/products/create.blade.php → themes/1day2die/views/admin/products/create.blade.php


+ 0 - 0
resources/views/admin/products/edit.blade.php → themes/1day2die/views/admin/products/edit.blade.php


+ 0 - 0
resources/views/admin/products/index.blade.php → themes/1day2die/views/admin/products/index.blade.php


+ 0 - 0
resources/views/admin/products/show.blade.php → themes/1day2die/views/admin/products/show.blade.php


+ 0 - 0
resources/views/admin/servers/edit.blade.php → themes/1day2die/views/admin/servers/edit.blade.php


+ 0 - 0
resources/views/admin/servers/index.blade.php → themes/1day2die/views/admin/servers/index.blade.php


+ 0 - 0
resources/views/admin/servers/table.blade.php → themes/1day2die/views/admin/servers/table.blade.php


+ 0 - 0
resources/views/admin/settings/index.blade.php → themes/1day2die/views/admin/settings/index.blade.php


+ 0 - 0
resources/views/admin/settings/tabs/invoices.blade.php → themes/1day2die/views/admin/settings/tabs/invoices.blade.php


+ 0 - 0
resources/views/admin/settings/tabs/language.blade.php → themes/1day2die/views/admin/settings/tabs/language.blade.php


+ 0 - 0
resources/views/admin/settings/tabs/misc.blade.php → themes/1day2die/views/admin/settings/tabs/misc.blade.php


+ 0 - 0
resources/views/admin/settings/tabs/payment.blade.php → themes/1day2die/views/admin/settings/tabs/payment.blade.php


+ 1 - 0
themes/1day2die/views/admin/settings/tabs/system.blade.php

@@ -0,0 +1 @@
+you shall not pass nigger

+ 0 - 0
resources/views/admin/store/create.blade.php → themes/1day2die/views/admin/store/create.blade.php


+ 0 - 0
resources/views/admin/store/edit.blade.php → themes/1day2die/views/admin/store/edit.blade.php


+ 0 - 0
resources/views/admin/store/index.blade.php → themes/1day2die/views/admin/store/index.blade.php


+ 0 - 0
resources/views/admin/usefullinks/create.blade.php → themes/1day2die/views/admin/usefullinks/create.blade.php


+ 0 - 0
resources/views/admin/usefullinks/edit.blade.php → themes/1day2die/views/admin/usefullinks/edit.blade.php


+ 0 - 0
resources/views/admin/usefullinks/index.blade.php → themes/1day2die/views/admin/usefullinks/index.blade.php


+ 0 - 0
resources/views/admin/users/edit.blade.php → themes/1day2die/views/admin/users/edit.blade.php


+ 0 - 0
resources/views/admin/users/index.blade.php → themes/1day2die/views/admin/users/index.blade.php


+ 0 - 0
resources/views/admin/users/notifications.blade.php → themes/1day2die/views/admin/users/notifications.blade.php


+ 0 - 0
resources/views/admin/users/show.blade.php → themes/1day2die/views/admin/users/show.blade.php


+ 0 - 0
resources/views/admin/vouchers/create.blade.php → themes/1day2die/views/admin/vouchers/create.blade.php


+ 0 - 0
resources/views/admin/vouchers/edit.blade.php → themes/1day2die/views/admin/vouchers/edit.blade.php


+ 0 - 0
resources/views/admin/vouchers/index.blade.php → themes/1day2die/views/admin/vouchers/index.blade.php


+ 0 - 0
resources/views/admin/vouchers/users.blade.php → themes/1day2die/views/admin/vouchers/users.blade.php


+ 0 - 0
resources/views/auth/login.blade.php → themes/1day2die/views/auth/login.blade.php


+ 0 - 0
resources/views/auth/passwords/confirm.blade.php → themes/1day2die/views/auth/passwords/confirm.blade.php


+ 0 - 0
resources/views/auth/passwords/email.blade.php → themes/1day2die/views/auth/passwords/email.blade.php


+ 0 - 0
resources/views/auth/passwords/reset.blade.php → themes/1day2die/views/auth/passwords/reset.blade.php


+ 0 - 0
resources/views/auth/register.blade.php → themes/1day2die/views/auth/register.blade.php


+ 0 - 0
resources/views/auth/verify.blade.php → themes/1day2die/views/auth/verify.blade.php


+ 0 - 0
resources/views/home.blade.php → themes/1day2die/views/home.blade.php


+ 0 - 0
resources/views/information/imprint-content.blade.php → themes/1day2die/views/information/imprint-content.blade.php


+ 0 - 0
resources/views/information/imprint.blade.php → themes/1day2die/views/information/imprint.blade.php


+ 0 - 0
resources/views/information/privacy-content.blade.php → themes/1day2die/views/information/privacy-content.blade.php


+ 0 - 0
resources/views/information/privacy.blade.php → themes/1day2die/views/information/privacy.blade.php


+ 0 - 0
resources/views/information/tos-content.blade.php → themes/1day2die/views/information/tos-content.blade.php


+ 0 - 0
resources/views/information/tos.blade.php → themes/1day2die/views/information/tos.blade.php


+ 0 - 0
resources/views/layouts/app.blade.php → themes/1day2die/views/layouts/app.blade.php


+ 0 - 0
resources/views/layouts/main.blade.php → themes/1day2die/views/layouts/main.blade.php


+ 0 - 0
resources/views/mail/payment/confirmed.blade.php → themes/1day2die/views/mail/payment/confirmed.blade.php


+ 0 - 0
resources/views/mail/ticket/admin/create.blade.php → themes/1day2die/views/mail/ticket/admin/create.blade.php


+ 0 - 0
resources/views/mail/ticket/admin/reply.blade.php → themes/1day2die/views/mail/ticket/admin/reply.blade.php


+ 0 - 0
resources/views/mail/ticket/user/create.blade.php → themes/1day2die/views/mail/ticket/user/create.blade.php


+ 0 - 0
resources/views/mail/ticket/user/reply.blade.php → themes/1day2die/views/mail/ticket/user/reply.blade.php


+ 0 - 0
resources/views/models/redeem_voucher_modal.blade.php → themes/1day2die/views/models/redeem_voucher_modal.blade.php


+ 0 - 0
resources/views/moderator/ticket/blacklist.blade.php → themes/1day2die/views/moderator/ticket/blacklist.blade.php


+ 0 - 0
resources/views/moderator/ticket/index.blade.php → themes/1day2die/views/moderator/ticket/index.blade.php


+ 0 - 0
resources/views/moderator/ticket/show.blade.php → themes/1day2die/views/moderator/ticket/show.blade.php


+ 0 - 0
resources/views/notifications/index.blade.php → themes/1day2die/views/notifications/index.blade.php


+ 0 - 0
resources/views/notifications/show.blade.php → themes/1day2die/views/notifications/show.blade.php


+ 0 - 0
resources/views/profile/index.blade.php → themes/1day2die/views/profile/index.blade.php


+ 1 - 1
resources/views/servers/create.blade.php → themes/1day2die/views/servers/create.blade.php

@@ -227,7 +227,7 @@
                                         :disabled="product.minimum_credits > user.credits||product.doesNotFit == true"
                                         :class="product.minimum_credits > user.credits ? 'disabled' : ''"
                                         class="btn btn-primary btn-block mt-2" @click="setProduct(product.id)"
-                                        x-text=" product.doesNotFit == true? '{{ __('Server can\'t fit on this node') }}' : (product.minimum_credits > user.credits ? '{{ __('Not enough') }} {{ CREDITS_DISPLAY_NAME }}!' : '{{ __('Create server') }}')">
+                                        x-text=" product.doesNotFit == true? '{{ __("Server cant fit on this Node") }}' : (product.minimum_credits > user.credits ? '{{ __('Not enough') }} {{ CREDITS_DISPLAY_NAME }}!' : '{{ __('Create server') }}')">
                                     </button>
                                     </div>
                                 </div>

+ 0 - 0
resources/views/servers/index.blade.php → themes/1day2die/views/servers/index.blade.php


+ 0 - 0
resources/views/servers/settings.blade.php → themes/1day2die/views/servers/settings.blade.php


+ 0 - 0
resources/views/store/checkout.blade.php → themes/1day2die/views/store/checkout.blade.php


+ 0 - 0
resources/views/store/index.blade.php → themes/1day2die/views/store/index.blade.php


+ 0 - 0
resources/views/ticket/create.blade.php → themes/1day2die/views/ticket/create.blade.php


+ 0 - 0
resources/views/ticket/index.blade.php → themes/1day2die/views/ticket/index.blade.php


+ 0 - 0
resources/views/ticket/show.blade.php → themes/1day2die/views/ticket/show.blade.php


+ 0 - 0
resources/views/vendor/invoices/templates/controlpanel.blade.php → themes/1day2die/views/vendor/invoices/templates/controlpanel.blade.php


+ 0 - 0
resources/views/vendor/invoices/templates/default.blade.php → themes/1day2die/views/vendor/invoices/templates/default.blade.php


+ 37 - 0
themes/1day2die/vite.config.js

@@ -0,0 +1,37 @@
+import { defineConfig } from "vite";
+import laravel from "laravel-vite-plugin";
+import path from "path";
+
+
+
+export default defineConfig({
+    plugins: [
+        laravel({
+            input: [
+                "themes/1day2die/sass/app.scss",
+                "themes/1day2die/js/app.js"
+            ],
+            buildDirectory: "1day2die",
+        }),
+        
+        
+        {
+            name: "blade",
+            handleHotUpdate({ file, server }) {
+                if (file.endsWith(".blade.php")) {
+                    server.ws.send({
+                        type: "full-reload",
+                        path: "*",
+                    });
+                }
+            },
+        },
+    ],
+    resolve: {
+        alias: {
+            '@': '/themes/1day2die/js',
+            '~bootstrap': path.resolve('node_modules/bootstrap'),
+        }
+    },
+    
+});

+ 0 - 0
resources/css/adminlte.min.css → themes/default/css/adminlte.min.css


+ 0 - 0
resources/css/slim.min.css → themes/default/css/slim.min.css


+ 0 - 0
resources/css/stylesheet.css → themes/default/css/stylesheet.css


+ 0 - 0
resources/js/adminlte.js → themes/default/js/adminlte.js


+ 0 - 0
resources/js/alpine.js → themes/default/js/alpine.js


+ 0 - 0
resources/js/app.js → themes/default/js/app.js


+ 0 - 0
resources/js/bootstrap.js → themes/default/js/bootstrap.js


+ 0 - 0
resources/js/jquery.js → themes/default/js/jquery.js


+ 0 - 0
resources/js/slim.kickstart.min.js → themes/default/js/slim.kickstart.min.js


+ 19 - 0
themes/default/sass/_variables.scss

@@ -0,0 +1,19 @@
+// Body
+$body-bg: #f8fafc;
+
+// Typography
+$font-family-sans-serif: 'Nunito', sans-serif;
+$font-size-base: 0.9rem;
+$line-height-base: 1.6;
+
+// Colors
+$blue: #3490dc;
+$indigo: #6574cd;
+$purple: #9561e2;
+$pink: #f66d9b;
+$red: #e3342f;
+$orange: #f6993f;
+$yellow: #ffed4a;
+$green: #38c172;
+$teal: #4dc0b5;
+$cyan: #6cb2eb;

+ 0 - 0
resources/sass/app.scss → themes/default/sass/app.scss


Некоторые файлы не были показаны из-за большого количества измененных файлов