├── .styleci.yml ├── src ├── Console │ ├── stubs │ │ └── make │ │ │ └── views │ │ │ ├── auth │ │ │ ├── login.stub │ │ │ ├── register.stub │ │ │ └── passwords │ │ │ │ ├── email.stub │ │ │ │ └── reset.stub │ │ │ └── home.stub │ ├── AdminLteMakeCommand.php │ └── MakeAdminLteCommand.php ├── Menu │ ├── Filters │ │ ├── FilterInterface.php │ │ ├── ActiveFilter.php │ │ ├── SubmenuFilter.php │ │ ├── GateFilter.php │ │ ├── HrefFilter.php │ │ └── ClassesFilter.php │ ├── Builder.php │ └── ActiveChecker.php ├── Events │ └── BuildingMenu.php ├── Http │ └── ViewComposers │ │ └── AdminLteComposer.php ├── AdminLte.php └── ServiceProvider.php ├── resources ├── assets │ ├── css │ │ └── auth.css │ ├── plugins │ │ └── iCheck │ │ │ ├── square │ │ │ ├── blue.png │ │ │ ├── blue@2x.png │ │ │ └── blue.css │ │ │ ├── icheck.min.js │ │ │ └── icheck.js │ ├── vendor │ │ ├── Ionicons │ │ │ └── fonts │ │ │ │ ├── ionicons.eot │ │ │ │ ├── ionicons.ttf │ │ │ │ └── ionicons.woff │ │ ├── font-awesome │ │ │ └── fonts │ │ │ │ ├── FontAwesome.otf │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ └── fontawesome-webfont.woff2 │ │ └── bootstrap │ │ │ └── dist │ │ │ └── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ └── dist │ │ ├── css │ │ └── skins │ │ │ ├── skin-red.min.css │ │ │ ├── skin-green.min.css │ │ │ ├── skin-purple.min.css │ │ │ ├── skin-yellow.min.css │ │ │ ├── skin-blue.min.css │ │ │ ├── skin-black.min.css │ │ │ ├── skin-red-light.min.css │ │ │ ├── skin-green-light.min.css │ │ │ ├── skin-purple-light.min.css │ │ │ ├── skin-yellow-light.min.css │ │ │ ├── skin-blue-light.min.css │ │ │ ├── skin-black-light.min.css │ │ │ ├── skin-red.css │ │ │ ├── skin-green.css │ │ │ ├── skin-purple.css │ │ │ ├── skin-yellow.css │ │ │ ├── skin-blue.css │ │ │ ├── skin-red-light.css │ │ │ ├── skin-black.css │ │ │ ├── skin-green-light.css │ │ │ ├── skin-purple-light.css │ │ │ ├── skin-yellow-light.css │ │ │ ├── skin-blue-light.css │ │ │ └── skin-black-light.css │ │ └── js │ │ └── adminlte.min.js ├── lang │ ├── cn │ │ └── adminlte.php │ ├── hr │ │ └── adminlte.php │ ├── en │ │ └── adminlte.php │ ├── pt-br │ │ └── adminlte.php │ ├── ar │ │ └── adminlte.php │ ├── es │ │ └── adminlte.php │ ├── nl │ │ └── adminlte.php │ ├── fr │ │ └── adminlte.php │ └── de │ │ └── adminlte.php └── views │ ├── partials │ ├── menu-item.blade.php │ └── menu-item-top-nav.blade.php │ ├── passwords │ ├── email.blade.php │ └── reset.blade.php │ ├── master.blade.php │ ├── register.blade.php │ ├── login.blade.php │ └── page.blade.php ├── phpunit.xml ├── .editorconfig ├── composer.json ├── LICENSE ├── config └── adminlte.php └── README.md /.styleci.yml: -------------------------------------------------------------------------------- 1 | preset: laravel 2 | 3 | linting: true 4 | -------------------------------------------------------------------------------- /src/Console/stubs/make/views/auth/login.stub: -------------------------------------------------------------------------------- 1 | @extends('adminlte::login') -------------------------------------------------------------------------------- /resources/assets/css/auth.css: -------------------------------------------------------------------------------- 1 | .auth-links { 2 | margin-top: 10px; 3 | } -------------------------------------------------------------------------------- /src/Console/stubs/make/views/auth/register.stub: -------------------------------------------------------------------------------- 1 | @extends('adminlte::register') -------------------------------------------------------------------------------- /src/Console/stubs/make/views/auth/passwords/email.stub: -------------------------------------------------------------------------------- 1 | @extends('adminlte::passwords.email') -------------------------------------------------------------------------------- /src/Console/stubs/make/views/auth/passwords/reset.stub: -------------------------------------------------------------------------------- 1 | @extends('adminlte::passwords.reset') -------------------------------------------------------------------------------- /resources/assets/plugins/iCheck/square/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinsagovac/Laravel-AdminLTE/master/resources/assets/plugins/iCheck/square/blue.png -------------------------------------------------------------------------------- /resources/assets/plugins/iCheck/square/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinsagovac/Laravel-AdminLTE/master/resources/assets/plugins/iCheck/square/blue@2x.png -------------------------------------------------------------------------------- /resources/assets/vendor/Ionicons/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinsagovac/Laravel-AdminLTE/master/resources/assets/vendor/Ionicons/fonts/ionicons.eot -------------------------------------------------------------------------------- /resources/assets/vendor/Ionicons/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinsagovac/Laravel-AdminLTE/master/resources/assets/vendor/Ionicons/fonts/ionicons.ttf -------------------------------------------------------------------------------- /resources/assets/vendor/Ionicons/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinsagovac/Laravel-AdminLTE/master/resources/assets/vendor/Ionicons/fonts/ionicons.woff -------------------------------------------------------------------------------- /resources/assets/vendor/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinsagovac/Laravel-AdminLTE/master/resources/assets/vendor/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /resources/assets/vendor/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinsagovac/Laravel-AdminLTE/master/resources/assets/vendor/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /resources/assets/vendor/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinsagovac/Laravel-AdminLTE/master/resources/assets/vendor/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /resources/assets/vendor/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinsagovac/Laravel-AdminLTE/master/resources/assets/vendor/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /resources/assets/vendor/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinsagovac/Laravel-AdminLTE/master/resources/assets/vendor/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /resources/assets/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinsagovac/Laravel-AdminLTE/master/resources/assets/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /resources/assets/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinsagovac/Laravel-AdminLTE/master/resources/assets/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /resources/assets/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinsagovac/Laravel-AdminLTE/master/resources/assets/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /resources/assets/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinsagovac/Laravel-AdminLTE/master/resources/assets/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ./tests 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Console/stubs/make/views/home.stub: -------------------------------------------------------------------------------- 1 | @extends('adminlte::page') 2 | 3 | @section('title', 'AdminLTE') 4 | 5 | @section('content_header') 6 |

Dashboard

7 | @stop 8 | 9 | @section('content') 10 |

You are logged in!

