├── webroot ├── empty ├── img │ ├── icons.png │ ├── avatar.png │ ├── avatar2.png │ ├── avatar3.png │ ├── avatar5.png │ ├── photo1.png │ ├── photo2.png │ ├── photo3.jpg │ ├── photo4.jpg │ ├── avatar04.png │ ├── boxed-bg.jpg │ ├── boxed-bg.png │ ├── credit │ │ ├── visa.png │ │ ├── cirrus.png │ │ ├── mestro.png │ │ ├── paypal.png │ │ ├── paypal2.png │ │ ├── mastercard.png │ │ └── american-express.png │ ├── default-50x50.gif │ ├── user1-128x128.jpg │ ├── user2-160x160.jpg │ ├── user3-128x128.jpg │ ├── user4-128x128.jpg │ ├── user5-128x128.jpg │ ├── user6-128x128.jpg │ ├── user7-128x128.jpg │ └── user8-128x128.jpg ├── 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-black.css │ │ ├── skin-red-light.css │ │ ├── skin-green-light.css │ │ ├── skin-purple-light.css │ │ ├── skin-yellow-light.css │ │ ├── skin-blue-light.css │ │ └── skin-black-light.css └── js │ ├── pages │ ├── dashboard.js │ └── dashboard2.js │ ├── app.min.js │ └── demo.js ├── src ├── Template │ ├── Element │ │ ├── footer.ctp │ │ ├── Flash │ │ │ ├── error.ctp │ │ │ ├── success.ctp │ │ │ └── default.ctp │ │ ├── adminlte │ │ │ ├── footer.ctp │ │ │ ├── content.ctp │ │ │ ├── sidebar.ctp │ │ │ ├── control_sidebar.ctp │ │ │ └── header.ctp │ │ ├── nav-bar-right.ctp │ │ └── nav-bar-left.ctp │ ├── Bake │ │ ├── Template │ │ │ ├── add.ctp │ │ │ ├── edit.ctp │ │ │ ├── index.ctp │ │ │ └── view.ctp │ │ └── Element │ │ │ └── form.ctp │ └── Layout │ │ ├── default.ctp │ │ └── adminlte.ctp ├── Controller │ └── AppController.php ├── Shell │ └── PublishShell.php └── View │ └── Helper │ └── FormHelper.php ├── config └── routes.php ├── composer.json ├── phpunit.xml.dist └── README.md /webroot/empty: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /webroot/img/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/icons.png -------------------------------------------------------------------------------- /webroot/img/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/avatar.png -------------------------------------------------------------------------------- /webroot/img/avatar2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/avatar2.png -------------------------------------------------------------------------------- /webroot/img/avatar3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/avatar3.png -------------------------------------------------------------------------------- /webroot/img/avatar5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/avatar5.png -------------------------------------------------------------------------------- /webroot/img/photo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/photo1.png -------------------------------------------------------------------------------- /webroot/img/photo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/photo2.png -------------------------------------------------------------------------------- /webroot/img/photo3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/photo3.jpg -------------------------------------------------------------------------------- /webroot/img/photo4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/photo4.jpg -------------------------------------------------------------------------------- /webroot/img/avatar04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/avatar04.png -------------------------------------------------------------------------------- /webroot/img/boxed-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/boxed-bg.jpg -------------------------------------------------------------------------------- /webroot/img/boxed-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/boxed-bg.png -------------------------------------------------------------------------------- /webroot/img/credit/visa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/credit/visa.png -------------------------------------------------------------------------------- /webroot/img/credit/cirrus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/credit/cirrus.png -------------------------------------------------------------------------------- /webroot/img/credit/mestro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/credit/mestro.png -------------------------------------------------------------------------------- /webroot/img/credit/paypal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/credit/paypal.png -------------------------------------------------------------------------------- /webroot/img/credit/paypal2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/credit/paypal2.png -------------------------------------------------------------------------------- /webroot/img/default-50x50.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/default-50x50.gif -------------------------------------------------------------------------------- /webroot/img/user1-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/user1-128x128.jpg -------------------------------------------------------------------------------- /webroot/img/user2-160x160.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/user2-160x160.jpg -------------------------------------------------------------------------------- /webroot/img/user3-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/user3-128x128.jpg -------------------------------------------------------------------------------- /webroot/img/user4-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/user4-128x128.jpg -------------------------------------------------------------------------------- /webroot/img/user5-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/user5-128x128.jpg -------------------------------------------------------------------------------- /webroot/img/user6-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/user6-128x128.jpg -------------------------------------------------------------------------------- /webroot/img/user7-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/user7-128x128.jpg -------------------------------------------------------------------------------- /webroot/img/user8-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/user8-128x128.jpg -------------------------------------------------------------------------------- /webroot/img/credit/mastercard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/credit/mastercard.png -------------------------------------------------------------------------------- /webroot/img/credit/american-express.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CakePHPBrasil/TwitterBootstrap/HEAD/webroot/img/credit/american-express.png -------------------------------------------------------------------------------- /src/Template/Element/footer.ctp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /config/routes.php: -------------------------------------------------------------------------------- 1 | fallbacks('DashedRoute'); 6 | }); 7 | -------------------------------------------------------------------------------- /src/Controller/AppController.php: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/Template/Element/Flash/success.ctp: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/Template/Element/adminlte/footer.ctp: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | Copyright © 2015 Company. All rights reserved. 7 | -------------------------------------------------------------------------------- /src/Template/Element/nav-bar-right.ctp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cakephp-brasil/twitter-bootstrap", 3 | "description": "TwitterBootstrap plugin for CakePHP 3", 4 | "type": "cakephp-plugin", 5 | "require": { 6 | "php": ">=5.4.16", 7 | "cakephp/cakephp": "~3.0" 8 | }, 9 | "require-dev": { 10 | "phpunit/phpunit": "*" 11 | }, 12 | "autoload": { 13 | "psr-4": { 14 | "TwitterBootstrap\\": "src" 15 | } 16 | }, 17 | "autoload-dev": { 18 | "psr-4": { 19 | "TwitterBootstrap\\Test\\": "tests", 20 | "Cake\\Test\\": "./vendor/cakephp/cakephp/tests" 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/Template/Element/Flash/default.ctp: -------------------------------------------------------------------------------- 1 | 19 | 20 | -------------------------------------------------------------------------------- /src/Template/Bake/Template/add.ctp: -------------------------------------------------------------------------------- 1 | <% 2 | /** 3 | * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) 4 | * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) 5 | * 6 | * Licensed under The MIT License 7 | * For full copyright and license information, please see the LICENSE.txt 8 | * Redistributions of files must retain the above copyright notice. 9 | * 10 | * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) 11 | * @link http://cakephp.org CakePHP(tm) Project 12 | * @since 0.1.0 13 | * @license http://www.opensource.org/licenses/mit-license.php MIT License 14 | */ 15 | 16 | echo $this->element('form'); 17 | -------------------------------------------------------------------------------- /src/Template/Bake/Template/edit.ctp: -------------------------------------------------------------------------------- 1 | <% 2 | /** 3 | * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) 4 | * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) 5 | * 6 | * Licensed under The MIT License 7 | * For full copyright and license information, please see the LICENSE.txt 8 | * Redistributions of files must retain the above copyright notice. 9 | * 10 | * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) 11 | * @link http://cakephp.org CakePHP(tm) Project 12 | * @since 0.1.0 13 | * @license http://www.opensource.org/licenses/mit-license.php MIT License 14 | */ 15 | 16 | echo $this->element('form'); 17 | -------------------------------------------------------------------------------- /src/Template/Element/adminlte/content.ctp: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |

5 | Page Header 6 | Optional description 7 |

