<script src="/IDL2js"></script>
<script src="[% ctx.media_prefix %]/js/dojo/opensrf/md5.js"></script>
-[% IF EXPAND_WEB_IMPORTS %]
+<!-- IDL / opensrf (network) -->
+<script src="[% ctx.media_prefix %]/js/dojo/opensrf/JSON_v1.js"></script>
+<script src="[% ctx.media_prefix %]/js/dojo/opensrf/opensrf.js"></script>
+<script src="[% ctx.media_prefix %]/js/dojo/opensrf/opensrf_ws.js"></script>
-<!-- angular -->
+
+[% IF EXPAND_WEB_DEP_IMPORTS %]
+<!-- expanded list of 3rd-party dependency files -->
<script src="[% ctx.media_prefix %]/js/ui/default/staff/build/js/jquery.min.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/build/js/angular.min.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/build/js/angular-route.min.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/build/js/angular-sanitize.min.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/build/js/angular-cookies.min.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/build/js/ngToast.min.js"></script>
-<script src="[% ctx.media_prefix %]/js/ui/default/staff/build/js/angular-tree-control.js"></script>
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/build/js/angular-tree-control.min.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/build/js/iframeResizer.min.js"></script>
-<script src="[% ctx.media_prefix %]/js/ui/default/staff/build/js/ng-order-object-by.js"></script>
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/build/js/ng-order-object-by.min.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/build/js/lovefield.min.js"></script>
+[% ELSE %]
-<!-- IDL / opensrf (network) -->
-<script src="[% ctx.media_prefix %]/js/dojo/opensrf/JSON_v1.js"></script>
-<script src="[% ctx.media_prefix %]/js/dojo/opensrf/opensrf.js"></script>
-<script src="[% ctx.media_prefix %]/js/dojo/opensrf/opensrf_ws.js"></script>
+<!-- concatenated list of 3rd-party dependency files -->
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/build/js/evergreen-staff-client.[% EVERGREEN_VERSION %].deps.min.js"></script>
+[% END %]
-<!-- evergreen core services -->
+[% IF EXPAND_WEB_CORE_IMPORTS %]
+<!-- expanded list of EG core service files -->
<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/core.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/strings.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/idl.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/ui.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/date.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/op_change.js"></script>
-
[% ELSE %]
-<!-- concatenated, minified version of all of the above -->
-<script src="[% ctx.media_prefix %]/js/ui/default/staff/build/js/evergreen-staff-client.[% EVERGREEN_VERSION %].min.js"></script>
-
+<!-- concatenated, minified version of EG core service files -->
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/build/js/evergreen-staff-client.[% EVERGREEN_VERSION %].core.min.js"></script>
[% END %]
<script>
'node_modules/angular-sanitize/angular-sanitize.min.js.map',
'node_modules/angular-route/angular-route.min.js',
'node_modules/angular-route/angular-route.min.js.map',
- 'node_modules/angular-ui-bootstrap/dist/ui-bootstrap.js',
'node_modules/angular-ui-bootstrap/dist/ui-bootstrap-tpls.js',
'node_modules/angular-hotkeys/build/hotkeys.min.js',
'node_modules/angular-file-saver/dist/angular-file-saver.bundle.min.js',
}
},
- // concatenation + minification
+ // minification
uglify: {
- options: {
- banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
+ deps: {
+ // Minify external deps that are not minified for us.
+ files: [{
+ expand: true,
+ src: [
+ 'angular-tree-control.js',
+ 'ng-order-object-by.js',
+ 'ui-bootstrap-tpls.js'
+ ],
+ dest: 'build/js',
+ cwd: 'build/js',
+ ext: '.min.js'
+ }]
},
- dev: {
+ services: {
files: [{
+ // Minify core Evergreen service files
expand: true,
- src: ['build/js/ui-bootstrap.js', 'build/js/ui-bootstrap-tpls.js'],
+ src: [
+ 'core.js',
+ 'strings.js',
+ 'idl.js',
+ 'event.js',
+ 'net.js',
+ 'auth.js',
+ 'pcrud.js',
+ 'env.js',
+ 'org.js',
+ 'startup.js',
+ 'hatch.js',
+ 'print.js',
+ 'audio.js',
+ 'coresvc.js',
+ 'user.js',
+ 'navbar.js',
+ 'ui.js',
+ 'date.js',
+ 'op_change.js',
+ ],
dest: 'build/js',
- cwd: '.',
- rename: function (dst, src) {
- return src.replace('.js', '.min.js');
- }
+ cwd: 'services',
+ ext: '.min.js'
}],
- },
- build: {
- src: [
- // These are concatenated in order in the final build file.
- // The order is important.
- 'build/js/jquery.min.js',
- 'build/js/angular.min.js',
- 'build/js/angular-animate.min.js',
- 'build/js/angular-sanitize.min.js',
- 'build/js/angular-route.min.js',
- 'build/js/ui-bootstrap.min.js',
- 'build/js/ui-bootstrap-tpls.js',
- 'build/js/hotkeys.min.js',
- 'build/js/angular-tree-control.js',
- 'build/js/ngToast.min.js',
- 'build/js/lovefield.min.js',
- // NOTE: OpenSRF must be installed
- // XXX: Should not be hard-coded
- '/openils/lib/javascript/JSON_v1.js',
- '/openils/lib/javascript/opensrf.js',
- '/openils/lib/javascript/opensrf_ws.js',
- 'services/core.js',
- 'services/strings.js',
- 'services/idl.js',
- 'services/event.js',
- 'services/net.js',
- 'services/auth.js',
- 'services/pcrud.js',
- 'services/env.js',
- 'services/org.js',
- 'services/startup.js',
- 'services/hatch.js',
- 'services/print.js',
- 'services/audio.js',
- 'services/coresvc.js',
- 'services/navbar.js',
- 'services/ui.js',
- 'services/date.js',
- 'services/op_change.js',
- ],
- dest: 'build/js/<%= pkg.name %>.<%= pkg.version %>.min.js'
- },
+ }
},
- // bare concat operation; useful for testing concat w/o minification
- // to more easily detect if concat order is incorrect
concat: {
options: {
separator: ';',
+ sourceMap: true,
+ banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
+ },
+ // External dependencies
+ eg_deps : {
+ src : [
+ 'build/js/jquery.min.js',
+ 'build/js/angular.min.js',
+ 'build/js/angular-route.min.js',
+ 'build/js/ui-bootstrap-tpls.min.js',
+ 'build/js/hotkeys.min.js',
+ 'build/js/angular-file-saver.bundle.min.js',
+ 'build/js/angular-location-update.min.js',
+ 'build/js/angular-animate.min.js',
+ 'build/js/angular-sanitize.min.js',
+ 'build/js/angular-cookies.min.js',
+ 'build/js/ngToast.min.js',
+ 'build/js/angular-tree-control.min.js',
+ 'build/js/iframeResizer.min.js',
+ 'build/js/ng-order-object-by.min.js',
+ 'build/js/lovefield.min.js',
+ ],
+ dest: 'build/js/<%= pkg.name %>.<%= pkg.version %>.deps.min.js'
+ },
+ // Evergreen core services
+ eg_core : {
+ src : [
+ 'build/js/core.min.js',
+ 'build/js/strings.min.js',
+ 'build/js/idl.min.js',
+ 'build/js/event.min.js',
+ 'build/js/net.min.js',
+ 'build/js/auth.min.js',
+ 'build/js/pcrud.min.js',
+ 'build/js/env.min.js',
+ 'build/js/org.min.js',
+ 'build/js/startup.min.js',
+ 'build/js/hatch.min.js',
+ 'build/js/print.min.js',
+ 'build/js/audio.min.js',
+ 'build/js/coresvc.min.js',
+ 'build/js/user.min.js',
+ 'build/js/navbar.min.js',
+ 'build/js/ui.min.js',
+ 'build/js/date.min.js',
+ 'build/js/op_change.min.js',
+ ],
+ dest: 'build/js/<%= pkg.name %>.<%= pkg.version %>.core.min.js'
}
},
}
};
- // tell concat about our uglify build options (instead of repeating them)
- config.concat.build = config.uglify.build;
-
// apply our configuration
grunt.initConfig(config);
grunt.loadNpmTasks('grunt-karma');
grunt.loadNpmTasks('grunt-exec');
- // note: "grunt concat" is not required
- grunt.registerTask('build', ['copy', 'cssmin', 'uglify']);
+ grunt.registerTask('build', ['copy', 'cssmin', 'uglify', 'concat']);
// test only, no minification
grunt.registerTask('test', ['copy', 'exec:idl2js', 'karma:unit', 'exec:rmidl2js']);
- // note: "grunt concat" is not requried
- grunt.registerTask('all', ['test', 'cssmin', 'uglify']);
+ grunt.registerTask('all', ['test', 'cssmin', 'uglify', 'concat']);
};