11 | @stop -------------------------------------------------------------------------------- /src/Menu/Filters/FilterInterface.php: -------------------------------------------------------------------------------- 1 | menu = $menu; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | ; This file is for unifying the coding style for different editors and IDEs. 2 | ; More information at http://editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | charset = utf-8 8 | indent_size = 4 9 | indent_style = space 10 | end_of_line = lf 11 | insert_final_newline = true 12 | trim_trailing_whitespace = true 13 | 14 | [*.md] 15 | trim_trailing_whitespace = false -------------------------------------------------------------------------------- /src/Http/ViewComposers/AdminLteComposer.php: -------------------------------------------------------------------------------- 1 | adminlte = $adminlte; 19 | } 20 | 21 | public function compose(View $view) 22 | { 23 | $view->with('adminlte', $this->adminlte); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Menu/Filters/ActiveFilter.php: -------------------------------------------------------------------------------- 1 | activeChecker = $activeChecker; 15 | } 16 | 17 | public function transform($item, Builder $builder) 18 | { 19 | if (! isset($item['header'])) { 20 | $item['active'] = $this->activeChecker->isActive($item); 21 | } 22 | 23 | return $item; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Menu/Filters/SubmenuFilter.php: -------------------------------------------------------------------------------- 1 | transformItems($item['submenu']); 13 | $item['submenu_open'] = $item['active']; 14 | $item['submenu_classes'] = $this->makeSubmenuClasses(); 15 | $item['submenu_class'] = implode(' ', $item['submenu_classes']); 16 | } 17 | 18 | return $item; 19 | } 20 | 21 | protected function makeSubmenuClasses() 22 | { 23 | $classes = ['treeview-menu']; 24 | 25 | return $classes; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /resources/lang/cn/adminlte.php: -------------------------------------------------------------------------------- 1 | '姓名', 6 | 'email' => '邮箱', 7 | 'password' => '密码', 8 | 'retype_password' => '重输密码', 9 | 'remember_me' => '记住我', 10 | 'register' => '注册', 11 | 'register_a_new_membership' => '注册新用户', 12 | 'i_forgot_my_password' => '忘记密码', 13 | 'i_already_have_a_membership' => '已经有账户', 14 | 'sign_in' => '登录', 15 | 'log_out' => '退出', 16 | 'toggle_navigation' => '切换导航', 17 | 'login_message' => '请先登录', 18 | 'register_message' => '注册新用户', 19 | 'password_reset_message' => '重置密码', 20 | 'reset_password' => '重置密码', 21 | 'send_password_reset_link' => '发送密码重置链接', 22 | ]; 23 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jeroennoten/laravel-adminlte", 3 | "description": "Easy AdminLTE integration with Laravel", 4 | "keywords": ["laravel", "adminlte", "admin", "administrator"], 5 | "license": "MIT", 6 | "authors": [ 7 | { 8 | "name": "Jeroen Noten", 9 | "email": "jeroennoten@me.com" 10 | } 11 | ], 12 | "autoload": { 13 | "psr-4": { 14 | "JeroenNoten\\LaravelAdminLte\\": "src/" 15 | } 16 | }, 17 | "autoload-dev": { 18 | "classmap": [ 19 | "tests/TestCase.php" 20 | ] 21 | }, 22 | "extra": { 23 | "laravel": { 24 | "providers": [ 25 | "JeroenNoten\\LaravelAdminLte\\ServiceProvider" 26 | ] 27 | } 28 | }, 29 | "require": { 30 | "laravel/framework": "~5.1.12|~5.2.0|~5.3.0|~5.4.0|~5.5.0", 31 | "php": ">=5.5.9" 32 | }, 33 | "require-dev": { 34 | "phpunit/phpunit": "~4.0" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/Menu/Filters/GateFilter.php: -------------------------------------------------------------------------------- 1 | gate = $gate; 15 | } 16 | 17 | public function transform($item, Builder $builder) 18 | { 19 | if (! $this->isVisible($item)) { 20 | return false; 21 | } 22 | 23 | return $item; 24 | } 25 | 26 | protected function isVisible($item) 27 | { 28 | if (! isset($item['can'])) { 29 | return true; 30 | } 31 | 32 | if (isset($item['model'])) { 33 | return $this->gate->allows($item['can'], $item['model']); 34 | } 35 | 36 | return $this->gate->allows($item['can']); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/Menu/Filters/HrefFilter.php: -------------------------------------------------------------------------------- 1 | urlGenerator = $urlGenerator; 15 | } 16 | 17 | public function transform($item, Builder $builder) 18 | { 19 | if (! isset($item['header'])) { 20 | $item['href'] = $this->makeHref($item); 21 | } 22 | 23 | return $item; 24 | } 25 | 26 | protected function makeHref($item) 27 | { 28 | if (isset($item['url'])) { 29 | return $this->urlGenerator->to($item['url']); 30 | } 31 | 32 | if (isset($item['route'])) { 33 | return $this->urlGenerator->route($item['route']); 34 | } 35 | 36 | return '#'; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /resources/lang/hr/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Ime', 6 | 'email' => 'Email', 7 | 'password' => 'Lozinka', 8 | 'retype_password' => 'Ponovljena lozinka', 9 | 'remember_me' => 'Zapamti me', 10 | 'register' => 'Novi korisnik', 11 | 'register_a_new_membership' => 'Registracija', 12 | 'i_forgot_my_password' => 'Zaboravljena zaporka', 13 | 'i_already_have_a_membership' => 'Već imam korisnički račun', 14 | 'sign_in' => 'Prijava', 15 | 'log_out' => 'Odjava', 16 | 'toggle_navigation' => 'Pregled navigacije', 17 | 'login_message' => 'Prijava', 18 | 'register_message' => 'Registracija', 19 | 'password_reset_message' => 'Nova lozinka', 20 | 'reset_password' => 'Nova lozinka', 21 | 'send_password_reset_link' => 'Pošalji novi zahtjev lozinke', 22 | ]; 23 | -------------------------------------------------------------------------------- /src/Menu/Filters/ClassesFilter.php: -------------------------------------------------------------------------------- 1 | makeClasses($item); 13 | $item['class'] = implode(' ', $item['classes']); 14 | $item['top_nav_classes'] = $this->makeClasses($item, true); 15 | $item['top_nav_class'] = implode(' ', $item['top_nav_classes']); 16 | } 17 | 18 | return $item; 19 | } 20 | 21 | protected function makeClasses($item, $topNav = false) 22 | { 23 | $classes = []; 24 | 25 | if ($item['active']) { 26 | $classes[] = 'active'; 27 | } 28 | 29 | if (isset($item['submenu'])) { 30 | $classes[] = $topNav ? 'dropdown' : 'treeview'; 31 | } 32 | 33 | return $classes; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /resources/lang/en/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Full name', 6 | 'email' => 'Email', 7 | 'password' => 'Password', 8 | 'retype_password' => 'Retype password', 9 | 'remember_me' => 'Remember Me', 10 | 'register' => 'Register', 11 | 'register_a_new_membership' => 'Register a new membership', 12 | 'i_forgot_my_password' => 'I forgot my password', 13 | 'i_already_have_a_membership' => 'I already have a membership', 14 | 'sign_in' => 'Sign In', 15 | 'log_out' => 'Log Out', 16 | 'toggle_navigation' => 'Toggle navigation', 17 | 'login_message' => 'Sign in to start your session', 18 | 'register_message' => 'Register a new membership', 19 | 'password_reset_message' => 'Reset Password', 20 | 'reset_password' => 'Reset Password', 21 | 'send_password_reset_link' => 'Send Password Reset Link', 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/pt-br/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Nome completo', 6 | 'email' => 'Email', 7 | 'password' => 'Senha', 8 | 'retype_password' => 'Repita a senha', 9 | 'remember_me' => 'Lembrar-me', 10 | 'register' => 'Registrar', 11 | 'register_a_new_membership' => 'Registrar um novo membro', 12 | 'i_forgot_my_password' => 'Esqueci minha senha', 13 | 'i_already_have_a_membership' => 'Já sou um membro', 14 | 'sign_in' => 'Assinar', 15 | 'log_out' => 'Sair', 16 | 'toggle_navigation' => 'Trocar navegação', 17 | 'login_message' => 'Entre para iniciar uma nova sessão', 18 | 'register_message' => 'Registrar um novo membro', 19 | 'password_reset_message' => 'Recuperar senha', 20 | 'reset_password' => 'Recuperar senha', 21 | 'send_password_reset_link' => 'Enviar link de recuperação de senha', 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/ar/adminlte.php: -------------------------------------------------------------------------------- 1 | 'الاسم الثلاثي', 5 | 'email' => 'البريد الإلكتروني', 6 | 'password' => 'كلمة السر', 7 | 'retype_password' => 'أعد إدخال كلمة السر', 8 | 'remember_me' => 'ذكرني', 9 | 'register' => 'تسجيل جديد', 10 | 'register_a_new_membership' => 'تسجيل عضوية جديدة', 11 | 'i_forgot_my_password' => 'نسيت كلمة السر؟', 12 | 'i_already_have_a_membership' => 'هذا الحساب لديه عضوية سابقة', 13 | 'sign_in' => 'تسجيل الدخول', 14 | 'log_out' => 'تسجيل خروج', 15 | 'toggle_navigation' => 'القائمة الجانبية', 16 | 'login_message' => 'يجب تسجيل الدخول', 17 | 'register_message' => 'تم تسجيل العضوية الجديدة ', 18 | 'password_reset_message' => 'تم إعادة تعيين كلمة المرور', 19 | 'reset_password' => 'إعادة تعيين كلمة السر', 20 | 'send_password_reset_link' => 'إرسال رابط إعادة تعيين كلمة السر', 21 | ]; 22 | -------------------------------------------------------------------------------- /src/Menu/Builder.php: -------------------------------------------------------------------------------- 1 | filters = $filters; 17 | } 18 | 19 | public function add() 20 | { 21 | $items = $this->transformItems(func_get_args()); 22 | 23 | foreach ($items as $item) { 24 | array_push($this->menu, $item); 25 | } 26 | } 27 | 28 | public function transformItems($items) 29 | { 30 | return array_filter(array_map([$this, 'applyFilters'], $items)); 31 | } 32 | 33 | protected function applyFilters($item) 34 | { 35 | if (is_string($item)) { 36 | return $item; 37 | } 38 | 39 | foreach ($this->filters as $filter) { 40 | $item = $filter->transform($item, $this); 41 | } 42 | 43 | if (isset($item['header'])) { 44 | $item = $item['header']; 45 | } 46 | 47 | return $item; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /resources/lang/es/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Nombre completo', 6 | 'email' => 'Email', 7 | 'password' => 'Contraseña', 8 | 'retype_password' => 'Vuelva la contraseña', 9 | 'remember_me' => 'Recuérdame', 10 | 'register' => 'Registre', 11 | 'register_a_new_membership' => 'Registre una nueva cuenta', 12 | 'i_forgot_my_password' => 'Olvidé mi contraseña', 13 | 'i_already_have_a_membership' => 'Ya tengo una cuenta', 14 | 'sign_in' => 'Registrarse', 15 | 'log_out' => 'Cerrar', 16 | 'toggle_navigation' => 'Navegación de palanca', 17 | 'login_message' => 'Autenticarse para iniciar la sesión', 18 | 'register_message' => 'Registre una nueva cuenta', 19 | 'password_reset_message' => 'Restablecer la contraseña', 20 | 'reset_password' => 'Restablecer la contraseña', 21 | 'send_password_reset_link' => 'Enviar link de restablecimiento de contraseña', 22 | ]; 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Jeroen Noten 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /resources/lang/nl/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Volledige naam', 6 | 'email' => 'E-mailadres', 7 | 'password' => 'Wachtwoord', 8 | 'retype_password' => 'Wachtwoord nogmaals invoeren', 9 | 'remember_me' => 'Ingelogd blijven', 10 | 'register' => 'Registreren', 11 | 'register_a_new_membership' => 'Registreer een nieuw lidmaatschap', 12 | 'i_forgot_my_password' => 'Ik ben mijn wachtwoord vergeten', 13 | 'i_already_have_a_membership' => 'Ik heb al een lidmaatschap', 14 | 'sign_in' => 'Inloggen', 15 | 'log_out' => 'Uitloggen', 16 | 'toggle_navigation' => 'Schakel navigatie', 17 | 'login_message' => 'Log in om je sessie te starten', 18 | 'register_message' => 'Registreer een nieuw lidmaatschap', 19 | 'password_reset_message' => 'Wachtwoord herstellen', 20 | 'reset_password' => 'Wachtwoord herstellen', 21 | 'send_password_reset_link' => 'Verzend link voor wachtwoordherstel', 22 | ]; 23 | -------------------------------------------------------------------------------- /src/Console/AdminLteMakeCommand.php: -------------------------------------------------------------------------------- 1 | 'auth/login.blade.php', 15 | 'auth/register.stub' => 'auth/register.blade.php', 16 | 'auth/passwords/email.stub' => 'auth/passwords/email.blade.php', 17 | 'auth/passwords/reset.stub' => 'auth/passwords/reset.blade.php', 18 | 'home.stub' => 'home.blade.php', 19 | ]; 20 | 21 | protected function exportViews() 22 | { 23 | parent::exportViews(); 24 | 25 | foreach ($this->adminLteViews as $key => $value) { 26 | copy(__DIR__.'/stubs/make/views/'.$key, 27 | base_path('resources/views/'.$value)); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Console/MakeAdminLteCommand.php: -------------------------------------------------------------------------------- 1 | 'auth/login.blade.php', 15 | 'auth/register.stub' => 'auth/register.blade.php', 16 | 'auth/passwords/email.stub' => 'auth/passwords/email.blade.php', 17 | 'auth/passwords/reset.stub' => 'auth/passwords/reset.blade.php', 18 | 'home.stub' => 'home.blade.php', 19 | ]; 20 | 21 | protected function exportViews() 22 | { 23 | parent::exportViews(); 24 | 25 | foreach ($this->adminLteViews as $key => $value) { 26 | copy(__DIR__.'/stubs/make/views/'.$key, 27 | base_path('resources/views/'.$value)); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /resources/lang/fr/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Nom', 6 | 'email' => 'Email', 7 | 'password' => 'Mot de passe', 8 | 'retype_password' => 'Entrez à nouveau le mot de passe', 9 | 'remember_me' => 'Se souvenir de moi', 10 | 'register' => 'Enregistrement', 11 | 'register_a_new_membership' => 'Enregistrer un nouveau membre', 12 | 'i_forgot_my_password' => 'J\'ai oublié mon mot de passe', 13 | 'i_already_have_a_membership' => 'J\'ai déjà un compte', 14 | 'sign_in' => 'Connexion', 15 | 'log_out' => 'Déconnexion', 16 | 'toggle_navigation' => 'Basculer la navigation', 17 | 'login_message' => 'Connectez-vous pour commencer une session', 18 | 'register_message' => 'Enregistrement d\'un nouveau membre', 19 | 'password_reset_message' => 'Réinitialisation du mot de passe', 20 | 'reset_password' => 'Réinitialisation du mot de passe', 21 | 'send_password_reset_link' => 'Envoi de la réinitialisation du mot de passe', 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/views/partials/menu-item.blade.php: -------------------------------------------------------------------------------- 1 | @if (is_string($item)) 2 |
  • {{ $item }}
  • 3 | @else 4 |
  • 5 | 8 | 9 | {{ $item['text'] }} 10 | @if (isset($item['label'])) 11 | 12 | {{ $item['label'] }} 13 | 14 | @elseif (isset($item['submenu'])) 15 | 16 | 17 | 18 | @endif 19 | 20 | @if (isset($item['submenu'])) 21 | 24 | @endif 25 |
  • 26 | @endif 27 | -------------------------------------------------------------------------------- /resources/lang/de/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Vollständiger Name', 6 | 'email' => 'E-Mail', 7 | 'password' => 'Passwort', 8 | 'retype_password' => 'Passwort bestätigen', 9 | 'remember_me' => 'Angemeldet bleiben', 10 | 'register' => 'Registrieren', 11 | 'register_a_new_membership' => 'Ein neues Konto registrieren', 12 | 'i_forgot_my_password' => 'Ich habe mein Passwort vergessen', 13 | 'i_already_have_a_membership' => 'Ich bin bereits registriert', 14 | 'sign_in' => 'Anmelden', 15 | 'log_out' => 'Abmelden', 16 | 'toggle_navigation' => 'Navigation umschalten', 17 | 'login_message' => 'Bitte melden Sie sich an, um auf den geschützten Bereich zuzugreifen', 18 | 'register_message' => 'Bitte füllen Sie das Formular aus, um ein neues Konto zu registrieren', 19 | 'password_reset_message' => 'Bitte geben Sie Ihre E-Mail Adresse ein, um Ihr Passwort zurückzusetzen', 20 | 'reset_password' => 'Passwort zurücksetzen', 21 | 'send_password_reset_link' => 'Link zur Passwortwiederherstellung senden', 22 | ]; 23 | -------------------------------------------------------------------------------- /src/AdminLte.php: -------------------------------------------------------------------------------- 1 | filters = $filters; 26 | $this->events = $events; 27 | $this->container = $container; 28 | } 29 | 30 | public function menu() 31 | { 32 | if (! $this->menu) { 33 | $this->menu = $this->buildMenu(); 34 | } 35 | 36 | return $this->menu; 37 | } 38 | 39 | protected function buildMenu() 40 | { 41 | $builder = new Builder($this->buildFilters()); 42 | 43 | $this->events->fire(new BuildingMenu($builder)); 44 | 45 | return $builder->menu; 46 | } 47 | 48 | protected function buildFilters() 49 | { 50 | return array_map([$this->container, 'make'], $this->filters); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /resources/assets/plugins/iCheck/square/blue.css: -------------------------------------------------------------------------------- 1 | /* iCheck plugin Square skin, blue 2 | ----------------------------------- */ 3 | .icheckbox_square-blue, 4 | .iradio_square-blue { 5 | display: inline-block; 6 | *display: inline; 7 | vertical-align: middle; 8 | margin: 0; 9 | padding: 0; 10 | width: 22px; 11 | height: 22px; 12 | background: url(blue.png) no-repeat; 13 | border: none; 14 | cursor: pointer; 15 | } 16 | 17 | .icheckbox_square-blue { 18 | background-position: 0 0; 19 | } 20 | .icheckbox_square-blue.hover { 21 | background-position: -24px 0; 22 | } 23 | .icheckbox_square-blue.checked { 24 | background-position: -48px 0; 25 | } 26 | .icheckbox_square-blue.disabled { 27 | background-position: -72px 0; 28 | cursor: default; 29 | } 30 | .icheckbox_square-blue.checked.disabled { 31 | background-position: -96px 0; 32 | } 33 | 34 | .iradio_square-blue { 35 | background-position: -120px 0; 36 | } 37 | .iradio_square-blue.hover { 38 | background-position: -144px 0; 39 | } 40 | .iradio_square-blue.checked { 41 | background-position: -168px 0; 42 | } 43 | .iradio_square-blue.disabled { 44 | background-position: -192px 0; 45 | cursor: default; 46 | } 47 | .iradio_square-blue.checked.disabled { 48 | background-position: -216px 0; 49 | } 50 | 51 | /* Retina support */ 52 | @media only screen and (-webkit-min-device-pixel-ratio: 1.5), 53 | only screen and (-moz-min-device-pixel-ratio: 1.5), 54 | only screen and (-o-min-device-pixel-ratio: 3/2), 55 | only screen and (min-device-pixel-ratio: 1.5) { 56 | .icheckbox_square-blue, 57 | .iradio_square-blue { 58 | background-image: url(blue@2x.png); 59 | -webkit-background-size: 240px 24px; 60 | background-size: 240px 24px; 61 | } 62 | } -------------------------------------------------------------------------------- /resources/views/passwords/email.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::master') 2 | 3 | @section('adminlte_css') 4 | 5 | @yield('css') 6 | @stop 7 | 8 | @section('body_class', 'login-page') 9 | 10 | @section('body') 11 |
    12 | 15 | 16 |
    17 | 18 | @if (session('status')) 19 |
    20 | {{ session('status') }} 21 |
    22 | @endif 23 |
    24 | {!! csrf_field() !!} 25 | 26 |
    27 | 29 | 30 | @if ($errors->has('email')) 31 | 32 | {{ $errors->first('email') }} 33 | 34 | @endif 35 |
    36 | 39 |
    40 |
    41 | 42 |
    43 | @stop 44 | 45 | @section('adminlte_js') 46 | @yield('js') 47 | @stop 48 | -------------------------------------------------------------------------------- /resources/views/partials/menu-item-top-nav.blade.php: -------------------------------------------------------------------------------- 1 | @if (is_array($item)) 2 |
  • 3 | 7 | 8 | {{ $item['text'] }} 9 | @if (isset($item['label'])) 10 | {{ $item['label'] }} 11 | @elseif (isset($item['submenu'])) 12 | 13 | @endif 14 | 15 | @if (isset($item['submenu'])) 16 | 37 | @endif 38 |
  • 39 | @endif 40 | -------------------------------------------------------------------------------- /src/Menu/ActiveChecker.php: -------------------------------------------------------------------------------- 1 | request = $request; 18 | $this->url = $url; 19 | } 20 | 21 | public function isActive($item) 22 | { 23 | if (isset($item['active'])) { 24 | return $this->isExplicitActive($item['active']); 25 | } 26 | 27 | if (isset($item['submenu'])) { 28 | return $this->containsActive($item['submenu']); 29 | } 30 | 31 | if (isset($item['href'])) { 32 | return $this->checkExactOrSub($item['href']); 33 | } 34 | 35 | // Support URL for backwards compatibility 36 | if (isset($item['url'])) { 37 | return $this->checkExactOrSub($item['url']); 38 | } 39 | 40 | return false; 41 | } 42 | 43 | protected function checkExactOrSub($url) 44 | { 45 | return $this->checkExact($url) || $this->checkSub($url); 46 | } 47 | 48 | protected function checkExact($url) 49 | { 50 | return $this->checkPattern($url); 51 | } 52 | 53 | protected function checkSub($url) 54 | { 55 | return $this->checkPattern($url.'/*'); 56 | } 57 | 58 | protected function checkPattern($pattern) 59 | { 60 | $fullUrlPattern = $this->url->to($pattern); 61 | 62 | $fullUrl = $this->request->fullUrl(); 63 | 64 | return Str::is($fullUrlPattern, $fullUrl); 65 | } 66 | 67 | protected function containsActive($items) 68 | { 69 | foreach ($items as $item) { 70 | if ($this->isActive($item)) { 71 | return true; 72 | } 73 | } 74 | 75 | return false; 76 | } 77 | 78 | private function isExplicitActive($active) 79 | { 80 | foreach ($active as $url) { 81 | if ($this->checkExact($url)) { 82 | return true; 83 | } 84 | } 85 | 86 | return false; 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /resources/views/master.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | @yield('title_prefix', config('adminlte.title_prefix', '')) 7 | @yield('title', config('adminlte.title', 'AdminLTE 2')) 8 | @yield('title_postfix', config('adminlte.title_postfix', '')) 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | @if(config('adminlte.plugins.select2')) 19 | 20 | 21 | @endif 22 | 23 | 24 | 25 | 26 | @if(config('adminlte.plugins.datatables')) 27 | 28 | 29 | @endif 30 | 31 | @yield('adminlte_css') 32 | 33 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | @yield('body') 44 | 45 | 46 | 47 | 48 | @if(config('adminlte.plugins.select2')) 49 | 50 | 51 | @endif 52 | 53 | @if(config('adminlte.plugins.datatables')) 54 | 55 | 56 | @endif 57 | 58 | @if(config('adminlte.plugins.chartjs')) 59 | 60 | 61 | @endif 62 | 63 | @yield('adminlte_js') 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-red.min.css: -------------------------------------------------------------------------------- 1 | .skin-red .main-header .navbar{background-color:#dd4b39}.skin-red .main-header .navbar .nav>li>a{color:#fff}.skin-red .main-header .navbar .nav>li>a:hover,.skin-red .main-header .navbar .nav>li>a:active,.skin-red .main-header .navbar .nav>li>a:focus,.skin-red .main-header .navbar .nav .open>a,.skin-red .main-header .navbar .nav .open>a:hover,.skin-red .main-header .navbar .nav .open>a:focus,.skin-red .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-red .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red .main-header .logo{background-color:#d73925;color:#fff;border-bottom:0 solid transparent}.skin-red .main-header .logo:hover{background-color:#d33724}.skin-red .main-header li.user-header{background-color:#dd4b39}.skin-red .content-header{background:transparent}.skin-red .wrapper,.skin-red .main-sidebar,.skin-red .left-side{background-color:#222d32}.skin-red .user-panel>.info,.skin-red .user-panel>.info>a{color:#fff}.skin-red .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-red .sidebar-menu>li>a{border-left:3px solid transparent}.skin-red .sidebar-menu>li:hover>a,.skin-red .sidebar-menu>li.active>a,.skin-red .sidebar-menu>li.menu-open>a{color:#fff;background:#1e282c}.skin-red .sidebar-menu>li.active>a{border-left-color:#dd4b39}.skin-red .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-red .sidebar a{color:#b8c7ce}.skin-red .sidebar a:hover{text-decoration:none}.skin-red .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-red .sidebar-menu .treeview-menu>li.active>a,.skin-red .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-red .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-red .sidebar-form input[type="text"],.skin-red .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-red .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-red .sidebar-form input[type="text"]:focus,.skin-red .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0} -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-green.min.css: -------------------------------------------------------------------------------- 1 | .skin-green .main-header .navbar{background-color:#00a65a}.skin-green .main-header .navbar .nav>li>a{color:#fff}.skin-green .main-header .navbar .nav>li>a:hover,.skin-green .main-header .navbar .nav>li>a:active,.skin-green .main-header .navbar .nav>li>a:focus,.skin-green .main-header .navbar .nav .open>a,.skin-green .main-header .navbar .nav .open>a:hover,.skin-green .main-header .navbar .nav .open>a:focus,.skin-green .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-green .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green .main-header .logo{background-color:#008d4c;color:#fff;border-bottom:0 solid transparent}.skin-green .main-header .logo:hover{background-color:#008749}.skin-green .main-header li.user-header{background-color:#00a65a}.skin-green .content-header{background:transparent}.skin-green .wrapper,.skin-green .main-sidebar,.skin-green .left-side{background-color:#222d32}.skin-green .user-panel>.info,.skin-green .user-panel>.info>a{color:#fff}.skin-green .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-green .sidebar-menu>li>a{border-left:3px solid transparent}.skin-green .sidebar-menu>li:hover>a,.skin-green .sidebar-menu>li.active>a,.skin-green .sidebar-menu>li.menu-open>a{color:#fff;background:#1e282c}.skin-green .sidebar-menu>li.active>a{border-left-color:#00a65a}.skin-green .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-green .sidebar a{color:#b8c7ce}.skin-green .sidebar a:hover{text-decoration:none}.skin-green .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-green .sidebar-menu .treeview-menu>li.active>a,.skin-green .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-green .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-green .sidebar-form input[type="text"],.skin-green .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-green .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-green .sidebar-form input[type="text"]:focus,.skin-green .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0} -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-purple.min.css: -------------------------------------------------------------------------------- 1 | .skin-purple .main-header .navbar{background-color:#605ca8}.skin-purple .main-header .navbar .nav>li>a{color:#fff}.skin-purple .main-header .navbar .nav>li>a:hover,.skin-purple .main-header .navbar .nav>li>a:active,.skin-purple .main-header .navbar .nav>li>a:focus,.skin-purple .main-header .navbar .nav .open>a,.skin-purple .main-header .navbar .nav .open>a:hover,.skin-purple .main-header .navbar .nav .open>a:focus,.skin-purple .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-purple .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple .main-header .logo{background-color:#555299;color:#fff;border-bottom:0 solid transparent}.skin-purple .main-header .logo:hover{background-color:#545096}.skin-purple .main-header li.user-header{background-color:#605ca8}.skin-purple .content-header{background:transparent}.skin-purple .wrapper,.skin-purple .main-sidebar,.skin-purple .left-side{background-color:#222d32}.skin-purple .user-panel>.info,.skin-purple .user-panel>.info>a{color:#fff}.skin-purple .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-purple .sidebar-menu>li>a{border-left:3px solid transparent}.skin-purple .sidebar-menu>li:hover>a,.skin-purple .sidebar-menu>li.active>a,.skin-purple .sidebar-menu>li.menu-open>a{color:#fff;background:#1e282c}.skin-purple .sidebar-menu>li.active>a{border-left-color:#605ca8}.skin-purple .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-purple .sidebar a{color:#b8c7ce}.skin-purple .sidebar a:hover{text-decoration:none}.skin-purple .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-purple .sidebar-menu .treeview-menu>li.active>a,.skin-purple .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-purple .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-purple .sidebar-form input[type="text"],.skin-purple .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-purple .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-purple .sidebar-form input[type="text"]:focus,.skin-purple .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0} -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-yellow.min.css: -------------------------------------------------------------------------------- 1 | .skin-yellow .main-header .navbar{background-color:#f39c12}.skin-yellow .main-header .navbar .nav>li>a{color:#fff}.skin-yellow .main-header .navbar .nav>li>a:hover,.skin-yellow .main-header .navbar .nav>li>a:active,.skin-yellow .main-header .navbar .nav>li>a:focus,.skin-yellow .main-header .navbar .nav .open>a,.skin-yellow .main-header .navbar .nav .open>a:hover,.skin-yellow .main-header .navbar .nav .open>a:focus,.skin-yellow .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-yellow .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow .main-header .logo{background-color:#e08e0b;color:#fff;border-bottom:0 solid transparent}.skin-yellow .main-header .logo:hover{background-color:#db8b0b}.skin-yellow .main-header li.user-header{background-color:#f39c12}.skin-yellow .content-header{background:transparent}.skin-yellow .wrapper,.skin-yellow .main-sidebar,.skin-yellow .left-side{background-color:#222d32}.skin-yellow .user-panel>.info,.skin-yellow .user-panel>.info>a{color:#fff}.skin-yellow .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-yellow .sidebar-menu>li>a{border-left:3px solid transparent}.skin-yellow .sidebar-menu>li:hover>a,.skin-yellow .sidebar-menu>li.active>a,.skin-yellow .sidebar-menu>li.menu-open>a{color:#fff;background:#1e282c}.skin-yellow .sidebar-menu>li.active>a{border-left-color:#f39c12}.skin-yellow .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-yellow .sidebar a{color:#b8c7ce}.skin-yellow .sidebar a:hover{text-decoration:none}.skin-yellow .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-yellow .sidebar-menu .treeview-menu>li.active>a,.skin-yellow .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-yellow .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-yellow .sidebar-form input[type="text"],.skin-yellow .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-yellow .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-yellow .sidebar-form input[type="text"]:focus,.skin-yellow .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0} -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-blue.min.css: -------------------------------------------------------------------------------- 1 | .skin-blue .main-header .navbar{background-color:#3c8dbc}.skin-blue .main-header .navbar .nav>li>a{color:#fff}.skin-blue .main-header .navbar .nav>li>a:hover,.skin-blue .main-header .navbar .nav>li>a:active,.skin-blue .main-header .navbar .nav>li>a:focus,.skin-blue .main-header .navbar .nav .open>a,.skin-blue .main-header .navbar .nav .open>a:hover,.skin-blue .main-header .navbar .nav .open>a:focus,.skin-blue .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-blue .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue .main-header .logo{background-color:#367fa9;color:#fff;border-bottom:0 solid transparent}.skin-blue .main-header .logo:hover{background-color:#357ca5}.skin-blue .main-header li.user-header{background-color:#3c8dbc}.skin-blue .content-header{background:transparent}.skin-blue .wrapper,.skin-blue .main-sidebar,.skin-blue .left-side{background-color:#222d32}.skin-blue .user-panel>.info,.skin-blue .user-panel>.info>a{color:#fff}.skin-blue .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-blue .sidebar-menu>li>a{border-left:3px solid transparent}.skin-blue .sidebar-menu>li:hover>a,.skin-blue .sidebar-menu>li.active>a,.skin-blue .sidebar-menu>li.menu-open>a{color:#fff;background:#1e282c}.skin-blue .sidebar-menu>li.active>a{border-left-color:#3c8dbc}.skin-blue .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-blue .sidebar a{color:#b8c7ce}.skin-blue .sidebar a:hover{text-decoration:none}.skin-blue .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-blue .sidebar-menu .treeview-menu>li.active>a,.skin-blue .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-blue .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-blue .sidebar-form input[type="text"],.skin-blue .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-blue .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-blue .sidebar-form input[type="text"]:focus,.skin-blue .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-blue.layout-top-nav .main-header>.logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue.layout-top-nav .main-header>.logo:hover{background-color:#3b8ab8} -------------------------------------------------------------------------------- /resources/views/passwords/reset.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::master') 2 | 3 | @section('adminlte_css') 4 | 5 | @yield('css') 6 | @stop 7 | 8 | @section('body_class', 'login-page') 9 | 10 | @section('body') 11 |
    12 | 15 | 16 |
    17 | 18 |
    19 | {!! csrf_field() !!} 20 | 21 | 22 | 23 |
    24 | 26 | 27 | @if ($errors->has('email')) 28 | 29 | {{ $errors->first('email') }} 30 | 31 | @endif 32 |
    33 |
    34 | 36 | 37 | @if ($errors->has('password')) 38 | 39 | {{ $errors->first('password') }} 40 | 41 | @endif 42 |
    43 |
    44 | 46 | 47 | @if ($errors->has('password_confirmation')) 48 | 49 | {{ $errors->first('password_confirmation') }} 50 | 51 | @endif 52 |
    53 | 56 |
    57 |
    58 | 59 |
    60 | @stop 61 | 62 | @section('adminlte_js') 63 | @yield('js') 64 | @stop 65 | -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-black.min.css: -------------------------------------------------------------------------------- 1 | .skin-black .main-header{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.skin-black .main-header .navbar-toggle{color:#333}.skin-black .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.skin-black .main-header .navbar{background-color:#fff}.skin-black .main-header .navbar .nav>li>a{color:#333}.skin-black .main-header .navbar .nav>li>a:hover,.skin-black .main-header .navbar .nav>li>a:active,.skin-black .main-header .navbar .nav>li>a:focus,.skin-black .main-header .navbar .nav .open>a,.skin-black .main-header .navbar .nav .open>a:hover,.skin-black .main-header .navbar .nav .open>a:focus,.skin-black .main-header .navbar .nav>.active>a{background:#fff;color:#999}.skin-black .main-header .navbar .sidebar-toggle{color:#333}.skin-black .main-header .navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black .main-header .navbar>.sidebar-toggle{color:#333;border-right:1px solid #eee}.skin-black .main-header .navbar .navbar-nav>li>a{border-right:1px solid #eee}.skin-black .main-header .navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black .main-header .navbar .navbar-right>li>a{border-left:1px solid #eee;border-right-width:0}.skin-black .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.skin-black .main-header>.logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black .main-header>.logo:hover{background-color:#1f1f1f}}.skin-black .main-header li.user-header{background-color:#222}.skin-black .content-header{background:transparent;box-shadow:none}.skin-black .wrapper,.skin-black .main-sidebar,.skin-black .left-side{background-color:#222d32}.skin-black .user-panel>.info,.skin-black .user-panel>.info>a{color:#fff}.skin-black .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-black .sidebar-menu>li>a{border-left:3px solid transparent}.skin-black .sidebar-menu>li:hover>a,.skin-black .sidebar-menu>li.active>a,.skin-black .sidebar-menu>li.menu-open>a{color:#fff;background:#1e282c}.skin-black .sidebar-menu>li.active>a{border-left-color:#fff}.skin-black .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-black .sidebar a{color:#b8c7ce}.skin-black .sidebar a:hover{text-decoration:none}.skin-black .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-black .sidebar-menu .treeview-menu>li.active>a,.skin-black .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-black .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-black .sidebar-form input[type="text"],.skin-black .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-black .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black .sidebar-form input[type="text"]:focus,.skin-black .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-black .pace .pace-progress{background:#222}.skin-black .pace .pace-activity{border-top-color:#222;border-left-color:#222} -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-red-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-red-light .main-header .navbar{background-color:#dd4b39}.skin-red-light .main-header .navbar .nav>li>a{color:#fff}.skin-red-light .main-header .navbar .nav>li>a:hover,.skin-red-light .main-header .navbar .nav>li>a:active,.skin-red-light .main-header .navbar .nav>li>a:focus,.skin-red-light .main-header .navbar .nav .open>a,.skin-red-light .main-header .navbar .nav .open>a:hover,.skin-red-light .main-header .navbar .nav .open>a:focus,.skin-red-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-red-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-red-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-red-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-red-light .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-red-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red-light .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red-light .main-header .logo{background-color:#dd4b39;color:#fff;border-bottom:0 solid transparent}.skin-red-light .main-header .logo:hover{background-color:#dc4735}.skin-red-light .main-header li.user-header{background-color:#dd4b39}.skin-red-light .content-header{background:transparent}.skin-red-light .wrapper,.skin-red-light .main-sidebar,.skin-red-light .left-side{background-color:#f9fafc}.skin-red-light .main-sidebar{border-right:1px solid #d2d6de}.skin-red-light .user-panel>.info,.skin-red-light .user-panel>.info>a{color:#444}.skin-red-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-red-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-red-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-red-light .sidebar-menu>li:hover>a,.skin-red-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-red-light .sidebar-menu>li.active{border-left-color:#dd4b39}.skin-red-light .sidebar-menu>li.active>a{font-weight:600}.skin-red-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-red-light .sidebar a{color:#444}.skin-red-light .sidebar a:hover{text-decoration:none}.skin-red-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-red-light .sidebar-menu .treeview-menu>li.active>a,.skin-red-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-red-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-red-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-red-light .sidebar-form input[type="text"],.skin-red-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-red-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-red-light .sidebar-form input[type="text"]:focus,.skin-red-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-red-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-green-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-green-light .main-header .navbar{background-color:#00a65a}.skin-green-light .main-header .navbar .nav>li>a{color:#fff}.skin-green-light .main-header .navbar .nav>li>a:hover,.skin-green-light .main-header .navbar .nav>li>a:active,.skin-green-light .main-header .navbar .nav>li>a:focus,.skin-green-light .main-header .navbar .nav .open>a,.skin-green-light .main-header .navbar .nav .open>a:hover,.skin-green-light .main-header .navbar .nav .open>a:focus,.skin-green-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-green-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-green-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-green-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-green-light .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-green-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green-light .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green-light .main-header .logo{background-color:#00a65a;color:#fff;border-bottom:0 solid transparent}.skin-green-light .main-header .logo:hover{background-color:#00a157}.skin-green-light .main-header li.user-header{background-color:#00a65a}.skin-green-light .content-header{background:transparent}.skin-green-light .wrapper,.skin-green-light .main-sidebar,.skin-green-light .left-side{background-color:#f9fafc}.skin-green-light .main-sidebar{border-right:1px solid #d2d6de}.skin-green-light .user-panel>.info,.skin-green-light .user-panel>.info>a{color:#444}.skin-green-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-green-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-green-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-green-light .sidebar-menu>li:hover>a,.skin-green-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-green-light .sidebar-menu>li.active{border-left-color:#00a65a}.skin-green-light .sidebar-menu>li.active>a{font-weight:600}.skin-green-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-green-light .sidebar a{color:#444}.skin-green-light .sidebar a:hover{text-decoration:none}.skin-green-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-green-light .sidebar-menu .treeview-menu>li.active>a,.skin-green-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-green-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-green-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-green-light .sidebar-form input[type="text"],.skin-green-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-green-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-green-light .sidebar-form input[type="text"]:focus,.skin-green-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-green-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-purple-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-purple-light .main-header .navbar{background-color:#605ca8}.skin-purple-light .main-header .navbar .nav>li>a{color:#fff}.skin-purple-light .main-header .navbar .nav>li>a:hover,.skin-purple-light .main-header .navbar .nav>li>a:active,.skin-purple-light .main-header .navbar .nav>li>a:focus,.skin-purple-light .main-header .navbar .nav .open>a,.skin-purple-light .main-header .navbar .nav .open>a:hover,.skin-purple-light .main-header .navbar .nav .open>a:focus,.skin-purple-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-purple-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-purple-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple-light .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-purple-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple-light .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple-light .main-header .logo{background-color:#605ca8;color:#fff;border-bottom:0 solid transparent}.skin-purple-light .main-header .logo:hover{background-color:#5d59a6}.skin-purple-light .main-header li.user-header{background-color:#605ca8}.skin-purple-light .content-header{background:transparent}.skin-purple-light .wrapper,.skin-purple-light .main-sidebar,.skin-purple-light .left-side{background-color:#f9fafc}.skin-purple-light .main-sidebar{border-right:1px solid #d2d6de}.skin-purple-light .user-panel>.info,.skin-purple-light .user-panel>.info>a{color:#444}.skin-purple-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-purple-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-purple-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-purple-light .sidebar-menu>li:hover>a,.skin-purple-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-purple-light .sidebar-menu>li.active{border-left-color:#605ca8}.skin-purple-light .sidebar-menu>li.active>a{font-weight:600}.skin-purple-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-purple-light .sidebar a{color:#444}.skin-purple-light .sidebar a:hover{text-decoration:none}.skin-purple-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-purple-light .sidebar-menu .treeview-menu>li.active>a,.skin-purple-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-purple-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-purple-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-purple-light .sidebar-form input[type="text"],.skin-purple-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-purple-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-purple-light .sidebar-form input[type="text"]:focus,.skin-purple-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-purple-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-yellow-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-yellow-light .main-header .navbar{background-color:#f39c12}.skin-yellow-light .main-header .navbar .nav>li>a{color:#fff}.skin-yellow-light .main-header .navbar .nav>li>a:hover,.skin-yellow-light .main-header .navbar .nav>li>a:active,.skin-yellow-light .main-header .navbar .nav>li>a:focus,.skin-yellow-light .main-header .navbar .nav .open>a,.skin-yellow-light .main-header .navbar .nav .open>a:hover,.skin-yellow-light .main-header .navbar .nav .open>a:focus,.skin-yellow-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-yellow-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-yellow-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-yellow-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow-light .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow-light .main-header .logo{background-color:#f39c12;color:#fff;border-bottom:0 solid transparent}.skin-yellow-light .main-header .logo:hover{background-color:#f39a0d}.skin-yellow-light .main-header li.user-header{background-color:#f39c12}.skin-yellow-light .content-header{background:transparent}.skin-yellow-light .wrapper,.skin-yellow-light .main-sidebar,.skin-yellow-light .left-side{background-color:#f9fafc}.skin-yellow-light .main-sidebar{border-right:1px solid #d2d6de}.skin-yellow-light .user-panel>.info,.skin-yellow-light .user-panel>.info>a{color:#444}.skin-yellow-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-yellow-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-yellow-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-yellow-light .sidebar-menu>li:hover>a,.skin-yellow-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-yellow-light .sidebar-menu>li.active{border-left-color:#f39c12}.skin-yellow-light .sidebar-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-yellow-light .sidebar a{color:#444}.skin-yellow-light .sidebar a:hover{text-decoration:none}.skin-yellow-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-yellow-light .sidebar-menu .treeview-menu>li.active>a,.skin-yellow-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-yellow-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-yellow-light .sidebar-form input[type="text"],.skin-yellow-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-yellow-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-yellow-light .sidebar-form input[type="text"]:focus,.skin-yellow-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-yellow-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} -------------------------------------------------------------------------------- /src/ServiceProvider.php: -------------------------------------------------------------------------------- 1 | app->singleton(AdminLte::class, function (Container $app) { 20 | return new AdminLte( 21 | $app['config']['adminlte.filters'], 22 | $app['events'], 23 | $app 24 | ); 25 | }); 26 | } 27 | 28 | public function boot( 29 | Factory $view, 30 | Dispatcher $events, 31 | Repository $config 32 | ) { 33 | $this->loadViews(); 34 | 35 | $this->loadTranslations(); 36 | 37 | $this->publishConfig(); 38 | 39 | $this->publishAssets(); 40 | 41 | $this->registerCommands(); 42 | 43 | $this->registerViewComposers($view); 44 | 45 | static::registerMenu($events, $config); 46 | } 47 | 48 | private function loadViews() 49 | { 50 | $viewsPath = $this->packagePath('resources/views'); 51 | 52 | $this->loadViewsFrom($viewsPath, 'adminlte'); 53 | 54 | $this->publishes([ 55 | $viewsPath => base_path('resources/views/vendor/adminlte'), 56 | ], 'views'); 57 | } 58 | 59 | private function loadTranslations() 60 | { 61 | $translationsPath = $this->packagePath('resources/lang'); 62 | 63 | $this->loadTranslationsFrom($translationsPath, 'adminlte'); 64 | 65 | $this->publishes([ 66 | $translationsPath => base_path('resources/lang/vendor/adminlte'), 67 | ], 'translations'); 68 | } 69 | 70 | private function publishConfig() 71 | { 72 | $configPath = $this->packagePath('config/adminlte.php'); 73 | 74 | $this->publishes([ 75 | $configPath => config_path('adminlte.php'), 76 | ], 'config'); 77 | 78 | $this->mergeConfigFrom($configPath, 'adminlte'); 79 | } 80 | 81 | private function publishAssets() 82 | { 83 | $this->publishes([ 84 | $this->packagePath('resources/assets') => public_path('vendor/adminlte'), 85 | ], 'assets'); 86 | } 87 | 88 | private function packagePath($path) 89 | { 90 | return __DIR__."/../$path"; 91 | } 92 | 93 | private function registerCommands() 94 | { 95 | // Laravel >=5.2 only 96 | if (class_exists('Illuminate\\Auth\\Console\\MakeAuthCommand')) { 97 | $this->commands(MakeAdminLteCommand::class); 98 | } elseif (class_exists('Illuminate\\Auth\\Console\\AuthMakeCommand')) { 99 | $this->commands(AdminLteMakeCommand::class); 100 | } 101 | } 102 | 103 | private function registerViewComposers(Factory $view) 104 | { 105 | $view->composer('adminlte::page', AdminLteComposer::class); 106 | } 107 | 108 | public static function registerMenu(Dispatcher $events, Repository $config) 109 | { 110 | $events->listen(BuildingMenu::class, function (BuildingMenu $event) use ($config) { 111 | $menu = $config->get('adminlte.menu'); 112 | call_user_func_array([$event->menu, 'add'], $menu); 113 | }); 114 | } 115 | } 116 | -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-blue-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-blue-light .main-header .navbar{background-color:#3c8dbc}.skin-blue-light .main-header .navbar .nav>li>a{color:#fff}.skin-blue-light .main-header .navbar .nav>li>a:hover,.skin-blue-light .main-header .navbar .nav>li>a:active,.skin-blue-light .main-header .navbar .nav>li>a:focus,.skin-blue-light .main-header .navbar .nav .open>a,.skin-blue-light .main-header .navbar .nav .open>a:hover,.skin-blue-light .main-header .navbar .nav .open>a:focus,.skin-blue-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-blue-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-blue-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue-light .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-blue-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue-light .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue-light .main-header .logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue-light .main-header .logo:hover{background-color:#3b8ab8}.skin-blue-light .main-header li.user-header{background-color:#3c8dbc}.skin-blue-light .content-header{background:transparent}.skin-blue-light .wrapper,.skin-blue-light .main-sidebar,.skin-blue-light .left-side{background-color:#f9fafc}.skin-blue-light .main-sidebar{border-right:1px solid #d2d6de}.skin-blue-light .user-panel>.info,.skin-blue-light .user-panel>.info>a{color:#444}.skin-blue-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-blue-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-blue-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-blue-light .sidebar-menu>li:hover>a,.skin-blue-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-blue-light .sidebar-menu>li.active{border-left-color:#3c8dbc}.skin-blue-light .sidebar-menu>li.active>a{font-weight:600}.skin-blue-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-blue-light .sidebar a{color:#444}.skin-blue-light .sidebar a:hover{text-decoration:none}.skin-blue-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-blue-light .sidebar-menu .treeview-menu>li.active>a,.skin-blue-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-blue-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-blue-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-blue-light .sidebar-form input[type="text"],.skin-blue-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-blue-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-blue-light .sidebar-form input[type="text"]:focus,.skin-blue-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-blue-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-blue-light .main-footer{border-top-color:#d2d6de}.skin-blue.layout-top-nav .main-header>.logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue.layout-top-nav .main-header>.logo:hover{background-color:#3b8ab8} -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-black-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-black-light .main-header{border-bottom:1px solid #d2d6de}.skin-black-light .main-header .navbar-toggle{color:#333}.skin-black-light .main-header .navbar-brand{color:#333;border-right:1px solid #d2d6de}.skin-black-light .main-header .navbar{background-color:#fff}.skin-black-light .main-header .navbar .nav>li>a{color:#333}.skin-black-light .main-header .navbar .nav>li>a:hover,.skin-black-light .main-header .navbar .nav>li>a:active,.skin-black-light .main-header .navbar .nav>li>a:focus,.skin-black-light .main-header .navbar .nav .open>a,.skin-black-light .main-header .navbar .nav .open>a:hover,.skin-black-light .main-header .navbar .nav .open>a:focus,.skin-black-light .main-header .navbar .nav>.active>a{background:#fff;color:#999}.skin-black-light .main-header .navbar .sidebar-toggle{color:#333}.skin-black-light .main-header .navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black-light .main-header .navbar>.sidebar-toggle{color:#333;border-right:1px solid #d2d6de}.skin-black-light .main-header .navbar .navbar-nav>li>a{border-right:1px solid #d2d6de}.skin-black-light .main-header .navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black-light .main-header .navbar .navbar-right>li>a{border-left:1px solid #d2d6de;border-right-width:0}.skin-black-light .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #d2d6de}.skin-black-light .main-header>.logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black-light .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black-light .main-header>.logo:hover{background-color:#1f1f1f}}.skin-black-light .main-header li.user-header{background-color:#222}.skin-black-light .content-header{background:transparent;box-shadow:none}.skin-black-light .wrapper,.skin-black-light .main-sidebar,.skin-black-light .left-side{background-color:#f9fafc}.skin-black-light .main-sidebar{border-right:1px solid #d2d6de}.skin-black-light .user-panel>.info,.skin-black-light .user-panel>.info>a{color:#444}.skin-black-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-black-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-black-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-black-light .sidebar-menu>li:hover>a,.skin-black-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-black-light .sidebar-menu>li.active{border-left-color:#fff}.skin-black-light .sidebar-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-black-light .sidebar a{color:#444}.skin-black-light .sidebar a:hover{text-decoration:none}.skin-black-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-black-light .sidebar-menu .treeview-menu>li.active>a,.skin-black-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-black-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-black-light .sidebar-form input[type="text"],.skin-black-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-black-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black-light .sidebar-form input[type="text"]:focus,.skin-black-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-black-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} -------------------------------------------------------------------------------- /resources/views/register.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::master') 2 | 3 | @section('adminlte_css') 4 | 5 | @yield('css') 6 | @stop 7 | 8 | @section('body_class', 'register-page') 9 | 10 | @section('body') 11 |
    12 | 15 | 16 |
    17 | 18 |
    19 | {!! csrf_field() !!} 20 | 21 |
    22 | 24 | 25 | @if ($errors->has('name')) 26 | 27 | {{ $errors->first('name') }} 28 | 29 | @endif 30 |
    31 |
    32 | 34 | 35 | @if ($errors->has('email')) 36 | 37 | {{ $errors->first('email') }} 38 | 39 | @endif 40 |
    41 |
    42 | 44 | 45 | @if ($errors->has('password')) 46 | 47 | {{ $errors->first('password') }} 48 | 49 | @endif 50 |
    51 |
    52 | 54 | 55 | @if ($errors->has('password_confirmation')) 56 | 57 | {{ $errors->first('password_confirmation') }} 58 | 59 | @endif 60 |
    61 | 64 |
    65 | 69 |
    70 | 71 |
    72 | @stop 73 | 74 | @section('adminlte_js') 75 | @yield('js') 76 | @stop 77 | -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-red.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Red 3 | * --------- 4 | */ 5 | .skin-red .main-header .navbar { 6 | background-color: #dd4b39; 7 | } 8 | .skin-red .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-red .main-header .navbar .nav > li > a:hover, 12 | .skin-red .main-header .navbar .nav > li > a:active, 13 | .skin-red .main-header .navbar .nav > li > a:focus, 14 | .skin-red .main-header .navbar .nav .open > a, 15 | .skin-red .main-header .navbar .nav .open > a:hover, 16 | .skin-red .main-header .navbar .nav .open > a:focus, 17 | .skin-red .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-red .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-red .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-red .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-red .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #d73925; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-red .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-red .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-red .main-header .navbar .dropdown-menu li a:hover { 42 | background: #d73925; 43 | } 44 | } 45 | .skin-red .main-header .logo { 46 | background-color: #d73925; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-red .main-header .logo:hover { 51 | background-color: #d33724; 52 | } 53 | .skin-red .main-header li.user-header { 54 | background-color: #dd4b39; 55 | } 56 | .skin-red .content-header { 57 | background: transparent; 58 | } 59 | .skin-red .wrapper, 60 | .skin-red .main-sidebar, 61 | .skin-red .left-side { 62 | background-color: #222d32; 63 | } 64 | .skin-red .user-panel > .info, 65 | .skin-red .user-panel > .info > a { 66 | color: #fff; 67 | } 68 | .skin-red .sidebar-menu > li.header { 69 | color: #4b646f; 70 | background: #1a2226; 71 | } 72 | .skin-red .sidebar-menu > li > a { 73 | border-left: 3px solid transparent; 74 | } 75 | .skin-red .sidebar-menu > li:hover > a, 76 | .skin-red .sidebar-menu > li.active > a, 77 | .skin-red .sidebar-menu > li.menu-open > a { 78 | color: #ffffff; 79 | background: #1e282c; 80 | } 81 | .skin-red .sidebar-menu > li.active > a { 82 | border-left-color: #dd4b39; 83 | } 84 | .skin-red .sidebar-menu > li > .treeview-menu { 85 | margin: 0 1px; 86 | background: #2c3b41; 87 | } 88 | .skin-red .sidebar a { 89 | color: #b8c7ce; 90 | } 91 | .skin-red .sidebar a:hover { 92 | text-decoration: none; 93 | } 94 | .skin-red .sidebar-menu .treeview-menu > li > a { 95 | color: #8aa4af; 96 | } 97 | .skin-red .sidebar-menu .treeview-menu > li.active > a, 98 | .skin-red .sidebar-menu .treeview-menu > li > a:hover { 99 | color: #ffffff; 100 | } 101 | .skin-red .sidebar-form { 102 | border-radius: 3px; 103 | border: 1px solid #374850; 104 | margin: 10px 10px; 105 | } 106 | .skin-red .sidebar-form input[type="text"], 107 | .skin-red .sidebar-form .btn { 108 | box-shadow: none; 109 | background-color: #374850; 110 | border: 1px solid transparent; 111 | height: 35px; 112 | } 113 | .skin-red .sidebar-form input[type="text"] { 114 | color: #666; 115 | border-top-left-radius: 2px; 116 | border-top-right-radius: 0; 117 | border-bottom-right-radius: 0; 118 | border-bottom-left-radius: 2px; 119 | } 120 | .skin-red .sidebar-form input[type="text"]:focus, 121 | .skin-red .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 122 | background-color: #fff; 123 | color: #666; 124 | } 125 | .skin-red .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 126 | border-left-color: #fff; 127 | } 128 | .skin-red .sidebar-form .btn { 129 | color: #999; 130 | border-top-left-radius: 0; 131 | border-top-right-radius: 2px; 132 | border-bottom-right-radius: 2px; 133 | border-bottom-left-radius: 0; 134 | } 135 | -------------------------------------------------------------------------------- /resources/views/login.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::master') 2 | 3 | @section('adminlte_css') 4 | 5 | 6 | @yield('css') 7 | @stop 8 | 9 | @section('body_class', 'login-page') 10 | 11 | @section('body') 12 |
    13 | 16 | 17 |
    18 | 19 |
    20 | {!! csrf_field() !!} 21 | 22 |
    23 | 25 | 26 | @if ($errors->has('email')) 27 | 28 | {{ $errors->first('email') }} 29 | 30 | @endif 31 |
    32 |
    33 | 35 | 36 | @if ($errors->has('password')) 37 | 38 | {{ $errors->first('password') }} 39 | 40 | @endif 41 |
    42 |
    43 |
    44 |
    45 | 48 |
    49 |
    50 | 51 |
    52 | 54 |
    55 | 56 |
    57 |
    58 | 69 |
    70 | 71 |
    72 | @stop 73 | 74 | @section('adminlte_js') 75 | 76 | 85 | @yield('js') 86 | @stop 87 | -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-green.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Green 3 | * ----------- 4 | */ 5 | .skin-green .main-header .navbar { 6 | background-color: #00a65a; 7 | } 8 | .skin-green .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-green .main-header .navbar .nav > li > a:hover, 12 | .skin-green .main-header .navbar .nav > li > a:active, 13 | .skin-green .main-header .navbar .nav > li > a:focus, 14 | .skin-green .main-header .navbar .nav .open > a, 15 | .skin-green .main-header .navbar .nav .open > a:hover, 16 | .skin-green .main-header .navbar .nav .open > a:focus, 17 | .skin-green .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-green .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-green .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-green .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-green .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #008d4c; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-green .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-green .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-green .main-header .navbar .dropdown-menu li a:hover { 42 | background: #008d4c; 43 | } 44 | } 45 | .skin-green .main-header .logo { 46 | background-color: #008d4c; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-green .main-header .logo:hover { 51 | background-color: #008749; 52 | } 53 | .skin-green .main-header li.user-header { 54 | background-color: #00a65a; 55 | } 56 | .skin-green .content-header { 57 | background: transparent; 58 | } 59 | .skin-green .wrapper, 60 | .skin-green .main-sidebar, 61 | .skin-green .left-side { 62 | background-color: #222d32; 63 | } 64 | .skin-green .user-panel > .info, 65 | .skin-green .user-panel > .info > a { 66 | color: #fff; 67 | } 68 | .skin-green .sidebar-menu > li.header { 69 | color: #4b646f; 70 | background: #1a2226; 71 | } 72 | .skin-green .sidebar-menu > li > a { 73 | border-left: 3px solid transparent; 74 | } 75 | .skin-green .sidebar-menu > li:hover > a, 76 | .skin-green .sidebar-menu > li.active > a, 77 | .skin-green .sidebar-menu > li.menu-open > a { 78 | color: #ffffff; 79 | background: #1e282c; 80 | } 81 | .skin-green .sidebar-menu > li.active > a { 82 | border-left-color: #00a65a; 83 | } 84 | .skin-green .sidebar-menu > li > .treeview-menu { 85 | margin: 0 1px; 86 | background: #2c3b41; 87 | } 88 | .skin-green .sidebar a { 89 | color: #b8c7ce; 90 | } 91 | .skin-green .sidebar a:hover { 92 | text-decoration: none; 93 | } 94 | .skin-green .sidebar-menu .treeview-menu > li > a { 95 | color: #8aa4af; 96 | } 97 | .skin-green .sidebar-menu .treeview-menu > li.active > a, 98 | .skin-green .sidebar-menu .treeview-menu > li > a:hover { 99 | color: #ffffff; 100 | } 101 | .skin-green .sidebar-form { 102 | border-radius: 3px; 103 | border: 1px solid #374850; 104 | margin: 10px 10px; 105 | } 106 | .skin-green .sidebar-form input[type="text"], 107 | .skin-green .sidebar-form .btn { 108 | box-shadow: none; 109 | background-color: #374850; 110 | border: 1px solid transparent; 111 | height: 35px; 112 | } 113 | .skin-green .sidebar-form input[type="text"] { 114 | color: #666; 115 | border-top-left-radius: 2px; 116 | border-top-right-radius: 0; 117 | border-bottom-right-radius: 0; 118 | border-bottom-left-radius: 2px; 119 | } 120 | .skin-green .sidebar-form input[type="text"]:focus, 121 | .skin-green .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 122 | background-color: #fff; 123 | color: #666; 124 | } 125 | .skin-green .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 126 | border-left-color: #fff; 127 | } 128 | .skin-green .sidebar-form .btn { 129 | color: #999; 130 | border-top-left-radius: 0; 131 | border-top-right-radius: 2px; 132 | border-bottom-right-radius: 2px; 133 | border-bottom-left-radius: 0; 134 | } 135 | -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-purple.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Purple 3 | * ------------ 4 | */ 5 | .skin-purple .main-header .navbar { 6 | background-color: #605ca8; 7 | } 8 | .skin-purple .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-purple .main-header .navbar .nav > li > a:hover, 12 | .skin-purple .main-header .navbar .nav > li > a:active, 13 | .skin-purple .main-header .navbar .nav > li > a:focus, 14 | .skin-purple .main-header .navbar .nav .open > a, 15 | .skin-purple .main-header .navbar .nav .open > a:hover, 16 | .skin-purple .main-header .navbar .nav .open > a:focus, 17 | .skin-purple .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-purple .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-purple .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-purple .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-purple .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #555299; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-purple .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-purple .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-purple .main-header .navbar .dropdown-menu li a:hover { 42 | background: #555299; 43 | } 44 | } 45 | .skin-purple .main-header .logo { 46 | background-color: #555299; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-purple .main-header .logo:hover { 51 | background-color: #545096; 52 | } 53 | .skin-purple .main-header li.user-header { 54 | background-color: #605ca8; 55 | } 56 | .skin-purple .content-header { 57 | background: transparent; 58 | } 59 | .skin-purple .wrapper, 60 | .skin-purple .main-sidebar, 61 | .skin-purple .left-side { 62 | background-color: #222d32; 63 | } 64 | .skin-purple .user-panel > .info, 65 | .skin-purple .user-panel > .info > a { 66 | color: #fff; 67 | } 68 | .skin-purple .sidebar-menu > li.header { 69 | color: #4b646f; 70 | background: #1a2226; 71 | } 72 | .skin-purple .sidebar-menu > li > a { 73 | border-left: 3px solid transparent; 74 | } 75 | .skin-purple .sidebar-menu > li:hover > a, 76 | .skin-purple .sidebar-menu > li.active > a, 77 | .skin-purple .sidebar-menu > li.menu-open > a { 78 | color: #ffffff; 79 | background: #1e282c; 80 | } 81 | .skin-purple .sidebar-menu > li.active > a { 82 | border-left-color: #605ca8; 83 | } 84 | .skin-purple .sidebar-menu > li > .treeview-menu { 85 | margin: 0 1px; 86 | background: #2c3b41; 87 | } 88 | .skin-purple .sidebar a { 89 | color: #b8c7ce; 90 | } 91 | .skin-purple .sidebar a:hover { 92 | text-decoration: none; 93 | } 94 | .skin-purple .sidebar-menu .treeview-menu > li > a { 95 | color: #8aa4af; 96 | } 97 | .skin-purple .sidebar-menu .treeview-menu > li.active > a, 98 | .skin-purple .sidebar-menu .treeview-menu > li > a:hover { 99 | color: #ffffff; 100 | } 101 | .skin-purple .sidebar-form { 102 | border-radius: 3px; 103 | border: 1px solid #374850; 104 | margin: 10px 10px; 105 | } 106 | .skin-purple .sidebar-form input[type="text"], 107 | .skin-purple .sidebar-form .btn { 108 | box-shadow: none; 109 | background-color: #374850; 110 | border: 1px solid transparent; 111 | height: 35px; 112 | } 113 | .skin-purple .sidebar-form input[type="text"] { 114 | color: #666; 115 | border-top-left-radius: 2px; 116 | border-top-right-radius: 0; 117 | border-bottom-right-radius: 0; 118 | border-bottom-left-radius: 2px; 119 | } 120 | .skin-purple .sidebar-form input[type="text"]:focus, 121 | .skin-purple .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 122 | background-color: #fff; 123 | color: #666; 124 | } 125 | .skin-purple .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 126 | border-left-color: #fff; 127 | } 128 | .skin-purple .sidebar-form .btn { 129 | color: #999; 130 | border-top-left-radius: 0; 131 | border-top-right-radius: 2px; 132 | border-bottom-right-radius: 2px; 133 | border-bottom-left-radius: 0; 134 | } 135 | -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-yellow.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Yellow 3 | * ------------ 4 | */ 5 | .skin-yellow .main-header .navbar { 6 | background-color: #f39c12; 7 | } 8 | .skin-yellow .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-yellow .main-header .navbar .nav > li > a:hover, 12 | .skin-yellow .main-header .navbar .nav > li > a:active, 13 | .skin-yellow .main-header .navbar .nav > li > a:focus, 14 | .skin-yellow .main-header .navbar .nav .open > a, 15 | .skin-yellow .main-header .navbar .nav .open > a:hover, 16 | .skin-yellow .main-header .navbar .nav .open > a:focus, 17 | .skin-yellow .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-yellow .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-yellow .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-yellow .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-yellow .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #e08e0b; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-yellow .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-yellow .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-yellow .main-header .navbar .dropdown-menu li a:hover { 42 | background: #e08e0b; 43 | } 44 | } 45 | .skin-yellow .main-header .logo { 46 | background-color: #e08e0b; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-yellow .main-header .logo:hover { 51 | background-color: #db8b0b; 52 | } 53 | .skin-yellow .main-header li.user-header { 54 | background-color: #f39c12; 55 | } 56 | .skin-yellow .content-header { 57 | background: transparent; 58 | } 59 | .skin-yellow .wrapper, 60 | .skin-yellow .main-sidebar, 61 | .skin-yellow .left-side { 62 | background-color: #222d32; 63 | } 64 | .skin-yellow .user-panel > .info, 65 | .skin-yellow .user-panel > .info > a { 66 | color: #fff; 67 | } 68 | .skin-yellow .sidebar-menu > li.header { 69 | color: #4b646f; 70 | background: #1a2226; 71 | } 72 | .skin-yellow .sidebar-menu > li > a { 73 | border-left: 3px solid transparent; 74 | } 75 | .skin-yellow .sidebar-menu > li:hover > a, 76 | .skin-yellow .sidebar-menu > li.active > a, 77 | .skin-yellow .sidebar-menu > li.menu-open > a { 78 | color: #ffffff; 79 | background: #1e282c; 80 | } 81 | .skin-yellow .sidebar-menu > li.active > a { 82 | border-left-color: #f39c12; 83 | } 84 | .skin-yellow .sidebar-menu > li > .treeview-menu { 85 | margin: 0 1px; 86 | background: #2c3b41; 87 | } 88 | .skin-yellow .sidebar a { 89 | color: #b8c7ce; 90 | } 91 | .skin-yellow .sidebar a:hover { 92 | text-decoration: none; 93 | } 94 | .skin-yellow .sidebar-menu .treeview-menu > li > a { 95 | color: #8aa4af; 96 | } 97 | .skin-yellow .sidebar-menu .treeview-menu > li.active > a, 98 | .skin-yellow .sidebar-menu .treeview-menu > li > a:hover { 99 | color: #ffffff; 100 | } 101 | .skin-yellow .sidebar-form { 102 | border-radius: 3px; 103 | border: 1px solid #374850; 104 | margin: 10px 10px; 105 | } 106 | .skin-yellow .sidebar-form input[type="text"], 107 | .skin-yellow .sidebar-form .btn { 108 | box-shadow: none; 109 | background-color: #374850; 110 | border: 1px solid transparent; 111 | height: 35px; 112 | } 113 | .skin-yellow .sidebar-form input[type="text"] { 114 | color: #666; 115 | border-top-left-radius: 2px; 116 | border-top-right-radius: 0; 117 | border-bottom-right-radius: 0; 118 | border-bottom-left-radius: 2px; 119 | } 120 | .skin-yellow .sidebar-form input[type="text"]:focus, 121 | .skin-yellow .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 122 | background-color: #fff; 123 | color: #666; 124 | } 125 | .skin-yellow .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 126 | border-left-color: #fff; 127 | } 128 | .skin-yellow .sidebar-form .btn { 129 | color: #999; 130 | border-top-left-radius: 0; 131 | border-top-right-radius: 2px; 132 | border-bottom-right-radius: 2px; 133 | border-bottom-left-radius: 0; 134 | } 135 | -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-blue.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Blue 3 | * ---------- 4 | */ 5 | .skin-blue .main-header .navbar { 6 | background-color: #3c8dbc; 7 | } 8 | .skin-blue .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-blue .main-header .navbar .nav > li > a:hover, 12 | .skin-blue .main-header .navbar .nav > li > a:active, 13 | .skin-blue .main-header .navbar .nav > li > a:focus, 14 | .skin-blue .main-header .navbar .nav .open > a, 15 | .skin-blue .main-header .navbar .nav .open > a:hover, 16 | .skin-blue .main-header .navbar .nav .open > a:focus, 17 | .skin-blue .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-blue .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-blue .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-blue .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-blue .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #367fa9; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-blue .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-blue .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-blue .main-header .navbar .dropdown-menu li a:hover { 42 | background: #367fa9; 43 | } 44 | } 45 | .skin-blue .main-header .logo { 46 | background-color: #367fa9; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-blue .main-header .logo:hover { 51 | background-color: #357ca5; 52 | } 53 | .skin-blue .main-header li.user-header { 54 | background-color: #3c8dbc; 55 | } 56 | .skin-blue .content-header { 57 | background: transparent; 58 | } 59 | .skin-blue .wrapper, 60 | .skin-blue .main-sidebar, 61 | .skin-blue .left-side { 62 | background-color: #222d32; 63 | } 64 | .skin-blue .user-panel > .info, 65 | .skin-blue .user-panel > .info > a { 66 | color: #fff; 67 | } 68 | .skin-blue .sidebar-menu > li.header { 69 | color: #4b646f; 70 | background: #1a2226; 71 | } 72 | .skin-blue .sidebar-menu > li > a { 73 | border-left: 3px solid transparent; 74 | } 75 | .skin-blue .sidebar-menu > li:hover > a, 76 | .skin-blue .sidebar-menu > li.active > a, 77 | .skin-blue .sidebar-menu > li.menu-open > a { 78 | color: #ffffff; 79 | background: #1e282c; 80 | } 81 | .skin-blue .sidebar-menu > li.active > a { 82 | border-left-color: #3c8dbc; 83 | } 84 | .skin-blue .sidebar-menu > li > .treeview-menu { 85 | margin: 0 1px; 86 | background: #2c3b41; 87 | } 88 | .skin-blue .sidebar a { 89 | color: #b8c7ce; 90 | } 91 | .skin-blue .sidebar a:hover { 92 | text-decoration: none; 93 | } 94 | .skin-blue .sidebar-menu .treeview-menu > li > a { 95 | color: #8aa4af; 96 | } 97 | .skin-blue .sidebar-menu .treeview-menu > li.active > a, 98 | .skin-blue .sidebar-menu .treeview-menu > li > a:hover { 99 | color: #ffffff; 100 | } 101 | .skin-blue .sidebar-form { 102 | border-radius: 3px; 103 | border: 1px solid #374850; 104 | margin: 10px 10px; 105 | } 106 | .skin-blue .sidebar-form input[type="text"], 107 | .skin-blue .sidebar-form .btn { 108 | box-shadow: none; 109 | background-color: #374850; 110 | border: 1px solid transparent; 111 | height: 35px; 112 | } 113 | .skin-blue .sidebar-form input[type="text"] { 114 | color: #666; 115 | border-top-left-radius: 2px; 116 | border-top-right-radius: 0; 117 | border-bottom-right-radius: 0; 118 | border-bottom-left-radius: 2px; 119 | } 120 | .skin-blue .sidebar-form input[type="text"]:focus, 121 | .skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 122 | background-color: #fff; 123 | color: #666; 124 | } 125 | .skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 126 | border-left-color: #fff; 127 | } 128 | .skin-blue .sidebar-form .btn { 129 | color: #999; 130 | border-top-left-radius: 0; 131 | border-top-right-radius: 2px; 132 | border-bottom-right-radius: 2px; 133 | border-bottom-left-radius: 0; 134 | } 135 | .skin-blue.layout-top-nav .main-header > .logo { 136 | background-color: #3c8dbc; 137 | color: #ffffff; 138 | border-bottom: 0 solid transparent; 139 | } 140 | .skin-blue.layout-top-nav .main-header > .logo:hover { 141 | background-color: #3b8ab8; 142 | } 143 | -------------------------------------------------------------------------------- /resources/assets/plugins/iCheck/icheck.min.js: -------------------------------------------------------------------------------- 1 | /*! iCheck v1.0.1 by Damir Sultanov, http://git.io/arlzeA, MIT Licensed */ 2 | (function(h){function F(a,b,d){var c=a[0],e=/er/.test(d)?m:/bl/.test(d)?s:l,f=d==H?{checked:c[l],disabled:c[s],indeterminate:"true"==a.attr(m)||"false"==a.attr(w)}:c[e];if(/^(ch|di|in)/.test(d)&&!f)D(a,e);else if(/^(un|en|de)/.test(d)&&f)t(a,e);else if(d==H)for(e in f)f[e]?D(a,e,!0):t(a,e,!0);else if(!b||"toggle"==d){if(!b)a[p]("ifClicked");f?c[n]!==u&&t(a,e):D(a,e)}}function D(a,b,d){var c=a[0],e=a.parent(),f=b==l,A=b==m,B=b==s,K=A?w:f?E:"enabled",p=k(a,K+x(c[n])),N=k(a,b+x(c[n]));if(!0!==c[b]){if(!d&& 3 | b==l&&c[n]==u&&c.name){var C=a.closest("form"),r='input[name="'+c.name+'"]',r=C.length?C.find(r):h(r);r.each(function(){this!==c&&h(this).data(q)&&t(h(this),b)})}A?(c[b]=!0,c[l]&&t(a,l,"force")):(d||(c[b]=!0),f&&c[m]&&t(a,m,!1));L(a,f,b,d)}c[s]&&k(a,y,!0)&&e.find("."+I).css(y,"default");e[v](N||k(a,b)||"");B?e.attr("aria-disabled","true"):e.attr("aria-checked",A?"mixed":"true");e[z](p||k(a,K)||"")}function t(a,b,d){var c=a[0],e=a.parent(),f=b==l,h=b==m,q=b==s,p=h?w:f?E:"enabled",t=k(a,p+x(c[n])), 4 | u=k(a,b+x(c[n]));if(!1!==c[b]){if(h||!d||"force"==d)c[b]=!1;L(a,f,p,d)}!c[s]&&k(a,y,!0)&&e.find("."+I).css(y,"pointer");e[z](u||k(a,b)||"");q?e.attr("aria-disabled","false"):e.attr("aria-checked","false");e[v](t||k(a,p)||"")}function M(a,b){if(a.data(q)){a.parent().html(a.attr("style",a.data(q).s||""));if(b)a[p](b);a.off(".i").unwrap();h(G+'[for="'+a[0].id+'"]').add(a.closest(G)).off(".i")}}function k(a,b,d){if(a.data(q))return a.data(q).o[b+(d?"":"Class")]}function x(a){return a.charAt(0).toUpperCase()+ 5 | a.slice(1)}function L(a,b,d,c){if(!c){if(b)a[p]("ifToggled");a[p]("ifChanged")[p]("if"+x(d))}}var q="iCheck",I=q+"-helper",u="radio",l="checked",E="un"+l,s="disabled",w="determinate",m="in"+w,H="update",n="type",v="addClass",z="removeClass",p="trigger",G="label",y="cursor",J=/ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);h.fn[q]=function(a,b){var d='input[type="checkbox"], input[type="'+u+'"]',c=h(),e=function(a){a.each(function(){var a=h(this);c=a.is(d)? 6 | c.add(a):c.add(a.find(d))})};if(/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(a))return a=a.toLowerCase(),e(this),c.each(function(){var c=h(this);"destroy"==a?M(c,"ifDestroyed"):F(c,!0,a);h.isFunction(b)&&b()});if("object"!=typeof a&&a)return this;var f=h.extend({checkedClass:l,disabledClass:s,indeterminateClass:m,labelHover:!0,aria:!1},a),k=f.handle,B=f.hoverClass||"hover",x=f.focusClass||"focus",w=f.activeClass||"active",y=!!f.labelHover,C=f.labelHoverClass|| 7 | "hover",r=(""+f.increaseArea).replace("%","")|0;if("checkbox"==k||k==u)d='input[type="'+k+'"]';-50>r&&(r=-50);e(this);return c.each(function(){var a=h(this);M(a);var c=this,b=c.id,e=-r+"%",d=100+2*r+"%",d={position:"absolute",top:e,left:e,display:"block",width:d,height:d,margin:0,padding:0,background:"#fff",border:0,opacity:0},e=J?{position:"absolute",visibility:"hidden"}:r?d:{position:"absolute",opacity:0},k="checkbox"==c[n]?f.checkboxClass||"icheckbox":f.radioClass||"i"+u,m=h(G+'[for="'+b+'"]').add(a.closest(G)), 8 | A=!!f.aria,E=q+"-"+Math.random().toString(36).replace("0.",""),g='
    ")[p]("ifCreated").parent().append(f.insert);d=h('').css(d).appendTo(g);a.data(q,{o:f,s:a.attr("style")}).css(e);f.inheritClass&&g[v](c.className||"");f.inheritID&&b&&g.attr("id",q+"-"+b);"static"==g.css("position")&&g.css("position","relative");F(a,!0,H); 9 | if(m.length)m.on("click.i mouseover.i mouseout.i touchbegin.i touchend.i",function(b){var d=b[n],e=h(this);if(!c[s]){if("click"==d){if(h(b.target).is("a"))return;F(a,!1,!0)}else y&&(/ut|nd/.test(d)?(g[z](B),e[z](C)):(g[v](B),e[v](C)));if(J)b.stopPropagation();else return!1}});a.on("click.i focus.i blur.i keyup.i keydown.i keypress.i",function(b){var d=b[n];b=b.keyCode;if("click"==d)return!1;if("keydown"==d&&32==b)return c[n]==u&&c[l]||(c[l]?t(a,l):D(a,l)),!1;if("keyup"==d&&c[n]==u)!c[l]&&D(a,l);else if(/us|ur/.test(d))g["blur"== 10 | d?z:v](x)});d.on("click mousedown mouseup mouseover mouseout touchbegin.i touchend.i",function(b){var d=b[n],e=/wn|up/.test(d)?w:B;if(!c[s]){if("click"==d)F(a,!1,!0);else{if(/wn|er|in/.test(d))g[v](e);else g[z](e+" "+w);if(m.length&&y&&e==B)m[/ut|nd/.test(d)?z:v](C)}if(J)b.stopPropagation();else return!1}})})}})(window.jQuery||window.Zepto); 11 | -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-red-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Red 3 | * --------- 4 | */ 5 | .skin-red-light .main-header .navbar { 6 | background-color: #dd4b39; 7 | } 8 | .skin-red-light .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-red-light .main-header .navbar .nav > li > a:hover, 12 | .skin-red-light .main-header .navbar .nav > li > a:active, 13 | .skin-red-light .main-header .navbar .nav > li > a:focus, 14 | .skin-red-light .main-header .navbar .nav .open > a, 15 | .skin-red-light .main-header .navbar .nav .open > a:hover, 16 | .skin-red-light .main-header .navbar .nav .open > a:focus, 17 | .skin-red-light .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-red-light .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-red-light .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-red-light .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-red-light .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #d73925; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-red-light .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-red-light .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-red-light .main-header .navbar .dropdown-menu li a:hover { 42 | background: #d73925; 43 | } 44 | } 45 | .skin-red-light .main-header .logo { 46 | background-color: #dd4b39; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-red-light .main-header .logo:hover { 51 | background-color: #dc4735; 52 | } 53 | .skin-red-light .main-header li.user-header { 54 | background-color: #dd4b39; 55 | } 56 | .skin-red-light .content-header { 57 | background: transparent; 58 | } 59 | .skin-red-light .wrapper, 60 | .skin-red-light .main-sidebar, 61 | .skin-red-light .left-side { 62 | background-color: #f9fafc; 63 | } 64 | .skin-red-light .main-sidebar { 65 | border-right: 1px solid #d2d6de; 66 | } 67 | .skin-red-light .user-panel > .info, 68 | .skin-red-light .user-panel > .info > a { 69 | color: #444444; 70 | } 71 | .skin-red-light .sidebar-menu > li { 72 | -webkit-transition: border-left-color 0.3s ease; 73 | -o-transition: border-left-color 0.3s ease; 74 | transition: border-left-color 0.3s ease; 75 | } 76 | .skin-red-light .sidebar-menu > li.header { 77 | color: #848484; 78 | background: #f9fafc; 79 | } 80 | .skin-red-light .sidebar-menu > li > a { 81 | border-left: 3px solid transparent; 82 | font-weight: 600; 83 | } 84 | .skin-red-light .sidebar-menu > li:hover > a, 85 | .skin-red-light .sidebar-menu > li.active > a { 86 | color: #000000; 87 | background: #f4f4f5; 88 | } 89 | .skin-red-light .sidebar-menu > li.active { 90 | border-left-color: #dd4b39; 91 | } 92 | .skin-red-light .sidebar-menu > li.active > a { 93 | font-weight: 600; 94 | } 95 | .skin-red-light .sidebar-menu > li > .treeview-menu { 96 | background: #f4f4f5; 97 | } 98 | .skin-red-light .sidebar a { 99 | color: #444444; 100 | } 101 | .skin-red-light .sidebar a:hover { 102 | text-decoration: none; 103 | } 104 | .skin-red-light .sidebar-menu .treeview-menu > li > a { 105 | color: #777777; 106 | } 107 | .skin-red-light .sidebar-menu .treeview-menu > li.active > a, 108 | .skin-red-light .sidebar-menu .treeview-menu > li > a:hover { 109 | color: #000000; 110 | } 111 | .skin-red-light .sidebar-menu .treeview-menu > li.active > a { 112 | font-weight: 600; 113 | } 114 | .skin-red-light .sidebar-form { 115 | border-radius: 3px; 116 | border: 1px solid #d2d6de; 117 | margin: 10px 10px; 118 | } 119 | .skin-red-light .sidebar-form input[type="text"], 120 | .skin-red-light .sidebar-form .btn { 121 | box-shadow: none; 122 | background-color: #fff; 123 | border: 1px solid transparent; 124 | height: 35px; 125 | } 126 | .skin-red-light .sidebar-form input[type="text"] { 127 | color: #666; 128 | border-top-left-radius: 2px; 129 | border-top-right-radius: 0; 130 | border-bottom-right-radius: 0; 131 | border-bottom-left-radius: 2px; 132 | } 133 | .skin-red-light .sidebar-form input[type="text"]:focus, 134 | .skin-red-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 135 | background-color: #fff; 136 | color: #666; 137 | } 138 | .skin-red-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 139 | border-left-color: #fff; 140 | } 141 | .skin-red-light .sidebar-form .btn { 142 | color: #999; 143 | border-top-left-radius: 0; 144 | border-top-right-radius: 2px; 145 | border-bottom-right-radius: 2px; 146 | border-bottom-left-radius: 0; 147 | } 148 | @media (min-width: 768px) { 149 | .skin-red-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { 150 | border-left: 1px solid #d2d6de; 151 | } 152 | } 153 | -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-black.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Black 3 | * ----------- 4 | */ 5 | /* skin-black navbar */ 6 | .skin-black .main-header { 7 | -webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05); 8 | box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05); 9 | } 10 | .skin-black .main-header .navbar-toggle { 11 | color: #333; 12 | } 13 | .skin-black .main-header .navbar-brand { 14 | color: #333; 15 | border-right: 1px solid #eee; 16 | } 17 | .skin-black .main-header .navbar { 18 | background-color: #ffffff; 19 | } 20 | .skin-black .main-header .navbar .nav > li > a { 21 | color: #333333; 22 | } 23 | .skin-black .main-header .navbar .nav > li > a:hover, 24 | .skin-black .main-header .navbar .nav > li > a:active, 25 | .skin-black .main-header .navbar .nav > li > a:focus, 26 | .skin-black .main-header .navbar .nav .open > a, 27 | .skin-black .main-header .navbar .nav .open > a:hover, 28 | .skin-black .main-header .navbar .nav .open > a:focus, 29 | .skin-black .main-header .navbar .nav > .active > a { 30 | background: #ffffff; 31 | color: #999999; 32 | } 33 | .skin-black .main-header .navbar .sidebar-toggle { 34 | color: #333333; 35 | } 36 | .skin-black .main-header .navbar .sidebar-toggle:hover { 37 | color: #999999; 38 | background: #ffffff; 39 | } 40 | .skin-black .main-header .navbar > .sidebar-toggle { 41 | color: #333; 42 | border-right: 1px solid #eee; 43 | } 44 | .skin-black .main-header .navbar .navbar-nav > li > a { 45 | border-right: 1px solid #eee; 46 | } 47 | .skin-black .main-header .navbar .navbar-custom-menu .navbar-nav > li > a, 48 | .skin-black .main-header .navbar .navbar-right > li > a { 49 | border-left: 1px solid #eee; 50 | border-right-width: 0; 51 | } 52 | .skin-black .main-header > .logo { 53 | background-color: #ffffff; 54 | color: #333333; 55 | border-bottom: 0 solid transparent; 56 | border-right: 1px solid #eee; 57 | } 58 | .skin-black .main-header > .logo:hover { 59 | background-color: #fcfcfc; 60 | } 61 | @media (max-width: 767px) { 62 | .skin-black .main-header > .logo { 63 | background-color: #222222; 64 | color: #ffffff; 65 | border-bottom: 0 solid transparent; 66 | border-right: none; 67 | } 68 | .skin-black .main-header > .logo:hover { 69 | background-color: #1f1f1f; 70 | } 71 | } 72 | .skin-black .main-header li.user-header { 73 | background-color: #222; 74 | } 75 | .skin-black .content-header { 76 | background: transparent; 77 | box-shadow: none; 78 | } 79 | .skin-black .wrapper, 80 | .skin-black .main-sidebar, 81 | .skin-black .left-side { 82 | background-color: #222d32; 83 | } 84 | .skin-black .user-panel > .info, 85 | .skin-black .user-panel > .info > a { 86 | color: #fff; 87 | } 88 | .skin-black .sidebar-menu > li.header { 89 | color: #4b646f; 90 | background: #1a2226; 91 | } 92 | .skin-black .sidebar-menu > li > a { 93 | border-left: 3px solid transparent; 94 | } 95 | .skin-black .sidebar-menu > li:hover > a, 96 | .skin-black .sidebar-menu > li.active > a, 97 | .skin-black .sidebar-menu > li.menu-open > a { 98 | color: #ffffff; 99 | background: #1e282c; 100 | } 101 | .skin-black .sidebar-menu > li.active > a { 102 | border-left-color: #ffffff; 103 | } 104 | .skin-black .sidebar-menu > li > .treeview-menu { 105 | margin: 0 1px; 106 | background: #2c3b41; 107 | } 108 | .skin-black .sidebar a { 109 | color: #b8c7ce; 110 | } 111 | .skin-black .sidebar a:hover { 112 | text-decoration: none; 113 | } 114 | .skin-black .sidebar-menu .treeview-menu > li > a { 115 | color: #8aa4af; 116 | } 117 | .skin-black .sidebar-menu .treeview-menu > li.active > a, 118 | .skin-black .sidebar-menu .treeview-menu > li > a:hover { 119 | color: #ffffff; 120 | } 121 | .skin-black .sidebar-form { 122 | border-radius: 3px; 123 | border: 1px solid #374850; 124 | margin: 10px 10px; 125 | } 126 | .skin-black .sidebar-form input[type="text"], 127 | .skin-black .sidebar-form .btn { 128 | box-shadow: none; 129 | background-color: #374850; 130 | border: 1px solid transparent; 131 | height: 35px; 132 | } 133 | .skin-black .sidebar-form input[type="text"] { 134 | color: #666; 135 | border-top-left-radius: 2px; 136 | border-top-right-radius: 0; 137 | border-bottom-right-radius: 0; 138 | border-bottom-left-radius: 2px; 139 | } 140 | .skin-black .sidebar-form input[type="text"]:focus, 141 | .skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 142 | background-color: #fff; 143 | color: #666; 144 | } 145 | .skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 146 | border-left-color: #fff; 147 | } 148 | .skin-black .sidebar-form .btn { 149 | color: #999; 150 | border-top-left-radius: 0; 151 | border-top-right-radius: 2px; 152 | border-bottom-right-radius: 2px; 153 | border-bottom-left-radius: 0; 154 | } 155 | .skin-black .pace .pace-progress { 156 | background: #222; 157 | } 158 | .skin-black .pace .pace-activity { 159 | border-top-color: #222; 160 | border-left-color: #222; 161 | } 162 | -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-green-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Green 3 | * ----------- 4 | */ 5 | .skin-green-light .main-header .navbar { 6 | background-color: #00a65a; 7 | } 8 | .skin-green-light .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-green-light .main-header .navbar .nav > li > a:hover, 12 | .skin-green-light .main-header .navbar .nav > li > a:active, 13 | .skin-green-light .main-header .navbar .nav > li > a:focus, 14 | .skin-green-light .main-header .navbar .nav .open > a, 15 | .skin-green-light .main-header .navbar .nav .open > a:hover, 16 | .skin-green-light .main-header .navbar .nav .open > a:focus, 17 | .skin-green-light .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-green-light .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-green-light .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-green-light .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-green-light .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #008d4c; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-green-light .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-green-light .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-green-light .main-header .navbar .dropdown-menu li a:hover { 42 | background: #008d4c; 43 | } 44 | } 45 | .skin-green-light .main-header .logo { 46 | background-color: #00a65a; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-green-light .main-header .logo:hover { 51 | background-color: #00a157; 52 | } 53 | .skin-green-light .main-header li.user-header { 54 | background-color: #00a65a; 55 | } 56 | .skin-green-light .content-header { 57 | background: transparent; 58 | } 59 | .skin-green-light .wrapper, 60 | .skin-green-light .main-sidebar, 61 | .skin-green-light .left-side { 62 | background-color: #f9fafc; 63 | } 64 | .skin-green-light .main-sidebar { 65 | border-right: 1px solid #d2d6de; 66 | } 67 | .skin-green-light .user-panel > .info, 68 | .skin-green-light .user-panel > .info > a { 69 | color: #444444; 70 | } 71 | .skin-green-light .sidebar-menu > li { 72 | -webkit-transition: border-left-color 0.3s ease; 73 | -o-transition: border-left-color 0.3s ease; 74 | transition: border-left-color 0.3s ease; 75 | } 76 | .skin-green-light .sidebar-menu > li.header { 77 | color: #848484; 78 | background: #f9fafc; 79 | } 80 | .skin-green-light .sidebar-menu > li > a { 81 | border-left: 3px solid transparent; 82 | font-weight: 600; 83 | } 84 | .skin-green-light .sidebar-menu > li:hover > a, 85 | .skin-green-light .sidebar-menu > li.active > a { 86 | color: #000000; 87 | background: #f4f4f5; 88 | } 89 | .skin-green-light .sidebar-menu > li.active { 90 | border-left-color: #00a65a; 91 | } 92 | .skin-green-light .sidebar-menu > li.active > a { 93 | font-weight: 600; 94 | } 95 | .skin-green-light .sidebar-menu > li > .treeview-menu { 96 | background: #f4f4f5; 97 | } 98 | .skin-green-light .sidebar a { 99 | color: #444444; 100 | } 101 | .skin-green-light .sidebar a:hover { 102 | text-decoration: none; 103 | } 104 | .skin-green-light .sidebar-menu .treeview-menu > li > a { 105 | color: #777777; 106 | } 107 | .skin-green-light .sidebar-menu .treeview-menu > li.active > a, 108 | .skin-green-light .sidebar-menu .treeview-menu > li > a:hover { 109 | color: #000000; 110 | } 111 | .skin-green-light .sidebar-menu .treeview-menu > li.active > a { 112 | font-weight: 600; 113 | } 114 | .skin-green-light .sidebar-form { 115 | border-radius: 3px; 116 | border: 1px solid #d2d6de; 117 | margin: 10px 10px; 118 | } 119 | .skin-green-light .sidebar-form input[type="text"], 120 | .skin-green-light .sidebar-form .btn { 121 | box-shadow: none; 122 | background-color: #fff; 123 | border: 1px solid transparent; 124 | height: 35px; 125 | } 126 | .skin-green-light .sidebar-form input[type="text"] { 127 | color: #666; 128 | border-top-left-radius: 2px; 129 | border-top-right-radius: 0; 130 | border-bottom-right-radius: 0; 131 | border-bottom-left-radius: 2px; 132 | } 133 | .skin-green-light .sidebar-form input[type="text"]:focus, 134 | .skin-green-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 135 | background-color: #fff; 136 | color: #666; 137 | } 138 | .skin-green-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 139 | border-left-color: #fff; 140 | } 141 | .skin-green-light .sidebar-form .btn { 142 | color: #999; 143 | border-top-left-radius: 0; 144 | border-top-right-radius: 2px; 145 | border-bottom-right-radius: 2px; 146 | border-bottom-left-radius: 0; 147 | } 148 | @media (min-width: 768px) { 149 | .skin-green-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { 150 | border-left: 1px solid #d2d6de; 151 | } 152 | } 153 | -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-purple-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Purple 3 | * ------------ 4 | */ 5 | .skin-purple-light .main-header .navbar { 6 | background-color: #605ca8; 7 | } 8 | .skin-purple-light .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-purple-light .main-header .navbar .nav > li > a:hover, 12 | .skin-purple-light .main-header .navbar .nav > li > a:active, 13 | .skin-purple-light .main-header .navbar .nav > li > a:focus, 14 | .skin-purple-light .main-header .navbar .nav .open > a, 15 | .skin-purple-light .main-header .navbar .nav .open > a:hover, 16 | .skin-purple-light .main-header .navbar .nav .open > a:focus, 17 | .skin-purple-light .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-purple-light .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-purple-light .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-purple-light .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-purple-light .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #555299; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-purple-light .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-purple-light .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-purple-light .main-header .navbar .dropdown-menu li a:hover { 42 | background: #555299; 43 | } 44 | } 45 | .skin-purple-light .main-header .logo { 46 | background-color: #605ca8; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-purple-light .main-header .logo:hover { 51 | background-color: #5d59a6; 52 | } 53 | .skin-purple-light .main-header li.user-header { 54 | background-color: #605ca8; 55 | } 56 | .skin-purple-light .content-header { 57 | background: transparent; 58 | } 59 | .skin-purple-light .wrapper, 60 | .skin-purple-light .main-sidebar, 61 | .skin-purple-light .left-side { 62 | background-color: #f9fafc; 63 | } 64 | .skin-purple-light .main-sidebar { 65 | border-right: 1px solid #d2d6de; 66 | } 67 | .skin-purple-light .user-panel > .info, 68 | .skin-purple-light .user-panel > .info > a { 69 | color: #444444; 70 | } 71 | .skin-purple-light .sidebar-menu > li { 72 | -webkit-transition: border-left-color 0.3s ease; 73 | -o-transition: border-left-color 0.3s ease; 74 | transition: border-left-color 0.3s ease; 75 | } 76 | .skin-purple-light .sidebar-menu > li.header { 77 | color: #848484; 78 | background: #f9fafc; 79 | } 80 | .skin-purple-light .sidebar-menu > li > a { 81 | border-left: 3px solid transparent; 82 | font-weight: 600; 83 | } 84 | .skin-purple-light .sidebar-menu > li:hover > a, 85 | .skin-purple-light .sidebar-menu > li.active > a { 86 | color: #000000; 87 | background: #f4f4f5; 88 | } 89 | .skin-purple-light .sidebar-menu > li.active { 90 | border-left-color: #605ca8; 91 | } 92 | .skin-purple-light .sidebar-menu > li.active > a { 93 | font-weight: 600; 94 | } 95 | .skin-purple-light .sidebar-menu > li > .treeview-menu { 96 | background: #f4f4f5; 97 | } 98 | .skin-purple-light .sidebar a { 99 | color: #444444; 100 | } 101 | .skin-purple-light .sidebar a:hover { 102 | text-decoration: none; 103 | } 104 | .skin-purple-light .sidebar-menu .treeview-menu > li > a { 105 | color: #777777; 106 | } 107 | .skin-purple-light .sidebar-menu .treeview-menu > li.active > a, 108 | .skin-purple-light .sidebar-menu .treeview-menu > li > a:hover { 109 | color: #000000; 110 | } 111 | .skin-purple-light .sidebar-menu .treeview-menu > li.active > a { 112 | font-weight: 600; 113 | } 114 | .skin-purple-light .sidebar-form { 115 | border-radius: 3px; 116 | border: 1px solid #d2d6de; 117 | margin: 10px 10px; 118 | } 119 | .skin-purple-light .sidebar-form input[type="text"], 120 | .skin-purple-light .sidebar-form .btn { 121 | box-shadow: none; 122 | background-color: #fff; 123 | border: 1px solid transparent; 124 | height: 35px; 125 | } 126 | .skin-purple-light .sidebar-form input[type="text"] { 127 | color: #666; 128 | border-top-left-radius: 2px; 129 | border-top-right-radius: 0; 130 | border-bottom-right-radius: 0; 131 | border-bottom-left-radius: 2px; 132 | } 133 | .skin-purple-light .sidebar-form input[type="text"]:focus, 134 | .skin-purple-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 135 | background-color: #fff; 136 | color: #666; 137 | } 138 | .skin-purple-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 139 | border-left-color: #fff; 140 | } 141 | .skin-purple-light .sidebar-form .btn { 142 | color: #999; 143 | border-top-left-radius: 0; 144 | border-top-right-radius: 2px; 145 | border-bottom-right-radius: 2px; 146 | border-bottom-left-radius: 0; 147 | } 148 | @media (min-width: 768px) { 149 | .skin-purple-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { 150 | border-left: 1px solid #d2d6de; 151 | } 152 | } 153 | -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-yellow-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Yellow 3 | * ------------ 4 | */ 5 | .skin-yellow-light .main-header .navbar { 6 | background-color: #f39c12; 7 | } 8 | .skin-yellow-light .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-yellow-light .main-header .navbar .nav > li > a:hover, 12 | .skin-yellow-light .main-header .navbar .nav > li > a:active, 13 | .skin-yellow-light .main-header .navbar .nav > li > a:focus, 14 | .skin-yellow-light .main-header .navbar .nav .open > a, 15 | .skin-yellow-light .main-header .navbar .nav .open > a:hover, 16 | .skin-yellow-light .main-header .navbar .nav .open > a:focus, 17 | .skin-yellow-light .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-yellow-light .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-yellow-light .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-yellow-light .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-yellow-light .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #e08e0b; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-yellow-light .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-yellow-light .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-yellow-light .main-header .navbar .dropdown-menu li a:hover { 42 | background: #e08e0b; 43 | } 44 | } 45 | .skin-yellow-light .main-header .logo { 46 | background-color: #f39c12; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-yellow-light .main-header .logo:hover { 51 | background-color: #f39a0d; 52 | } 53 | .skin-yellow-light .main-header li.user-header { 54 | background-color: #f39c12; 55 | } 56 | .skin-yellow-light .content-header { 57 | background: transparent; 58 | } 59 | .skin-yellow-light .wrapper, 60 | .skin-yellow-light .main-sidebar, 61 | .skin-yellow-light .left-side { 62 | background-color: #f9fafc; 63 | } 64 | .skin-yellow-light .main-sidebar { 65 | border-right: 1px solid #d2d6de; 66 | } 67 | .skin-yellow-light .user-panel > .info, 68 | .skin-yellow-light .user-panel > .info > a { 69 | color: #444444; 70 | } 71 | .skin-yellow-light .sidebar-menu > li { 72 | -webkit-transition: border-left-color 0.3s ease; 73 | -o-transition: border-left-color 0.3s ease; 74 | transition: border-left-color 0.3s ease; 75 | } 76 | .skin-yellow-light .sidebar-menu > li.header { 77 | color: #848484; 78 | background: #f9fafc; 79 | } 80 | .skin-yellow-light .sidebar-menu > li > a { 81 | border-left: 3px solid transparent; 82 | font-weight: 600; 83 | } 84 | .skin-yellow-light .sidebar-menu > li:hover > a, 85 | .skin-yellow-light .sidebar-menu > li.active > a { 86 | color: #000000; 87 | background: #f4f4f5; 88 | } 89 | .skin-yellow-light .sidebar-menu > li.active { 90 | border-left-color: #f39c12; 91 | } 92 | .skin-yellow-light .sidebar-menu > li.active > a { 93 | font-weight: 600; 94 | } 95 | .skin-yellow-light .sidebar-menu > li > .treeview-menu { 96 | background: #f4f4f5; 97 | } 98 | .skin-yellow-light .sidebar a { 99 | color: #444444; 100 | } 101 | .skin-yellow-light .sidebar a:hover { 102 | text-decoration: none; 103 | } 104 | .skin-yellow-light .sidebar-menu .treeview-menu > li > a { 105 | color: #777777; 106 | } 107 | .skin-yellow-light .sidebar-menu .treeview-menu > li.active > a, 108 | .skin-yellow-light .sidebar-menu .treeview-menu > li > a:hover { 109 | color: #000000; 110 | } 111 | .skin-yellow-light .sidebar-menu .treeview-menu > li.active > a { 112 | font-weight: 600; 113 | } 114 | .skin-yellow-light .sidebar-form { 115 | border-radius: 3px; 116 | border: 1px solid #d2d6de; 117 | margin: 10px 10px; 118 | } 119 | .skin-yellow-light .sidebar-form input[type="text"], 120 | .skin-yellow-light .sidebar-form .btn { 121 | box-shadow: none; 122 | background-color: #fff; 123 | border: 1px solid transparent; 124 | height: 35px; 125 | } 126 | .skin-yellow-light .sidebar-form input[type="text"] { 127 | color: #666; 128 | border-top-left-radius: 2px; 129 | border-top-right-radius: 0; 130 | border-bottom-right-radius: 0; 131 | border-bottom-left-radius: 2px; 132 | } 133 | .skin-yellow-light .sidebar-form input[type="text"]:focus, 134 | .skin-yellow-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 135 | background-color: #fff; 136 | color: #666; 137 | } 138 | .skin-yellow-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 139 | border-left-color: #fff; 140 | } 141 | .skin-yellow-light .sidebar-form .btn { 142 | color: #999; 143 | border-top-left-radius: 0; 144 | border-top-right-radius: 2px; 145 | border-bottom-right-radius: 2px; 146 | border-bottom-left-radius: 0; 147 | } 148 | @media (min-width: 768px) { 149 | .skin-yellow-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { 150 | border-left: 1px solid #d2d6de; 151 | } 152 | } 153 | -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-blue-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Blue 3 | * ---------- 4 | */ 5 | .skin-blue-light .main-header .navbar { 6 | background-color: #3c8dbc; 7 | } 8 | .skin-blue-light .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-blue-light .main-header .navbar .nav > li > a:hover, 12 | .skin-blue-light .main-header .navbar .nav > li > a:active, 13 | .skin-blue-light .main-header .navbar .nav > li > a:focus, 14 | .skin-blue-light .main-header .navbar .nav .open > a, 15 | .skin-blue-light .main-header .navbar .nav .open > a:hover, 16 | .skin-blue-light .main-header .navbar .nav .open > a:focus, 17 | .skin-blue-light .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-blue-light .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-blue-light .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-blue-light .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-blue-light .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #367fa9; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-blue-light .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-blue-light .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-blue-light .main-header .navbar .dropdown-menu li a:hover { 42 | background: #367fa9; 43 | } 44 | } 45 | .skin-blue-light .main-header .logo { 46 | background-color: #3c8dbc; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-blue-light .main-header .logo:hover { 51 | background-color: #3b8ab8; 52 | } 53 | .skin-blue-light .main-header li.user-header { 54 | background-color: #3c8dbc; 55 | } 56 | .skin-blue-light .content-header { 57 | background: transparent; 58 | } 59 | .skin-blue-light .wrapper, 60 | .skin-blue-light .main-sidebar, 61 | .skin-blue-light .left-side { 62 | background-color: #f9fafc; 63 | } 64 | .skin-blue-light .main-sidebar { 65 | border-right: 1px solid #d2d6de; 66 | } 67 | .skin-blue-light .user-panel > .info, 68 | .skin-blue-light .user-panel > .info > a { 69 | color: #444444; 70 | } 71 | .skin-blue-light .sidebar-menu > li { 72 | -webkit-transition: border-left-color 0.3s ease; 73 | -o-transition: border-left-color 0.3s ease; 74 | transition: border-left-color 0.3s ease; 75 | } 76 | .skin-blue-light .sidebar-menu > li.header { 77 | color: #848484; 78 | background: #f9fafc; 79 | } 80 | .skin-blue-light .sidebar-menu > li > a { 81 | border-left: 3px solid transparent; 82 | font-weight: 600; 83 | } 84 | .skin-blue-light .sidebar-menu > li:hover > a, 85 | .skin-blue-light .sidebar-menu > li.active > a { 86 | color: #000000; 87 | background: #f4f4f5; 88 | } 89 | .skin-blue-light .sidebar-menu > li.active { 90 | border-left-color: #3c8dbc; 91 | } 92 | .skin-blue-light .sidebar-menu > li.active > a { 93 | font-weight: 600; 94 | } 95 | .skin-blue-light .sidebar-menu > li > .treeview-menu { 96 | background: #f4f4f5; 97 | } 98 | .skin-blue-light .sidebar a { 99 | color: #444444; 100 | } 101 | .skin-blue-light .sidebar a:hover { 102 | text-decoration: none; 103 | } 104 | .skin-blue-light .sidebar-menu .treeview-menu > li > a { 105 | color: #777777; 106 | } 107 | .skin-blue-light .sidebar-menu .treeview-menu > li.active > a, 108 | .skin-blue-light .sidebar-menu .treeview-menu > li > a:hover { 109 | color: #000000; 110 | } 111 | .skin-blue-light .sidebar-menu .treeview-menu > li.active > a { 112 | font-weight: 600; 113 | } 114 | .skin-blue-light .sidebar-form { 115 | border-radius: 3px; 116 | border: 1px solid #d2d6de; 117 | margin: 10px 10px; 118 | } 119 | .skin-blue-light .sidebar-form input[type="text"], 120 | .skin-blue-light .sidebar-form .btn { 121 | box-shadow: none; 122 | background-color: #fff; 123 | border: 1px solid transparent; 124 | height: 35px; 125 | } 126 | .skin-blue-light .sidebar-form input[type="text"] { 127 | color: #666; 128 | border-top-left-radius: 2px; 129 | border-top-right-radius: 0; 130 | border-bottom-right-radius: 0; 131 | border-bottom-left-radius: 2px; 132 | } 133 | .skin-blue-light .sidebar-form input[type="text"]:focus, 134 | .skin-blue-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 135 | background-color: #fff; 136 | color: #666; 137 | } 138 | .skin-blue-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 139 | border-left-color: #fff; 140 | } 141 | .skin-blue-light .sidebar-form .btn { 142 | color: #999; 143 | border-top-left-radius: 0; 144 | border-top-right-radius: 2px; 145 | border-bottom-right-radius: 2px; 146 | border-bottom-left-radius: 0; 147 | } 148 | @media (min-width: 768px) { 149 | .skin-blue-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { 150 | border-left: 1px solid #d2d6de; 151 | } 152 | } 153 | .skin-blue-light .main-footer { 154 | border-top-color: #d2d6de; 155 | } 156 | .skin-blue.layout-top-nav .main-header > .logo { 157 | background-color: #3c8dbc; 158 | color: #ffffff; 159 | border-bottom: 0 solid transparent; 160 | } 161 | .skin-blue.layout-top-nav .main-header > .logo:hover { 162 | background-color: #3b8ab8; 163 | } 164 | -------------------------------------------------------------------------------- /resources/assets/dist/css/skins/skin-black-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Black 3 | * ----------- 4 | */ 5 | /* skin-black navbar */ 6 | .skin-black-light .main-header { 7 | border-bottom: 1px solid #d2d6de; 8 | } 9 | .skin-black-light .main-header .navbar-toggle { 10 | color: #333; 11 | } 12 | .skin-black-light .main-header .navbar-brand { 13 | color: #333; 14 | border-right: 1px solid #d2d6de; 15 | } 16 | .skin-black-light .main-header .navbar { 17 | background-color: #ffffff; 18 | } 19 | .skin-black-light .main-header .navbar .nav > li > a { 20 | color: #333333; 21 | } 22 | .skin-black-light .main-header .navbar .nav > li > a:hover, 23 | .skin-black-light .main-header .navbar .nav > li > a:active, 24 | .skin-black-light .main-header .navbar .nav > li > a:focus, 25 | .skin-black-light .main-header .navbar .nav .open > a, 26 | .skin-black-light .main-header .navbar .nav .open > a:hover, 27 | .skin-black-light .main-header .navbar .nav .open > a:focus, 28 | .skin-black-light .main-header .navbar .nav > .active > a { 29 | background: #ffffff; 30 | color: #999999; 31 | } 32 | .skin-black-light .main-header .navbar .sidebar-toggle { 33 | color: #333333; 34 | } 35 | .skin-black-light .main-header .navbar .sidebar-toggle:hover { 36 | color: #999999; 37 | background: #ffffff; 38 | } 39 | .skin-black-light .main-header .navbar > .sidebar-toggle { 40 | color: #333; 41 | border-right: 1px solid #d2d6de; 42 | } 43 | .skin-black-light .main-header .navbar .navbar-nav > li > a { 44 | border-right: 1px solid #d2d6de; 45 | } 46 | .skin-black-light .main-header .navbar .navbar-custom-menu .navbar-nav > li > a, 47 | .skin-black-light .main-header .navbar .navbar-right > li > a { 48 | border-left: 1px solid #d2d6de; 49 | border-right-width: 0; 50 | } 51 | .skin-black-light .main-header > .logo { 52 | background-color: #ffffff; 53 | color: #333333; 54 | border-bottom: 0 solid transparent; 55 | border-right: 1px solid #d2d6de; 56 | } 57 | .skin-black-light .main-header > .logo:hover { 58 | background-color: #fcfcfc; 59 | } 60 | @media (max-width: 767px) { 61 | .skin-black-light .main-header > .logo { 62 | background-color: #222222; 63 | color: #ffffff; 64 | border-bottom: 0 solid transparent; 65 | border-right: none; 66 | } 67 | .skin-black-light .main-header > .logo:hover { 68 | background-color: #1f1f1f; 69 | } 70 | } 71 | .skin-black-light .main-header li.user-header { 72 | background-color: #222; 73 | } 74 | .skin-black-light .content-header { 75 | background: transparent; 76 | box-shadow: none; 77 | } 78 | .skin-black-light .wrapper, 79 | .skin-black-light .main-sidebar, 80 | .skin-black-light .left-side { 81 | background-color: #f9fafc; 82 | } 83 | .skin-black-light .main-sidebar { 84 | border-right: 1px solid #d2d6de; 85 | } 86 | .skin-black-light .user-panel > .info, 87 | .skin-black-light .user-panel > .info > a { 88 | color: #444444; 89 | } 90 | .skin-black-light .sidebar-menu > li { 91 | -webkit-transition: border-left-color 0.3s ease; 92 | -o-transition: border-left-color 0.3s ease; 93 | transition: border-left-color 0.3s ease; 94 | } 95 | .skin-black-light .sidebar-menu > li.header { 96 | color: #848484; 97 | background: #f9fafc; 98 | } 99 | .skin-black-light .sidebar-menu > li > a { 100 | border-left: 3px solid transparent; 101 | font-weight: 600; 102 | } 103 | .skin-black-light .sidebar-menu > li:hover > a, 104 | .skin-black-light .sidebar-menu > li.active > a { 105 | color: #000000; 106 | background: #f4f4f5; 107 | } 108 | .skin-black-light .sidebar-menu > li.active { 109 | border-left-color: #ffffff; 110 | } 111 | .skin-black-light .sidebar-menu > li.active > a { 112 | font-weight: 600; 113 | } 114 | .skin-black-light .sidebar-menu > li > .treeview-menu { 115 | background: #f4f4f5; 116 | } 117 | .skin-black-light .sidebar a { 118 | color: #444444; 119 | } 120 | .skin-black-light .sidebar a:hover { 121 | text-decoration: none; 122 | } 123 | .skin-black-light .sidebar-menu .treeview-menu > li > a { 124 | color: #777777; 125 | } 126 | .skin-black-light .sidebar-menu .treeview-menu > li.active > a, 127 | .skin-black-light .sidebar-menu .treeview-menu > li > a:hover { 128 | color: #000000; 129 | } 130 | .skin-black-light .sidebar-menu .treeview-menu > li.active > a { 131 | font-weight: 600; 132 | } 133 | .skin-black-light .sidebar-form { 134 | border-radius: 3px; 135 | border: 1px solid #d2d6de; 136 | margin: 10px 10px; 137 | } 138 | .skin-black-light .sidebar-form input[type="text"], 139 | .skin-black-light .sidebar-form .btn { 140 | box-shadow: none; 141 | background-color: #fff; 142 | border: 1px solid transparent; 143 | height: 35px; 144 | } 145 | .skin-black-light .sidebar-form input[type="text"] { 146 | color: #666; 147 | border-top-left-radius: 2px; 148 | border-top-right-radius: 0; 149 | border-bottom-right-radius: 0; 150 | border-bottom-left-radius: 2px; 151 | } 152 | .skin-black-light .sidebar-form input[type="text"]:focus, 153 | .skin-black-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 154 | background-color: #fff; 155 | color: #666; 156 | } 157 | .skin-black-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 158 | border-left-color: #fff; 159 | } 160 | .skin-black-light .sidebar-form .btn { 161 | color: #999; 162 | border-top-left-radius: 0; 163 | border-top-right-radius: 2px; 164 | border-bottom-right-radius: 2px; 165 | border-bottom-left-radius: 0; 166 | } 167 | @media (min-width: 768px) { 168 | .skin-black-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { 169 | border-left: 1px solid #d2d6de; 170 | } 171 | } 172 | -------------------------------------------------------------------------------- /resources/views/page.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::master') 2 | 3 | @section('adminlte_css') 4 | 6 | @stack('css') 7 | @yield('css') 8 | @stop 9 | 10 | @section('body_class', 'skin-' . config('adminlte.skin', 'blue') . ' sidebar-mini ' . (config('adminlte.layout') ? [ 11 | 'boxed' => 'layout-boxed', 12 | 'fixed' => 'fixed', 13 | 'top-nav' => 'layout-top-nav' 14 | ][config('adminlte.layout')] : '') . (config('adminlte.collapse_sidebar') ? ' sidebar-collapse ' : '')) 15 | 16 | @section('body') 17 |
    18 | 19 | 20 |
    21 | @if(config('adminlte.layout') == 'top-nav') 22 | 85 |
    86 | 87 | @if(config('adminlte.layout') != 'top-nav') 88 | 89 | 102 | @endif 103 | 104 | 105 |
    106 | @if(config('adminlte.layout') == 'top-nav') 107 |
    108 | @endif 109 | 110 | 111 |
    112 | @yield('content_header') 113 |
    114 | 115 | 116 |
    117 | 118 | @yield('content') 119 | 120 |
    121 | 122 | @if(config('adminlte.layout') == 'top-nav') 123 |
    124 | 125 | @endif 126 |
    127 | 128 | 129 |
    130 | 131 | @stop 132 | 133 | @section('adminlte_js') 134 | 135 | @stack('js') 136 | @yield('js') 137 | @stop 138 | -------------------------------------------------------------------------------- /config/adminlte.php: -------------------------------------------------------------------------------- 1 | 'AdminLTE 2', 17 | 18 | 'title_prefix' => '', 19 | 20 | 'title_postfix' => '', 21 | 22 | /* 23 | |-------------------------------------------------------------------------- 24 | | Logo 25 | |-------------------------------------------------------------------------- 26 | | 27 | | This logo is displayed at the upper left corner of your admin panel. 28 | | You can use basic HTML here if you want. The logo has also a mini 29 | | variant, used for the mini side bar. Make it 3 letters or so 30 | | 31 | */ 32 | 33 | 'logo' => 'AdminLTE', 34 | 35 | 'logo_mini' => 'ALT', 36 | 37 | /* 38 | |-------------------------------------------------------------------------- 39 | | Skin Color 40 | |-------------------------------------------------------------------------- 41 | | 42 | | Choose a skin color for your admin panel. The available skin colors: 43 | | blue, black, purple, yellow, red, and green. Each skin also has a 44 | | ligth variant: blue-light, purple-light, purple-light, etc. 45 | | 46 | */ 47 | 48 | 'skin' => 'blue', 49 | 50 | /* 51 | |-------------------------------------------------------------------------- 52 | | Layout 53 | |-------------------------------------------------------------------------- 54 | | 55 | | Choose a layout for your admin panel. The available layout options: 56 | | null, 'boxed', 'fixed', 'top-nav'. null is the default, top-nav 57 | | removes the sidebar and places your menu in the top navbar 58 | | 59 | */ 60 | 61 | 'layout' => null, 62 | 63 | /* 64 | |-------------------------------------------------------------------------- 65 | | Collapse Sidebar 66 | |-------------------------------------------------------------------------- 67 | | 68 | | Here we choose and option to be able to start with a collapsed side 69 | | bar. To adjust your sidebar layout simply set this either true 70 | | this is compatible with layouts except top-nav layout option 71 | | 72 | */ 73 | 74 | 'collapse_sidebar' => false, 75 | 76 | /* 77 | |-------------------------------------------------------------------------- 78 | | URLs 79 | |-------------------------------------------------------------------------- 80 | | 81 | | Register here your dashboard, logout, login and register URLs. The 82 | | logout URL automatically sends a POST request in Laravel 5.3 or higher. 83 | | You can set the request to a GET or POST with logout_method. 84 | | Set register_url to null if you don't want a register link. 85 | | 86 | */ 87 | 88 | 'dashboard_url' => 'home', 89 | 90 | 'logout_url' => 'logout', 91 | 92 | 'logout_method' => null, 93 | 94 | 'login_url' => 'login', 95 | 96 | 'register_url' => 'register', 97 | 98 | /* 99 | |-------------------------------------------------------------------------- 100 | | Menu Items 101 | |-------------------------------------------------------------------------- 102 | | 103 | | Specify your menu items to display in the left sidebar. Each menu item 104 | | should have a text and and a URL. You can also specify an icon from 105 | | Font Awesome. A string instead of an array represents a header in sidebar 106 | | layout. The 'can' is a filter on Laravel's built in Gate functionality. 107 | | 108 | */ 109 | 110 | 'menu' => [ 111 | 'MAIN NAVIGATION', 112 | [ 113 | 'text' => 'Blog', 114 | 'url' => 'admin/blog', 115 | 'can' => 'manage-blog', 116 | ], 117 | [ 118 | 'text' => 'Pages', 119 | 'url' => 'admin/pages', 120 | 'icon' => 'file', 121 | 'label' => 4, 122 | 'label_color' => 'success', 123 | ], 124 | 'ACCOUNT SETTINGS', 125 | [ 126 | 'text' => 'Profile', 127 | 'url' => 'admin/settings', 128 | 'icon' => 'user', 129 | ], 130 | [ 131 | 'text' => 'Change Password', 132 | 'url' => 'admin/settings', 133 | 'icon' => 'lock', 134 | ], 135 | [ 136 | 'text' => 'Multilevel', 137 | 'icon' => 'share', 138 | 'submenu' => [ 139 | [ 140 | 'text' => 'Level One', 141 | 'url' => '#', 142 | ], 143 | [ 144 | 'text' => 'Level One', 145 | 'url' => '#', 146 | 'submenu' => [ 147 | [ 148 | 'text' => 'Level Two', 149 | 'url' => '#', 150 | ], 151 | [ 152 | 'text' => 'Level Two', 153 | 'url' => '#', 154 | 'submenu' => [ 155 | [ 156 | 'text' => 'Level Three', 157 | 'url' => '#', 158 | ], 159 | [ 160 | 'text' => 'Level Three', 161 | 'url' => '#', 162 | ], 163 | ], 164 | ], 165 | ], 166 | ], 167 | [ 168 | 'text' => 'Level One', 169 | 'url' => '#', 170 | ], 171 | ], 172 | ], 173 | 'LABELS', 174 | [ 175 | 'text' => 'Important', 176 | 'icon_color' => 'red', 177 | ], 178 | [ 179 | 'text' => 'Warning', 180 | 'icon_color' => 'yellow', 181 | ], 182 | [ 183 | 'text' => 'Information', 184 | 'icon_color' => 'aqua', 185 | ], 186 | ], 187 | 188 | /* 189 | |-------------------------------------------------------------------------- 190 | | Menu Filters 191 | |-------------------------------------------------------------------------- 192 | | 193 | | Choose what filters you want to include for rendering the menu. 194 | | You can add your own filters to this array after you've created them. 195 | | You can comment out the GateFilter if you don't want to use Laravel's 196 | | built in Gate functionality 197 | | 198 | */ 199 | 200 | 'filters' => [ 201 | JeroenNoten\LaravelAdminLte\Menu\Filters\HrefFilter::class, 202 | JeroenNoten\LaravelAdminLte\Menu\Filters\ActiveFilter::class, 203 | JeroenNoten\LaravelAdminLte\Menu\Filters\SubmenuFilter::class, 204 | JeroenNoten\LaravelAdminLte\Menu\Filters\ClassesFilter::class, 205 | JeroenNoten\LaravelAdminLte\Menu\Filters\GateFilter::class, 206 | ], 207 | 208 | /* 209 | |-------------------------------------------------------------------------- 210 | | Plugins Initialization 211 | |-------------------------------------------------------------------------- 212 | | 213 | | Choose which JavaScript plugins should be included. At this moment, 214 | | only DataTables is supported as a plugin. Set the value to true 215 | | to include the JavaScript file from a CDN via a script tag. 216 | | 217 | */ 218 | 219 | 'plugins' => [ 220 | 'datatables' => true, 221 | 'select2' => true, 222 | 'chartjs' => true, 223 | ], 224 | ]; 225 | -------------------------------------------------------------------------------- /resources/assets/dist/js/adminlte.min.js: -------------------------------------------------------------------------------- 1 | /*! AdminLTE app.js 2 | * ================ 3 | * Main JS application file for AdminLTE v2. This file 4 | * should be included in all pages. It controls some layout 5 | * options and implements exclusive AdminLTE plugins. 6 | * 7 | * @Author Almsaeed Studio 8 | * @Support 9 | * @Email 10 | * @version 2.4.0 11 | * @repository git://github.com/almasaeed2010/AdminLTE.git 12 | * @license MIT 13 | */ 14 | if("undefined"==typeof jQuery)throw new Error("AdminLTE requires jQuery");+function(a){"use strict";function b(b){return this.each(function(){var e=a(this),g=e.data(c);if(!g){var h=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,g=new f(e,h))}if("string"==typeof g){if(void 0===g[b])throw new Error("No method named "+b);g[b]()}})}var c="lte.boxrefresh",d={source:"",params:{},trigger:".refresh-btn",content:".box-body",loadInContent:!0,responseType:"",overlayTemplate:'
    ',onLoadStart:function(){},onLoadDone:function(a){return a}},e={data:'[data-widget="box-refresh"]'},f=function(b,c){if(this.element=b,this.options=c,this.$overlay=a(c.overlay),""===c.source)throw new Error("Source url was not defined. Please specify a url in your BoxRefresh source option.");this._setUpListeners(),this.load()};f.prototype.load=function(){this._addOverlay(),this.options.onLoadStart.call(a(this)),a.get(this.options.source,this.options.params,function(b){this.options.loadInContent&&a(this.options.content).html(b),this.options.onLoadDone.call(a(this),b),this._removeOverlay()}.bind(this),""!==this.options.responseType&&this.options.responseType)},f.prototype._setUpListeners=function(){a(this.element).on("click",e.trigger,function(a){a&&a.preventDefault(),this.load()}.bind(this))},f.prototype._addOverlay=function(){a(this.element).append(this.$overlay)},f.prototype._removeOverlay=function(){a(this.element).remove(this.$overlay)};var g=a.fn.boxRefresh;a.fn.boxRefresh=b,a.fn.boxRefresh.Constructor=f,a.fn.boxRefresh.noConflict=function(){return a.fn.boxRefresh=g,this},a(window).on("load",function(){a(e.data).each(function(){b.call(a(this))})})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var g=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new h(e,g))}if("string"==typeof b){if(void 0===f[b])throw new Error("No method named "+b);f[b]()}})}var c="lte.boxwidget",d={animationSpeed:500,collapseTrigger:'[data-widget="collapse"]',removeTrigger:'[data-widget="remove"]',collapseIcon:"fa-minus",expandIcon:"fa-plus",removeIcon:"fa-times"},e={data:".box",collapsed:".collapsed-box",body:".box-body",footer:".box-footer",tools:".box-tools"},f={collapsed:"collapsed-box"},g={collapsed:"collapsed.boxwidget",expanded:"expanded.boxwidget",removed:"removed.boxwidget"},h=function(a,b){this.element=a,this.options=b,this._setUpListeners()};h.prototype.toggle=function(){a(this.element).is(e.collapsed)?this.expand():this.collapse()},h.prototype.expand=function(){var b=a.Event(g.expanded),c=this.options.collapseIcon,d=this.options.expandIcon;a(this.element).removeClass(f.collapsed),a(this.element).find(e.tools).find("."+d).removeClass(d).addClass(c),a(this.element).find(e.body+", "+e.footer).slideDown(this.options.animationSpeed,function(){a(this.element).trigger(b)}.bind(this))},h.prototype.collapse=function(){var b=a.Event(g.collapsed),c=this.options.collapseIcon,d=this.options.expandIcon;a(this.element).find(e.tools).find("."+c).removeClass(c).addClass(d),a(this.element).find(e.body+", "+e.footer).slideUp(this.options.animationSpeed,function(){a(this.element).addClass(f.collapsed),a(this.element).trigger(b)}.bind(this))},h.prototype.remove=function(){var b=a.Event(g.removed);a(this.element).slideUp(this.options.animationSpeed,function(){a(this.element).trigger(b),a(this.element).remove()}.bind(this))},h.prototype._setUpListeners=function(){var b=this;a(this.element).on("click",this.options.collapseTrigger,function(a){a&&a.preventDefault(),b.toggle()}),a(this.element).on("click",this.options.removeTrigger,function(a){a&&a.preventDefault(),b.remove()})};var i=a.fn.boxWidget;a.fn.boxWidget=b,a.fn.boxWidget.Constructor=h,a.fn.boxWidget.noConflict=function(){return a.fn.boxWidget=i,this},a(window).on("load",function(){a(e.data).each(function(){b.call(a(this))})})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var g=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new h(e,g))}"string"==typeof b&&f.toggle()})}var c="lte.controlsidebar",d={slide:!0},e={sidebar:".control-sidebar",data:'[data-toggle="control-sidebar"]',open:".control-sidebar-open",bg:".control-sidebar-bg",wrapper:".wrapper",content:".content-wrapper",boxed:".layout-boxed"},f={open:"control-sidebar-open",fixed:"fixed"},g={collapsed:"collapsed.controlsidebar",expanded:"expanded.controlsidebar"},h=function(a,b){this.element=a,this.options=b,this.hasBindedResize=!1,this.init()};h.prototype.init=function(){a(this.element).is(e.data)||a(this).on("click",this.toggle),this.fix(),a(window).resize(function(){this.fix()}.bind(this))},h.prototype.toggle=function(b){b&&b.preventDefault(),this.fix(),a(e.sidebar).is(e.open)||a("body").is(e.open)?this.collapse():this.expand()},h.prototype.expand=function(){this.options.slide?a(e.sidebar).addClass(f.open):a("body").addClass(f.open),a(this.element).trigger(a.Event(g.expanded))},h.prototype.collapse=function(){a("body, "+e.sidebar).removeClass(f.open),a(this.element).trigger(a.Event(g.collapsed))},h.prototype.fix=function(){a("body").is(e.boxed)&&this._fixForBoxed(a(e.bg))},h.prototype._fixForBoxed=function(b){b.css({position:"absolute",height:a(e.wrapper).height()})};var i=a.fn.controlSidebar;a.fn.controlSidebar=b,a.fn.controlSidebar.Constructor=h,a.fn.controlSidebar.noConflict=function(){return a.fn.controlSidebar=i,this},a(document).on("click",e.data,function(c){c&&c.preventDefault(),b.call(a(this),"toggle")})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data(c);e||d.data(c,e=new f(d)),"string"==typeof b&&e.toggle(d)})}var c="lte.directchat",d={data:'[data-widget="chat-pane-toggle"]',box:".direct-chat"},e={open:"direct-chat-contacts-open"},f=function(a){this.element=a};f.prototype.toggle=function(a){a.parents(d.box).first().toggleClass(e.open)};var g=a.fn.directChat;a.fn.directChat=b,a.fn.directChat.Constructor=f,a.fn.directChat.noConflict=function(){return a.fn.directChat=g,this},a(document).on("click",d.data,function(c){c&&c.preventDefault(),b.call(a(this),"toggle")})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var h=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new g(h))}if("string"==typeof b){if(void 0===f[b])throw new Error("No method named "+b);f[b]()}})}var c="lte.layout",d={slimscroll:!0,resetHeight:!0},e={wrapper:".wrapper",contentWrapper:".content-wrapper",layoutBoxed:".layout-boxed",mainFooter:".main-footer",mainHeader:".main-header",sidebar:".sidebar",controlSidebar:".control-sidebar",fixed:".fixed",sidebarMenu:".sidebar-menu",logo:".main-header .logo"},f={fixed:"fixed",holdTransition:"hold-transition"},g=function(a){this.options=a,this.bindedResize=!1,this.activate()};g.prototype.activate=function(){this.fix(),this.fixSidebar(),a("body").removeClass(f.holdTransition),this.options.resetHeight&&a("body, html, "+e.wrapper).css({height:"auto","min-height":"100%"}),this.bindedResize||(a(window).resize(function(){this.fix(),this.fixSidebar(),a(e.logo+", "+e.sidebar).one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",function(){this.fix(),this.fixSidebar()}.bind(this))}.bind(this)),this.bindedResize=!0),a(e.sidebarMenu).on("expanded.tree",function(){this.fix(),this.fixSidebar()}.bind(this)),a(e.sidebarMenu).on("collapsed.tree",function(){this.fix(),this.fixSidebar()}.bind(this))},g.prototype.fix=function(){a(e.layoutBoxed+" > "+e.wrapper).css("overflow","hidden");var b=a(e.mainFooter).outerHeight()||0,c=a(e.mainHeader).outerHeight()+b,d=a(window).height(),g=a(e.sidebar).height()||0;if(a("body").hasClass(f.fixed))a(e.contentWrapper).css("min-height",d-b);else{var h;d>=g?(a(e.contentWrapper).css("min-height",d-c),h=d-c):(a(e.contentWrapper).css("min-height",g),h=g);var i=a(e.controlSidebar);void 0!==i&&i.height()>h&&a(e.contentWrapper).css("min-height",i.height())}},g.prototype.fixSidebar=function(){if(!a("body").hasClass(f.fixed))return void(void 0!==a.fn.slimScroll&&a(e.sidebar).slimScroll({destroy:!0}).height("auto"));this.options.slimscroll&&void 0!==a.fn.slimScroll&&(a(e.sidebar).slimScroll({destroy:!0}).height("auto"),a(e.sidebar).slimScroll({height:a(window).height()-a(e.mainHeader).height()+"px",color:"rgba(0,0,0,0.2)",size:"3px"}))};var h=a.fn.layout;a.fn.layout=b,a.fn.layout.Constuctor=g,a.fn.layout.noConflict=function(){return a.fn.layout=h,this},a(window).on("load",function(){b.call(a("body"))})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var g=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new h(g))}"toggle"==b&&f.toggle()})}var c="lte.pushmenu",d={collapseScreenSize:767,expandOnHover:!1,expandTransitionDelay:200},e={collapsed:".sidebar-collapse",open:".sidebar-open",mainSidebar:".main-sidebar",contentWrapper:".content-wrapper",searchInput:".sidebar-form .form-control",button:'[data-toggle="push-menu"]',mini:".sidebar-mini",expanded:".sidebar-expanded-on-hover",layoutFixed:".fixed"},f={collapsed:"sidebar-collapse",open:"sidebar-open",mini:"sidebar-mini",expanded:"sidebar-expanded-on-hover",expandFeature:"sidebar-mini-expand-feature",layoutFixed:"fixed"},g={expanded:"expanded.pushMenu",collapsed:"collapsed.pushMenu"},h=function(a){this.options=a,this.init()};h.prototype.init=function(){(this.options.expandOnHover||a("body").is(e.mini+e.layoutFixed))&&(this.expandOnHover(),a("body").addClass(f.expandFeature)),a(e.contentWrapper).click(function(){a(window).width()<=this.options.collapseScreenSize&&a("body").hasClass(f.open)&&this.close()}.bind(this)),a(e.searchInput).click(function(a){a.stopPropagation()})},h.prototype.toggle=function(){var b=a(window).width(),c=!a("body").hasClass(f.collapsed);b<=this.options.collapseScreenSize&&(c=a("body").hasClass(f.open)),c?this.close():this.open()},h.prototype.open=function(){a(window).width()>this.options.collapseScreenSize?a("body").removeClass(f.collapsed).trigger(a.Event(g.expanded)):a("body").addClass(f.open).trigger(a.Event(g.expanded))},h.prototype.close=function(){a(window).width()>this.options.collapseScreenSize?a("body").addClass(f.collapsed).trigger(a.Event(g.collapsed)):a("body").removeClass(f.open+" "+f.collapsed).trigger(a.Event(g.collapsed))},h.prototype.expandOnHover=function(){a(e.mainSidebar).hover(function(){a("body").is(e.mini+e.collapsed)&&a(window).width()>this.options.collapseScreenSize&&this.expand()}.bind(this),function(){a("body").is(e.expanded)&&this.collapse()}.bind(this))},h.prototype.expand=function(){setTimeout(function(){a("body").removeClass(f.collapsed).addClass(f.expanded)},this.options.expandTransitionDelay)},h.prototype.collapse=function(){setTimeout(function(){a("body").removeClass(f.expanded).addClass(f.collapsed)},this.options.expandTransitionDelay)};var i=a.fn.pushMenu;a.fn.pushMenu=b,a.fn.pushMenu.Constructor=h,a.fn.pushMenu.noConflict=function(){return a.fn.pushMenu=i,this},a(document).on("click",e.button,function(c){c.preventDefault(),b.call(a(this),"toggle")}),a(window).on("load",function(){b.call(a(e.button))})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var h=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new g(e,h))}if("string"==typeof f){if(void 0===f[b])throw new Error("No method named "+b);f[b]()}})}var c="lte.todolist",d={onCheck:function(a){return a},onUnCheck:function(a){return a}},e={data:'[data-widget="todo-list"]'},f={done:"done"},g=function(a,b){this.element=a,this.options=b,this._setUpListeners()};g.prototype.toggle=function(a){if(a.parents(e.li).first().toggleClass(f.done),!a.prop("checked"))return void this.unCheck(a);this.check(a)},g.prototype.check=function(a){this.options.onCheck.call(a)},g.prototype.unCheck=function(a){this.options.onUnCheck.call(a)},g.prototype._setUpListeners=function(){var b=this;a(this.element).on("change ifChanged","input:checkbox",function(){b.toggle(a(this))})};var h=a.fn.todoList;a.fn.todoList=b,a.fn.todoList.Constructor=g,a.fn.todoList.noConflict=function(){return a.fn.todoList=h,this},a(window).on("load",function(){a(e.data).each(function(){b.call(a(this))})})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this);if(!e.data(c)){var f=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,new h(e,f))}})}var c="lte.tree",d={animationSpeed:500,accordion:!0,followLink:!1,trigger:".treeview a"},e={tree:".tree",treeview:".treeview",treeviewMenu:".treeview-menu",open:".menu-open, .active",li:"li",data:'[data-widget="tree"]',active:".active"},f={open:"menu-open",tree:"tree"},g={collapsed:"collapsed.tree",expanded:"expanded.tree"},h=function(b,c){this.element=b,this.options=c,a(this.element).addClass(f.tree),a(e.treeview+e.active,this.element).addClass(f.open),this._setUpListeners()};h.prototype.toggle=function(a,b){var c=a.next(e.treeviewMenu),d=a.parent(),g=d.hasClass(f.open);d.is(e.treeview)&&(this.options.followLink&&"#"!=a.attr("href")||b.preventDefault(),g?this.collapse(c,d):this.expand(c,d))},h.prototype.expand=function(b,c){var d=a.Event(g.expanded);if(this.options.accordion){var h=c.siblings(e.open),i=h.children(e.treeviewMenu);this.collapse(i,h)}c.addClass(f.open),b.slideDown(this.options.animationSpeed,function(){a(this.element).trigger(d)}.bind(this))},h.prototype.collapse=function(b,c){var d=a.Event(g.collapsed);b.find(e.open).removeClass(f.open),c.removeClass(f.open),b.slideUp(this.options.animationSpeed,function(){b.find(e.open+" > "+e.treeview).slideUp(),a(this.element).trigger(d)}.bind(this))},h.prototype._setUpListeners=function(){var b=this;a(this.element).on("click",this.options.trigger,function(c){b.toggle(a(this),c)})};var i=a.fn.tree;a.fn.tree=b,a.fn.tree.Constructor=h,a.fn.tree.noConflict=function(){return a.fn.tree=i,this},a(window).on("load",function(){a(e.data).each(function(){b.call(a(this))})})}(jQuery); -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Easy AdminLTE integration with Laravel 5 2 | 3 | [![Latest Version on Packagist](https://img.shields.io/packagist/v/jeroennoten/Laravel-AdminLTE.svg?style=flat-square)](https://packagist.org/packages/jeroennoten/Laravel-AdminLTE) 4 | [![Build Status](https://travis-ci.org/jeroennoten/Laravel-AdminLTE.svg?branch=master)](https://travis-ci.org/jeroennoten/Laravel-AdminLTE) 5 | [![Quality Score](https://img.shields.io/scrutinizer/g/jeroennoten/Laravel-AdminLTE.svg?style=flat-square)](https://scrutinizer-ci.com/g/jeroennoten/Laravel-AdminLTE) 6 | [![StyleCI](https://styleci.io/repos/38200433/shield?branch=master)](https://styleci.io/repos/38200433) 7 | [![Total Downloads](https://img.shields.io/packagist/dt/jeroennoten/Laravel-AdminLTE.svg?style=flat-square)](https://packagist.org/packages/jeroennoten/Laravel-AdminLTE) 8 | 9 | This package provides an easy way to quickly set up [AdminLTE](https://almsaeedstudio.com) with Laravel 5. It has no requirements and dependencies besides Laravel, so you can start building your admin panel immediately. The package just provides a Blade template that you can extend and advanced menu configuration possibilities. A replacement for the `make:auth` Artisan command that uses AdminLTE styled views instead of the default Laravel ones is also included. 10 | 11 | 1. [Installation](#1-installation) 12 | 2. [Updating](#2-updating) 13 | 3. [Usage](#3-usage) 14 | 4. [The `make:adminlte` artisan command](#4-the-makeadminlte-artisan-command) 15 | 1. [Using the authentication views without the `make:adminlte` command](#41-using-the-authentication-views-without-the-makeadminlte-command) 16 | 5. [Configuration](#5-configuration) 17 | 1. [Menu](#51-menu) 18 | - [Custom menu filters](#custom-menu-filters) 19 | - [Menu configuration at runtime](#menu-configuration-at-runtime) 20 | - [Active menu items](#active-menu-items) 21 | 2. [Plugins](#52-plugins) 22 | 6. [Translations](#6-translations) 23 | 7. [Customize views](#7-customize-views) 24 | 8. [Issues, Questions and Pull Requests](#8-issues-questions-and-pull-requests) 25 | 26 | ## 1. Installation 27 | 28 | 1. Require the package using composer: 29 | 30 | ``` 31 | composer require jeroennoten/laravel-adminlte 32 | ``` 33 | 34 | 2. Add the service provider to the `providers` in `config/app.php`: 35 | 36 | > Laravel 5.5 uses Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider 37 | 38 | ```php 39 | JeroenNoten\LaravelAdminLte\ServiceProvider::class, 40 | ``` 41 | 42 | 3. Publish the public assets: 43 | 44 | ``` 45 | php artisan vendor:publish --provider="JeroenNoten\LaravelAdminLte\ServiceProvider" --tag=assets 46 | ``` 47 | 48 | ## 2. Updating 49 | 50 | 1. To update this package, first update the composer package: 51 | 52 | ``` 53 | composer update jeroennoten/laravel-adminlte 54 | ``` 55 | 56 | 2. Then, publish the public assets with the `--force` flag to overwrite existing files 57 | 58 | ``` 59 | php artisan vendor:publish --provider="JeroenNoten\LaravelAdminLte\ServiceProvider" --tag=assets --force 60 | ``` 61 | 62 | ## 3. Usage 63 | 64 | To use the template, create a blade file and extend the layout with `@extends('adminlte::page')`. 65 | This template yields the following sections: 66 | 67 | - `title`: for in the `` tag 68 | - `content_header`: title of the page, above the content 69 | - `content`: all of the page's content 70 | - `css`: extra stylesheets (located in `<head>`) 71 | - `js`: extra javascript (just before `</body>`) 72 | 73 | All sections are in fact optional. Your blade template could look like the following. 74 | 75 | ```html 76 | {{-- resources/views/admin/dashboard.blade.php --}} 77 | 78 | @extends('adminlte::page') 79 | 80 | @section('title', 'Dashboard') 81 | 82 | @section('content_header') 83 | <h1>Dashboard</h1> 84 | @stop 85 | 86 | @section('content') 87 | <p>Welcome to this beautiful admin panel.</p> 88 | @stop 89 | 90 | @section('css') 91 | <link rel="stylesheet" href="/css/admin_custom.css"> 92 | @stop 93 | 94 | @section('js') 95 | <script> console.log('Hi!'); </script> 96 | @stop 97 | ``` 98 | 99 | Note that in Laravel 5.2 or higher you can also use `@stack` directive for `css` and `javascript`: 100 | 101 | ```html 102 | {{-- resources/views/admin/dashboard.blade.php --}} 103 | 104 | @push('css') 105 | 106 | @push('js') 107 | ``` 108 | 109 | You now just return this view from your controller, as usual. Check out [AdminLTE](https://almsaeedstudio.com) to find out how to build beautiful content for your admin panel. 110 | 111 | ## 4. The `make:adminlte` artisan command 112 | 113 | > Note: only for Laravel 5.2 and higher 114 | 115 | This package ships with a `make:adminlte` command that behaves exactly like `make:auth` (introduced in Laravel 5.2) but replaces the authentication views with AdminLTE style views. 116 | 117 | ``` 118 | php artisan make:adminlte 119 | ``` 120 | 121 | This command should be used on fresh applications, just like the `make:auth` command 122 | 123 | ### 4.1 Using the authentication views without the `make:adminlte` command 124 | 125 | If you want to use the included authentication related views manually, you can create the following files and only add one line to each file: 126 | 127 | - `resources/views/auth/login.blade.php`: 128 | ``` 129 | @extends('adminlte::login') 130 | ``` 131 | - `resources/views/auth/register.blade.php` 132 | ``` 133 | @extends('adminlte::register') 134 | ``` 135 | - `resources/views/auth/passwords/email.blade.php` 136 | ``` 137 | @extends('adminlte::passwords.email') 138 | ``` 139 | - `resources/views/auth/passwords/reset.blade.php` 140 | ``` 141 | @extends('adminlte::passwords.reset') 142 | ``` 143 | 144 | By default, the login form contains a link to the registration form. 145 | If you don't want a registration form, set the `register_url` setting to `null` and the link will not be displayed. 146 | 147 | ## 5. Configuration 148 | 149 | First, publish the configuration file: 150 | 151 | ``` 152 | php artisan vendor:publish --provider="JeroenNoten\LaravelAdminLte\ServiceProvider" --tag=config 153 | ``` 154 | 155 | Now, edit `config/adminlte.php` to configure the title, skin, menu, URLs etc. All configuration options are explained in the comments. However, I want to shed some light on the `menu` configuration. 156 | 157 | ### 5.1 Menu 158 | 159 | You can configure your menu as follows: 160 | 161 | ```php 162 | 'menu' => [ 163 | 'MAIN NAVIGATION', 164 | [ 165 | 'text' => 'Blog', 166 | 'url' => 'admin/blog', 167 | ], 168 | [ 169 | 'text' => 'Pages', 170 | 'url' => 'admin/pages', 171 | 'icon' => 'file' 172 | ], 173 | [ 174 | 'text' => 'Show my website', 175 | 'url' => '/', 176 | 'target' => '_blank' 177 | ], 178 | 'ACCOUNT SETTINGS', 179 | [ 180 | 'text' => 'Profile', 181 | 'route' => 'admin.profile', 182 | 'icon' => 'user' 183 | ], 184 | [ 185 | 'text' => 'Change Password', 186 | 'route' => 'admin.password', 187 | 'icon' => 'lock' 188 | ], 189 | ], 190 | ``` 191 | 192 | With a single string, you specify a menu header item to separate the items. 193 | With an array, you specify a menu item. `text` and `url` or `route` are required attributes. 194 | The `icon` is optional, you get an [open circle](http://fontawesome.io/icon/circle-o/) if you leave it out. 195 | The available icons that you can use are those from [Font Awesome](http://fontawesome.io/icons/). 196 | Just specify the name of the icon and it will appear in front of your menu item. 197 | 198 | Use the `can` option if you want conditionally show the menu item. This integrates with Laravel's `Gate` functionality. If you need to conditionally show headers as well, you need to wrap it in an array like other menu items, using the `header` option: 199 | 200 | ```php 201 | [ 202 | [ 203 | 'header' => 'BLOG', 204 | 'can' => 'manage-blog' 205 | ], 206 | [ 207 | 'text' => 'Add new post', 208 | 'url' => 'admin/blog/new', 209 | 'can' => 'add-blog-post' 210 | ], 211 | ] 212 | ``` 213 | 214 | #### Custom Menu Filters 215 | 216 | If you need custom filters, you can easily add your own menu filters to this package. This can be useful when you are using a third-party package for authorization (instead of Laravel's `Gate` functionality). 217 | 218 | For example with Laratrust: 219 | 220 | ```php 221 | <?php 222 | 223 | namespace MyApp; 224 | 225 | use JeroenNoten\LaravelAdminLte\Menu\Builder; 226 | use JeroenNoten\LaravelAdminLte\Menu\Filters\FilterInterface; 227 | use Laratrust; 228 | 229 | class MyMenuFilter implements FilterInterface 230 | { 231 | public function transform($item, Builder $builder) 232 | { 233 | if (isset($item['permission']) && ! Laratrust::can($item['permission'])) { 234 | return false; 235 | } 236 | 237 | return $item; 238 | } 239 | } 240 | ``` 241 | 242 | And then add to `config/adminlte.php`: 243 | 244 | ```php 245 | 'filters' => [ 246 | JeroenNoten\LaravelAdminLte\Menu\Filters\ActiveFilter::class, 247 | JeroenNoten\LaravelAdminLte\Menu\Filters\HrefFilter::class, 248 | JeroenNoten\LaravelAdminLte\Menu\Filters\SubmenuFilter::class, 249 | JeroenNoten\LaravelAdminLte\Menu\Filters\ClassesFilter::class, 250 | //JeroenNoten\LaravelAdminLte\Menu\Filters\GateFilter::class, Comment this line out 251 | MyApp\MyMenuFilter::class, 252 | ] 253 | ``` 254 | 255 | #### Menu configuration at runtime 256 | 257 | It is also possible to configure the menu at runtime, e.g. in the boot of any service provider. 258 | Use this if your menu is not static, for example when it depends on your database or the locale. 259 | It is also possible to combine both approaches. The menus will simply be concatenated and the order of service providers 260 | determines the order in the menu. 261 | 262 | To configure the menu at runtime, register a handler or callback for the `MenuBuilding` event, for example in the `boot()` method of a service provider: 263 | 264 | ```php 265 | use Illuminate\Contracts\Events\Dispatcher; 266 | use JeroenNoten\LaravelAdminLte\Events\BuildingMenu; 267 | 268 | class AppServiceProvider extends ServiceProvider 269 | { 270 | 271 | public function boot(Dispatcher $events) 272 | { 273 | $events->listen(BuildingMenu::class, function (BuildingMenu $event) { 274 | $event->menu->add('MAIN NAVIGATION'); 275 | $event->menu->add([ 276 | 'text' => 'Blog', 277 | 'url' => 'admin/blog', 278 | ]); 279 | }); 280 | } 281 | 282 | } 283 | ``` 284 | The configuration options are the same as in the static configuration files. 285 | 286 | A more practical example that actually uses translations and the database: 287 | 288 | ```php 289 | public function boot(Dispatcher $events) 290 | { 291 | $events->listen(BuildingMenu::class, function (BuildingMenu $event) { 292 | $event->menu->add(trans('menu.pages')); 293 | 294 | $items = Page::all()->map(function (Page $page) { 295 | return [ 296 | 'text' => $page['title'], 297 | 'url' => route('admin.pages.edit', $page) 298 | ]; 299 | }); 300 | 301 | $event->menu->add(...$items); 302 | }); 303 | } 304 | ``` 305 | 306 | This event-based approach is used to make sure that your code that builds the menu runs only when the admin panel is actually displayed and not on every request. 307 | 308 | #### Active menu items 309 | 310 | By default, a menu item is considered active if any of the following holds: 311 | - The current path matches the `url` parameter 312 | - The current path is a sub-path of the `url` parameter 313 | - If it has a submenu containing an active menu item 314 | 315 | To override this behavior, you can specify an `active` parameter with an array of active URLs, asterisks and regular expressions are supported. Example: 316 | 317 | ```php 318 | [ 319 | 'text' => 'Pages' 320 | 'url' => 'pages', 321 | 'active' => ['pages', 'content', 'content/*'] 322 | ] 323 | ``` 324 | 325 | ### 5.2 Plugins 326 | 327 | By default the [DataTables](https://datatables.net/) plugin is supported. If set to `true`, the necessary javascript CDN script tags will automatically be injected into the `adminlte::page.blade` file. 328 | 329 | ```php 330 | 'plugins' => [ 331 | 'datatables' => true, 332 | ] 333 | ``` 334 | 335 | Also the [Select2](https://select2.github.io/) plugin is supported. If set to `true`, the necessary javascript CDN script tags will automatically be injected into the `adminlte::page.blade` file. 336 | 337 | ```php 338 | 'plugins' => [ 339 | 'datatables' => true, 340 | 'select2' => true, 341 | ] 342 | ``` 343 | 344 | Also the [ChartJS](https://www.chartjs.org/) plugin is supported. If set to `true`, the necessary javascript CDN script tags will automatically be injected into the `adminlte::page.blade` file. 345 | 346 | ```php 347 | 'plugins' => [ 348 | 'datatables' => true, 349 | 'chartjs' => true, 350 | ] 351 | ``` 352 | 353 | 354 | ## 6. Translations 355 | 356 | At the moment, English, German, French, Dutch, Portuguese and Spanish translations are available out of the box. 357 | Just specifiy the language in `config/app.php`. 358 | If you need to modify the texts or add other languages, you can publish the language files: 359 | 360 | ``` 361 | php artisan vendor:publish --provider="JeroenNoten\LaravelAdminLte\ServiceProvider" --tag=translations 362 | ``` 363 | 364 | Now, you can edit translations or add languages in `resources/lang/vendor/adminlte`. 365 | 366 | ## 7. Customize views 367 | 368 | If you need full control over the provided views, you can publish them: 369 | 370 | ``` 371 | php artisan vendor:publish --provider="JeroenNoten\LaravelAdminLte\ServiceProvider" --tag=views 372 | ``` 373 | 374 | Now, you can edit the views in `resources/views/vendor/adminlte`. 375 | 376 | ## 8. Issues, Questions and Pull Requests 377 | 378 | You can report issues and ask questions in the [issues section](https://github.com/jeroennoten/Laravel-AdminLTE/issues). Please start your issue with `ISSUE: ` and your question with `QUESTION: ` 379 | 380 | If you have a question, check the closed issues first. Over time, I've been able to answer quite a few. 381 | 382 | To submit a Pull Request, please fork this repository, create a new branch and commit your new/updated code in there. Then open a Pull Request from your new branch. Refer to [this guide](https://help.github.com/articles/about-pull-requests/) for more info. 383 | 384 | -------------------------------------------------------------------------------- /resources/assets/plugins/iCheck/icheck.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * iCheck v1.0.1, http://git.io/arlzeA 3 | * ================================= 4 | * Powerful jQuery and Zepto plugin for checkboxes and radio buttons customization 5 | * 6 | * (c) 2013 Damir Sultanov, http://fronteed.com 7 | * MIT Licensed 8 | */ 9 | 10 | (function($) { 11 | 12 | // Cached vars 13 | var _iCheck = 'iCheck', 14 | _iCheckHelper = _iCheck + '-helper', 15 | _checkbox = 'checkbox', 16 | _radio = 'radio', 17 | _checked = 'checked', 18 | _unchecked = 'un' + _checked, 19 | _disabled = 'disabled', 20 | _determinate = 'determinate', 21 | _indeterminate = 'in' + _determinate, 22 | _update = 'update', 23 | _type = 'type', 24 | _click = 'click', 25 | _touch = 'touchbegin.i touchend.i', 26 | _add = 'addClass', 27 | _remove = 'removeClass', 28 | _callback = 'trigger', 29 | _label = 'label', 30 | _cursor = 'cursor', 31 | _mobile = /ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent); 32 | 33 | // Plugin init 34 | $.fn[_iCheck] = function(options, fire) { 35 | 36 | // Walker 37 | var handle = 'input[type="' + _checkbox + '"], input[type="' + _radio + '"]', 38 | stack = $(), 39 | walker = function(object) { 40 | object.each(function() { 41 | var self = $(this); 42 | 43 | if (self.is(handle)) { 44 | stack = stack.add(self); 45 | } else { 46 | stack = stack.add(self.find(handle)); 47 | } 48 | }); 49 | }; 50 | 51 | // Check if we should operate with some method 52 | if (/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(options)) { 53 | 54 | // Normalize method's name 55 | options = options.toLowerCase(); 56 | 57 | // Find checkboxes and radio buttons 58 | walker(this); 59 | 60 | return stack.each(function() { 61 | var self = $(this); 62 | 63 | if (options == 'destroy') { 64 | tidy(self, 'ifDestroyed'); 65 | } else { 66 | operate(self, true, options); 67 | } 68 | // Fire method's callback 69 | if ($.isFunction(fire)) { 70 | fire(); 71 | } 72 | }); 73 | 74 | // Customization 75 | } else if (typeof options == 'object' || !options) { 76 | 77 | // Check if any options were passed 78 | var settings = $.extend({ 79 | checkedClass: _checked, 80 | disabledClass: _disabled, 81 | indeterminateClass: _indeterminate, 82 | labelHover: true, 83 | aria: false 84 | }, options), 85 | 86 | selector = settings.handle, 87 | hoverClass = settings.hoverClass || 'hover', 88 | focusClass = settings.focusClass || 'focus', 89 | activeClass = settings.activeClass || 'active', 90 | labelHover = !!settings.labelHover, 91 | labelHoverClass = settings.labelHoverClass || 'hover', 92 | 93 | // Setup clickable area 94 | area = ('' + settings.increaseArea).replace('%', '') | 0; 95 | 96 | // Selector limit 97 | if (selector == _checkbox || selector == _radio) { 98 | handle = 'input[type="' + selector + '"]'; 99 | } 100 | // Clickable area limit 101 | if (area < -50) { 102 | area = -50; 103 | } 104 | // Walk around the selector 105 | walker(this); 106 | 107 | return stack.each(function() { 108 | var self = $(this); 109 | 110 | // If already customized 111 | tidy(self); 112 | 113 | var node = this, 114 | id = node.id, 115 | 116 | // Layer styles 117 | offset = -area + '%', 118 | size = 100 + (area * 2) + '%', 119 | layer = { 120 | position: 'absolute', 121 | top: offset, 122 | left: offset, 123 | display: 'block', 124 | width: size, 125 | height: size, 126 | margin: 0, 127 | padding: 0, 128 | background: '#fff', 129 | border: 0, 130 | opacity: 0 131 | }, 132 | 133 | // Choose how to hide input 134 | hide = _mobile ? { 135 | position: 'absolute', 136 | visibility: 'hidden' 137 | } : area ? layer : { 138 | position: 'absolute', 139 | opacity: 0 140 | }, 141 | 142 | // Get proper class 143 | className = node[_type] == _checkbox ? settings.checkboxClass || 'i' + _checkbox : settings.radioClass || 'i' + _radio, 144 | 145 | // Find assigned labels 146 | label = $(_label + '[for="' + id + '"]').add(self.closest(_label)), 147 | 148 | // Check ARIA option 149 | aria = !!settings.aria, 150 | 151 | // Set ARIA placeholder 152 | ariaID = _iCheck + '-' + Math.random().toString(36).replace('0.', ''), 153 | 154 | // Parent & helper 155 | parent = '<div class="' + className + '" ' + (aria ? 'role="' + node[_type] + '" ' : ''), 156 | helper; 157 | 158 | // Set ARIA "labelledby" 159 | if (label.length && aria) { 160 | label.each(function() { 161 | parent += 'aria-labelledby="'; 162 | 163 | if (this.id) { 164 | parent += this.id; 165 | } else { 166 | this.id = ariaID; 167 | parent += ariaID; 168 | } 169 | 170 | parent += '"'; 171 | }); 172 | } 173 | // Wrap input 174 | parent = self.wrap(parent + '/>')[_callback]('ifCreated').parent().append(settings.insert); 175 | 176 | // Layer addition 177 | helper = $('<ins class="' + _iCheckHelper + '"/>').css(layer).appendTo(parent); 178 | 179 | // Finalize customization 180 | self.data(_iCheck, {o: settings, s: self.attr('style')}).css(hide); 181 | !!settings.inheritClass && parent[_add](node.className || ''); 182 | !!settings.inheritID && id && parent.attr('id', _iCheck + '-' + id); 183 | parent.css('position') == 'static' && parent.css('position', 'relative'); 184 | operate(self, true, _update); 185 | 186 | // Label events 187 | if (label.length) { 188 | label.on(_click + '.i mouseover.i mouseout.i ' + _touch, function(event) { 189 | var type = event[_type], 190 | item = $(this); 191 | 192 | // Do nothing if input is disabled 193 | if (!node[_disabled]) { 194 | 195 | // Click 196 | if (type == _click) { 197 | if ($(event.target).is('a')) { 198 | return; 199 | } 200 | operate(self, false, true); 201 | 202 | // Hover state 203 | } else if (labelHover) { 204 | 205 | // mouseout|touchend 206 | if (/ut|nd/.test(type)) { 207 | parent[_remove](hoverClass); 208 | item[_remove](labelHoverClass); 209 | } else { 210 | parent[_add](hoverClass); 211 | item[_add](labelHoverClass); 212 | } 213 | } 214 | if (_mobile) { 215 | event.stopPropagation(); 216 | } else { 217 | return false; 218 | } 219 | } 220 | }); 221 | } 222 | // Input events 223 | self.on(_click + '.i focus.i blur.i keyup.i keydown.i keypress.i', function(event) { 224 | var type = event[_type], 225 | key = event.keyCode; 226 | 227 | // Click 228 | if (type == _click) { 229 | return false; 230 | 231 | // Keydown 232 | } else if (type == 'keydown' && key == 32) { 233 | if (!(node[_type] == _radio && node[_checked])) { 234 | if (node[_checked]) { 235 | off(self, _checked); 236 | } else { 237 | on(self, _checked); 238 | } 239 | } 240 | return false; 241 | 242 | // Keyup 243 | } else if (type == 'keyup' && node[_type] == _radio) { 244 | !node[_checked] && on(self, _checked); 245 | 246 | // Focus/blur 247 | } else if (/us|ur/.test(type)) { 248 | parent[type == 'blur' ? _remove : _add](focusClass); 249 | } 250 | }); 251 | 252 | // Helper events 253 | helper.on(_click + ' mousedown mouseup mouseover mouseout ' + _touch, function(event) { 254 | var type = event[_type], 255 | 256 | // mousedown|mouseup 257 | toggle = /wn|up/.test(type) ? activeClass : hoverClass; 258 | 259 | // Do nothing if input is disabled 260 | if (!node[_disabled]) { 261 | 262 | // Click 263 | if (type == _click) { 264 | operate(self, false, true); 265 | 266 | // Active and hover states 267 | } else { 268 | 269 | // State is on 270 | if (/wn|er|in/.test(type)) { 271 | 272 | // mousedown|mouseover|touchbegin 273 | parent[_add](toggle); 274 | 275 | // State is off 276 | } else { 277 | parent[_remove](toggle + ' ' + activeClass); 278 | } 279 | // Label hover 280 | if (label.length && labelHover && toggle == hoverClass) { 281 | 282 | // mouseout|touchend 283 | label[/ut|nd/.test(type) ? _remove : _add](labelHoverClass); 284 | } 285 | } 286 | if (_mobile) { 287 | event.stopPropagation(); 288 | } else { 289 | return false; 290 | } 291 | } 292 | }); 293 | }); 294 | } else { 295 | return this; 296 | } 297 | }; 298 | 299 | // Do something with inputs 300 | function operate(input, direct, method) { 301 | var node = input[0], 302 | state = /er/.test(method) ? _indeterminate : /bl/.test(method) ? _disabled : _checked, 303 | active = method == _update ? { 304 | checked: node[_checked], 305 | disabled: node[_disabled], 306 | indeterminate: input.attr(_indeterminate) == 'true' || input.attr(_determinate) == 'false' 307 | } : node[state]; 308 | 309 | // Check, disable or indeterminate 310 | if (/^(ch|di|in)/.test(method) && !active) { 311 | on(input, state); 312 | 313 | // Uncheck, enable or determinate 314 | } else if (/^(un|en|de)/.test(method) && active) { 315 | off(input, state); 316 | 317 | // Update 318 | } else if (method == _update) { 319 | 320 | // Handle states 321 | for (var state in active) { 322 | if (active[state]) { 323 | on(input, state, true); 324 | } else { 325 | off(input, state, true); 326 | } 327 | } 328 | } else if (!direct || method == 'toggle') { 329 | 330 | // Helper or label was clicked 331 | if (!direct) { 332 | input[_callback]('ifClicked'); 333 | } 334 | // Toggle checked state 335 | if (active) { 336 | if (node[_type] !== _radio) { 337 | off(input, state); 338 | } 339 | } else { 340 | on(input, state); 341 | } 342 | } 343 | } 344 | // Add checked, disabled or indeterminate state 345 | function on(input, state, keep) { 346 | var node = input[0], 347 | parent = input.parent(), 348 | checked = state == _checked, 349 | indeterminate = state == _indeterminate, 350 | disabled = state == _disabled, 351 | callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled', 352 | regular = option(input, callback + capitalize(node[_type])), 353 | specific = option(input, state + capitalize(node[_type])); 354 | 355 | // Prevent unnecessary actions 356 | if (node[state] !== true) { 357 | 358 | // Toggle assigned radio buttons 359 | if (!keep && state == _checked && node[_type] == _radio && node.name) { 360 | var form = input.closest('form'), 361 | inputs = 'input[name="' + node.name + '"]'; 362 | 363 | inputs = form.length ? form.find(inputs) : $(inputs); 364 | 365 | inputs.each(function() { 366 | if (this !== node && $(this).data(_iCheck)) { 367 | off($(this), state); 368 | } 369 | }); 370 | } 371 | // Indeterminate state 372 | if (indeterminate) { 373 | 374 | // Add indeterminate state 375 | node[state] = true; 376 | 377 | // Remove checked state 378 | if (node[_checked]) { 379 | off(input, _checked, 'force'); 380 | } 381 | // Checked or disabled state 382 | } else { 383 | 384 | // Add checked or disabled state 385 | if (!keep) { 386 | node[state] = true; 387 | } 388 | // Remove indeterminate state 389 | if (checked && node[_indeterminate]) { 390 | off(input, _indeterminate, false); 391 | } 392 | } 393 | // Trigger callbacks 394 | callbacks(input, checked, state, keep); 395 | } 396 | // Add proper cursor 397 | if (node[_disabled] && !!option(input, _cursor, true)) { 398 | parent.find('.' + _iCheckHelper).css(_cursor, 'default'); 399 | } 400 | // Add state class 401 | parent[_add](specific || option(input, state) || ''); 402 | 403 | // Set ARIA attribute 404 | disabled ? parent.attr('aria-disabled', 'true') : parent.attr('aria-checked', indeterminate ? 'mixed' : 'true'); 405 | 406 | // Remove regular state class 407 | parent[_remove](regular || option(input, callback) || ''); 408 | } 409 | // Remove checked, disabled or indeterminate state 410 | function off(input, state, keep) { 411 | var node = input[0], 412 | parent = input.parent(), 413 | checked = state == _checked, 414 | indeterminate = state == _indeterminate, 415 | disabled = state == _disabled, 416 | callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled', 417 | regular = option(input, callback + capitalize(node[_type])), 418 | specific = option(input, state + capitalize(node[_type])); 419 | 420 | // Prevent unnecessary actions 421 | if (node[state] !== false) { 422 | 423 | // Toggle state 424 | if (indeterminate || !keep || keep == 'force') { 425 | node[state] = false; 426 | } 427 | // Trigger callbacks 428 | callbacks(input, checked, callback, keep); 429 | } 430 | // Add proper cursor 431 | if (!node[_disabled] && !!option(input, _cursor, true)) { 432 | parent.find('.' + _iCheckHelper).css(_cursor, 'pointer'); 433 | } 434 | // Remove state class 435 | parent[_remove](specific || option(input, state) || ''); 436 | 437 | // Set ARIA attribute 438 | disabled ? parent.attr('aria-disabled', 'false') : parent.attr('aria-checked', 'false'); 439 | 440 | // Add regular state class 441 | parent[_add](regular || option(input, callback) || ''); 442 | } 443 | // Remove all traces 444 | function tidy(input, callback) { 445 | if (input.data(_iCheck)) { 446 | 447 | // Remove everything except input 448 | input.parent().html(input.attr('style', input.data(_iCheck).s || '')); 449 | 450 | // Callback 451 | if (callback) { 452 | input[_callback](callback); 453 | } 454 | // Unbind events 455 | input.off('.i').unwrap(); 456 | $(_label + '[for="' + input[0].id + '"]').add(input.closest(_label)).off('.i'); 457 | } 458 | } 459 | // Get some option 460 | function option(input, state, regular) { 461 | if (input.data(_iCheck)) { 462 | return input.data(_iCheck).o[state + (regular ? '' : 'Class')]; 463 | } 464 | } 465 | // Capitalize some string 466 | function capitalize(string) { 467 | return string.charAt(0).toUpperCase() + string.slice(1); 468 | } 469 | // Executable handlers 470 | function callbacks(input, checked, callback, keep) { 471 | if (!keep) { 472 | if (checked) { 473 | input[_callback]('ifToggled'); 474 | } 475 | input[_callback]('ifChanged')[_callback]('if' + capitalize(callback)); 476 | } 477 | } 478 | })(window.jQuery || window.Zepto); 479 | --------------------------------------------------------------------------------