This repository has been archived by the owner on Nov 25, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 293
/
Gruntfile.js
280 lines (280 loc) · 14 KB
/
Gruntfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
module.exports = function(grunt) {
grunt.initConfig({
env: {
build: {
NODE_ENV: 'production',
DEST: 'dist'
},
dev: {
NODE_ENV: 'development',
DEST: 'tmp'
}
},
uglify: {
options: {
mangle: false,
compress: {
hoist_funs: false
}
},
js: {
files: {
'res/js/pydio.min.js': [
'res/js/vendor/modernizr/modernizr.min.js',
'res/js/core/lang/Observable.js',
'res/js/core/lang/Logger.js',
'res/js/core/util/LangUtils.js',
'res/js/core/util/XMLUtils.js',
'res/js/core/util/PathUtils.js',
'res/js/core/util/HasherUtils.js',
'res/js/core/util/CookiesManager.js',
'res/js/core/model/Router.js',
'res/js/core/model/AjxpNode.js',
'res/js/ui/prototype/util/ajxp_utils.js',
'res/js/ui/prototype/interfaces/class.IAjxpNodeProvider.js',
'res/js/ui/prototype/interfaces/class.IAjxpWidget.js',
'res/js/ui/prototype/interfaces/class.IActionProvider.js',
'res/js/ui/prototype/interfaces/class.IFocusable.js',
'res/js/ui/prototype/interfaces/class.IContextMenuable.js',
'res/js/ui/prototype/class.AjxpPane.js',
'res/js/vendor/prototype/webfx.selectable.js',
'res/js/vendor/prototype/webfx.sortable.js',
'res/js/vendor/prototype/proto.menu.js',
'res/js/vendor/prototype/splitter.js',
'res/js/vendor/prototype/cookiejar.js',
'res/js/vendor/prototype/protopass.js',
'res/js/vendor/prototype/resizable.js',
'res/js/vendor/prototype/es6compat.js',
'res/js/vendor/leightbox/lightbox.js',
'res/js/vendor/scriptaculous/src/builder.js',
'res/js/vendor/scriptaculous/src/effects.js',
'res/js/vendor/scriptaculous/src/dragdrop.js',
'res/js/vendor/scriptaculous/src/controls.js',
'res/js/vendor/scriptaculous/src/slider.js',
'res/js/vendor/prototype/cssfx.js',
'res/js/vendor/prototype/proto.scroller.js',
'res/js/vendor/prototype/carousel.js',
'res/js/vendor/prototype/accordion.js',
'res/js/vendor/webfx/xtree.js',
'res/js/vendor/webfx/ajxptree.js',
'res/js/vendor/chosen/event.simulate.js',
'res/js/vendor/chosen/chosen.proto.js',
'res/js/core/model/User.js',
'res/js/core/http/ResourcesManager.js',
'res/js/core/model/RemoteNodeProvider.js',
'res/js/core/model/EmptyNodeProvider.js',
'res/js/core/model/Repository.js',
'res/js/core/model/BackgroundTasksManager.js',
'res/js/core/http/PydioApi.js',
'res/js/core/model/Action.js',
'res/js/core/model/Controller.js',
'res/js/core/model/PydioDataModel.js',
'res/js/core/model/Registry.js',
'res/js/ui/prototype/class.AjxpDraggable.js',
'res/js/ui/prototype/class.AjxpSortable.js',
'res/js/ui/prototype/class.AjxpTabulator.js',
'res/js/ui/prototype/class.VisibilityToggler.js',
'res/js/ui/prototype/class.AjxpSimpleTabs.js',
'res/js/ui/prototype/class.RepositorySelect.js',
'res/js/ui/prototype/class.RepositorySimpleLabel.js',
'res/js/ui/prototype/class.Breadcrumb.js',
'res/js/ui/prototype/class.LocationBar.js',
'res/js/ui/prototype/class.UserWidget.js',
'res/js/ui/prototype/class.LogoWidget.js',
'res/js/ui/prototype/class.AjxpAutoCompleter.js',
'res/js/ui/prototype/class.AjxpUsersCompleter.js',
'res/js/ui/prototype/class.TreeSelector.js',
'res/js/ui/prototype/class.SliderInput.js',
'res/js/ui/prototype/class.ActionsToolbar.js',
'res/js/ui/prototype/class.BackgroundManagerPane.js',
'res/js/ui/prototype/class.HeaderResizer.js',
'res/js/ui/prototype/class.PreviewFactory.js',
'res/js/ui/prototype/class.FilesList.js',
'res/js/ui/prototype/class.FoldersTree.js',
'res/js/ui/prototype/class.SearchEngine.js',
'res/js/ui/prototype/class.FetchedResultPane.js',
'res/js/ui/prototype/class.InfoPanel.js',
'res/js/ui/prototype/class.PropertyPanel.js',
'res/js/ui/prototype/class.AbstractEditor.js',
'res/js/ui/prototype/class.Modal.js',
'res/js/ui/prototype/class.BookmarksBar.js',
'res/js/ui/prototype/class.FormManager.js',
'res/js/ui/prototype/class.DataModelProperty.js',
'res/js/ui/prototype/class.MultiDownloader.js',
'res/js/ui/prototype/class.ActivityMonitor.js',
'res/js/ui/prototype/class.AjxpReactComponent.js',
'res/js/ui/prototype/class.AjxpReactDialogLoader.js',
'res/js/ui/prototype/class.PydioUI.js',
'res/js/core/Pydio.js'
]
}
},
nodejs: {
files: {
'res/js/vendor/nodejs/bundle.prod.min.js': ['res/js/vendor/nodejs/bundle.prod.js'],
'res/js/vendor/nodejs/bundle.legacy.min.js': ['res/js/vendor/nodejs/bundle.legacy.prod.js']
}
}
},
babel: {
options: {
loose: 'all'
},
dist: {
files: [
{
mode: {loose: true},
expand: true,
cwd: 'res/js/es6/',
src: ['**/*.es6'],
dest: 'res/js/core/',
ext: '.js'
}
]
},
materialui: {
files: [
{
mode: {loose: false},
expand: true,
cwd: 'node_modules/material-ui/src/',
src: ['**/*.js', '**/*.jsx'],
dest: 'node_modules/material-ui/lib/',
ext: '.js'
}]
},
pydio:{
files: [
{
expand: true,
cwd: 'res/js/ui/reactjs/jsx',
src: ['**/*.js'],
dest: 'res/js/ui/reactjs/build/',
ext: '.js'
}
]
}
},
browserify: {
dist: {
files: {
'res/js/vendor/nodejs/bundle.prod.js': 'res/js/vendor/nodejs/export.js',
'res/js/vendor/nodejs/bundle.legacy.prod.js': 'res/js/vendor/nodejs/export.legacy.js'
}
}
},
watch: {
js: {
files: [
'res/js/vendor/modernizr/modernizr.min.js',
'res/js/core/lang/Observable.js',
'res/js/core/lang/Logger.js',
'res/js/core/util/LangUtils.js',
'res/js/core/util/XMLUtils.js',
'res/js/core/util/PathUtils.js',
'res/js/core/util/HasherUtils.js',
'res/js/core/util/CookiesManager.js',
'res/js/core/model/Router.js',
'res/js/core/model/AjxpNode.js',
'res/js/ui/prototype/util/ajxp_utils.js',
'res/js/ui/prototype/interfaces/class.IAjxpNodeProvider.js',
'res/js/ui/prototype/interfaces/class.IAjxpWidget.js',
'res/js/ui/prototype/interfaces/class.IActionProvider.js',
'res/js/ui/prototype/interfaces/class.IFocusable.js',
'res/js/ui/prototype/interfaces/class.IContextMenuable.js',
'res/js/ui/prototype/class.AjxpPane.js',
'res/js/vendor/prototype/webfx.selectable.js',
'res/js/vendor/prototype/webfx.sortable.js',
'res/js/vendor/prototype/proto.menu.js',
'res/js/vendor/prototype/splitter.js',
'res/js/vendor/prototype/cookiejar.js',
'res/js/vendor/prototype/protopass.js',
'res/js/vendor/prototype/resizable.js',
'res/js/vendor/prototype/es6compat.js',
'res/js/vendor/leightbox/lightbox.js',
'res/js/vendor/scriptaculous/src/builder.js',
'res/js/vendor/scriptaculous/src/effects.js',
'res/js/vendor/scriptaculous/src/dragdrop.js',
'res/js/vendor/scriptaculous/src/controls.js',
'res/js/vendor/scriptaculous/src/slider.js',
'res/js/vendor/prototype/cssfx.js',
'res/js/vendor/prototype/proto.scroller.js',
'res/js/vendor/prototype/carousel.js',
'res/js/vendor/prototype/accordion.js',
'res/js/vendor/webfx/xtree.js',
'res/js/vendor/webfx/ajxptree.js',
'res/js/vendor/chosen/event.simulate.js',
'res/js/vendor/chosen/chosen.proto.js',
'res/js/core/model/User.js',
'res/js/core/http/ResourcesManager.js',
'res/js/core/model/RemoteNodeProvider.js',
'res/js/core/model/EmptyNodeProvider.js',
'res/js/core/model/Repository.js',
'res/js/core/model/BackgroundTasksManager.js',
'res/js/core/http/PydioApi.js',
'res/js/core/model/Action.js',
'res/js/core/model/Controller.js',
'res/js/core/model/PydioDataModel.js',
'res/js/core/model/Registry.js',
'res/js/ui/prototype/class.AjxpDraggable.js',
'res/js/ui/prototype/class.AjxpSortable.js',
'res/js/ui/prototype/class.AjxpTabulator.js',
'res/js/ui/prototype/class.VisibilityToggler.js',
'res/js/ui/prototype/class.AjxpSimpleTabs.js',
'res/js/ui/prototype/class.RepositorySelect.js',
'res/js/ui/prototype/class.RepositorySimpleLabel.js',
'res/js/ui/prototype/class.Breadcrumb.js',
'res/js/ui/prototype/class.LocationBar.js',
'res/js/ui/prototype/class.UserWidget.js',
'res/js/ui/prototype/class.LogoWidget.js',
'res/js/ui/prototype/class.AjxpAutoCompleter.js',
'res/js/ui/prototype/class.AjxpUsersCompleter.js',
'res/js/ui/prototype/class.TreeSelector.js',
'res/js/ui/prototype/class.SliderInput.js',
'res/js/ui/prototype/class.ActionsToolbar.js',
'res/js/ui/prototype/class.BackgroundManagerPane.js',
'res/js/ui/prototype/class.HeaderResizer.js',
'res/js/ui/prototype/class.PreviewFactory.js',
'res/js/ui/prototype/class.FilesList.js',
'res/js/ui/prototype/class.FoldersTree.js',
'res/js/ui/prototype/class.SearchEngine.js',
'res/js/ui/prototype/class.FetchedResultPane.js',
'res/js/ui/prototype/class.InfoPanel.js',
'res/js/ui/prototype/class.PropertyPanel.js',
'res/js/ui/prototype/class.AbstractEditor.js',
'res/js/ui/prototype/class.Modal.js',
'res/js/ui/prototype/class.BookmarksBar.js',
'res/js/ui/prototype/class.FormManager.js',
'res/js/ui/prototype/class.DataModelProperty.js',
'res/js/ui/prototype/class.MultiDownloader.js',
'res/js/ui/prototype/class.ActivityMonitor.js',
'res/js/ui/prototype/class.AjxpReactComponent.js',
'res/js/ui/prototype/class.AjxpReactDialogLoader.js',
'res/js/ui/prototype/class.PydioUI.js',
'res/js/core/Pydio.js'
],
tasks: ['uglify'],
options: {
spawn: false
}
}
}
});
grunt.loadNpmTasks('grunt-env');
grunt.loadNpmTasks('grunt-browserify');
grunt.loadNpmTasks('grunt-babel');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-run');
grunt.registerTask('default', [
'babel:dist',
'uglify:js',
'babel:materialui',
// 'run:materialui',
'env:build',
'browserify',
'env:dev',
'uglify:nodejs',
'babel:pydio'
]);
};