8 | 12 |
13 | 14 | 15 |
16 | 17 | 18 | 19 |
20 | 21 | 22 |
23 |
24 | Flash->render() ?> 25 | fetch('content') ?> 26 |
27 |
28 | 29 | -------------------------------------------------------------------------------- /src/Template/Element/nav-bar-left.ctp: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | ./tests/TestCase 18 | 19 | 20 | 21 | 22 | 23 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | ./vendor/ 36 | ./vendor/ 37 | 38 | ./tests/ 39 | ./tests/ 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /src/Shell/PublishShell.php: -------------------------------------------------------------------------------- 1 | 'Publicar todos os arquivos.' 14 | ]; 15 | 16 | public function main() 17 | { 18 | 19 | $this->out($this->nl(1)); 20 | 21 | if(empty($this->args) || !array_key_exists($this->args[0], $this->optionsPublish)){ 22 | 23 | $option = $this->_optionsPublish(); 24 | 25 | }else{ 26 | 27 | $option = $this->args[0]; 28 | 29 | } 30 | 31 | $this->out($this->nl(1)); 32 | 33 | $this->_publish($option); 34 | 35 | $this->out($this->nl(1)); 36 | 37 | } 38 | 39 | protected function _publish($option) 40 | { 41 | 42 | $folderElement = new Folder(Plugin::path('TwitterBootstrap') . DS . 'src' . DS . 'Template' . DS . 'Element'); 43 | 44 | switch ($option) { 45 | 46 | case 'all': 47 | 48 | $folderElement->copy(APP . 'Template' . DS . 'Element', false); 49 | 50 | break; 51 | 52 | } 53 | 54 | $this->out('Arquivos publicados'); 55 | 56 | } 57 | 58 | protected function _optionsPublish() 59 | { 60 | 61 | $this->hr(); 62 | 63 | foreach ($this->optionsPublish as $key => $value) { 64 | 65 | $this->out("[$key] $value"); 66 | 67 | } 68 | 69 | $this->hr(); 70 | 71 | $keys = array_keys($this->optionsPublish); 72 | 73 | return $this->in('O que você quer publicar.', $keys, $keys[0]); 74 | 75 | } 76 | 77 | } 78 | -------------------------------------------------------------------------------- /src/Template/Element/adminlte/sidebar.ctp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 50 | 51 | -------------------------------------------------------------------------------- /src/Template/Element/adminlte/control_sidebar.ctp: -------------------------------------------------------------------------------- 1 | 2 | 71 | -------------------------------------------------------------------------------- /webroot/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{color:#fff;background:#1e282c;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 .treeview-menu>li>a{color:#8aa4af}.skin-red .treeview-menu>li.active>a,.skin-red .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;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.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} -------------------------------------------------------------------------------- /webroot/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{color:#fff;background:#1e282c;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 .treeview-menu>li>a{color:#8aa4af}.skin-green .treeview-menu>li.active>a,.skin-green .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;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.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} -------------------------------------------------------------------------------- /webroot/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{color:#fff;background:#1e282c;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 .treeview-menu>li>a{color:#8aa4af}.skin-purple .treeview-menu>li.active>a,.skin-purple .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;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.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} -------------------------------------------------------------------------------- /webroot/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{color:#fff;background:#1e282c;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 .treeview-menu>li>a{color:#8aa4af}.skin-yellow .treeview-menu>li.active>a,.skin-yellow .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;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.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} -------------------------------------------------------------------------------- /webroot/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{color:#fff;background:#1e282c;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 .treeview-menu>li>a{color:#8aa4af}.skin-blue .treeview-menu>li.active>a,.skin-blue .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;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.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} -------------------------------------------------------------------------------- /webroot/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{color:#fff;background:#1e282c;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 .treeview-menu>li>a{color:#8aa4af}.skin-black .treeview-menu>li.active>a,.skin-black .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;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.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} -------------------------------------------------------------------------------- /webroot/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 .content-wrapper,.skin-red-light .main-footer{border-left: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 .treeview-menu>li>a{color:#777}.skin-red-light .treeview-menu>li.active>a,.skin-red-light .treeview-menu>li>a:hover{color:#000}.skin-red-light .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;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.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}} -------------------------------------------------------------------------------- /webroot/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 .content-wrapper,.skin-green-light .main-footer{border-left: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 .treeview-menu>li>a{color:#777}.skin-green-light .treeview-menu>li.active>a,.skin-green-light .treeview-menu>li>a:hover{color:#000}.skin-green-light .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;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.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}} -------------------------------------------------------------------------------- /webroot/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 .content-wrapper,.skin-purple-light .main-footer{border-left: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 .treeview-menu>li>a{color:#777}.skin-purple-light .treeview-menu>li.active>a,.skin-purple-light .treeview-menu>li>a:hover{color:#000}.skin-purple-light .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;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.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}} -------------------------------------------------------------------------------- /webroot/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 .content-wrapper,.skin-yellow-light .main-footer{border-left: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 .treeview-menu>li>a{color:#777}.skin-yellow-light .treeview-menu>li.active>a,.skin-yellow-light .treeview-menu>li>a:hover{color:#000}.skin-yellow-light .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;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.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/Template/Layout/default.ctp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <?= $this->fetch('title') ?> 9 | 10 | 11 | 12 | 13 | Html->meta('icon') ?> 14 | 15 | fetch('meta') ?> 16 | fetch('css') ?> 17 | 18 | 19 | 23 | 24 | 25 | 71 |
72 | Flash->render() ?> 73 | fetch('content') ?> 74 |
75 | 76 | element('footer'); 85 | } 86 | ?> 87 | 88 | 89 | 90 | 91 | 92 | fetch('script') ?> 93 | 94 | 95 | -------------------------------------------------------------------------------- /webroot/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 .content-wrapper,.skin-blue-light .main-footer{border-left: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 .treeview-menu>li>a{color:#777}.skin-blue-light .treeview-menu>li.active>a,.skin-blue-light .treeview-menu>li>a:hover{color:#000}.skin-blue-light .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;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.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} -------------------------------------------------------------------------------- /webroot/css/skins/skin-black-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-black-light .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-light .main-header .navbar-toggle{color:#333}.skin-black-light .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.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 #eee}.skin-black-light .main-header>.navbar .navbar-nav>li>a{border-right:1px solid #eee}.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 #eee;border-right-width:0}.skin-black-light .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.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 .content-wrapper,.skin-black-light .main-footer{border-left: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 .treeview-menu>li>a{color:#777}.skin-black-light .treeview-menu>li.active>a,.skin-black-light .treeview-menu>li>a:hover{color:#000}.skin-black-light .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;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.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}} -------------------------------------------------------------------------------- /webroot/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 | color: #ffffff; 78 | background: #1e282c; 79 | border-left-color: #dd4b39; 80 | } 81 | .skin-red .sidebar-menu > li > .treeview-menu { 82 | margin: 0 1px; 83 | background: #2c3b41; 84 | } 85 | .skin-red .sidebar a { 86 | color: #b8c7ce; 87 | } 88 | .skin-red .sidebar a:hover { 89 | text-decoration: none; 90 | } 91 | .skin-red .treeview-menu > li > a { 92 | color: #8aa4af; 93 | } 94 | .skin-red .treeview-menu > li.active > a, 95 | .skin-red .treeview-menu > li > a:hover { 96 | color: #ffffff; 97 | } 98 | .skin-red .sidebar-form { 99 | border-radius: 3px; 100 | border: 1px solid #374850; 101 | margin: 10px 10px; 102 | } 103 | .skin-red .sidebar-form input[type="text"], 104 | .skin-red .sidebar-form .btn { 105 | box-shadow: none; 106 | background-color: #374850; 107 | border: 1px solid transparent; 108 | height: 35px; 109 | -webkit-transition: all 0.3s ease-in-out; 110 | -o-transition: all 0.3s ease-in-out; 111 | transition: all 0.3s ease-in-out; 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 | -------------------------------------------------------------------------------- /webroot/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 | color: #ffffff; 78 | background: #1e282c; 79 | border-left-color: #00a65a; 80 | } 81 | .skin-green .sidebar-menu > li > .treeview-menu { 82 | margin: 0 1px; 83 | background: #2c3b41; 84 | } 85 | .skin-green .sidebar a { 86 | color: #b8c7ce; 87 | } 88 | .skin-green .sidebar a:hover { 89 | text-decoration: none; 90 | } 91 | .skin-green .treeview-menu > li > a { 92 | color: #8aa4af; 93 | } 94 | .skin-green .treeview-menu > li.active > a, 95 | .skin-green .treeview-menu > li > a:hover { 96 | color: #ffffff; 97 | } 98 | .skin-green .sidebar-form { 99 | border-radius: 3px; 100 | border: 1px solid #374850; 101 | margin: 10px 10px; 102 | } 103 | .skin-green .sidebar-form input[type="text"], 104 | .skin-green .sidebar-form .btn { 105 | box-shadow: none; 106 | background-color: #374850; 107 | border: 1px solid transparent; 108 | height: 35px; 109 | -webkit-transition: all 0.3s ease-in-out; 110 | -o-transition: all 0.3s ease-in-out; 111 | transition: all 0.3s ease-in-out; 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 | -------------------------------------------------------------------------------- /webroot/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 | color: #ffffff; 78 | background: #1e282c; 79 | border-left-color: #605ca8; 80 | } 81 | .skin-purple .sidebar-menu > li > .treeview-menu { 82 | margin: 0 1px; 83 | background: #2c3b41; 84 | } 85 | .skin-purple .sidebar a { 86 | color: #b8c7ce; 87 | } 88 | .skin-purple .sidebar a:hover { 89 | text-decoration: none; 90 | } 91 | .skin-purple .treeview-menu > li > a { 92 | color: #8aa4af; 93 | } 94 | .skin-purple .treeview-menu > li.active > a, 95 | .skin-purple .treeview-menu > li > a:hover { 96 | color: #ffffff; 97 | } 98 | .skin-purple .sidebar-form { 99 | border-radius: 3px; 100 | border: 1px solid #374850; 101 | margin: 10px 10px; 102 | } 103 | .skin-purple .sidebar-form input[type="text"], 104 | .skin-purple .sidebar-form .btn { 105 | box-shadow: none; 106 | background-color: #374850; 107 | border: 1px solid transparent; 108 | height: 35px; 109 | -webkit-transition: all 0.3s ease-in-out; 110 | -o-transition: all 0.3s ease-in-out; 111 | transition: all 0.3s ease-in-out; 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 | -------------------------------------------------------------------------------- /webroot/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 | color: #ffffff; 78 | background: #1e282c; 79 | border-left-color: #f39c12; 80 | } 81 | .skin-yellow .sidebar-menu > li > .treeview-menu { 82 | margin: 0 1px; 83 | background: #2c3b41; 84 | } 85 | .skin-yellow .sidebar a { 86 | color: #b8c7ce; 87 | } 88 | .skin-yellow .sidebar a:hover { 89 | text-decoration: none; 90 | } 91 | .skin-yellow .treeview-menu > li > a { 92 | color: #8aa4af; 93 | } 94 | .skin-yellow .treeview-menu > li.active > a, 95 | .skin-yellow .treeview-menu > li > a:hover { 96 | color: #ffffff; 97 | } 98 | .skin-yellow .sidebar-form { 99 | border-radius: 3px; 100 | border: 1px solid #374850; 101 | margin: 10px 10px; 102 | } 103 | .skin-yellow .sidebar-form input[type="text"], 104 | .skin-yellow .sidebar-form .btn { 105 | box-shadow: none; 106 | background-color: #374850; 107 | border: 1px solid transparent; 108 | height: 35px; 109 | -webkit-transition: all 0.3s ease-in-out; 110 | -o-transition: all 0.3s ease-in-out; 111 | transition: all 0.3s ease-in-out; 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 | -------------------------------------------------------------------------------- /webroot/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 | color: #ffffff; 78 | background: #1e282c; 79 | border-left-color: #3c8dbc; 80 | } 81 | .skin-blue .sidebar-menu > li > .treeview-menu { 82 | margin: 0 1px; 83 | background: #2c3b41; 84 | } 85 | .skin-blue .sidebar a { 86 | color: #b8c7ce; 87 | } 88 | .skin-blue .sidebar a:hover { 89 | text-decoration: none; 90 | } 91 | .skin-blue .treeview-menu > li > a { 92 | color: #8aa4af; 93 | } 94 | .skin-blue .treeview-menu > li.active > a, 95 | .skin-blue .treeview-menu > li > a:hover { 96 | color: #ffffff; 97 | } 98 | .skin-blue .sidebar-form { 99 | border-radius: 3px; 100 | border: 1px solid #374850; 101 | margin: 10px 10px; 102 | } 103 | .skin-blue .sidebar-form input[type="text"], 104 | .skin-blue .sidebar-form .btn { 105 | box-shadow: none; 106 | background-color: #374850; 107 | border: 1px solid transparent; 108 | height: 35px; 109 | -webkit-transition: all 0.3s ease-in-out; 110 | -o-transition: all 0.3s ease-in-out; 111 | transition: all 0.3s ease-in-out; 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 | -------------------------------------------------------------------------------- /webroot/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 | color: #ffffff; 98 | background: #1e282c; 99 | border-left-color: #ffffff; 100 | } 101 | .skin-black .sidebar-menu > li > .treeview-menu { 102 | margin: 0 1px; 103 | background: #2c3b41; 104 | } 105 | .skin-black .sidebar a { 106 | color: #b8c7ce; 107 | } 108 | .skin-black .sidebar a:hover { 109 | text-decoration: none; 110 | } 111 | .skin-black .treeview-menu > li > a { 112 | color: #8aa4af; 113 | } 114 | .skin-black .treeview-menu > li.active > a, 115 | .skin-black .treeview-menu > li > a:hover { 116 | color: #ffffff; 117 | } 118 | .skin-black .sidebar-form { 119 | border-radius: 3px; 120 | border: 1px solid #374850; 121 | margin: 10px 10px; 122 | } 123 | .skin-black .sidebar-form input[type="text"], 124 | .skin-black .sidebar-form .btn { 125 | box-shadow: none; 126 | background-color: #374850; 127 | border: 1px solid transparent; 128 | height: 35px; 129 | -webkit-transition: all 0.3s ease-in-out; 130 | -o-transition: all 0.3s ease-in-out; 131 | transition: all 0.3s ease-in-out; 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 | -------------------------------------------------------------------------------- /src/Template/Layout/adminlte.ctp: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | <?= $this->fetch('title') ?> 11 | 12 | 13 | 14 | Html->meta('icon') ?> 15 | fetch('meta') ?> 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | Html->css('TwitterBootstrap.AdminLTE.min.css');?> 25 | 29 | Html->css('TwitterBootstrap.skins/skin-blue.min.css');?> 30 | 31 | fetch('css') ?> 32 | 33 | 34 | 35 | 39 | 40 | 41 | 42 |
43 | 44 | 45 |
46 | element('adminlte/header'); 55 | } 56 | ?> 57 |
58 | 59 | 72 | 73 | 74 |
75 | element('adminlte/content'); 84 | } 85 | ?> 86 |
87 | 88 | 89 | 90 |
91 | element('adminlte/footer'); 100 | } 101 | ?> 102 |
103 | 104 | element('adminlte/control_sidebar'); 113 | } 114 | ?> 115 | 116 | 118 |
119 |
120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | Html->script('TwitterBootstrap.app.min.js'); ?> 130 | 131 | fetch('script') ?> 132 | 133 | 134 | -------------------------------------------------------------------------------- /webroot/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 .content-wrapper, 65 | .skin-red-light .main-footer { 66 | border-left: 1px solid #d2d6de; 67 | } 68 | .skin-red-light .user-panel > .info, 69 | .skin-red-light .user-panel > .info > a { 70 | color: #444444; 71 | } 72 | .skin-red-light .sidebar-menu > li { 73 | -webkit-transition: border-left-color 0.3s ease; 74 | -o-transition: border-left-color 0.3s ease; 75 | transition: border-left-color 0.3s ease; 76 | } 77 | .skin-red-light .sidebar-menu > li.header { 78 | color: #848484; 79 | background: #f9fafc; 80 | } 81 | .skin-red-light .sidebar-menu > li > a { 82 | border-left: 3px solid transparent; 83 | font-weight: 600; 84 | } 85 | .skin-red-light .sidebar-menu > li:hover > a, 86 | .skin-red-light .sidebar-menu > li.active > a { 87 | color: #000000; 88 | background: #f4f4f5; 89 | } 90 | .skin-red-light .sidebar-menu > li.active { 91 | border-left-color: #dd4b39; 92 | } 93 | .skin-red-light .sidebar-menu > li.active > a { 94 | font-weight: 600; 95 | } 96 | .skin-red-light .sidebar-menu > li > .treeview-menu { 97 | background: #f4f4f5; 98 | } 99 | .skin-red-light .sidebar a { 100 | color: #444444; 101 | } 102 | .skin-red-light .sidebar a:hover { 103 | text-decoration: none; 104 | } 105 | .skin-red-light .treeview-menu > li > a { 106 | color: #777777; 107 | } 108 | .skin-red-light .treeview-menu > li.active > a, 109 | .skin-red-light .treeview-menu > li > a:hover { 110 | color: #000000; 111 | } 112 | .skin-red-light .treeview-menu > li.active > a { 113 | font-weight: 600; 114 | } 115 | .skin-red-light .sidebar-form { 116 | border-radius: 3px; 117 | border: 1px solid #d2d6de; 118 | margin: 10px 10px; 119 | } 120 | .skin-red-light .sidebar-form input[type="text"], 121 | .skin-red-light .sidebar-form .btn { 122 | box-shadow: none; 123 | background-color: #fff; 124 | border: 1px solid transparent; 125 | height: 35px; 126 | -webkit-transition: all 0.3s ease-in-out; 127 | -o-transition: all 0.3s ease-in-out; 128 | transition: all 0.3s ease-in-out; 129 | } 130 | .skin-red-light .sidebar-form input[type="text"] { 131 | color: #666; 132 | border-top-left-radius: 2px; 133 | border-top-right-radius: 0; 134 | border-bottom-right-radius: 0; 135 | border-bottom-left-radius: 2px; 136 | } 137 | .skin-red-light .sidebar-form input[type="text"]:focus, 138 | .skin-red-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 139 | background-color: #fff; 140 | color: #666; 141 | } 142 | .skin-red-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 143 | border-left-color: #fff; 144 | } 145 | .skin-red-light .sidebar-form .btn { 146 | color: #999; 147 | border-top-left-radius: 0; 148 | border-top-right-radius: 2px; 149 | border-bottom-right-radius: 2px; 150 | border-bottom-left-radius: 0; 151 | } 152 | @media (min-width: 768px) { 153 | .skin-red-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { 154 | border-left: 1px solid #d2d6de; 155 | } 156 | } 157 | -------------------------------------------------------------------------------- /webroot/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 .content-wrapper, 65 | .skin-green-light .main-footer { 66 | border-left: 1px solid #d2d6de; 67 | } 68 | .skin-green-light .user-panel > .info, 69 | .skin-green-light .user-panel > .info > a { 70 | color: #444444; 71 | } 72 | .skin-green-light .sidebar-menu > li { 73 | -webkit-transition: border-left-color 0.3s ease; 74 | -o-transition: border-left-color 0.3s ease; 75 | transition: border-left-color 0.3s ease; 76 | } 77 | .skin-green-light .sidebar-menu > li.header { 78 | color: #848484; 79 | background: #f9fafc; 80 | } 81 | .skin-green-light .sidebar-menu > li > a { 82 | border-left: 3px solid transparent; 83 | font-weight: 600; 84 | } 85 | .skin-green-light .sidebar-menu > li:hover > a, 86 | .skin-green-light .sidebar-menu > li.active > a { 87 | color: #000000; 88 | background: #f4f4f5; 89 | } 90 | .skin-green-light .sidebar-menu > li.active { 91 | border-left-color: #00a65a; 92 | } 93 | .skin-green-light .sidebar-menu > li.active > a { 94 | font-weight: 600; 95 | } 96 | .skin-green-light .sidebar-menu > li > .treeview-menu { 97 | background: #f4f4f5; 98 | } 99 | .skin-green-light .sidebar a { 100 | color: #444444; 101 | } 102 | .skin-green-light .sidebar a:hover { 103 | text-decoration: none; 104 | } 105 | .skin-green-light .treeview-menu > li > a { 106 | color: #777777; 107 | } 108 | .skin-green-light .treeview-menu > li.active > a, 109 | .skin-green-light .treeview-menu > li > a:hover { 110 | color: #000000; 111 | } 112 | .skin-green-light .treeview-menu > li.active > a { 113 | font-weight: 600; 114 | } 115 | .skin-green-light .sidebar-form { 116 | border-radius: 3px; 117 | border: 1px solid #d2d6de; 118 | margin: 10px 10px; 119 | } 120 | .skin-green-light .sidebar-form input[type="text"], 121 | .skin-green-light .sidebar-form .btn { 122 | box-shadow: none; 123 | background-color: #fff; 124 | border: 1px solid transparent; 125 | height: 35px; 126 | -webkit-transition: all 0.3s ease-in-out; 127 | -o-transition: all 0.3s ease-in-out; 128 | transition: all 0.3s ease-in-out; 129 | } 130 | .skin-green-light .sidebar-form input[type="text"] { 131 | color: #666; 132 | border-top-left-radius: 2px; 133 | border-top-right-radius: 0; 134 | border-bottom-right-radius: 0; 135 | border-bottom-left-radius: 2px; 136 | } 137 | .skin-green-light .sidebar-form input[type="text"]:focus, 138 | .skin-green-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 139 | background-color: #fff; 140 | color: #666; 141 | } 142 | .skin-green-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 143 | border-left-color: #fff; 144 | } 145 | .skin-green-light .sidebar-form .btn { 146 | color: #999; 147 | border-top-left-radius: 0; 148 | border-top-right-radius: 2px; 149 | border-bottom-right-radius: 2px; 150 | border-bottom-left-radius: 0; 151 | } 152 | @media (min-width: 768px) { 153 | .skin-green-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { 154 | border-left: 1px solid #d2d6de; 155 | } 156 | } 157 | -------------------------------------------------------------------------------- /webroot/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 .content-wrapper, 65 | .skin-purple-light .main-footer { 66 | border-left: 1px solid #d2d6de; 67 | } 68 | .skin-purple-light .user-panel > .info, 69 | .skin-purple-light .user-panel > .info > a { 70 | color: #444444; 71 | } 72 | .skin-purple-light .sidebar-menu > li { 73 | -webkit-transition: border-left-color 0.3s ease; 74 | -o-transition: border-left-color 0.3s ease; 75 | transition: border-left-color 0.3s ease; 76 | } 77 | .skin-purple-light .sidebar-menu > li.header { 78 | color: #848484; 79 | background: #f9fafc; 80 | } 81 | .skin-purple-light .sidebar-menu > li > a { 82 | border-left: 3px solid transparent; 83 | font-weight: 600; 84 | } 85 | .skin-purple-light .sidebar-menu > li:hover > a, 86 | .skin-purple-light .sidebar-menu > li.active > a { 87 | color: #000000; 88 | background: #f4f4f5; 89 | } 90 | .skin-purple-light .sidebar-menu > li.active { 91 | border-left-color: #605ca8; 92 | } 93 | .skin-purple-light .sidebar-menu > li.active > a { 94 | font-weight: 600; 95 | } 96 | .skin-purple-light .sidebar-menu > li > .treeview-menu { 97 | background: #f4f4f5; 98 | } 99 | .skin-purple-light .sidebar a { 100 | color: #444444; 101 | } 102 | .skin-purple-light .sidebar a:hover { 103 | text-decoration: none; 104 | } 105 | .skin-purple-light .treeview-menu > li > a { 106 | color: #777777; 107 | } 108 | .skin-purple-light .treeview-menu > li.active > a, 109 | .skin-purple-light .treeview-menu > li > a:hover { 110 | color: #000000; 111 | } 112 | .skin-purple-light .treeview-menu > li.active > a { 113 | font-weight: 600; 114 | } 115 | .skin-purple-light .sidebar-form { 116 | border-radius: 3px; 117 | border: 1px solid #d2d6de; 118 | margin: 10px 10px; 119 | } 120 | .skin-purple-light .sidebar-form input[type="text"], 121 | .skin-purple-light .sidebar-form .btn { 122 | box-shadow: none; 123 | background-color: #fff; 124 | border: 1px solid transparent; 125 | height: 35px; 126 | -webkit-transition: all 0.3s ease-in-out; 127 | -o-transition: all 0.3s ease-in-out; 128 | transition: all 0.3s ease-in-out; 129 | } 130 | .skin-purple-light .sidebar-form input[type="text"] { 131 | color: #666; 132 | border-top-left-radius: 2px; 133 | border-top-right-radius: 0; 134 | border-bottom-right-radius: 0; 135 | border-bottom-left-radius: 2px; 136 | } 137 | .skin-purple-light .sidebar-form input[type="text"]:focus, 138 | .skin-purple-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 139 | background-color: #fff; 140 | color: #666; 141 | } 142 | .skin-purple-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 143 | border-left-color: #fff; 144 | } 145 | .skin-purple-light .sidebar-form .btn { 146 | color: #999; 147 | border-top-left-radius: 0; 148 | border-top-right-radius: 2px; 149 | border-bottom-right-radius: 2px; 150 | border-bottom-left-radius: 0; 151 | } 152 | @media (min-width: 768px) { 153 | .skin-purple-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { 154 | border-left: 1px solid #d2d6de; 155 | } 156 | } 157 | -------------------------------------------------------------------------------- /webroot/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 .content-wrapper, 65 | .skin-yellow-light .main-footer { 66 | border-left: 1px solid #d2d6de; 67 | } 68 | .skin-yellow-light .user-panel > .info, 69 | .skin-yellow-light .user-panel > .info > a { 70 | color: #444444; 71 | } 72 | .skin-yellow-light .sidebar-menu > li { 73 | -webkit-transition: border-left-color 0.3s ease; 74 | -o-transition: border-left-color 0.3s ease; 75 | transition: border-left-color 0.3s ease; 76 | } 77 | .skin-yellow-light .sidebar-menu > li.header { 78 | color: #848484; 79 | background: #f9fafc; 80 | } 81 | .skin-yellow-light .sidebar-menu > li > a { 82 | border-left: 3px solid transparent; 83 | font-weight: 600; 84 | } 85 | .skin-yellow-light .sidebar-menu > li:hover > a, 86 | .skin-yellow-light .sidebar-menu > li.active > a { 87 | color: #000000; 88 | background: #f4f4f5; 89 | } 90 | .skin-yellow-light .sidebar-menu > li.active { 91 | border-left-color: #f39c12; 92 | } 93 | .skin-yellow-light .sidebar-menu > li.active > a { 94 | font-weight: 600; 95 | } 96 | .skin-yellow-light .sidebar-menu > li > .treeview-menu { 97 | background: #f4f4f5; 98 | } 99 | .skin-yellow-light .sidebar a { 100 | color: #444444; 101 | } 102 | .skin-yellow-light .sidebar a:hover { 103 | text-decoration: none; 104 | } 105 | .skin-yellow-light .treeview-menu > li > a { 106 | color: #777777; 107 | } 108 | .skin-yellow-light .treeview-menu > li.active > a, 109 | .skin-yellow-light .treeview-menu > li > a:hover { 110 | color: #000000; 111 | } 112 | .skin-yellow-light .treeview-menu > li.active > a { 113 | font-weight: 600; 114 | } 115 | .skin-yellow-light .sidebar-form { 116 | border-radius: 3px; 117 | border: 1px solid #d2d6de; 118 | margin: 10px 10px; 119 | } 120 | .skin-yellow-light .sidebar-form input[type="text"], 121 | .skin-yellow-light .sidebar-form .btn { 122 | box-shadow: none; 123 | background-color: #fff; 124 | border: 1px solid transparent; 125 | height: 35px; 126 | -webkit-transition: all 0.3s ease-in-out; 127 | -o-transition: all 0.3s ease-in-out; 128 | transition: all 0.3s ease-in-out; 129 | } 130 | .skin-yellow-light .sidebar-form input[type="text"] { 131 | color: #666; 132 | border-top-left-radius: 2px; 133 | border-top-right-radius: 0; 134 | border-bottom-right-radius: 0; 135 | border-bottom-left-radius: 2px; 136 | } 137 | .skin-yellow-light .sidebar-form input[type="text"]:focus, 138 | .skin-yellow-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 139 | background-color: #fff; 140 | color: #666; 141 | } 142 | .skin-yellow-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 143 | border-left-color: #fff; 144 | } 145 | .skin-yellow-light .sidebar-form .btn { 146 | color: #999; 147 | border-top-left-radius: 0; 148 | border-top-right-radius: 2px; 149 | border-bottom-right-radius: 2px; 150 | border-bottom-left-radius: 0; 151 | } 152 | @media (min-width: 768px) { 153 | .skin-yellow-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { 154 | border-left: 1px solid #d2d6de; 155 | } 156 | } 157 | -------------------------------------------------------------------------------- /src/Template/Bake/Element/form.ctp: -------------------------------------------------------------------------------- 1 | <% 2 | /** 3 | * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) 4 | * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) 5 | * 6 | * Licensed under The MIT License 7 | * For full copyright and license information, please see the LICENSE.txt 8 | * Redistributions of files must retain the above copyright notice. 9 | * 10 | * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) 11 | * @link http://cakephp.org CakePHP(tm) Project 12 | * @since 0.1.0 13 | * @license http://www.opensource.org/licenses/mit-license.php MIT License 14 | */ 15 | use Cake\Utility\Inflector; 16 | 17 | $fields = collection($fields) 18 | ->filter(function($field) use ($schema) { 19 | return $schema->columnType($field) !== 'binary'; 20 | }); 21 | %> 22 |
23 |
24 |
25 |
26 |

27 |
28 | 53 |
54 |
55 |
56 |
57 |
58 |

<%= $singularHumanName %>' ?>

59 |
60 |
61 | Form->create($<%= $singularVar %>) ?> 62 |
63 | column($field); 71 | if (!empty($fieldData['null'])) { 72 | %> 73 | echo $this->Form->input('<%= $field %>', ['options' => $<%= $keyFields[$field] %>, 'empty' => true]); 74 | <% 75 | } else { 76 | %> 77 | echo $this->Form->input('<%= $field %>', ['options' => $<%= $keyFields[$field] %>]); 78 | <% 79 | } 80 | continue; 81 | } 82 | if (!in_array($field, ['created', 'modified', 'updated'])) { 83 | $fieldData = $schema->column($field); 84 | if (($fieldData['type'] === 'date') && (!empty($fieldData['null']))) { 85 | %> 86 | echo $this->Form->input('<%= $field %>', ['empty' => true, 'default' => '']); 87 | <% 88 | } else { 89 | %> 90 | echo $this->Form->input('<%= $field %>'); 91 | <% 92 | } 93 | } 94 | } 95 | if (!empty($associations['BelongsToMany'])) { 96 | foreach ($associations['BelongsToMany'] as $assocName => $assocData) { 97 | %> 98 | echo $this->Form->input('<%= $assocData['property'] %>._ids', ['options' => $<%= $assocData['variable'] %>]); 99 | <% 100 | } 101 | } 102 | %> 103 | ?> 104 |
105 | Form->button(__('Submit')) ?> 106 | Form->end() ?> 107 |
108 |
109 |
110 |
111 | -------------------------------------------------------------------------------- /webroot/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 .content-wrapper, 65 | .skin-blue-light .main-footer { 66 | border-left: 1px solid #d2d6de; 67 | } 68 | .skin-blue-light .user-panel > .info, 69 | .skin-blue-light .user-panel > .info > a { 70 | color: #444444; 71 | } 72 | .skin-blue-light .sidebar-menu > li { 73 | -webkit-transition: border-left-color 0.3s ease; 74 | -o-transition: border-left-color 0.3s ease; 75 | transition: border-left-color 0.3s ease; 76 | } 77 | .skin-blue-light .sidebar-menu > li.header { 78 | color: #848484; 79 | background: #f9fafc; 80 | } 81 | .skin-blue-light .sidebar-menu > li > a { 82 | border-left: 3px solid transparent; 83 | font-weight: 600; 84 | } 85 | .skin-blue-light .sidebar-menu > li:hover > a, 86 | .skin-blue-light .sidebar-menu > li.active > a { 87 | color: #000000; 88 | background: #f4f4f5; 89 | } 90 | .skin-blue-light .sidebar-menu > li.active { 91 | border-left-color: #3c8dbc; 92 | } 93 | .skin-blue-light .sidebar-menu > li.active > a { 94 | font-weight: 600; 95 | } 96 | .skin-blue-light .sidebar-menu > li > .treeview-menu { 97 | background: #f4f4f5; 98 | } 99 | .skin-blue-light .sidebar a { 100 | color: #444444; 101 | } 102 | .skin-blue-light .sidebar a:hover { 103 | text-decoration: none; 104 | } 105 | .skin-blue-light .treeview-menu > li > a { 106 | color: #777777; 107 | } 108 | .skin-blue-light .treeview-menu > li.active > a, 109 | .skin-blue-light .treeview-menu > li > a:hover { 110 | color: #000000; 111 | } 112 | .skin-blue-light .treeview-menu > li.active > a { 113 | font-weight: 600; 114 | } 115 | .skin-blue-light .sidebar-form { 116 | border-radius: 3px; 117 | border: 1px solid #d2d6de; 118 | margin: 10px 10px; 119 | } 120 | .skin-blue-light .sidebar-form input[type="text"], 121 | .skin-blue-light .sidebar-form .btn { 122 | box-shadow: none; 123 | background-color: #fff; 124 | border: 1px solid transparent; 125 | height: 35px; 126 | -webkit-transition: all 0.3s ease-in-out; 127 | -o-transition: all 0.3s ease-in-out; 128 | transition: all 0.3s ease-in-out; 129 | } 130 | .skin-blue-light .sidebar-form input[type="text"] { 131 | color: #666; 132 | border-top-left-radius: 2px; 133 | border-top-right-radius: 0; 134 | border-bottom-right-radius: 0; 135 | border-bottom-left-radius: 2px; 136 | } 137 | .skin-blue-light .sidebar-form input[type="text"]:focus, 138 | .skin-blue-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 139 | background-color: #fff; 140 | color: #666; 141 | } 142 | .skin-blue-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 143 | border-left-color: #fff; 144 | } 145 | .skin-blue-light .sidebar-form .btn { 146 | color: #999; 147 | border-top-left-radius: 0; 148 | border-top-right-radius: 2px; 149 | border-bottom-right-radius: 2px; 150 | border-bottom-left-radius: 0; 151 | } 152 | @media (min-width: 768px) { 153 | .skin-blue-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { 154 | border-left: 1px solid #d2d6de; 155 | } 156 | } 157 | .skin-blue-light .main-footer { 158 | border-top-color: #d2d6de; 159 | } 160 | .skin-blue.layout-top-nav .main-header > .logo { 161 | background-color: #3c8dbc; 162 | color: #ffffff; 163 | border-bottom: 0 solid transparent; 164 | } 165 | .skin-blue.layout-top-nav .main-header > .logo:hover { 166 | background-color: #3b8ab8; 167 | } 168 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Twitter Bootstrap para CakePHP 3 2 | 3 | ## Instalação 4 | 5 | Você pode instalar usando [composer](http://getcomposer.org) através do comando a seguir. 6 | 7 | composer require cakephp-brasil/twitter-bootstrap 8 | 9 | Certifique-se de carregar o plugin em **config/bootstrap.php**. 10 | 11 | Plugin::load('TwitterBootstrap'); 12 | 13 | ## Como usar 14 | 15 | ### Para criar views com **bake** 16 | 17 | Apenas adicione `--theme TwitterBootstrap` no final do comando, por exemplo: 18 | 19 | bin\cake bake all MyModel --theme TwitterBootstrap 20 | 21 | ### Para ativar o formulário 22 | 23 | Em **src/View/AppView.php** adicionar `$this->loadHelper('Form', ['className' => 'TwitterBootstrap.Form']);` dentro de `initialize()`, desta forma: 24 | 25 | public function initialize() 26 | { 27 | $this->loadHelper('Form', ['className' => 'TwitterBootstrap.Form']); 28 | } 29 | 30 | ### Layout padrão 31 | 32 | #### Para ativar o layout 33 | 34 | Informe `$this->viewBuilder()->theme('TwitterBootstrap');` no seu controller (por exemplo, AppController para usar em qualquer página). 35 | 36 | Em **src/View/AppView.php** adicionar `$this->loadHelper('Form', ['className' => 'TwitterBootstrap.Form']);` dentro de `initialize()`, desta forma: 37 | 38 | #### Para alterar o título 39 | 40 | No AppController apenas informe com `$this->set('project_name', 'Título que você quer')`. 41 | 42 | #### Para alterar o menu superior direito 43 | 44 | Crie um arquivo chamado **nav-bar-right.ctp** dentro de **src/Template/Element** (você pode copiar o modelo dentro de **vendor/cakephp-brasil/twitter-bootstrap/src/Template/Element**) 45 | 46 | Ou veja a **Publicando as views necessárias automaticamente** 47 | 48 | #### Para alterar o menu superior esquerdo 49 | 50 | Crie um arquivo chamado **nav-bar-left.ctp** dentro de **src/Template/Element** (você pode copiar o modelo dentro de **vendor/cakephp-brasil/twitter-bootstrap/src/Template/Element**) 51 | 52 | Ou veja a **Publicando as views necessárias automaticamente** 53 | 54 | ### AdminLTE 55 | 56 | #### Como ativar o layout 57 | 58 | Informe `$this->viewBuilder()->theme('TwitterBootstrap');` no seu controller (por exemplo, AppController para usar em qualquer página) e em seguida ativar o tema usando `$this->viewBuilder()->layout('adminlte');`. 59 | 60 | Em **src/View/AppView.php** adicionar `$this->loadHelper('Form', ['className' => 'TwitterBootstrap.Form']);` dentro de `initialize()`, desta forma: 61 | 62 | public function initialize() 63 | { 64 | $this->loadHelper('Form', ['className' => 'TwitterBootstrap.Form']); 65 | } 66 | 67 | #### Para alterar o topo (header) 68 | 69 | Crie um arquivo chamado **header.ctp** dentro de **src/Template/Element/adminlte** (você pode copiar o modelo dentro de **vendor/cakephp-brasil/twitter-bootstrap/src/Template/Element/adminlte**), pode ser necessário criar o diretório **adminlte**. 70 | 71 | Ou veja a **Publicando as views necessárias automaticamente** 72 | 73 | #### Para alterar a lateral esquerda 74 | 75 | Crie um arquivo chamado **sidebar.ctp** dentro de **src/Template/Element/adminlte** (você pode copiar o modelo dentro de **vendor/cakephp-brasil/twitter-bootstrap/src/Template/Element/adminlte**), pode ser necessário criar o diretório **adminlte**. 76 | 77 | Ou veja a **Publicando as views necessárias automaticamente** 78 | 79 | #### Para alterar o rodapé 80 | 81 | Crie um arquivo chamado **footer.ctp** dentro de **src/Template/Element/adminlte** (você pode copiar o modelo dentro de **vendor/cakephp-brasil/twitter-bootstrap/src/Template/Element/adminlte**), pode ser necessário criar o diretório **adminlte**. 82 | 83 | Ou veja a **Publicando as views necessárias automaticamente** 84 | 85 | #### Para alterar o bloco de conteúdo 86 | 87 | Crie um arquivo chamado **content.ctp** dentro de **src/Template/Element/adminlte** (você pode copiar o modelo dentro de **vendor/cakephp-brasil/twitter-bootstrap/src/Template/Element/adminlte**), pode ser necessário criar o diretório **adminlte**. 88 | 89 | Ou veja a **Publicando as views necessárias automaticamente** 90 | 91 | #### Para alterar o menu direito (aparece quando clica no link da roda dentada no topo) 92 | 93 | Crie um arquivo chamado **control_sidebar.ctp** dentro de **src/Template/Element/adminlte** (você pode copiar o modelo dentro de **vendor/cakephp-brasil/twitter-bootstrap/src/Template/Element/adminlte**), pode ser necessário criar o diretório **adminlte**. 94 | 95 | Ou veja a **Publicando as views necessárias automaticamente** 96 | 97 | Para desativar crie esta view vazia e remova o link no topo. 98 | 99 | ### Publicando as views acima necessárias automaticamente 100 | 101 | Contribuição do [@josimar-lemos](https://github.com/josimar-lemos) 102 | 103 | Tava achando muito trabalhoso (programador preguiçoso on) ter que copiar e colar os Elements do Tema toda vez que precisava mexer neles.. 104 | 105 | Criei um Shell para facilitar o processo, coloquei só uma opção para copiar todos os Elements de uma vez, mas posso incrementar isso aí se quiserem. 106 | 107 | Para testar: 108 | 109 | $ cd path-to-project 110 | $ bin/cake TwitterBootstrap.publish 111 | Ou: 112 | 113 | $ cd path-to-project 114 | $ bin/cake TwitterBootstrap.publish all 115 | 116 | ------ Fim da nota 117 | 118 | ## Para contribuir 119 | 120 | Faça um fork deste projeto, altere e envie um pull request, não esqueça de [sugerir recursos](https://github.com/CakePHPBrasil/TwitterBootstrap/issues). 121 | -------------------------------------------------------------------------------- /webroot/css/skins/skin-black-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Black 3 | * ----------- 4 | */ 5 | /* skin-black navbar */ 6 | .skin-black-light .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-light .main-header .navbar-toggle { 11 | color: #333; 12 | } 13 | .skin-black-light .main-header .navbar-brand { 14 | color: #333; 15 | border-right: 1px solid #eee; 16 | } 17 | .skin-black-light .main-header > .navbar { 18 | background-color: #ffffff; 19 | } 20 | .skin-black-light .main-header > .navbar .nav > li > a { 21 | color: #333333; 22 | } 23 | .skin-black-light .main-header > .navbar .nav > li > a:hover, 24 | .skin-black-light .main-header > .navbar .nav > li > a:active, 25 | .skin-black-light .main-header > .navbar .nav > li > a:focus, 26 | .skin-black-light .main-header > .navbar .nav .open > a, 27 | .skin-black-light .main-header > .navbar .nav .open > a:hover, 28 | .skin-black-light .main-header > .navbar .nav .open > a:focus, 29 | .skin-black-light .main-header > .navbar .nav > .active > a { 30 | background: #ffffff; 31 | color: #999999; 32 | } 33 | .skin-black-light .main-header > .navbar .sidebar-toggle { 34 | color: #333333; 35 | } 36 | .skin-black-light .main-header > .navbar .sidebar-toggle:hover { 37 | color: #999999; 38 | background: #ffffff; 39 | } 40 | .skin-black-light .main-header > .navbar > .sidebar-toggle { 41 | color: #333; 42 | border-right: 1px solid #eee; 43 | } 44 | .skin-black-light .main-header > .navbar .navbar-nav > li > a { 45 | border-right: 1px solid #eee; 46 | } 47 | .skin-black-light .main-header > .navbar .navbar-custom-menu .navbar-nav > li > a, 48 | .skin-black-light .main-header > .navbar .navbar-right > li > a { 49 | border-left: 1px solid #eee; 50 | border-right-width: 0; 51 | } 52 | .skin-black-light .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-light .main-header > .logo:hover { 59 | background-color: #fcfcfc; 60 | } 61 | @media (max-width: 767px) { 62 | .skin-black-light .main-header > .logo { 63 | background-color: #222222; 64 | color: #ffffff; 65 | border-bottom: 0 solid transparent; 66 | border-right: none; 67 | } 68 | .skin-black-light .main-header > .logo:hover { 69 | background-color: #1f1f1f; 70 | } 71 | } 72 | .skin-black-light .main-header li.user-header { 73 | background-color: #222; 74 | } 75 | .skin-black-light .content-header { 76 | background: transparent; 77 | box-shadow: none; 78 | } 79 | .skin-black-light .wrapper, 80 | .skin-black-light .main-sidebar, 81 | .skin-black-light .left-side { 82 | background-color: #f9fafc; 83 | } 84 | .skin-black-light .content-wrapper, 85 | .skin-black-light .main-footer { 86 | border-left: 1px solid #d2d6de; 87 | } 88 | .skin-black-light .user-panel > .info, 89 | .skin-black-light .user-panel > .info > a { 90 | color: #444444; 91 | } 92 | .skin-black-light .sidebar-menu > li { 93 | -webkit-transition: border-left-color 0.3s ease; 94 | -o-transition: border-left-color 0.3s ease; 95 | transition: border-left-color 0.3s ease; 96 | } 97 | .skin-black-light .sidebar-menu > li.header { 98 | color: #848484; 99 | background: #f9fafc; 100 | } 101 | .skin-black-light .sidebar-menu > li > a { 102 | border-left: 3px solid transparent; 103 | font-weight: 600; 104 | } 105 | .skin-black-light .sidebar-menu > li:hover > a, 106 | .skin-black-light .sidebar-menu > li.active > a { 107 | color: #000000; 108 | background: #f4f4f5; 109 | } 110 | .skin-black-light .sidebar-menu > li.active { 111 | border-left-color: #ffffff; 112 | } 113 | .skin-black-light .sidebar-menu > li.active > a { 114 | font-weight: 600; 115 | } 116 | .skin-black-light .sidebar-menu > li > .treeview-menu { 117 | background: #f4f4f5; 118 | } 119 | .skin-black-light .sidebar a { 120 | color: #444444; 121 | } 122 | .skin-black-light .sidebar a:hover { 123 | text-decoration: none; 124 | } 125 | .skin-black-light .treeview-menu > li > a { 126 | color: #777777; 127 | } 128 | .skin-black-light .treeview-menu > li.active > a, 129 | .skin-black-light .treeview-menu > li > a:hover { 130 | color: #000000; 131 | } 132 | .skin-black-light .treeview-menu > li.active > a { 133 | font-weight: 600; 134 | } 135 | .skin-black-light .sidebar-form { 136 | border-radius: 3px; 137 | border: 1px solid #d2d6de; 138 | margin: 10px 10px; 139 | } 140 | .skin-black-light .sidebar-form input[type="text"], 141 | .skin-black-light .sidebar-form .btn { 142 | box-shadow: none; 143 | background-color: #fff; 144 | border: 1px solid transparent; 145 | height: 35px; 146 | -webkit-transition: all 0.3s ease-in-out; 147 | -o-transition: all 0.3s ease-in-out; 148 | transition: all 0.3s ease-in-out; 149 | } 150 | .skin-black-light .sidebar-form input[type="text"] { 151 | color: #666; 152 | border-top-left-radius: 2px; 153 | border-top-right-radius: 0; 154 | border-bottom-right-radius: 0; 155 | border-bottom-left-radius: 2px; 156 | } 157 | .skin-black-light .sidebar-form input[type="text"]:focus, 158 | .skin-black-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 159 | background-color: #fff; 160 | color: #666; 161 | } 162 | .skin-black-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 163 | border-left-color: #fff; 164 | } 165 | .skin-black-light .sidebar-form .btn { 166 | color: #999; 167 | border-top-left-radius: 0; 168 | border-top-right-radius: 2px; 169 | border-bottom-right-radius: 2px; 170 | border-bottom-left-radius: 0; 171 | } 172 | @media (min-width: 768px) { 173 | .skin-black-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { 174 | border-left: 1px solid #d2d6de; 175 | } 176 | } 177 | -------------------------------------------------------------------------------- /src/Template/Bake/Template/index.ctp: -------------------------------------------------------------------------------- 1 | <% 2 | /** 3 | * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) 4 | * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) 5 | * 6 | * Licensed under The MIT License 7 | * For full copyright and license information, please see the LICENSE.txt 8 | * Redistributions of files must retain the above copyright notice. 9 | * 10 | * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) 11 | * @link http://cakephp.org CakePHP(tm) Project 12 | * @since 0.1.0 13 | * @license http://www.opensource.org/licenses/mit-license.php MIT License 14 | */ 15 | use Cake\Utility\Inflector; 16 | 17 | $fields = collection($fields) 18 | ->filter(function($field) use ($schema) { 19 | return !in_array($schema->columnType($field), ['binary', 'text']); 20 | }) 21 | ->take(7); 22 | %> 23 |
24 |
25 |
26 |
27 |

28 |
29 | 30 | 47 |
48 |
49 |
50 |
51 |
52 |

<%= $pluralHumanName %>

53 |
54 |
55 | 56 | 57 | 58 | <% foreach ($fields as $field): %> 59 | 60 | <% endforeach; %> 61 | 62 | 63 | 64 | 65 | as $<%= $singularVar %>): ?> 66 | 67 | <% foreach ($fields as $field) { 68 | $isKey = false; 69 | if (!empty($associations['BelongsTo'])) { 70 | foreach ($associations['BelongsTo'] as $alias => $details) { 71 | if ($field === $details['foreignKey']) { 72 | $isKey = true; 73 | %> 74 | 75 | <% 76 | break; 77 | } 78 | } 79 | } 80 | if ($isKey !== true) { 81 | if (!in_array($schema->columnType($field), ['integer', 'biginteger', 'decimal', 'float'])) { 82 | %> 83 | 84 | <% 85 | } else { 86 | %> 87 | 88 | <% 89 | } 90 | } 91 | } 92 | 93 | $pk = '$' . $singularVar . '->' . $primaryKey[0]; 94 | %> 95 | 100 | 101 | 102 | 103 |
Paginator->sort('<%= $field %>') ?>
->has('<%= $details['property'] %>') ? $this->Html->link($<%= $singularVar %>-><%= $details['property'] %>-><%= $details['displayField'] %>, ['controller' => '<%= $details['controller'] %>', 'action' => 'view', $<%= $singularVar %>-><%= $details['property'] %>-><%= $details['primaryKey'][0] %>]) : '' ?>-><%= $field %>) ?>Number->format($<%= $singularVar %>-><%= $field %>) ?> 96 | Html->link(__('View'), ['action' => 'view', <%= $pk %>], ['class'=>'btn btn-default btn-xs']) ?> 97 | Html->link(__('Edit'), ['action' => 'edit', <%= $pk %>], ['class'=>'btn btn-primary btn-xs']) ?> 98 | Form->postLink(__('Delete'), ['action' => 'delete', <%= $pk %>], ['confirm' => __('Are you sure you want to delete # {0}?', <%= $pk %>), 'class'=>'btn btn-danger btn-xs']) ?> 99 |
104 |
105 |
    106 | Paginator->prev('« ' . __('previous'), ['escape'=>false]) ?> 107 | Paginator->numbers(['escape'=>false]) ?> 108 | Paginator->next(__('next') . ' »', ['escape'=>false]) ?> 109 |
