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

Merge branch 'v2.4.0-dev'

// AdminLTE Gruntfile
module.exports = function (grunt) {
module.exports = function (grunt) { // jshint ignore:line
'use strict';
grunt.initConfig({
pkg : grunt.file.readJSON('package.json'),
watch: {
// If any .less file changes in directory "build/less/" run the "less"-task.
files: ["build/less/*.less", "build/less/skins/*.less", "dist/js/app.js"],
tasks: ["less", "uglify"]
less : {
// Compiles less files upon saving
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
less: {
less : {
// Development not compressed
development: {
options: {
// Whether to compress or not
compress: false
},
development : {
files: {
// compilation.css : source.less
"dist/css/AdminLTE.css": "build/less/AdminLTE.less",
'dist/css/AdminLTE.css' : 'build/less/AdminLTE.less',
// 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
"dist/css/alt/AdminLTE-select2.css": "build/less/select2.less",
"dist/css/alt/AdminLTE-fullcalendar.css": "build/less/fullcalendar.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"
'dist/css/alt/AdminLTE-select2.css' : 'build/less/select2.less',
'dist/css/alt/AdminLTE-fullcalendar.css' : 'build/less/fullcalendar.less',
'dist/css/alt/AdminLTE-bootstrap-social.css': 'build/less/bootstrap-social.less'
}
},
// Production compresses version
production: {
// Production compressed version
production : {
options: {
// Whether to compress or not
compress: true
},
files: {
files : {
// 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
"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
"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-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",
"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"
'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-bootstrap-social.min.css': 'build/less/bootstrap-social.less'
}
},
// Non minified skin files
skins : {
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'
}
},
// 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: {
options: {
mangle: true,
options : {
mangle : true,
preserveComments: 'some'
},
my_target: {
production: {
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
includes: {
build: {
src: ['*.html'], // Source files
dest: 'documentation/', // Destination directory
src : ['*.html'], // Source files
dest : 'documentation/', // Destination directory
flatten: true,
cwd: 'documentation/build',
cwd : 'documentation/build',
options: {
silent: true,
silent : true,
includePath: 'documentation/build/include'
}
}
......@@ -104,37 +162,57 @@ module.exports = function (grunt) {
// Optimize images
image: {
dynamic: {
files: [{
expand: true,
cwd: 'build/img/',
src: ['**/*.{png,jpg,gif,svg,jpeg}'],
dest: 'dist/img/'
}]
files: [
{
expand: true,
cwd : 'build/img/',
src : ['**/*.{png,jpg,gif,svg,jpeg}'],
dest : 'dist/img/'
}
]
}
},
// Validate JS code
jshint: {
options: {
jshintrc: '.jshintrc'
jshintrc: 'build/js/.jshintrc'
},
grunt : {
options: {
jshintrc: 'build/grunt/.jshintrc'
},
src : 'Gruntfile.js'
},
core: {
src: 'dist/js/app.js'
core : {
src: 'build/js/*.js'
},
demo: {
demo : {
src: 'dist/js/demo.js'
},
pages: {
pages : {
src: 'dist/js/pages/*.js'
}
},
jscs: {
options: {
config: 'build/js/.jscsrc'
},
core : {
src: '<%= jshint.core.src %>'
},
pages : {
src: '<%= jshint.pages.src %>'
}
},
// Validate CSS files
csslint: {
options: {
csslintrc: 'build/less/.csslintrc'
},
dist: [
dist : [
'dist/css/AdminLTE.css'
]
},
......@@ -144,14 +222,14 @@ module.exports = function (grunt) {
options: {
relaxerror: ['W005']
},
files: ['pages/**/*.html', '*.html']
files : ['pages/**/*.html', '*.html']
},
// Delete images in build directory
// After compressing the images in the build/img dir, there is no need
// for them
clean: {
build: ["build/img/*"]
build: ['build/img/*']
}
});
......@@ -169,16 +247,21 @@ module.exports = function (grunt) {
grunt.loadNpmTasks('grunt-image');
// Validate JS code
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-jscs');
// Delete not needed files
grunt.loadNpmTasks('grunt-contrib-clean');
// Lint CSS
grunt.loadNpmTasks('grunt-contrib-csslint');
// Lint Bootstrap
grunt.loadNpmTasks('grunt-bootlint');
// Concatenate JS files
grunt.loadNpmTasks('grunt-contrib-concat');
// Linting task
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']);
};
......@@ -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.
**Download & Preview on [Almsaeed Studio](https://almsaeedstudio.com)**
**Download & Preview on [AdminLTE.IO](https://adminlte.io)**
Looking for Premium Templates?
------------------------------
**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.**
### 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.**
## 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.
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
Contribution are always **welcome and recommended**! Here is how:
- 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:
#### 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.
- Contributions are only accepted through Github pull requests.
- Finally, contributed code must work in all supported browsers (see above for browser support).
License
-------
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.
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)
### 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
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).
[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/)
[Unsplash](https://unsplash.com/)
### 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.
[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!**
[![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 @@
"bower_components",
"composer.json",
"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 @@
"es3" : true,
"expr" : true,
"jquery" : true,
"latedef" : "nofunc",
"latedef" : true,
"laxbreak" : true,
"nonbsp" : 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 @@
@import "carousel.less";
@import "modal.less";
@import "social-widgets.less";
@import "treeview.less";
//PAGES
//------
@import "mailbox.less";
......
......@@ -4,9 +4,7 @@
* Website: Almsaeed Studio <http://almsaeedstudio.com>
* License: Open source - MIT
* 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
//The core bootstrap code have not been modified. These files
//are included only for reference.
......@@ -42,6 +40,7 @@
@import "carousel.less";
@import "modal.less";
@import "social-widgets.less";
@import "treeview.less";
//PAGES
//------
@import "mailbox.less";
......
/*
* Component: Control sidebar. By default, this is the right sidebar.
*/
//The sidebar's background control class
//This is a hack to make the background visible while scrolling
// The sidebar's background control class
// This is a hack to make the background visible while scrolling
.control-sidebar-bg {
position: fixed;
z-index: 1000;
bottom: 0;
}
//Transitions
// Transitions
.control-sidebar-bg,
.control-sidebar {
top: 0;
......@@ -18,20 +18,20 @@
.transition(right @transition-speed ease-in-out);
}
//The sidebar
// The sidebar
.control-sidebar {
position: absolute;
padding-top: @navbar-height;
z-index: 1010;
//Fix position after header collapse
// Fix position after header collapse
@media (max-width: @screen-sm) {
padding-top: @navbar-height + 50;
}
//Tab panes
// Tab panes
> .tab-content {
padding: 10px 15px;
}
//Open state with slide over content effect
// Open state with slide over content effect
&.control-sidebar-open {
&,
+ .control-sidebar-bg {
......@@ -40,7 +40,7 @@
}
}
//Open without slide over content
// Open without slide over content
.control-sidebar-open {
.control-sidebar-bg,
.control-sidebar {
......@@ -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 {
> li {
&:first-of-type > a {
......@@ -68,7 +78,7 @@
> a {
.border-radius(0);
//Hover and active states
// Hover and active states
&,
&:hover {
border-top: none;
......@@ -80,7 +90,7 @@
font-size: 16px;
}
}
//Active state
// Active state
&.active {
> a {
&,
......@@ -94,7 +104,7 @@
}
}
}
//Remove responsiveness on small screens
// Remove responsiveness on small screens
@media (max-width: @screen-sm) {
display: table;
> li {
......@@ -103,7 +113,7 @@
}
}
//Headings in the sidebar content
// Headings in the sidebar content
.control-sidebar-heading {
font-weight: 400;
font-size: 16px;
......@@ -111,14 +121,14 @@
margin-bottom: 10px;
}
//Subheadings
// Subheadings
.control-sidebar-subheading {
display: block;
font-weight: 400;
font-size: 14px;
}
//Control Sidebar Menu
// Control Sidebar Menu
.control-sidebar-menu {
list-style: none;
padding: 0;
......@@ -155,22 +165,22 @@
}
}
//Dark skin
// Dark skin
.control-sidebar-dark {
color: @sidebar-dark-color;
// Background
// Background
&,
+ .control-sidebar-bg {
background: @sidebar-dark-bg;
}
// Sidebar tabs
// Sidebar tabs
.nav-tabs.control-sidebar-tabs {
border-bottom: darken(@sidebar-dark-bg, 3%);
> li {
> a {
background: darken(@sidebar-dark-bg, 5%);
color: @sidebar-dark-color;
//Hover and active states
// Hover and active states
&,
&:hover,
&:focus {
......@@ -186,7 +196,7 @@
color: #fff;
}
}
//Active state
// Active state
&.active {
> a {
&,
......@@ -200,12 +210,12 @@
}
}
}
//Heading & subheading
// Heading & subheading
.control-sidebar-heading,
.control-sidebar-subheading {
color: #fff;
}
//Sidebar list
// Sidebar list
.control-sidebar-menu {
> li {
> a {
......@@ -222,23 +232,23 @@
}
}
//Light skin
// Light skin
.control-sidebar-light {
color: lighten(@sidebar-light-color, 10%);
// Background
// Background
&,
+ .control-sidebar-bg {
background: @sidebar-light-bg;
border-left: 1px solid @gray-lte;
}
// Sidebar tabs
// Sidebar tabs
.nav-tabs.control-sidebar-tabs {
border-bottom: @gray-lte;
> li {
> a {
background: darken(@sidebar-light-bg, 5%);
color: @sidebar-light-color;
//Hover and active states
// Hover and active states
&,
&:hover,
&:focus {
......@@ -251,7 +261,7 @@
background: darken(@sidebar-light-bg, 3%);
}
}
//Active state
// Active state
&.active {
> a {
&,
......@@ -265,12 +275,12 @@
}
}
}
//Heading & subheading
// Heading & subheading
.control-sidebar-heading,
.control-sidebar-subheading {
color: #111;
}
//Sidebar list
// Sidebar list
.control-sidebar-menu {
margin-left: -14px;
> li {
......
......@@ -44,26 +44,26 @@ body {
.content-wrapper,
.right-side,
.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,
margin @transition-speed @transition-fn;
.transition-transform(@transition-rule);
margin-left: @sidebar-width;
z-index: 820;
//Top nav layout
// Top nav layout
.layout-top-nav & {
margin-left: 0;
}
@media (max-width: @screen-xs-max) {
margin-left: 0;
}
//When opening the sidebar on large screens
// When opening the sidebar on large screens
.sidebar-collapse & {
@media (min-width: @screen-sm) {
margin-left: 0;
}
}
//When opening the sidebar on small screens
// When opening the sidebar on small screens
.sidebar-open & {
@media (max-width: @screen-xs-max) {
.translate(@sidebar-width, 0);
......@@ -109,16 +109,20 @@ body {
max-width: 100%;
}
}
.wrapper {
overflow: hidden;
}
}
body.hold-transition {
.hold-transition {
.content-wrapper,
.right-side,
.main-footer,
.main-sidebar,
.left-side,
.main-header .navbar,
.main-header .logo {
.main-header .logo,
.menu-open .fa-angle-left {
/* Fix for IE */
.transition(none);
}
......
......@@ -74,22 +74,12 @@
}
//Different radius each side
.border-radius(@top-left;
@top-right
;
@bottom-left
;
@bottom-right
)
.border-radius(@top-left, @top-right, @bottom-left, @bottom-right)
{
border-top-left-radius: @top-left
;
border-top-right-radius: @top-right
;
border-bottom-right-radius: @bottom-right
;
border-bottom-left-radius: @bottom-left
;
border-top-left-radius: @top-left;
border-top-right-radius: @top-right;
border-bottom-right-radius: @bottom-right;
border-bottom-left-radius: @bottom-left;
}
//Gradient background
......@@ -140,9 +130,13 @@
border-left: 3px solid transparent;
}
//Hover and active states
&:hover > a, &.active > a {
&:hover > a,
&.active > a,
&.menu-open > a {
color: @sidebar-dark-hover-color;
background: @sidebar-dark-hover-bg;
}
&.active > a {
border-left-color: @link-hover-border-color;
}
//First Level Submenu
......@@ -159,7 +153,7 @@
}
}
//All submenus
.treeview-menu {
.sidebar-menu .treeview-menu {
> li {
> a {
color: @sidebar-dark-submenu-color;
......@@ -211,7 +205,10 @@
}
.content-wrapper,
.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 {
......@@ -261,7 +258,7 @@
}
}
//All submenus
.treeview-menu {
.sidebar-menu .treeview-menu {
> li {
> a {
color: @sidebar-light-submenu-color;
......
......@@ -42,49 +42,11 @@
}
> .treeview-menu {
//Add some padding to the treeview menu
// Add some padding to the treeview menu
padding-top: 5px;
padding-bottom: 5px;
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 @@
}
}
// 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
.sidebar-menu,
.main-sidebar .user-panel,
......
......@@ -119,6 +119,7 @@
height: auto;
padding: 0;
margin-right: 10px;
.transition(transform .5s ease);
}
li > a > .fa-angle-left {
position: absolute;
......@@ -126,44 +127,14 @@
right: 10px;
margin-top: -8px;
}
li.active {
.menu-open {
> a > .fa-angle-left,
> a > .pull-right-container > .fa-angle-left {
.rotate(-90deg);
}
> .treeview-menu {
display: block;
}
}
// 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;
}
}
}
.active > .treeview-menu {
display: block;
}
}
......@@ -11,30 +11,31 @@
.skin-black-light {
//Navbar & Logo
.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 {
color: #333;
}
.navbar-brand {
color: #333;
border-right: 1px solid #eee;
border-right: 1px solid @gray-lte;
}
.navbar {
.navbar-variant(#fff; #333; #999; #fff);
> .sidebar-toggle {
color: #333;
border-right: 1px solid #eee;
border-right: 1px solid @gray-lte;
}
.navbar-nav {
> li > a {
border-right: 1px solid #eee;
border-right: 1px solid @gray-lte;
}
}
.navbar-custom-menu .navbar-nav,
.navbar-right {
> li {
> a {
border-left: 1px solid #eee;
border-left: 1px solid @gray-lte;
border-right-width: 0;
}
}
......@@ -42,7 +43,7 @@
}
> .logo {
.logo-variant(#fff; #333);
border-right: 1px solid #eee;
border-right: 1px solid @gray-lte;
@media (max-width: @screen-header-collapse) {
.logo-variant(#222; #fff);
border-right: none;
......@@ -61,4 +62,4 @@
}
//Create the sidebar skin
.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";
//COLORS
//--------------------------------------------------------
//Primary
// COLORS
// --------------------------------------------------------
// Primary
@light-blue: #3c8dbc;
//Danger
// Danger
@red: #dd4b39;
//Success
// Success
@green: #00a65a;
//Info
// Info
@aqua: #00c0ef;
//Warning
// Warning
@yellow: #f39c12;
@blue: #0073b7;
@navy: #001F3F;
......@@ -30,27 +30,27 @@
@black: #111;
@gray-lte: #d2d6de;
//LAYOUT
//--------------------------------------------------------
// LAYOUT
// --------------------------------------------------------
//Side bar and logo width
// Side bar and logo width
@sidebar-width: 230px;
//Boxed layout maximum width
// Boxed layout maximum width
@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;
//Link colors (Aka: <a> tags)
// Link colors (Aka: <a> tags)
@link-color: @light-blue;
@link-hover-color: lighten(@link-color, 15%);
//Body background (Affects main content background only)
// Body background (Affects main content background only)
@body-bg: #ecf0f5;
//SIDEBAR SKINS
//--------------------------------------------------------
// SIDEBAR SKINS
// --------------------------------------------------------
//Dark sidebar
// Dark sidebar
@sidebar-dark-bg: #222d32;
@sidebar-dark-hover-bg: darken(@sidebar-dark-bg, 2%);
@sidebar-dark-color: lighten(@sidebar-dark-bg, 60%);
......@@ -59,7 +59,7 @@
@sidebar-dark-submenu-color: lighten(@sidebar-dark-submenu-bg, 40%);
@sidebar-dark-submenu-hover-color: #fff;
//Light sidebar
// Light sidebar
@sidebar-light-bg: #f9fafc;
@sidebar-light-hover-bg: lighten(#f0f0f1, 1.5%);
@sidebar-light-color: #444;
......@@ -68,55 +68,58 @@
@sidebar-light-submenu-color: #777;
@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;
//BOXES
//--------------------------------------------------------
// BOXES
// --------------------------------------------------------
@box-border-color: #f4f4f4;
@box-border-radius: 3px;
@box-footer-bg: #fff;
@box-boxshadow: 0 1px 1px rgba(0, 0, 0, .1);
@box-padding: 10px;
//Box variants
// Box variants
@box-default-border-top-color: #d2d6de;
//BUTTONS
//--------------------------------------------------------
// BUTTONS
// --------------------------------------------------------
@btn-boxshadow: none;
//PROGRESS BARS
//--------------------------------------------------------
// PROGRESS BARS
// --------------------------------------------------------
@progress-bar-border-radius: 1px;
@progress-bar-sm-border-radius: 1px;
@progress-bar-xs-border-radius: 1px;
//FORMS
//--------------------------------------------------------
// FORMS
// --------------------------------------------------------
@input-radius: 0;
//BUTTONS
//--------------------------------------------------------
// BUTTONS
// --------------------------------------------------------
//Border radius for non flat buttons
// Border radius for non flat buttons
@btn-border-radius: 3px;
//DIRECT CHAT
//--------------------------------------------------------
// DIRECT CHAT
// --------------------------------------------------------
@direct-chat-height: 250px;
@direct-chat-default-msg-bg: @gray-lte;
@direct-chat-default-font-color: #444;
@direct-chat-default-msg-border-color: @gray-lte;
//CHAT WIDGET
//--------------------------------------------------------
// CHAT WIDGET
// --------------------------------------------------------
@attachment-border-radius: 3px;
//TRANSITIONS SETTINGS
//--------------------------------------------------------
// TRANSITIONS SETTINGS
// --------------------------------------------------------
//Transition global options
// Transition global options
@transition-speed: .3s;
@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
* Author: Almsaeed Studio
* Website: Almsaeed Studio <http://almsaeedstudio.com>
* License: Open source - MIT
* Please visit http://opensource.org/licenses/MIT for more information
!*/
*/
/*
* Core: General Layout Style
* -------------------------
......@@ -128,13 +127,17 @@ body {
.fixed.layout-boxed .wrapper {
max-width: 100%;
}
body.hold-transition .content-wrapper,
body.hold-transition .right-side,
body.hold-transition .main-footer,
body.hold-transition .main-sidebar,
body.hold-transition .left-side,
body.hold-transition .main-header .navbar,
body.hold-transition .main-header .logo {
.fixed .wrapper {
overflow: hidden;
}
.hold-transition .content-wrapper,
.hold-transition .right-side,
.hold-transition .main-footer,
.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 */
-webkit-transition: none;
-o-transition: none;
......@@ -541,6 +544,9 @@ a:focus {
height: auto;
padding: 0;
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 {
position: absolute;
......@@ -548,45 +554,16 @@ a:focus {
right: 10px;
margin-top: -8px;
}
.sidebar-menu li.active > a > .fa-angle-left,
.sidebar-menu li.active > a > .pull-right-container > .fa-angle-left {
.sidebar-menu .menu-open > a > .fa-angle-left,
.sidebar-menu .menu-open > a > .pull-right-container > .fa-angle-left {
-webkit-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
-o-transform: rotate(-90deg);
transform: rotate(-90deg);
}
.sidebar-menu li.active > .treeview-menu {
.sidebar-menu .active > .treeview-menu {
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
*/
......@@ -622,34 +599,6 @@ a:focus {
padding-bottom: 5px;
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 .sidebar-form,
.sidebar-mini.sidebar-collapse .sidebar-menu > li > a > span,
......@@ -675,6 +624,41 @@ a:focus {
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,
.main-sidebar .user-panel,
.sidebar-menu > li.header {
......@@ -743,6 +727,12 @@ a:focus {
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:hover,
.nav-tabs.control-sidebar-tabs > li:first-of-type > a:focus {
......@@ -3084,6 +3074,35 @@ table.text-center th {
height: auto;
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
* -------------
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
......@@ -128,13 +128,17 @@ body {
.fixed.layout-boxed .wrapper {
max-width: 100%;
}
body.hold-transition .content-wrapper,
body.hold-transition .right-side,
body.hold-transition .main-footer,
body.hold-transition .main-sidebar,
body.hold-transition .left-side,
body.hold-transition .main-header .navbar,
body.hold-transition .main-header .logo {
.fixed .wrapper {
overflow: hidden;
}
.hold-transition .content-wrapper,
.hold-transition .right-side,
.hold-transition .main-footer,
.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 */
-webkit-transition: none;
-o-transition: none;
......@@ -541,6 +545,9 @@ a:focus {
height: auto;
padding: 0;
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 {
position: absolute;
......@@ -548,45 +555,16 @@ a:focus {
right: 10px;
margin-top: -8px;
}
.sidebar-menu li.active > a > .fa-angle-left,
.sidebar-menu li.active > a > .pull-right-container > .fa-angle-left {
.sidebar-menu .menu-open > a > .fa-angle-left,
.sidebar-menu .menu-open > a > .pull-right-container > .fa-angle-left {
-webkit-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
-o-transform: rotate(-90deg);
transform: rotate(-90deg);
}
.sidebar-menu li.active > .treeview-menu {
.sidebar-menu .active > .treeview-menu {
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
*/
......@@ -622,34 +600,6 @@ a:focus {
padding-bottom: 5px;
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 .sidebar-form,
.sidebar-mini.sidebar-collapse .sidebar-menu > li > a > span,
......@@ -675,6 +625,41 @@ a:focus {
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,
.main-sidebar .user-panel,
.sidebar-menu > li.header {
......@@ -743,6 +728,12 @@ a:focus {
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:hover,
.nav-tabs.control-sidebar-tabs > li:first-of-type > a:focus {
......@@ -3084,6 +3075,35 @@ table.text-center th {
height: auto;
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
* -------------
......
此差异已折叠。
此差异已折叠。
......@@ -4,15 +4,14 @@
*/
/* skin-black navbar */
.skin-black-light .main-header {
-webkit-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 #d2d6de;
}
.skin-black-light .main-header .navbar-toggle {
color: #333;
}
.skin-black-light .main-header .navbar-brand {
color: #333;
border-right: 1px solid #eee;
border-right: 1px solid #d2d6de;
}
.skin-black-light .main-header .navbar {
background-color: #ffffff;
......@@ -39,21 +38,21 @@
}
.skin-black-light .main-header .navbar > .sidebar-toggle {
color: #333;
border-right: 1px solid #eee;
border-right: 1px solid #d2d6de;
}
.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-right > li > a {
border-left: 1px solid #eee;
border-left: 1px solid #d2d6de;
border-right-width: 0;
}
.skin-black-light .main-header > .logo {
background-color: #ffffff;
color: #333333;
border-bottom: 0 solid transparent;
border-right: 1px solid #eee;
border-right: 1px solid #d2d6de;
}
.skin-black-light .main-header > .logo:hover {
background-color: #fcfcfc;
......@@ -81,9 +80,8 @@
.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 .main-sidebar {
border-right: 1px solid #d2d6de;
}
.skin-black-light .user-panel > .info,
.skin-black-light .user-panel > .info > a {
......@@ -122,14 +120,14 @@
.skin-black-light .sidebar a:hover {
text-decoration: none;
}
.skin-black-light .treeview-menu > li > a {
.skin-black-light .sidebar-menu .treeview-menu > li > a {
color: #777777;
}
.skin-black-light .treeview-menu > li.active > a,
.skin-black-light .treeview-menu > li > a:hover {
.skin-black-light .sidebar-menu .treeview-menu > li.active > a,
.skin-black-light .sidebar-menu .treeview-menu > li > a:hover {
color: #000000;
}
.skin-black-light .treeview-menu > li.active > a {
.skin-black-light .sidebar-menu .treeview-menu > li.active > a {
font-weight: 600;
}
.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}}
\ No newline at end of file
.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
......@@ -93,9 +93,12 @@
border-left: 3px solid transparent;
}
.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;
background: #1e282c;
}
.skin-black .sidebar-menu > li.active > a {
border-left-color: #ffffff;
}
.skin-black .sidebar-menu > li > .treeview-menu {
......@@ -108,11 +111,11 @@
.skin-black .sidebar a:hover {
text-decoration: none;
}
.skin-black .treeview-menu > li > a {
.skin-black .sidebar-menu .treeview-menu > li > a {
color: #8aa4af;
}
.skin-black .treeview-menu > li.active > a,
.skin-black .treeview-menu > li > a:hover {
.skin-black .sidebar-menu .treeview-menu > li.active > a,
.skin-black .sidebar-menu .treeview-menu > li > a:hover {
color: #ffffff;
}
.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}
\ No newline at end of file
.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
......@@ -61,9 +61,8 @@
.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 .main-sidebar {
border-right: 1px solid #d2d6de;
}
.skin-blue-light .user-panel > .info,
.skin-blue-light .user-panel > .info > a {
......@@ -102,14 +101,14 @@
.skin-blue-light .sidebar a:hover {
text-decoration: none;
}
.skin-blue-light .treeview-menu > li > a {
.skin-blue-light .sidebar-menu .treeview-menu > li > a {
color: #777777;
}
.skin-blue-light .treeview-menu > li.active > a,
.skin-blue-light .treeview-menu > li > a:hover {
.skin-blue-light .sidebar-menu .treeview-menu > li.active > a,
.skin-blue-light .sidebar-menu .treeview-menu > li > a:hover {
color: #000000;
}
.skin-blue-light .treeview-menu > li.active > a {
.skin-blue-light .sidebar-menu .treeview-menu > li.active > a {
font-weight: 600;
}
.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}
\ No newline at end of file
.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
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
/*! AdminLTE app.js
* ================
/*! (DEPRECATED) AdminLTE app.js
* =============================
* Main JS application file for AdminLTE v2. This file
* should be included in all pages. It controls some layout
* options and implements exclusive AdminLTE plugins.
......@@ -9,8 +9,10 @@
* @Email <abdullah@almsaeedstudio.com>
* @version 2.3.12
* @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
if (typeof jQuery === "undefined") {
throw new Error("AdminLTE requires jQuery");
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册