Add missing jQuery-UI inclusions.
[profile/ivi/cowhide.git] / Gruntfile.js
1 /*
2  * Copyright (c) 2012, Intel Corporation.
3  *
4  * This program is licensed under the terms and conditions of the
5  * Apache License, version 2.0.  The full text of the Apache License is at
6  * http://www.apache.org/licenses/LICENSE-2.0
7  *
8  */
9
10 module.exports = function(grunt) {
11
12   // Project configuration.
13   grunt.initConfig({
14     watch: {
15       files: [
16         'Gruntfile.js',
17
18         'src/javascripts/*.js',
19         'src/less/**/*.less',
20         'src/themes/**/*.less',
21
22         'tests/**/*.js'
23       ],
24       tasks: 'default'
25     },
26     clean: {
27       folder: 'dist'
28     },
29     jshint: {
30       all: [
31         'GruntFile.js',
32         'src/javascripts/*.js',
33         'test/**/*.js'
34       ],
35       options: {
36         "validthis": true,
37         "laxcomma" : true,
38         "laxbreak" : true,
39         "browser"  : true,
40         "eqnull"   : true,
41         "debug"    : true,
42         "devel"    : true,
43         "boss"     : true,
44         "expr"     : true,
45         "asi"      : true
46       }
47     },
48     less: {
49       default_: {
50         files: {
51           'dist/cowhide-default.css': 'src/themes/default/default.less',
52           'dist/cowhide-responsive.css': 'lib/bootstrap/less/responsive.less'
53         }
54       },
55       default_night: {
56         files: {
57           'dist/cowhide-default-night.css': 'src/themes/default/default-night.less'
58         }
59       },
60       amelia: {
61         files: {
62           'dist/cowhide-amelia.css': 'src/themes/amelia/amelia.less'
63         }
64       },
65       amelia_night: {
66         files: {
67           // TODO: add theme implementation for amelia-night.
68           'dist/cowhide-amelia-night.css': 'src/themes/amelia/amelia.less'
69         }
70       },
71       spruce: {
72         files: {
73           'dist/cowhide-spruce.css': 'src/themes/spruce/spruce.less'
74         }
75       },
76       spruce_night: {
77         files: {
78           // TODO: add theme implementation for spruce-night.
79           'dist/cowhide-spruce-night.css': 'src/themes/spruce/spruce.less'
80         }
81       }
82     },
83     concat: {
84       cowhide_js: {
85         src: [
86           'lib/jquery/dist/jquery.js',
87
88           'lib/jquery-ui/ui/jquery.ui.widget.js',
89           'lib/jquery-ui/ui/jquery.ui.mouse.js',
90           'lib/jquery-ui/ui/jquery.ui.slider.js',
91
92           'lib/lodash/lodash.js',
93
94           // Bootstrap files must preserve order.
95           'lib/bootstrap/js/bootstrap-transition.js',
96           'lib/bootstrap/js/bootstrap-alert.js',
97           'lib/bootstrap/js/bootstrap-button.js',
98           'lib/bootstrap/js/bootstrap-carousel.js',
99           'lib/bootstrap/js/bootstrap-collapse.js',
100           'lib/bootstrap/js/bootstrap-dropdown.js',
101           'lib/bootstrap/js/bootstrap-modal.js',
102           'lib/bootstrap/js/bootstrap-tooltip.js',
103           'lib/bootstrap/js/bootstrap-popover.js',
104           'lib/bootstrap/js/bootstrap-scrollspy.js',
105           'lib/bootstrap/js/bootstrap-tab.js',
106           'lib/bootstrap/js/bootstrap-typeahead.js',
107           'lib/bootstrap/js/bootstrap-affix.js',
108
109           'src/javascripts/api.js',
110
111           'src/javascripts/cowhide-core.js',
112           'src/javascripts/cowhide-widget.js',
113           'src/javascripts/cowhide-button.js',
114           'src/javascripts/cowhide-seat-selector.js',
115           'src/javascripts/cowhide-slider.js',
116           'src/javascripts/cowhide-text-input.js',
117           'src/javascripts/cowhide-radio-input.js',
118           'src/javascripts/cowhide-checkbox-input.js',
119           'src/javascripts/cowhide-select.js',
120           'src/javascripts/cowhide-page.js',
121           'src/javascripts/cowhide-header.js',
122           'src/javascripts/cowhide-simple-scrollable.js'
123         ], dest: 'dist/cowhide.js'
124       },
125       css_default: {
126         src: [
127           'lib/jquery-ui/dist/jquery-ui.css',
128           'dist/cowhide-default.css',
129         ], dest: 'dist/cowhide-default.css'
130       },
131       css_default_night: {
132         src: [
133           'lib/jquery-ui/dist/jquery-ui.css',
134           'dist/cowhide-default-night.css',
135         ], dest: 'dist/cowhide-default-night.css'
136       },
137       css_amelia: {
138         src: [
139           'lib/jquery-ui/dist/jquery-ui.css',
140           'dist/cowhide-amelia.css',
141         ], dest: 'dist/cowhide-amelia.css'
142       },
143       css_amelia_night: {
144         src: [
145           'lib/jquery-ui/dist/jquery-ui.css',
146           'dist/cowhide-amelia-night.css',
147         ], dest: 'dist/cowhide-amelia-night.css'
148       },
149       css_spruce: {
150         src: [
151           'lib/jquery-ui/dist/jquery-ui.css',
152           'dist/cowhide-spruce.css',
153         ], dest: 'dist/cowhide-spruce.css'
154       },
155       css_spruce_night: {
156         src: [
157           'lib/jquery-ui/dist/jquery-ui.css',
158           'dist/cowhide-spruce-night.css',
159         ], dest: 'dist/cowhide-spruce-night.css'
160       }
161     },
162     qunit: {
163         files: [
164             'tests/index.html'
165         ]
166     },
167     uglify: {
168       cowhide: {
169         src: ['dist/cowhide.js'],
170         dest: 'dist/cowhide.min.js'
171       }
172     },
173     cssmin: {
174       default_: {
175         src: ['dist/cowhide-default.css'],
176         dest: 'dist/cowhide-default.min.css'
177       },
178       responsive: {
179         src: ['dist/cowhide-responsive.css'],
180         dest: 'dist/cowhide-responsive.min.css'
181       },
182       default_night: {
183         src: ['dist/cowhide-default-night.css'],
184         dest: 'dist/cowhide-default-night.min.css'
185       },
186       amelia: {
187         src: ['dist/cowhide-amelia.css'],
188         dest: 'dist/cowhide-amelia.min.css'
189       },
190       amelia_night: {
191         src: ['dist/cowhide-amelia-night.css'],
192         dest: 'dist/cowhide-amelia-night.min.css'
193       },
194       spruce: {
195         src: ['dist/cowhide-spruce.css'],
196         dest: 'dist/cowhide-spruce.min.css'
197       },
198       spruce_night: {
199         src: ['dist/cowhide-spruce-night.css'],
200         dest: 'dist/cowhide-spruce-night.min.css'
201       }
202     },
203     copy: {
204       dist: {
205         files: [
206           {dest: 'dist/', src: ['images/**'], cwd: 'lib/jquery-ui/dist/', expand: true},
207           {dest: 'dist/', src: ['images/**']},
208           {dest: 'dist/', src: ['README.md']},
209           {dest: 'dist/', src: ['docs/**']}
210         ]
211       },
212     },
213     sed: {
214         images: {
215             path: ['dist/cowhide-default.css', 'dist/cowhide-default.min.css'],
216             pattern: 'img\/glyphicons',
217             replacement: 'images/glyphicons'
218         }
219     },
220     exec: {
221       build_docs: {
222         command: 'node dist/docs/build'
223       }
224     },
225     compress: {
226       dist: {
227         options: {
228           archive: 'dist/cowhide.zip'
229         },
230         files: [
231           {dest: 'cowhide', src: ['**'], cwd: 'dist', expand: true}
232         ]
233       }
234     }
235   });
236
237   // Default task.
238   grunt.loadNpmTasks('grunt-update-submodules');
239   grunt.loadNpmTasks('grunt-contrib-clean');
240   grunt.loadNpmTasks('grunt-contrib-jshint');
241   grunt.loadNpmTasks('grunt-contrib-qunit');
242   grunt.loadNpmTasks('grunt-contrib-less');
243   grunt.loadNpmTasks('grunt-contrib-concat');
244   grunt.loadNpmTasks('grunt-contrib-uglify');
245   grunt.loadNpmTasks('grunt-contrib-cssmin');
246   grunt.loadNpmTasks('grunt-contrib-copy');
247   grunt.loadNpmTasks('grunt-sed');
248   grunt.loadNpmTasks('grunt-exec');
249   grunt.loadNpmTasks('grunt-contrib-compress');
250
251   grunt.registerTask('submodules', ['update_submodules'])
252   grunt.registerTask('test', ['qunit']);
253   grunt.registerTask('default', [
254     'update_submodules',
255     'clean',
256     'jshint',
257     'less',
258     'concat',
259     'qunit',
260     'uglify',
261     'cssmin',
262     'copy',
263     'sed',
264     'exec:build_docs',
265     'compress']);
266 };