提交 a60df9f0 编写于 作者: A Abdullah Almsaeed

Merge branch 'v2.4.0-dev'

// AdminLTE Gruntfile // AdminLTE Gruntfile
module.exports = function (grunt) { module.exports = function (grunt) { // jshint ignore:line
'use strict'; 'use strict';
grunt.initConfig({ grunt.initConfig({
pkg : grunt.file.readJSON('package.json'),
watch: { watch: {
// If any .less file changes in directory "build/less/" run the "less"-task. less : {
files: ["build/less/*.less", "build/less/skins/*.less", "dist/js/app.js"], // Compiles less files upon saving
tasks: ["less", "uglify"] files: ['build/less/*.less'],
tasks: ['less:development', 'less:production']
},
js : {
// Compile js files upon saving
files: ['build/js/*.js', 'dist/js/app.js'],
tasks: ['js']
},
skins: {
// Compile any skin less files upon saving
files: ['build/less/skins/*.less'],
tasks: ['less:skins', 'less:minifiedSkins']
}
}, },
// "less"-task configuration // 'less'-task configuration
// This task will compile all less files upon saving to create both AdminLTE.css and AdminLTE.min.css // This task will compile all less files upon saving to create both AdminLTE.css and AdminLTE.min.css
less: { less : {
// Development not compressed // Development not compressed
development: { development : {
options: {
// Whether to compress or not
compress: false
},
files: { files: {
// compilation.css : source.less // compilation.css : source.less
"dist/css/AdminLTE.css": "build/less/AdminLTE.less", 'dist/css/AdminLTE.css' : 'build/less/AdminLTE.less',
// AdminLTE without plugins // AdminLTE without plugins
"dist/css/alt/AdminLTE-without-plugins.css": "build/less/AdminLTE-without-plugins.less", 'dist/css/alt/AdminLTE-without-plugins.css' : 'build/less/AdminLTE-without-plugins.less',
// Separate plugins // Separate plugins
"dist/css/alt/AdminLTE-select2.css": "build/less/select2.less", 'dist/css/alt/AdminLTE-select2.css' : 'build/less/select2.less',
"dist/css/alt/AdminLTE-fullcalendar.css": "build/less/fullcalendar.less", 'dist/css/alt/AdminLTE-fullcalendar.css' : 'build/less/fullcalendar.less',
"dist/css/alt/AdminLTE-bootstrap-social.css": "build/less/bootstrap-social.less", 'dist/css/alt/AdminLTE-bootstrap-social.css': 'build/less/bootstrap-social.less'
//Non minified skin files
"dist/css/skins/skin-blue.css": "build/less/skins/skin-blue.less",
"dist/css/skins/skin-black.css": "build/less/skins/skin-black.less",
"dist/css/skins/skin-yellow.css": "build/less/skins/skin-yellow.less",
"dist/css/skins/skin-green.css": "build/less/skins/skin-green.less",
"dist/css/skins/skin-red.css": "build/less/skins/skin-red.less",
"dist/css/skins/skin-purple.css": "build/less/skins/skin-purple.less",
"dist/css/skins/skin-blue-light.css": "build/less/skins/skin-blue-light.less",
"dist/css/skins/skin-black-light.css": "build/less/skins/skin-black-light.less",
"dist/css/skins/skin-yellow-light.css": "build/less/skins/skin-yellow-light.less",
"dist/css/skins/skin-green-light.css": "build/less/skins/skin-green-light.less",
"dist/css/skins/skin-red-light.css": "build/less/skins/skin-red-light.less",
"dist/css/skins/skin-purple-light.css": "build/less/skins/skin-purple-light.less",
"dist/css/skins/_all-skins.css": "build/less/skins/_all-skins.less"
} }
}, },
// Production compresses version // Production compressed version
production: { production : {
options: { options: {
// Whether to compress or not
compress: true compress: true
}, },
files: { files : {
// compilation.css : source.less // compilation.css : source.less
"dist/css/AdminLTE.min.css": "build/less/AdminLTE.less", 'dist/css/AdminLTE.min.css' : 'build/less/AdminLTE.less',
// AdminLTE without plugins // AdminLTE without plugins
"dist/css/alt/AdminLTE-without-plugins.min.css": "build/less/AdminLTE-without-plugins.less", 'dist/css/alt/AdminLTE-without-plugins.min.css' : 'build/less/AdminLTE-without-plugins.less',
// Separate plugins // Separate plugins
"dist/css/alt/AdminLTE-select2.min.css": "build/less/select2.less", 'dist/css/alt/AdminLTE-select2.min.css' : 'build/less/select2.less',
"dist/css/alt/AdminLTE-fullcalendar.min.css": "build/less/fullcalendar.less", 'dist/css/alt/AdminLTE-fullcalendar.min.css' : 'build/less/fullcalendar.less',
"dist/css/alt/AdminLTE-bootstrap-social.min.css": "build/less/bootstrap-social.less", 'dist/css/alt/AdminLTE-bootstrap-social.min.css': 'build/less/bootstrap-social.less'
// Skins minified }
"dist/css/skins/skin-blue.min.css": "build/less/skins/skin-blue.less", },
"dist/css/skins/skin-black.min.css": "build/less/skins/skin-black.less", // Non minified skin files
"dist/css/skins/skin-yellow.min.css": "build/less/skins/skin-yellow.less", skins : {
"dist/css/skins/skin-green.min.css": "build/less/skins/skin-green.less", files: {
"dist/css/skins/skin-red.min.css": "build/less/skins/skin-red.less", 'dist/css/skins/skin-blue.css' : 'build/less/skins/skin-blue.less',
"dist/css/skins/skin-purple.min.css": "build/less/skins/skin-purple.less", 'dist/css/skins/skin-black.css' : 'build/less/skins/skin-black.less',
"dist/css/skins/skin-blue-light.min.css": "build/less/skins/skin-blue-light.less", 'dist/css/skins/skin-yellow.css' : 'build/less/skins/skin-yellow.less',
"dist/css/skins/skin-black-light.min.css": "build/less/skins/skin-black-light.less", 'dist/css/skins/skin-green.css' : 'build/less/skins/skin-green.less',
"dist/css/skins/skin-yellow-light.min.css": "build/less/skins/skin-yellow-light.less", 'dist/css/skins/skin-red.css' : 'build/less/skins/skin-red.less',
"dist/css/skins/skin-green-light.min.css": "build/less/skins/skin-green-light.less", 'dist/css/skins/skin-purple.css' : 'build/less/skins/skin-purple.less',
"dist/css/skins/skin-red-light.min.css": "build/less/skins/skin-red-light.less", 'dist/css/skins/skin-blue-light.css' : 'build/less/skins/skin-blue-light.less',
"dist/css/skins/skin-purple-light.min.css": "build/less/skins/skin-purple-light.less", 'dist/css/skins/skin-black-light.css' : 'build/less/skins/skin-black-light.less',
"dist/css/skins/_all-skins.min.css": "build/less/skins/_all-skins.less" 'dist/css/skins/skin-yellow-light.css': 'build/less/skins/skin-yellow-light.less',
'dist/css/skins/skin-green-light.css' : 'build/less/skins/skin-green-light.less',
'dist/css/skins/skin-red-light.css' : 'build/less/skins/skin-red-light.less',
'dist/css/skins/skin-purple-light.css': 'build/less/skins/skin-purple-light.less',
'dist/css/skins/_all-skins.css' : 'build/less/skins/_all-skins.less'
}
},
// Skins minified
minifiedSkins: {
options: {
compress: true
},
files : {
'dist/css/skins/skin-blue.min.css' : 'build/less/skins/skin-blue.less',
'dist/css/skins/skin-black.min.css' : 'build/less/skins/skin-black.less',
'dist/css/skins/skin-yellow.min.css' : 'build/less/skins/skin-yellow.less',
'dist/css/skins/skin-green.min.css' : 'build/less/skins/skin-green.less',
'dist/css/skins/skin-red.min.css' : 'build/less/skins/skin-red.less',
'dist/css/skins/skin-purple.min.css' : 'build/less/skins/skin-purple.less',
'dist/css/skins/skin-blue-light.min.css' : 'build/less/skins/skin-blue-light.less',
'dist/css/skins/skin-black-light.min.css' : 'build/less/skins/skin-black-light.less',
'dist/css/skins/skin-yellow-light.min.css': 'build/less/skins/skin-yellow-light.less',
'dist/css/skins/skin-green-light.min.css' : 'build/less/skins/skin-green-light.less',
'dist/css/skins/skin-red-light.min.css' : 'build/less/skins/skin-red-light.less',
'dist/css/skins/skin-purple-light.min.css': 'build/less/skins/skin-purple-light.less',
'dist/css/skins/_all-skins.min.css' : 'build/less/skins/_all-skins.less'
} }
} }
}, },
// Uglify task info. Compress the js files. // Uglify task info. Compress the js files.
uglify: { uglify: {
options: { options : {
mangle: true, mangle : true,
preserveComments: 'some' preserveComments: 'some'
}, },
my_target: { production: {
files: { files: {
'dist/js/app.min.js': ['dist/js/app.js'] 'dist/js/app.min.js' : ['dist/js/app.js'],
'dist/js/adminlte.min.js': ['dist/js/adminlte.js']
} }
} }
}, },
// Concatenate JS Files
concat: {
options: {
separator: '\n\n',
banner : '/*! AdminLTE app.js\n'
+ '* ================\n'
+ '* Main JS application file for AdminLTE v2. This file\n'
+ '* should be included in all pages. It controls some layout\n'
+ '* options and implements exclusive AdminLTE plugins.\n'
+ '*\n'
+ '* @Author Almsaeed Studio\n'
+ '* @Support <https://www.almsaeedstudio.com>\n'
+ '* @Email <abdullah@almsaeedstudio.com>\n'
+ '* @version <%= pkg.version %>\n'
+ '* @repository <%= pkg.repository.url %>\n'
+ '* @license MIT <http://opensource.org/licenses/MIT>\n'
+ '*/\n\n'
+ '// Make sure jQuery has been loaded\n'
+ 'if (typeof jQuery === \'undefined\') {\n'
+ 'throw new Error(\'AdminLTE requires jQuery\')\n'
+ '}\n\n'
},
dist : {
src : [
'build/js/Layout.js',
'build/js/PushMenu.js',
'build/js/Tree.js',
'build/js/ControlSidebar.js',
'build/js/BoxWidget.js',
'build/js/TodoList.js',
'build/js/DirectChat.js'
],
dest: 'dist/js/adminlte.js'
}
},
// Build the documentation files // Build the documentation files
includes: { includes: {
build: { build: {
src: ['*.html'], // Source files src : ['*.html'], // Source files
dest: 'documentation/', // Destination directory dest : 'documentation/', // Destination directory
flatten: true, flatten: true,
cwd: 'documentation/build', cwd : 'documentation/build',
options: { options: {
silent: true, silent : true,
includePath: 'documentation/build/include' includePath: 'documentation/build/include'
} }
} }
...@@ -104,37 +162,57 @@ module.exports = function (grunt) { ...@@ -104,37 +162,57 @@ module.exports = function (grunt) {
// Optimize images // Optimize images
image: { image: {
dynamic: { dynamic: {
files: [{ files: [
expand: true, {
cwd: 'build/img/', expand: true,
src: ['**/*.{png,jpg,gif,svg,jpeg}'], cwd : 'build/img/',
dest: 'dist/img/' src : ['**/*.{png,jpg,gif,svg,jpeg}'],
}] dest : 'dist/img/'
}
]
} }
}, },
// Validate JS code // Validate JS code
jshint: { jshint: {
options: { options: {
jshintrc: '.jshintrc' jshintrc: 'build/js/.jshintrc'
},
grunt : {
options: {
jshintrc: 'build/grunt/.jshintrc'
},
src : 'Gruntfile.js'
}, },
core: { core : {
src: 'dist/js/app.js' src: 'build/js/*.js'
}, },
demo: { demo : {
src: 'dist/js/demo.js' src: 'dist/js/demo.js'
}, },
pages: { pages : {
src: 'dist/js/pages/*.js' src: 'dist/js/pages/*.js'
} }
}, },
jscs: {
options: {
config: 'build/js/.jscsrc'
},
core : {
src: '<%= jshint.core.src %>'
},
pages : {
src: '<%= jshint.pages.src %>'
}
},
// Validate CSS files // Validate CSS files
csslint: { csslint: {
options: { options: {
csslintrc: 'build/less/.csslintrc' csslintrc: 'build/less/.csslintrc'
}, },
dist: [ dist : [
'dist/css/AdminLTE.css' 'dist/css/AdminLTE.css'
] ]
}, },
...@@ -144,14 +222,14 @@ module.exports = function (grunt) { ...@@ -144,14 +222,14 @@ module.exports = function (grunt) {
options: { options: {
relaxerror: ['W005'] relaxerror: ['W005']
}, },
files: ['pages/**/*.html', '*.html'] files : ['pages/**/*.html', '*.html']
}, },
// Delete images in build directory // Delete images in build directory
// After compressing the images in the build/img dir, there is no need // After compressing the images in the build/img dir, there is no need
// for them // for them
clean: { clean: {
build: ["build/img/*"] build: ['build/img/*']
} }
}); });
...@@ -169,16 +247,21 @@ module.exports = function (grunt) { ...@@ -169,16 +247,21 @@ module.exports = function (grunt) {
grunt.loadNpmTasks('grunt-image'); grunt.loadNpmTasks('grunt-image');
// Validate JS code // Validate JS code
grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-jscs');
// Delete not needed files // Delete not needed files
grunt.loadNpmTasks('grunt-contrib-clean'); grunt.loadNpmTasks('grunt-contrib-clean');
// Lint CSS // Lint CSS
grunt.loadNpmTasks('grunt-contrib-csslint'); grunt.loadNpmTasks('grunt-contrib-csslint');
// Lint Bootstrap // Lint Bootstrap
grunt.loadNpmTasks('grunt-bootlint'); grunt.loadNpmTasks('grunt-bootlint');
// Concatenate JS files
grunt.loadNpmTasks('grunt-contrib-concat');
// Linting task // Linting task
grunt.registerTask('lint', ['jshint', 'csslint', 'bootlint']); grunt.registerTask('lint', ['jshint', 'csslint', 'bootlint']);
// JS task
grunt.registerTask('js', ['concat', 'uglify']);
// The default task (running "grunt" in console) is "watch" // The default task (running 'grunt' in console) is 'watch'
grunt.registerTask('default', ['watch']); grunt.registerTask('default', ['watch']);
}; };
...@@ -8,68 +8,18 @@ Introduction ...@@ -8,68 +8,18 @@ Introduction
**AdminLTE** -- is a fully responsive admin template. Based on **[Bootstrap 3](https://github.com/twbs/bootstrap)** framework. Highly customizable and easy to use. Fits many screen resolutions from small mobile devices to large desktops. Check out the live preview now and see for yourself. **AdminLTE** -- is a fully responsive admin template. Based on **[Bootstrap 3](https://github.com/twbs/bootstrap)** framework. Highly customizable and easy to use. Fits many screen resolutions from small mobile devices to large desktops. Check out the live preview now and see for yourself.
**Download & Preview on [Almsaeed Studio](https://almsaeedstudio.com)** **Download & Preview on [AdminLTE.IO](https://adminlte.io)**
Looking for Premium Templates? ### Looking for Premium Templates?
------------------------------ **AdminLTE.IO just opened a new premium templates website. Hand picked to ensure the best quality and the most affordable prices. Visit https://themequarry.com for more information.**
**Almsaeed studio just opened a new premium templates website. Hand picked to ensure the best quality and the most affordable prices. Visit https://themequarry.com for more information.**
## Documentation & Installation Guide
Visit the [online documentation](https://adminlte.io/docs) for the most
updated guide.
!["AdminLTE Presentation"] (https://almsaeedstudio.com/AdminLTE2.png "AdminLTE Presentation") !["AdminLTE Presentation"] (https://adminlte.io/AdminLTE2.png "AdminLTE Presentation")
**AdminLTE** has been carefully coded with clear comments in all of its JS, LESS and HTML files. LESS has been used to increase code customizability. ### Contribution
Installation
------------
There are multiple ways to install AdminLTE.
####Download:
Download from Github or [visit Almsaeed Studio](https://almsaeedstudio.com) and download the latest release.
####Using The Command Line:
**Github**
- Fork the repository ([here is the guide](https://help.github.com/articles/fork-a-repo/)).
- Clone to your machine
```
git clone https://github.com/YOUR_USERNAME/AdminLTE.git
```
**Bower**
```
bower install admin-lte
```
**npm**
```
npm install --save admin-lte
```
**Composer**
```
composer require "almasaeed2010/adminlte=~2.0"
```
Documentation
-------------
Visit the [online documentation](https://almsaeedstudio.com/themes/AdminLTE/documentation/index.html) for the most
updated guide. Information will be added on a weekly basis.
Browser Support
---------------
- IE 9+
- Firefox (latest)
- Chrome (latest)
- Safari (latest)
- Opera (latest)
Contribution
------------
Contribution are always **welcome and recommended**! Here is how: Contribution are always **welcome and recommended**! Here is how:
- Fork the repository ([here is the guide](https://help.github.com/articles/fork-a-repo/)). - Fork the repository ([here is the guide](https://help.github.com/articles/fork-a-repo/)).
...@@ -79,46 +29,29 @@ Contribution are always **welcome and recommended**! Here is how: ...@@ -79,46 +29,29 @@ Contribution are always **welcome and recommended**! Here is how:
#### Contribution Requirements: #### Contribution Requirements:
- When you contribute, you agree to give a non-exclusive license to Almsaeed Studio to use that contribution in any context as we (Almsaeed Studio) see appropriate. - When you contribute, you agree to give a non-exclusive license to AdminLTE.IO to use that contribution in any context as we (AdminLTE.IO) see appropriate.
- If you use content provided by another party, it must be appropriately licensed using an [open source](http://opensource.org/licenses) license. - If you use content provided by another party, it must be appropriately licensed using an [open source](http://opensource.org/licenses) license.
- Contributions are only accepted through Github pull requests. - Contributions are only accepted through Github pull requests.
- Finally, contributed code must work in all supported browsers (see above for browser support). - Finally, contributed code must work in all supported browsers (see above for browser support).
License ### License
------- AdminLTE is an open source project by [AdminLTE.IO](https://adminlte.io) that is licensed under [MIT](http://opensource.org/licenses/MIT). AdminLTE.IO
AdminLTE is an open source project by [Almsaeed Studio](https://almsaeedstudio.com) that is licensed under [MIT](http://opensource.org/licenses/MIT). Almsaeed Studio reserves the right to change the license of future releases. Wondering what you can or can't do? View the [license guide](https://adminlte.io/docs/license).
reserves the right to change the license of future releases.
Todo List
---------
- ~~Light sidebar colors~~ (Done v2.1.0)
- ~~Right sidebar~~ (Done v2.1.0)
- ~~Minified main-sidebar~~ (Done v2.1.0)
- Right to left support
- ~~Custom pace style~~ (Done v2.3.1)
Legacy Releases
----------------
AdminLTE 1.x can be easily upgraded to 2.x using [this guide](https://almsaeedstudio.com/themes/AdminLTE/documentation/index.html#upgrade), but if you intend to keep using AdminLTE 1.x, you can download the latest release from the [releases](https://github.com/almasaeed2010/AdminLTE/releases) section above.
Change log
----------
**For the most recent change log, visit the [releases page](https://github.com/almasaeed2010/AdminLTE/releases) or the [changelog file](https://github.com/almasaeed2010/AdminLTE/blob/master/changelog.md).** We will add a detailed release notes to each new release.
Image Credits
-------------
[Pixeden](http://www.pixeden.com/psd-web-elements/flat-responsive-showcase-psd)
[Graphicsfuel](http://www.graphicsfuel.com/2013/02/13-high-resolution-blur-backgrounds/) ### Legacy Releases
AdminLTE 1.x can be easily upgraded to 2.x using [this guide](https://adminlte.io/themes/AdminLTE/documentation/index.html#upgrade), but if you intend to keep using AdminLTE 1.x, you can download the latest release from the [releases](https://github.com/almasaeed2010/AdminLTE/releases) section above.
[Pickaface](http://pickaface.net/) ### Change log
**For the most recent change log, visit the [releases page](https://github.com/almasaeed2010/AdminLTE/releases) or the [changelog file](https://github.com/almasaeed2010/AdminLTE/blob/master/changelog.md).** We will add a detailed release notes to each new release.
[Unsplash](https://unsplash.com/)
[Uifaces](http://uifaces.com/) ### Image Credits
- [Pixeden](http://www.pixeden.com/psd-web-elements/flat-responsive-showcase-psd)
- [Graphicsfuel](http://www.graphicsfuel.com/2013/02/13-high-resolution-blur-backgrounds/)
- [Pickaface](http://pickaface.net/)
- [Unsplash](https://unsplash.com/)
- [Uifaces](http://uifaces.com/)
Donations ### Donations
---------
Donations are **greatly appreciated!** Donations are **greatly appreciated!**
[![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif "AdminLTE Presentation")](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=629XCUSXBHCBC "Donate") [![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif "AdminLTE Presentation")](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=629XCUSXBHCBC "Donate")
...@@ -29,5 +29,8 @@ ...@@ -29,5 +29,8 @@
"bower_components", "bower_components",
"composer.json", "composer.json",
"documentation" "documentation"
] ],
"dependencies": {
}
} }
{
"extends" : "../js/.jshintrc",
"asi" : false,
"browser" : false,
"es3" : false,
"node" : true
}
\ No newline at end of file
{
"disallowEmptyBlocks": true,
"disallowKeywords": ["with"],
"disallowMixedSpacesAndTabs": true,
"disallowMultipleLineStrings": true,
"disallowMultipleVarDecl": true,
"disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"],
"disallowSpaceBeforeBinaryOperators": [","],
"disallowSpaceBeforePostfixUnaryOperators": ["++", "--"],
"disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true },
"disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true },
"disallowSpacesInsideArrayBrackets": true,
"disallowSpacesInsideParentheses": true,
"disallowTrailingComma": true,
"disallowTrailingWhitespace": true,
"requireCamelCaseOrUpperCaseIdentifiers": true,
"requireCapitalizedConstructors": true,
"requireCommaBeforeLineBreak": true,
"requireDollarBeforejQueryAssignment": true,
"requireDotNotation": true,
"requireLineFeedAtFileEnd": true,
"requirePaddingNewLinesAfterUseStrict": true,
"requirePaddingNewLinesBeforeExport": true,
"requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", "<", ">=", "<="],
"requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch"],
"requireSpaceAfterLineComment": true,
"requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", "<", ">=", "<="],
"requireSpaceBetweenArguments": true,
"requireSpacesInAnonymousFunctionExpression": { "beforeOpeningCurlyBrace": true, "beforeOpeningRoundBrace": true },
"requireSpacesInConditionalExpression": true,
"requireSpacesInForStatement": true,
"requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true },
"requireSpacesInFunctionExpression": { "beforeOpeningCurlyBrace": true },
"requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true },
"requireSpacesInsideObjectBrackets": "allButNested",
"validateAlignedFunctionParameters": true,
"validateIndentation": 2,
"validateLineBreaks": "LF",
"validateNewlineAfterArrayElements": true,
"validateQuoteMarks": "'",
"maxErrors": "3000"
}
\ No newline at end of file
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
"es3" : true, "es3" : true,
"expr" : true, "expr" : true,
"jquery" : true, "jquery" : true,
"latedef" : "nofunc", "latedef" : true,
"laxbreak" : true, "laxbreak" : true,
"nonbsp" : true, "nonbsp" : true,
"strict" : true, "strict" : true,
......
/* BoxRefresh()
* =========
* Adds AJAX content control to a box.
*
* @Usage: $('#my-box').boxRefresh(options)
* or add [data-widget="box-refresh"] to the box element
* Pass any option as data-option="value"
*/
+function ($) {
'use strict'
var DataKey = 'lte.boxrefresh'
var Default = {
source : '',
params : {},
trigger : '.refresh-btn',
content : '.box-body',
loadInContent : true,
responseType : '',
overlayTemplate: '<div class="overlay"><div class="fa fa-refresh fa-spin"></div></div>',
onLoadStart : function () {
},
onLoadDone : function (response) {
return response
}
}
var Selector = {
data: '[data-widget="box-refresh"]'
}
// BoxRefresh Class Definition
// =========================
var BoxRefresh = function (element, options) {
this.element = element
this.options = options
this.$overlay = $(options.overlay)
if (options.source === '') {
throw new Error('Source url was not defined. Please specify a url in your BoxRefresh source option.')
}
this._setUpListeners()
this.load()
}
BoxRefresh.prototype.load = function () {
this._addOverlay()
this.options.onLoadStart.call($(this))
$.get(this.options.source, this.options.params, function (response) {
if (this.options.loadInContent) {
$(this.options.content).html(response)
}
this.options.onLoadDone.call($(this), response)
this._removeOverlay()
}.bind(this), this.options.responseType !== '' && this.options.responseType)
}
// Private
BoxRefresh.prototype._setUpListeners = function () {
$(this.element).on('click', Selector.trigger, function (event) {
if (event) event.preventDefault()
this.load()
}.bind(this))
}
BoxRefresh.prototype._addOverlay = function () {
$(this.element).append(this.$overlay)
}
BoxRefresh.prototype._removeOverlay = function () {
$(this.element).remove(this.$overlay)
}
// Plugin Definition
// =================
function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data(DataKey)
if (!data) {
var options = $.extend({}, Default, $this.data(), typeof option == 'object' && option)
$this.data(DataKey, (data = new BoxRefresh($this, options)))
}
if (typeof data == 'string') {
if (typeof data[option] == 'undefined') {
throw new Error('No method named ' + option)
}
data[option]()
}
})
}
var old = $.fn.boxRefresh
$.fn.boxRefresh = Plugin
$.fn.boxRefresh.Constructor = BoxRefresh
// No Conflict Mode
// ================
$.fn.boxRefresh.noConflict = function () {
$.fn.boxRefresh = old
return this
}
// BoxRefresh Data API
// =================
$(window).on('load', function () {
$(Selector.data).each(function () {
Plugin.call($(this))
})
})
}(jQuery)
/* BoxWidget()
* ======
* Adds box widget functions to boxes.
*
* @Usage: $('.my-box').boxWidget(options)
* or add [data-widget="box-widget"] to the ul element
* Pass any option as data-option="value"
*/
+function ($) {
'use strict'
var DataKey = 'lte.boxwidget'
var Default = {
animationSpeed : 500,
collapseTrigger: '[data-widget="collapse"]',
removeTrigger : '[data-widget="remove"]',
collapseIcon : 'fa-minus',
expandIcon : 'fa-plus',
removeIcon : 'fa-times'
}
var Selector = {
data : '.box',
collapsed: '.collapsed-box',
body : '.box-body',
footer : '.box-footer',
tools : '.box-tools'
}
var ClassName = {
collapsed: 'collapsed-box'
}
var Event = {
collapsed: 'collapsed.boxwidget',
expanded : 'expanded.boxwidget',
removed : 'removed.boxwidget'
}
// BoxWidget Class Definition
// =====================
var BoxWidget = function (element, options) {
this.element = element
this.options = options
this._setUpListeners()
}
BoxWidget.prototype.toggle = function () {
var isOpen = !$(this.element).is(Selector.collapsed)
if (isOpen) {
this.collapse()
} else {
this.expand()
}
}
BoxWidget.prototype.expand = function () {
var expandedEvent = $.Event(Event.expanded)
var collapseIcon = this.options.collapseIcon
var expandIcon = this.options.expandIcon
$(this.element).removeClass(ClassName.collapsed)
$(Selector.tools)
.find('.' + expandIcon)
.removeClass(expandIcon)
.addClass(collapseIcon)
$(this.element).find(Selector.body + ', ' + Selector.footer)
.slideDown(this.options.animationSpeed, function () {
$(this.element).trigger(expandedEvent)
}.bind(this))
}
BoxWidget.prototype.collapse = function () {
var collapsedEvent = $.Event(Event.collapsed)
var collapseIcon = this.options.collapseIcon
var expandIcon = this.options.expandIcon
$(Selector.tools)
.find('.' + collapseIcon)
.removeClass(collapseIcon)
.addClass(expandIcon)
$(this.element).find(Selector.body + ', ' + Selector.footer)
.slideUp(this.options.animationSpeed, function () {
$(this.element).addClass(ClassName.collapsed)
$(this.element).trigger(collapsedEvent)
}.bind(this))
}
BoxWidget.prototype.remove = function () {
var removedEvent = $.Event(Event.removed)
$(this.element).slideUp(this.options.animationSpeed, function () {
$(this.element).trigger(removedEvent)
$(this.element).remove()
}.bind(this))
}
// Private
BoxWidget.prototype._setUpListeners = function () {
var that = this
$(this.element).on('click', this.options.collapseTrigger, function (event) {
if (event) event.preventDefault()
that.toggle($(this))
})
$(this.element).on('click', this.options.removeTrigger, function (event) {
if (event) event.preventDefault()
that.remove($(this))
})
}
// Plugin Definition
// =================
function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data(DataKey)
if (!data) {
var options = $.extend({}, Default, $this.data(), typeof option == 'object' && option)
$this.data(DataKey, (data = new BoxWidget($this, options)))
}
if (typeof option == 'string') {
if (typeof data[option] == 'undefined') {
throw new Error('No method named ' + option)
}
data[option]()
}
})
}
var old = $.fn.boxWidget
$.fn.boxWidget = Plugin
$.fn.boxWidget.Constructor = BoxWidget
// No Conflict Mode
// ================
$.fn.boxWidget.noConflict = function () {
$.fn.boxWidget = old
return this
}
// BoxWidget Data API
// ==================
$(window).on('load', function () {
$(Selector.data).each(function () {
Plugin.call($(this))
})
})
}(jQuery)
/* ControlSidebar()
* ===============
* Toggles the state of the control sidebar
*
* @Usage: $('#control-sidebar-trigger').controlSidebar(options)
* or add [data-toggle="control-sidebar"] to the trigger
* Pass any option as data-option="value"
*/
+function ($) {
'use strict'
var DataKey = 'lte.controlsidebar'
var Default = {
slide: true
}
var Selector = {
sidebar: '.control-sidebar',
data : '[data-toggle="control-sidebar"]',
open : '.control-sidebar-open',
bg : '.control-sidebar-bg',
wrapper: '.wrapper',
content: '.content-wrapper',
boxed : '.layout-boxed'
}
var ClassName = {
open : 'control-sidebar-open',
fixed: 'fixed'
}
var Event = {
collapsed: 'collapsed.controlsidebar',
expanded : 'expanded.controlsidebar'
}
// ControlSidebar Class Definition
// ===============================
var ControlSidebar = function (element, options) {
this.element = element
this.options = options
this.hasBindedResize = false
this.init()
}
ControlSidebar.prototype.init = function () {
// Add click listener if the element hasn't been
// initialized using the data API
if (!$(this.element).is(Selector.data)) {
$(this).on('click', this.toggle)
}
this.fix()
$(window).resize(function () {
this.fix()
}.bind(this))
}
ControlSidebar.prototype.toggle = function (event) {
if (event) event.preventDefault()
this.fix()
if (!$(Selector.sidebar).is(Selector.open) && !$('body').is(Selector.open)) {
this.expand()
} else {
this.collapse()
}
}
ControlSidebar.prototype.expand = function () {
if (!this.options.slide) {
$('body').addClass(ClassName.open)
} else {
$(Selector.sidebar).addClass(ClassName.open)
}
$(this.element).trigger($.Event(Event.expanded))
}
ControlSidebar.prototype.collapse = function () {
$('body, ' + Selector.sidebar).removeClass(ClassName.open)
$(this.element).trigger($.Event(Event.collapsed))
}
ControlSidebar.prototype.fix = function () {
if ($('body').is(Selector.boxed)) {
this._fixForBoxed($(Selector.bg))
}
}
// Private
ControlSidebar.prototype._fixForBoxed = function (bg) {
bg.css({
position: 'absolute',
height : $(Selector.wrapper).height()
})
}
// Plugin Definition
// =================
function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data(DataKey)
if (!data) {
var options = $.extend({}, Default, $this.data(), typeof option == 'object' && option)
$this.data(DataKey, (data = new ControlSidebar($this, options)))
}
if (typeof option == 'string') data.toggle()
})
}
var old = $.fn.controlSidebar
$.fn.controlSidebar = Plugin
$.fn.controlSidebar.Constructor = ControlSidebar
// No Conflict Mode
// ================
$.fn.controlSidebar.noConflict = function () {
$.fn.controlSidebar = old
return this
}
// ControlSidebar Data API
// =======================
$(document).on('click', Selector.data, function (event) {
if (event) event.preventDefault()
Plugin.call($(this), 'toggle')
})
}(jQuery)
/* DirectChat()
* ===============
* Toggles the state of the control sidebar
*
* @Usage: $('#my-chat-box').directChat()
* or add [data-widget="direct-chat"] to the trigger
*/
+function ($) {
'use strict'
var DataKey = 'lte.directchat'
var Selector = {
data: '[data-widget="chat-pane-toggle"]',
box : '.direct-chat'
}
var ClassName = {
open: 'direct-chat-contacts-open'
}
// DirectChat Class Definition
// ===========================
var DirectChat = function (element) {
this.element = element
}
DirectChat.prototype.toggle = function ($trigger) {
$trigger.parents(Selector.box).first().toggleClass(ClassName.open)
}
// Plugin Definition
// =================
function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data(DataKey)
if (!data) {
$this.data(DataKey, (data = new DirectChat($this)))
}
if (typeof option == 'string') data.toggle($this)
})
}
var old = $.fn.directChat
$.fn.directChat = Plugin
$.fn.directChat.Constructor = DirectChat
// No Conflict Mode
// ================
$.fn.directChat.noConflict = function () {
$.fn.directChat = old
return this
}
// DirectChat Data API
// ===================
$(document).on('click', Selector.data, function (event) {
if (event) event.preventDefault()
Plugin.call($(this), 'toggle')
})
}(jQuery)
/* Layout()
* ========
* Implements AdminLTE layout.
* Fixes the layout height in case min-height fails.
*
* @usage activated automatically upon window load.
* Configure any options by passing data-option="value"
* to the body tag.
*/
+function ($) {
'use strict'
var DataKey = 'lte.layout'
var Default = {
slimscroll : true,
resetHeight: true
}
var Selector = {
wrapper : '.wrapper',
contentWrapper: '.content-wrapper',
layoutBoxed : '.layout-boxed',
mainFooter : '.main-footer',
mainHeader : '.main-header',
sidebar : '.sidebar',
controlSidebar: '.control-sidebar',
fixed : '.fixed',
sidebarMenu : '.sidebar-menu'
}
var ClassName = {
fixed : 'fixed',
holdTransition: 'hold-transition'
}
var Layout = function (options) {
this.options = options
this.bindedResize = false
this.activate()
}
Layout.prototype.activate = function () {
this.fix()
this.fixSidebar()
$('body').removeClass(ClassName.holdTransition)
if (this.options.resetHeight) {
$('body, html, ' + Selector.wrapper).css({
'height' : 'auto',
'min-height': '100%'
})
}
if (!this.bindedResize) {
$(window).resize(function () {
this.fix()
this.fixSidebar()
}.bind(this))
this.bindedResize = true
}
$(Selector.sidebarMenu).on('expanded.tree', function () {
this.fix()
this.fixSidebar()
}.bind(this))
$(Selector.sidebarMenu).on('collapsed.tree', function () {
this.fix()
this.fixSidebar()
}.bind(this))
}
Layout.prototype.fix = function () {
// Remove overflow from .wrapper if layout-boxed exists
$(Selector.layoutBoxed + ' > ' + Selector.wrapper).css('overflow', 'hidden')
// Get window height and the wrapper height
var footerHeight = $(Selector.mainFooter).outerHeight() || 0
var neg = $(Selector.mainHeader).outerHeight() + footerHeight
var windowHeight = $(window).height()
var sidebarHeight = $(Selector.sidebar).height() || 0
// Set the min-height of the content and sidebar based on the
// the height of the document.
if ($('body').hasClass(ClassName.fixed)) {
$(Selector.contentWrapper).css('min-height', windowHeight - footerHeight)
} else {
var postSetWidth
if (windowHeight >= sidebarHeight) {
$(Selector.contentWrapper).css('min-height', windowHeight - neg)
postSetWidth = windowHeight - neg
} else {
$(Selector.contentWrapper).css('min-height', sidebarHeight)
postSetWidth = sidebarHeight
}
// Fix for the control sidebar height
var $controlSidebar = $(Selector.controlSidebar)
if (typeof $controlSidebar !== 'undefined') {
if ($controlSidebar.height() > postSetWidth)
$(Selector.contentWrapper).css('min-height', $controlSidebar.height())
}
}
}
Layout.prototype.fixSidebar = function () {
// Make sure the body tag has the .fixed class
if (!$('body').hasClass(ClassName.fixed)) {
if (typeof $.fn.slimScroll !== 'undefined') {
$(Selector.sidebar).slimScroll({ destroy: true }).height('auto')
}
return
}
// Enable slimscroll for fixed layout
if (this.options.slimscroll) {
if (typeof $.fn.slimScroll !== 'undefined') {
// Destroy if it exists
$(Selector.sidebar).slimScroll({ destroy: true }).height('auto')
// Add slimscroll
$(Selector.sidebar).slimScroll({
height: ($(window).height() - $(Selector.mainHeader).height()) + 'px',
color : 'rgba(0,0,0,0.2)',
size : '3px'
})
}
}
}
// Plugin Definition
// =================
function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data(DataKey)
if (!data) {
var options = $.extend({}, Default, $this.data(), typeof option === 'object' && option)
$this.data(DataKey, (data = new Layout(options)))
}
if (typeof option === 'string') {
if (typeof data[option] === 'undefined') {
throw new Error('No method named ' + option)
}
data[option]()
}
})
}
var old = $.fn.layout
$.fn.layout = Plugin
$.fn.layout.Constuctor = Layout
// No conflict mode
// ================
$.fn.layout.noConflict = function () {
$.fn.layout = old
return this
}
// Layout DATA-API
// ===============
$(window).on('load', function () {
Plugin.call($('body'))
})
}(jQuery)
/* PushMenu()
* ==========
* Adds the push menu functionality to the sidebar.
*
* @usage: $('.btn').pushMenu(options)
* or add [data-toggle="push-menu"] to any toggle button
* Pass any option as data-option="value"
*/
+function ($) {
'use strict'
var DataKey = 'lte.pushmenu'
var Default = {
collapseScreenSize : 767,
expandOnHover : false,
expandTransitionDelay: 200
}
var Selector = {
collapsed : '.sidebar-collapse',
open : '.sidebar-open',
mainSidebar : '.main-sidebar',
contentWrapper: '.content-wrapper',
searchInput : '.sidebar-form .form-control',
button : '[data-toggle="push-menu"]',
mini : '.sidebar-mini',
expanded : '.sidebar-expanded-on-hover',
layoutFixed : '.fixed'
}
var ClassName = {
collapsed : 'sidebar-collapse',
open : 'sidebar-open',
mini : 'sidebar-mini',
expanded : 'sidebar-expanded-on-hover',
expandFeature: 'sidebar-mini-expand-feature',
layoutFixed : 'fixed'
}
var Event = {
expanded : 'expanded.pushMenu',
collapsed: 'collapsed.pushMenu'
}
// PushMenu Class Definition
// =========================
var PushMenu = function (options) {
this.options = options
this.init()
}
PushMenu.prototype.init = function () {
if (this.options.expandOnHover
|| ($('body').is(Selector.mini + Selector.layoutFixed))) {
this.expandOnHover()
$('body').addClass(ClassName.expandFeature)
}
$(Selector.contentWrapper).click(function () {
// Enable hide menu when clicking on the content-wrapper on small screens
if ($(window).width() <= this.options.collapseScreenSize && $('body').hasClass(ClassName.open)) {
this.close()
}
}.bind(this))
// __Fix for android devices
$(Selector.searchInput).click(function (e) {
e.stopPropagation()
})
}
PushMenu.prototype.toggle = function () {
var windowWidth = $(window).width()
var isOpen = !$('body').hasClass(ClassName.collapsed)
if (windowWidth <= this.options.collapseScreenSize) {
isOpen = $('body').hasClass(ClassName.open)
}
if (!isOpen) {
this.open()
} else {
this.close()
}
}
PushMenu.prototype.open = function () {
var windowWidth = $(window).width()
if (windowWidth > this.options.collapseScreenSize) {
$('body').removeClass(ClassName.collapsed)
.trigger($.Event(Event.expanded))
}
else {
$('body').addClass(ClassName.open)
.trigger($.Event(Event.expanded))
}
}
PushMenu.prototype.close = function () {
var windowWidth = $(window).width()
if (windowWidth > this.options.collapseScreenSize) {
$('body').addClass(ClassName.collapsed)
.trigger($.Event(Event.collapsed))
} else {
$('body').removeClass(ClassName.open + ' ' + ClassName.collapsed)
.trigger($.Event(Event.collapsed))
}
}
PushMenu.prototype.expandOnHover = function () {
$(Selector.mainSidebar).hover(function () {
if ($('body').is(Selector.mini + Selector.collapsed)
&& $(window).width() > this.options.collapseScreenSize) {
this.expand()
}
}.bind(this), function () {
if ($('body').is(Selector.expanded)) {
this.collapse()
}
}.bind(this))
}
PushMenu.prototype.expand = function () {
setTimeout(function () {
$('body').removeClass(ClassName.collapsed)
.addClass(ClassName.expanded)
}, this.options.expandTransitionDelay)
}
PushMenu.prototype.collapse = function () {
setTimeout(function () {
$('body').removeClass(ClassName.expanded)
.addClass(ClassName.collapsed)
}, this.options.expandTransitionDelay)
}
// PushMenu Plugin Definition
// ==========================
function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data(DataKey)
if (!data) {
var options = $.extend({}, Default, $this.data(), typeof option == 'object' && option)
$this.data(DataKey, (data = new PushMenu(options)))
}
if (option == 'toggle') data.toggle()
})
}
var old = $.fn.pushMenu
$.fn.pushMenu = Plugin
$.fn.pushMenu.Constructor = PushMenu
// No Conflict Mode
// ================
$.fn.pushMenu.noConflict = function () {
$.fn.pushMenu = old
return this
}
// Data API
// ========
$(document).on('click', Selector.button, function (e) {
e.preventDefault()
Plugin.call($(this), 'toggle')
})
$(window).on('load', function () {
Plugin.call($(Selector.button))
})
}(jQuery)
/* TodoList()
* =========
* Converts a list into a todoList.
*
* @Usage: $('.my-list').todoList(options)
* or add [data-widget="todo-list"] to the ul element
* Pass any option as data-option="value"
*/
+function ($) {
'use strict'
var DataKey = 'lte.todolist'
var Default = {
iCheck : false,
onCheck : function () {
},
onUnCheck: function () {
}
}
var Selector = {
data: '[data-widget="todo-list"]'
}
var ClassName = {
done: 'done'
}
// TodoList Class Definition
// =========================
var TodoList = function (element, options) {
this.element = element
this.options = options
this._setUpListeners()
}
TodoList.prototype.toggle = function (item) {
item.parents(Selector.li).first().toggleClass(ClassName.done)
if (!item.prop('checked')) {
this.unCheck(item)
return
}
this.check(item)
}
TodoList.prototype.check = function (item) {
this.options.onCheck.call(item)
}
TodoList.prototype.unCheck = function (item) {
this.options.onUnCheck.call(item)
}
// Private
TodoList.prototype._setUpListeners = function () {
var that = this
$(this.element).on('change ifChanged', 'input:checkbox', function () {
that.toggle($(this))
})
}
// Plugin Definition
// =================
function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data(DataKey)
if (!data) {
var options = $.extend({}, Default, $this.data(), typeof option == 'object' && option)
$this.data(DataKey, (data = new TodoList($this, options)))
}
if (typeof data == 'string') {
if (typeof data[option] == 'undefined') {
throw new Error('No method named ' + option)
}
data[option]()
}
})
}
var old = $.fn.todoList
$.fn.todoList = Plugin
$.fn.todoList.Constructor = TodoList
// No Conflict Mode
// ================
$.fn.todoList.noConflict = function () {
$.fn.todoList = old
return this
}
// TodoList Data API
// =================
$(window).on('load', function () {
$(Selector.data).each(function () {
Plugin.call($(this))
})
})
}(jQuery)
/* Tree()
* ======
* Converts a nested list into a multilevel
* tree view menu.
*
* @Usage: $('.my-menu').tree(options)
* or add [data-widget="tree"] to the ul element
* Pass any option as data-option="value"
*/
+function ($) {
'use strict'
var DataKey = 'lte.tree'
var Default = {
animationSpeed: 500,
accordion : true,
followLink : false,
trigger : '.treeview a'
}
var Selector = {
tree : '.tree',
treeview : '.treeview',
treeviewMenu: '.treeview-menu',
open : '.menu-open, .active',
li : 'li',
data : '[data-widget="tree"]',
active : '.active'
}
var ClassName = {
open: 'menu-open',
tree: 'tree'
}
var Event = {
collapsed: 'collapsed.tree',
expanded : 'expanded.tree'
}
// Tree Class Definition
// =====================
var Tree = function (element, options) {
this.element = element
this.options = options
$(this.element).addClass(ClassName.tree)
$(Selector.treeview + Selector.active, this.element).addClass(ClassName.open)
this._setUpListeners()
}
Tree.prototype.toggle = function (link, event) {
var treeviewMenu = link.next(Selector.treeviewMenu)
var parentLi = link.parent()
var isOpen = parentLi.hasClass(ClassName.open)
if (!parentLi.is(Selector.treeview)) {
return
}
if (!this.options.followLink || link.attr('href') == '#') {
event.preventDefault()
}
if (isOpen) {
this.collapse(treeviewMenu, parentLi)
} else {
this.expand(treeviewMenu, parentLi)
}
}
Tree.prototype.expand = function (tree, parent) {
var expandedEvent = $.Event(Event.expanded)
if (this.options.accordion) {
var openMenuLi = parent.siblings(Selector.open)
var openTree = openMenuLi.children(Selector.treeviewMenu)
this.collapse(openTree, openMenuLi)
}
parent.addClass(ClassName.open)
tree.slideDown(this.options.animationSpeed, function () {
$(this.element).trigger(expandedEvent)
})
}
Tree.prototype.collapse = function (tree, parentLi) {
var collapsedEvent = $.Event(Event.collapsed)
tree.find(Selector.open).removeClass(ClassName.open)
parentLi.removeClass(ClassName.open)
tree.slideUp(this.options.animationSpeed, function () {
tree.find(Selector.open + ' > ' + Selector.treeview).slideUp()
$(this.element).trigger(collapsedEvent)
})
}
// Private
Tree.prototype._setUpListeners = function () {
var that = this
$(this.element).on('click', this.options.trigger, function (event) {
that.toggle($(this), event)
})
}
// Plugin Definition
// =================
function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data(DataKey)
if (!data) {
var options = $.extend({}, Default, $this.data(), typeof option == 'object' && option)
$this.data(DataKey, new Tree($this, options))
}
})
}
var old = $.fn.tree
$.fn.tree = Plugin
$.fn.tree.Constructor = Tree
// No Conflict Mode
// ================
$.fn.tree.noConflict = function () {
$.fn.tree = old
return this
}
// Tree Data API
// =============
$(window).on('load', function () {
$(Selector.data).each(function () {
Plugin.call($(this))
})
})
}(jQuery)
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
@import "carousel.less"; @import "carousel.less";
@import "modal.less"; @import "modal.less";
@import "social-widgets.less"; @import "social-widgets.less";
@import "treeview.less";
//PAGES //PAGES
//------ //------
@import "mailbox.less"; @import "mailbox.less";
......
...@@ -4,9 +4,7 @@ ...@@ -4,9 +4,7 @@
* Website: Almsaeed Studio <http://almsaeedstudio.com> * Website: Almsaeed Studio <http://almsaeedstudio.com>
* License: Open source - MIT * License: Open source - MIT
* Please visit http://opensource.org/licenses/MIT for more information * Please visit http://opensource.org/licenses/MIT for more information
!*/ */
//google fonts
@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic);
//Bootstrap Variables & Mixins //Bootstrap Variables & Mixins
//The core bootstrap code have not been modified. These files //The core bootstrap code have not been modified. These files
//are included only for reference. //are included only for reference.
...@@ -42,6 +40,7 @@ ...@@ -42,6 +40,7 @@
@import "carousel.less"; @import "carousel.less";
@import "modal.less"; @import "modal.less";
@import "social-widgets.less"; @import "social-widgets.less";
@import "treeview.less";
//PAGES //PAGES
//------ //------
@import "mailbox.less"; @import "mailbox.less";
......
/* /*
* Component: Control sidebar. By default, this is the right sidebar. * Component: Control sidebar. By default, this is the right sidebar.
*/ */
//The sidebar's background control class // The sidebar's background control class
//This is a hack to make the background visible while scrolling // This is a hack to make the background visible while scrolling
.control-sidebar-bg { .control-sidebar-bg {
position: fixed; position: fixed;
z-index: 1000; z-index: 1000;
bottom: 0; bottom: 0;
} }
//Transitions // Transitions
.control-sidebar-bg, .control-sidebar-bg,
.control-sidebar { .control-sidebar {
top: 0; top: 0;
...@@ -18,20 +18,20 @@ ...@@ -18,20 +18,20 @@
.transition(right @transition-speed ease-in-out); .transition(right @transition-speed ease-in-out);
} }
//The sidebar // The sidebar
.control-sidebar { .control-sidebar {
position: absolute; position: absolute;
padding-top: @navbar-height; padding-top: @navbar-height;
z-index: 1010; z-index: 1010;
//Fix position after header collapse // Fix position after header collapse
@media (max-width: @screen-sm) { @media (max-width: @screen-sm) {
padding-top: @navbar-height + 50; padding-top: @navbar-height + 50;
} }
//Tab panes // Tab panes
> .tab-content { > .tab-content {
padding: 10px 15px; padding: 10px 15px;
} }
//Open state with slide over content effect // Open state with slide over content effect
&.control-sidebar-open { &.control-sidebar-open {
&, &,
+ .control-sidebar-bg { + .control-sidebar-bg {
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
} }
} }
//Open without slide over content // Open without slide over content
.control-sidebar-open { .control-sidebar-open {
.control-sidebar-bg, .control-sidebar-bg,
.control-sidebar { .control-sidebar {
...@@ -55,7 +55,17 @@ ...@@ -55,7 +55,17 @@
} }
} }
//Control sidebar tabs // Fixed Layout
.fixed {
.control-sidebar {
position: fixed;
height: 100%;
overflow-y: auto;
padding-bottom: 50px;
}
}
// Control sidebar tabs
.nav-tabs.control-sidebar-tabs { .nav-tabs.control-sidebar-tabs {
> li { > li {
&:first-of-type > a { &:first-of-type > a {
...@@ -68,7 +78,7 @@ ...@@ -68,7 +78,7 @@
> a { > a {
.border-radius(0); .border-radius(0);
//Hover and active states // Hover and active states
&, &,
&:hover { &:hover {
border-top: none; border-top: none;
...@@ -80,7 +90,7 @@ ...@@ -80,7 +90,7 @@
font-size: 16px; font-size: 16px;
} }
} }
//Active state // Active state
&.active { &.active {
> a { > a {
&, &,
...@@ -94,7 +104,7 @@ ...@@ -94,7 +104,7 @@
} }
} }
} }
//Remove responsiveness on small screens // Remove responsiveness on small screens
@media (max-width: @screen-sm) { @media (max-width: @screen-sm) {
display: table; display: table;
> li { > li {
...@@ -103,7 +113,7 @@ ...@@ -103,7 +113,7 @@
} }
} }
//Headings in the sidebar content // Headings in the sidebar content
.control-sidebar-heading { .control-sidebar-heading {
font-weight: 400; font-weight: 400;
font-size: 16px; font-size: 16px;
...@@ -111,14 +121,14 @@ ...@@ -111,14 +121,14 @@
margin-bottom: 10px; margin-bottom: 10px;
} }
//Subheadings // Subheadings
.control-sidebar-subheading { .control-sidebar-subheading {
display: block; display: block;
font-weight: 400; font-weight: 400;
font-size: 14px; font-size: 14px;
} }
//Control Sidebar Menu // Control Sidebar Menu
.control-sidebar-menu { .control-sidebar-menu {
list-style: none; list-style: none;
padding: 0; padding: 0;
...@@ -155,22 +165,22 @@ ...@@ -155,22 +165,22 @@
} }
} }
//Dark skin // Dark skin
.control-sidebar-dark { .control-sidebar-dark {
color: @sidebar-dark-color; color: @sidebar-dark-color;
// Background // Background
&, &,
+ .control-sidebar-bg { + .control-sidebar-bg {
background: @sidebar-dark-bg; background: @sidebar-dark-bg;
} }
// Sidebar tabs // Sidebar tabs
.nav-tabs.control-sidebar-tabs { .nav-tabs.control-sidebar-tabs {
border-bottom: darken(@sidebar-dark-bg, 3%); border-bottom: darken(@sidebar-dark-bg, 3%);
> li { > li {
> a { > a {
background: darken(@sidebar-dark-bg, 5%); background: darken(@sidebar-dark-bg, 5%);
color: @sidebar-dark-color; color: @sidebar-dark-color;
//Hover and active states // Hover and active states
&, &,
&:hover, &:hover,
&:focus { &:focus {
...@@ -186,7 +196,7 @@ ...@@ -186,7 +196,7 @@
color: #fff; color: #fff;
} }
} }
//Active state // Active state
&.active { &.active {
> a { > a {
&, &,
...@@ -200,12 +210,12 @@ ...@@ -200,12 +210,12 @@
} }
} }
} }
//Heading & subheading // Heading & subheading
.control-sidebar-heading, .control-sidebar-heading,
.control-sidebar-subheading { .control-sidebar-subheading {
color: #fff; color: #fff;
} }
//Sidebar list // Sidebar list
.control-sidebar-menu { .control-sidebar-menu {
> li { > li {
> a { > a {
...@@ -222,23 +232,23 @@ ...@@ -222,23 +232,23 @@
} }
} }
//Light skin // Light skin
.control-sidebar-light { .control-sidebar-light {
color: lighten(@sidebar-light-color, 10%); color: lighten(@sidebar-light-color, 10%);
// Background // Background
&, &,
+ .control-sidebar-bg { + .control-sidebar-bg {
background: @sidebar-light-bg; background: @sidebar-light-bg;
border-left: 1px solid @gray-lte; border-left: 1px solid @gray-lte;
} }
// Sidebar tabs // Sidebar tabs
.nav-tabs.control-sidebar-tabs { .nav-tabs.control-sidebar-tabs {
border-bottom: @gray-lte; border-bottom: @gray-lte;
> li { > li {
> a { > a {
background: darken(@sidebar-light-bg, 5%); background: darken(@sidebar-light-bg, 5%);
color: @sidebar-light-color; color: @sidebar-light-color;
//Hover and active states // Hover and active states
&, &,
&:hover, &:hover,
&:focus { &:focus {
...@@ -251,7 +261,7 @@ ...@@ -251,7 +261,7 @@
background: darken(@sidebar-light-bg, 3%); background: darken(@sidebar-light-bg, 3%);
} }
} }
//Active state // Active state
&.active { &.active {
> a { > a {
&, &,
...@@ -265,12 +275,12 @@ ...@@ -265,12 +275,12 @@
} }
} }
} }
//Heading & subheading // Heading & subheading
.control-sidebar-heading, .control-sidebar-heading,
.control-sidebar-subheading { .control-sidebar-subheading {
color: #111; color: #111;
} }
//Sidebar list // Sidebar list
.control-sidebar-menu { .control-sidebar-menu {
margin-left: -14px; margin-left: -14px;
> li { > li {
......
...@@ -44,26 +44,26 @@ body { ...@@ -44,26 +44,26 @@ body {
.content-wrapper, .content-wrapper,
.right-side, .right-side,
.main-footer { .main-footer {
//Using disposable variable to join statements with a comma // Using disposable variable to join statements with a comma
@transition-rule: @transition-speed @transition-fn, @transition-rule: @transition-speed @transition-fn,
margin @transition-speed @transition-fn; margin @transition-speed @transition-fn;
.transition-transform(@transition-rule); .transition-transform(@transition-rule);
margin-left: @sidebar-width; margin-left: @sidebar-width;
z-index: 820; z-index: 820;
//Top nav layout // Top nav layout
.layout-top-nav & { .layout-top-nav & {
margin-left: 0; margin-left: 0;
} }
@media (max-width: @screen-xs-max) { @media (max-width: @screen-xs-max) {
margin-left: 0; margin-left: 0;
} }
//When opening the sidebar on large screens // When opening the sidebar on large screens
.sidebar-collapse & { .sidebar-collapse & {
@media (min-width: @screen-sm) { @media (min-width: @screen-sm) {
margin-left: 0; margin-left: 0;
} }
} }
//When opening the sidebar on small screens // When opening the sidebar on small screens
.sidebar-open & { .sidebar-open & {
@media (max-width: @screen-xs-max) { @media (max-width: @screen-xs-max) {
.translate(@sidebar-width, 0); .translate(@sidebar-width, 0);
...@@ -109,16 +109,20 @@ body { ...@@ -109,16 +109,20 @@ body {
max-width: 100%; max-width: 100%;
} }
} }
.wrapper {
overflow: hidden;
}
} }
body.hold-transition { .hold-transition {
.content-wrapper, .content-wrapper,
.right-side, .right-side,
.main-footer, .main-footer,
.main-sidebar, .main-sidebar,
.left-side, .left-side,
.main-header .navbar, .main-header .navbar,
.main-header .logo { .main-header .logo,
.menu-open .fa-angle-left {
/* Fix for IE */ /* Fix for IE */
.transition(none); .transition(none);
} }
......
...@@ -74,22 +74,12 @@ ...@@ -74,22 +74,12 @@
} }
//Different radius each side //Different radius each side
.border-radius(@top-left; .border-radius(@top-left, @top-right, @bottom-left, @bottom-right)
@top-right
;
@bottom-left
;
@bottom-right
)
{ {
border-top-left-radius: @top-left border-top-left-radius: @top-left;
; border-top-right-radius: @top-right;
border-top-right-radius: @top-right border-bottom-right-radius: @bottom-right;
; border-bottom-left-radius: @bottom-left;
border-bottom-right-radius: @bottom-right
;
border-bottom-left-radius: @bottom-left
;
} }
//Gradient background //Gradient background
...@@ -140,9 +130,13 @@ ...@@ -140,9 +130,13 @@
border-left: 3px solid transparent; border-left: 3px solid transparent;
} }
//Hover and active states //Hover and active states
&:hover > a, &.active > a { &:hover > a,
&.active > a,
&.menu-open > a {
color: @sidebar-dark-hover-color; color: @sidebar-dark-hover-color;
background: @sidebar-dark-hover-bg; background: @sidebar-dark-hover-bg;
}
&.active > a {
border-left-color: @link-hover-border-color; border-left-color: @link-hover-border-color;
} }
//First Level Submenu //First Level Submenu
...@@ -159,7 +153,7 @@ ...@@ -159,7 +153,7 @@
} }
} }
//All submenus //All submenus
.treeview-menu { .sidebar-menu .treeview-menu {
> li { > li {
> a { > a {
color: @sidebar-dark-submenu-color; color: @sidebar-dark-submenu-color;
...@@ -211,7 +205,10 @@ ...@@ -211,7 +205,10 @@
} }
.content-wrapper, .content-wrapper,
.main-footer { .main-footer {
border-left: 1px solid @gray-lte; //border-left: 1px solid @gray-lte;
}
.main-sidebar {
border-right: 1px solid @gray-lte;
} }
//User Panel (resides in the sidebar) //User Panel (resides in the sidebar)
.user-panel { .user-panel {
...@@ -261,7 +258,7 @@ ...@@ -261,7 +258,7 @@
} }
} }
//All submenus //All submenus
.treeview-menu { .sidebar-menu .treeview-menu {
> li { > li {
> a { > a {
color: @sidebar-light-submenu-color; color: @sidebar-light-submenu-color;
......
...@@ -42,49 +42,11 @@ ...@@ -42,49 +42,11 @@
} }
> .treeview-menu { > .treeview-menu {
//Add some padding to the treeview menu // Add some padding to the treeview menu
padding-top: 5px; padding-top: 5px;
padding-bottom: 5px; padding-bottom: 5px;
border-bottom-right-radius: 4px; border-bottom-right-radius: 4px;
} }
//Show menu items on hover
&:hover {
> a {
//overflow: visible;
}
> a > span:not(.pull-right),//:not(.pull-right-container),
> .treeview-menu {
display: block !important;
position: absolute;
width: @sidebar-width - 50;
left: 50px;
}
//position the header & treeview menus
> a > span {
top: 0;
margin-left: -3px;
padding: 12px 5px 12px 20px;
background-color: inherit;
}
> a > .pull-right-container {
//display: block!important;
position: relative!important;
float: right;
width: auto!important;
left: 200px - 20px!important;
top: -22px!important;
z-index: 900;
> .label:not(:first-of-type) {
display: none;
}
}
> .treeview-menu {
top: 44px;
margin-left: 0;
}
}
} }
} }
...@@ -124,6 +86,56 @@ ...@@ -124,6 +86,56 @@
} }
} }
// Show menu items on hover
.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse {
.sidebar-menu > li:hover {
> a {
//overflow: visible;
}
> a > span:not(.pull-right), //:not(.pull-right-container),
> .treeview-menu {
display: block !important;
position: absolute;
width: @sidebar-width - 50;
left: 50px;
}
//position the header & treeview menus
> a > span {
top: 0;
margin-left: -3px;
padding: 12px 5px 12px 20px;
background-color: inherit;
}
> a > .pull-right-container {
//display: block!important;
position: relative !important;
float: right;
width: auto !important;
left: 200px - 20px !important;
top: -22px !important;
z-index: 900;
> .label:not(:first-of-type) {
display: none;
}
}
> .treeview-menu {
top: 44px;
margin-left: 0;
}
}
}
.sidebar-expanded-on-hover {
.main-footer,
.content-wrapper {
margin-left: 50px;
}
.main-sidebar {
box-shadow: @sidebar-expanded-shadow;
}
}
//A fix for text overflow while transitioning from sidebar mini to full sidebar //A fix for text overflow while transitioning from sidebar mini to full sidebar
.sidebar-menu, .sidebar-menu,
.main-sidebar .user-panel, .main-sidebar .user-panel,
......
...@@ -119,6 +119,7 @@ ...@@ -119,6 +119,7 @@
height: auto; height: auto;
padding: 0; padding: 0;
margin-right: 10px; margin-right: 10px;
.transition(transform .5s ease);
} }
li > a > .fa-angle-left { li > a > .fa-angle-left {
position: absolute; position: absolute;
...@@ -126,44 +127,14 @@ ...@@ -126,44 +127,14 @@
right: 10px; right: 10px;
margin-top: -8px; margin-top: -8px;
} }
li.active {
.menu-open {
> a > .fa-angle-left, > a > .fa-angle-left,
> a > .pull-right-container > .fa-angle-left { > a > .pull-right-container > .fa-angle-left {
.rotate(-90deg); .rotate(-90deg);
} }
> .treeview-menu {
display: block;
}
} }
.active > .treeview-menu {
// Tree view menu display: block;
.treeview-menu {
display: none;
list-style: none;
padding: 0;
margin: 0;
padding-left: 5px;
.treeview-menu {
padding-left: 20px;
}
> li {
margin: 0;
> a {
padding: 5px 5px 5px 15px;
display: block;
font-size: 14px;
> .fa,
> .glyphicon,
> .ion {
width: 20px;
}
> .pull-right-container > .fa-angle-left,
> .pull-right-container > .fa-angle-down,
> .fa-angle-left,
> .fa-angle-down {
width: auto;
}
}
}
} }
} }
...@@ -11,30 +11,31 @@ ...@@ -11,30 +11,31 @@
.skin-black-light { .skin-black-light {
//Navbar & Logo //Navbar & Logo
.main-header { .main-header {
.box-shadow(0px 1px 1px rgba(0, 0, 0, 0.05)); //.box-shadow(0px 1px 1px rgba(0, 0, 0, 0.05));
border-bottom: 1px solid @gray-lte;
.navbar-toggle { .navbar-toggle {
color: #333; color: #333;
} }
.navbar-brand { .navbar-brand {
color: #333; color: #333;
border-right: 1px solid #eee; border-right: 1px solid @gray-lte;
} }
.navbar { .navbar {
.navbar-variant(#fff; #333; #999; #fff); .navbar-variant(#fff; #333; #999; #fff);
> .sidebar-toggle { > .sidebar-toggle {
color: #333; color: #333;
border-right: 1px solid #eee; border-right: 1px solid @gray-lte;
} }
.navbar-nav { .navbar-nav {
> li > a { > li > a {
border-right: 1px solid #eee; border-right: 1px solid @gray-lte;
} }
} }
.navbar-custom-menu .navbar-nav, .navbar-custom-menu .navbar-nav,
.navbar-right { .navbar-right {
> li { > li {
> a { > a {
border-left: 1px solid #eee; border-left: 1px solid @gray-lte;
border-right-width: 0; border-right-width: 0;
} }
} }
...@@ -42,7 +43,7 @@ ...@@ -42,7 +43,7 @@
} }
> .logo { > .logo {
.logo-variant(#fff; #333); .logo-variant(#fff; #333);
border-right: 1px solid #eee; border-right: 1px solid @gray-lte;
@media (max-width: @screen-header-collapse) { @media (max-width: @screen-header-collapse) {
.logo-variant(#222; #fff); .logo-variant(#222; #fff);
border-right: none; border-right: none;
...@@ -61,4 +62,4 @@ ...@@ -61,4 +62,4 @@
} }
//Create the sidebar skin //Create the sidebar skin
.skin-light-sidebar(#fff); .skin-light-sidebar(#fff);
} }
\ No newline at end of file
// Tree view menu
.treeview-menu {
display: none;
list-style: none;
padding: 0;
margin: 0;
padding-left: 5px;
.treeview-menu {
padding-left: 20px;
}
> li {
margin: 0;
> a {
padding: 5px 5px 5px 15px;
display: block;
font-size: 14px;
> .fa,
> .glyphicon,
> .ion {
width: 20px;
}
> .pull-right-container > .fa-angle-left,
> .pull-right-container > .fa-angle-down,
> .fa-angle-left,
> .fa-angle-down {
width: auto;
}
}
}
}
\ No newline at end of file
//AdminLTE 2 Variables.less // AdminLTE 2 Variables.less
//========================= // =========================
//PATHS // PATHS
//-------------------------------------------------------- // --------------------------------------------------------
@boxed-layout-bg-image-path: "../img/boxed-bg.jpg"; @boxed-layout-bg-image-path: "../img/boxed-bg.jpg";
//COLORS // COLORS
//-------------------------------------------------------- // --------------------------------------------------------
//Primary // Primary
@light-blue: #3c8dbc; @light-blue: #3c8dbc;
//Danger // Danger
@red: #dd4b39; @red: #dd4b39;
//Success // Success
@green: #00a65a; @green: #00a65a;
//Info // Info
@aqua: #00c0ef; @aqua: #00c0ef;
//Warning // Warning
@yellow: #f39c12; @yellow: #f39c12;
@blue: #0073b7; @blue: #0073b7;
@navy: #001F3F; @navy: #001F3F;
...@@ -30,27 +30,27 @@ ...@@ -30,27 +30,27 @@
@black: #111; @black: #111;
@gray-lte: #d2d6de; @gray-lte: #d2d6de;
//LAYOUT // LAYOUT
//-------------------------------------------------------- // --------------------------------------------------------
//Side bar and logo width // Side bar and logo width
@sidebar-width: 230px; @sidebar-width: 230px;
//Boxed layout maximum width // Boxed layout maximum width
@boxed-layout-max-width: 1024px; @boxed-layout-max-width: 1024px;
//When the logo should go to the top of the screen // When the logo should go to the top of the screen
@screen-header-collapse: @screen-xs-max; @screen-header-collapse: @screen-xs-max;
//Link colors (Aka: <a> tags) // Link colors (Aka: <a> tags)
@link-color: @light-blue; @link-color: @light-blue;
@link-hover-color: lighten(@link-color, 15%); @link-hover-color: lighten(@link-color, 15%);
//Body background (Affects main content background only) // Body background (Affects main content background only)
@body-bg: #ecf0f5; @body-bg: #ecf0f5;
//SIDEBAR SKINS // SIDEBAR SKINS
//-------------------------------------------------------- // --------------------------------------------------------
//Dark sidebar // Dark sidebar
@sidebar-dark-bg: #222d32; @sidebar-dark-bg: #222d32;
@sidebar-dark-hover-bg: darken(@sidebar-dark-bg, 2%); @sidebar-dark-hover-bg: darken(@sidebar-dark-bg, 2%);
@sidebar-dark-color: lighten(@sidebar-dark-bg, 60%); @sidebar-dark-color: lighten(@sidebar-dark-bg, 60%);
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
@sidebar-dark-submenu-color: lighten(@sidebar-dark-submenu-bg, 40%); @sidebar-dark-submenu-color: lighten(@sidebar-dark-submenu-bg, 40%);
@sidebar-dark-submenu-hover-color: #fff; @sidebar-dark-submenu-hover-color: #fff;
//Light sidebar // Light sidebar
@sidebar-light-bg: #f9fafc; @sidebar-light-bg: #f9fafc;
@sidebar-light-hover-bg: lighten(#f0f0f1, 1.5%); @sidebar-light-hover-bg: lighten(#f0f0f1, 1.5%);
@sidebar-light-color: #444; @sidebar-light-color: #444;
...@@ -68,55 +68,58 @@ ...@@ -68,55 +68,58 @@
@sidebar-light-submenu-color: #777; @sidebar-light-submenu-color: #777;
@sidebar-light-submenu-hover-color: #000; @sidebar-light-submenu-hover-color: #000;
//CONTROL SIDEBAR // sidebar-expanded-on-hover
//-------------------------------------------------------- @sidebar-expanded-shadow: 3px 0 8px rgba(0,0,0,.125);
// CONTROL SIDEBAR
// --------------------------------------------------------
@control-sidebar-width: @sidebar-width; @control-sidebar-width: @sidebar-width;
//BOXES // BOXES
//-------------------------------------------------------- // --------------------------------------------------------
@box-border-color: #f4f4f4; @box-border-color: #f4f4f4;
@box-border-radius: 3px; @box-border-radius: 3px;
@box-footer-bg: #fff; @box-footer-bg: #fff;
@box-boxshadow: 0 1px 1px rgba(0, 0, 0, .1); @box-boxshadow: 0 1px 1px rgba(0, 0, 0, .1);
@box-padding: 10px; @box-padding: 10px;
//Box variants // Box variants
@box-default-border-top-color: #d2d6de; @box-default-border-top-color: #d2d6de;
//BUTTONS // BUTTONS
//-------------------------------------------------------- // --------------------------------------------------------
@btn-boxshadow: none; @btn-boxshadow: none;
//PROGRESS BARS // PROGRESS BARS
//-------------------------------------------------------- // --------------------------------------------------------
@progress-bar-border-radius: 1px; @progress-bar-border-radius: 1px;
@progress-bar-sm-border-radius: 1px; @progress-bar-sm-border-radius: 1px;
@progress-bar-xs-border-radius: 1px; @progress-bar-xs-border-radius: 1px;
//FORMS // FORMS
//-------------------------------------------------------- // --------------------------------------------------------
@input-radius: 0; @input-radius: 0;
//BUTTONS // BUTTONS
//-------------------------------------------------------- // --------------------------------------------------------
//Border radius for non flat buttons // Border radius for non flat buttons
@btn-border-radius: 3px; @btn-border-radius: 3px;
//DIRECT CHAT // DIRECT CHAT
//-------------------------------------------------------- // --------------------------------------------------------
@direct-chat-height: 250px; @direct-chat-height: 250px;
@direct-chat-default-msg-bg: @gray-lte; @direct-chat-default-msg-bg: @gray-lte;
@direct-chat-default-font-color: #444; @direct-chat-default-font-color: #444;
@direct-chat-default-msg-border-color: @gray-lte; @direct-chat-default-msg-border-color: @gray-lte;
//CHAT WIDGET // CHAT WIDGET
//-------------------------------------------------------- // --------------------------------------------------------
@attachment-border-radius: 3px; @attachment-border-radius: 3px;
//TRANSITIONS SETTINGS // TRANSITIONS SETTINGS
//-------------------------------------------------------- // --------------------------------------------------------
//Transition global options // Transition global options
@transition-speed: .3s; @transition-speed: .3s;
@transition-fn: ease-in-out; @transition-fn: ease-in-out;
此差异已折叠。
此差异已折叠。
/*
* Component: Main Header
* ----------------------
*/
.main-header {
padding: 0 16px 0 0;
.navbar-brand {
font-weight: 200;
width: $sidebar-width;
padding: $main-header-brand-padding-y $main-header-brand-padding-x;
background: darken($brand-primary, 5%);
transition: width $transition-speed $transition-fn;
overflow: hidden;
margin-right: 0;
> .logo-mini {
display: none;
}
@include media-breakpoint-up(md) {
.sidebar-mini.sidebar-collapse & {
width: $sidebar-mini-width;
> .logo {
display: none;
}
> .logo-mini {
display: inline;
}
}
}
@include media-breakpoint-down(md) {
width: $sidebar-mini-width;
> .logo {
display: none;
}
> .logo-mini {
display: inline;
}
}
}
/*.navbar-nav .nav-item {
margin: 0;
}*/
&.navbar-toggleable .navbar-nav .nav-link {
padding: $main-header-link-padding-y $main-header-link-padding-x;
position: relative;
}
/*.open > .nav-link,
.nav-link:hover {
background: rgba(0, 0, 0, .1);
}*/
.has-img {
padding-top: $main-header-link-padding-y - 2;
padding-bottom: $main-header-link-padding-y - 2;
}
.navbar-nav[class*="-right"] {
.dropdown-menu {
margin-top: -3px;
right: 0;
left: auto;
@media (max-width: breakpoint-max(xs)) {
left: 0;
right: auto;
}
}
}
}
// Add shadow to the navbar if wanted
.navbar-shadow {
@include box-shadow(0 3px 3px rgba(0, 0, 0, 0.1));
}
// Add this class to images within a nav-link
.navbar-img {
height: $main-header-height / 2;
width: auto;
}
// Navbar tags (used as badges in nav-link)
.navbar-tag {
position: absolute;
top: 9px;
right: 5px;
font-size: $font-size-xs - .1;
padding: 2px 4px;
}
\ No newline at end of file
// AdminLTE 3 Variables.less
// =========================
// PATHS
// --------------------------------------------------------
$path-to-bootstrap-sass: "../../bower_components/bootstrap/scss" !default;
$boxed-layout-bg-image-path: "../img/boxed-bg.jpg" !default;
// COLORS
// --------------------------------------------------------
/*
$blue: #0073b7 !default;
$black: #111 !default;
$orange: #FF851B !default;
*/
$fuchsia: #F012BE !default;
$purple: #605ca8 !default;
$maroon: #D81B60 !default;
$teal: #39CCCC !default;
$olive: #3D9970 !default;
$lime: #01FF70 !default;
$navy: #001F3F !default;
$gray-x-light: #d2d6de !default;
// TEXT
// --------------------------------------------------------
$font-size-root: 16px !default;
// LAYOUT
// --------------------------------------------------------
// Side bar and logo width
$sidebar-width: 230px !default;
// Boxed layout maximum width
$boxed-layout-max-width: 1250px !default;
// When to show the smaller logo
$screen-header-collapse: map-get($grid-breakpoints, md) !default;
// Link colors (aka: <a> tags)
$link-color: $brand-primary !default;
$link-hover-color: lighten($link-color, 15%) !default;
// Body background (Affects main content background only)
$main-bg: $gray-lighter !default;
// MAIN HEADER
// --------------------------------------------------------
$main-header-link-padding-y: 15px !default;
$main-header-link-padding-x: 15px !default;
$main-header-brand-padding-y: 12px !default;
$main-header-brand-padding-x: $main-header-brand-padding-y !default;
$main-header-height: (($font-size-root * $line-height-base) + ($main-header-link-padding-y * 2)) !default;
// MAIN FOOTER
// --------------------------------------------------------
$main-footer-padding: 15px !default;
$main-footer-border-top-width: 2px !default;
$main-footer-border-top: $main-footer-border-top-width solid darken($main-bg, 10%) !default;
$main-footer-height: (($font-size-root * $line-height-base) + ($main-footer-padding * 2)) + $main-footer-border-top-width !default;
// SIDEBAR SKINS
// --------------------------------------------------------
// Dark sidebar
$sidebar-dark-bg: #2c333c !default;//#222d32 !default;
$sidebar-dark-hover-bg: darken($sidebar-dark-bg, 4%) !default;
$sidebar-dark-color: #C2C7D0!default;//lighten($sidebar-dark-bg, 60%) !default;
$sidebar-dark-hover-color: #fff !default;
$sidebar-dark-submenu-bg: lighten($sidebar-dark-bg, 5%) !default;
$sidebar-dark-submenu-color: #C2C7D0!default;//lighten($sidebar-dark-submenu-bg, 40%) !default;
$sidebar-dark-submenu-hover-color: #fff !default;
// Light sidebar
$sidebar-light-bg: #f9fafc !default;
$sidebar-light-hover-bg: lighten(#f0f0f1, 1.5%) !default;
$sidebar-light-color: #444 !default;
$sidebar-light-hover-color: #000 !default;
$sidebar-light-submenu-bg: $sidebar-light-hover-bg !default;
$sidebar-light-submenu-color: #777 !default;
$sidebar-light-submenu-hover-color: #000 !default;
// SIDEBAR MINI
// --------------------------------------------------------
$sidebar-mini-width: 55px !default;
// CONTROL SIDEBAR
// --------------------------------------------------------
$control-sidebar-width: $sidebar-width !default;
// BOXES
// --------------------------------------------------------
$box-border-color: #f4f4f4 !default;
$box-border-radius: 3px !default;
$box-footer-bg: #fff !default;
$box-boxshadow: 0 1px 1px rgba(0, 0, 0, 0.125) !default;
$box-padding: 10px !default;
// Box variants
$box-default-border-top-color: $gray-x-light !default;// #d2d6de !default;
// BUTTONS
// --------------------------------------------------------
$btn-boxshadow: none !default;
// PROGRESS BARS
// --------------------------------------------------------
$progress-bar-border-radius: 1px !default;
$progress-bar-sm-border-radius: 1px !default;
$progress-bar-xs-border-radius: 1px !default;
// DIRECT CHAT
// --------------------------------------------------------
$direct-chat-height: 250px !default;
$direct-chat-default-msg-bg: $gray-x-light !default;
$direct-chat-default-font-color: #444 !default;
$direct-chat-default-msg-border-color: $gray-x-light !default;
// CHAT WIDGET
// --------------------------------------------------------
$attachment-border-radius: 3px !default;
// TRANSITIONS SETTINGS
// --------------------------------------------------------
// Transition global options
$transition-speed: 0.3s !default;
$transition-fn: ease-in-out !default;
\ No newline at end of file
@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic);
/*! /*!
* AdminLTE v2.3.12 * AdminLTE v2.3.12
* Author: Almsaeed Studio * Author: Almsaeed Studio
* Website: Almsaeed Studio <http://almsaeedstudio.com> * Website: Almsaeed Studio <http://almsaeedstudio.com>
* License: Open source - MIT * License: Open source - MIT
* Please visit http://opensource.org/licenses/MIT for more information * Please visit http://opensource.org/licenses/MIT for more information
!*/ */
/* /*
* Core: General Layout Style * Core: General Layout Style
* ------------------------- * -------------------------
...@@ -128,13 +127,17 @@ body { ...@@ -128,13 +127,17 @@ body {
.fixed.layout-boxed .wrapper { .fixed.layout-boxed .wrapper {
max-width: 100%; max-width: 100%;
} }
body.hold-transition .content-wrapper, .fixed .wrapper {
body.hold-transition .right-side, overflow: hidden;
body.hold-transition .main-footer, }
body.hold-transition .main-sidebar, .hold-transition .content-wrapper,
body.hold-transition .left-side, .hold-transition .right-side,
body.hold-transition .main-header .navbar, .hold-transition .main-footer,
body.hold-transition .main-header .logo { .hold-transition .main-sidebar,
.hold-transition .left-side,
.hold-transition .main-header .navbar,
.hold-transition .main-header .logo,
.hold-transition .menu-open .fa-angle-left {
/* Fix for IE */ /* Fix for IE */
-webkit-transition: none; -webkit-transition: none;
-o-transition: none; -o-transition: none;
...@@ -541,6 +544,9 @@ a:focus { ...@@ -541,6 +544,9 @@ a:focus {
height: auto; height: auto;
padding: 0; padding: 0;
margin-right: 10px; margin-right: 10px;
-webkit-transition: transform 0.5s ease;
-o-transition: transform 0.5s ease;
transition: transform 0.5s ease;
} }
.sidebar-menu li > a > .fa-angle-left { .sidebar-menu li > a > .fa-angle-left {
position: absolute; position: absolute;
...@@ -548,45 +554,16 @@ a:focus { ...@@ -548,45 +554,16 @@ a:focus {
right: 10px; right: 10px;
margin-top: -8px; margin-top: -8px;
} }
.sidebar-menu li.active > a > .fa-angle-left, .sidebar-menu .menu-open > a > .fa-angle-left,
.sidebar-menu li.active > a > .pull-right-container > .fa-angle-left { .sidebar-menu .menu-open > a > .pull-right-container > .fa-angle-left {
-webkit-transform: rotate(-90deg); -webkit-transform: rotate(-90deg);
-ms-transform: rotate(-90deg); -ms-transform: rotate(-90deg);
-o-transform: rotate(-90deg); -o-transform: rotate(-90deg);
transform: rotate(-90deg); transform: rotate(-90deg);
} }
.sidebar-menu li.active > .treeview-menu { .sidebar-menu .active > .treeview-menu {
display: block; display: block;
} }
.sidebar-menu .treeview-menu {
display: none;
list-style: none;
padding: 0;
margin: 0;
padding-left: 5px;
}
.sidebar-menu .treeview-menu .treeview-menu {
padding-left: 20px;
}
.sidebar-menu .treeview-menu > li {
margin: 0;
}
.sidebar-menu .treeview-menu > li > a {
padding: 5px 5px 5px 15px;
display: block;
font-size: 14px;
}
.sidebar-menu .treeview-menu > li > a > .fa,
.sidebar-menu .treeview-menu > li > a > .glyphicon,
.sidebar-menu .treeview-menu > li > a > .ion {
width: 20px;
}
.sidebar-menu .treeview-menu > li > a > .pull-right-container > .fa-angle-left,
.sidebar-menu .treeview-menu > li > a > .pull-right-container > .fa-angle-down,
.sidebar-menu .treeview-menu > li > a > .fa-angle-left,
.sidebar-menu .treeview-menu > li > a > .fa-angle-down {
width: auto;
}
/* /*
* Component: Sidebar Mini * Component: Sidebar Mini
*/ */
...@@ -622,34 +599,6 @@ a:focus { ...@@ -622,34 +599,6 @@ a:focus {
padding-bottom: 5px; padding-bottom: 5px;
border-bottom-right-radius: 4px; border-bottom-right-radius: 4px;
} }
.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > span:not(.pull-right),
.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu {
display: block !important;
position: absolute;
width: 180px;
left: 50px;
}
.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > span {
top: 0;
margin-left: -3px;
padding: 12px 5px 12px 20px;
background-color: inherit;
}
.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > .pull-right-container {
position: relative!important;
float: right;
width: auto!important;
left: 180px !important;
top: -22px !important;
z-index: 900;
}
.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > .pull-right-container > .label:not(:first-of-type) {
display: none;
}
.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu {
top: 44px;
margin-left: 0;
}
.sidebar-mini.sidebar-collapse .main-sidebar .user-panel > .info, .sidebar-mini.sidebar-collapse .main-sidebar .user-panel > .info,
.sidebar-mini.sidebar-collapse .sidebar-form, .sidebar-mini.sidebar-collapse .sidebar-form,
.sidebar-mini.sidebar-collapse .sidebar-menu > li > a > span, .sidebar-mini.sidebar-collapse .sidebar-menu > li > a > span,
...@@ -675,6 +624,41 @@ a:focus { ...@@ -675,6 +624,41 @@ a:focus {
margin-left: 50px; margin-left: 50px;
} }
} }
.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu > li:hover > a > span:not(.pull-right),
.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu > li:hover > .treeview-menu {
display: block !important;
position: absolute;
width: 180px;
left: 50px;
}
.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu > li:hover > a > span {
top: 0;
margin-left: -3px;
padding: 12px 5px 12px 20px;
background-color: inherit;
}
.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu > li:hover > a > .pull-right-container {
position: relative !important;
float: right;
width: auto !important;
left: 180px !important;
top: -22px !important;
z-index: 900;
}
.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu > li:hover > a > .pull-right-container > .label:not(:first-of-type) {
display: none;
}
.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu > li:hover > .treeview-menu {
top: 44px;
margin-left: 0;
}
.sidebar-expanded-on-hover .main-footer,
.sidebar-expanded-on-hover .content-wrapper {
margin-left: 50px;
}
.sidebar-expanded-on-hover .main-sidebar {
box-shadow: 3px 0 8px rgba(0, 0, 0, 0.125);
}
.sidebar-menu, .sidebar-menu,
.main-sidebar .user-panel, .main-sidebar .user-panel,
.sidebar-menu > li.header { .sidebar-menu > li.header {
...@@ -743,6 +727,12 @@ a:focus { ...@@ -743,6 +727,12 @@ a:focus {
margin-right: 230px; margin-right: 230px;
} }
} }
.fixed .control-sidebar {
position: fixed;
height: 100%;
overflow-y: auto;
padding-bottom: 50px;
}
.nav-tabs.control-sidebar-tabs > li:first-of-type > a, .nav-tabs.control-sidebar-tabs > li:first-of-type > a,
.nav-tabs.control-sidebar-tabs > li:first-of-type > a:hover, .nav-tabs.control-sidebar-tabs > li:first-of-type > a:hover,
.nav-tabs.control-sidebar-tabs > li:first-of-type > a:focus { .nav-tabs.control-sidebar-tabs > li:first-of-type > a:focus {
...@@ -3084,6 +3074,35 @@ table.text-center th { ...@@ -3084,6 +3074,35 @@ table.text-center th {
height: auto; height: auto;
float: left; float: left;
} }
.treeview-menu {
display: none;
list-style: none;
padding: 0;
margin: 0;
padding-left: 5px;
}
.treeview-menu .treeview-menu {
padding-left: 20px;
}
.treeview-menu > li {
margin: 0;
}
.treeview-menu > li > a {
padding: 5px 5px 5px 15px;
display: block;
font-size: 14px;
}
.treeview-menu > li > a > .fa,
.treeview-menu > li > a > .glyphicon,
.treeview-menu > li > a > .ion {
width: 20px;
}
.treeview-menu > li > a > .pull-right-container > .fa-angle-left,
.treeview-menu > li > a > .pull-right-container > .fa-angle-down,
.treeview-menu > li > a > .fa-angle-left,
.treeview-menu > li > a > .fa-angle-down {
width: auto;
}
/* /*
* Page: Mailbox * Page: Mailbox
* ------------- * -------------
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
...@@ -128,13 +128,17 @@ body { ...@@ -128,13 +128,17 @@ body {
.fixed.layout-boxed .wrapper { .fixed.layout-boxed .wrapper {
max-width: 100%; max-width: 100%;
} }
body.hold-transition .content-wrapper, .fixed .wrapper {
body.hold-transition .right-side, overflow: hidden;
body.hold-transition .main-footer, }
body.hold-transition .main-sidebar, .hold-transition .content-wrapper,
body.hold-transition .left-side, .hold-transition .right-side,
body.hold-transition .main-header .navbar, .hold-transition .main-footer,
body.hold-transition .main-header .logo { .hold-transition .main-sidebar,
.hold-transition .left-side,
.hold-transition .main-header .navbar,
.hold-transition .main-header .logo,
.hold-transition .menu-open .fa-angle-left {
/* Fix for IE */ /* Fix for IE */
-webkit-transition: none; -webkit-transition: none;
-o-transition: none; -o-transition: none;
...@@ -541,6 +545,9 @@ a:focus { ...@@ -541,6 +545,9 @@ a:focus {
height: auto; height: auto;
padding: 0; padding: 0;
margin-right: 10px; margin-right: 10px;
-webkit-transition: transform 0.5s ease;
-o-transition: transform 0.5s ease;
transition: transform 0.5s ease;
} }
.sidebar-menu li > a > .fa-angle-left { .sidebar-menu li > a > .fa-angle-left {
position: absolute; position: absolute;
...@@ -548,45 +555,16 @@ a:focus { ...@@ -548,45 +555,16 @@ a:focus {
right: 10px; right: 10px;
margin-top: -8px; margin-top: -8px;
} }
.sidebar-menu li.active > a > .fa-angle-left, .sidebar-menu .menu-open > a > .fa-angle-left,
.sidebar-menu li.active > a > .pull-right-container > .fa-angle-left { .sidebar-menu .menu-open > a > .pull-right-container > .fa-angle-left {
-webkit-transform: rotate(-90deg); -webkit-transform: rotate(-90deg);
-ms-transform: rotate(-90deg); -ms-transform: rotate(-90deg);
-o-transform: rotate(-90deg); -o-transform: rotate(-90deg);
transform: rotate(-90deg); transform: rotate(-90deg);
} }
.sidebar-menu li.active > .treeview-menu { .sidebar-menu .active > .treeview-menu {
display: block; display: block;
} }
.sidebar-menu .treeview-menu {
display: none;
list-style: none;
padding: 0;
margin: 0;
padding-left: 5px;
}
.sidebar-menu .treeview-menu .treeview-menu {
padding-left: 20px;
}
.sidebar-menu .treeview-menu > li {
margin: 0;
}
.sidebar-menu .treeview-menu > li > a {
padding: 5px 5px 5px 15px;
display: block;
font-size: 14px;
}
.sidebar-menu .treeview-menu > li > a > .fa,
.sidebar-menu .treeview-menu > li > a > .glyphicon,
.sidebar-menu .treeview-menu > li > a > .ion {
width: 20px;
}
.sidebar-menu .treeview-menu > li > a > .pull-right-container > .fa-angle-left,
.sidebar-menu .treeview-menu > li > a > .pull-right-container > .fa-angle-down,
.sidebar-menu .treeview-menu > li > a > .fa-angle-left,
.sidebar-menu .treeview-menu > li > a > .fa-angle-down {
width: auto;
}
/* /*
* Component: Sidebar Mini * Component: Sidebar Mini
*/ */
...@@ -622,34 +600,6 @@ a:focus { ...@@ -622,34 +600,6 @@ a:focus {
padding-bottom: 5px; padding-bottom: 5px;
border-bottom-right-radius: 4px; border-bottom-right-radius: 4px;
} }
.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > span:not(.pull-right),
.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu {
display: block !important;
position: absolute;
width: 180px;
left: 50px;
}
.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > span {
top: 0;
margin-left: -3px;
padding: 12px 5px 12px 20px;
background-color: inherit;
}
.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > .pull-right-container {
position: relative!important;
float: right;
width: auto!important;
left: 180px !important;
top: -22px !important;
z-index: 900;
}
.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > .pull-right-container > .label:not(:first-of-type) {
display: none;
}
.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu {
top: 44px;
margin-left: 0;
}
.sidebar-mini.sidebar-collapse .main-sidebar .user-panel > .info, .sidebar-mini.sidebar-collapse .main-sidebar .user-panel > .info,
.sidebar-mini.sidebar-collapse .sidebar-form, .sidebar-mini.sidebar-collapse .sidebar-form,
.sidebar-mini.sidebar-collapse .sidebar-menu > li > a > span, .sidebar-mini.sidebar-collapse .sidebar-menu > li > a > span,
...@@ -675,6 +625,41 @@ a:focus { ...@@ -675,6 +625,41 @@ a:focus {
margin-left: 50px; margin-left: 50px;
} }
} }
.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu > li:hover > a > span:not(.pull-right),
.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu > li:hover > .treeview-menu {
display: block !important;
position: absolute;
width: 180px;
left: 50px;
}
.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu > li:hover > a > span {
top: 0;
margin-left: -3px;
padding: 12px 5px 12px 20px;
background-color: inherit;
}
.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu > li:hover > a > .pull-right-container {
position: relative !important;
float: right;
width: auto !important;
left: 180px !important;
top: -22px !important;
z-index: 900;
}
.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu > li:hover > a > .pull-right-container > .label:not(:first-of-type) {
display: none;
}
.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu > li:hover > .treeview-menu {
top: 44px;
margin-left: 0;
}
.sidebar-expanded-on-hover .main-footer,
.sidebar-expanded-on-hover .content-wrapper {
margin-left: 50px;
}
.sidebar-expanded-on-hover .main-sidebar {
box-shadow: 3px 0 8px rgba(0, 0, 0, 0.125);
}
.sidebar-menu, .sidebar-menu,
.main-sidebar .user-panel, .main-sidebar .user-panel,
.sidebar-menu > li.header { .sidebar-menu > li.header {
...@@ -743,6 +728,12 @@ a:focus { ...@@ -743,6 +728,12 @@ a:focus {
margin-right: 230px; margin-right: 230px;
} }
} }
.fixed .control-sidebar {
position: fixed;
height: 100%;
overflow-y: auto;
padding-bottom: 50px;
}
.nav-tabs.control-sidebar-tabs > li:first-of-type > a, .nav-tabs.control-sidebar-tabs > li:first-of-type > a,
.nav-tabs.control-sidebar-tabs > li:first-of-type > a:hover, .nav-tabs.control-sidebar-tabs > li:first-of-type > a:hover,
.nav-tabs.control-sidebar-tabs > li:first-of-type > a:focus { .nav-tabs.control-sidebar-tabs > li:first-of-type > a:focus {
...@@ -3084,6 +3075,35 @@ table.text-center th { ...@@ -3084,6 +3075,35 @@ table.text-center th {
height: auto; height: auto;
float: left; float: left;
} }
.treeview-menu {
display: none;
list-style: none;
padding: 0;
margin: 0;
padding-left: 5px;
}
.treeview-menu .treeview-menu {
padding-left: 20px;
}
.treeview-menu > li {
margin: 0;
}
.treeview-menu > li > a {
padding: 5px 5px 5px 15px;
display: block;
font-size: 14px;
}
.treeview-menu > li > a > .fa,
.treeview-menu > li > a > .glyphicon,
.treeview-menu > li > a > .ion {
width: 20px;
}
.treeview-menu > li > a > .pull-right-container > .fa-angle-left,
.treeview-menu > li > a > .pull-right-container > .fa-angle-down,
.treeview-menu > li > a > .fa-angle-left,
.treeview-menu > li > a > .fa-angle-down {
width: auto;
}
/* /*
* Page: Mailbox * Page: Mailbox
* ------------- * -------------
......
此差异已折叠。
此差异已折叠。
...@@ -4,15 +4,14 @@ ...@@ -4,15 +4,14 @@
*/ */
/* skin-black navbar */ /* skin-black navbar */
.skin-black-light .main-header { .skin-black-light .main-header {
-webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05); border-bottom: 1px solid #d2d6de;
box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05);
} }
.skin-black-light .main-header .navbar-toggle { .skin-black-light .main-header .navbar-toggle {
color: #333; color: #333;
} }
.skin-black-light .main-header .navbar-brand { .skin-black-light .main-header .navbar-brand {
color: #333; color: #333;
border-right: 1px solid #eee; border-right: 1px solid #d2d6de;
} }
.skin-black-light .main-header .navbar { .skin-black-light .main-header .navbar {
background-color: #ffffff; background-color: #ffffff;
...@@ -39,21 +38,21 @@ ...@@ -39,21 +38,21 @@
} }
.skin-black-light .main-header .navbar > .sidebar-toggle { .skin-black-light .main-header .navbar > .sidebar-toggle {
color: #333; color: #333;
border-right: 1px solid #eee; border-right: 1px solid #d2d6de;
} }
.skin-black-light .main-header .navbar .navbar-nav > li > a { .skin-black-light .main-header .navbar .navbar-nav > li > a {
border-right: 1px solid #eee; border-right: 1px solid #d2d6de;
} }
.skin-black-light .main-header .navbar .navbar-custom-menu .navbar-nav > li > a, .skin-black-light .main-header .navbar .navbar-custom-menu .navbar-nav > li > a,
.skin-black-light .main-header .navbar .navbar-right > li > a { .skin-black-light .main-header .navbar .navbar-right > li > a {
border-left: 1px solid #eee; border-left: 1px solid #d2d6de;
border-right-width: 0; border-right-width: 0;
} }
.skin-black-light .main-header > .logo { .skin-black-light .main-header > .logo {
background-color: #ffffff; background-color: #ffffff;
color: #333333; color: #333333;
border-bottom: 0 solid transparent; border-bottom: 0 solid transparent;
border-right: 1px solid #eee; border-right: 1px solid #d2d6de;
} }
.skin-black-light .main-header > .logo:hover { .skin-black-light .main-header > .logo:hover {
background-color: #fcfcfc; background-color: #fcfcfc;
...@@ -81,9 +80,8 @@ ...@@ -81,9 +80,8 @@
.skin-black-light .left-side { .skin-black-light .left-side {
background-color: #f9fafc; background-color: #f9fafc;
} }
.skin-black-light .content-wrapper, .skin-black-light .main-sidebar {
.skin-black-light .main-footer { border-right: 1px solid #d2d6de;
border-left: 1px solid #d2d6de;
} }
.skin-black-light .user-panel > .info, .skin-black-light .user-panel > .info,
.skin-black-light .user-panel > .info > a { .skin-black-light .user-panel > .info > a {
...@@ -122,14 +120,14 @@ ...@@ -122,14 +120,14 @@
.skin-black-light .sidebar a:hover { .skin-black-light .sidebar a:hover {
text-decoration: none; text-decoration: none;
} }
.skin-black-light .treeview-menu > li > a { .skin-black-light .sidebar-menu .treeview-menu > li > a {
color: #777777; color: #777777;
} }
.skin-black-light .treeview-menu > li.active > a, .skin-black-light .sidebar-menu .treeview-menu > li.active > a,
.skin-black-light .treeview-menu > li > a:hover { .skin-black-light .sidebar-menu .treeview-menu > li > a:hover {
color: #000000; color: #000000;
} }
.skin-black-light .treeview-menu > li.active > a { .skin-black-light .sidebar-menu .treeview-menu > li.active > a {
font-weight: 600; font-weight: 600;
} }
.skin-black-light .sidebar-form { .skin-black-light .sidebar-form {
......
.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}.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}} .skin-black-light .main-header{border-bottom:1px solid #d2d6de}.skin-black-light .main-header .navbar-toggle{color:#333}.skin-black-light .main-header .navbar-brand{color:#333;border-right:1px solid #d2d6de}.skin-black-light .main-header .navbar{background-color:#fff}.skin-black-light .main-header .navbar .nav>li>a{color:#333}.skin-black-light .main-header .navbar .nav>li>a:hover,.skin-black-light .main-header .navbar .nav>li>a:active,.skin-black-light .main-header .navbar .nav>li>a:focus,.skin-black-light .main-header .navbar .nav .open>a,.skin-black-light .main-header .navbar .nav .open>a:hover,.skin-black-light .main-header .navbar .nav .open>a:focus,.skin-black-light .main-header .navbar .nav>.active>a{background:#fff;color:#999}.skin-black-light .main-header .navbar .sidebar-toggle{color:#333}.skin-black-light .main-header .navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black-light .main-header .navbar>.sidebar-toggle{color:#333;border-right:1px solid #d2d6de}.skin-black-light .main-header .navbar .navbar-nav>li>a{border-right:1px solid #d2d6de}.skin-black-light .main-header .navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black-light .main-header .navbar .navbar-right>li>a{border-left:1px solid #d2d6de;border-right-width:0}.skin-black-light .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #d2d6de}.skin-black-light .main-header>.logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black-light .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black-light .main-header>.logo:hover{background-color:#1f1f1f}}.skin-black-light .main-header li.user-header{background-color:#222}.skin-black-light .content-header{background:transparent;box-shadow:none}.skin-black-light .wrapper,.skin-black-light .main-sidebar,.skin-black-light .left-side{background-color:#f9fafc}.skin-black-light .main-sidebar{border-right:1px solid #d2d6de}.skin-black-light .user-panel>.info,.skin-black-light .user-panel>.info>a{color:#444}.skin-black-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-black-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-black-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-black-light .sidebar-menu>li:hover>a,.skin-black-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-black-light .sidebar-menu>li.active{border-left-color:#fff}.skin-black-light .sidebar-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-black-light .sidebar a{color:#444}.skin-black-light .sidebar a:hover{text-decoration:none}.skin-black-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-black-light .sidebar-menu .treeview-menu>li.active>a,.skin-black-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-black-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-black-light .sidebar-form input[type="text"],.skin-black-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-black-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black-light .sidebar-form input[type="text"]:focus,.skin-black-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-black-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}
\ No newline at end of file \ No newline at end of file
...@@ -93,9 +93,12 @@ ...@@ -93,9 +93,12 @@
border-left: 3px solid transparent; border-left: 3px solid transparent;
} }
.skin-black .sidebar-menu > li:hover > a, .skin-black .sidebar-menu > li:hover > a,
.skin-black .sidebar-menu > li.active > a { .skin-black .sidebar-menu > li.active > a,
.skin-black .sidebar-menu > li.menu-open > a {
color: #ffffff; color: #ffffff;
background: #1e282c; background: #1e282c;
}
.skin-black .sidebar-menu > li.active > a {
border-left-color: #ffffff; border-left-color: #ffffff;
} }
.skin-black .sidebar-menu > li > .treeview-menu { .skin-black .sidebar-menu > li > .treeview-menu {
...@@ -108,11 +111,11 @@ ...@@ -108,11 +111,11 @@
.skin-black .sidebar a:hover { .skin-black .sidebar a:hover {
text-decoration: none; text-decoration: none;
} }
.skin-black .treeview-menu > li > a { .skin-black .sidebar-menu .treeview-menu > li > a {
color: #8aa4af; color: #8aa4af;
} }
.skin-black .treeview-menu > li.active > a, .skin-black .sidebar-menu .treeview-menu > li.active > a,
.skin-black .treeview-menu > li > a:hover { .skin-black .sidebar-menu .treeview-menu > li > a:hover {
color: #ffffff; color: #ffffff;
} }
.skin-black .sidebar-form { .skin-black .sidebar-form {
......
.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}.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} .skin-black .main-header{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.skin-black .main-header .navbar-toggle{color:#333}.skin-black .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.skin-black .main-header .navbar{background-color:#fff}.skin-black .main-header .navbar .nav>li>a{color:#333}.skin-black .main-header .navbar .nav>li>a:hover,.skin-black .main-header .navbar .nav>li>a:active,.skin-black .main-header .navbar .nav>li>a:focus,.skin-black .main-header .navbar .nav .open>a,.skin-black .main-header .navbar .nav .open>a:hover,.skin-black .main-header .navbar .nav .open>a:focus,.skin-black .main-header .navbar .nav>.active>a{background:#fff;color:#999}.skin-black .main-header .navbar .sidebar-toggle{color:#333}.skin-black .main-header .navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black .main-header .navbar>.sidebar-toggle{color:#333;border-right:1px solid #eee}.skin-black .main-header .navbar .navbar-nav>li>a{border-right:1px solid #eee}.skin-black .main-header .navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black .main-header .navbar .navbar-right>li>a{border-left:1px solid #eee;border-right-width:0}.skin-black .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.skin-black .main-header>.logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black .main-header>.logo:hover{background-color:#1f1f1f}}.skin-black .main-header li.user-header{background-color:#222}.skin-black .content-header{background:transparent;box-shadow:none}.skin-black .wrapper,.skin-black .main-sidebar,.skin-black .left-side{background-color:#222d32}.skin-black .user-panel>.info,.skin-black .user-panel>.info>a{color:#fff}.skin-black .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-black .sidebar-menu>li>a{border-left:3px solid transparent}.skin-black .sidebar-menu>li:hover>a,.skin-black .sidebar-menu>li.active>a,.skin-black .sidebar-menu>li.menu-open>a{color:#fff;background:#1e282c}.skin-black .sidebar-menu>li.active>a{border-left-color:#fff}.skin-black .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-black .sidebar a{color:#b8c7ce}.skin-black .sidebar a:hover{text-decoration:none}.skin-black .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-black .sidebar-menu .treeview-menu>li.active>a,.skin-black .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-black .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-black .sidebar-form input[type="text"],.skin-black .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-black .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black .sidebar-form input[type="text"]:focus,.skin-black .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-black .pace .pace-progress{background:#222}.skin-black .pace .pace-activity{border-top-color:#222;border-left-color:#222}
\ No newline at end of file \ No newline at end of file
...@@ -61,9 +61,8 @@ ...@@ -61,9 +61,8 @@
.skin-blue-light .left-side { .skin-blue-light .left-side {
background-color: #f9fafc; background-color: #f9fafc;
} }
.skin-blue-light .content-wrapper, .skin-blue-light .main-sidebar {
.skin-blue-light .main-footer { border-right: 1px solid #d2d6de;
border-left: 1px solid #d2d6de;
} }
.skin-blue-light .user-panel > .info, .skin-blue-light .user-panel > .info,
.skin-blue-light .user-panel > .info > a { .skin-blue-light .user-panel > .info > a {
...@@ -102,14 +101,14 @@ ...@@ -102,14 +101,14 @@
.skin-blue-light .sidebar a:hover { .skin-blue-light .sidebar a:hover {
text-decoration: none; text-decoration: none;
} }
.skin-blue-light .treeview-menu > li > a { .skin-blue-light .sidebar-menu .treeview-menu > li > a {
color: #777777; color: #777777;
} }
.skin-blue-light .treeview-menu > li.active > a, .skin-blue-light .sidebar-menu .treeview-menu > li.active > a,
.skin-blue-light .treeview-menu > li > a:hover { .skin-blue-light .sidebar-menu .treeview-menu > li > a:hover {
color: #000000; color: #000000;
} }
.skin-blue-light .treeview-menu > li.active > a { .skin-blue-light .sidebar-menu .treeview-menu > li.active > a {
font-weight: 600; font-weight: 600;
} }
.skin-blue-light .sidebar-form { .skin-blue-light .sidebar-form {
......
.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}.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} .skin-blue-light .main-header .navbar{background-color:#3c8dbc}.skin-blue-light .main-header .navbar .nav>li>a{color:#fff}.skin-blue-light .main-header .navbar .nav>li>a:hover,.skin-blue-light .main-header .navbar .nav>li>a:active,.skin-blue-light .main-header .navbar .nav>li>a:focus,.skin-blue-light .main-header .navbar .nav .open>a,.skin-blue-light .main-header .navbar .nav .open>a:hover,.skin-blue-light .main-header .navbar .nav .open>a:focus,.skin-blue-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-blue-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-blue-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue-light .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-blue-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue-light .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue-light .main-header .logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue-light .main-header .logo:hover{background-color:#3b8ab8}.skin-blue-light .main-header li.user-header{background-color:#3c8dbc}.skin-blue-light .content-header{background:transparent}.skin-blue-light .wrapper,.skin-blue-light .main-sidebar,.skin-blue-light .left-side{background-color:#f9fafc}.skin-blue-light .main-sidebar{border-right:1px solid #d2d6de}.skin-blue-light .user-panel>.info,.skin-blue-light .user-panel>.info>a{color:#444}.skin-blue-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-blue-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-blue-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-blue-light .sidebar-menu>li:hover>a,.skin-blue-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-blue-light .sidebar-menu>li.active{border-left-color:#3c8dbc}.skin-blue-light .sidebar-menu>li.active>a{font-weight:600}.skin-blue-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-blue-light .sidebar a{color:#444}.skin-blue-light .sidebar a:hover{text-decoration:none}.skin-blue-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-blue-light .sidebar-menu .treeview-menu>li.active>a,.skin-blue-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-blue-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-blue-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-blue-light .sidebar-form input[type="text"],.skin-blue-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-blue-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-blue-light .sidebar-form input[type="text"]:focus,.skin-blue-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-blue-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-blue-light .main-footer{border-top-color:#d2d6de}.skin-blue.layout-top-nav .main-header>.logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue.layout-top-nav .main-header>.logo:hover{background-color:#3b8ab8}
\ No newline at end of file \ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
/*! AdminLTE app.js /*! (DEPRECATED) AdminLTE app.js
* ================ * =============================
* Main JS application file for AdminLTE v2. This file * Main JS application file for AdminLTE v2. This file
* should be included in all pages. It controls some layout * should be included in all pages. It controls some layout
* options and implements exclusive AdminLTE plugins. * options and implements exclusive AdminLTE plugins.
...@@ -9,8 +9,10 @@ ...@@ -9,8 +9,10 @@
* @Email <abdullah@almsaeedstudio.com> * @Email <abdullah@almsaeedstudio.com>
* @version 2.3.12 * @version 2.3.12
* @license MIT <http://opensource.org/licenses/MIT> * @license MIT <http://opensource.org/licenses/MIT>
* @deprecated since 2.3.11
*/ */
/* jshint ignore:start */
// jscs:disable
//Make sure jQuery has been loaded before app.js //Make sure jQuery has been loaded before app.js
if (typeof jQuery === "undefined") { if (typeof jQuery === "undefined") {
throw new Error("AdminLTE requires jQuery"); throw new Error("AdminLTE requires jQuery");
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册