110 |

Paginator->counter(__('Page {{page}} of {{pages}}, showing {{current}} records out of 111 | {{count}} total, starting on record {{start}}, ending on {{end}}')) ?>

112 |
113 |
114 |
115 |
116 |
-------------------------------------------------------------------------------- /webroot/js/pages/dashboard.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Abdullah A Almsaeed 3 | * Date: 4 Jan 2014 4 | * Description: 5 | * This is a demo file used only for the main dashboard (index.html) 6 | **/ 7 | 8 | $(function () { 9 | 10 | "use strict"; 11 | 12 | //Make the dashboard widgets sortable Using jquery UI 13 | $(".connectedSortable").sortable({ 14 | placeholder: "sort-highlight", 15 | connectWith: ".connectedSortable", 16 | handle: ".box-header, .nav-tabs", 17 | forcePlaceholderSize: true, 18 | zIndex: 999999 19 | }); 20 | $(".connectedSortable .box-header, .connectedSortable .nav-tabs-custom").css("cursor", "move"); 21 | 22 | //jQuery UI sortable for the todo list 23 | $(".todo-list").sortable({ 24 | placeholder: "sort-highlight", 25 | handle: ".handle", 26 | forcePlaceholderSize: true, 27 | zIndex: 999999 28 | }); 29 | 30 | //bootstrap WYSIHTML5 - text editor 31 | $(".textarea").wysihtml5(); 32 | 33 | $('.daterange').daterangepicker({ 34 | ranges: { 35 | 'Today': [moment(), moment()], 36 | 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], 37 | 'Last 7 Days': [moment().subtract(6, 'days'), moment()], 38 | 'Last 30 Days': [moment().subtract(29, 'days'), moment()], 39 | 'This Month': [moment().startOf('month'), moment().endOf('month')], 40 | 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] 41 | }, 42 | startDate: moment().subtract(29, 'days'), 43 | endDate: moment() 44 | }, function (start, end) { 45 | window.alert("You chose: " + start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY')); 46 | }); 47 | 48 | /* jQueryKnob */ 49 | $(".knob").knob(); 50 | 51 | //jvectormap data 52 | var visitorsData = { 53 | "US": 398, //USA 54 | "SA": 400, //Saudi Arabia 55 | "CA": 1000, //Canada 56 | "DE": 500, //Germany 57 | "FR": 760, //France 58 | "CN": 300, //China 59 | "AU": 700, //Australia 60 | "BR": 600, //Brazil 61 | "IN": 800, //India 62 | "GB": 320, //Great Britain 63 | "RU": 3000 //Russia 64 | }; 65 | //World map by jvectormap 66 | $('#world-map').vectorMap({ 67 | map: 'world_mill_en', 68 | backgroundColor: "transparent", 69 | regionStyle: { 70 | initial: { 71 | fill: '#e4e4e4', 72 | "fill-opacity": 1, 73 | stroke: 'none', 74 | "stroke-width": 0, 75 | "stroke-opacity": 1 76 | } 77 | }, 78 | series: { 79 | regions: [{ 80 | values: visitorsData, 81 | scale: ["#92c1dc", "#ebf4f9"], 82 | normalizeFunction: 'polynomial' 83 | }] 84 | }, 85 | onRegionLabelShow: function (e, el, code) { 86 | if (typeof visitorsData[code] != "undefined") 87 | el.html(el.html() + ': ' + visitorsData[code] + ' new visitors'); 88 | } 89 | }); 90 | 91 | //Sparkline charts 92 | var myvalues = [1000, 1200, 920, 927, 931, 1027, 819, 930, 1021]; 93 | $('#sparkline-1').sparkline(myvalues, { 94 | type: 'line', 95 | lineColor: '#92c1dc', 96 | fillColor: "#ebf4f9", 97 | height: '50', 98 | width: '80' 99 | }); 100 | myvalues = [515, 519, 520, 522, 652, 810, 370, 627, 319, 630, 921]; 101 | $('#sparkline-2').sparkline(myvalues, { 102 | type: 'line', 103 | lineColor: '#92c1dc', 104 | fillColor: "#ebf4f9", 105 | height: '50', 106 | width: '80' 107 | }); 108 | myvalues = [15, 19, 20, 22, 33, 27, 31, 27, 19, 30, 21]; 109 | $('#sparkline-3').sparkline(myvalues, { 110 | type: 'line', 111 | lineColor: '#92c1dc', 112 | fillColor: "#ebf4f9", 113 | height: '50', 114 | width: '80' 115 | }); 116 | 117 | //The Calender 118 | $("#calendar").datepicker(); 119 | 120 | //SLIMSCROLL FOR CHAT WIDGET 121 | $('#chat-box').slimScroll({ 122 | height: '250px' 123 | }); 124 | 125 | /* Morris.js Charts */ 126 | // Sales chart 127 | var area = new Morris.Area({ 128 | element: 'revenue-chart', 129 | resize: true, 130 | data: [ 131 | {y: '2011 Q1', item1: 2666, item2: 2666}, 132 | {y: '2011 Q2', item1: 2778, item2: 2294}, 133 | {y: '2011 Q3', item1: 4912, item2: 1969}, 134 | {y: '2011 Q4', item1: 3767, item2: 3597}, 135 | {y: '2012 Q1', item1: 6810, item2: 1914}, 136 | {y: '2012 Q2', item1: 5670, item2: 4293}, 137 | {y: '2012 Q3', item1: 4820, item2: 3795}, 138 | {y: '2012 Q4', item1: 15073, item2: 5967}, 139 | {y: '2013 Q1', item1: 10687, item2: 4460}, 140 | {y: '2013 Q2', item1: 8432, item2: 5713} 141 | ], 142 | xkey: 'y', 143 | ykeys: ['item1', 'item2'], 144 | labels: ['Item 1', 'Item 2'], 145 | lineColors: ['#a0d0e0', '#3c8dbc'], 146 | hideHover: 'auto' 147 | }); 148 | var line = new Morris.Line({ 149 | element: 'line-chart', 150 | resize: true, 151 | data: [ 152 | {y: '2011 Q1', item1: 2666}, 153 | {y: '2011 Q2', item1: 2778}, 154 | {y: '2011 Q3', item1: 4912}, 155 | {y: '2011 Q4', item1: 3767}, 156 | {y: '2012 Q1', item1: 6810}, 157 | {y: '2012 Q2', item1: 5670}, 158 | {y: '2012 Q3', item1: 4820}, 159 | {y: '2012 Q4', item1: 15073}, 160 | {y: '2013 Q1', item1: 10687}, 161 | {y: '2013 Q2', item1: 8432} 162 | ], 163 | xkey: 'y', 164 | ykeys: ['item1'], 165 | labels: ['Item 1'], 166 | lineColors: ['#efefef'], 167 | lineWidth: 2, 168 | hideHover: 'auto', 169 | gridTextColor: "#fff", 170 | gridStrokeWidth: 0.4, 171 | pointSize: 4, 172 | pointStrokeColors: ["#efefef"], 173 | gridLineColor: "#efefef", 174 | gridTextFamily: "Open Sans", 175 | gridTextSize: 10 176 | }); 177 | 178 | //Donut Chart 179 | var donut = new Morris.Donut({ 180 | element: 'sales-chart', 181 | resize: true, 182 | colors: ["#3c8dbc", "#f56954", "#00a65a"], 183 | data: [ 184 | {label: "Download Sales", value: 12}, 185 | {label: "In-Store Sales", value: 30}, 186 | {label: "Mail-Order Sales", value: 20} 187 | ], 188 | hideHover: 'auto' 189 | }); 190 | 191 | //Fix for charts under tabs 192 | $('.box ul.nav a').on('shown.bs.tab', function () { 193 | area.redraw(); 194 | donut.redraw(); 195 | line.redraw(); 196 | }); 197 | 198 | /* The todo list plugin */ 199 | $(".todo-list").todolist({ 200 | onCheck: function (ele) { 201 | window.console.log("The element has been checked"); 202 | return ele; 203 | }, 204 | onUncheck: function (ele) { 205 | window.console.log("The element has been unchecked"); 206 | return ele; 207 | } 208 | }); 209 | 210 | }); 211 | -------------------------------------------------------------------------------- /src/Template/Element/adminlte/header.ctp: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 180 | -------------------------------------------------------------------------------- /src/View/Helper/FormHelper.php: -------------------------------------------------------------------------------- 1 | '{{year}}{{month}}{{day}}{{hour}}{{minute}}{{second}}{{meridian}}', 13 | 'error' => '
{{content}}
', 14 | 'inputContainer' => '
{{content}}
', 15 | 'inputContainerError' => '
{{content}}{{error}}
', 16 | ]; 17 | 18 | private $templates_horizontal = [ 19 | 'label' => '', 20 | 'formGroup' => '{{label}}
{{input}}{{error}}{{help}}
', 21 | 'checkboxFormGroup' => '
{{label}}
{{error}}{{help}}
', 22 | 'submitContainer' => '
{{content}}
', 23 | 'inputContainer' => '
{{content}}
', 24 | 'inputContainerError' => '
{{content}}
', 25 | ]; 26 | 27 | public function __construct(View $View, array $config = []) { 28 | $this->_defaultConfig['templates'] = array_merge($this->_defaultConfig['templates'], $this->templates); 29 | parent::__construct($View, $config); 30 | } 31 | 32 | public function create($model = null, array $options = []) { 33 | $options += ['role' => 'form']; 34 | if (isset($options['class']) and $options['class']=='form-horizontal') { 35 | $options['templates'] = $this->templates_horizontal; 36 | } 37 | 38 | return parent::create($model, $options); 39 | } 40 | 41 | public function button($title, array $options = array()) { 42 | return parent::button($title, $this->_injectStyles($options, 'btn btn-success')); 43 | } 44 | 45 | public function submit($caption = null, array $options = []) { 46 | return parent::submit($caption, $this->_injectStyles($options, 'btn btn-success')); 47 | } 48 | 49 | public function input($fieldName, array $options = []) { 50 | $options += [ 51 | 'type' => null, 52 | 'label' => null, 53 | 'error' => null, 54 | 'required' => null, 55 | 'options' => null, 56 | 'templates' => [] 57 | ]; 58 | $options = $this->_parseOptions($fieldName, $options); 59 | $options += ['id' => $this->_domId($fieldName)]; 60 | $finalClasses = 'form-control'; 61 | switch ($options['type']) { 62 | case 'checkbox': 63 | $finalClasses = ''; 64 | $options['templates']['checkboxWrapper'] = '
'; 65 | $options['templates']['label'] = '{{text}}'; 66 | break; 67 | case 'radio': 68 | $options['templates']['radioWrapper'] = '
'; 69 | $options['templates']['label'] = '{{text}}'; 70 | break; 71 | default: 72 | } 73 | return parent::input($fieldName, $this->_injectStyles($options, $finalClasses)); 74 | } 75 | 76 | public function select($fieldName, $options = [], array $attributes = []) 77 | { 78 | $attributes = $this->_injectStyles($attributes, 'form-control'); 79 | return parent::select($fieldName, $options, $attributes); 80 | } 81 | 82 | public function textarea($fieldName, array $options = array()) { 83 | $options += ['rows' => 3]; 84 | $options = $this->_injectStyles($options, 'form-control'); 85 | return parent::textarea($fieldName, $options); 86 | } 87 | 88 | public function hour($fieldName, array $options = []) 89 | { 90 | $options = $this->_injectStyles($options, 'form-control'); 91 | return parent::hour($fieldName, $options); 92 | } 93 | 94 | public function time($fieldName, array $options = []) 95 | { 96 | $options = $this->_injectStyles($options, 'form-control'); 97 | return parent::time($fieldName, $options); 98 | } 99 | 100 | public function year($fieldName, array $options = []) 101 | { 102 | $options = $this->_injectStyles($options, 'form-control'); 103 | return parent::year($fieldName, $options); 104 | } 105 | 106 | public function month($fieldName, array $options = []) 107 | { 108 | $options = $this->_injectStyles($options, 'form-control'); 109 | return parent::month($fieldName, $options); 110 | } 111 | 112 | public function day($fieldName = null, array $options = []) 113 | { 114 | $options = $this->_injectStyles($options, 'form-control'); 115 | return parent::day($fieldName, $options); 116 | } 117 | 118 | public function minute($fieldName, array $options = []) 119 | { 120 | $options = $this->_injectStyles($options, 'form-control'); 121 | return parent::minute($fieldName, $options); 122 | } 123 | 124 | public function dateTime($fieldName, array $options = []) 125 | { 126 | $options = $this->_injectStyles($options, 'form-control'); 127 | return parent::dateTime($fieldName, $options); 128 | } 129 | 130 | protected function _injectStyles($options, $styles) { 131 | $options += ['class' => [], 'skip' => []]; 132 | if (!is_array($options['class'])) { 133 | $options['class'] = explode(' ', $options['class']); 134 | } 135 | if (!is_array($styles)) { 136 | $styles = explode(' ', $styles); 137 | } 138 | foreach ($styles as $style) { 139 | if (!in_array($style, $options['class']) && !in_array($style, (array) $options['skip'])) { 140 | array_push($options['class'], $style); 141 | } 142 | } 143 | unset($options['skip']); 144 | return $options; 145 | } 146 | 147 | protected function _mergeStyles($current, $new) { 148 | $current = explode(' ', $current); 149 | $new = explode(' ', $new); 150 | foreach ($new as $style) { 151 | if (!in_array($style, $current)) { 152 | array_push($current, $style); 153 | } 154 | } 155 | return $current; 156 | } 157 | 158 | protected function _datetimeOptions($options) 159 | { 160 | 161 | if (isset($options['year']) and is_array($options['year'])) { 162 | $options['year'] = $this->_injectStyles($options['year'], 'form-control'); 163 | } 164 | 165 | if (isset($options['month']) and is_array($options['month'])) { 166 | $options['month'] = $this->_injectStyles($options['month'], 'form-control'); 167 | } 168 | 169 | if (isset($options['hour']) and is_array($options['hour'])) { 170 | $options['hour'] = $this->_injectStyles($options['hour'], 'form-control'); 171 | } 172 | 173 | if (isset($options['minute']) and is_array($options['minute'])) { 174 | $options['minute'] = $this->_injectStyles($options['minute'], 'form-control'); 175 | } 176 | 177 | return $options; 178 | } 179 | 180 | public function __call($method, $params) 181 | { 182 | $options = []; 183 | if (empty($params)) { 184 | throw new \Exception(sprintf('Missing field name for FormHelper::%s', $method)); 185 | } 186 | if (isset($params[1])) { 187 | $options = $params[1]; 188 | } 189 | if (!isset($options['type'])) { 190 | $options['type'] = $method; 191 | } 192 | if (isset($options['class']) and is_array($options['class'])) { 193 | $options['class'] = implode(' ', $options['class']); 194 | } 195 | $options = $this->_initInputField($params[0], $options); 196 | 197 | $options = $this->_injectStyles($options, 'form-control'); 198 | return $this->widget($options['type'], $options); 199 | } 200 | 201 | } 202 | -------------------------------------------------------------------------------- /webroot/js/app.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.3.3 11 | * @license MIT 12 | */ 13 | function _init(){"use strict";$.AdminLTE.layout={activate:function(){var a=this;a.fix(),a.fixSidebar(),$(window,".wrapper").resize(function(){a.fix(),a.fixSidebar()})},fix:function(){var a=$(".main-header").outerHeight()+$(".main-footer").outerHeight(),b=$(window).height(),c=$(".sidebar").height();if($("body").hasClass("fixed"))$(".content-wrapper, .right-side").css("min-height",b-$(".main-footer").outerHeight());else{var d;b>=c?($(".content-wrapper, .right-side").css("min-height",b-a),d=b-a):($(".content-wrapper, .right-side").css("min-height",c),d=c);var e=$($.AdminLTE.options.controlSidebarOptions.selector);"undefined"!=typeof e&&e.height()>d&&$(".content-wrapper, .right-side").css("min-height",e.height())}},fixSidebar:function(){return $("body").hasClass("fixed")?("undefined"==typeof $.fn.slimScroll&&window.console&&window.console.error("Error: the fixed layout requires the slimscroll plugin!"),void($.AdminLTE.options.sidebarSlimScroll&&"undefined"!=typeof $.fn.slimScroll&&($(".sidebar").slimScroll({destroy:!0}).height("auto"),$(".sidebar").slimscroll({height:$(window).height()-$(".main-header").height()+"px",color:"rgba(0,0,0,0.2)",size:"3px"})))):void("undefined"!=typeof $.fn.slimScroll&&$(".sidebar").slimScroll({destroy:!0}).height("auto"))}},$.AdminLTE.pushMenu={activate:function(a){var b=$.AdminLTE.options.screenSizes;$(document).on("click",a,function(a){a.preventDefault(),$(window).width()>b.sm-1?$("body").hasClass("sidebar-collapse")?$("body").removeClass("sidebar-collapse").trigger("expanded.pushMenu"):$("body").addClass("sidebar-collapse").trigger("collapsed.pushMenu"):$("body").hasClass("sidebar-open")?$("body").removeClass("sidebar-open").removeClass("sidebar-collapse").trigger("collapsed.pushMenu"):$("body").addClass("sidebar-open").trigger("expanded.pushMenu")}),$(".content-wrapper").click(function(){$(window).width()<=b.sm-1&&$("body").hasClass("sidebar-open")&&$("body").removeClass("sidebar-open")}),($.AdminLTE.options.sidebarExpandOnHover||$("body").hasClass("fixed")&&$("body").hasClass("sidebar-mini"))&&this.expandOnHover()},expandOnHover:function(){var a=this,b=$.AdminLTE.options.screenSizes.sm-1;$(".main-sidebar").hover(function(){$("body").hasClass("sidebar-mini")&&$("body").hasClass("sidebar-collapse")&&$(window).width()>b&&a.expand()},function(){$("body").hasClass("sidebar-mini")&&$("body").hasClass("sidebar-expanded-on-hover")&&$(window).width()>b&&a.collapse()})},expand:function(){$("body").removeClass("sidebar-collapse").addClass("sidebar-expanded-on-hover")},collapse:function(){$("body").hasClass("sidebar-expanded-on-hover")&&$("body").removeClass("sidebar-expanded-on-hover").addClass("sidebar-collapse")}},$.AdminLTE.tree=function(a){var b=this,c=$.AdminLTE.options.animationSpeed;$(document).on("click",a+" li a",function(a){var d=$(this),e=d.next();if(e.is(".treeview-menu")&&e.is(":visible")&&!$("body").hasClass("sidebar-collapse"))e.slideUp(c,function(){e.removeClass("menu-open")}),e.parent("li").removeClass("active");else if(e.is(".treeview-menu")&&!e.is(":visible")){var f=d.parents("ul").first(),g=f.find("ul:visible").slideUp(c);g.removeClass("menu-open");var h=d.parent("li");e.slideDown(c,function(){e.addClass("menu-open"),f.find("li.active").removeClass("active"),h.addClass("active"),b.layout.fix()})}e.is(".treeview-menu")&&a.preventDefault()})},$.AdminLTE.controlSidebar={activate:function(){var a=this,b=$.AdminLTE.options.controlSidebarOptions,c=$(b.selector),d=$(b.toggleBtnSelector);d.on("click",function(d){d.preventDefault(),c.hasClass("control-sidebar-open")||$("body").hasClass("control-sidebar-open")?a.close(c,b.slide):a.open(c,b.slide)});var e=$(".control-sidebar-bg");a._fix(e),$("body").hasClass("fixed")?a._fixForFixed(c):$(".content-wrapper, .right-side").height() .box-body, > .box-footer, > form >.box-body, > form > .box-footer");c.hasClass("collapsed-box")?(a.children(":first").removeClass(b.icons.open).addClass(b.icons.collapse),d.slideDown(b.animationSpeed,function(){c.removeClass("collapsed-box")})):(a.children(":first").removeClass(b.icons.collapse).addClass(b.icons.open),d.slideUp(b.animationSpeed,function(){c.addClass("collapsed-box")}))},remove:function(a){var b=a.parents(".box").first();b.slideUp(this.animationSpeed)}}}if("undefined"==typeof jQuery)throw new Error("AdminLTE requires jQuery");$.AdminLTE={},$.AdminLTE.options={navbarMenuSlimscroll:!0,navbarMenuSlimscrollWidth:"3px",navbarMenuHeight:"200px",animationSpeed:500,sidebarToggleSelector:"[data-toggle='offcanvas']",sidebarPushMenu:!0,sidebarSlimScroll:!0,sidebarExpandOnHover:!1,enableBoxRefresh:!0,enableBSToppltip:!0,BSTooltipSelector:"[data-toggle='tooltip']",enableFastclick:!0,enableControlSidebar:!0,controlSidebarOptions:{toggleBtnSelector:"[data-toggle='control-sidebar']",selector:".control-sidebar",slide:!0},enableBoxWidget:!0,boxWidgetOptions:{boxWidgetIcons:{collapse:"fa-minus",open:"fa-plus",remove:"fa-times"},boxWidgetSelectors:{remove:'[data-widget="remove"]',collapse:'[data-widget="collapse"]'}},directChat:{enable:!0,contactToggleSelector:'[data-widget="chat-pane-toggle"]'},colors:{lightBlue:"#3c8dbc",red:"#f56954",green:"#00a65a",aqua:"#00c0ef",yellow:"#f39c12",blue:"#0073b7",navy:"#001F3F",teal:"#39CCCC",olive:"#3D9970",lime:"#01FF70",orange:"#FF851B",fuchsia:"#F012BE",purple:"#8E24AA",maroon:"#D81B60",black:"#222222",gray:"#d2d6de"},screenSizes:{xs:480,sm:768,md:992,lg:1200}},$(function(){"use strict";$("body").removeClass("hold-transition"),"undefined"!=typeof AdminLTEOptions&&$.extend(!0,$.AdminLTE.options,AdminLTEOptions);var a=$.AdminLTE.options;_init(),$.AdminLTE.layout.activate(),$.AdminLTE.tree(".sidebar"),a.enableControlSidebar&&$.AdminLTE.controlSidebar.activate(),a.navbarMenuSlimscroll&&"undefined"!=typeof $.fn.slimscroll&&$(".navbar .menu").slimscroll({height:a.navbarMenuHeight,alwaysVisible:!1,size:a.navbarMenuSlimscrollWidth}).css("width","100%"),a.sidebarPushMenu&&$.AdminLTE.pushMenu.activate(a.sidebarToggleSelector),a.enableBSToppltip&&$("body").tooltip({selector:a.BSTooltipSelector}),a.enableBoxWidget&&$.AdminLTE.boxWidget.activate(),a.enableFastclick&&"undefined"!=typeof FastClick&&FastClick.attach(document.body),a.directChat.enable&&$(document).on("click",a.directChat.contactToggleSelector,function(){var a=$(this).parents(".direct-chat").first();a.toggleClass("direct-chat-contacts-open")}),$('.btn-group[data-toggle="btn-toggle"]').each(function(){var a=$(this);$(this).find(".btn").on("click",function(b){a.find(".btn.active").removeClass("active"),$(this).addClass("active"),b.preventDefault()})})}),function(a){"use strict";a.fn.boxRefresh=function(b){function c(a){a.append(f),e.onLoadStart.call(a)}function d(a){a.find(f).remove(),e.onLoadDone.call(a)}var e=a.extend({trigger:".refresh-btn",source:"",onLoadStart:function(a){return a},onLoadDone:function(a){return a}},b),f=a('
');return this.each(function(){if(""===e.source)return void(window.console&&window.console.log("Please specify a source first - boxRefresh()"));var b=a(this),f=b.find(e.trigger).first();f.on("click",function(a){a.preventDefault(),c(b),b.find(".box-body").load(e.source,function(){d(b)})})})}}(jQuery),function(a){"use strict";a.fn.activateBox=function(){a.AdminLTE.boxWidget.activate(this)},a.fn.toggleBox=function(){var b=a(a.AdminLTE.boxWidget.selectors.collapse,this);a.AdminLTE.boxWidget.collapse(b)},a.fn.removeBox=function(){var b=a(a.AdminLTE.boxWidget.selectors.remove,this);a.AdminLTE.boxWidget.remove(b)}}(jQuery),function(a){"use strict";a.fn.todolist=function(b){var c=a.extend({onCheck:function(a){return a},onUncheck:function(a){return a}},b);return this.each(function(){"undefined"!=typeof a.fn.iCheck?(a("input",this).on("ifChecked",function(){var b=a(this).parents("li").first();b.toggleClass("done"),c.onCheck.call(b)}),a("input",this).on("ifUnchecked",function(){var b=a(this).parents("li").first();b.toggleClass("done"),c.onUncheck.call(b)})):a("input",this).on("change",function(){var b=a(this).parents("li").first();b.toggleClass("done"),a("input",b).is(":checked")?c.onCheck.call(b):c.onUncheck.call(b)})})}}(jQuery); -------------------------------------------------------------------------------- /src/Template/Bake/Template/view.ctp: -------------------------------------------------------------------------------- 1 | <% 2 | /** 3 | * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) 4 | * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) 5 | * 6 | * Licensed under The MIT License 7 | * For full copyright and license information, please see the LICENSE.txt 8 | * Redistributions of files must retain the above copyright notice. 9 | * 10 | * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) 11 | * @link http://cakephp.org CakePHP(tm) Project 12 | * @since 0.1.0 13 | * @license http://www.opensource.org/licenses/mit-license.php MIT License 14 | */ 15 | use Cake\Utility\Inflector; 16 | 17 | $associations += ['BelongsTo' => [], 'HasOne' => [], 'HasMany' => [], 'BelongsToMany' => []]; 18 | $immediateAssociations = $associations['BelongsTo'] + $associations['HasOne']; 19 | $associationFields = collection($fields) 20 | ->map(function($field) use ($immediateAssociations) { 21 | foreach ($immediateAssociations as $alias => $details) { 22 | if ($field === $details['foreignKey']) { 23 | return [$field => $details]; 24 | } 25 | } 26 | }) 27 | ->filter() 28 | ->reduce(function($fields, $value) { 29 | return $fields + $value; 30 | }, []); 31 | 32 | $groupedFields = collection($fields) 33 | ->filter(function($field) use ($schema) { 34 | return $schema->columnType($field) !== 'binary'; 35 | }) 36 | ->groupBy(function($field) use ($schema, $associationFields) { 37 | $type = $schema->columnType($field); 38 | if (isset($associationFields[$field])) { 39 | return 'string'; 40 | } 41 | if (in_array($type, ['integer', 'float', 'decimal', 'biginteger'])) { 42 | return 'number'; 43 | } 44 | if (in_array($type, ['date', 'time', 'datetime', 'timestamp'])) { 45 | return 'date'; 46 | } 47 | return in_array($type, ['text', 'boolean']) ? $type : 'string'; 48 | }) 49 | ->toArray(); 50 | 51 | $groupedFields += ['number' => [], 'string' => [], 'boolean' => [], 'date' => [], 'text' => []]; 52 | $pk = "\$$singularVar->{$primaryKey[0]}"; 53 | %> 54 |
55 |
56 |
57 |
58 |

59 |
60 | 80 |
81 |
82 |
83 |
84 |
85 |

-><%= $displayField %>) ?>

86 |
87 |
88 | 89 | <% if ($groupedFields['string']) : %> 90 | <% foreach ($groupedFields['string'] as $field) : %> 91 | <% if (isset($associationFields[$field])) : 92 | $details = $associationFields[$field]; 93 | %> 94 | 95 | 96 | 97 | 98 | <% else : %> 99 | 100 | 101 | 102 | 103 | <% endif; %> 104 | <% endforeach; %> 105 | <% endif; %> 106 | <% if ($groupedFields['number']) : %> 107 | <% foreach ($groupedFields['number'] as $field) : %> 108 | 109 | 110 | 111 | 112 | <% endforeach; %> 113 | <% endif; %> 114 | <% if ($groupedFields['date']) : %> 115 | <% foreach ($groupedFields['date'] as $field) : %> 116 | 117 | 118 | 119 | 120 | <% endforeach; %> 121 | <% endif; %> 122 | <% if ($groupedFields['boolean']) : %> 123 | <% foreach ($groupedFields['boolean'] as $field) : %> 124 | 125 | 126 | 127 | 128 | <% endforeach; %> 129 | <% endif; %> 130 |
<%= Inflector::humanize($details['property']) %>->has('<%= $details['property'] %>') ? $this->Html->link($<%= $singularVar %>-><%= $details['property'] %>-><%= $details['displayField'] %>, ['controller' => '<%= $details['controller'] %>', 'action' => 'view', $<%= $singularVar %>-><%= $details['property'] %>-><%= $details['primaryKey'][0] %>]) : '' ?>
<%= Inflector::humanize($field) %>-><%= $field %>) ?>
<%= Inflector::humanize($field) %>Number->format($<%= $singularVar %>-><%= $field %>) ?>
<%= Inflector::humanize($field) %>-><%= $field %>) ?>
<%= Inflector::humanize($field) %>-><%= $field %> ? __('Yes') : __('No'); ?>
131 | <% if ($groupedFields['text']) : %> 132 | <% foreach ($groupedFields['text'] as $field) : %> 133 |
134 |

