| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311 | 
							- // AdminLTE Gruntfile
 
- module.exports = function (grunt) { // jshint ignore:line
 
-   'use strict';
 
-   grunt.initConfig({
 
-     pkg   : grunt.file.readJSON('package.json'),
 
-     watch : {
 
-       less : {
 
-         // Compiles less files upon saving
 
-         files: ['build/less/*.less'],
 
-         tasks: ['less:development', 'less:production', 'replace', 'notify:less']
 
-       },
 
-       js   : {
 
-         // Compile js files upon saving
 
-         files: ['build/js/*.js'],
 
-         tasks: ['js', 'notify:js']
 
-       },
 
-       skins: {
 
-         // Compile any skin less files upon saving
 
-         files: ['build/less/skins/*.less'],
 
-         tasks: ['less:skins', 'less:minifiedSkins', 'notify:less']
 
-       }
 
-     },
 
-     // Notify end of tasks
 
-     notify: {
 
-       less: {
 
-         options: {
 
-           title  : 'AdminLTE',
 
-           message: 'LESS finished running'
 
-         }
 
-       },
 
-       js  : {
 
-         options: {
 
-           title  : 'AdminLTE',
 
-           message: 'JS bundler finished running'
 
-         }
 
-       }
 
-     },
 
-     // 'less'-task configuration
 
-     // This task will compile all less files upon saving to create both AdminLTE.css and AdminLTE.min.css
 
-     less  : {
 
-       // Development not compressed
 
-       development  : {
 
-         files: {
 
-           // compilation.css  :  source.less
 
-           'dist/css/AdminLTE.css'                     : 'build/less/AdminLTE.less',
 
-           // AdminLTE without plugins
 
-           'dist/css/alt/AdminLTE-without-plugins.css' : 'build/less/AdminLTE-without-plugins.less',
 
-           // Separate plugins
 
-           'dist/css/alt/AdminLTE-select2.css'         : 'build/less/select2.less',
 
-           'dist/css/alt/AdminLTE-fullcalendar.css'    : 'build/less/fullcalendar.less',
 
-           'dist/css/alt/AdminLTE-bootstrap-social.css': 'build/less/bootstrap-social.less'
 
-         }
 
-       },
 
-       // Production compressed version
 
-       production   : {
 
-         options: {
 
-           compress: true
 
-         },
 
-         files  : {
 
-           // compilation.css  :  source.less
 
-           'dist/css/AdminLTE.min.css'                     : 'build/less/AdminLTE.less',
 
-           // AdminLTE without plugins
 
-           'dist/css/alt/AdminLTE-without-plugins.min.css' : 'build/less/AdminLTE-without-plugins.less',
 
-           // Separate plugins
 
-           'dist/css/alt/AdminLTE-select2.min.css'         : 'build/less/select2.less',
 
-           'dist/css/alt/AdminLTE-fullcalendar.min.css'    : 'build/less/fullcalendar.less',
 
-           'dist/css/alt/AdminLTE-bootstrap-social.min.css': 'build/less/bootstrap-social.less'
 
-         }
 
-       },
 
-       // Non minified skin files
 
-       skins        : {
 
-         files: {
 
-           'dist/css/skins/skin-blue.css'        : 'build/less/skins/skin-blue.less',
 
-           'dist/css/skins/skin-black.css'       : 'build/less/skins/skin-black.less',
 
-           'dist/css/skins/skin-yellow.css'      : 'build/less/skins/skin-yellow.less',
 
-           'dist/css/skins/skin-green.css'       : 'build/less/skins/skin-green.less',
 
-           'dist/css/skins/skin-red.css'         : 'build/less/skins/skin-red.less',
 
-           'dist/css/skins/skin-purple.css'      : 'build/less/skins/skin-purple.less',
 
-           'dist/css/skins/skin-blue-light.css'  : 'build/less/skins/skin-blue-light.less',
 
-           'dist/css/skins/skin-black-light.css' : 'build/less/skins/skin-black-light.less',
 
-           'dist/css/skins/skin-yellow-light.css': 'build/less/skins/skin-yellow-light.less',
 
-           'dist/css/skins/skin-green-light.css' : 'build/less/skins/skin-green-light.less',
 
-           'dist/css/skins/skin-red-light.css'   : 'build/less/skins/skin-red-light.less',
 
-           'dist/css/skins/skin-purple-light.css': 'build/less/skins/skin-purple-light.less',
 
-           'dist/css/skins/_all-skins.css'       : 'build/less/skins/_all-skins.less'
 
-         }
 
-       },
 
-       // Skins minified
 
-       minifiedSkins: {
 
-         options: {
 
-           compress: true
 
-         },
 
-         files  : {
 
-           'dist/css/skins/skin-blue.min.css'        : 'build/less/skins/skin-blue.less',
 
-           'dist/css/skins/skin-black.min.css'       : 'build/less/skins/skin-black.less',
 
-           'dist/css/skins/skin-yellow.min.css'      : 'build/less/skins/skin-yellow.less',
 
-           'dist/css/skins/skin-green.min.css'       : 'build/less/skins/skin-green.less',
 
-           'dist/css/skins/skin-red.min.css'         : 'build/less/skins/skin-red.less',
 
-           'dist/css/skins/skin-purple.min.css'      : 'build/less/skins/skin-purple.less',
 
-           'dist/css/skins/skin-blue-light.min.css'  : 'build/less/skins/skin-blue-light.less',
 
-           'dist/css/skins/skin-black-light.min.css' : 'build/less/skins/skin-black-light.less',
 
-           'dist/css/skins/skin-yellow-light.min.css': 'build/less/skins/skin-yellow-light.less',
 
-           'dist/css/skins/skin-green-light.min.css' : 'build/less/skins/skin-green-light.less',
 
-           'dist/css/skins/skin-red-light.min.css'   : 'build/less/skins/skin-red-light.less',
 
-           'dist/css/skins/skin-purple-light.min.css': 'build/less/skins/skin-purple-light.less',
 
-           'dist/css/skins/_all-skins.min.css'       : 'build/less/skins/_all-skins.less'
 
-         }
 
-       }
 
-     },
 
-     // Uglify task info. Compress the js files.
 
-     uglify: {
 
-       options   : {
 
-         mangle          : true,
 
-         preserveComments: 'some'
 
-       },
 
-       production: {
 
-         files: {
 
-           'dist/js/adminlte.min.js': ['dist/js/adminlte.js']
 
-         }
 
-       }
 
-     },
 
-     // Concatenate JS Files
 
-     concat: {
 
-       options: {
 
-         separator: '\n\n',
 
-         banner   : '/*! AdminLTE app.js\n'
 
-         + '* ================\n'
 
-         + '* Main JS application file for AdminLTE v2. This file\n'
 
-         + '* should be included in all pages. It controls some layout\n'
 
-         + '* options and implements exclusive AdminLTE plugins.\n'
 
-         + '*\n'
 
-         + '* @Author  Almsaeed Studio\n'
 
-         + '* @Support <https://www.almsaeedstudio.com>\n'
 
-         + '* @Email   <abdullah@almsaeedstudio.com>\n'
 
-         + '* @version <%= pkg.version %>\n'
 
-         + '* @repository <%= pkg.repository.url %>\n'
 
-         + '* @license MIT <http://opensource.org/licenses/MIT>\n'
 
-         + '*/\n\n'
 
-         + '// Make sure jQuery has been loaded\n'
 
-         + 'if (typeof jQuery === \'undefined\') {\n'
 
-         + 'throw new Error(\'AdminLTE requires jQuery\')\n'
 
-         + '}\n\n'
 
-       },
 
-       dist   : {
 
-         src : [
 
-           'build/js/BoxRefresh.js',
 
-           'build/js/BoxWidget.js',
 
-           'build/js/ControlSidebar.js',
 
-           'build/js/DirectChat.js',
 
-           'build/js/Layout.js',
 
-           'build/js/PushMenu.js',
 
-           'build/js/TodoList.js',
 
-           'build/js/Tree.js'
 
-         ],
 
-         dest: 'dist/js/adminlte.js'
 
-       }
 
-     },
 
-     // Replace image paths in AdminLTE without plugins
 
-     replace: {
 
-       withoutPlugins   : {
 
-         src         : ['dist/css/alt/AdminLTE-without-plugins.css'],
 
-         dest        : 'dist/css/alt/AdminLTE-without-plugins.css',
 
-         replacements: [
 
-           {
 
-             from: '../img',
 
-             to  : '../../img'
 
-           }
 
-         ]
 
-       },
 
-       withoutPluginsMin: {
 
-         src         : ['dist/css/alt/AdminLTE-without-plugins.min.css'],
 
-         dest        : 'dist/css/alt/AdminLTE-without-plugins.min.css',
 
-         replacements: [
 
-           {
 
-             from: '../img',
 
-             to  : '../../img'
 
-           }
 
-         ]
 
-       }
 
-     },
 
-     // Build the documentation files
 
-     includes: {
 
-       build: {
 
-         src    : ['*.html'], // Source files
 
-         dest   : 'documentation/', // Destination directory
 
-         flatten: true,
 
-         cwd    : 'documentation/build',
 
-         options: {
 
-           silent     : true,
 
-           includePath: 'documentation/build/include'
 
-         }
 
-       }
 
-     },
 
-     // Optimize images
 
-     image: {
 
-       dynamic: {
 
-         files: [
 
-           {
 
-             expand: true,
 
-             cwd   : 'build/img/',
 
-             src   : ['**/*.{png,jpg,gif,svg,jpeg}'],
 
-             dest  : 'dist/img/'
 
-           }
 
-         ]
 
-       }
 
-     },
 
-     // Validate JS code
 
-     jshint: {
 
-       options: {
 
-         jshintrc: 'build/js/.jshintrc'
 
-       },
 
-       grunt  : {
 
-         options: {
 
-           jshintrc: 'build/grunt/.jshintrc'
 
-         },
 
-         src    : 'Gruntfile.js'
 
-       },
 
-       core   : {
 
-         src: 'build/js/*.js'
 
-       },
 
-       demo   : {
 
-         src: 'dist/js/demo.js'
 
-       },
 
-       pages  : {
 
-         src: 'dist/js/pages/*.js'
 
-       }
 
-     },
 
-     jscs: {
 
-       options: {
 
-         config: 'build/js/.jscsrc'
 
-       },
 
-       core   : {
 
-         src: '<%= jshint.core.src %>'
 
-       },
 
-       pages  : {
 
-         src: '<%= jshint.pages.src %>'
 
-       }
 
-     },
 
-     // Validate CSS files
 
-     csslint: {
 
-       options: {
 
-         csslintrc: 'build/less/.csslintrc'
 
-       },
 
-       dist   : [
 
-         'dist/css/AdminLTE.css'
 
-       ]
 
-     },
 
-     // Validate Bootstrap HTML
 
-     bootlint: {
 
-       options: {
 
-         relaxerror: ['W005']
 
-       },
 
-       files  : ['pages/**/*.html', '*.html']
 
-     },
 
-     // Delete images in build directory
 
-     // After compressing the images in the build/img dir, there is no need
 
-     // for them
 
-     clean: {
 
-       build: ['build/img/*']
 
-     }
 
-   });
 
-   // Load all grunt tasks
 
-   // LESS Compiler
 
-   grunt.loadNpmTasks('grunt-contrib-less');
 
-   // Watch File Changes
 
-   grunt.loadNpmTasks('grunt-contrib-watch');
 
-   // Compress JS Files
 
-   grunt.loadNpmTasks('grunt-contrib-uglify');
 
-   // Include Files Within HTML
 
-   grunt.loadNpmTasks('grunt-includes');
 
-   // Optimize images
 
-   grunt.loadNpmTasks('grunt-image');
 
-   // Validate JS code
 
-   grunt.loadNpmTasks('grunt-contrib-jshint');
 
-   grunt.loadNpmTasks('grunt-jscs');
 
-   // Delete not needed files
 
-   grunt.loadNpmTasks('grunt-contrib-clean');
 
-   // Lint CSS
 
-   grunt.loadNpmTasks('grunt-contrib-csslint');
 
-   // Lint Bootstrap
 
-   grunt.loadNpmTasks('grunt-bootlint');
 
-   // Concatenate JS files
 
-   grunt.loadNpmTasks('grunt-contrib-concat');
 
-   // Notify
 
-   grunt.loadNpmTasks('grunt-notify');
 
-   // Replace
 
-   grunt.loadNpmTasks('grunt-text-replace');
 
-   // Linting task
 
-   grunt.registerTask('lint', ['jshint', 'csslint', 'bootlint']);
 
-   // JS task
 
-   grunt.registerTask('js', ['concat', 'uglify']);
 
-   // CSS Task
 
-   grunt.registerTask('css', ['less:development', 'less:production', 'replace']);
 
-   // The default task (running 'grunt' in console) is 'watch'
 
-   grunt.registerTask('default', ['watch']);
 
- };
 
 
  |