├── .babelrc ├── .editorconfig ├── .eslintrc.js ├── .gitignore ├── LICENSE ├── README.md ├── build ├── build.js ├── css-loaders.js ├── dev-client.js ├── dev-server.js ├── webpack.base.conf.js ├── webpack.dev.conf.js └── webpack.prod.conf.js ├── index.html ├── package.json ├── src ├── App.vue ├── assets │ ├── boxed-bg.jpg │ ├── boxed-bg.png │ ├── default-50x50.gif │ ├── icons.png │ ├── logo.png │ ├── photo1.png │ ├── photo2.png │ ├── photo3.jpg │ ├── photo4.jpg │ └── user2-160x160.jpg ├── components │ ├── Account.vue │ ├── Article.vue │ ├── Dashboard.vue │ ├── User.vue │ ├── account │ │ ├── findpwd.vue │ │ ├── login.vue │ │ └── register.vue │ ├── article │ │ ├── add.vue │ │ ├── category.vue │ │ ├── manage.vue │ │ └── trash.vue │ ├── layout │ │ ├── aside.vue │ │ ├── content-header.vue │ │ ├── footer.vue │ │ └── header.vue │ └── user │ │ ├── add.vue │ │ ├── blacklist.vue │ │ └── manage.vue └── main.js ├── static ├── .gitkeep ├── config │ ├── aside.config.js │ ├── content.header.config.js │ └── vue-resource.config.js ├── css │ ├── AdminLTE.css │ ├── AdminLTE.min.css │ ├── bootstrap.css │ ├── bootstrap.css.map │ ├── bootstrap.min.css │ ├── bootstrap.min.css.map │ ├── font-awesome.css │ ├── font-awesome.css.map │ ├── font-awesome.min.css │ └── skins │ │ ├── _all-skins.css │ │ ├── _all-skins.min.css │ │ ├── skin-black-light.css │ │ ├── skin-black-light.min.css │ │ ├── skin-black.css │ │ ├── skin-black.min.css │ │ ├── skin-blue-light.css │ │ ├── skin-blue-light.min.css │ │ ├── skin-blue.css │ │ ├── skin-blue.min.css │ │ ├── skin-green-light.css │ │ ├── skin-green-light.min.css │ │ ├── skin-green.css │ │ ├── skin-green.min.css │ │ ├── skin-purple-light.css │ │ ├── skin-purple-light.min.css │ │ ├── skin-purple.css │ │ ├── skin-purple.min.css │ │ ├── skin-red-light.css │ │ ├── skin-red-light.min.css │ │ ├── skin-red.css │ │ ├── skin-red.min.css │ │ ├── skin-yellow-light.css │ │ ├── skin-yellow-light.min.css │ │ ├── skin-yellow.css │ │ └── skin-yellow.min.css ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── fontawesome-webfont.woff2 │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 └── js │ ├── app.js │ ├── app.min.js │ ├── bootstrap.js │ ├── bootstrap.min.js │ ├── demo.js │ ├── jquery.min.js │ ├── jquery.min.map │ ├── npm.js │ └── pages │ ├── dashboard.js │ └── dashboard2.js └── test ├── e2e ├── custom-assertions │ └── elementCount.js ├── nightwatch.conf.js ├── runner.js └── specs │ └── test.js └── unit ├── .eslintrc ├── index.js ├── karma.conf.js └── specs └── Hello.spec.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015", "stage-2"], 3 | "plugins": ["transform-runtime"], 4 | "comments": false 5 | } 6 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style 4 | extends: 'standard', 5 | // required to lint *.vue files 6 | plugins: [ 7 | 'html' 8 | ], 9 | // add your custom rules here 10 | 'rules': { 11 | // allow paren-less arrow functions 12 | 'arrow-parens': 0, 13 | // allow debugger during development 14 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist/ 4 | npm-debug.log 5 | selenium-debug.log 6 | test/unit/coverage 7 | test/e2e/reports 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 黄海彬 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 不再维护!!!版本过老 莫要fork 目前本人在用的版本由于是公司内部的 不方便开源~ 2 | ## 移步新版 [vue-cms](https://github.com/deboyblog/vue-cms) 3 | -------------------------------------------------------------------------------- /build/build.js: -------------------------------------------------------------------------------- 1 | // https://github.com/shelljs/shelljs 2 | require('shelljs/global') 3 | env.NODE_ENV = 'production' 4 | 5 | var ora = require('ora') 6 | var webpack = require('webpack') 7 | var conf = require('./webpack.prod.conf') 8 | 9 | var spinner = ora('building for production...') 10 | spinner.start() 11 | 12 | rm('-rf', 'dist') 13 | mkdir('dist') 14 | cp('-R', 'static', conf.output.path) 15 | 16 | webpack(conf, function (err, stats) { 17 | spinner.stop() 18 | if (err) throw err 19 | process.stdout.write(stats.toString({ 20 | colors: true, 21 | modules: false, 22 | children: false, 23 | chunks: false, 24 | chunkModules: false 25 | }) + '\n') 26 | }) 27 | -------------------------------------------------------------------------------- /build/css-loaders.js: -------------------------------------------------------------------------------- 1 | var ExtractTextPlugin = require('extract-text-webpack-plugin') 2 | 3 | module.exports = function (options) { 4 | options = options || {} 5 | // generate loader string to be used with extract text plugin 6 | function generateLoaders (loaders) { 7 | var sourceLoader = loaders.map(function (loader) { 8 | var extraParamChar 9 | if (/\?/.test(loader)) { 10 | loader = loader.replace(/\?/, '-loader?') 11 | extraParamChar = '&' 12 | } else { 13 | loader = loader + '-loader' 14 | extraParamChar = '?' 15 | } 16 | return loader + (options.sourceMap ? extraParamChar + 'sourceMap' : '') 17 | }).join('!') 18 | 19 | if (options.extract) { 20 | return ExtractTextPlugin.extract('vue-style-loader', sourceLoader) 21 | } else { 22 | return ['vue-style-loader', sourceLoader].join('!') 23 | } 24 | } 25 | 26 | // http://vuejs.github.io/vue-loader/configurations/extract-css.html 27 | return { 28 | css: generateLoaders(['css']), 29 | less: generateLoaders(['css', 'less']), 30 | sass: generateLoaders(['css', 'sass?indentedSyntax']), 31 | scss: generateLoaders(['css', 'sass']), 32 | stylus: generateLoaders(['css', 'stylus']), 33 | styl: generateLoaders(['css', 'stylus']) 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /build/dev-client.js: -------------------------------------------------------------------------------- 1 | require('eventsource-polyfill') 2 | var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true') 3 | 4 | hotClient.subscribe(function (event) { 5 | if (event.action === 'reload') { 6 | window.location.reload() 7 | } 8 | }) 9 | -------------------------------------------------------------------------------- /build/dev-server.js: -------------------------------------------------------------------------------- 1 | var express = require('express') 2 | var webpack = require('webpack') 3 | var config = require('./webpack.dev.conf') 4 | var proxyMiddleware = require('http-proxy-middleware') 5 | 6 | var app = express() 7 | var compiler = webpack(config) 8 | 9 | // Define HTTP proxies to your custom API backend 10 | // https://github.com/chimurai/http-proxy-middleware 11 | var proxyTable = { 12 | // '/api': { 13 | // target: 'http://jsonplaceholder.typicode.com', 14 | // changeOrigin: true, 15 | // pathRewrite: { 16 | // '^/api': '' 17 | // } 18 | // } 19 | } 20 | 21 | var devMiddleware = require('webpack-dev-middleware')(compiler, { 22 | publicPath: config.output.publicPath, 23 | stats: { 24 | colors: true, 25 | chunks: false 26 | } 27 | }) 28 | 29 | var hotMiddleware = require('webpack-hot-middleware')(compiler) 30 | // force page reload when html-webpack-plugin template changes 31 | compiler.plugin('compilation', function (compilation) { 32 | compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { 33 | hotMiddleware.publish({ action: 'reload' }) 34 | cb() 35 | }) 36 | }) 37 | 38 | // proxy api requests 39 | Object.keys(proxyTable).forEach(function (context) { 40 | var options = proxyTable[context] 41 | if (typeof options === 'string') { 42 | options = { target: options } 43 | } 44 | app.use(proxyMiddleware(context, options)) 45 | }) 46 | 47 | // handle fallback for HTML5 history API 48 | app.use(require('connect-history-api-fallback')()) 49 | 50 | // serve webpack bundle output 51 | app.use(devMiddleware) 52 | 53 | // enable hot-reload and state-preserving 54 | // compilation error display 55 | app.use(hotMiddleware) 56 | 57 | // serve pure static assets 58 | app.use('/static', express.static('./static')) 59 | 60 | module.exports = app.listen(8080, function (err) { 61 | if (err) { 62 | console.log(err) 63 | return 64 | } 65 | console.log('Listening at http://localhost:8080\n') 66 | }) 67 | -------------------------------------------------------------------------------- /build/webpack.base.conf.js: -------------------------------------------------------------------------------- 1 | var path = require('path') 2 | var cssLoaders = require('./css-loaders') 3 | var projectRoot = path.resolve(__dirname, '../') 4 | 5 | module.exports = { 6 | entry: { 7 | app: './src/main.js' 8 | }, 9 | output: { 10 | path: path.resolve(__dirname, '../dist/static'), 11 | publicPath: './static/', 12 | filename: '[name].js' 13 | }, 14 | resolve: { 15 | extensions: ['', '.js', '.vue'], 16 | fallback: [path.join(__dirname, '../node_modules')], 17 | alias: { 18 | 'src': path.resolve(__dirname, '../src') 19 | } 20 | }, 21 | resolveLoader: { 22 | fallback: [path.join(__dirname, '../node_modules')] 23 | }, 24 | module: { 25 | preLoaders: [ 26 | { 27 | test: /\.vue$/, 28 | loader: 'eslint', 29 | include: projectRoot, 30 | exclude: /node_modules/ 31 | }, 32 | { 33 | test: /\.js$/, 34 | loader: 'eslint', 35 | include: projectRoot, 36 | exclude: /node_modules/ 37 | } 38 | ], 39 | loaders: [ 40 | { 41 | test: /\.vue$/, 42 | loader: 'vue' 43 | }, 44 | { 45 | test: /\.js$/, 46 | loader: 'babel', 47 | include: projectRoot, 48 | exclude: /node_modules/ 49 | }, 50 | { 51 | test: /\.json$/, 52 | loader: 'json' 53 | }, 54 | { 55 | test: /\.html$/, 56 | loader: 'vue-html' 57 | }, 58 | { 59 | test: /\.(png|jpg|gif|svg|woff2?|eot|ttf)(\?.*)?$/, 60 | loader: 'url', 61 | query: { 62 | limit: 10000, 63 | name: '[name].[ext]?[hash:7]' 64 | } 65 | } 66 | ] 67 | }, 68 | vue: { 69 | loaders: cssLoaders() 70 | }, 71 | eslint: { 72 | formatter: require('eslint-friendly-formatter') 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /build/webpack.dev.conf.js: -------------------------------------------------------------------------------- 1 | var webpack = require('webpack') 2 | var merge = require('webpack-merge') 3 | var baseConfig = require('./webpack.base.conf') 4 | var HtmlWebpackPlugin = require('html-webpack-plugin') 5 | 6 | // add hot-reload related code to entry chunks 7 | Object.keys(baseConfig.entry).forEach(function (name) { 8 | baseConfig.entry[name] = ['./build/dev-client'].concat(baseConfig.entry[name]) 9 | }) 10 | 11 | module.exports = merge(baseConfig, { 12 | // eval-source-map is faster for development 13 | devtool: '#eval-source-map', 14 | output: { 15 | // necessary for the html plugin to work properly 16 | // when serving the html from in-memory 17 | publicPath: '/' 18 | }, 19 | plugins: [ 20 | // https://github.com/glenjamin/webpack-hot-middleware#installation--usage 21 | new webpack.optimize.OccurenceOrderPlugin(), 22 | new webpack.HotModuleReplacementPlugin(), 23 | new webpack.NoErrorsPlugin(), 24 | // https://github.com/ampedandwired/html-webpack-plugin 25 | new HtmlWebpackPlugin({ 26 | filename: 'index.html', 27 | template: 'index.html', 28 | inject: true 29 | }) 30 | ] 31 | }) 32 | -------------------------------------------------------------------------------- /build/webpack.prod.conf.js: -------------------------------------------------------------------------------- 1 | var webpack = require('webpack') 2 | var merge = require('webpack-merge') 3 | var baseConfig = require('./webpack.base.conf') 4 | var cssLoaders = require('./css-loaders') 5 | var ExtractTextPlugin = require('extract-text-webpack-plugin') 6 | var HtmlWebpackPlugin = require('html-webpack-plugin') 7 | 8 | // whether to generate source map for production files. 9 | // disabling this can speed up the build. 10 | var SOURCE_MAP = true 11 | 12 | module.exports = merge(baseConfig, { 13 | devtool: SOURCE_MAP ? '#source-map' : false, 14 | output: { 15 | // naming output files with hashes for better caching. 16 | // dist/index.html will be auto-generated with correct URLs. 17 | filename: '[name].[chunkhash].js', 18 | chunkFilename: '[id].[chunkhash].js' 19 | }, 20 | vue: { 21 | loaders: cssLoaders({ 22 | sourceMap: SOURCE_MAP, 23 | extract: true 24 | }) 25 | }, 26 | plugins: [ 27 | // http://vuejs.github.io/vue-loader/workflow/production.html 28 | new webpack.DefinePlugin({ 29 | 'process.env': { 30 | NODE_ENV: '"production"' 31 | } 32 | }), 33 | new webpack.optimize.UglifyJsPlugin({ 34 | compress: { 35 | warnings: false 36 | } 37 | }), 38 | new webpack.optimize.OccurenceOrderPlugin(), 39 | // extract css into its own file 40 | new ExtractTextPlugin('[name].[contenthash].css'), 41 | // generate dist index.html with correct asset hash for caching. 42 | // you can customize output by editing /index.html 43 | // see https://github.com/ampedandwired/html-webpack-plugin 44 | new HtmlWebpackPlugin({ 45 | filename: '../index.html', 46 | template: 'index.html', 47 | inject: true, 48 | minify: { 49 | removeComments: true, 50 | collapseWhitespace: true, 51 | removeAttributeQuotes: true 52 | // more options: 53 | // https://github.com/kangax/html-minifier#options-quick-reference 54 | } 55 | }) 56 | ] 57 | }) 58 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | DeAdmin 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "DeAdmin", 3 | "version": "0.1.0", 4 | "description": "A Vue.js project", 5 | "author": "Deboy <55631825@qq.com>", 6 | "scripts": { 7 | "dev": "node build/dev-server.js", 8 | "build": "node build/build.js", 9 | "unit": "karma start test/unit/karma.conf.js --single-run", 10 | "e2e": "node test/e2e/runner.js", 11 | "test": "npm run unit && npm run e2e" 12 | }, 13 | "dependencies": { 14 | "babel-runtime": "^5.8.0", 15 | "jade": "^1.11.0", 16 | "jade-loader": "^0.8.0", 17 | "vue": "^1.0.18", 18 | "vue-resource": "^0.7.0", 19 | "vue-router": "^0.7.11" 20 | }, 21 | "devDependencies": { 22 | "babel-core": "^6.0.0", 23 | "babel-loader": "^6.0.0", 24 | "babel-plugin-transform-runtime": "^6.0.0", 25 | "babel-preset-es2015": "^6.0.0", 26 | "babel-preset-stage-2": "^6.0.0", 27 | "chromedriver": "^2.21.2", 28 | "connect-history-api-fallback": "^1.1.0", 29 | "cross-spawn": "^2.1.5", 30 | "css-loader": "^0.23.0", 31 | "eslint": "^2.0.0", 32 | "eslint-config-standard": "^5.1.0", 33 | "eslint-friendly-formatter": "^1.2.2", 34 | "eslint-loader": "^1.3.0", 35 | "eslint-plugin-html": "^1.3.0", 36 | "eslint-plugin-promise": "^1.0.8", 37 | "eslint-plugin-standard": "^1.3.2", 38 | "eventsource-polyfill": "^0.9.6", 39 | "express": "^4.13.3", 40 | "extract-text-webpack-plugin": "^1.0.1", 41 | "file-loader": "^0.8.4", 42 | "function-bind": "^1.0.2", 43 | "html-webpack-plugin": "^2.8.1", 44 | "http-proxy-middleware": "^0.12.0", 45 | "inject-loader": "^2.0.1", 46 | "isparta-loader": "^2.0.0", 47 | "jasmine-core": "^2.4.1", 48 | "json-loader": "^0.5.4", 49 | "karma": "^0.13.15", 50 | "karma-coverage": "^0.5.5", 51 | "karma-jasmine": "^0.3.6", 52 | "karma-phantomjs-launcher": "^1.0.0", 53 | "karma-sourcemap-loader": "^0.3.7", 54 | "karma-spec-reporter": "0.0.24", 55 | "karma-webpack": "^1.7.0", 56 | "less": "^2.6.1", 57 | "less-loader": "^2.2.3", 58 | "nightwatch": "^0.8.18", 59 | "ora": "^0.2.0", 60 | "phantomjs-prebuilt": "^2.1.3", 61 | "selenium-server": "2.53.0", 62 | "shelljs": "^0.6.0", 63 | "url-loader": "^0.5.7", 64 | "vue-hot-reload-api": "^1.2.0", 65 | "vue-html-loader": "^1.0.0", 66 | "vue-loader": "^8.2.1", 67 | "vue-style-loader": "^1.0.0", 68 | "webpack": "^1.12.2", 69 | "webpack-dev-middleware": "^1.4.0", 70 | "webpack-hot-middleware": "^2.6.0", 71 | "webpack-merge": "^0.8.3" 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /src/assets/boxed-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/src/assets/boxed-bg.jpg -------------------------------------------------------------------------------- /src/assets/boxed-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/src/assets/boxed-bg.png -------------------------------------------------------------------------------- /src/assets/default-50x50.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/src/assets/default-50x50.gif -------------------------------------------------------------------------------- /src/assets/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/src/assets/icons.png -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/src/assets/logo.png -------------------------------------------------------------------------------- /src/assets/photo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/src/assets/photo1.png -------------------------------------------------------------------------------- /src/assets/photo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/src/assets/photo2.png -------------------------------------------------------------------------------- /src/assets/photo3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/src/assets/photo3.jpg -------------------------------------------------------------------------------- /src/assets/photo4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/src/assets/photo4.jpg -------------------------------------------------------------------------------- /src/assets/user2-160x160.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/src/assets/user2-160x160.jpg -------------------------------------------------------------------------------- /src/components/Account.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/Article.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/Dashboard.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/User.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/account/findpwd.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/account/login.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/account/register.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/article/add.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/article/category.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/article/manage.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/article/trash.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/layout/aside.vue: -------------------------------------------------------------------------------- 1 | 43 | 44 | -------------------------------------------------------------------------------- /src/components/layout/content-header.vue: -------------------------------------------------------------------------------- 1 | 23 | -------------------------------------------------------------------------------- /src/components/layout/footer.vue: -------------------------------------------------------------------------------- 1 | 10 | 19 | 21 | -------------------------------------------------------------------------------- /src/components/layout/header.vue: -------------------------------------------------------------------------------- 1 | 107 | 108 | -------------------------------------------------------------------------------- /src/components/user/add.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/user/blacklist.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/user/manage.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Router from 'vue-router' 3 | import App from './App.vue' 4 | import VueResource from 'vue-resource' 5 | 6 | Vue.use(Router) 7 | Vue.use(VueResource) 8 | 9 | var router = new Router({ linkActiveClass: 'active', history: false }) 10 | 11 | router.map({ 12 | '/dashboard': { 13 | component: require('./components/Dashboard.vue') 14 | }, 15 | '/user': { 16 | component: require('./components/User.vue'), 17 | subRoutes: { 18 | 'add': { 19 | component: require('./components/user/add.vue') 20 | }, 21 | 'manage': { 22 | component: require('./components/user/manage.vue') 23 | }, 24 | 'blacklist': { 25 | component: require('./components/user/blacklist.vue') 26 | } 27 | } 28 | }, 29 | '/article': { 30 | component: require('./components/Article.vue'), 31 | subRoutes: { 32 | 'add': { 33 | component: require('./components/article/add.vue') 34 | }, 35 | 'manage': { 36 | component: require('./components/article/manage.vue') 37 | }, 38 | 'category': { 39 | component: require('./components/article/category.vue') 40 | }, 41 | 'trash': { 42 | component: require('./components/article/trash.vue') 43 | } 44 | } 45 | }, 46 | '/account': { 47 | component: require('./components/Account.vue'), 48 | subRoutes: { 49 | 'login': { 50 | component: require('./components/account/login.vue') 51 | }, 52 | 'register': { 53 | component: require('./components/account/register.vue') 54 | }, 55 | 'findpwd': { 56 | component: require('./components/account/findpwd.vue') 57 | } 58 | } 59 | } 60 | }) 61 | 62 | router.beforeEach(function () { 63 | window.scrollTo(0, 0) 64 | }) 65 | 66 | router.redirect({ 67 | '*': '/dashboard', 68 | '/user/': '/user/manage', 69 | '/article/': '/article/manage' 70 | }) 71 | 72 | router.start(App, 'app') 73 | -------------------------------------------------------------------------------- /static/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/static/.gitkeep -------------------------------------------------------------------------------- /static/config/aside.config.js: -------------------------------------------------------------------------------- 1 | module.exports = [ 2 | {name: '系统首页', path: '/dashboard', tree: false}, 3 | {name: '会员系统', path: '/user', tree: true, child: [ 4 | {name: '新增会员', path: '/user/add'}, 5 | {name: '会员管理', path: '/user/manage'}, 6 | {name: '黑名单', path: '/user/blacklist'} 7 | ] 8 | }, 9 | {name: '文章系统', path: '/article', tree: true, child: [ 10 | {name: '文章管理', path: '/article/manage'}, 11 | {name: '新增文章', path: '/article/add'}, 12 | {name: '分类管理', path: '/article/category'}, 13 | {name: '回收站', path: '/article/trash'} 14 | ] 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /static/config/content.header.config.js: -------------------------------------------------------------------------------- 1 | // 此文件是配合content-header组件来使用的 根据路由不同匹配不同的值 配置的时候注意数据的个数 严格按照ES6的格式 还有根目录的.editconfig配置项来配置 2 | module.exports = { 3 | '/dashboard': { 4 | title: '系统首页', 5 | subTitle: 'DA后台管理系统', 6 | list: [] 7 | }, 8 | '/user/add': { 9 | title: '新增会员', 10 | subTitle: '会员管理', 11 | list: [{name: '会员管理', icon: 'fa-user', path: '/user/manage'}, {name: '新增会员'}] 12 | }, 13 | '/user/manage': { 14 | title: '会员管理', 15 | subTitle: '会员管理', 16 | list: [{name: '会员管理', icon: 'fa-user', path: '/user/manage'}, {name: '会员管理'}] 17 | }, 18 | '/user/blacklist': { 19 | title: '黑名单管理', 20 | subTitle: '会员管理', 21 | list: [{name: '会员管理', icon: 'fa-user', path: '/user/manage'}, {name: '黑名单管理'}] 22 | }, 23 | '/article/add': { 24 | title: '新增文章', 25 | subTitle: '文章管理', 26 | list: [{name: '文章管理', icon: 'fa-bookmark', path: '/article/manage'}, {name: '新增文章'}] 27 | }, 28 | '/article/category': { 29 | title: '分类管理', 30 | subTitle: '文章管理', 31 | list: [{name: '文章管理', icon: 'fa-bookmark', path: '/article/manage'}, {name: '分类管理'}] 32 | }, 33 | '/article/manage': { 34 | title: '文章管理', 35 | subTitle: '文章管理', 36 | list: [{name: '文章管理', icon: 'fa-bookmark', path: '/article/manage'}, {name: '文章管理'}] 37 | }, 38 | '/article/trash': { 39 | title: '回收站', 40 | subTitle: '文章管理', 41 | list: [{name: '文章管理', icon: 'fa-bookmark', path: '/article/manage'}, {name: '回收站'}] 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /static/config/vue-resource.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/static/config/vue-resource.config.js -------------------------------------------------------------------------------- /static/css/font-awesome.css.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "mappings": ";;;;;;;AAGA,UAUC;EATC,WAAW,EAAE,aAAa;EAC1B,GAAG,EAAE,+CAAgE;EACrE,GAAG,EAAE,ySAAmG;EAKxG,WAAW,EAAE,MAAM;EACnB,UAAU,EAAE,MAAM;ACTpB,GAAmB;EACjB,OAAO,EAAE,YAAY;EACrB,IAAI,EAAE,uCAAwD;EAC9D,SAAS,EAAE,OAAO;EAClB,cAAc,EAAE,IAAI;EACpB,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;EAClC,SAAS,EAAE,eAAe;;;ACN5B,MAAsB;EACpB,SAAS,EAAE,SAAS;EACpB,WAAW,EAAE,MAAS;EACtB,cAAc,EAAE,IAAI;;AAEtB,MAAsB;EAAE,SAAS,EAAE,GAAG;;AACtC,MAAsB;EAAE,SAAS,EAAE,GAAG;;AACtC,MAAsB;EAAE,SAAS,EAAE,GAAG;;AACtC,MAAsB;EAAE,SAAS,EAAE,GAAG;;ACVtC,MAAsB;EACpB,KAAK,EAAE,SAAW;EAClB,UAAU,EAAE,MAAM;;ACDpB,MAAsB;EACpB,YAAY,EAAE,CAAC;EACf,WAAW,ECKU,SAAS;EDJ9B,eAAe,EAAE,IAAI;EACrB,WAAK;IAAE,QAAQ,EAAE,QAAQ;;AAE3B,MAAsB;EACpB,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,UAAa;EACnB,KAAK,ECFgB,SAAS;EDG9B,GAAG,EAAE,SAAU;EACf,UAAU,EAAE,MAAM;EAClB,YAAuB;IACrB,IAAI,EAAE,UAA0B;;AEbpC,UAA0B;EACxB,OAAO,EAAE,gBAAgB;EACzB,MAAM,EAAE,iBAA4B;EACpC,aAAa,EAAE,IAAI;;AAGrB,WAAY;EAAE,KAAK,EAAE,KAAK;;AAC1B,UAAW;EAAE,KAAK,EAAE,IAAI;;AAGtB,aAAY;EAAE,YAAY,EAAE,IAAI;AAChC,cAAa;EAAE,WAAW,EAAE,IAAI;;ACXlC,QAAwB;EACtB,iBAAiB,EAAE,0BAA0B;EACrC,SAAS,EAAE,0BAA0B;;AAG/C,SAAyB;EACvB,iBAAiB,EAAE,4BAA4B;EACvC,SAAS,EAAE,4BAA4B;;AAGjD,0BASC;EARC,EAAG;IACD,iBAAiB,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;EAEjC,IAAK;IACH,iBAAiB,EAAE,cAAc;IACzB,SAAS,EAAE,cAAc;AAIrC,kBASC;EARC,EAAG;IACD,iBAAiB,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;EAEjC,IAAK;IACH,iBAAiB,EAAE,cAAc;IACzB,SAAS,EAAE,cAAc;AC5BrC,aAA8B;ECY5B,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,aAAgB;EAC/B,aAAa,EAAE,aAAgB;EAC3B,SAAS,EAAE,aAAgB;;ADdrC,cAA8B;ECW5B,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,cAAgB;EAC/B,aAAa,EAAE,cAAgB;EAC3B,SAAS,EAAE,cAAgB;;ADbrC,cAA8B;ECU5B,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,cAAgB;EAC/B,aAAa,EAAE,cAAgB;EAC3B,SAAS,EAAE,cAAgB;;ADXrC,mBAAmC;ECejC,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,YAAoB;EACnC,aAAa,EAAE,YAAoB;EAC/B,SAAS,EAAE,YAAoB;;ADjBzC,iBAAmC;ECcjC,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,YAAoB;EACnC,aAAa,EAAE,YAAoB;EAC/B,SAAS,EAAE,YAAoB;;ADZzC;;;;uBAIuC;EACrC,MAAM,EAAE,IAAI;;AEfd,SAAyB;EACvB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,GAAG;EACV,MAAM,EAAE,GAAG;EACX,WAAW,EAAE,GAAG;EAChB,cAAc,EAAE,MAAM;;AAExB,0BAAyD;EACvD,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,MAAM;;AAEpB,YAA4B;EAAE,WAAW,EAAE,OAAO;;AAClD,YAA4B;EAAE,SAAS,EAAE,GAAG;;AAC5C,WAA2B;EAAE,KAAK,ELVZ,IAAI;;;;AMN1B,gBAAgC;EAAE,OAAO,ENoQ1B,GAAO;;AMnQtB,gBAAgC;EAAE,OAAO,EN0W1B,GAAO;;AMzWtB,iBAAiC;EAAE,OAAO,ENmb1B,GAAO;;AMlbvB,qBAAqC;EAAE,OAAO,ENmL1B,GAAO;;AMlL3B,gBAAgC;EAAE,OAAO,ENkR1B,GAAO;;AMjRtB,eAA+B;EAAE,OAAO,ENke1B,GAAO;;AMjerB,iBAAiC;EAAE,OAAO,ENse1B,GAAO;;AMrevB,eAA+B;EAAE,OAAO,EN+iB1B,GAAO;;AM9iBrB,eAA+B;EAAE,OAAO,ENyN1B,GAAO;;AMxNrB,mBAAmC;EAAE,OAAO,ENggB1B,GAAO;;AM/fzB,aAA6B;EAAE,OAAO,EN8f1B,GAAO;;AM7fnB,kBAAkC;EAAE,OAAO,EN+f1B,GAAO;;AM9fxB,gBAAgC;EAAE,OAAO,ENoG1B,GAAO;;AMnGtB;;gBAEgC;EAAE,OAAO,ENkgB1B,GAAO;;AMjgBtB,sBAAsC;EAAE,OAAO,ENua1B,GAAO;;AMta5B,uBAAuC;EAAE,OAAO,ENqa1B,GAAO;;AMpa7B,oBAAoC;EAAE,OAAO,EN+X1B,GAAO;;AM9X1B,iBAAiC;EAAE,OAAO,ENsb1B,GAAO;;AMrbvB;cAC8B;EAAE,OAAO,ENwH1B,GAAO;;AMvHpB,kBAAkC;EAAE,OAAO,ENygB1B,GAAO;;AMxgBxB,eAA+B;EAAE,OAAO,ENmQ1B,GAAO;;AMlQrB,iBAAiC;EAAE,OAAO,EN6L1B,GAAO;;AM5LvB,kBAAkC;EAAE,OAAO,EN0G1B,GAAO;;AMzGxB,eAA+B;EAAE,OAAO,EN+Y1B,GAAO;;AM9YrB,mBAAmC;EAAE,OAAO,ENiJ1B,GAAO;;AMhJzB,8BAA8C;EAAE,OAAO,ENI1B,GAAO;;AMHpC,4BAA4C;EAAE,OAAO,ENM1B,GAAO;;AMLlC,gBAAgC;EAAE,OAAO,ENkQ1B,GAAO;;AMjQtB,wBAAwC;EAAE,OAAO,EN4W1B,GAAO;;AM3W9B;iBACiC;EAAE,OAAO,ENmY1B,GAAO;;AMlYvB,kBAAkC;EAAE,OAAO,EN8X1B,GAAO;;AM7XxB,mBAAmC;EAAE,OAAO,ENiS1B,GAAO;;AMhSzB,eAA+B;EAAE,OAAO,ENoS1B,GAAO;;AMnSrB,eAA+B;EAAE,OAAO,ENgM1B,GAAO;;AM/LrB,qBAAqC;EAAE,OAAO,EN+O1B,GAAO;;AM9O3B,qBAAqC;EAAE,OAAO,EN8hB1B,GAAO;;AM7hB3B,sBAAsC;EAAE,OAAO,EN4hB1B,GAAO;;AM3hB5B,oBAAoC;EAAE,OAAO,EN6hB1B,GAAO;;AM5hB1B,iBAAiC;EAAE,OAAO,EN2W1B,GAAO;;AM1WvB,kBAAkC;EAAE,OAAO,ENW1B,GAAO;;AMVxB,cAA8B;EAAE,OAAO,ENod1B,GAAO;;AMndpB,eAA+B;EAAE,OAAO,ENod1B,GAAO;;AMndrB,eAA+B;EAAE,OAAO,EN2B1B,GAAO;;AM1BrB,mBAAmC;EAAE,OAAO,EN2B1B,GAAO;;AM1BzB,gBAAgC;EAAE,OAAO,ENkW1B,GAAO;;AMjWtB,iBAAiC;EAAE,OAAO,ENwC1B,GAAO;;AMvCvB,eAA+B;EAAE,OAAO,EN8L1B,GAAO;;AM7LrB,eAA+B;EAAE,OAAO,ENmB1B,GAAO;;AMlBrB,iBAAiC;EAAE,OAAO,ENoP1B,GAAO;;AMnPvB,sBAAsC;EAAE,OAAO,ENid1B,GAAO;;AMhd5B,qBAAqC;EAAE,OAAO,ENid1B,GAAO;;AMhd3B,qBAAqC;EAAE,OAAO,EN1C1B,GAAO;;AM2C3B,uBAAuC;EAAE,OAAO,EN7C1B,GAAO;;AM8C7B,sBAAsC;EAAE,OAAO,EN3C1B,GAAO;;AM4C5B,wBAAwC;EAAE,OAAO,EN9C1B,GAAO;;AM+C9B,eAA+B;EAAE,OAAO,ENwQ1B,GAAO;;AMvQrB;kBACkC;EAAE,OAAO,ENmT1B,GAAO;;AMlTxB,iBAAiC;EAAE,OAAO,ENmO1B,GAAO;;AMlOvB,uBAAuC;EAAE,OAAO,ENigB1B,GAAO;;AMhgB7B;;oBAEoC;EAAE,OAAO,EN+T1B,GAAO;;AM9T1B,iBAAiC;EAAE,OAAO,ENwT1B,GAAO;;AMvTvB,qBAAqC;EAAE,OAAO,EN+Q1B,GAAO;;AM9Q3B,iBAAiC;EAAE,OAAO,EN5D1B,GAAO;;AM6DvB,eAA+B;EAAE,OAAO,EN8c1B,GAAO;;AM7crB;0BAC0C;EAAE,OAAO,ENqT1B,GAAO;;AMpThC,yBAAyC;EAAE,OAAO,ENuX1B,GAAO;;AMtX/B,yBAAyC;EAAE,OAAO,EN0C1B,GAAO;;AMzC/B,iBAAiC;EAAE,OAAO,ENjC1B,GAAO;;AMkCvB,wBAAwC;EAAE,OAAO,ENma1B,GAAO;;AMla9B,wBAAwC;EAAE,OAAO,EN4H1B,GAAO;;AM3H9B,mBAAmC;EAAE,OAAO,EN7B1B,GAAO;;AM8BzB,eAA+B;EAAE,OAAO,EN0T1B,GAAO;;AMzTrB,gBAAgC;EAAE,OAAO,ENwS1B,GAAO;;AMvStB,eAA+B;EAAE,OAAO,ENia1B,GAAO;;AMharB,kBAAkC;EAAE,OAAO,ENgK1B,GAAO;;AM/JxB,uBAAuC;EAAE,OAAO,ENuH1B,GAAO;;AMtH7B,uBAAuC;EAAE,OAAO,EN4Z1B,GAAO;;AM3Z7B,gBAAgC;EAAE,OAAO,EN4F1B,GAAO;;AM3FtB,uBAAuC;EAAE,OAAO,ENoC1B,GAAO;;AMnC7B,wBAAwC;EAAE,OAAO,ENoC1B,GAAO;;AMnC9B,sBAAsC;EAAE,OAAO,ENsT1B,GAAO;;AMrT5B,uBAAuC;EAAE,OAAO,ENyQ1B,GAAO;;AMxQ7B,uBAAuC;EAAE,OAAO,ENwb1B,GAAO;;AMvb7B,uBAAuC;EAAE,OAAO,ENsB1B,GAAO;;AMrB7B,0BAA0C;EAAE,OAAO,EN2T1B,GAAO;;AM1ThC,sBAAsC;EAAE,OAAO,ENsM1B,GAAO;;AMrM5B,qBAAqC;EAAE,OAAO,EN6D1B,GAAO;;AM5D3B,yBAAyC;EAAE,OAAO,ENob1B,GAAO;;AMnb/B,yBAAyC;EAAE,OAAO,ENkB1B,GAAO;;AMjB/B,cAA8B;EAAE,OAAO,EN/C1B,GAAO;;AMgDpB,qBAAqC;EAAE,OAAO,EN3D1B,GAAO;;AM4D3B,sBAAsC;EAAE,OAAO,EN3D1B,GAAO;;AM4D5B,mBAAmC;EAAE,OAAO,EN3D1B,GAAO;;AM4DzB,qBAAqC;EAAE,OAAO,EN/D1B,GAAO;;AMgE3B;gBACgC;EAAE,OAAO,ENqV1B,GAAO;;AMpVtB,iBAAiC;EAAE,OAAO,ENuF1B,GAAO;;AMtFvB,mBAAmC;EAAE,OAAO,EN4C1B,GAAO;;AM3CzB,eAA+B;EAAE,OAAO,ENmS1B,GAAO;;AMlSrB,gBAAgC;EAAE,OAAO,ENsP1B,GAAO;;AMrPtB,mBAAmC;EAAE,OAAO,EN9D1B,GAAO;;AM+DzB,6BAA6C;EAAE,OAAO,ENgF1B,GAAO;;AM/EnC,eAA+B;EAAE,OAAO,EN+I1B,GAAO;;AM9IrB,eAA+B;EAAE,OAAO,ENoM1B,GAAO;;AMnMrB,eAA+B;EAAE,OAAO,ENmH1B,GAAO;;AMlHrB,cAA8B;EAAE,OAAO,ENiF1B,GAAO;;AMhFpB,oBAAoC;EAAE,OAAO,ENiF1B,GAAO;;AMhF1B;+BAC+C;EAAE,OAAO,EN0E1B,GAAO;;AMzErC,gBAAgC;EAAE,OAAO,ENmR1B,GAAO;;AMlRtB,mBAAmC;EAAE,OAAO,EN/B1B,GAAO;;AMgCzB,iBAAiC;EAAE,OAAO,ENoS1B,GAAO;;AMnSvB,kBAAkC;EAAE,OAAO,ENwB1B,GAAO;;AMvBxB,iBAAiC;EAAE,OAAO,ENqN1B,GAAO;;AMpNvB,qBAAqC;EAAE,OAAO,ENE1B,GAAO;;AMD3B,uBAAuC;EAAE,OAAO,ENF1B,GAAO;;AMG7B,kBAAkC;EAAE,OAAO,EN2S1B,GAAO;;AM1SxB,wBAAwC;EAAE,OAAO,ENyU1B,GAAO;;AMxU9B,iBAAiC;EAAE,OAAO,EN8G1B,GAAO;;AM7GvB,sBAAsC;EAAE,OAAO,EN+G1B,GAAO;;AM9G5B,mBAAmC;EAAE,OAAO,ENnF1B,GAAO;;AMoFzB,mBAAmC;EAAE,OAAO,ENrF1B,GAAO;;AMsFzB;oBACoC;EAAE,OAAO,EN/E1B,GAAO;;AMgF1B,yBAAyC;EAAE,OAAO,ENua1B,GAAO;;AMta/B,0BAA0C;EAAE,OAAO,ENmE1B,GAAO;;AMlEhC,uBAAuC;EAAE,OAAO,EN5C1B,GAAO;;AM6C7B,cAA8B;EAAE,OAAO,ENqK1B,GAAO;;AMpKpB;eAC+B;EAAE,OAAO,ENK1B,GAAO;;AMJrB,mBAAmC;EAAE,OAAO,ENQ1B,GAAO;;AMPzB,sBAAsC;EAAE,OAAO,ENmY1B,GAAO;;AMlY5B,wBAAwC;EAAE,OAAO,ENiY1B,GAAO;;AMhY9B,oBAAoC;EAAE,OAAO,EN2V1B,GAAO;;AM1V1B,kBAAkC;EAAE,OAAO,ENyI1B,GAAO;;AMxIxB,mBAAmC;EAAE,OAAO,ENyT1B,GAAO;;AMxTzB,0BAA0C;EAAE,OAAO,ENiL1B,GAAO;;AMhLhC,qBAAqC;EAAE,OAAO,EN0X1B,GAAO;;AMzX3B,wBAAwC;EAAE,OAAO,EN8C1B,GAAO;;AM7C9B,kBAAkC;EAAE,OAAO,ENoT1B,GAAO;;AMnTxB,iBAAiC;EAAE,OAAO,EN8Y1B,GAAO;;AM7YvB,wBAAwC;EAAE,OAAO,EN6G1B,GAAO;;AM5G9B,iBAAiC;EAAE,OAAO,EN8Z1B,GAAO;;AM7ZvB,kBAAkC;EAAE,OAAO,EN+J1B,GAAO;;AM9JxB,gBAAgC;EAAE,OAAO,ENsO1B,GAAO;;AMrOtB,mBAAmC;EAAE,OAAO,EN2U1B,GAAO;;AM1UzB,qBAAqC;EAAE,OAAO,EN/E1B,GAAO;;AMgF3B,uBAAuC;EAAE,OAAO,ENoO1B,GAAO;;AMnO7B,kBAAkC;EAAE,OAAO,EN8Y1B,GAAO;;AM7YxB;mBACmC;EAAE,OAAO,ENuC1B,GAAO;;AMtCzB,iBAAiC;EAAE,OAAO,ENiG1B,GAAO;;AMhGvB,iBAAiC;EAAE,OAAO,ENiZ1B,GAAO;;AMhZvB,sBAAsC;EAAE,OAAO,ENR1B,GAAO;;AMS5B,cAA8B;EAAE,OAAO,EN4Q1B,GAAO;;AM3QpB,gBAAgC;EAAE,OAAO,ENgH1B,GAAO;;AM/GtB,mBAAmC;EAAE,OAAO,ENnF1B,GAAO;;AMoFzB,eAA+B;EAAE,OAAO,ENzG1B,GAAO;;AM0GrB,sBAAsC;EAAE,OAAO,ENzD1B,GAAO;;AM0D5B,uBAAuC;EAAE,OAAO,EN0G1B,GAAO;;AMzG7B,sBAAsC;EAAE,OAAO,ENwG1B,GAAO;;AMvG5B,oBAAoC;EAAE,OAAO,ENyG1B,GAAO;;AMxG1B,sBAAsC;EAAE,OAAO,ENqG1B,GAAO;;AMpG5B,4BAA4C;EAAE,OAAO,EN5I1B,GAAO;;AM6IlC,6BAA6C;EAAE,OAAO,ENxI1B,GAAO;;AMyInC,0BAA0C;EAAE,OAAO,ENxI1B,GAAO;;AMyIhC,4BAA4C;EAAE,OAAO,ENhJ1B,GAAO;;AMiJlC,gBAAgC;EAAE,OAAO,ENsF1B,GAAO;;AMrFtB,iBAAiC;EAAE,OAAO,ENia1B,GAAO;;AMhavB,gBAAgC;EAAE,OAAO,ENiV1B,GAAO;;AMhVtB,iBAAiC;EAAE,OAAO,ENgD1B,GAAO;;AM/CvB,oBAAoC;EAAE,OAAO,ENvG1B,GAAO;;AMwG1B,qBAAqC;EAAE,OAAO,ENzI1B,GAAO;;AM0I3B;gBACgC;EAAE,OAAO,ENqY1B,GAAO;;AMpYtB;eAC+B;EAAE,OAAO,ENuI1B,GAAO;;AMtIrB,gBAAgC;EAAE,OAAO,ENpD1B,GAAO;;AMqDtB,gBAAgC;EAAE,OAAO,EN+C1B,GAAO;;AM9CtB;mBACmC;EAAE,OAAO,ENwP1B,GAAO;;AMvPzB;kBACkC;EAAE,OAAO,ENkC1B,GAAO;;AMjCxB,oBAAoC;EAAE,OAAO,ENsL1B,GAAO;;AMrL1B;mBACmC;EAAE,OAAO,EN0C1B,GAAO;;AMzCzB,iBAAiC;EAAE,OAAO,ENiS1B,GAAO;;AMhSvB;;eAE+B;EAAE,OAAO,EN9I1B,GAAO;;AM+IrB,kBAAkC;EAAE,OAAO,ENgI1B,GAAO;;AM/HxB,kBAAkC;EAAE,OAAO,EN8H1B,GAAO;;AM7HxB,wBAAwC;EAAE,OAAO,EN4S1B,GAAO;;AM3S9B,oBAAoC;EAAE,OAAO,ENoW1B,GAAO;;AMnW1B,gBAAgC;EAAE,OAAO,ENmT1B,GAAO;;AMlTtB,gBAAgC;EAAE,OAAO,ENkI1B,GAAO;;AMjItB,gBAAgC;EAAE,OAAO,ENuV1B,GAAO;;AMtVtB,oBAAoC;EAAE,OAAO,ENwL1B,GAAO;;AMvL1B,2BAA2C;EAAE,OAAO,ENyL1B,GAAO;;AMxLjC,6BAA6C;EAAE,OAAO,ENyD1B,GAAO;;AMxDnC,sBAAsC;EAAE,OAAO,ENuD1B,GAAO;;AMtD5B,gBAAgC;EAAE,OAAO,ENsJ1B,GAAO;;AMrJtB,qBAAqC;EAAE,OAAO,ENtH1B,GAAO;;AMuH3B,mBAAmC;EAAE,OAAO,ENhH1B,GAAO;;AMiHzB,qBAAqC;EAAE,OAAO,ENvH1B,GAAO;;AMwH3B,sBAAsC;EAAE,OAAO,ENvH1B,GAAO;;AMwH5B,kBAAkC;EAAE,OAAO,ENvE1B,GAAO;;AMwExB;eAC+B;EAAE,OAAO,EN2P1B,GAAO;;AM1PrB;oBACoC;EAAE,OAAO,EN+P1B,GAAO;;AM9P1B;mBACmC;EAAE,OAAO,EN4P1B,GAAO;;AM3PzB,mBAAmC;EAAE,OAAO,ENxC1B,GAAO;;AMyCzB,mBAAmC;EAAE,OAAO,ENkG1B,GAAO;;AMjGzB;eAC+B;EAAE,OAAO,EN8U1B,GAAO;;AM7UrB;gBACgC;EAAE,OAAO,ENqB1B,GAAO;;AMpBtB;qBACqC;EAAE,OAAO,EN2R1B,GAAO;;AM1R3B,oBAAoC;EAAE,OAAO,ENpF1B,GAAO;;AMqF1B,qBAAqC;EAAE,OAAO,ENnF1B,GAAO;;AMoF3B;eAC+B;EAAE,OAAO,ENjK1B,GAAO;;AMkKrB,kBAAkC;EAAE,OAAO,ENkO1B,GAAO;;AMjOxB,mBAAmC;EAAE,OAAO,ENkU1B,GAAO;;AMjUzB;oBACoC;EAAE,OAAO,EN1G1B,GAAO;;AM2G1B,sBAAsC;EAAE,OAAO,ENgF1B,GAAO;;AM/E5B,mBAAmC;EAAE,OAAO,ENnD1B,GAAO;;AMoDzB,yBAAyC;EAAE,OAAO,ENzG1B,GAAO;;AM0G/B,uBAAuC;EAAE,OAAO,ENzG1B,GAAO;;AM0G7B,kBAAkC;EAAE,OAAO,ENsU1B,GAAO;;AMrUxB,sBAAsC;EAAE,OAAO,EN+P1B,GAAO;;AM9P5B,mBAAmC;EAAE,OAAO,ENsQ1B,GAAO;;AMrQzB,iBAAiC;EAAE,OAAO,ENvL1B,GAAO;;AMwLvB,iBAAiC;EAAE,OAAO,ENzG1B,GAAO;;AM0GvB,kBAAkC;EAAE,OAAO,ENtF1B,GAAO;;AMuFxB,sBAAsC;EAAE,OAAO,EN3B1B,GAAO;;AM4B5B,qBAAqC;EAAE,OAAO,ENxK1B,GAAO;;AMyK3B,qBAAqC;EAAE,OAAO,ENkC1B,GAAO;;AMjC3B,oBAAoC;EAAE,OAAO,EN3O1B,GAAO;;AM4O1B,iBAAiC;EAAE,OAAO,ENiG1B,GAAO;;AMhGvB,sBAAsC;EAAE,OAAO,EN/C1B,GAAO;;AMgD5B,eAA+B;EAAE,OAAO,ENpM1B,GAAO;;AMqMrB,mBAAmC;EAAE,OAAO,ENe1B,GAAO;;AMdzB,sBAAsC;EAAE,OAAO,ENgJ1B,GAAO;;AM/I5B,4BAA4C;EAAE,OAAO,EN5O1B,GAAO;;AM6OlC,6BAA6C;EAAE,OAAO,EN5O1B,GAAO;;AM6OnC,0BAA0C;EAAE,OAAO,EN5O1B,GAAO;;AM6OhC,4BAA4C;EAAE,OAAO,ENhP1B,GAAO;;AMiPlC,qBAAqC;EAAE,OAAO,EN5O1B,GAAO;;AM6O3B,sBAAsC;EAAE,OAAO,EN5O1B,GAAO;;AM6O5B,mBAAmC;EAAE,OAAO,EN5O1B,GAAO;;AM6OzB,qBAAqC;EAAE,OAAO,ENhP1B,GAAO;;AMiP3B,kBAAkC;EAAE,OAAO,ENlG1B,GAAO;;AMmGxB,iBAAiC;EAAE,OAAO,ENuC1B,GAAO;;AMtCvB,iBAAiC;EAAE,OAAO,ENoP1B,GAAO;;AMnPvB;iBACiC;EAAE,OAAO,ENyF1B,GAAO;;AMxFvB,mBAAmC;EAAE,OAAO,EN9I1B,GAAO;;AM+IzB,qBAAqC;EAAE,OAAO,EN0I1B,GAAO;;AMzI3B,sBAAsC;EAAE,OAAO,EN0I1B,GAAO;;AMzI5B,kBAAkC;EAAE,OAAO,ENgN1B,GAAO;;AM/MxB,iBAAiC;EAAE,OAAO,ENnJ1B,GAAO;;AMoJvB;gBACgC;EAAE,OAAO,ENkJ1B,GAAO;;AMjJtB,qBAAqC;EAAE,OAAO,ENnB1B,GAAO;;AMoB3B,mBAAmC;EAAE,OAAO,ENxC1B,GAAO;;AMyCzB,wBAAwC;EAAE,OAAO,ENvC1B,GAAO;;AMwC9B,kBAAkC;EAAE,OAAO,EN0L1B,GAAO;;AMzLxB,kBAAkC;EAAE,OAAO,ENpC1B,GAAO;;AMqCxB,gBAAgC;EAAE,OAAO,ENoE1B,GAAO;;AMnEtB,kBAAkC;EAAE,OAAO,ENpC1B,GAAO;;AMqCxB,qBAAqC;EAAE,OAAO,ENkB1B,GAAO;;AMjB3B,iBAAiC;EAAE,OAAO,ENrD1B,GAAO;;AMsDvB,yBAAyC;EAAE,OAAO,ENvD1B,GAAO;;AMwD/B,mBAAmC;EAAE,OAAO,ENuO1B,GAAO;;AMtOzB,eAA+B;EAAE,OAAO,ENtJ1B,GAAO;;AMuJrB;oBACoC;EAAE,OAAO,ENqI1B,GAAO;;AMpI1B;;sBAEsC;EAAE,OAAO,ENuM1B,GAAO;;AMtM5B,yBAAyC;EAAE,OAAO,ENkC1B,GAAO;;AMjC/B,eAA+B;EAAE,OAAO,EN5I1B,GAAO;;AM6IrB,oBAAoC;EAAE,OAAO,EN7J1B,GAAO;;AM8J1B;uBACuC;EAAE,OAAO,EN1L1B,GAAO;;AM2L7B,mBAAmC;EAAE,OAAO,EN4G1B,GAAO;;AM3GzB,eAA+B;EAAE,OAAO,ENT1B,GAAO;;AMUrB,sBAAsC;EAAE,OAAO,ENhH1B,GAAO;;AMiH5B,sBAAsC;EAAE,OAAO,EN8M1B,GAAO;;AM7M5B,oBAAoC;EAAE,OAAO,ENyM1B,GAAO;;AMxM1B,iBAAiC;EAAE,OAAO,ENvH1B,GAAO;;AMwHvB,uBAAuC;EAAE,OAAO,ENmG1B,GAAO;;AMlG7B,qBAAqC;EAAE,OAAO,EN8C1B,GAAO;;AM7C3B,2BAA2C;EAAE,OAAO,EN8C1B,GAAO;;AM7CjC,iBAAiC;EAAE,OAAO,ENgJ1B,GAAO;;AM/IvB,qBAAqC;EAAE,OAAO,EN5N1B,GAAO;;AM6N3B,4BAA4C;EAAE,OAAO,ENjF1B,GAAO;;AMkFlC,iBAAiC;EAAE,OAAO,ENoH1B,GAAO;;AMnHvB,iBAAiC;EAAE,OAAO,ENkC1B,GAAO;;AMjCvB,8BAA8C;EAAE,OAAO,ENlM1B,GAAO;;AMmMpC,+BAA+C;EAAE,OAAO,ENlM1B,GAAO;;AMmMrC,4BAA4C;EAAE,OAAO,ENlM1B,GAAO;;AMmMlC,8BAA8C;EAAE,OAAO,ENtM1B,GAAO;;AMuMpC,gBAAgC;EAAE,OAAO,EN/B1B,GAAO;;AMgCtB,eAA+B;EAAE,OAAO,ENjK1B,GAAO;;AMkKrB,iBAAiC;EAAE,OAAO,EN9S1B,GAAO;;AM+SvB,qBAAqC;EAAE,OAAO,ENmP1B,GAAO;;AMlP3B,mBAAmC;EAAE,OAAO,EN9O1B,GAAO;;AM+OzB,qBAAqC;EAAE,OAAO,EN/I1B,GAAO;;AMgJ3B,qBAAqC;EAAE,OAAO,EN/I1B,GAAO;;AMgJ3B,qBAAqC;EAAE,OAAO,EN4G1B,GAAO;;AM3G3B,sBAAsC;EAAE,OAAO,ENsE1B,GAAO;;AMrE5B,iBAAiC;EAAE,OAAO,EN2M1B,GAAO;;AM1MvB,uBAAuC;EAAE,OAAO,EN6B1B,GAAO;;AM5B7B,yBAAyC;EAAE,OAAO,EN6B1B,GAAO;;AM5B/B,mBAAmC;EAAE,OAAO,ENhB1B,GAAO;;AMiBzB,qBAAqC;EAAE,OAAO,ENlB1B,GAAO;;AMmB3B,uBAAuC;EAAE,OAAO,ENvN1B,GAAO;;AMwN7B,wBAAwC;EAAE,OAAO,ENiD1B,GAAO;;AMhD9B,+BAA+C;EAAE,OAAO,EN3I1B,GAAO;;AM4IrC,uBAAuC;EAAE,OAAO,ENkH1B,GAAO;;AMjH7B,kBAAkC;EAAE,OAAO,EN1L1B,GAAO;;AM2LxB;8BAC8C;EAAE,OAAO,ENjP1B,GAAO;;AMkPpC;4BAC4C;EAAE,OAAO,ENhP1B,GAAO;;AMiPlC;+BAC+C;EAAE,OAAO,ENnP1B,GAAO;;AMoPrC;cAC8B;EAAE,OAAO,EN7J1B,GAAO;;AM8JpB,cAA8B;EAAE,OAAO,EN/F1B,GAAO;;AMgGpB;cAC8B;EAAE,OAAO,EN4N1B,GAAO;;AM3NpB;cAC8B;EAAE,OAAO,ENvD1B,GAAO;;AMwDpB;;;cAG8B;EAAE,OAAO,ENrD1B,GAAO;;AMsDpB;;cAE8B;EAAE,OAAO,EN8E1B,GAAO;;AM7EpB;cAC8B;EAAE,OAAO,ENtD1B,GAAO;;AMuDpB;cAC8B;EAAE,OAAO,ENzR1B,GAAO;;AM0RpB,eAA+B;EAAE,OAAO,ENzJ1B,GAAO;;AM0JrB,oBAAoC;EAAE,OAAO,EN7I1B,GAAO;;AM8I1B,yBAAyC;EAAE,OAAO,EN2G1B,GAAO;;AM1G/B,0BAA0C;EAAE,OAAO,EN2G1B,GAAO;;AM1GhC,0BAA0C;EAAE,OAAO,EN2G1B,GAAO;;AM1GhC,2BAA2C;EAAE,OAAO,EN2G1B,GAAO;;AM1GjC,2BAA2C;EAAE,OAAO,EN8G1B,GAAO;;AM7GjC,4BAA4C;EAAE,OAAO,EN8G1B,GAAO;;AM7GlC,oBAAoC;EAAE,OAAO,ENgK1B,GAAO;;AM/J1B,sBAAsC;EAAE,OAAO,EN4J1B,GAAO;;AM3J5B,yBAAyC;EAAE,OAAO,ENwO1B,GAAO;;AMvO/B,kBAAkC;EAAE,OAAO,ENqO1B,GAAO;;AMpOxB,eAA+B;EAAE,OAAO,EN+N1B,GAAO;;AM9NrB,sBAAsC;EAAE,OAAO,EN+N1B,GAAO;;AM9N5B,uBAAuC;EAAE,OAAO,ENmO1B,GAAO;;AMlO7B,kBAAkC;EAAE,OAAO,ENxM1B,GAAO;;AMyMxB,yBAAyC;EAAE,OAAO,EN+G1B,GAAO;;AM9G/B,oBAAoC;EAAE,OAAO,ENnF1B,GAAO;;AMoF1B,iBAAiC;EAAE,OAAO,EN/I1B,GAAO;;AMgJvB,cAA8B;EAAE,OAAO,ENhX1B,GAAO;;AMiXpB,oBAAoC;EAAE,OAAO,ENxT1B,GAAO;;AMyT1B,2BAA2C;EAAE,OAAO,ENxT1B,GAAO;;AMyTjC,iBAAiC;EAAE,OAAO,ENyK1B,GAAO;;AMxKvB,wBAAwC;EAAE,OAAO,ENyK1B,GAAO;;AMxK9B,0BAA0C;EAAE,OAAO,ENtD1B,GAAO;;AMuDhC,wBAAwC;EAAE,OAAO,ENpD1B,GAAO;;AMqD9B,0BAA0C;EAAE,OAAO,ENvD1B,GAAO;;AMwDhC,2BAA2C;EAAE,OAAO,ENvD1B,GAAO;;AMwDjC,gBAAgC;EAAE,OAAO,ENxW1B,GAAO;;AMyWtB,kBAAkC;EAAE,OAAO,EN0M1B,GAAO;;AMzMxB,kBAAkC;EAAE,OAAO,ENpX1B,GAAO;;AMqXxB,gBAAgC;EAAE,OAAO,ENpE1B,GAAO;;AMqEtB,mBAAmC;EAAE,OAAO,EN1N1B,GAAO;;AM2NzB,gBAAgC;EAAE,OAAO,ENqE1B,GAAO;;AMpEtB,qBAAqC;EAAE,OAAO,ENtJ1B,GAAO;;AMuJ3B,iBAAiC;EAAE,OAAO,ENuJ1B,GAAO;;AMtJvB,iBAAiC;EAAE,OAAO,EN/L1B,GAAO;;AMgMvB,eAA+B;EAAE,OAAO,EN1D1B,GAAO;;AM2DrB;mBACmC;EAAE,OAAO,ENnI1B,GAAO;;AMoIzB,gBAAgC;EAAE,OAAO,EN2G1B,GAAO;;AM1GtB,iBAAiC;EAAE,OAAO,ENxC1B,GAAO;;AMyCvB,kBAAkC;EAAE,OAAO,ENrX1B,GAAO;;AMsXxB,cAA8B;EAAE,OAAO,ENpU1B,GAAO;;AMqUpB,aAA6B;EAAE,OAAO,ENgL1B,GAAO;;AM/KnB,gBAAgC;EAAE,OAAO,ENqL1B,GAAO;;AMpLtB,iBAAiC;EAAE,OAAO,ENa1B,GAAO;;AMZvB,oBAAoC;EAAE,OAAO,ENrC1B,GAAO;;AMsC1B,yBAAyC;EAAE,OAAO,EN8E1B,GAAO;;AM7E/B,+BAA+C;EAAE,OAAO,ENtX1B,GAAO;;AMuXrC,8BAA8C;EAAE,OAAO,ENxX1B,GAAO;;AMyXpC;8BAC8C;EAAE,OAAO,EN3T1B,GAAO;;AM4TpC,uBAAuC;EAAE,OAAO,ENjP1B,GAAO;;AMkP7B,qBAAqC;EAAE,OAAO,EN+K1B,GAAO;;AM9K3B,uBAAuC;EAAE,OAAO,ENmK1B,GAAO;;AMlK7B;cAC8B;EAAE,OAAO,ENoI1B,GAAO;;AMnIpB,wBAAwC;EAAE,OAAO,ENjB1B,GAAO;;AMkB9B,wBAAwC;EAAE,OAAO,EN6D1B,GAAO;;AM5D9B,gBAAgC;EAAE,OAAO,EN2C1B,GAAO;;AM1CtB,0BAA0C;EAAE,OAAO,EN7O1B,GAAO;;AM8OhC,oBAAoC;EAAE,OAAO,EN2K1B,GAAO;;AM1K1B,iBAAiC;EAAE,OAAO,ENvD1B,GAAO;;AMwDvB;;qBAEqC;EAAE,OAAO,ENsI1B,GAAO;;AMrI3B;yBACyC;EAAE,OAAO,ENjK1B,GAAO;;AMkK/B,gBAAgC;EAAE,OAAO,ENwK1B,GAAO;;AMvKtB,iBAAiC;EAAE,OAAO,ENvK1B,GAAO;;AMwKvB,iBAAiC;EAAE,OAAO,ENhB1B,GAAO;;AMiBvB,wBAAwC;EAAE,OAAO,ENhB1B,GAAO;;AMiB9B,6BAA6C;EAAE,OAAO,ENsE1B,GAAO;;AMrEnC,sBAAsC;EAAE,OAAO,ENoE1B,GAAO;;AMnE5B,oBAAoC;EAAE,OAAO,EN7Q1B,GAAO;;AM8Q1B,eAA+B;EAAE,OAAO,EN1Q1B,GAAO;;AM2QrB,qBAAqC;EAAE,OAAO,ENjD1B,GAAO;;AMkD3B,yBAAyC;EAAE,OAAO,ENjD1B,GAAO;;AMkD/B,iBAAiC;EAAE,OAAO,ENvQ1B,GAAO;;AMwQvB,iBAAiC;EAAE,OAAO,EN9I1B,GAAO;;AM+IvB,mBAAmC;EAAE,OAAO,ENzI1B,GAAO;;AM0IzB,cAA8B;EAAE,OAAO,EN9O1B,GAAO;;AM+OpB,mBAAmC;EAAE,OAAO,EN3W1B,GAAO;;AM4WzB,gBAAgC;EAAE,OAAO,EN9T1B,GAAO;;AM+TtB,cAA8B;EAAE,OAAO,ENnE1B,GAAO;;AMoEpB,gBAAgC;EAAE,OAAO,ENoC1B,GAAO;;AMnCtB,eAA+B;EAAE,OAAO,ENjS1B,GAAO;;AMkSrB,gBAAgC;EAAE,OAAO,ENjS1B,GAAO;;AMkStB,kBAAkC;EAAE,OAAO,ENtY1B,GAAO;;AMuYxB,yBAAyC;EAAE,OAAO,ENtY1B,GAAO;;AMuY/B,gBAAgC;EAAE,OAAO,EN2C1B,GAAO;;AM1CtB,uBAAuC;EAAE,OAAO,EN2C1B,GAAO;;AM1C7B,kBAAkC;EAAE,OAAO,ENvC1B,GAAO;;AMwCxB;cAC8B;EAAE,OAAO,EN3W1B,GAAO;;AM4WpB;eAC+B;EAAE,OAAO,EN2D1B,GAAO;;AM1DrB,eAA+B;EAAE,OAAO,ENuF1B,GAAO;;AMtFrB,kBAAkC;EAAE,OAAO,ENwB1B,GAAO;;AMvBxB,qBAAqC;EAAE,OAAO,ENpS1B,GAAO;;AMqS3B,qBAAqC;EAAE,OAAO,ENkB1B,GAAO;;AMjB3B,mBAAmC;EAAE,OAAO,EN1S1B,GAAO;;AM2SzB,qBAAqC;EAAE,OAAO,ENxP1B,GAAO;;AMyP3B,sBAAsC;EAAE,OAAO,ENjP1B,GAAO;;AMkP5B,uBAAuC;EAAE,OAAO,EN9P1B,GAAO;;AM+P7B,4BAA4C;EAAE,OAAO,ENxP1B,GAAO;;AMyPlC;;uBAEuC;EAAE,OAAO,ENjQ1B,GAAO;;AMkQ7B;yBACyC;EAAE,OAAO,ENvQ1B,GAAO;;AMwQ/B;uBACuC;EAAE,OAAO,ENxQ1B,GAAO;;AMyQ7B;uBACuC;EAAE,OAAO,EN7P1B,GAAO;;AM8P7B,sBAAsC;EAAE,OAAO,EN1Q1B,GAAO;;AM2Q5B,eAA+B;EAAE,OAAO,ENsG1B,GAAO;;AMrGrB,kBAAkC;EAAE,OAAO,ENlV1B,GAAO;;AMmVxB,mBAAmC;EAAE,OAAO,ENnL1B,GAAO;;AMoLzB;;;;oBAIoC;EAAE,OAAO,ENxK1B,GAAO;;AMyK1B,yBAAyC;EAAE,OAAO,ENpW1B,GAAO;;AMqW/B;gBACgC;EAAE,OAAO,EN1E1B,GAAO;;AM2EtB;iBACiC;EAAE,OAAO,ENpT1B,GAAO;;AMqTvB,qBAAqC;EAAE,OAAO,EN1O1B,GAAO;;AM2O3B,cAA8B;EAAE,OAAO,EN5O1B,GAAO;;AM6OpB,sBAAsC;EAAE,OAAO,EN7N1B,GAAO;;AM8N5B,wBAAwC;EAAE,OAAO,ENwB1B,GAAO;;AMvB9B,aAA6B;EAAE,OAAO,ENzF1B,GAAO;;AM0FnB;iBACiC;EAAE,OAAO,EN2F1B,GAAO;;AM1FvB;sBACsC;EAAE,OAAO,EN9H1B,GAAO;;AM+H5B;wBACwC;EAAE,OAAO,EN/H1B,GAAO;;AMgI9B,kBAAkC;EAAE,OAAO,EN3N1B,GAAO;;AM4NxB;sBACsC;EAAE,OAAO,ENrX1B,GAAO;;AMsX5B,iBAAiC;EAAE,OAAO,ENnO1B,GAAO;;AMoOvB,oBAAoC;EAAE,OAAO,ENlI1B,GAAO;;AMmI1B,kBAAkC;EAAE,OAAO,EN1C1B,GAAO;;AM2CxB,oBAAoC;EAAE,OAAO,EN7D1B,GAAO;;AM8D1B,2BAA2C;EAAE,OAAO,EN7D1B,GAAO;;AM8DjC,eAA+B;EAAE,OAAO,ENpb1B,GAAO;;AMqbrB;mBACmC;EAAE,OAAO,ENzQ1B,GAAO;;AM0QzB,cAA8B;EAAE,OAAO,ENsC1B,GAAO;;AMrCpB,qBAAqC;EAAE,OAAO,EN/b1B,GAAO;;AMgc3B,eAA+B;EAAE,OAAO,ENrH1B,GAAO;;AMsHrB,qBAAqC;EAAE,OAAO,ENlD1B,GAAO;;AMmD3B,iBAAiC;EAAE,OAAO,ENsC1B,GAAO;;AMrCvB,eAA+B;EAAE,OAAO,ENiF1B,GAAO;;AMhFrB,sBAAsC;EAAE,OAAO,ENvJ1B,GAAO;;AMwJ5B,eAA+B;EAAE,OAAO,ENuE1B,GAAO;;AMtErB,qBAAqC;EAAE,OAAO,ENjb1B,GAAO;;AMkb3B,iBAAiC;EAAE,OAAO,EN9I1B,GAAO;;AM+IvB,wBAAwC;EAAE,OAAO,ENhQ1B,GAAO;;AMiQ9B,kBAAkC;EAAE,OAAO,EN9Z1B,GAAO;;AM+ZxB,wBAAwC;EAAE,OAAO,ENla1B,GAAO;;AMma9B,sBAAsC;EAAE,OAAO,ENpa1B,GAAO;;AMqa5B,kBAAkC;EAAE,OAAO,ENta1B,GAAO;;AMuaxB,oBAAoC;EAAE,OAAO,ENpa1B,GAAO;;AMqa1B,oBAAoC;EAAE,OAAO,ENpa1B,GAAO;;AMqa1B,qBAAqC;EAAE,OAAO,ENld1B,GAAO;;AMmd3B,uBAAuC;EAAE,OAAO,ENld1B,GAAO;;AMmd7B,gBAAgC;EAAE,OAAO,ENY1B,GAAO;;AMXtB,oBAAoC;EAAE,OAAO,EN3X1B,GAAO;;AM4X1B,aAA6B;EAAE,OAAO,ENre1B,GAAO;;AMsenB,qBAAqC;EAAE,OAAO,ENjV1B,GAAO;;AMkV3B,sBAAsC;EAAE,OAAO,ENpK1B,GAAO;;AMqK5B,wBAAwC;EAAE,OAAO,ENrd1B,GAAO;;AMsd9B,qBAAqC;EAAE,OAAO,EN3f1B,GAAO;;AM4f3B,oBAAoC;EAAE,OAAO,ENvJ1B,GAAO;;AMwJ1B,qBAAqC;EAAE,OAAO,EN5N1B,GAAO;;AM6N3B,iBAAiC;EAAE,OAAO,EN1O1B,GAAO;;AM2OvB,wBAAwC;EAAE,OAAO,EN1O1B,GAAO;;AM2O9B,qBAAqC;EAAE,OAAO,ENN1B,GAAO;;AMO3B,oBAAoC;EAAE,OAAO,ENN1B,GAAO;;AMO1B,kBAAkC;EAAE,OAAO,EN/d1B,GAAO;;AMgexB,cAA8B;EAAE,OAAO,EN7c1B,GAAO;;AM8cpB,kBAAkC;EAAE,OAAO,EN1P1B,GAAO;;AM2PxB,oBAAoC;EAAE,OAAO,ENhhB1B,GAAO;;AMihB1B,aAA6B;EAAE,OAAO,EN7b1B,GAAO;;AM8bnB;;cAE8B;EAAE,OAAO,ENxQ1B,GAAO;;AMyQpB,mBAAmC;EAAE,OAAO,EN7M1B,GAAO;;AM8MzB,qBAAqC;EAAE,OAAO,ENpd1B,GAAO;;AMqd3B,yBAAyC;EAAE,OAAO,ENnZ1B,GAAO;;AMoZ/B,mBAAmC;EAAE,OAAO,ENxY1B,GAAO;;AMyYzB,mBAAmC;EAAE,OAAO,EN1T1B,GAAO;;AM2TzB,kBAAkC;EAAE,OAAO,ENxP1B,GAAO;;AMyPxB,iBAAiC;EAAE,OAAO,ENrH1B,GAAO;;AMsHvB,uBAAuC;EAAE,OAAO,ENzG1B,GAAO;;AM0G7B,sBAAsC;EAAE,OAAO,ENrG1B,GAAO;;AMsG5B,mBAAmC;EAAE,OAAO,ENpG1B,GAAO;;AMqGzB,oBAAoC;EAAE,OAAO,EN5c1B,GAAO;;AM6c1B,0BAA0C;EAAE,OAAO,EN9c1B,GAAO;;AM+chC,kBAAkC;EAAE,OAAO,EN3Y1B,GAAO;;AM4YxB,eAA+B;EAAE,OAAO,ENhH1B,GAAO;;AMiHrB,sBAAsC;EAAE,OAAO,ENI1B,GAAO;;AMH5B,qBAAqC;EAAE,OAAO,EN5M1B,GAAO;;AM6M3B,sBAAsC;EAAE,OAAO,ENpE1B,GAAO;;AMqE5B,oBAAoC;EAAE,OAAO,ENhS1B,GAAO;;AMiS1B,gBAAgC;EAAE,OAAO,ENG1B,GAAO;;AMFtB,eAA+B;EAAE,OAAO,ENtO1B,GAAO;;AMuOrB,kBAAkC;EAAE,OAAO,EN7N1B,GAAO;;AM8NxB,sBAAsC;EAAE,OAAO,ENhC1B,GAAO;;AMiC5B,0BAA0C;EAAE,OAAO,ENhC1B,GAAO;;AMiChC,uBAAuC;EAAE,OAAO,END1B,GAAO;;AME7B,sBAAsC;EAAE,OAAO,EN1O1B,GAAO;;AM2O5B,qBAAqC;EAAE,OAAO,ENF1B,GAAO;;AMG3B,sBAAsC;EAAE,OAAO,EN3O1B,GAAO;;AM4O5B,wBAAwC;EAAE,OAAO,EN1O1B,GAAO;;AM2O9B,wBAAwC;EAAE,OAAO,EN5O1B,GAAO;;AM6O9B,iBAAiC;EAAE,OAAO,ENvN1B,GAAO;;AMwNvB,4BAA4C;EAAE,OAAO,EN9X1B,GAAO;;AM+XlC,sBAAsC;EAAE,OAAO,ENhM1B,GAAO;;AMiM5B,mBAAmC;EAAE,OAAO,ENI1B,GAAO;;AMHzB,iBAAiC;EAAE,OAAO,EN7I1B,GAAO;;AM8IvB,oBAAoC;EAAE,OAAO,ENjB1B,GAAO;;AMkB1B,qBAAqC;EAAE,OAAO,ENhB1B,GAAO;;AMiB3B;cAC8B;EAAE,OAAO,ENphB1B,GAAO;;AMqhBpB,kBAAkC;EAAE,OAAO,ENd1B,GAAO;;AMexB,gBAAgC;EAAE,OAAO,ENnD1B,GAAO;;AMoDtB,iBAAiC;EAAE,OAAO,ENvF1B,GAAO;;AMwFvB,iBAAiC;EAAE,OAAO,ENrP1B,GAAO", 4 | "sources": ["../scss/_path.scss","../scss/_core.scss","../scss/_larger.scss","../scss/_fixed-width.scss","../scss/_list.scss","../scss/_variables.scss","../scss/_bordered-pulled.scss","../scss/_animated.scss","../scss/_rotated-flipped.scss","../scss/_mixins.scss","../scss/_stacked.scss","../scss/_icons.scss"], 5 | "names": [], 6 | "file": "font-awesome.css" 7 | } 8 | -------------------------------------------------------------------------------- /static/css/skins/skin-black-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Black 3 | * ----------- 4 | */ 5 | /* skin-black navbar */ 6 | .skin-black-light .main-header { 7 | -webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05); 8 | box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05); 9 | } 10 | .skin-black-light .main-header .navbar-toggle { 11 | color: #333; 12 | } 13 | .skin-black-light .main-header .navbar-brand { 14 | color: #333; 15 | border-right: 1px solid #eee; 16 | } 17 | .skin-black-light .main-header > .navbar { 18 | background-color: #ffffff; 19 | } 20 | .skin-black-light .main-header > .navbar .nav > li > a { 21 | color: #333333; 22 | } 23 | .skin-black-light .main-header > .navbar .nav > li > a:hover, 24 | .skin-black-light .main-header > .navbar .nav > li > a:active, 25 | .skin-black-light .main-header > .navbar .nav > li > a:focus, 26 | .skin-black-light .main-header > .navbar .nav .open > a, 27 | .skin-black-light .main-header > .navbar .nav .open > a:hover, 28 | .skin-black-light .main-header > .navbar .nav .open > a:focus, 29 | .skin-black-light .main-header > .navbar .nav > .active > a { 30 | background: #ffffff; 31 | color: #999999; 32 | } 33 | .skin-black-light .main-header > .navbar .sidebar-toggle { 34 | color: #333333; 35 | } 36 | .skin-black-light .main-header > .navbar .sidebar-toggle:hover { 37 | color: #999999; 38 | background: #ffffff; 39 | } 40 | .skin-black-light .main-header > .navbar > .sidebar-toggle { 41 | color: #333; 42 | border-right: 1px solid #eee; 43 | } 44 | .skin-black-light .main-header > .navbar .navbar-nav > li > a { 45 | border-right: 1px solid #eee; 46 | } 47 | .skin-black-light .main-header > .navbar .navbar-custom-menu .navbar-nav > li > a, 48 | .skin-black-light .main-header > .navbar .navbar-right > li > a { 49 | border-left: 1px solid #eee; 50 | border-right-width: 0; 51 | } 52 | .skin-black-light .main-header > .logo { 53 | background-color: #ffffff; 54 | color: #333333; 55 | border-bottom: 0 solid transparent; 56 | border-right: 1px solid #eee; 57 | } 58 | .skin-black-light .main-header > .logo:hover { 59 | background-color: #fcfcfc; 60 | } 61 | @media (max-width: 767px) { 62 | .skin-black-light .main-header > .logo { 63 | background-color: #222222; 64 | color: #ffffff; 65 | border-bottom: 0 solid transparent; 66 | border-right: none; 67 | } 68 | .skin-black-light .main-header > .logo:hover { 69 | background-color: #1f1f1f; 70 | } 71 | } 72 | .skin-black-light .main-header li.user-header { 73 | background-color: #222; 74 | } 75 | .skin-black-light .content-header { 76 | background: transparent; 77 | box-shadow: none; 78 | } 79 | .skin-black-light .wrapper, 80 | .skin-black-light .main-sidebar, 81 | .skin-black-light .left-side { 82 | background-color: #f9fafc; 83 | } 84 | .skin-black-light .content-wrapper, 85 | .skin-black-light .main-footer { 86 | border-left: 1px solid #d2d6de; 87 | } 88 | .skin-black-light .user-panel > .info, 89 | .skin-black-light .user-panel > .info > a { 90 | color: #444444; 91 | } 92 | .skin-black-light .sidebar-menu > li { 93 | -webkit-transition: border-left-color 0.3s ease; 94 | -o-transition: border-left-color 0.3s ease; 95 | transition: border-left-color 0.3s ease; 96 | } 97 | .skin-black-light .sidebar-menu > li.header { 98 | color: #848484; 99 | background: #f9fafc; 100 | } 101 | .skin-black-light .sidebar-menu > li > a { 102 | border-left: 3px solid transparent; 103 | font-weight: 600; 104 | } 105 | .skin-black-light .sidebar-menu > li:hover > a, 106 | .skin-black-light .sidebar-menu > li.active > a { 107 | color: #000000; 108 | background: #f4f4f5; 109 | } 110 | .skin-black-light .sidebar-menu > li.active { 111 | border-left-color: #ffffff; 112 | } 113 | .skin-black-light .sidebar-menu > li.active > a { 114 | font-weight: 600; 115 | } 116 | .skin-black-light .sidebar-menu > li > .treeview-menu { 117 | background: #f4f4f5; 118 | } 119 | .skin-black-light .sidebar a { 120 | color: #444444; 121 | } 122 | .skin-black-light .sidebar a:hover { 123 | text-decoration: none; 124 | } 125 | .skin-black-light .treeview-menu > li > a { 126 | color: #777777; 127 | } 128 | .skin-black-light .treeview-menu > li.active > a, 129 | .skin-black-light .treeview-menu > li > a:hover { 130 | color: #000000; 131 | } 132 | .skin-black-light .treeview-menu > li.active > a { 133 | font-weight: 600; 134 | } 135 | .skin-black-light .sidebar-form { 136 | border-radius: 3px; 137 | border: 1px solid #d2d6de; 138 | margin: 10px 10px; 139 | } 140 | .skin-black-light .sidebar-form input[type="text"], 141 | .skin-black-light .sidebar-form .btn { 142 | box-shadow: none; 143 | background-color: #fff; 144 | border: 1px solid transparent; 145 | height: 35px; 146 | -webkit-transition: all 0.3s ease-in-out; 147 | -o-transition: all 0.3s ease-in-out; 148 | transition: all 0.3s ease-in-out; 149 | } 150 | .skin-black-light .sidebar-form input[type="text"] { 151 | color: #666; 152 | border-top-left-radius: 2px; 153 | border-top-right-radius: 0; 154 | border-bottom-right-radius: 0; 155 | border-bottom-left-radius: 2px; 156 | } 157 | .skin-black-light .sidebar-form input[type="text"]:focus, 158 | .skin-black-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 159 | background-color: #fff; 160 | color: #666; 161 | } 162 | .skin-black-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 163 | border-left-color: #fff; 164 | } 165 | .skin-black-light .sidebar-form .btn { 166 | color: #999; 167 | border-top-left-radius: 0; 168 | border-top-right-radius: 2px; 169 | border-bottom-right-radius: 2px; 170 | border-bottom-left-radius: 0; 171 | } 172 | @media (min-width: 768px) { 173 | .skin-black-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { 174 | border-left: 1px solid #d2d6de; 175 | } 176 | } 177 | -------------------------------------------------------------------------------- /static/css/skins/skin-black-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-black-light .main-header{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.skin-black-light .main-header .navbar-toggle{color:#333}.skin-black-light .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.skin-black-light .main-header>.navbar{background-color:#fff}.skin-black-light .main-header>.navbar .nav>li>a{color:#333}.skin-black-light .main-header>.navbar .nav>li>a:hover,.skin-black-light .main-header>.navbar .nav>li>a:active,.skin-black-light .main-header>.navbar .nav>li>a:focus,.skin-black-light .main-header>.navbar .nav .open>a,.skin-black-light .main-header>.navbar .nav .open>a:hover,.skin-black-light .main-header>.navbar .nav .open>a:focus,.skin-black-light .main-header>.navbar .nav>.active>a{background:#fff;color:#999}.skin-black-light .main-header>.navbar .sidebar-toggle{color:#333}.skin-black-light .main-header>.navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black-light .main-header>.navbar>.sidebar-toggle{color:#333;border-right:1px solid #eee}.skin-black-light .main-header>.navbar .navbar-nav>li>a{border-right:1px solid #eee}.skin-black-light .main-header>.navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black-light .main-header>.navbar .navbar-right>li>a{border-left:1px solid #eee;border-right-width:0}.skin-black-light .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.skin-black-light .main-header>.logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black-light .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black-light .main-header>.logo:hover{background-color:#1f1f1f}}.skin-black-light .main-header li.user-header{background-color:#222}.skin-black-light .content-header{background:transparent;box-shadow:none}.skin-black-light .wrapper,.skin-black-light .main-sidebar,.skin-black-light .left-side{background-color:#f9fafc}.skin-black-light .content-wrapper,.skin-black-light .main-footer{border-left:1px solid #d2d6de}.skin-black-light .user-panel>.info,.skin-black-light .user-panel>.info>a{color:#444}.skin-black-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-black-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-black-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-black-light .sidebar-menu>li:hover>a,.skin-black-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-black-light .sidebar-menu>li.active{border-left-color:#fff}.skin-black-light .sidebar-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-black-light .sidebar a{color:#444}.skin-black-light .sidebar a:hover{text-decoration:none}.skin-black-light .treeview-menu>li>a{color:#777}.skin-black-light .treeview-menu>li.active>a,.skin-black-light .treeview-menu>li>a:hover{color:#000}.skin-black-light .treeview-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-black-light .sidebar-form input[type="text"],.skin-black-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-black-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black-light .sidebar-form input[type="text"]:focus,.skin-black-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-black-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} -------------------------------------------------------------------------------- /static/css/skins/skin-black.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Black 3 | * ----------- 4 | */ 5 | /* skin-black navbar */ 6 | .skin-black .main-header { 7 | -webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05); 8 | box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05); 9 | } 10 | .skin-black .main-header .navbar-toggle { 11 | color: #333; 12 | } 13 | .skin-black .main-header .navbar-brand { 14 | color: #333; 15 | border-right: 1px solid #eee; 16 | } 17 | .skin-black .main-header > .navbar { 18 | background-color: #ffffff; 19 | } 20 | .skin-black .main-header > .navbar .nav > li > a { 21 | color: #333333; 22 | } 23 | .skin-black .main-header > .navbar .nav > li > a:hover, 24 | .skin-black .main-header > .navbar .nav > li > a:active, 25 | .skin-black .main-header > .navbar .nav > li > a:focus, 26 | .skin-black .main-header > .navbar .nav .open > a, 27 | .skin-black .main-header > .navbar .nav .open > a:hover, 28 | .skin-black .main-header > .navbar .nav .open > a:focus, 29 | .skin-black .main-header > .navbar .nav > .active > a { 30 | background: #ffffff; 31 | color: #999999; 32 | } 33 | .skin-black .main-header > .navbar .sidebar-toggle { 34 | color: #333333; 35 | } 36 | .skin-black .main-header > .navbar .sidebar-toggle:hover { 37 | color: #999999; 38 | background: #ffffff; 39 | } 40 | .skin-black .main-header > .navbar > .sidebar-toggle { 41 | color: #333; 42 | border-right: 1px solid #eee; 43 | } 44 | .skin-black .main-header > .navbar .navbar-nav > li > a { 45 | border-right: 1px solid #eee; 46 | } 47 | .skin-black .main-header > .navbar .navbar-custom-menu .navbar-nav > li > a, 48 | .skin-black .main-header > .navbar .navbar-right > li > a { 49 | border-left: 1px solid #eee; 50 | border-right-width: 0; 51 | } 52 | .skin-black .main-header > .logo { 53 | background-color: #ffffff; 54 | color: #333333; 55 | border-bottom: 0 solid transparent; 56 | border-right: 1px solid #eee; 57 | } 58 | .skin-black .main-header > .logo:hover { 59 | background-color: #fcfcfc; 60 | } 61 | @media (max-width: 767px) { 62 | .skin-black .main-header > .logo { 63 | background-color: #222222; 64 | color: #ffffff; 65 | border-bottom: 0 solid transparent; 66 | border-right: none; 67 | } 68 | .skin-black .main-header > .logo:hover { 69 | background-color: #1f1f1f; 70 | } 71 | } 72 | .skin-black .main-header li.user-header { 73 | background-color: #222; 74 | } 75 | .skin-black .content-header { 76 | background: transparent; 77 | box-shadow: none; 78 | } 79 | .skin-black .wrapper, 80 | .skin-black .main-sidebar, 81 | .skin-black .left-side { 82 | background-color: #222d32; 83 | } 84 | .skin-black .user-panel > .info, 85 | .skin-black .user-panel > .info > a { 86 | color: #fff; 87 | } 88 | .skin-black .sidebar-menu > li.header { 89 | color: #4b646f; 90 | background: #1a2226; 91 | } 92 | .skin-black .sidebar-menu > li > a { 93 | border-left: 3px solid transparent; 94 | } 95 | .skin-black .sidebar-menu > li:hover > a, 96 | .skin-black .sidebar-menu > li.active > a { 97 | color: #ffffff; 98 | background: #1e282c; 99 | border-left-color: #ffffff; 100 | } 101 | .skin-black .sidebar-menu > li > .treeview-menu { 102 | margin: 0 1px; 103 | background: #2c3b41; 104 | } 105 | .skin-black .sidebar a { 106 | color: #b8c7ce; 107 | } 108 | .skin-black .sidebar a:hover { 109 | text-decoration: none; 110 | } 111 | .skin-black .treeview-menu > li > a { 112 | color: #8aa4af; 113 | } 114 | .skin-black .treeview-menu > li.active > a, 115 | .skin-black .treeview-menu > li > a:hover { 116 | color: #ffffff; 117 | } 118 | .skin-black .sidebar-form { 119 | border-radius: 3px; 120 | border: 1px solid #374850; 121 | margin: 10px 10px; 122 | } 123 | .skin-black .sidebar-form input[type="text"], 124 | .skin-black .sidebar-form .btn { 125 | box-shadow: none; 126 | background-color: #374850; 127 | border: 1px solid transparent; 128 | height: 35px; 129 | -webkit-transition: all 0.3s ease-in-out; 130 | -o-transition: all 0.3s ease-in-out; 131 | transition: all 0.3s ease-in-out; 132 | } 133 | .skin-black .sidebar-form input[type="text"] { 134 | color: #666; 135 | border-top-left-radius: 2px; 136 | border-top-right-radius: 0; 137 | border-bottom-right-radius: 0; 138 | border-bottom-left-radius: 2px; 139 | } 140 | .skin-black .sidebar-form input[type="text"]:focus, 141 | .skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 142 | background-color: #fff; 143 | color: #666; 144 | } 145 | .skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 146 | border-left-color: #fff; 147 | } 148 | .skin-black .sidebar-form .btn { 149 | color: #999; 150 | border-top-left-radius: 0; 151 | border-top-right-radius: 2px; 152 | border-bottom-right-radius: 2px; 153 | border-bottom-left-radius: 0; 154 | } 155 | .skin-black .pace .pace-progress { 156 | background: #222; 157 | } 158 | .skin-black .pace .pace-activity { 159 | border-top-color: #222; 160 | border-left-color: #222; 161 | } 162 | -------------------------------------------------------------------------------- /static/css/skins/skin-black.min.css: -------------------------------------------------------------------------------- 1 | .skin-black .main-header{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.skin-black .main-header .navbar-toggle{color:#333}.skin-black .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.skin-black .main-header>.navbar{background-color:#fff}.skin-black .main-header>.navbar .nav>li>a{color:#333}.skin-black .main-header>.navbar .nav>li>a:hover,.skin-black .main-header>.navbar .nav>li>a:active,.skin-black .main-header>.navbar .nav>li>a:focus,.skin-black .main-header>.navbar .nav .open>a,.skin-black .main-header>.navbar .nav .open>a:hover,.skin-black .main-header>.navbar .nav .open>a:focus,.skin-black .main-header>.navbar .nav>.active>a{background:#fff;color:#999}.skin-black .main-header>.navbar .sidebar-toggle{color:#333}.skin-black .main-header>.navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black .main-header>.navbar>.sidebar-toggle{color:#333;border-right:1px solid #eee}.skin-black .main-header>.navbar .navbar-nav>li>a{border-right:1px solid #eee}.skin-black .main-header>.navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black .main-header>.navbar .navbar-right>li>a{border-left:1px solid #eee;border-right-width:0}.skin-black .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.skin-black .main-header>.logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black .main-header>.logo:hover{background-color:#1f1f1f}}.skin-black .main-header li.user-header{background-color:#222}.skin-black .content-header{background:transparent;box-shadow:none}.skin-black .wrapper,.skin-black .main-sidebar,.skin-black .left-side{background-color:#222d32}.skin-black .user-panel>.info,.skin-black .user-panel>.info>a{color:#fff}.skin-black .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-black .sidebar-menu>li>a{border-left:3px solid transparent}.skin-black .sidebar-menu>li:hover>a,.skin-black .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#fff}.skin-black .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-black .sidebar a{color:#b8c7ce}.skin-black .sidebar a:hover{text-decoration:none}.skin-black .treeview-menu>li>a{color:#8aa4af}.skin-black .treeview-menu>li.active>a,.skin-black .treeview-menu>li>a:hover{color:#fff}.skin-black .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-black .sidebar-form input[type="text"],.skin-black .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-black .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black .sidebar-form input[type="text"]:focus,.skin-black .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-black .pace .pace-progress{background:#222}.skin-black .pace .pace-activity{border-top-color:#222;border-left-color:#222} -------------------------------------------------------------------------------- /static/css/skins/skin-blue-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Blue 3 | * ---------- 4 | */ 5 | .skin-blue-light .main-header .navbar { 6 | background-color: #3c8dbc; 7 | } 8 | .skin-blue-light .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-blue-light .main-header .navbar .nav > li > a:hover, 12 | .skin-blue-light .main-header .navbar .nav > li > a:active, 13 | .skin-blue-light .main-header .navbar .nav > li > a:focus, 14 | .skin-blue-light .main-header .navbar .nav .open > a, 15 | .skin-blue-light .main-header .navbar .nav .open > a:hover, 16 | .skin-blue-light .main-header .navbar .nav .open > a:focus, 17 | .skin-blue-light .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-blue-light .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-blue-light .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-blue-light .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-blue-light .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #367fa9; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-blue-light .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-blue-light .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-blue-light .main-header .navbar .dropdown-menu li a:hover { 42 | background: #367fa9; 43 | } 44 | } 45 | .skin-blue-light .main-header .logo { 46 | background-color: #3c8dbc; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-blue-light .main-header .logo:hover { 51 | background-color: #3b8ab8; 52 | } 53 | .skin-blue-light .main-header li.user-header { 54 | background-color: #3c8dbc; 55 | } 56 | .skin-blue-light .content-header { 57 | background: transparent; 58 | } 59 | .skin-blue-light .wrapper, 60 | .skin-blue-light .main-sidebar, 61 | .skin-blue-light .left-side { 62 | background-color: #f9fafc; 63 | } 64 | .skin-blue-light .content-wrapper, 65 | .skin-blue-light .main-footer { 66 | border-left: 1px solid #d2d6de; 67 | } 68 | .skin-blue-light .user-panel > .info, 69 | .skin-blue-light .user-panel > .info > a { 70 | color: #444444; 71 | } 72 | .skin-blue-light .sidebar-menu > li { 73 | -webkit-transition: border-left-color 0.3s ease; 74 | -o-transition: border-left-color 0.3s ease; 75 | transition: border-left-color 0.3s ease; 76 | } 77 | .skin-blue-light .sidebar-menu > li.header { 78 | color: #848484; 79 | background: #f9fafc; 80 | } 81 | .skin-blue-light .sidebar-menu > li > a { 82 | border-left: 3px solid transparent; 83 | font-weight: 600; 84 | } 85 | .skin-blue-light .sidebar-menu > li:hover > a, 86 | .skin-blue-light .sidebar-menu > li.active > a { 87 | color: #000000; 88 | background: #f4f4f5; 89 | } 90 | .skin-blue-light .sidebar-menu > li.active { 91 | border-left-color: #3c8dbc; 92 | } 93 | .skin-blue-light .sidebar-menu > li.active > a { 94 | font-weight: 600; 95 | } 96 | .skin-blue-light .sidebar-menu > li > .treeview-menu { 97 | background: #f4f4f5; 98 | } 99 | .skin-blue-light .sidebar a { 100 | color: #444444; 101 | } 102 | .skin-blue-light .sidebar a:hover { 103 | text-decoration: none; 104 | } 105 | .skin-blue-light .treeview-menu > li > a { 106 | color: #777777; 107 | } 108 | .skin-blue-light .treeview-menu > li.active > a, 109 | .skin-blue-light .treeview-menu > li > a:hover { 110 | color: #000000; 111 | } 112 | .skin-blue-light .treeview-menu > li.active > a { 113 | font-weight: 600; 114 | } 115 | .skin-blue-light .sidebar-form { 116 | border-radius: 3px; 117 | border: 1px solid #d2d6de; 118 | margin: 10px 10px; 119 | } 120 | .skin-blue-light .sidebar-form input[type="text"], 121 | .skin-blue-light .sidebar-form .btn { 122 | box-shadow: none; 123 | background-color: #fff; 124 | border: 1px solid transparent; 125 | height: 35px; 126 | -webkit-transition: all 0.3s ease-in-out; 127 | -o-transition: all 0.3s ease-in-out; 128 | transition: all 0.3s ease-in-out; 129 | } 130 | .skin-blue-light .sidebar-form input[type="text"] { 131 | color: #666; 132 | border-top-left-radius: 2px; 133 | border-top-right-radius: 0; 134 | border-bottom-right-radius: 0; 135 | border-bottom-left-radius: 2px; 136 | } 137 | .skin-blue-light .sidebar-form input[type="text"]:focus, 138 | .skin-blue-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 139 | background-color: #fff; 140 | color: #666; 141 | } 142 | .skin-blue-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 143 | border-left-color: #fff; 144 | } 145 | .skin-blue-light .sidebar-form .btn { 146 | color: #999; 147 | border-top-left-radius: 0; 148 | border-top-right-radius: 2px; 149 | border-bottom-right-radius: 2px; 150 | border-bottom-left-radius: 0; 151 | } 152 | @media (min-width: 768px) { 153 | .skin-blue-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { 154 | border-left: 1px solid #d2d6de; 155 | } 156 | } 157 | .skin-blue-light .main-footer { 158 | border-top-color: #d2d6de; 159 | } 160 | .skin-blue.layout-top-nav .main-header > .logo { 161 | background-color: #3c8dbc; 162 | color: #ffffff; 163 | border-bottom: 0 solid transparent; 164 | } 165 | .skin-blue.layout-top-nav .main-header > .logo:hover { 166 | background-color: #3b8ab8; 167 | } 168 | -------------------------------------------------------------------------------- /static/css/skins/skin-blue-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-blue-light .main-header .navbar{background-color:#3c8dbc}.skin-blue-light .main-header .navbar .nav>li>a{color:#fff}.skin-blue-light .main-header .navbar .nav>li>a:hover,.skin-blue-light .main-header .navbar .nav>li>a:active,.skin-blue-light .main-header .navbar .nav>li>a:focus,.skin-blue-light .main-header .navbar .nav .open>a,.skin-blue-light .main-header .navbar .nav .open>a:hover,.skin-blue-light .main-header .navbar .nav .open>a:focus,.skin-blue-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-blue-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-blue-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue-light .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-blue-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue-light .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue-light .main-header .logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue-light .main-header .logo:hover{background-color:#3b8ab8}.skin-blue-light .main-header li.user-header{background-color:#3c8dbc}.skin-blue-light .content-header{background:transparent}.skin-blue-light .wrapper,.skin-blue-light .main-sidebar,.skin-blue-light .left-side{background-color:#f9fafc}.skin-blue-light .content-wrapper,.skin-blue-light .main-footer{border-left:1px solid #d2d6de}.skin-blue-light .user-panel>.info,.skin-blue-light .user-panel>.info>a{color:#444}.skin-blue-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-blue-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-blue-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-blue-light .sidebar-menu>li:hover>a,.skin-blue-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-blue-light .sidebar-menu>li.active{border-left-color:#3c8dbc}.skin-blue-light .sidebar-menu>li.active>a{font-weight:600}.skin-blue-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-blue-light .sidebar a{color:#444}.skin-blue-light .sidebar a:hover{text-decoration:none}.skin-blue-light .treeview-menu>li>a{color:#777}.skin-blue-light .treeview-menu>li.active>a,.skin-blue-light .treeview-menu>li>a:hover{color:#000}.skin-blue-light .treeview-menu>li.active>a{font-weight:600}.skin-blue-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-blue-light .sidebar-form input[type="text"],.skin-blue-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-blue-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-blue-light .sidebar-form input[type="text"]:focus,.skin-blue-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-blue-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-blue-light .main-footer{border-top-color:#d2d6de}.skin-blue.layout-top-nav .main-header>.logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue.layout-top-nav .main-header>.logo:hover{background-color:#3b8ab8} -------------------------------------------------------------------------------- /static/css/skins/skin-blue.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Blue 3 | * ---------- 4 | */ 5 | .skin-blue .main-header .navbar { 6 | background-color: #3c8dbc; 7 | } 8 | .skin-blue .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-blue .main-header .navbar .nav > li > a:hover, 12 | .skin-blue .main-header .navbar .nav > li > a:active, 13 | .skin-blue .main-header .navbar .nav > li > a:focus, 14 | .skin-blue .main-header .navbar .nav .open > a, 15 | .skin-blue .main-header .navbar .nav .open > a:hover, 16 | .skin-blue .main-header .navbar .nav .open > a:focus, 17 | .skin-blue .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-blue .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-blue .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-blue .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-blue .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #367fa9; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-blue .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-blue .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-blue .main-header .navbar .dropdown-menu li a:hover { 42 | background: #367fa9; 43 | } 44 | } 45 | .skin-blue .main-header .logo { 46 | background-color: #367fa9; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-blue .main-header .logo:hover { 51 | background-color: #357ca5; 52 | } 53 | .skin-blue .main-header li.user-header { 54 | background-color: #3c8dbc; 55 | } 56 | .skin-blue .content-header { 57 | background: transparent; 58 | } 59 | .skin-blue .wrapper, 60 | .skin-blue .main-sidebar, 61 | .skin-blue .left-side { 62 | background-color: #222d32; 63 | } 64 | .skin-blue .user-panel > .info, 65 | .skin-blue .user-panel > .info > a { 66 | color: #fff; 67 | } 68 | .skin-blue .sidebar-menu > li.header { 69 | color: #4b646f; 70 | background: #1a2226; 71 | } 72 | .skin-blue .sidebar-menu > li > a { 73 | border-left: 3px solid transparent; 74 | } 75 | .skin-blue .sidebar-menu > li:hover > a, 76 | .skin-blue .sidebar-menu > li.active > a { 77 | color: #ffffff; 78 | background: #1e282c; 79 | border-left-color: #3c8dbc; 80 | } 81 | .skin-blue .sidebar-menu > li > .treeview-menu { 82 | margin: 0 1px; 83 | background: #2c3b41; 84 | } 85 | .skin-blue .sidebar a { 86 | color: #b8c7ce; 87 | } 88 | .skin-blue .sidebar a:hover { 89 | text-decoration: none; 90 | } 91 | .skin-blue .treeview-menu > li > a { 92 | color: #8aa4af; 93 | } 94 | .skin-blue .treeview-menu > li.active > a, 95 | .skin-blue .treeview-menu > li > a:hover { 96 | color: #ffffff; 97 | } 98 | .skin-blue .sidebar-form { 99 | border-radius: 3px; 100 | border: 1px solid #374850; 101 | margin: 10px 10px; 102 | } 103 | .skin-blue .sidebar-form input[type="text"], 104 | .skin-blue .sidebar-form .btn { 105 | box-shadow: none; 106 | background-color: #374850; 107 | border: 1px solid transparent; 108 | height: 35px; 109 | -webkit-transition: all 0.3s ease-in-out; 110 | -o-transition: all 0.3s ease-in-out; 111 | transition: all 0.3s ease-in-out; 112 | } 113 | .skin-blue .sidebar-form input[type="text"] { 114 | color: #666; 115 | border-top-left-radius: 2px; 116 | border-top-right-radius: 0; 117 | border-bottom-right-radius: 0; 118 | border-bottom-left-radius: 2px; 119 | } 120 | .skin-blue .sidebar-form input[type="text"]:focus, 121 | .skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 122 | background-color: #fff; 123 | color: #666; 124 | } 125 | .skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 126 | border-left-color: #fff; 127 | } 128 | .skin-blue .sidebar-form .btn { 129 | color: #999; 130 | border-top-left-radius: 0; 131 | border-top-right-radius: 2px; 132 | border-bottom-right-radius: 2px; 133 | border-bottom-left-radius: 0; 134 | } 135 | .skin-blue.layout-top-nav .main-header > .logo { 136 | background-color: #3c8dbc; 137 | color: #ffffff; 138 | border-bottom: 0 solid transparent; 139 | } 140 | .skin-blue.layout-top-nav .main-header > .logo:hover { 141 | background-color: #3b8ab8; 142 | } 143 | -------------------------------------------------------------------------------- /static/css/skins/skin-blue.min.css: -------------------------------------------------------------------------------- 1 | .skin-blue .main-header .navbar{background-color:#3c8dbc}.skin-blue .main-header .navbar .nav>li>a{color:#fff}.skin-blue .main-header .navbar .nav>li>a:hover,.skin-blue .main-header .navbar .nav>li>a:active,.skin-blue .main-header .navbar .nav>li>a:focus,.skin-blue .main-header .navbar .nav .open>a,.skin-blue .main-header .navbar .nav .open>a:hover,.skin-blue .main-header .navbar .nav .open>a:focus,.skin-blue .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-blue .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue .main-header .logo{background-color:#367fa9;color:#fff;border-bottom:0 solid transparent}.skin-blue .main-header .logo:hover{background-color:#357ca5}.skin-blue .main-header li.user-header{background-color:#3c8dbc}.skin-blue .content-header{background:transparent}.skin-blue .wrapper,.skin-blue .main-sidebar,.skin-blue .left-side{background-color:#222d32}.skin-blue .user-panel>.info,.skin-blue .user-panel>.info>a{color:#fff}.skin-blue .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-blue .sidebar-menu>li>a{border-left:3px solid transparent}.skin-blue .sidebar-menu>li:hover>a,.skin-blue .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#3c8dbc}.skin-blue .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-blue .sidebar a{color:#b8c7ce}.skin-blue .sidebar a:hover{text-decoration:none}.skin-blue .treeview-menu>li>a{color:#8aa4af}.skin-blue .treeview-menu>li.active>a,.skin-blue .treeview-menu>li>a:hover{color:#fff}.skin-blue .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-blue .sidebar-form input[type="text"],.skin-blue .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-blue .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-blue .sidebar-form input[type="text"]:focus,.skin-blue .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-blue.layout-top-nav .main-header>.logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue.layout-top-nav .main-header>.logo:hover{background-color:#3b8ab8} -------------------------------------------------------------------------------- /static/css/skins/skin-green-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Green 3 | * ----------- 4 | */ 5 | .skin-green-light .main-header .navbar { 6 | background-color: #00a65a; 7 | } 8 | .skin-green-light .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-green-light .main-header .navbar .nav > li > a:hover, 12 | .skin-green-light .main-header .navbar .nav > li > a:active, 13 | .skin-green-light .main-header .navbar .nav > li > a:focus, 14 | .skin-green-light .main-header .navbar .nav .open > a, 15 | .skin-green-light .main-header .navbar .nav .open > a:hover, 16 | .skin-green-light .main-header .navbar .nav .open > a:focus, 17 | .skin-green-light .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-green-light .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-green-light .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-green-light .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-green-light .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #008d4c; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-green-light .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-green-light .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-green-light .main-header .navbar .dropdown-menu li a:hover { 42 | background: #008d4c; 43 | } 44 | } 45 | .skin-green-light .main-header .logo { 46 | background-color: #00a65a; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-green-light .main-header .logo:hover { 51 | background-color: #00a157; 52 | } 53 | .skin-green-light .main-header li.user-header { 54 | background-color: #00a65a; 55 | } 56 | .skin-green-light .content-header { 57 | background: transparent; 58 | } 59 | .skin-green-light .wrapper, 60 | .skin-green-light .main-sidebar, 61 | .skin-green-light .left-side { 62 | background-color: #f9fafc; 63 | } 64 | .skin-green-light .content-wrapper, 65 | .skin-green-light .main-footer { 66 | border-left: 1px solid #d2d6de; 67 | } 68 | .skin-green-light .user-panel > .info, 69 | .skin-green-light .user-panel > .info > a { 70 | color: #444444; 71 | } 72 | .skin-green-light .sidebar-menu > li { 73 | -webkit-transition: border-left-color 0.3s ease; 74 | -o-transition: border-left-color 0.3s ease; 75 | transition: border-left-color 0.3s ease; 76 | } 77 | .skin-green-light .sidebar-menu > li.header { 78 | color: #848484; 79 | background: #f9fafc; 80 | } 81 | .skin-green-light .sidebar-menu > li > a { 82 | border-left: 3px solid transparent; 83 | font-weight: 600; 84 | } 85 | .skin-green-light .sidebar-menu > li:hover > a, 86 | .skin-green-light .sidebar-menu > li.active > a { 87 | color: #000000; 88 | background: #f4f4f5; 89 | } 90 | .skin-green-light .sidebar-menu > li.active { 91 | border-left-color: #00a65a; 92 | } 93 | .skin-green-light .sidebar-menu > li.active > a { 94 | font-weight: 600; 95 | } 96 | .skin-green-light .sidebar-menu > li > .treeview-menu { 97 | background: #f4f4f5; 98 | } 99 | .skin-green-light .sidebar a { 100 | color: #444444; 101 | } 102 | .skin-green-light .sidebar a:hover { 103 | text-decoration: none; 104 | } 105 | .skin-green-light .treeview-menu > li > a { 106 | color: #777777; 107 | } 108 | .skin-green-light .treeview-menu > li.active > a, 109 | .skin-green-light .treeview-menu > li > a:hover { 110 | color: #000000; 111 | } 112 | .skin-green-light .treeview-menu > li.active > a { 113 | font-weight: 600; 114 | } 115 | .skin-green-light .sidebar-form { 116 | border-radius: 3px; 117 | border: 1px solid #d2d6de; 118 | margin: 10px 10px; 119 | } 120 | .skin-green-light .sidebar-form input[type="text"], 121 | .skin-green-light .sidebar-form .btn { 122 | box-shadow: none; 123 | background-color: #fff; 124 | border: 1px solid transparent; 125 | height: 35px; 126 | -webkit-transition: all 0.3s ease-in-out; 127 | -o-transition: all 0.3s ease-in-out; 128 | transition: all 0.3s ease-in-out; 129 | } 130 | .skin-green-light .sidebar-form input[type="text"] { 131 | color: #666; 132 | border-top-left-radius: 2px; 133 | border-top-right-radius: 0; 134 | border-bottom-right-radius: 0; 135 | border-bottom-left-radius: 2px; 136 | } 137 | .skin-green-light .sidebar-form input[type="text"]:focus, 138 | .skin-green-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 139 | background-color: #fff; 140 | color: #666; 141 | } 142 | .skin-green-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 143 | border-left-color: #fff; 144 | } 145 | .skin-green-light .sidebar-form .btn { 146 | color: #999; 147 | border-top-left-radius: 0; 148 | border-top-right-radius: 2px; 149 | border-bottom-right-radius: 2px; 150 | border-bottom-left-radius: 0; 151 | } 152 | @media (min-width: 768px) { 153 | .skin-green-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { 154 | border-left: 1px solid #d2d6de; 155 | } 156 | } 157 | -------------------------------------------------------------------------------- /static/css/skins/skin-green-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-green-light .main-header .navbar{background-color:#00a65a}.skin-green-light .main-header .navbar .nav>li>a{color:#fff}.skin-green-light .main-header .navbar .nav>li>a:hover,.skin-green-light .main-header .navbar .nav>li>a:active,.skin-green-light .main-header .navbar .nav>li>a:focus,.skin-green-light .main-header .navbar .nav .open>a,.skin-green-light .main-header .navbar .nav .open>a:hover,.skin-green-light .main-header .navbar .nav .open>a:focus,.skin-green-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-green-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-green-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-green-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-green-light .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-green-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green-light .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green-light .main-header .logo{background-color:#00a65a;color:#fff;border-bottom:0 solid transparent}.skin-green-light .main-header .logo:hover{background-color:#00a157}.skin-green-light .main-header li.user-header{background-color:#00a65a}.skin-green-light .content-header{background:transparent}.skin-green-light .wrapper,.skin-green-light .main-sidebar,.skin-green-light .left-side{background-color:#f9fafc}.skin-green-light .content-wrapper,.skin-green-light .main-footer{border-left:1px solid #d2d6de}.skin-green-light .user-panel>.info,.skin-green-light .user-panel>.info>a{color:#444}.skin-green-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-green-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-green-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-green-light .sidebar-menu>li:hover>a,.skin-green-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-green-light .sidebar-menu>li.active{border-left-color:#00a65a}.skin-green-light .sidebar-menu>li.active>a{font-weight:600}.skin-green-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-green-light .sidebar a{color:#444}.skin-green-light .sidebar a:hover{text-decoration:none}.skin-green-light .treeview-menu>li>a{color:#777}.skin-green-light .treeview-menu>li.active>a,.skin-green-light .treeview-menu>li>a:hover{color:#000}.skin-green-light .treeview-menu>li.active>a{font-weight:600}.skin-green-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-green-light .sidebar-form input[type="text"],.skin-green-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-green-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-green-light .sidebar-form input[type="text"]:focus,.skin-green-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-green-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} -------------------------------------------------------------------------------- /static/css/skins/skin-green.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Green 3 | * ----------- 4 | */ 5 | .skin-green .main-header .navbar { 6 | background-color: #00a65a; 7 | } 8 | .skin-green .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-green .main-header .navbar .nav > li > a:hover, 12 | .skin-green .main-header .navbar .nav > li > a:active, 13 | .skin-green .main-header .navbar .nav > li > a:focus, 14 | .skin-green .main-header .navbar .nav .open > a, 15 | .skin-green .main-header .navbar .nav .open > a:hover, 16 | .skin-green .main-header .navbar .nav .open > a:focus, 17 | .skin-green .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-green .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-green .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-green .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-green .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #008d4c; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-green .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-green .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-green .main-header .navbar .dropdown-menu li a:hover { 42 | background: #008d4c; 43 | } 44 | } 45 | .skin-green .main-header .logo { 46 | background-color: #008d4c; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-green .main-header .logo:hover { 51 | background-color: #008749; 52 | } 53 | .skin-green .main-header li.user-header { 54 | background-color: #00a65a; 55 | } 56 | .skin-green .content-header { 57 | background: transparent; 58 | } 59 | .skin-green .wrapper, 60 | .skin-green .main-sidebar, 61 | .skin-green .left-side { 62 | background-color: #222d32; 63 | } 64 | .skin-green .user-panel > .info, 65 | .skin-green .user-panel > .info > a { 66 | color: #fff; 67 | } 68 | .skin-green .sidebar-menu > li.header { 69 | color: #4b646f; 70 | background: #1a2226; 71 | } 72 | .skin-green .sidebar-menu > li > a { 73 | border-left: 3px solid transparent; 74 | } 75 | .skin-green .sidebar-menu > li:hover > a, 76 | .skin-green .sidebar-menu > li.active > a { 77 | color: #ffffff; 78 | background: #1e282c; 79 | border-left-color: #00a65a; 80 | } 81 | .skin-green .sidebar-menu > li > .treeview-menu { 82 | margin: 0 1px; 83 | background: #2c3b41; 84 | } 85 | .skin-green .sidebar a { 86 | color: #b8c7ce; 87 | } 88 | .skin-green .sidebar a:hover { 89 | text-decoration: none; 90 | } 91 | .skin-green .treeview-menu > li > a { 92 | color: #8aa4af; 93 | } 94 | .skin-green .treeview-menu > li.active > a, 95 | .skin-green .treeview-menu > li > a:hover { 96 | color: #ffffff; 97 | } 98 | .skin-green .sidebar-form { 99 | border-radius: 3px; 100 | border: 1px solid #374850; 101 | margin: 10px 10px; 102 | } 103 | .skin-green .sidebar-form input[type="text"], 104 | .skin-green .sidebar-form .btn { 105 | box-shadow: none; 106 | background-color: #374850; 107 | border: 1px solid transparent; 108 | height: 35px; 109 | -webkit-transition: all 0.3s ease-in-out; 110 | -o-transition: all 0.3s ease-in-out; 111 | transition: all 0.3s ease-in-out; 112 | } 113 | .skin-green .sidebar-form input[type="text"] { 114 | color: #666; 115 | border-top-left-radius: 2px; 116 | border-top-right-radius: 0; 117 | border-bottom-right-radius: 0; 118 | border-bottom-left-radius: 2px; 119 | } 120 | .skin-green .sidebar-form input[type="text"]:focus, 121 | .skin-green .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 122 | background-color: #fff; 123 | color: #666; 124 | } 125 | .skin-green .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 126 | border-left-color: #fff; 127 | } 128 | .skin-green .sidebar-form .btn { 129 | color: #999; 130 | border-top-left-radius: 0; 131 | border-top-right-radius: 2px; 132 | border-bottom-right-radius: 2px; 133 | border-bottom-left-radius: 0; 134 | } 135 | -------------------------------------------------------------------------------- /static/css/skins/skin-green.min.css: -------------------------------------------------------------------------------- 1 | .skin-green .main-header .navbar{background-color:#00a65a}.skin-green .main-header .navbar .nav>li>a{color:#fff}.skin-green .main-header .navbar .nav>li>a:hover,.skin-green .main-header .navbar .nav>li>a:active,.skin-green .main-header .navbar .nav>li>a:focus,.skin-green .main-header .navbar .nav .open>a,.skin-green .main-header .navbar .nav .open>a:hover,.skin-green .main-header .navbar .nav .open>a:focus,.skin-green .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-green .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green .main-header .logo{background-color:#008d4c;color:#fff;border-bottom:0 solid transparent}.skin-green .main-header .logo:hover{background-color:#008749}.skin-green .main-header li.user-header{background-color:#00a65a}.skin-green .content-header{background:transparent}.skin-green .wrapper,.skin-green .main-sidebar,.skin-green .left-side{background-color:#222d32}.skin-green .user-panel>.info,.skin-green .user-panel>.info>a{color:#fff}.skin-green .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-green .sidebar-menu>li>a{border-left:3px solid transparent}.skin-green .sidebar-menu>li:hover>a,.skin-green .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#00a65a}.skin-green .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-green .sidebar a{color:#b8c7ce}.skin-green .sidebar a:hover{text-decoration:none}.skin-green .treeview-menu>li>a{color:#8aa4af}.skin-green .treeview-menu>li.active>a,.skin-green .treeview-menu>li>a:hover{color:#fff}.skin-green .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-green .sidebar-form input[type="text"],.skin-green .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-green .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-green .sidebar-form input[type="text"]:focus,.skin-green .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0} -------------------------------------------------------------------------------- /static/css/skins/skin-purple-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Purple 3 | * ------------ 4 | */ 5 | .skin-purple-light .main-header .navbar { 6 | background-color: #605ca8; 7 | } 8 | .skin-purple-light .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-purple-light .main-header .navbar .nav > li > a:hover, 12 | .skin-purple-light .main-header .navbar .nav > li > a:active, 13 | .skin-purple-light .main-header .navbar .nav > li > a:focus, 14 | .skin-purple-light .main-header .navbar .nav .open > a, 15 | .skin-purple-light .main-header .navbar .nav .open > a:hover, 16 | .skin-purple-light .main-header .navbar .nav .open > a:focus, 17 | .skin-purple-light .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-purple-light .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-purple-light .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-purple-light .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-purple-light .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #555299; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-purple-light .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-purple-light .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-purple-light .main-header .navbar .dropdown-menu li a:hover { 42 | background: #555299; 43 | } 44 | } 45 | .skin-purple-light .main-header .logo { 46 | background-color: #605ca8; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-purple-light .main-header .logo:hover { 51 | background-color: #5d59a6; 52 | } 53 | .skin-purple-light .main-header li.user-header { 54 | background-color: #605ca8; 55 | } 56 | .skin-purple-light .content-header { 57 | background: transparent; 58 | } 59 | .skin-purple-light .wrapper, 60 | .skin-purple-light .main-sidebar, 61 | .skin-purple-light .left-side { 62 | background-color: #f9fafc; 63 | } 64 | .skin-purple-light .content-wrapper, 65 | .skin-purple-light .main-footer { 66 | border-left: 1px solid #d2d6de; 67 | } 68 | .skin-purple-light .user-panel > .info, 69 | .skin-purple-light .user-panel > .info > a { 70 | color: #444444; 71 | } 72 | .skin-purple-light .sidebar-menu > li { 73 | -webkit-transition: border-left-color 0.3s ease; 74 | -o-transition: border-left-color 0.3s ease; 75 | transition: border-left-color 0.3s ease; 76 | } 77 | .skin-purple-light .sidebar-menu > li.header { 78 | color: #848484; 79 | background: #f9fafc; 80 | } 81 | .skin-purple-light .sidebar-menu > li > a { 82 | border-left: 3px solid transparent; 83 | font-weight: 600; 84 | } 85 | .skin-purple-light .sidebar-menu > li:hover > a, 86 | .skin-purple-light .sidebar-menu > li.active > a { 87 | color: #000000; 88 | background: #f4f4f5; 89 | } 90 | .skin-purple-light .sidebar-menu > li.active { 91 | border-left-color: #605ca8; 92 | } 93 | .skin-purple-light .sidebar-menu > li.active > a { 94 | font-weight: 600; 95 | } 96 | .skin-purple-light .sidebar-menu > li > .treeview-menu { 97 | background: #f4f4f5; 98 | } 99 | .skin-purple-light .sidebar a { 100 | color: #444444; 101 | } 102 | .skin-purple-light .sidebar a:hover { 103 | text-decoration: none; 104 | } 105 | .skin-purple-light .treeview-menu > li > a { 106 | color: #777777; 107 | } 108 | .skin-purple-light .treeview-menu > li.active > a, 109 | .skin-purple-light .treeview-menu > li > a:hover { 110 | color: #000000; 111 | } 112 | .skin-purple-light .treeview-menu > li.active > a { 113 | font-weight: 600; 114 | } 115 | .skin-purple-light .sidebar-form { 116 | border-radius: 3px; 117 | border: 1px solid #d2d6de; 118 | margin: 10px 10px; 119 | } 120 | .skin-purple-light .sidebar-form input[type="text"], 121 | .skin-purple-light .sidebar-form .btn { 122 | box-shadow: none; 123 | background-color: #fff; 124 | border: 1px solid transparent; 125 | height: 35px; 126 | -webkit-transition: all 0.3s ease-in-out; 127 | -o-transition: all 0.3s ease-in-out; 128 | transition: all 0.3s ease-in-out; 129 | } 130 | .skin-purple-light .sidebar-form input[type="text"] { 131 | color: #666; 132 | border-top-left-radius: 2px; 133 | border-top-right-radius: 0; 134 | border-bottom-right-radius: 0; 135 | border-bottom-left-radius: 2px; 136 | } 137 | .skin-purple-light .sidebar-form input[type="text"]:focus, 138 | .skin-purple-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 139 | background-color: #fff; 140 | color: #666; 141 | } 142 | .skin-purple-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 143 | border-left-color: #fff; 144 | } 145 | .skin-purple-light .sidebar-form .btn { 146 | color: #999; 147 | border-top-left-radius: 0; 148 | border-top-right-radius: 2px; 149 | border-bottom-right-radius: 2px; 150 | border-bottom-left-radius: 0; 151 | } 152 | @media (min-width: 768px) { 153 | .skin-purple-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { 154 | border-left: 1px solid #d2d6de; 155 | } 156 | } 157 | -------------------------------------------------------------------------------- /static/css/skins/skin-purple-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-purple-light .main-header .navbar{background-color:#605ca8}.skin-purple-light .main-header .navbar .nav>li>a{color:#fff}.skin-purple-light .main-header .navbar .nav>li>a:hover,.skin-purple-light .main-header .navbar .nav>li>a:active,.skin-purple-light .main-header .navbar .nav>li>a:focus,.skin-purple-light .main-header .navbar .nav .open>a,.skin-purple-light .main-header .navbar .nav .open>a:hover,.skin-purple-light .main-header .navbar .nav .open>a:focus,.skin-purple-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-purple-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-purple-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple-light .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-purple-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple-light .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple-light .main-header .logo{background-color:#605ca8;color:#fff;border-bottom:0 solid transparent}.skin-purple-light .main-header .logo:hover{background-color:#5d59a6}.skin-purple-light .main-header li.user-header{background-color:#605ca8}.skin-purple-light .content-header{background:transparent}.skin-purple-light .wrapper,.skin-purple-light .main-sidebar,.skin-purple-light .left-side{background-color:#f9fafc}.skin-purple-light .content-wrapper,.skin-purple-light .main-footer{border-left:1px solid #d2d6de}.skin-purple-light .user-panel>.info,.skin-purple-light .user-panel>.info>a{color:#444}.skin-purple-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-purple-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-purple-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-purple-light .sidebar-menu>li:hover>a,.skin-purple-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-purple-light .sidebar-menu>li.active{border-left-color:#605ca8}.skin-purple-light .sidebar-menu>li.active>a{font-weight:600}.skin-purple-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-purple-light .sidebar a{color:#444}.skin-purple-light .sidebar a:hover{text-decoration:none}.skin-purple-light .treeview-menu>li>a{color:#777}.skin-purple-light .treeview-menu>li.active>a,.skin-purple-light .treeview-menu>li>a:hover{color:#000}.skin-purple-light .treeview-menu>li.active>a{font-weight:600}.skin-purple-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-purple-light .sidebar-form input[type="text"],.skin-purple-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-purple-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-purple-light .sidebar-form input[type="text"]:focus,.skin-purple-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-purple-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} -------------------------------------------------------------------------------- /static/css/skins/skin-purple.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Purple 3 | * ------------ 4 | */ 5 | .skin-purple .main-header .navbar { 6 | background-color: #605ca8; 7 | } 8 | .skin-purple .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-purple .main-header .navbar .nav > li > a:hover, 12 | .skin-purple .main-header .navbar .nav > li > a:active, 13 | .skin-purple .main-header .navbar .nav > li > a:focus, 14 | .skin-purple .main-header .navbar .nav .open > a, 15 | .skin-purple .main-header .navbar .nav .open > a:hover, 16 | .skin-purple .main-header .navbar .nav .open > a:focus, 17 | .skin-purple .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-purple .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-purple .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-purple .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-purple .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #555299; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-purple .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-purple .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-purple .main-header .navbar .dropdown-menu li a:hover { 42 | background: #555299; 43 | } 44 | } 45 | .skin-purple .main-header .logo { 46 | background-color: #555299; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-purple .main-header .logo:hover { 51 | background-color: #545096; 52 | } 53 | .skin-purple .main-header li.user-header { 54 | background-color: #605ca8; 55 | } 56 | .skin-purple .content-header { 57 | background: transparent; 58 | } 59 | .skin-purple .wrapper, 60 | .skin-purple .main-sidebar, 61 | .skin-purple .left-side { 62 | background-color: #222d32; 63 | } 64 | .skin-purple .user-panel > .info, 65 | .skin-purple .user-panel > .info > a { 66 | color: #fff; 67 | } 68 | .skin-purple .sidebar-menu > li.header { 69 | color: #4b646f; 70 | background: #1a2226; 71 | } 72 | .skin-purple .sidebar-menu > li > a { 73 | border-left: 3px solid transparent; 74 | } 75 | .skin-purple .sidebar-menu > li:hover > a, 76 | .skin-purple .sidebar-menu > li.active > a { 77 | color: #ffffff; 78 | background: #1e282c; 79 | border-left-color: #605ca8; 80 | } 81 | .skin-purple .sidebar-menu > li > .treeview-menu { 82 | margin: 0 1px; 83 | background: #2c3b41; 84 | } 85 | .skin-purple .sidebar a { 86 | color: #b8c7ce; 87 | } 88 | .skin-purple .sidebar a:hover { 89 | text-decoration: none; 90 | } 91 | .skin-purple .treeview-menu > li > a { 92 | color: #8aa4af; 93 | } 94 | .skin-purple .treeview-menu > li.active > a, 95 | .skin-purple .treeview-menu > li > a:hover { 96 | color: #ffffff; 97 | } 98 | .skin-purple .sidebar-form { 99 | border-radius: 3px; 100 | border: 1px solid #374850; 101 | margin: 10px 10px; 102 | } 103 | .skin-purple .sidebar-form input[type="text"], 104 | .skin-purple .sidebar-form .btn { 105 | box-shadow: none; 106 | background-color: #374850; 107 | border: 1px solid transparent; 108 | height: 35px; 109 | -webkit-transition: all 0.3s ease-in-out; 110 | -o-transition: all 0.3s ease-in-out; 111 | transition: all 0.3s ease-in-out; 112 | } 113 | .skin-purple .sidebar-form input[type="text"] { 114 | color: #666; 115 | border-top-left-radius: 2px; 116 | border-top-right-radius: 0; 117 | border-bottom-right-radius: 0; 118 | border-bottom-left-radius: 2px; 119 | } 120 | .skin-purple .sidebar-form input[type="text"]:focus, 121 | .skin-purple .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 122 | background-color: #fff; 123 | color: #666; 124 | } 125 | .skin-purple .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 126 | border-left-color: #fff; 127 | } 128 | .skin-purple .sidebar-form .btn { 129 | color: #999; 130 | border-top-left-radius: 0; 131 | border-top-right-radius: 2px; 132 | border-bottom-right-radius: 2px; 133 | border-bottom-left-radius: 0; 134 | } 135 | -------------------------------------------------------------------------------- /static/css/skins/skin-purple.min.css: -------------------------------------------------------------------------------- 1 | .skin-purple .main-header .navbar{background-color:#605ca8}.skin-purple .main-header .navbar .nav>li>a{color:#fff}.skin-purple .main-header .navbar .nav>li>a:hover,.skin-purple .main-header .navbar .nav>li>a:active,.skin-purple .main-header .navbar .nav>li>a:focus,.skin-purple .main-header .navbar .nav .open>a,.skin-purple .main-header .navbar .nav .open>a:hover,.skin-purple .main-header .navbar .nav .open>a:focus,.skin-purple .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-purple .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple .main-header .logo{background-color:#555299;color:#fff;border-bottom:0 solid transparent}.skin-purple .main-header .logo:hover{background-color:#545096}.skin-purple .main-header li.user-header{background-color:#605ca8}.skin-purple .content-header{background:transparent}.skin-purple .wrapper,.skin-purple .main-sidebar,.skin-purple .left-side{background-color:#222d32}.skin-purple .user-panel>.info,.skin-purple .user-panel>.info>a{color:#fff}.skin-purple .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-purple .sidebar-menu>li>a{border-left:3px solid transparent}.skin-purple .sidebar-menu>li:hover>a,.skin-purple .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#605ca8}.skin-purple .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-purple .sidebar a{color:#b8c7ce}.skin-purple .sidebar a:hover{text-decoration:none}.skin-purple .treeview-menu>li>a{color:#8aa4af}.skin-purple .treeview-menu>li.active>a,.skin-purple .treeview-menu>li>a:hover{color:#fff}.skin-purple .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-purple .sidebar-form input[type="text"],.skin-purple .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-purple .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-purple .sidebar-form input[type="text"]:focus,.skin-purple .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0} -------------------------------------------------------------------------------- /static/css/skins/skin-red-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Red 3 | * --------- 4 | */ 5 | .skin-red-light .main-header .navbar { 6 | background-color: #dd4b39; 7 | } 8 | .skin-red-light .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-red-light .main-header .navbar .nav > li > a:hover, 12 | .skin-red-light .main-header .navbar .nav > li > a:active, 13 | .skin-red-light .main-header .navbar .nav > li > a:focus, 14 | .skin-red-light .main-header .navbar .nav .open > a, 15 | .skin-red-light .main-header .navbar .nav .open > a:hover, 16 | .skin-red-light .main-header .navbar .nav .open > a:focus, 17 | .skin-red-light .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-red-light .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-red-light .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-red-light .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-red-light .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #d73925; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-red-light .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-red-light .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-red-light .main-header .navbar .dropdown-menu li a:hover { 42 | background: #d73925; 43 | } 44 | } 45 | .skin-red-light .main-header .logo { 46 | background-color: #dd4b39; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-red-light .main-header .logo:hover { 51 | background-color: #dc4735; 52 | } 53 | .skin-red-light .main-header li.user-header { 54 | background-color: #dd4b39; 55 | } 56 | .skin-red-light .content-header { 57 | background: transparent; 58 | } 59 | .skin-red-light .wrapper, 60 | .skin-red-light .main-sidebar, 61 | .skin-red-light .left-side { 62 | background-color: #f9fafc; 63 | } 64 | .skin-red-light .content-wrapper, 65 | .skin-red-light .main-footer { 66 | border-left: 1px solid #d2d6de; 67 | } 68 | .skin-red-light .user-panel > .info, 69 | .skin-red-light .user-panel > .info > a { 70 | color: #444444; 71 | } 72 | .skin-red-light .sidebar-menu > li { 73 | -webkit-transition: border-left-color 0.3s ease; 74 | -o-transition: border-left-color 0.3s ease; 75 | transition: border-left-color 0.3s ease; 76 | } 77 | .skin-red-light .sidebar-menu > li.header { 78 | color: #848484; 79 | background: #f9fafc; 80 | } 81 | .skin-red-light .sidebar-menu > li > a { 82 | border-left: 3px solid transparent; 83 | font-weight: 600; 84 | } 85 | .skin-red-light .sidebar-menu > li:hover > a, 86 | .skin-red-light .sidebar-menu > li.active > a { 87 | color: #000000; 88 | background: #f4f4f5; 89 | } 90 | .skin-red-light .sidebar-menu > li.active { 91 | border-left-color: #dd4b39; 92 | } 93 | .skin-red-light .sidebar-menu > li.active > a { 94 | font-weight: 600; 95 | } 96 | .skin-red-light .sidebar-menu > li > .treeview-menu { 97 | background: #f4f4f5; 98 | } 99 | .skin-red-light .sidebar a { 100 | color: #444444; 101 | } 102 | .skin-red-light .sidebar a:hover { 103 | text-decoration: none; 104 | } 105 | .skin-red-light .treeview-menu > li > a { 106 | color: #777777; 107 | } 108 | .skin-red-light .treeview-menu > li.active > a, 109 | .skin-red-light .treeview-menu > li > a:hover { 110 | color: #000000; 111 | } 112 | .skin-red-light .treeview-menu > li.active > a { 113 | font-weight: 600; 114 | } 115 | .skin-red-light .sidebar-form { 116 | border-radius: 3px; 117 | border: 1px solid #d2d6de; 118 | margin: 10px 10px; 119 | } 120 | .skin-red-light .sidebar-form input[type="text"], 121 | .skin-red-light .sidebar-form .btn { 122 | box-shadow: none; 123 | background-color: #fff; 124 | border: 1px solid transparent; 125 | height: 35px; 126 | -webkit-transition: all 0.3s ease-in-out; 127 | -o-transition: all 0.3s ease-in-out; 128 | transition: all 0.3s ease-in-out; 129 | } 130 | .skin-red-light .sidebar-form input[type="text"] { 131 | color: #666; 132 | border-top-left-radius: 2px; 133 | border-top-right-radius: 0; 134 | border-bottom-right-radius: 0; 135 | border-bottom-left-radius: 2px; 136 | } 137 | .skin-red-light .sidebar-form input[type="text"]:focus, 138 | .skin-red-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 139 | background-color: #fff; 140 | color: #666; 141 | } 142 | .skin-red-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 143 | border-left-color: #fff; 144 | } 145 | .skin-red-light .sidebar-form .btn { 146 | color: #999; 147 | border-top-left-radius: 0; 148 | border-top-right-radius: 2px; 149 | border-bottom-right-radius: 2px; 150 | border-bottom-left-radius: 0; 151 | } 152 | @media (min-width: 768px) { 153 | .skin-red-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { 154 | border-left: 1px solid #d2d6de; 155 | } 156 | } 157 | -------------------------------------------------------------------------------- /static/css/skins/skin-red-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-red-light .main-header .navbar{background-color:#dd4b39}.skin-red-light .main-header .navbar .nav>li>a{color:#fff}.skin-red-light .main-header .navbar .nav>li>a:hover,.skin-red-light .main-header .navbar .nav>li>a:active,.skin-red-light .main-header .navbar .nav>li>a:focus,.skin-red-light .main-header .navbar .nav .open>a,.skin-red-light .main-header .navbar .nav .open>a:hover,.skin-red-light .main-header .navbar .nav .open>a:focus,.skin-red-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-red-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-red-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-red-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-red-light .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-red-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red-light .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red-light .main-header .logo{background-color:#dd4b39;color:#fff;border-bottom:0 solid transparent}.skin-red-light .main-header .logo:hover{background-color:#dc4735}.skin-red-light .main-header li.user-header{background-color:#dd4b39}.skin-red-light .content-header{background:transparent}.skin-red-light .wrapper,.skin-red-light .main-sidebar,.skin-red-light .left-side{background-color:#f9fafc}.skin-red-light .content-wrapper,.skin-red-light .main-footer{border-left:1px solid #d2d6de}.skin-red-light .user-panel>.info,.skin-red-light .user-panel>.info>a{color:#444}.skin-red-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-red-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-red-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-red-light .sidebar-menu>li:hover>a,.skin-red-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-red-light .sidebar-menu>li.active{border-left-color:#dd4b39}.skin-red-light .sidebar-menu>li.active>a{font-weight:600}.skin-red-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-red-light .sidebar a{color:#444}.skin-red-light .sidebar a:hover{text-decoration:none}.skin-red-light .treeview-menu>li>a{color:#777}.skin-red-light .treeview-menu>li.active>a,.skin-red-light .treeview-menu>li>a:hover{color:#000}.skin-red-light .treeview-menu>li.active>a{font-weight:600}.skin-red-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-red-light .sidebar-form input[type="text"],.skin-red-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-red-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-red-light .sidebar-form input[type="text"]:focus,.skin-red-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-red-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} -------------------------------------------------------------------------------- /static/css/skins/skin-red.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Red 3 | * --------- 4 | */ 5 | .skin-red .main-header .navbar { 6 | background-color: #dd4b39; 7 | } 8 | .skin-red .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-red .main-header .navbar .nav > li > a:hover, 12 | .skin-red .main-header .navbar .nav > li > a:active, 13 | .skin-red .main-header .navbar .nav > li > a:focus, 14 | .skin-red .main-header .navbar .nav .open > a, 15 | .skin-red .main-header .navbar .nav .open > a:hover, 16 | .skin-red .main-header .navbar .nav .open > a:focus, 17 | .skin-red .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-red .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-red .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-red .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-red .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #d73925; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-red .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-red .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-red .main-header .navbar .dropdown-menu li a:hover { 42 | background: #d73925; 43 | } 44 | } 45 | .skin-red .main-header .logo { 46 | background-color: #d73925; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-red .main-header .logo:hover { 51 | background-color: #d33724; 52 | } 53 | .skin-red .main-header li.user-header { 54 | background-color: #dd4b39; 55 | } 56 | .skin-red .content-header { 57 | background: transparent; 58 | } 59 | .skin-red .wrapper, 60 | .skin-red .main-sidebar, 61 | .skin-red .left-side { 62 | background-color: #222d32; 63 | } 64 | .skin-red .user-panel > .info, 65 | .skin-red .user-panel > .info > a { 66 | color: #fff; 67 | } 68 | .skin-red .sidebar-menu > li.header { 69 | color: #4b646f; 70 | background: #1a2226; 71 | } 72 | .skin-red .sidebar-menu > li > a { 73 | border-left: 3px solid transparent; 74 | } 75 | .skin-red .sidebar-menu > li:hover > a, 76 | .skin-red .sidebar-menu > li.active > a { 77 | color: #ffffff; 78 | background: #1e282c; 79 | border-left-color: #dd4b39; 80 | } 81 | .skin-red .sidebar-menu > li > .treeview-menu { 82 | margin: 0 1px; 83 | background: #2c3b41; 84 | } 85 | .skin-red .sidebar a { 86 | color: #b8c7ce; 87 | } 88 | .skin-red .sidebar a:hover { 89 | text-decoration: none; 90 | } 91 | .skin-red .treeview-menu > li > a { 92 | color: #8aa4af; 93 | } 94 | .skin-red .treeview-menu > li.active > a, 95 | .skin-red .treeview-menu > li > a:hover { 96 | color: #ffffff; 97 | } 98 | .skin-red .sidebar-form { 99 | border-radius: 3px; 100 | border: 1px solid #374850; 101 | margin: 10px 10px; 102 | } 103 | .skin-red .sidebar-form input[type="text"], 104 | .skin-red .sidebar-form .btn { 105 | box-shadow: none; 106 | background-color: #374850; 107 | border: 1px solid transparent; 108 | height: 35px; 109 | -webkit-transition: all 0.3s ease-in-out; 110 | -o-transition: all 0.3s ease-in-out; 111 | transition: all 0.3s ease-in-out; 112 | } 113 | .skin-red .sidebar-form input[type="text"] { 114 | color: #666; 115 | border-top-left-radius: 2px; 116 | border-top-right-radius: 0; 117 | border-bottom-right-radius: 0; 118 | border-bottom-left-radius: 2px; 119 | } 120 | .skin-red .sidebar-form input[type="text"]:focus, 121 | .skin-red .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 122 | background-color: #fff; 123 | color: #666; 124 | } 125 | .skin-red .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 126 | border-left-color: #fff; 127 | } 128 | .skin-red .sidebar-form .btn { 129 | color: #999; 130 | border-top-left-radius: 0; 131 | border-top-right-radius: 2px; 132 | border-bottom-right-radius: 2px; 133 | border-bottom-left-radius: 0; 134 | } 135 | -------------------------------------------------------------------------------- /static/css/skins/skin-red.min.css: -------------------------------------------------------------------------------- 1 | .skin-red .main-header .navbar{background-color:#dd4b39}.skin-red .main-header .navbar .nav>li>a{color:#fff}.skin-red .main-header .navbar .nav>li>a:hover,.skin-red .main-header .navbar .nav>li>a:active,.skin-red .main-header .navbar .nav>li>a:focus,.skin-red .main-header .navbar .nav .open>a,.skin-red .main-header .navbar .nav .open>a:hover,.skin-red .main-header .navbar .nav .open>a:focus,.skin-red .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-red .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red .main-header .logo{background-color:#d73925;color:#fff;border-bottom:0 solid transparent}.skin-red .main-header .logo:hover{background-color:#d33724}.skin-red .main-header li.user-header{background-color:#dd4b39}.skin-red .content-header{background:transparent}.skin-red .wrapper,.skin-red .main-sidebar,.skin-red .left-side{background-color:#222d32}.skin-red .user-panel>.info,.skin-red .user-panel>.info>a{color:#fff}.skin-red .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-red .sidebar-menu>li>a{border-left:3px solid transparent}.skin-red .sidebar-menu>li:hover>a,.skin-red .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#dd4b39}.skin-red .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-red .sidebar a{color:#b8c7ce}.skin-red .sidebar a:hover{text-decoration:none}.skin-red .treeview-menu>li>a{color:#8aa4af}.skin-red .treeview-menu>li.active>a,.skin-red .treeview-menu>li>a:hover{color:#fff}.skin-red .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-red .sidebar-form input[type="text"],.skin-red .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-red .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-red .sidebar-form input[type="text"]:focus,.skin-red .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0} -------------------------------------------------------------------------------- /static/css/skins/skin-yellow-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Yellow 3 | * ------------ 4 | */ 5 | .skin-yellow-light .main-header .navbar { 6 | background-color: #f39c12; 7 | } 8 | .skin-yellow-light .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-yellow-light .main-header .navbar .nav > li > a:hover, 12 | .skin-yellow-light .main-header .navbar .nav > li > a:active, 13 | .skin-yellow-light .main-header .navbar .nav > li > a:focus, 14 | .skin-yellow-light .main-header .navbar .nav .open > a, 15 | .skin-yellow-light .main-header .navbar .nav .open > a:hover, 16 | .skin-yellow-light .main-header .navbar .nav .open > a:focus, 17 | .skin-yellow-light .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-yellow-light .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-yellow-light .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-yellow-light .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-yellow-light .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #e08e0b; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-yellow-light .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-yellow-light .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-yellow-light .main-header .navbar .dropdown-menu li a:hover { 42 | background: #e08e0b; 43 | } 44 | } 45 | .skin-yellow-light .main-header .logo { 46 | background-color: #f39c12; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-yellow-light .main-header .logo:hover { 51 | background-color: #f39a0d; 52 | } 53 | .skin-yellow-light .main-header li.user-header { 54 | background-color: #f39c12; 55 | } 56 | .skin-yellow-light .content-header { 57 | background: transparent; 58 | } 59 | .skin-yellow-light .wrapper, 60 | .skin-yellow-light .main-sidebar, 61 | .skin-yellow-light .left-side { 62 | background-color: #f9fafc; 63 | } 64 | .skin-yellow-light .content-wrapper, 65 | .skin-yellow-light .main-footer { 66 | border-left: 1px solid #d2d6de; 67 | } 68 | .skin-yellow-light .user-panel > .info, 69 | .skin-yellow-light .user-panel > .info > a { 70 | color: #444444; 71 | } 72 | .skin-yellow-light .sidebar-menu > li { 73 | -webkit-transition: border-left-color 0.3s ease; 74 | -o-transition: border-left-color 0.3s ease; 75 | transition: border-left-color 0.3s ease; 76 | } 77 | .skin-yellow-light .sidebar-menu > li.header { 78 | color: #848484; 79 | background: #f9fafc; 80 | } 81 | .skin-yellow-light .sidebar-menu > li > a { 82 | border-left: 3px solid transparent; 83 | font-weight: 600; 84 | } 85 | .skin-yellow-light .sidebar-menu > li:hover > a, 86 | .skin-yellow-light .sidebar-menu > li.active > a { 87 | color: #000000; 88 | background: #f4f4f5; 89 | } 90 | .skin-yellow-light .sidebar-menu > li.active { 91 | border-left-color: #f39c12; 92 | } 93 | .skin-yellow-light .sidebar-menu > li.active > a { 94 | font-weight: 600; 95 | } 96 | .skin-yellow-light .sidebar-menu > li > .treeview-menu { 97 | background: #f4f4f5; 98 | } 99 | .skin-yellow-light .sidebar a { 100 | color: #444444; 101 | } 102 | .skin-yellow-light .sidebar a:hover { 103 | text-decoration: none; 104 | } 105 | .skin-yellow-light .treeview-menu > li > a { 106 | color: #777777; 107 | } 108 | .skin-yellow-light .treeview-menu > li.active > a, 109 | .skin-yellow-light .treeview-menu > li > a:hover { 110 | color: #000000; 111 | } 112 | .skin-yellow-light .treeview-menu > li.active > a { 113 | font-weight: 600; 114 | } 115 | .skin-yellow-light .sidebar-form { 116 | border-radius: 3px; 117 | border: 1px solid #d2d6de; 118 | margin: 10px 10px; 119 | } 120 | .skin-yellow-light .sidebar-form input[type="text"], 121 | .skin-yellow-light .sidebar-form .btn { 122 | box-shadow: none; 123 | background-color: #fff; 124 | border: 1px solid transparent; 125 | height: 35px; 126 | -webkit-transition: all 0.3s ease-in-out; 127 | -o-transition: all 0.3s ease-in-out; 128 | transition: all 0.3s ease-in-out; 129 | } 130 | .skin-yellow-light .sidebar-form input[type="text"] { 131 | color: #666; 132 | border-top-left-radius: 2px; 133 | border-top-right-radius: 0; 134 | border-bottom-right-radius: 0; 135 | border-bottom-left-radius: 2px; 136 | } 137 | .skin-yellow-light .sidebar-form input[type="text"]:focus, 138 | .skin-yellow-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 139 | background-color: #fff; 140 | color: #666; 141 | } 142 | .skin-yellow-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 143 | border-left-color: #fff; 144 | } 145 | .skin-yellow-light .sidebar-form .btn { 146 | color: #999; 147 | border-top-left-radius: 0; 148 | border-top-right-radius: 2px; 149 | border-bottom-right-radius: 2px; 150 | border-bottom-left-radius: 0; 151 | } 152 | @media (min-width: 768px) { 153 | .skin-yellow-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { 154 | border-left: 1px solid #d2d6de; 155 | } 156 | } 157 | -------------------------------------------------------------------------------- /static/css/skins/skin-yellow-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-yellow-light .main-header .navbar{background-color:#f39c12}.skin-yellow-light .main-header .navbar .nav>li>a{color:#fff}.skin-yellow-light .main-header .navbar .nav>li>a:hover,.skin-yellow-light .main-header .navbar .nav>li>a:active,.skin-yellow-light .main-header .navbar .nav>li>a:focus,.skin-yellow-light .main-header .navbar .nav .open>a,.skin-yellow-light .main-header .navbar .nav .open>a:hover,.skin-yellow-light .main-header .navbar .nav .open>a:focus,.skin-yellow-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-yellow-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-yellow-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-yellow-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow-light .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow-light .main-header .logo{background-color:#f39c12;color:#fff;border-bottom:0 solid transparent}.skin-yellow-light .main-header .logo:hover{background-color:#f39a0d}.skin-yellow-light .main-header li.user-header{background-color:#f39c12}.skin-yellow-light .content-header{background:transparent}.skin-yellow-light .wrapper,.skin-yellow-light .main-sidebar,.skin-yellow-light .left-side{background-color:#f9fafc}.skin-yellow-light .content-wrapper,.skin-yellow-light .main-footer{border-left:1px solid #d2d6de}.skin-yellow-light .user-panel>.info,.skin-yellow-light .user-panel>.info>a{color:#444}.skin-yellow-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-yellow-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-yellow-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-yellow-light .sidebar-menu>li:hover>a,.skin-yellow-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-yellow-light .sidebar-menu>li.active{border-left-color:#f39c12}.skin-yellow-light .sidebar-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-yellow-light .sidebar a{color:#444}.skin-yellow-light .sidebar a:hover{text-decoration:none}.skin-yellow-light .treeview-menu>li>a{color:#777}.skin-yellow-light .treeview-menu>li.active>a,.skin-yellow-light .treeview-menu>li>a:hover{color:#000}.skin-yellow-light .treeview-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-yellow-light .sidebar-form input[type="text"],.skin-yellow-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-yellow-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-yellow-light .sidebar-form input[type="text"]:focus,.skin-yellow-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-yellow-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} -------------------------------------------------------------------------------- /static/css/skins/skin-yellow.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Yellow 3 | * ------------ 4 | */ 5 | .skin-yellow .main-header .navbar { 6 | background-color: #f39c12; 7 | } 8 | .skin-yellow .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-yellow .main-header .navbar .nav > li > a:hover, 12 | .skin-yellow .main-header .navbar .nav > li > a:active, 13 | .skin-yellow .main-header .navbar .nav > li > a:focus, 14 | .skin-yellow .main-header .navbar .nav .open > a, 15 | .skin-yellow .main-header .navbar .nav .open > a:hover, 16 | .skin-yellow .main-header .navbar .nav .open > a:focus, 17 | .skin-yellow .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-yellow .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-yellow .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-yellow .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-yellow .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #e08e0b; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-yellow .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-yellow .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-yellow .main-header .navbar .dropdown-menu li a:hover { 42 | background: #e08e0b; 43 | } 44 | } 45 | .skin-yellow .main-header .logo { 46 | background-color: #e08e0b; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-yellow .main-header .logo:hover { 51 | background-color: #db8b0b; 52 | } 53 | .skin-yellow .main-header li.user-header { 54 | background-color: #f39c12; 55 | } 56 | .skin-yellow .content-header { 57 | background: transparent; 58 | } 59 | .skin-yellow .wrapper, 60 | .skin-yellow .main-sidebar, 61 | .skin-yellow .left-side { 62 | background-color: #222d32; 63 | } 64 | .skin-yellow .user-panel > .info, 65 | .skin-yellow .user-panel > .info > a { 66 | color: #fff; 67 | } 68 | .skin-yellow .sidebar-menu > li.header { 69 | color: #4b646f; 70 | background: #1a2226; 71 | } 72 | .skin-yellow .sidebar-menu > li > a { 73 | border-left: 3px solid transparent; 74 | } 75 | .skin-yellow .sidebar-menu > li:hover > a, 76 | .skin-yellow .sidebar-menu > li.active > a { 77 | color: #ffffff; 78 | background: #1e282c; 79 | border-left-color: #f39c12; 80 | } 81 | .skin-yellow .sidebar-menu > li > .treeview-menu { 82 | margin: 0 1px; 83 | background: #2c3b41; 84 | } 85 | .skin-yellow .sidebar a { 86 | color: #b8c7ce; 87 | } 88 | .skin-yellow .sidebar a:hover { 89 | text-decoration: none; 90 | } 91 | .skin-yellow .treeview-menu > li > a { 92 | color: #8aa4af; 93 | } 94 | .skin-yellow .treeview-menu > li.active > a, 95 | .skin-yellow .treeview-menu > li > a:hover { 96 | color: #ffffff; 97 | } 98 | .skin-yellow .sidebar-form { 99 | border-radius: 3px; 100 | border: 1px solid #374850; 101 | margin: 10px 10px; 102 | } 103 | .skin-yellow .sidebar-form input[type="text"], 104 | .skin-yellow .sidebar-form .btn { 105 | box-shadow: none; 106 | background-color: #374850; 107 | border: 1px solid transparent; 108 | height: 35px; 109 | -webkit-transition: all 0.3s ease-in-out; 110 | -o-transition: all 0.3s ease-in-out; 111 | transition: all 0.3s ease-in-out; 112 | } 113 | .skin-yellow .sidebar-form input[type="text"] { 114 | color: #666; 115 | border-top-left-radius: 2px; 116 | border-top-right-radius: 0; 117 | border-bottom-right-radius: 0; 118 | border-bottom-left-radius: 2px; 119 | } 120 | .skin-yellow .sidebar-form input[type="text"]:focus, 121 | .skin-yellow .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 122 | background-color: #fff; 123 | color: #666; 124 | } 125 | .skin-yellow .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 126 | border-left-color: #fff; 127 | } 128 | .skin-yellow .sidebar-form .btn { 129 | color: #999; 130 | border-top-left-radius: 0; 131 | border-top-right-radius: 2px; 132 | border-bottom-right-radius: 2px; 133 | border-bottom-left-radius: 0; 134 | } 135 | -------------------------------------------------------------------------------- /static/css/skins/skin-yellow.min.css: -------------------------------------------------------------------------------- 1 | .skin-yellow .main-header .navbar{background-color:#f39c12}.skin-yellow .main-header .navbar .nav>li>a{color:#fff}.skin-yellow .main-header .navbar .nav>li>a:hover,.skin-yellow .main-header .navbar .nav>li>a:active,.skin-yellow .main-header .navbar .nav>li>a:focus,.skin-yellow .main-header .navbar .nav .open>a,.skin-yellow .main-header .navbar .nav .open>a:hover,.skin-yellow .main-header .navbar .nav .open>a:focus,.skin-yellow .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-yellow .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow .main-header .logo{background-color:#e08e0b;color:#fff;border-bottom:0 solid transparent}.skin-yellow .main-header .logo:hover{background-color:#db8b0b}.skin-yellow .main-header li.user-header{background-color:#f39c12}.skin-yellow .content-header{background:transparent}.skin-yellow .wrapper,.skin-yellow .main-sidebar,.skin-yellow .left-side{background-color:#222d32}.skin-yellow .user-panel>.info,.skin-yellow .user-panel>.info>a{color:#fff}.skin-yellow .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-yellow .sidebar-menu>li>a{border-left:3px solid transparent}.skin-yellow .sidebar-menu>li:hover>a,.skin-yellow .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#f39c12}.skin-yellow .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-yellow .sidebar a{color:#b8c7ce}.skin-yellow .sidebar a:hover{text-decoration:none}.skin-yellow .treeview-menu>li>a{color:#8aa4af}.skin-yellow .treeview-menu>li.active>a,.skin-yellow .treeview-menu>li>a:hover{color:#fff}.skin-yellow .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-yellow .sidebar-form input[type="text"],.skin-yellow .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-yellow .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-yellow .sidebar-form input[type="text"]:focus,.skin-yellow .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0} -------------------------------------------------------------------------------- /static/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/static/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /static/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/static/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /static/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/static/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /static/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/static/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /static/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/static/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deboyblog/DeAdmin/3b090a6c1433f79140514ce7f0cc90e44c90c118/static/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /static/js/app.min.js: -------------------------------------------------------------------------------- 1 | /*! AdminLTE app.js 2 | * ================ 3 | * Main JS application file for AdminLTE v2. This file 4 | * should be included in all pages. It controls some layout 5 | * options and implements exclusive AdminLTE plugins. 6 | * 7 | * @Author Almsaeed Studio 8 | * @Support 9 | * @Email 10 | * @version 2.3.3 11 | * @license MIT 12 | */ 13 | function _init(){"use strict";$.AdminLTE.layout={activate:function(){var a=this;a.fix(),a.fixSidebar(),$(window,".wrapper").resize(function(){a.fix(),a.fixSidebar()})},fix:function(){var a=$(".main-header").outerHeight()+$(".main-footer").outerHeight(),b=$(window).height(),c=$(".sidebar").height();if($("body").hasClass("fixed"))$(".content-wrapper, .right-side").css("min-height",b-$(".main-footer").outerHeight());else{var d;b>=c?($(".content-wrapper, .right-side").css("min-height",b-a),d=b-a):($(".content-wrapper, .right-side").css("min-height",c),d=c);var e=$($.AdminLTE.options.controlSidebarOptions.selector);"undefined"!=typeof e&&e.height()>d&&$(".content-wrapper, .right-side").css("min-height",e.height())}},fixSidebar:function(){return $("body").hasClass("fixed")?("undefined"==typeof $.fn.slimScroll&&window.console&&window.console.error("Error: the fixed layout requires the slimscroll plugin!"),void($.AdminLTE.options.sidebarSlimScroll&&"undefined"!=typeof $.fn.slimScroll&&($(".sidebar").slimScroll({destroy:!0}).height("auto"),$(".sidebar").slimscroll({height:$(window).height()-$(".main-header").height()+"px",color:"rgba(0,0,0,0.2)",size:"3px"})))):void("undefined"!=typeof $.fn.slimScroll&&$(".sidebar").slimScroll({destroy:!0}).height("auto"))}},$.AdminLTE.pushMenu={activate:function(a){var b=$.AdminLTE.options.screenSizes;$(document).on("click",a,function(a){a.preventDefault(),$(window).width()>b.sm-1?$("body").hasClass("sidebar-collapse")?$("body").removeClass("sidebar-collapse").trigger("expanded.pushMenu"):$("body").addClass("sidebar-collapse").trigger("collapsed.pushMenu"):$("body").hasClass("sidebar-open")?$("body").removeClass("sidebar-open").removeClass("sidebar-collapse").trigger("collapsed.pushMenu"):$("body").addClass("sidebar-open").trigger("expanded.pushMenu")}),$(".content-wrapper").click(function(){$(window).width()<=b.sm-1&&$("body").hasClass("sidebar-open")&&$("body").removeClass("sidebar-open")}),($.AdminLTE.options.sidebarExpandOnHover||$("body").hasClass("fixed")&&$("body").hasClass("sidebar-mini"))&&this.expandOnHover()},expandOnHover:function(){var a=this,b=$.AdminLTE.options.screenSizes.sm-1;$(".main-sidebar").hover(function(){$("body").hasClass("sidebar-mini")&&$("body").hasClass("sidebar-collapse")&&$(window).width()>b&&a.expand()},function(){$("body").hasClass("sidebar-mini")&&$("body").hasClass("sidebar-expanded-on-hover")&&$(window).width()>b&&a.collapse()})},expand:function(){$("body").removeClass("sidebar-collapse").addClass("sidebar-expanded-on-hover")},collapse:function(){$("body").hasClass("sidebar-expanded-on-hover")&&$("body").removeClass("sidebar-expanded-on-hover").addClass("sidebar-collapse")}},$.AdminLTE.tree=function(a){var b=this,c=$.AdminLTE.options.animationSpeed;$(document).on("click",a+" li a",function(a){var d=$(this),e=d.next();if(e.is(".treeview-menu")&&e.is(":visible")&&!$("body").hasClass("sidebar-collapse"))e.slideUp(c,function(){e.removeClass("menu-open")}),e.parent("li").removeClass("active");else if(e.is(".treeview-menu")&&!e.is(":visible")){var f=d.parents("ul").first(),g=f.find("ul:visible").slideUp(c);g.removeClass("menu-open");var h=d.parent("li");e.slideDown(c,function(){e.addClass("menu-open"),f.find("li.active").removeClass("active"),h.addClass("active"),b.layout.fix()})}e.is(".treeview-menu")&&a.preventDefault()})},$.AdminLTE.controlSidebar={activate:function(){var a=this,b=$.AdminLTE.options.controlSidebarOptions,c=$(b.selector),d=$(b.toggleBtnSelector);d.on("click",function(d){d.preventDefault(),c.hasClass("control-sidebar-open")||$("body").hasClass("control-sidebar-open")?a.close(c,b.slide):a.open(c,b.slide)});var e=$(".control-sidebar-bg");a._fix(e),$("body").hasClass("fixed")?a._fixForFixed(c):$(".content-wrapper, .right-side").height() .box-body, > .box-footer, > form >.box-body, > form > .box-footer");c.hasClass("collapsed-box")?(a.children(":first").removeClass(b.icons.open).addClass(b.icons.collapse),d.slideDown(b.animationSpeed,function(){c.removeClass("collapsed-box")})):(a.children(":first").removeClass(b.icons.collapse).addClass(b.icons.open),d.slideUp(b.animationSpeed,function(){c.addClass("collapsed-box")}))},remove:function(a){var b=a.parents(".box").first();b.slideUp(this.animationSpeed)}}}if("undefined"==typeof jQuery)throw new Error("AdminLTE requires jQuery");$.AdminLTE={},$.AdminLTE.options={navbarMenuSlimscroll:!0,navbarMenuSlimscrollWidth:"3px",navbarMenuHeight:"200px",animationSpeed:500,sidebarToggleSelector:"[data-toggle='offcanvas']",sidebarPushMenu:!0,sidebarSlimScroll:!0,sidebarExpandOnHover:!1,enableBoxRefresh:!0,enableBSToppltip:!0,BSTooltipSelector:"[data-toggle='tooltip']",enableFastclick:!0,enableControlSidebar:!0,controlSidebarOptions:{toggleBtnSelector:"[data-toggle='control-sidebar']",selector:".control-sidebar",slide:!0},enableBoxWidget:!0,boxWidgetOptions:{boxWidgetIcons:{collapse:"fa-minus",open:"fa-plus",remove:"fa-times"},boxWidgetSelectors:{remove:'[data-widget="remove"]',collapse:'[data-widget="collapse"]'}},directChat:{enable:!0,contactToggleSelector:'[data-widget="chat-pane-toggle"]'},colors:{lightBlue:"#3c8dbc",red:"#f56954",green:"#00a65a",aqua:"#00c0ef",yellow:"#f39c12",blue:"#0073b7",navy:"#001F3F",teal:"#39CCCC",olive:"#3D9970",lime:"#01FF70",orange:"#FF851B",fuchsia:"#F012BE",purple:"#8E24AA",maroon:"#D81B60",black:"#222222",gray:"#d2d6de"},screenSizes:{xs:480,sm:768,md:992,lg:1200}},$(function(){"use strict";$("body").removeClass("hold-transition"),"undefined"!=typeof AdminLTEOptions&&$.extend(!0,$.AdminLTE.options,AdminLTEOptions);var a=$.AdminLTE.options;_init(),$.AdminLTE.layout.activate(),$.AdminLTE.tree(".sidebar"),a.enableControlSidebar&&$.AdminLTE.controlSidebar.activate(),a.navbarMenuSlimscroll&&"undefined"!=typeof $.fn.slimscroll&&$(".navbar .menu").slimscroll({height:a.navbarMenuHeight,alwaysVisible:!1,size:a.navbarMenuSlimscrollWidth}).css("width","100%"),a.sidebarPushMenu&&$.AdminLTE.pushMenu.activate(a.sidebarToggleSelector),a.enableBSToppltip&&$("body").tooltip({selector:a.BSTooltipSelector}),a.enableBoxWidget&&$.AdminLTE.boxWidget.activate(),a.enableFastclick&&"undefined"!=typeof FastClick&&FastClick.attach(document.body),a.directChat.enable&&$(document).on("click",a.directChat.contactToggleSelector,function(){var a=$(this).parents(".direct-chat").first();a.toggleClass("direct-chat-contacts-open")}),$('.btn-group[data-toggle="btn-toggle"]').each(function(){var a=$(this);$(this).find(".btn").on("click",function(b){a.find(".btn.active").removeClass("active"),$(this).addClass("active"),b.preventDefault()})})}),function(a){"use strict";a.fn.boxRefresh=function(b){function c(a){a.append(f),e.onLoadStart.call(a)}function d(a){a.find(f).remove(),e.onLoadDone.call(a)}var e=a.extend({trigger:".refresh-btn",source:"",onLoadStart:function(a){return a},onLoadDone:function(a){return a}},b),f=a('
');return this.each(function(){if(""===e.source)return void(window.console&&window.console.log("Please specify a source first - boxRefresh()"));var b=a(this),f=b.find(e.trigger).first();f.on("click",function(a){a.preventDefault(),c(b),b.find(".box-body").load(e.source,function(){d(b)})})})}}(jQuery),function(a){"use strict";a.fn.activateBox=function(){a.AdminLTE.boxWidget.activate(this)},a.fn.toggleBox=function(){var b=a(a.AdminLTE.boxWidget.selectors.collapse,this);a.AdminLTE.boxWidget.collapse(b)},a.fn.removeBox=function(){var b=a(a.AdminLTE.boxWidget.selectors.remove,this);a.AdminLTE.boxWidget.remove(b)}}(jQuery),function(a){"use strict";a.fn.todolist=function(b){var c=a.extend({onCheck:function(a){return a},onUncheck:function(a){return a}},b);return this.each(function(){"undefined"!=typeof a.fn.iCheck?(a("input",this).on("ifChecked",function(){var b=a(this).parents("li").first();b.toggleClass("done"),c.onCheck.call(b)}),a("input",this).on("ifUnchecked",function(){var b=a(this).parents("li").first();b.toggleClass("done"),c.onUncheck.call(b)})):a("input",this).on("change",function(){var b=a(this).parents("li").first();b.toggleClass("done"),a("input",b).is(":checked")?c.onCheck.call(b):c.onUncheck.call(b)})})}}(jQuery); -------------------------------------------------------------------------------- /static/js/demo.js: -------------------------------------------------------------------------------- 1 | /** 2 | * AdminLTE Demo Menu 3 | * ------------------ 4 | * You should not use this file in production. 5 | * This file is for demo purposes only. 6 | */ 7 | (function ($, AdminLTE) { 8 | 9 | "use strict"; 10 | 11 | /** 12 | * List of all the available skins 13 | * 14 | * @type Array 15 | */ 16 | var my_skins = [ 17 | "skin-blue", 18 | "skin-black", 19 | "skin-red", 20 | "skin-yellow", 21 | "skin-purple", 22 | "skin-green", 23 | "skin-blue-light", 24 | "skin-black-light", 25 | "skin-red-light", 26 | "skin-yellow-light", 27 | "skin-purple-light", 28 | "skin-green-light" 29 | ]; 30 | 31 | //Create the new tab 32 | var tab_pane = $("
", { 33 | "id": "control-sidebar-theme-demo-options-tab", 34 | "class": "tab-pane active" 35 | }); 36 | 37 | //Create the tab button 38 | var tab_button = $("
  • ", {"class": "active"}) 39 | .html("" 40 | + "" 41 | + ""); 42 | 43 | //Add the tab button to the right sidebar tabs 44 | $("[href='#control-sidebar-home-tab']") 45 | .parent() 46 | .before(tab_button); 47 | 48 | //Create the menu 49 | var demo_settings = $("
    "); 50 | 51 | //Layout options 52 | demo_settings.append( 53 | "

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

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

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

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

    Activate the boxed layout

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

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

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

    Let the sidebar mini expand on hover

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

    Toggle between slide over content and push content effects

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

    Toggle between dark and light skins for the right sidebar

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

      Blue

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

      Black

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

      Purple

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

      Green

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

      Red

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

      Yellow

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

      Blue Light

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

      Black Light

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

      Purple Light

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

      Green Light

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

      Red Light

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

      Yellow Light

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

      Skins

      "); 208 | demo_settings.append(skins_list); 209 | 210 | tab_pane.append(demo_settings); 211 | $("#control-sidebar-home-tab").after(tab_pane); 212 | 213 | setup(); 214 | 215 | /** 216 | * Toggles layout classes 217 | * 218 | * @param String cls the layout class to toggle 219 | * @returns void 220 | */ 221 | function change_layout(cls) { 222 | $("body").toggleClass(cls); 223 | AdminLTE.layout.fixSidebar(); 224 | //Fix the problem with right sidebar and layout boxed 225 | if (cls == "layout-boxed") 226 | AdminLTE.controlSidebar._fix($(".control-sidebar-bg")); 227 | if ($('body').hasClass('fixed') && cls == 'fixed') { 228 | AdminLTE.pushMenu.expandOnHover(); 229 | AdminLTE.layout.activate(); 230 | } 231 | AdminLTE.controlSidebar._fix($(".control-sidebar-bg")); 232 | AdminLTE.controlSidebar._fix($(".control-sidebar")); 233 | } 234 | 235 | /** 236 | * Replaces the old skin with the new skin 237 | * @param String cls the new skin class 238 | * @returns Boolean false to prevent link's default action 239 | */ 240 | function change_skin(cls) { 241 | $.each(my_skins, function (i) { 242 | $("body").removeClass(my_skins[i]); 243 | }); 244 | 245 | $("body").addClass(cls); 246 | store('skin', cls); 247 | return false; 248 | } 249 | 250 | /** 251 | * Store a new settings in the browser 252 | * 253 | * @param String name Name of the setting 254 | * @param String val Value of the setting 255 | * @returns void 256 | */ 257 | function store(name, val) { 258 | if (typeof (Storage) !== "undefined") { 259 | localStorage.setItem(name, val); 260 | } else { 261 | window.alert('Please use a modern browser to properly view this template!'); 262 | } 263 | } 264 | 265 | /** 266 | * Get a prestored setting 267 | * 268 | * @param String name Name of of the setting 269 | * @returns String The value of the setting | null 270 | */ 271 | function get(name) { 272 | if (typeof (Storage) !== "undefined") { 273 | return localStorage.getItem(name); 274 | } else { 275 | window.alert('Please use a modern browser to properly view this template!'); 276 | } 277 | } 278 | 279 | /** 280 | * Retrieve default settings and apply them to the template 281 | * 282 | * @returns void 283 | */ 284 | function setup() { 285 | var tmp = get('skin'); 286 | if (tmp && $.inArray(tmp, my_skins)) 287 | change_skin(tmp); 288 | 289 | //Add the change skin listener 290 | $("[data-skin]").on('click', function (e) { 291 | e.preventDefault(); 292 | change_skin($(this).data('skin')); 293 | }); 294 | 295 | //Add the layout manager 296 | $("[data-layout]").on('click', function () { 297 | change_layout($(this).data('layout')); 298 | }); 299 | 300 | $("[data-controlsidebar]").on('click', function () { 301 | change_layout($(this).data('controlsidebar')); 302 | var slide = !AdminLTE.options.controlSidebarOptions.slide; 303 | AdminLTE.options.controlSidebarOptions.slide = slide; 304 | if (!slide) 305 | $('.control-sidebar').removeClass('control-sidebar-open'); 306 | }); 307 | 308 | $("[data-sidebarskin='toggle']").on('click', function () { 309 | var sidebar = $(".control-sidebar"); 310 | if (sidebar.hasClass("control-sidebar-dark")) { 311 | sidebar.removeClass("control-sidebar-dark") 312 | sidebar.addClass("control-sidebar-light") 313 | } else { 314 | sidebar.removeClass("control-sidebar-light") 315 | sidebar.addClass("control-sidebar-dark") 316 | } 317 | }); 318 | 319 | $("[data-enable='expandOnHover']").on('click', function () { 320 | $(this).attr('disabled', true); 321 | AdminLTE.pushMenu.expandOnHover(); 322 | if (!$('body').hasClass('sidebar-collapse')) 323 | $("[data-layout='sidebar-collapse']").click(); 324 | }); 325 | 326 | // Reset options 327 | if ($('body').hasClass('fixed')) { 328 | $("[data-layout='fixed']").attr('checked', 'checked'); 329 | } 330 | if ($('body').hasClass('layout-boxed')) { 331 | $("[data-layout='layout-boxed']").attr('checked', 'checked'); 332 | } 333 | if ($('body').hasClass('sidebar-collapse')) { 334 | $("[data-layout='sidebar-collapse']").attr('checked', 'checked'); 335 | } 336 | 337 | } 338 | })(jQuery, $.AdminLTE); 339 | -------------------------------------------------------------------------------- /static/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /static/js/pages/dashboard.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Abdullah A Almsaeed 3 | * Date: 4 Jan 2014 4 | * Description: 5 | * This is a demo file used only for the main dashboard (index.html) 6 | **/ 7 | 8 | $(function () { 9 | 10 | "use strict"; 11 | 12 | //Make the dashboard widgets sortable Using jquery UI 13 | $(".connectedSortable").sortable({ 14 | placeholder: "sort-highlight", 15 | connectWith: ".connectedSortable", 16 | handle: ".box-header, .nav-tabs", 17 | forcePlaceholderSize: true, 18 | zIndex: 999999 19 | }); 20 | $(".connectedSortable .box-header, .connectedSortable .nav-tabs-custom").css("cursor", "move"); 21 | 22 | //jQuery UI sortable for the todo list 23 | $(".todo-list").sortable({ 24 | placeholder: "sort-highlight", 25 | handle: ".handle", 26 | forcePlaceholderSize: true, 27 | zIndex: 999999 28 | }); 29 | 30 | //bootstrap WYSIHTML5 - text editor 31 | $(".textarea").wysihtml5(); 32 | 33 | $('.daterange').daterangepicker({ 34 | ranges: { 35 | 'Today': [moment(), moment()], 36 | 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], 37 | 'Last 7 Days': [moment().subtract(6, 'days'), moment()], 38 | 'Last 30 Days': [moment().subtract(29, 'days'), moment()], 39 | 'This Month': [moment().startOf('month'), moment().endOf('month')], 40 | 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] 41 | }, 42 | startDate: moment().subtract(29, 'days'), 43 | endDate: moment() 44 | }, function (start, end) { 45 | window.alert("You chose: " + start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY')); 46 | }); 47 | 48 | /* jQueryKnob */ 49 | $(".knob").knob(); 50 | 51 | //jvectormap data 52 | var visitorsData = { 53 | "US": 398, //USA 54 | "SA": 400, //Saudi Arabia 55 | "CA": 1000, //Canada 56 | "DE": 500, //Germany 57 | "FR": 760, //France 58 | "CN": 300, //China 59 | "AU": 700, //Australia 60 | "BR": 600, //Brazil 61 | "IN": 800, //India 62 | "GB": 320, //Great Britain 63 | "RU": 3000 //Russia 64 | }; 65 | //World map by jvectormap 66 | $('#world-map').vectorMap({ 67 | map: 'world_mill_en', 68 | backgroundColor: "transparent", 69 | regionStyle: { 70 | initial: { 71 | fill: '#e4e4e4', 72 | "fill-opacity": 1, 73 | stroke: 'none', 74 | "stroke-width": 0, 75 | "stroke-opacity": 1 76 | } 77 | }, 78 | series: { 79 | regions: [{ 80 | values: visitorsData, 81 | scale: ["#92c1dc", "#ebf4f9"], 82 | normalizeFunction: 'polynomial' 83 | }] 84 | }, 85 | onRegionLabelShow: function (e, el, code) { 86 | if (typeof visitorsData[code] != "undefined") 87 | el.html(el.html() + ': ' + visitorsData[code] + ' new visitors'); 88 | } 89 | }); 90 | 91 | //Sparkline charts 92 | var myvalues = [1000, 1200, 920, 927, 931, 1027, 819, 930, 1021]; 93 | $('#sparkline-1').sparkline(myvalues, { 94 | type: 'line', 95 | lineColor: '#92c1dc', 96 | fillColor: "#ebf4f9", 97 | height: '50', 98 | width: '80' 99 | }); 100 | myvalues = [515, 519, 520, 522, 652, 810, 370, 627, 319, 630, 921]; 101 | $('#sparkline-2').sparkline(myvalues, { 102 | type: 'line', 103 | lineColor: '#92c1dc', 104 | fillColor: "#ebf4f9", 105 | height: '50', 106 | width: '80' 107 | }); 108 | myvalues = [15, 19, 20, 22, 33, 27, 31, 27, 19, 30, 21]; 109 | $('#sparkline-3').sparkline(myvalues, { 110 | type: 'line', 111 | lineColor: '#92c1dc', 112 | fillColor: "#ebf4f9", 113 | height: '50', 114 | width: '80' 115 | }); 116 | 117 | //The Calender 118 | $("#calendar").datepicker(); 119 | 120 | //SLIMSCROLL FOR CHAT WIDGET 121 | $('#chat-box').slimScroll({ 122 | height: '250px' 123 | }); 124 | 125 | /* Morris.js Charts */ 126 | // Sales chart 127 | var area = new Morris.Area({ 128 | element: 'revenue-chart', 129 | resize: true, 130 | data: [ 131 | {y: '2011 Q1', item1: 2666, item2: 2666}, 132 | {y: '2011 Q2', item1: 2778, item2: 2294}, 133 | {y: '2011 Q3', item1: 4912, item2: 1969}, 134 | {y: '2011 Q4', item1: 3767, item2: 3597}, 135 | {y: '2012 Q1', item1: 6810, item2: 1914}, 136 | {y: '2012 Q2', item1: 5670, item2: 4293}, 137 | {y: '2012 Q3', item1: 4820, item2: 3795}, 138 | {y: '2012 Q4', item1: 15073, item2: 5967}, 139 | {y: '2013 Q1', item1: 10687, item2: 4460}, 140 | {y: '2013 Q2', item1: 8432, item2: 5713} 141 | ], 142 | xkey: 'y', 143 | ykeys: ['item1', 'item2'], 144 | labels: ['Item 1', 'Item 2'], 145 | lineColors: ['#a0d0e0', '#3c8dbc'], 146 | hideHover: 'auto' 147 | }); 148 | var line = new Morris.Line({ 149 | element: 'line-chart', 150 | resize: true, 151 | data: [ 152 | {y: '2011 Q1', item1: 2666}, 153 | {y: '2011 Q2', item1: 2778}, 154 | {y: '2011 Q3', item1: 4912}, 155 | {y: '2011 Q4', item1: 3767}, 156 | {y: '2012 Q1', item1: 6810}, 157 | {y: '2012 Q2', item1: 5670}, 158 | {y: '2012 Q3', item1: 4820}, 159 | {y: '2012 Q4', item1: 15073}, 160 | {y: '2013 Q1', item1: 10687}, 161 | {y: '2013 Q2', item1: 8432} 162 | ], 163 | xkey: 'y', 164 | ykeys: ['item1'], 165 | labels: ['Item 1'], 166 | lineColors: ['#efefef'], 167 | lineWidth: 2, 168 | hideHover: 'auto', 169 | gridTextColor: "#fff", 170 | gridStrokeWidth: 0.4, 171 | pointSize: 4, 172 | pointStrokeColors: ["#efefef"], 173 | gridLineColor: "#efefef", 174 | gridTextFamily: "Open Sans", 175 | gridTextSize: 10 176 | }); 177 | 178 | //Donut Chart 179 | var donut = new Morris.Donut({ 180 | element: 'sales-chart', 181 | resize: true, 182 | colors: ["#3c8dbc", "#f56954", "#00a65a"], 183 | data: [ 184 | {label: "Download Sales", value: 12}, 185 | {label: "In-Store Sales", value: 30}, 186 | {label: "Mail-Order Sales", value: 20} 187 | ], 188 | hideHover: 'auto' 189 | }); 190 | 191 | //Fix for charts under tabs 192 | $('.box ul.nav a').on('shown.bs.tab', function () { 193 | area.redraw(); 194 | donut.redraw(); 195 | line.redraw(); 196 | }); 197 | 198 | /* The todo list plugin */ 199 | $(".todo-list").todolist({ 200 | onCheck: function (ele) { 201 | window.console.log("The element has been checked"); 202 | return ele; 203 | }, 204 | onUncheck: function (ele) { 205 | window.console.log("The element has been unchecked"); 206 | return ele; 207 | } 208 | }); 209 | 210 | }); 211 | -------------------------------------------------------------------------------- /static/js/pages/dashboard2.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | 3 | 'use strict'; 4 | 5 | /* ChartJS 6 | * ------- 7 | * Here we will create a few charts using ChartJS 8 | */ 9 | 10 | //----------------------- 11 | //- MONTHLY SALES CHART - 12 | //----------------------- 13 | 14 | // Get context with jQuery - using jQuery's .get() method. 15 | var salesChartCanvas = $("#salesChart").get(0).getContext("2d"); 16 | // This will get the first returned node in the jQuery collection. 17 | var salesChart = new Chart(salesChartCanvas); 18 | 19 | var salesChartData = { 20 | labels: ["January", "February", "March", "April", "May", "June", "July"], 21 | datasets: [ 22 | { 23 | label: "Electronics", 24 | fillColor: "rgb(210, 214, 222)", 25 | strokeColor: "rgb(210, 214, 222)", 26 | pointColor: "rgb(210, 214, 222)", 27 | pointStrokeColor: "#c1c7d1", 28 | pointHighlightFill: "#fff", 29 | pointHighlightStroke: "rgb(220,220,220)", 30 | data: [65, 59, 80, 81, 56, 55, 40] 31 | }, 32 | { 33 | label: "Digital Goods", 34 | fillColor: "rgba(60,141,188,0.9)", 35 | strokeColor: "rgba(60,141,188,0.8)", 36 | pointColor: "#3b8bba", 37 | pointStrokeColor: "rgba(60,141,188,1)", 38 | pointHighlightFill: "#fff", 39 | pointHighlightStroke: "rgba(60,141,188,1)", 40 | data: [28, 48, 40, 19, 86, 27, 90] 41 | } 42 | ] 43 | }; 44 | 45 | var salesChartOptions = { 46 | //Boolean - If we should show the scale at all 47 | showScale: true, 48 | //Boolean - Whether grid lines are shown across the chart 49 | scaleShowGridLines: false, 50 | //String - Colour of the grid lines 51 | scaleGridLineColor: "rgba(0,0,0,.05)", 52 | //Number - Width of the grid lines 53 | scaleGridLineWidth: 1, 54 | //Boolean - Whether to show horizontal lines (except X axis) 55 | scaleShowHorizontalLines: true, 56 | //Boolean - Whether to show vertical lines (except Y axis) 57 | scaleShowVerticalLines: true, 58 | //Boolean - Whether the line is curved between points 59 | bezierCurve: true, 60 | //Number - Tension of the bezier curve between points 61 | bezierCurveTension: 0.3, 62 | //Boolean - Whether to show a dot for each point 63 | pointDot: false, 64 | //Number - Radius of each point dot in pixels 65 | pointDotRadius: 4, 66 | //Number - Pixel width of point dot stroke 67 | pointDotStrokeWidth: 1, 68 | //Number - amount extra to add to the radius to cater for hit detection outside the drawn point 69 | pointHitDetectionRadius: 20, 70 | //Boolean - Whether to show a stroke for datasets 71 | datasetStroke: true, 72 | //Number - Pixel width of dataset stroke 73 | datasetStrokeWidth: 2, 74 | //Boolean - Whether to fill the dataset with a color 75 | datasetFill: true, 76 | //String - A legend template 77 | legendTemplate: "
        -legend\"><% for (var i=0; i
      • \"><%=datasets[i].label%>
      • <%}%>
      ", 78 | //Boolean - whether to maintain the starting aspect ratio or not when responsive, if set to false, will take up entire container 79 | maintainAspectRatio: true, 80 | //Boolean - whether to make the chart responsive to window resizing 81 | responsive: true 82 | }; 83 | 84 | //Create the line chart 85 | salesChart.Line(salesChartData, salesChartOptions); 86 | 87 | //--------------------------- 88 | //- END MONTHLY SALES CHART - 89 | //--------------------------- 90 | 91 | //------------- 92 | //- PIE CHART - 93 | //------------- 94 | // Get context with jQuery - using jQuery's .get() method. 95 | var pieChartCanvas = $("#pieChart").get(0).getContext("2d"); 96 | var pieChart = new Chart(pieChartCanvas); 97 | var PieData = [ 98 | { 99 | value: 700, 100 | color: "#f56954", 101 | highlight: "#f56954", 102 | label: "Chrome" 103 | }, 104 | { 105 | value: 500, 106 | color: "#00a65a", 107 | highlight: "#00a65a", 108 | label: "IE" 109 | }, 110 | { 111 | value: 400, 112 | color: "#f39c12", 113 | highlight: "#f39c12", 114 | label: "FireFox" 115 | }, 116 | { 117 | value: 600, 118 | color: "#00c0ef", 119 | highlight: "#00c0ef", 120 | label: "Safari" 121 | }, 122 | { 123 | value: 300, 124 | color: "#3c8dbc", 125 | highlight: "#3c8dbc", 126 | label: "Opera" 127 | }, 128 | { 129 | value: 100, 130 | color: "#d2d6de", 131 | highlight: "#d2d6de", 132 | label: "Navigator" 133 | } 134 | ]; 135 | var pieOptions = { 136 | //Boolean - Whether we should show a stroke on each segment 137 | segmentShowStroke: true, 138 | //String - The colour of each segment stroke 139 | segmentStrokeColor: "#fff", 140 | //Number - The width of each segment stroke 141 | segmentStrokeWidth: 1, 142 | //Number - The percentage of the chart that we cut out of the middle 143 | percentageInnerCutout: 50, // This is 0 for Pie charts 144 | //Number - Amount of animation steps 145 | animationSteps: 100, 146 | //String - Animation easing effect 147 | animationEasing: "easeOutBounce", 148 | //Boolean - Whether we animate the rotation of the Doughnut 149 | animateRotate: true, 150 | //Boolean - Whether we animate scaling the Doughnut from the centre 151 | animateScale: false, 152 | //Boolean - whether to make the chart responsive to window resizing 153 | responsive: true, 154 | // Boolean - whether to maintain the starting aspect ratio or not when responsive, if set to false, will take up entire container 155 | maintainAspectRatio: false, 156 | //String - A legend template 157 | legendTemplate: "
        -legend\"><% for (var i=0; i
      • \"><%if(segments[i].label){%><%=segments[i].label%><%}%>
      • <%}%>
      ", 158 | //String - A tooltip template 159 | tooltipTemplate: "<%=value %> <%=label%> users" 160 | }; 161 | //Create pie or douhnut chart 162 | // You can switch between pie and douhnut using the method below. 163 | pieChart.Doughnut(PieData, pieOptions); 164 | //----------------- 165 | //- END PIE CHART - 166 | //----------------- 167 | 168 | /* jVector Maps 169 | * ------------ 170 | * Create a world map with markers 171 | */ 172 | $('#world-map-markers').vectorMap({ 173 | map: 'world_mill_en', 174 | normalizeFunction: 'polynomial', 175 | hoverOpacity: 0.7, 176 | hoverColor: false, 177 | backgroundColor: 'transparent', 178 | regionStyle: { 179 | initial: { 180 | fill: 'rgba(210, 214, 222, 1)', 181 | "fill-opacity": 1, 182 | stroke: 'none', 183 | "stroke-width": 0, 184 | "stroke-opacity": 1 185 | }, 186 | hover: { 187 | "fill-opacity": 0.7, 188 | cursor: 'pointer' 189 | }, 190 | selected: { 191 | fill: 'yellow' 192 | }, 193 | selectedHover: {} 194 | }, 195 | markerStyle: { 196 | initial: { 197 | fill: '#00a65a', 198 | stroke: '#111' 199 | } 200 | }, 201 | markers: [ 202 | {latLng: [41.90, 12.45], name: 'Vatican City'}, 203 | {latLng: [43.73, 7.41], name: 'Monaco'}, 204 | {latLng: [-0.52, 166.93], name: 'Nauru'}, 205 | {latLng: [-8.51, 179.21], name: 'Tuvalu'}, 206 | {latLng: [43.93, 12.46], name: 'San Marino'}, 207 | {latLng: [47.14, 9.52], name: 'Liechtenstein'}, 208 | {latLng: [7.11, 171.06], name: 'Marshall Islands'}, 209 | {latLng: [17.3, -62.73], name: 'Saint Kitts and Nevis'}, 210 | {latLng: [3.2, 73.22], name: 'Maldives'}, 211 | {latLng: [35.88, 14.5], name: 'Malta'}, 212 | {latLng: [12.05, -61.75], name: 'Grenada'}, 213 | {latLng: [13.16, -61.23], name: 'Saint Vincent and the Grenadines'}, 214 | {latLng: [13.16, -59.55], name: 'Barbados'}, 215 | {latLng: [17.11, -61.85], name: 'Antigua and Barbuda'}, 216 | {latLng: [-4.61, 55.45], name: 'Seychelles'}, 217 | {latLng: [7.35, 134.46], name: 'Palau'}, 218 | {latLng: [42.5, 1.51], name: 'Andorra'}, 219 | {latLng: [14.01, -60.98], name: 'Saint Lucia'}, 220 | {latLng: [6.91, 158.18], name: 'Federated States of Micronesia'}, 221 | {latLng: [1.3, 103.8], name: 'Singapore'}, 222 | {latLng: [1.46, 173.03], name: 'Kiribati'}, 223 | {latLng: [-21.13, -175.2], name: 'Tonga'}, 224 | {latLng: [15.3, -61.38], name: 'Dominica'}, 225 | {latLng: [-20.2, 57.5], name: 'Mauritius'}, 226 | {latLng: [26.02, 50.55], name: 'Bahrain'}, 227 | {latLng: [0.33, 6.73], name: 'São Tomé and Príncipe'} 228 | ] 229 | }); 230 | 231 | /* SPARKLINE CHARTS 232 | * ---------------- 233 | * Create a inline charts with spark line 234 | */ 235 | 236 | //----------------- 237 | //- SPARKLINE BAR - 238 | //----------------- 239 | $('.sparkbar').each(function () { 240 | var $this = $(this); 241 | $this.sparkline('html', { 242 | type: 'bar', 243 | height: $this.data('height') ? $this.data('height') : '30', 244 | barColor: $this.data('color') 245 | }); 246 | }); 247 | 248 | //----------------- 249 | //- SPARKLINE PIE - 250 | //----------------- 251 | $('.sparkpie').each(function () { 252 | var $this = $(this); 253 | $this.sparkline('html', { 254 | type: 'pie', 255 | height: $this.data('height') ? $this.data('height') : '90', 256 | sliceColors: $this.data('color') 257 | }); 258 | }); 259 | 260 | //------------------ 261 | //- SPARKLINE LINE - 262 | //------------------ 263 | $('.sparkline').each(function () { 264 | var $this = $(this); 265 | $this.sparkline('html', { 266 | type: 'line', 267 | height: $this.data('height') ? $this.data('height') : '90', 268 | width: '100%', 269 | lineColor: $this.data('linecolor'), 270 | fillColor: $this.data('fillcolor'), 271 | spotColor: $this.data('spotcolor') 272 | }); 273 | }); 274 | }); 275 | -------------------------------------------------------------------------------- /test/e2e/custom-assertions/elementCount.js: -------------------------------------------------------------------------------- 1 | // A custom Nightwatch assertion. 2 | // the name of the method is the filename. 3 | // can be used in tests like this: 4 | // 5 | // browser.assert.elementCount(selector, count) 6 | // 7 | // for how to write custom assertions see 8 | // http://nightwatchjs.org/guide#writing-custom-assertions 9 | exports.assertion = function (selector, count) { 10 | this.message = 'Testing if element <' + selector + '> has count: ' + count 11 | this.expected = count 12 | this.pass = function (val) { 13 | return val === this.expected 14 | } 15 | this.value = function (res) { 16 | return res.value 17 | } 18 | this.command = function (cb) { 19 | var self = this 20 | return this.api.execute(function (selector) { 21 | return document.querySelectorAll(selector).length 22 | }, [selector], function (res) { 23 | cb.call(self, res) 24 | }) 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/e2e/nightwatch.conf.js: -------------------------------------------------------------------------------- 1 | // http://nightwatchjs.org/guide#settings-file 2 | module.exports = { 3 | "src_folders": ["test/e2e/specs"], 4 | "output_folder": "test/e2e/reports", 5 | "custom_assertions_path": ["test/e2e/custom-assertions"], 6 | 7 | "selenium": { 8 | "start_process": true, 9 | "server_path": "node_modules/selenium-server/lib/runner/selenium-server-standalone-2.53.0.jar", 10 | "host": "127.0.0.1", 11 | "port": 4444, 12 | "cli_args": { 13 | "webdriver.chrome.driver": require('chromedriver').path 14 | } 15 | }, 16 | 17 | "test_settings": { 18 | "default": { 19 | "selenium_port": 4444, 20 | "selenium_host": "localhost", 21 | "silent": true 22 | }, 23 | 24 | "chrome": { 25 | "desiredCapabilities": { 26 | "browserName": "chrome", 27 | "javascriptEnabled": true, 28 | "acceptSslCerts": true 29 | } 30 | }, 31 | 32 | "firefox": { 33 | "desiredCapabilities": { 34 | "browserName": "firefox", 35 | "javascriptEnabled": true, 36 | "acceptSslCerts": true 37 | } 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /test/e2e/runner.js: -------------------------------------------------------------------------------- 1 | // 1. start the dev server 2 | var server = require('../../build/dev-server.js') 3 | 4 | // 2. run the nightwatch test suite against it 5 | // to run in additional browsers: 6 | // 1. add an entry in test/e2e/nightwatch.conf.json under "test_settings" 7 | // 2. add it to the --env flag below 8 | // For more information on Nightwatch's config file, see 9 | // http://nightwatchjs.org/guide#settings-file 10 | var spawn = require('cross-spawn') 11 | var runner = spawn( 12 | './node_modules/.bin/nightwatch', 13 | [ 14 | '--config', 'test/e2e/nightwatch.conf.js', 15 | '--env', 'chrome,firefox' 16 | ], 17 | { 18 | stdio: 'inherit' 19 | } 20 | ) 21 | 22 | runner.on('exit', function (code) { 23 | server.close() 24 | process.exit(code) 25 | }) 26 | 27 | runner.on('error', function (err) { 28 | server.close() 29 | throw err 30 | }) 31 | -------------------------------------------------------------------------------- /test/e2e/specs/test.js: -------------------------------------------------------------------------------- 1 | // For authoring Nightwatch tests, see 2 | // http://nightwatchjs.org/guide#usage 3 | 4 | module.exports = { 5 | 'default e2e tests': function (browser) { 6 | browser 7 | .url('http://localhost:8080') 8 | .waitForElementVisible('#app', 5000) 9 | .assert.elementPresent('.logo') 10 | .assert.containsText('h1', 'Hello World!') 11 | .assert.elementCount('p', 3) 12 | .end() 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/unit/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "jasmine": true 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /test/unit/index.js: -------------------------------------------------------------------------------- 1 | // Polyfill fn.bind() for PhantomJS 2 | /* eslint-disable no-extend-native */ 3 | Function.prototype.bind = require('function-bind') 4 | 5 | // require all test files (files that ends with .spec.js) 6 | var testsContext = require.context('./specs', true, /\.spec$/) 7 | testsContext.keys().forEach(testsContext) 8 | 9 | // require all src files except main.js for coverage. 10 | // you can also change this to match only the subset of files that 11 | // you want coverage for. 12 | var srcContext = require.context('../../src', true, /^\.\/(?!main(\.js)?$)/) 13 | srcContext.keys().forEach(srcContext) 14 | -------------------------------------------------------------------------------- /test/unit/karma.conf.js: -------------------------------------------------------------------------------- 1 | // This is a karma config file. For more details see 2 | // http://karma-runner.github.io/0.13/config/configuration-file.html 3 | // we are also using it with karma-webpack 4 | // https://github.com/webpack/karma-webpack 5 | 6 | var path = require('path') 7 | var merge = require('webpack-merge') 8 | var baseConfig = require('../../build/webpack.base.conf') 9 | var projectRoot = path.resolve(__dirname, '../../') 10 | 11 | var webpackConfig = merge(baseConfig, { 12 | // use inline sourcemap for karma-sourcemap-loader 13 | devtool: '#inline-source-map', 14 | vue: { 15 | loaders: { 16 | js: 'isparta' 17 | } 18 | } 19 | }) 20 | 21 | // no need for app entry during tests 22 | delete webpackConfig.entry 23 | 24 | // make sure isparta loader is applied before eslint 25 | webpackConfig.module.preLoaders.unshift({ 26 | test: /\.js$/, 27 | loader: 'isparta', 28 | include: projectRoot, 29 | exclude: /test\/unit|node_modules/ 30 | }) 31 | 32 | // only apply babel for test files when using isparta 33 | webpackConfig.module.loaders.some(function (loader, i) { 34 | if (loader.loader === 'babel') { 35 | loader.include = /test\/unit/ 36 | return true 37 | } 38 | }) 39 | 40 | module.exports = function (config) { 41 | config.set({ 42 | // to run in additional browsers: 43 | // 1. install corresponding karma launcher 44 | // http://karma-runner.github.io/0.13/config/browsers.html 45 | // 2. add it to the `browsers` array below. 46 | browsers: ['PhantomJS'], 47 | frameworks: ['jasmine'], 48 | reporters: ['spec', 'coverage'], 49 | files: ['./index.js'], 50 | preprocessors: { 51 | './index.js': ['webpack', 'sourcemap'] 52 | }, 53 | webpack: webpackConfig, 54 | webpackMiddleware: { 55 | noInfo: true 56 | }, 57 | coverageReporter: { 58 | dir: './coverage', 59 | reporters: [ 60 | { type: 'lcov', subdir: '.' }, 61 | { type: 'text-summary' } 62 | ] 63 | } 64 | }) 65 | } 66 | -------------------------------------------------------------------------------- /test/unit/specs/Hello.spec.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Hello from 'src/components/Hello' 3 | 4 | describe('Hello.vue', () => { 5 | it('should render correct contents', () => { 6 | const vm = new Vue({ 7 | template: '
      ', 8 | components: { Hello } 9 | }).$mount() 10 | expect(vm.$el.querySelector('.hello h1').textContent).toBe('Hello World!') 11 | }) 12 | }) 13 | 14 | // also see example testing a component with mocks at 15 | // https://github.com/vuejs/vue-loader-example/blob/master/test/unit/a.spec.js#L24-L49 16 | --------------------------------------------------------------------------------