<%= Inflector::humanize($field) %>

135 | Text->autoParagraph(h($<%= $singularVar %>-><%= $field %>)); ?> 136 |
137 | <% endforeach; %> 138 | <% endif; %> 139 | <% 140 | $relations = $associations['HasMany'] + $associations['BelongsToMany']; 141 | foreach ($relations as $alias => $details): 142 | $otherSingularVar = Inflector::variable($alias); 143 | $otherPluralHumanName = Inflector::humanize(Inflector::underscore($details['controller'])); 144 | %> 145 | 171 | <% endforeach; %> 172 |
173 |
174 |
175 | -------------------------------------------------------------------------------- /webroot/js/pages/dashboard2.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | 3 | 'use strict'; 4 | 5 | /* ChartJS 6 | * ------- 7 | * Here we will create a few charts using ChartJS 8 | */ 9 | 10 | //----------------------- 11 | //- MONTHLY SALES CHART - 12 | //----------------------- 13 | 14 | // Get context with jQuery - using jQuery's .get() method. 15 | var salesChartCanvas = $("#salesChart").get(0).getContext("2d"); 16 | // This will get the first returned node in the jQuery collection. 17 | var salesChart = new Chart(salesChartCanvas); 18 | 19 | var salesChartData = { 20 | labels: ["January", "February", "March", "April", "May", "June", "July"], 21 | datasets: [ 22 | { 23 | label: "Electronics", 24 | fillColor: "rgb(210, 214, 222)", 25 | strokeColor: "rgb(210, 214, 222)", 26 | pointColor: "rgb(210, 214, 222)", 27 | pointStrokeColor: "#c1c7d1", 28 | pointHighlightFill: "#fff", 29 | pointHighlightStroke: "rgb(220,220,220)", 30 | data: [65, 59, 80, 81, 56, 55, 40] 31 | }, 32 | { 33 | label: "Digital Goods", 34 | fillColor: "rgba(60,141,188,0.9)", 35 | strokeColor: "rgba(60,141,188,0.8)", 36 | pointColor: "#3b8bba", 37 | pointStrokeColor: "rgba(60,141,188,1)", 38 | pointHighlightFill: "#fff", 39 | pointHighlightStroke: "rgba(60,141,188,1)", 40 | data: [28, 48, 40, 19, 86, 27, 90] 41 | } 42 | ] 43 | }; 44 | 45 | var salesChartOptions = { 46 | //Boolean - If we should show the scale at all 47 | showScale: true, 48 | //Boolean - Whether grid lines are shown across the chart 49 | scaleShowGridLines: false, 50 | //String - Colour of the grid lines 51 | scaleGridLineColor: "rgba(0,0,0,.05)", 52 | //Number - Width of the grid lines 53 | scaleGridLineWidth: 1, 54 | //Boolean - Whether to show horizontal lines (except X axis) 55 | scaleShowHorizontalLines: true, 56 | //Boolean - Whether to show vertical lines (except Y axis) 57 | scaleShowVerticalLines: true, 58 | //Boolean - Whether the line is curved between points 59 | bezierCurve: true, 60 | //Number - Tension of the bezier curve between points 61 | bezierCurveTension: 0.3, 62 | //Boolean - Whether to show a dot for each point 63 | pointDot: false, 64 | //Number - Radius of each point dot in pixels 65 | pointDotRadius: 4, 66 | //Number - Pixel width of point dot stroke 67 | pointDotStrokeWidth: 1, 68 | //Number - amount extra to add to the radius to cater for hit detection outside the drawn point 69 | pointHitDetectionRadius: 20, 70 | //Boolean - Whether to show a stroke for datasets 71 | datasetStroke: true, 72 | //Number - Pixel width of dataset stroke 73 | datasetStrokeWidth: 2, 74 | //Boolean - Whether to fill the dataset with a color 75 | datasetFill: true, 76 | //String - A legend template 77 | legendTemplate: "
    -legend\"><% for (var i=0; i
  • \"><%=datasets[i].label%>
  • <%}%>
