module.exports = function(grunt) { grunt.initConfig({ "pkg": grunt.file.readJSON("package.json"), "path": { "bower": "tmp-assets", "asset": "www/assets" }, mocha_phantomjs: { options: { 'reporter': 'dot', 'setting': [ 'loadImages=false' ] }, all: [ 'www/scripts/tests/*.html' ] }, qunit: { all: ['www/include/js/tests/*.html'] }, clean: { "assets": ["<%= path.asset %>"], "bower": ["<%= path.bower %>"] }, bower: { install: { options: { "copy": false } } }, shell : { generate_js_fixtures: { options: { stdout: true }, command : 'bin/developer phraseanet:generate-js-fixtures' } }, bower_postinst: { dist: { options: { components: { "bootstrap": ["npm", {"make": "bootstrap"}] } } } }, copy: { "autobahn": { "expand": true, "src": [ "<%= path.bower %>/autobahn/index.js", ], "dest": "<%= path.asset %>/autobahn/", "flatten": true, "rename": function(dest, src) { return dest + "autobahn.js" } }, "backbone": { "expand": true, "src": [ "<%= path.bower %>/backbone-amd/LICENSE", "<%= path.bower %>/backbone-amd/backbone.js" ], "dest": "<%= path.asset %>/backbone-amd/", "flatten": true }, "fancytree": { "expand": true, "src": [ "dist/*", "dist/**/*" ], "cwd": "<%= path.bower %>/fancytree", "dest": "<%= path.asset %>/fancytree/" }, "blueimp": { "expand": true, "src": "js/load-image.js", "dest": "<%= path.asset %>/blueimp-load-image/", "cwd": "<%= path.bower %>/blueimp-load-image", "flatten": true }, "bootstrap": { "expand": true, "cwd": "<%= path.bower %>/bootstrap", "src": [ "bootstrap/css/*", "bootstrap/js/*", "bootstrap/img/*", "less/*.less", "LICENSE" ], "rename": function(dest, src) { return dest + src.replace("bootstrap", ""); }, "dest": "<%= path.asset %>/bootstrap/" }, "bootstrap-multiselect": { "expand": true, "cwd": "<%= path.bower %>/bootstrap-multiselect/dist", "src": [ "css/bootstrap-multiselect.css", "js/bootstrap-multiselect.js" ], "dest": "<%= path.asset %>/bootstrap-multiselect/" }, "chai": { "expand": true, "src": "<%= path.bower %>/chai/chai.js", "dest": "<%= path.asset %>/chai/", "flatten": true }, "font-awesome": { "expand": true, "cwd": "<%= path.bower %>/font-awesome", "src": ["css/*", "font/*"], "dest": "<%= path.asset %>/font-awesome/" }, "geonames-server-jquery-plugin": { "expand": true, "flatten": true, "src": [ "<%= path.bower %>/geonames-server-jquery-plugin/LICENSE", "<%= path.bower %>/geonames-server-jquery-plugin/jquery.geonames.js" ], "dest": "<%= path.asset %>/geonames-server-jquery-plugin" } , "humane-js": { "expand": true, "src": ["humane.js", "themes/libnotify.css"], "dest": "<%= path.asset %>/humane-js/", "cwd": "<%= path.bower %>/humane-js/" }, "i18next": { "expand": true, "src": [ "<%= path.bower %>/i18next/release/i18next.amd-1.6.3.js", "<%= path.bower %>/i18next/license" ], "dest": "<%= path.asset %>/i18next/", "flatten": true }, "jquery": { "expand": true, "src": "<%= path.bower %>/jquery/jquery.js", "dest": "<%= path.asset %>/jquery/", "flatten": true }, "jquery-galleria": { "expand": true, "src": [ "<%= path.bower %>/jquery-galleria/src/galleria.js", "<%= path.bower %>/jquery-galleria/src/themes/classic/!(classic-demo.html)*", "<%= path.bower %>/jquery-galleria/LICENSE" ], "dest": "<%= path.asset %>/jquery-galleria/", "flatten": true }, "jquery-file-upload": { "expand": true, "src": [ "<%= path.bower %>/jquery-file-upload/js/vendor/*", "<%= path.bower %>/jquery-file-upload/js/jquery.fileupload.js", "<%= path.bower %>/jquery-file-upload/js/jquery.iframe-transport.js", "<%= path.bower %>/jquery-file-upload/css/jquery.fileupload-ui.css" ], "dest": "<%= path.asset %>/jquery-file-upload/", "flatten": true }, "jquery.treeview": { "expand": true, "cwd": "<%= path.bower %>/jquery.treeview", "src": [ "images/*", "jquery.treeview*" ], "dest": "<%= path.asset %>/jquery.treeview/" }, "jquery-mobile": { "expand": true, "cwd": "<%= path.bower %>/jquery-mobile-bower/", "src": [ "images/*", "css/jquery.mobile-1.3.2.css", "js/jquery.mobile-1.3.2.js" ], "flatten": true, "dest": "<%= path.asset %>/jquery-mobile/" }, "jquery.cookie": { "expand": true, "cwd": "<%= path.bower %>/jquery.cookie", "src": [ "jquery.cookie.js" ], "dest": "<%= path.asset %>/jquery.cookie/" }, "jquery-ui": { "expand": true, "cwd": "<%= path.bower %>/jquery-ui", "src": [ "ui/i18n/*", "ui/*", "themes/base/*", "themes/base/images/*", "MIT-LICENSE.txt" ], "rename": function(dest, src) { var dest = dest + src.replace("ui/", "/"); return dest.replace("themes/base/", "/") }, "dest": "<%= path.asset %>/jquery.ui/" }, "js-fixtures": { "expand": true, "src": [ "<%= path.bower %>/js-fixtures/LICENSE", "<%= path.bower %>/js-fixtures/fixtures.js" ], "dest": "<%= path.asset %>/js-fixtures/", "flatten": true }, "json2": { "expand": true, "src": "<%= path.bower %>/json2/json2.js", "dest": "<%= path.asset %>/json2/", "flatten": true }, "mocha": { "expand": true, "src": [ "<%= path.bower %>/mocha/LICENSE", "<%= path.bower %>/mocha/mocha.js", "<%= path.bower %>/mocha/mocha.css" ], "dest": "<%= path.asset %>/mocha/", "flatten": true }, "modernizr": { "expand": true, "src": "<%= path.bower %>/modernizr/modernizr.js", "dest": "<%= path.asset %>/modernizr/", "flatten": true }, "normalize": { "expand": true, "src": [ "<%= path.bower %>/normalize-css/normalize.css", "<%= path.bower %>/normalize-css/LICENSE.md" ], "dest": "<%= path.asset %>/normalize-css/", "flatten": true }, "sinon-chai": { "expand": true, "src": [ "<%= path.bower %>/sinon-chai/lib/sinon-chai.js", "<%= path.bower %>/sinon-chai/LICENCE.txt", ], "dest": "<%= path.asset %>/sinon-chai/", "flatten": true }, "sinonjs": { "expand": true, "src": [ "<%= path.bower %>/sinonjs/sinon.js" ], "dest": "<%= path.asset %>/sinonjs/", "flatten": true }, "squire": { "expand": true, "src": [ "<%= path.bower %>/squire/src/Squire.js", "<%= path.bower %>/squire/LICENCE" ], "dest": "<%= path.asset %>/squire/", "flatten": true }, "qunit": { "expand": true, "src": [ "qunit/qunit.css", "qunit/qunit.js", "addons/phantomjs/*" ], "dest": "<%= path.asset %>/qunit/", "cwd": "<%= path.bower %>/qunit/", "rename": function(dest, src) { return dest + src.replace("qunit", ""); } }, "requirejs": { "expand": true, "src": [ "<%= path.bower %>/requirejs/LICENSE", "<%= path.bower %>/requirejs/require.js" ], "dest": "<%= path.asset %>/requirejs/", "flatten": true }, "swfobject": { "expand": true, "src": "<%= path.bower %>/swfobject/swfobject/swfobject.js", "dest": "<%= path.asset %>/swfobject", "flatten": true }, "tinymce": { "expand": true, "cwd": "<%= path.bower %>/tinymce/", "src": [ "plugins/**", "skins/**", "themes/**", "*.js", "changelog.txt", "license.txt" ], "dest": "<%= path.asset %>/tinymce" }, "underscore": { "expand": true, "src": [ "<%= path.bower %>/underscore-amd/LICENSE", "<%= path.bower %>/underscore-amd/underscore.js" ], "dest": "<%= path.asset %>/underscore-amd/", "flatten": true }, "web-socket-js": { "expand": true, "src": [ "<%= path.bower %>/web-socket-js/LICENSE.txt", "<%= path.bower %>/web-socket-js/WebSocketMain.swf", "<%= path.bower %>/web-socket-js/web_socket.js" ], "dest": "<%= path.asset %>/web-socket-js", "flatten": true }, "zxcvbn": { "expand": true, "src": [ "<%= path.bower %>/zxcvbn/LICENSE.txt", "<%= path.bower %>/zxcvbn/zxcvbn-async.js" ], "dest": "<%= path.asset %>/zxcvbn", "flatten": true } }, csslint: { options: { // Possible Errors "box-model": false, "duplicate-properties": false, "empty-rules": false, "errors": false, "known-properties": false, "display-property-grouping": false, "non-link-hover": false, // Compatibility "adjoining-classes": false, "box-sizing": false, "compatible-vendor-prefixes": false, "gradients": false, "text-indent": false, "fallback-colors": false, "vendor-prefix": false, "star-property-hack": false, "underscore-property-hack": false, "bulletproof-font-face": false, // Performance "font-faces": false, "regex-selectors": false, "unqualified-attributes": false, "universal-selector": false, "zero-units": false, "overqualified-elements": false, "duplicate-background-images": false, "import": false, // Maintainability & Duplication "important": false, "floats": false, "font-sizes": false, "ids": false, // Accessibility "outline-none": false, // OOCSS "qualified-headings": false, "unique-headings": false, // Others "shorthand": false }, all: { src: ['www/skins/**/*.css'] } } }); grunt.loadNpmTasks("grunt-contrib"); grunt.loadNpmTasks('grunt-shell'); grunt.loadNpmTasks("grunt-bower-task"); grunt.loadNpmTasks("grunt-bower-postinst"); grunt.loadNpmTasks('grunt-mocha-phantomjs'); grunt.registerTask("copy-assets", [ "copy:autobahn", "copy:backbone", "copy:blueimp", "copy:bootstrap", "copy:bootstrap-multiselect", "copy:chai", "copy:font-awesome", "copy:geonames-server-jquery-plugin", "copy:humane-js", "copy:i18next", "copy:jquery", "copy:jquery-galleria", "copy:jquery-file-upload", "copy:jquery-mobile", "copy:jquery.cookie", "copy:jquery-ui", "copy:jquery.treeview", "copy:json2", "copy:js-fixtures", "copy:modernizr", "copy:normalize", "copy:normalize", "copy:qunit", "copy:mocha", "copy:requirejs", "copy:sinon-chai", "copy:sinonjs", "copy:squire", "copy:swfobject", "copy:tinymce", "copy:underscore", "copy:web-socket-js", "copy:zxcvbn" ]); grunt.registerTask("install-assets", [ "clean:assets", "bower", "bower_postinst", "copy-assets", "clean:bower" ]); grunt.registerTask('test', ["shell:generate_js_fixtures", "qunit", "mocha_phantomjs"]); };