2014-09-07 09:56:17 +02:00
|
|
|
module.exports = function (grunt) {
|
|
|
|
// Initializes the Grunt tasks with the following settings
|
|
|
|
grunt.initConfig({
|
|
|
|
|
|
|
|
pkg: grunt.file.readJSON('package.json'),
|
2014-09-07 12:07:28 +02:00
|
|
|
|
2014-10-10 15:34:45 +02:00
|
|
|
version: '<%= pkg.version %>',
|
2014-09-07 09:56:17 +02:00
|
|
|
dist_folder: 'dist/',
|
|
|
|
source_folder: 'src/',
|
2015-03-14 12:00:38 +01:00
|
|
|
frags_folder: 'frags/',
|
2014-09-07 09:56:17 +02:00
|
|
|
|
|
|
|
// A list of files, which will be syntax-checked by JSHint
|
|
|
|
jshint: {
|
2014-11-23 04:34:57 +01:00
|
|
|
src: [
|
|
|
|
'Gruntfile.js',
|
|
|
|
'<%= source_folder %>*.js',
|
2015-03-06 09:49:30 +01:00
|
|
|
'!<%= source_folder %>tablefilter.js'
|
2014-11-23 04:34:57 +01:00
|
|
|
],
|
2014-09-07 09:56:17 +02:00
|
|
|
options: {
|
2014-11-15 15:34:32 +01:00
|
|
|
jshintrc: '.jshintrc'
|
2014-09-07 09:56:17 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2014-10-26 11:48:13 +01:00
|
|
|
watch: {
|
|
|
|
files: [
|
2014-11-16 01:29:07 +01:00
|
|
|
'src-es6/**/*.js',
|
2014-11-23 04:34:57 +01:00
|
|
|
'<%= source_folder %>**/*.js',
|
|
|
|
'<%= source_folder %>**/*.css',
|
|
|
|
'<%= source_folder %>**/*.html'
|
2014-10-26 11:48:13 +01:00
|
|
|
],
|
|
|
|
tasks: ['dev']
|
|
|
|
},
|
|
|
|
|
2014-11-08 13:37:24 +01:00
|
|
|
qunit: {
|
|
|
|
files: ['test/**/*.html']
|
|
|
|
},
|
|
|
|
|
2015-04-04 10:10:09 +02:00
|
|
|
requirejs:{
|
2015-03-14 12:00:38 +01:00
|
|
|
'compile-main': {
|
2014-11-01 15:34:37 +01:00
|
|
|
options: {
|
2014-11-23 04:34:57 +01:00
|
|
|
baseUrl: '<%= source_folder %>',
|
2015-04-04 10:10:09 +02:00
|
|
|
include: ['../libs/almond/almond', 'tablefilter'],
|
2015-03-06 09:49:30 +01:00
|
|
|
// exclude: [
|
|
|
|
// 'extensions/sortabletable/sortabletable',
|
|
|
|
// 'extensions/sortabletable/adapterSortabletable'
|
|
|
|
// ],
|
2014-11-23 04:34:57 +01:00
|
|
|
shim: {
|
2015-04-04 10:10:09 +02:00
|
|
|
'extensions/sortabletable/sortabletable': {
|
2014-11-23 04:34:57 +01:00
|
|
|
exports: 'SortableTable'
|
|
|
|
}
|
2015-03-06 09:49:30 +01:00
|
|
|
},
|
2015-04-04 10:10:09 +02:00
|
|
|
wrap: {
|
|
|
|
startFile: "<%= frags_folder %>start.frag",
|
|
|
|
endFile: "<%= frags_folder %>end.frag"
|
|
|
|
},
|
|
|
|
name: 'tablefilter',
|
|
|
|
out: '<%= dist_folder %>tablefilter.js',
|
|
|
|
optimize: 'none'
|
2014-11-01 15:34:37 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2015-04-04 10:10:09 +02:00
|
|
|
// requirejs: {
|
|
|
|
// 'compile-main': {
|
|
|
|
// options: {
|
|
|
|
// // appDir: "<%= dist_folder %>",
|
|
|
|
// baseUrl: '<%= source_folder %>',
|
|
|
|
// paths: {
|
|
|
|
// almond: '../libs/almond/almond',
|
|
|
|
// sortabletable: 'extensions/sortabletable/sortabletable',
|
|
|
|
// adapterSortabletable: 'extensions/sortabletable/adapterSortabletable'
|
|
|
|
// },
|
|
|
|
// // include: ['../libs/almond/almond', 'tablefilter'],
|
|
|
|
// // exclude: [
|
|
|
|
// // 'extensions/sortabletable/sortabletable',
|
|
|
|
// // 'extensions/sortabletable/adapterSortabletable'
|
|
|
|
// // ],
|
|
|
|
// // name: 'tablefilter',
|
|
|
|
// // out: '<%= dist_folder %>tablefilter.js',
|
|
|
|
// dir: '<%= dist_folder %>',
|
|
|
|
// wrap: {
|
|
|
|
// startFile: "<%= frags_folder %>start.frag",
|
|
|
|
// endFile: "<%= frags_folder %>end.frag"
|
|
|
|
// },
|
|
|
|
// // insertRequire: ['tablefilter'],
|
|
|
|
// shim: {
|
|
|
|
// 'sortabletable': {
|
|
|
|
// exports: 'SortableTable'
|
|
|
|
// }
|
|
|
|
// },
|
|
|
|
// modules:[
|
|
|
|
// {
|
|
|
|
// name: 'extensions/sortabletable/adapterSortabletable',
|
|
|
|
// include: [
|
|
|
|
// 'extensions/sortabletable/adapterSortabletable',
|
|
|
|
// 'extensions/sortabletable/sortabletable'
|
|
|
|
// ]
|
|
|
|
// },
|
|
|
|
// {
|
|
|
|
// name: 'tablefilter',
|
|
|
|
// create: true,
|
|
|
|
// include: [
|
|
|
|
// 'almond',
|
|
|
|
// 'tablefilter'
|
|
|
|
// ],
|
|
|
|
// exclude: ['require'],
|
|
|
|
// excludeShallow: [
|
|
|
|
// 'adapterSortabletable'
|
|
|
|
// ]
|
|
|
|
// }
|
|
|
|
// ],
|
|
|
|
// removeCombined: true,
|
|
|
|
// findNestedDependencies: false,
|
|
|
|
// optimize: 'none'/*'uglify2'*/,
|
|
|
|
// generateSourceMaps: false/*,
|
|
|
|
// preserveLicenseComments: false,
|
|
|
|
// generateSourceMaps: true*/
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// // ,
|
|
|
|
// // 'compile-extensions': {
|
|
|
|
// // options:{
|
|
|
|
// // baseUrl: '<%= source_folder %>extensions',
|
|
|
|
// // dir: '<%= dist_folder %>/extensions',
|
|
|
|
// // // paths: {
|
|
|
|
// // // sortabletable: 'sortabletable/sortabletable',
|
|
|
|
// // // adapterSortabletable: 'sortabletable/adapterSortabletable'
|
|
|
|
// // // },
|
|
|
|
// // wrap: {
|
|
|
|
// // startFile: "<%= frags_folder %>start.sort.frag",
|
|
|
|
// // endFile: "<%= frags_folder %>end.sort.frag"
|
|
|
|
// // },
|
|
|
|
// // modules:[
|
|
|
|
// // {
|
|
|
|
// // name: 'sortabletable/adapterSortabletable',
|
|
|
|
// // include: [
|
|
|
|
// // 'sortabletable/adapterSortabletable',
|
|
|
|
// // 'sortabletable/sortabletable'
|
|
|
|
// // ]
|
|
|
|
// // }
|
|
|
|
// // ],
|
|
|
|
// // removeCombined: true,
|
|
|
|
// // findNestedDependencies: false,
|
|
|
|
// // optimize: 'none'/*'uglify2',
|
|
|
|
// // preserveLicenseComments: false,
|
|
|
|
// // generateSourceMaps: true*/
|
|
|
|
// // }
|
|
|
|
// // }
|
|
|
|
// },
|
|
|
|
|
2014-09-07 09:56:17 +02:00
|
|
|
concat: {
|
2014-11-01 15:34:37 +01:00
|
|
|
/*js: {
|
2014-09-07 09:56:17 +02:00
|
|
|
files: [{
|
2015-03-06 09:49:30 +01:00
|
|
|
src: ['<%= source_folder %>tablefilter.js'],
|
|
|
|
dest: '<%= dist_folder %>tablefilter.js'
|
2014-09-07 09:56:17 +02:00
|
|
|
}]
|
2014-11-01 15:34:37 +01:00
|
|
|
},*/
|
2014-09-07 09:56:17 +02:00
|
|
|
css: {
|
|
|
|
files: [{
|
|
|
|
src: ['<%= source_folder %>filtergrid.css'],
|
|
|
|
dest: '<%= dist_folder %>filtergrid.css'
|
|
|
|
}]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
// and minified (source and destination files)
|
|
|
|
uglify: {
|
|
|
|
|
|
|
|
options: {
|
|
|
|
banner: '/*------------------------------------------------------------------------ \n' +
|
2014-10-10 15:34:45 +02:00
|
|
|
'\t- TableFilter v<%= version %> by Max Guglielmi \n' +
|
2014-09-07 09:56:17 +02:00
|
|
|
'\t- build date: <%= grunt.template.today() %> \n' +
|
|
|
|
'\t- http://tablefilter.free.fr \n' +
|
|
|
|
'\t- Copyright (c) 2014, Licensed under the MIT License \n' +
|
|
|
|
'------------------------------------------------------------------------*/ \n'
|
|
|
|
},
|
|
|
|
|
|
|
|
js: {
|
2015-03-07 12:14:25 +01:00
|
|
|
files: [{
|
|
|
|
src: ['<%= dist_folder %>tablefilter.js'],
|
|
|
|
dest: '<%= dist_folder %>tablefilter.js'
|
|
|
|
}]
|
2014-09-07 09:56:17 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
cssmin: {
|
|
|
|
combine: {
|
|
|
|
options: {
|
|
|
|
banner: '/*------------------------------------------------------------------------ \n' +
|
|
|
|
'\t- TableFilter stylesheet by Max Guglielmi \n' +
|
|
|
|
'\t- (build date: <%= grunt.template.today() %>) \n' +
|
|
|
|
'\t- Edit below for your projects\' needs \n' +
|
|
|
|
'------------------------------------------------------------------------*/ \n'
|
|
|
|
},
|
|
|
|
files: {
|
|
|
|
'<%= concat.css.files[0].dest %>': ['<%= concat.css.files[0].dest %>']
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
2014-09-07 12:07:28 +02:00
|
|
|
|
2014-09-07 09:56:17 +02:00
|
|
|
copy: {
|
2015-03-07 12:14:25 +01:00
|
|
|
tablefilter: {
|
2014-09-07 12:07:28 +02:00
|
|
|
files: [
|
2015-03-07 12:14:25 +01:00
|
|
|
{ src: 'libs/sortabletable.js', dest: '<%= source_folder %>extensions/sortabletable/sortabletable.js' },
|
2015-04-04 10:10:09 +02:00
|
|
|
// { src: 'libs/requirejs/require.js', dest: '<%= dist_folder %>require.js' },
|
2015-03-01 11:44:39 +01:00
|
|
|
// { src: ['**'], cwd: '<%= source_folder %>TF_Modules/', dest: '<%= dist_folder %>TF_Modules/', expand: true },
|
2015-04-06 10:45:46 +02:00
|
|
|
|
|
|
|
// TODO: remove ezEditTable
|
|
|
|
{ src: ['**'], cwd: 'libs/ezEditTable/', dest: '<%= source_folder %>extensions/ezEditTable/', expand: true },
|
|
|
|
{ src: ['**'], cwd: 'libs/ezEditTable/', dest: '<%= dist_folder %>extensions/ezEditTable/', expand: true },
|
|
|
|
//
|
2014-09-07 09:56:17 +02:00
|
|
|
{ src: ['**'], cwd: '<%= source_folder %>TF_Themes/', dest: '<%= dist_folder %>TF_Themes/', expand: true }
|
2014-09-07 12:07:28 +02:00
|
|
|
]
|
|
|
|
}
|
2014-11-15 15:34:32 +01:00
|
|
|
},
|
2014-11-01 15:34:37 +01:00
|
|
|
|
2015-03-06 09:49:30 +01:00
|
|
|
babel: {
|
2015-03-14 12:00:38 +01:00
|
|
|
'build-main': {
|
|
|
|
options: {
|
|
|
|
sourceMap: true,
|
2015-04-04 10:10:09 +02:00
|
|
|
modules: 'amd',
|
|
|
|
compact: false
|
2015-03-14 12:00:38 +01:00
|
|
|
},
|
2014-11-15 15:34:32 +01:00
|
|
|
files: [{
|
|
|
|
expand: true,
|
2014-11-16 01:29:07 +01:00
|
|
|
cwd: 'src-es6',
|
2015-03-14 12:00:38 +01:00
|
|
|
src: ['*.js'],
|
2014-11-16 01:29:07 +01:00
|
|
|
dest: '<%= source_folder %>'
|
2015-03-14 12:00:38 +01:00
|
|
|
},{
|
|
|
|
expand: true,
|
|
|
|
cwd: 'src-es6/modules',
|
|
|
|
src: ['*.js'],
|
|
|
|
dest: '<%= source_folder %>modules'
|
|
|
|
}]
|
|
|
|
},
|
|
|
|
'build-extensions':{
|
|
|
|
options: {
|
|
|
|
sourceMap: true,
|
|
|
|
modules: 'amd'
|
|
|
|
},
|
|
|
|
files: [{
|
|
|
|
expand: true,
|
|
|
|
cwd: 'src-es6/extensions',
|
|
|
|
src: ['**/*.js'],
|
|
|
|
dest: '<%= source_folder %>extensions'
|
2014-11-15 15:34:32 +01:00
|
|
|
}]
|
|
|
|
}
|
|
|
|
}
|
2014-09-07 09:56:17 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
// Load the plugins that provide the tasks we specified in package.json.
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-jshint');
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-cssmin');
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-copy');
|
2014-10-26 11:48:13 +01:00
|
|
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
2014-11-08 13:37:24 +01:00
|
|
|
grunt.loadNpmTasks('grunt-contrib-qunit');
|
2014-11-01 12:52:59 +01:00
|
|
|
grunt.loadNpmTasks('grunt-contrib-requirejs');
|
2015-02-28 10:27:28 +01:00
|
|
|
grunt.loadNpmTasks('grunt-babel');
|
2014-09-07 09:56:17 +02:00
|
|
|
|
|
|
|
// This is the default task being executed if Grunt
|
|
|
|
// is called without any further parameter.
|
2015-03-14 12:00:38 +01:00
|
|
|
grunt.registerTask('default', ['jshint', 'toes5', 'requirejs', 'concat', 'uglify', 'cssmin', 'copy', 'qunit']);
|
|
|
|
grunt.registerTask('build', ['jshint', 'toes5', 'requirejs', 'concat', /*'uglify',*/ 'cssmin', 'copy']);
|
|
|
|
grunt.registerTask('dev', ['jshint', 'toes5', 'concat', 'cssmin', 'copy']);
|
2015-03-29 11:56:32 +02:00
|
|
|
grunt.registerTask('build-requirejs', ['requirejs:compile-main']);
|
2015-03-14 12:00:38 +01:00
|
|
|
grunt.registerTask('toes5', ['babel:build-main','babel:build-extensions']);
|
2014-11-08 13:37:24 +01:00
|
|
|
grunt.registerTask('test', ['qunit']);
|
2015-02-15 09:55:23 +01:00
|
|
|
};
|