", 78 | //Boolean - whether to maintain the starting aspect ratio or not when responsive, if set to false, will take up entire container 79 | maintainAspectRatio: true, 80 | //Boolean - whether to make the chart responsive to window resizing 81 | responsive: true 82 | }; 83 | 84 | //Create the line chart 85 | salesChart.Line(salesChartData, salesChartOptions); 86 | 87 | //--------------------------- 88 | //- END MONTHLY SALES CHART - 89 | //--------------------------- 90 | 91 | //------------- 92 | //- PIE CHART - 93 | //------------- 94 | // Get context with jQuery - using jQuery's .get() method. 95 | var pieChartCanvas = $("#pieChart").get(0).getContext("2d"); 96 | var pieChart = new Chart(pieChartCanvas); 97 | var PieData = [ 98 | { 99 | value: 700, 100 | color: "#f56954", 101 | highlight: "#f56954", 102 | label: "Chrome" 103 | }, 104 | { 105 | value: 500, 106 | color: "#00a65a", 107 | highlight: "#00a65a", 108 | label: "IE" 109 | }, 110 | { 111 | value: 400, 112 | color: "#f39c12", 113 | highlight: "#f39c12", 114 | label: "FireFox" 115 | }, 116 | { 117 | value: 600, 118 | color: "#00c0ef", 119 | highlight: "#00c0ef", 120 | label: "Safari" 121 | }, 122 | { 123 | value: 300, 124 | color: "#3c8dbc", 125 | highlight: "#3c8dbc", 126 | label: "Opera" 127 | }, 128 | { 129 | value: 100, 130 | color: "#d2d6de", 131 | highlight: "#d2d6de", 132 | label: "Navigator" 133 | } 134 | ]; 135 | var pieOptions = { 136 | //Boolean - Whether we should show a stroke on each segment 137 | segmentShowStroke: true, 138 | //String - The colour of each segment stroke 139 | segmentStrokeColor: "#fff", 140 | //Number - The width of each segment stroke 141 | segmentStrokeWidth: 1, 142 | //Number - The percentage of the chart that we cut out of the middle 143 | percentageInnerCutout: 50, // This is 0 for Pie charts 144 | //Number - Amount of animation steps 145 | animationSteps: 100, 146 | //String - Animation easing effect 147 | animationEasing: "easeOutBounce", 148 | //Boolean - Whether we animate the rotation of the Doughnut 149 | animateRotate: true, 150 | //Boolean - Whether we animate scaling the Doughnut from the centre 151 | animateScale: false, 152 | //Boolean - whether to make the chart responsive to window resizing 153 | responsive: true, 154 | // Boolean - whether to maintain the starting aspect ratio or not when responsive, if set to false, will take up entire container 155 | maintainAspectRatio: false, 156 | //String - A legend template 157 | legendTemplate: "
    -legend\"><% for (var i=0; i
  • \"><%if(segments[i].label){%><%=segments[i].label%><%}%>
  • <%}%>
", 158 | //String - A tooltip template 159 | tooltipTemplate: "<%=value %> <%=label%> users" 160 | }; 161 | //Create pie or douhnut chart 162 | // You can switch between pie and douhnut using the method below. 163 | pieChart.Doughnut(PieData, pieOptions); 164 | //----------------- 165 | //- END PIE CHART - 166 | //----------------- 167 | 168 | /* jVector Maps 169 | * ------------ 170 | * Create a world map with markers 171 | */ 172 | $('#world-map-markers').vectorMap({ 173 | map: 'world_mill_en', 174 | normalizeFunction: 'polynomial', 175 | hoverOpacity: 0.7, 176 | hoverColor: false, 177 | backgroundColor: 'transparent', 178 | regionStyle: { 179 | initial: { 180 | fill: 'rgba(210, 214, 222, 1)', 181 | "fill-opacity": 1, 182 | stroke: 'none', 183 | "stroke-width": 0, 184 | "stroke-opacity": 1 185 | }, 186 | hover: { 187 | "fill-opacity": 0.7, 188 | cursor: 'pointer' 189 | }, 190 | selected: { 191 | fill: 'yellow' 192 | }, 193 | selectedHover: {} 194 | }, 195 | markerStyle: { 196 | initial: { 197 | fill: '#00a65a', 198 | stroke: '#111' 199 | } 200 | }, 201 | markers: [ 202 | {latLng: [41.90, 12.45], name: 'Vatican City'}, 203 | {latLng: [43.73, 7.41], name: 'Monaco'}, 204 | {latLng: [-0.52, 166.93], name: 'Nauru'}, 205 | {latLng: [-8.51, 179.21], name: 'Tuvalu'}, 206 | {latLng: [43.93, 12.46], name: 'San Marino'}, 207 | {latLng: [47.14, 9.52], name: 'Liechtenstein'}, 208 | {latLng: [7.11, 171.06], name: 'Marshall Islands'}, 209 | {latLng: [17.3, -62.73], name: 'Saint Kitts and Nevis'}, 210 | {latLng: [3.2, 73.22], name: 'Maldives'}, 211 | {latLng: [35.88, 14.5], name: 'Malta'}, 212 | {latLng: [12.05, -61.75], name: 'Grenada'}, 213 | {latLng: [13.16, -61.23], name: 'Saint Vincent and the Grenadines'}, 214 | {latLng: [13.16, -59.55], name: 'Barbados'}, 215 | {latLng: [17.11, -61.85], name: 'Antigua and Barbuda'}, 216 | {latLng: [-4.61, 55.45], name: 'Seychelles'}, 217 | {latLng: [7.35, 134.46], name: 'Palau'}, 218 | {latLng: [42.5, 1.51], name: 'Andorra'}, 219 | {latLng: [14.01, -60.98], name: 'Saint Lucia'}, 220 | {latLng: [6.91, 158.18], name: 'Federated States of Micronesia'}, 221 | {latLng: [1.3, 103.8], name: 'Singapore'}, 222 | {latLng: [1.46, 173.03], name: 'Kiribati'}, 223 | {latLng: [-21.13, -175.2], name: 'Tonga'}, 224 | {latLng: [15.3, -61.38], name: 'Dominica'}, 225 | {latLng: [-20.2, 57.5], name: 'Mauritius'}, 226 | {latLng: [26.02, 50.55], name: 'Bahrain'}, 227 | {latLng: [0.33, 6.73], name: 'São Tomé and Príncipe'} 228 | ] 229 | }); 230 | 231 | /* SPARKLINE CHARTS 232 | * ---------------- 233 | * Create a inline charts with spark line 234 | */ 235 | 236 | //----------------- 237 | //- SPARKLINE BAR - 238 | //----------------- 239 | $('.sparkbar').each(function () { 240 | var $this = $(this); 241 | $this.sparkline('html', { 242 | type: 'bar', 243 | height: $this.data('height') ? $this.data('height') : '30', 244 | barColor: $this.data('color') 245 | }); 246 | }); 247 | 248 | //----------------- 249 | //- SPARKLINE PIE - 250 | //----------------- 251 | $('.sparkpie').each(function () { 252 | var $this = $(this); 253 | $this.sparkline('html', { 254 | type: 'pie', 255 | height: $this.data('height') ? $this.data('height') : '90', 256 | sliceColors: $this.data('color') 257 | }); 258 | }); 259 | 260 | //------------------ 261 | //- SPARKLINE LINE - 262 | //------------------ 263 | $('.sparkline').each(function () { 264 | var $this = $(this); 265 | $this.sparkline('html', { 266 | type: 'line', 267 | height: $this.data('height') ? $this.data('height') : '90', 268 | width: '100%', 269 | lineColor: $this.data('linecolor'), 270 | fillColor: $this.data('fillcolor'), 271 | spotColor: $this.data('spotcolor') 272 | }); 273 | }); 274 | }); 275 | -------------------------------------------------------------------------------- /webroot/js/demo.js: -------------------------------------------------------------------------------- 1 | /** 2 | * AdminLTE Demo Menu 3 | * ------------------ 4 | * You should not use this file in production. 5 | * This file is for demo purposes only. 6 | */ 7 | (function ($, AdminLTE) { 8 | 9 | "use strict"; 10 | 11 | /** 12 | * List of all the available skins 13 | * 14 | * @type Array 15 | */ 16 | var my_skins = [ 17 | "skin-blue", 18 | "skin-black", 19 | "skin-red", 20 | "skin-yellow", 21 | "skin-purple", 22 | "skin-green", 23 | "skin-blue-light", 24 | "skin-black-light", 25 | "skin-red-light", 26 | "skin-yellow-light", 27 | "skin-purple-light", 28 | "skin-green-light" 29 | ]; 30 | 31 | //Create the new tab 32 | var tab_pane = $("
", { 33 | "id": "control-sidebar-theme-demo-options-tab", 34 | "class": "tab-pane active" 35 | }); 36 | 37 | //Create the tab button 38 | var tab_button = $("
  • ", {"class": "active"}) 39 | .html("" 40 | + "" 41 | + ""); 42 | 43 | //Add the tab button to the right sidebar tabs 44 | $("[href='#control-sidebar-home-tab']") 45 | .parent() 46 | .before(tab_button); 47 | 48 | //Create the menu 49 | var demo_settings = $("
    "); 50 | 51 | //Layout options 52 | demo_settings.append( 53 | "

    " 54 | + "Layout Options" 55 | + "

    " 56 | //Fixed layout 57 | + "
    " 58 | + "" 62 | + "

    Activate the fixed layout. You can't use fixed and boxed layouts together

    " 63 | + "
    " 64 | //Boxed layout 65 | + "
    " 66 | + "" 70 | + "

    Activate the boxed layout

    " 71 | + "
    " 72 | //Sidebar Toggle 73 | + "
    " 74 | + "" 78 | + "

    Toggle the left sidebar's state (open or collapse)

    " 79 | + "
    " 80 | //Sidebar mini expand on hover toggle 81 | + "
    " 82 | + "" 86 | + "

    Let the sidebar mini expand on hover

    " 87 | + "
    " 88 | //Control Sidebar Toggle 89 | + "
    " 90 | + "" 94 | + "

    Toggle between slide over content and push content effects

    " 95 | + "
    " 96 | //Control Sidebar Skin Toggle 97 | + "
    " 98 | + "" 102 | + "

    Toggle between dark and light skins for the right sidebar

    " 103 | + "
    " 104 | ); 105 | var skins_list = $("
      ", {"class": 'list-unstyled clearfix'}); 106 | 107 | //Dark sidebar skins 108 | var skin_blue = 109 | $("
    • ", {style: "float:left; width: 33.33333%; padding: 5px;"}) 110 | .append("" 111 | + "
      " 112 | + "
      " 113 | + "
      " 114 | + "

      Blue

      "); 115 | skins_list.append(skin_blue); 116 | var skin_black = 117 | $("
    • ", {style: "float:left; width: 33.33333%; padding: 5px;"}) 118 | .append("" 119 | + "
      " 120 | + "
      " 121 | + "
      " 122 | + "

      Black

      "); 123 | skins_list.append(skin_black); 124 | var skin_purple = 125 | $("
    • ", {style: "float:left; width: 33.33333%; padding: 5px;"}) 126 | .append("" 127 | + "
      " 128 | + "
      " 129 | + "
      " 130 | + "

      Purple

      "); 131 | skins_list.append(skin_purple); 132 | var skin_green = 133 | $("
    • ", {style: "float:left; width: 33.33333%; padding: 5px;"}) 134 | .append("" 135 | + "
      " 136 | + "
      " 137 | + "
      " 138 | + "

      Green

      "); 139 | skins_list.append(skin_green); 140 | var skin_red = 141 | $("
    • ", {style: "float:left; width: 33.33333%; padding: 5px;"}) 142 | .append("" 143 | + "
      " 144 | + "
      " 145 | + "
      " 146 | + "

      Red

      "); 147 | skins_list.append(skin_red); 148 | var skin_yellow = 149 | $("
    • ", {style: "float:left; width: 33.33333%; padding: 5px;"}) 150 | .append("" 151 | + "
      " 152 | + "
      " 153 | + "
      " 154 | + "

      Yellow

      "); 155 | skins_list.append(skin_yellow); 156 | 157 | //Light sidebar skins 158 | var skin_blue_light = 159 | $("
    • ", {style: "float:left; width: 33.33333%; padding: 5px;"}) 160 | .append("" 161 | + "
      " 162 | + "
      " 163 | + "
      " 164 | + "

      Blue Light

      "); 165 | skins_list.append(skin_blue_light); 166 | var skin_black_light = 167 | $("
    • ", {style: "float:left; width: 33.33333%; padding: 5px;"}) 168 | .append("" 169 | + "
      " 170 | + "
      " 171 | + "
      " 172 | + "

      Black Light

      "); 173 | skins_list.append(skin_black_light); 174 | var skin_purple_light = 175 | $("
    • ", {style: "float:left; width: 33.33333%; padding: 5px;"}) 176 | .append("" 177 | + "
      " 178 | + "
      " 179 | + "
      " 180 | + "

      Purple Light

      "); 181 | skins_list.append(skin_purple_light); 182 | var skin_green_light = 183 | $("
    • ", {style: "float:left; width: 33.33333%; padding: 5px;"}) 184 | .append("" 185 | + "
      " 186 | + "
      " 187 | + "
      " 188 | + "

      Green Light

      "); 189 | skins_list.append(skin_green_light); 190 | var skin_red_light = 191 | $("
    • ", {style: "float:left; width: 33.33333%; padding: 5px;"}) 192 | .append("" 193 | + "
      " 194 | + "
      " 195 | + "
      " 196 | + "

      Red Light

      "); 197 | skins_list.append(skin_red_light); 198 | var skin_yellow_light = 199 | $("
    • ", {style: "float:left; width: 33.33333%; padding: 5px;"}) 200 | .append("" 201 | + "
      " 202 | + "
      " 203 | + "
      " 204 | + "

      Yellow Light

      "); 205 | skins_list.append(skin_yellow_light); 206 | 207 | demo_settings.append("

      Skins

      "); 208 | demo_settings.append(skins_list); 209 | 210 | tab_pane.append(demo_settings); 211 | $("#control-sidebar-home-tab").after(tab_pane); 212 | 213 | setup(); 214 | 215 | /** 216 | * Toggles layout classes 217 | * 218 | * @param String cls the layout class to toggle 219 | * @returns void 220 | */ 221 | function change_layout(cls) { 222 | $("body").toggleClass(cls); 223 | AdminLTE.layout.fixSidebar(); 224 | //Fix the problem with right sidebar and layout boxed 225 | if (cls == "layout-boxed") 226 | AdminLTE.controlSidebar._fix($(".control-sidebar-bg")); 227 | if ($('body').hasClass('fixed') && cls == 'fixed') { 228 | AdminLTE.pushMenu.expandOnHover(); 229 | AdminLTE.layout.activate(); 230 | } 231 | AdminLTE.controlSidebar._fix($(".control-sidebar-bg")); 232 | AdminLTE.controlSidebar._fix($(".control-sidebar")); 233 | } 234 | 235 | /** 236 | * Replaces the old skin with the new skin 237 | * @param String cls the new skin class 238 | * @returns Boolean false to prevent link's default action 239 | */ 240 | function change_skin(cls) { 241 | $.each(my_skins, function (i) { 242 | $("body").removeClass(my_skins[i]); 243 | }); 244 | 245 | $("body").addClass(cls); 246 | store('skin', cls); 247 | return false; 248 | } 249 | 250 | /** 251 | * Store a new settings in the browser 252 | * 253 | * @param String name Name of the setting 254 | * @param String val Value of the setting 255 | * @returns void 256 | */ 257 | function store(name, val) { 258 | if (typeof (Storage) !== "undefined") { 259 | localStorage.setItem(name, val); 260 | } else { 261 | window.alert('Please use a modern browser to properly view this template!'); 262 | } 263 | } 264 | 265 | /** 266 | * Get a prestored setting 267 | * 268 | * @param String name Name of of the setting 269 | * @returns String The value of the setting | null 270 | */ 271 | function get(name) { 272 | if (typeof (Storage) !== "undefined") { 273 | return localStorage.getItem(name); 274 | } else { 275 | window.alert('Please use a modern browser to properly view this template!'); 276 | } 277 | } 278 | 279 | /** 280 | * Retrieve default settings and apply them to the template 281 | * 282 | * @returns void 283 | */ 284 | function setup() { 285 | var tmp = get('skin'); 286 | if (tmp && $.inArray(tmp, my_skins)) 287 | change_skin(tmp); 288 | 289 | //Add the change skin listener 290 | $("[data-skin]").on('click', function (e) { 291 | e.preventDefault(); 292 | change_skin($(this).data('skin')); 293 | }); 294 | 295 | //Add the layout manager 296 | $("[data-layout]").on('click', function () { 297 | change_layout($(this).data('layout')); 298 | }); 299 | 300 | $("[data-controlsidebar]").on('click', function () { 301 | change_layout($(this).data('controlsidebar')); 302 | var slide = !AdminLTE.options.controlSidebarOptions.slide; 303 | AdminLTE.options.controlSidebarOptions.slide = slide; 304 | if (!slide) 305 | $('.control-sidebar').removeClass('control-sidebar-open'); 306 | }); 307 | 308 | $("[data-sidebarskin='toggle']").on('click', function () { 309 | var sidebar = $(".control-sidebar"); 310 | if (sidebar.hasClass("control-sidebar-dark")) { 311 | sidebar.removeClass("control-sidebar-dark") 312 | sidebar.addClass("control-sidebar-light") 313 | } else { 314 | sidebar.removeClass("control-sidebar-light") 315 | sidebar.addClass("control-sidebar-dark") 316 | } 317 | }); 318 | 319 | $("[data-enable='expandOnHover']").on('click', function () { 320 | $(this).attr('disabled', true); 321 | AdminLTE.pushMenu.expandOnHover(); 322 | if (!$('body').hasClass('sidebar-collapse')) 323 | $("[data-layout='sidebar-collapse']").click(); 324 | }); 325 | 326 | // Reset options 327 | if ($('body').hasClass('fixed')) { 328 | $("[data-layout='fixed']").attr('checked', 'checked'); 329 | } 330 | if ($('body').hasClass('layout-boxed')) { 331 | $("[data-layout='layout-boxed']").attr('checked', 'checked'); 332 | } 333 | if ($('body').hasClass('sidebar-collapse')) { 334 | $("[data-layout='sidebar-collapse']").attr('checked', 'checked'); 335 | } 336 | 337 | } 338 | })(jQuery, $.AdminLTE); 339 | --------------------------------------------------------------------------------