diff --git a/gulpfile.js b/gulpfile.js index 2147837f..8e57e5e2 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,3 +1,5 @@ +'use strict'; + var gulp = require('gulp'); var rename = require('gulp-rename'); var uglify = require('gulp-uglify'); @@ -19,20 +21,6 @@ sources.css = [ './js/libraries/jbox/jBox.css' ]; -sources.receiver = [ - './node_modules/jquery/dist/jquery.min.js', - './node_modules/jquery-ui-npm/jquery-ui.min.js', - './js/libraries/jquery.nouislider.all.min.js', - './tabs/receiver_msp.js' -]; - -sources.receiverCss = [ - './css/opensans_webfontkit/fonts.css', - './js/libraries/jquery.nouislider.min.css', - './js/libraries/jquery.nouislider.pips.min.css', - './tabs/receiver_msp.css' -]; - sources.js = [ './js/libraries/google-analytics-bundle.js', './node_modules/jquery/dist/jquery.min.js', @@ -81,89 +69,115 @@ sources.js = [ './js/peripherals.js' ]; -sources.mapJs = [ - './node_modules/openlayers/dist/ol.js' -]; - sources.mapCss = [ './node_modules/openlayers/dist/ol.css' ]; +sources.mapJs = [ + './node_modules/openlayers/dist/ol.js' +]; + +sources.receiverCss = [ + './css/opensans_webfontkit/fonts.css', + './js/libraries/jquery.nouislider.min.css', + './js/libraries/jquery.nouislider.pips.min.css', + './tabs/receiver_msp.css' +]; + +sources.receiverJs = [ + './node_modules/jquery/dist/jquery.min.js', + './node_modules/jquery-ui-npm/jquery-ui.min.js', + './js/libraries/jquery.nouislider.all.min.js', + './tabs/receiver_msp.js' +]; + +var output = { + css: 'styles.css', + js: 'script.js', + mapCss: 'map.css', + mapJs: 'map.js', + receiverCss: 'receiver-msp.css', + receiverJs: 'receiver-msp.js', +}; + +var outputDir = './build/'; + gulp.task('build-css', function () { return gulp.src(sources.css) - .pipe(concat('styles.css')) - .pipe(gulp.dest('./build/')); + .pipe(concat(output.css)) + .pipe(gulp.dest(outputDir)); }); gulp.task('build-js', function () { return gulp.src(sources.js) - .pipe(concat('script.js')) - .pipe(gulp.dest('./build/')); + .pipe(concat(output.js)) + .pipe(gulp.dest(outputDir)); }); gulp.task('build-map-css', function () { return gulp.src(sources.mapCss) - .pipe(concat('map.css')) - .pipe(gulp.dest('./build/')); + .pipe(concat(output.mapCss)) + .pipe(gulp.dest(outputDir)); }); gulp.task('build-map-js', function () { return gulp.src(sources.mapJs) - .pipe(concat('map.js')) - .pipe(gulp.dest('./build/')); + .pipe(concat(output.mapJs)) + .pipe(gulp.dest(outputDir)); }); gulp.task('deploy-css', function () { return gulp.src(sources.css) - .pipe(concat('styles.css')) + .pipe(concat(output.css)) .pipe(minifyCSS()) - .pipe(gulp.dest('./build/')); + .pipe(gulp.dest(outputDir)); }); gulp.task('deploy-js', function () { return gulp.src(sources.js) - .pipe(concat('script.js')) + .pipe(concat(output.js)) .pipe(uglify()) - .pipe(gulp.dest('./build/')); + .pipe(gulp.dest(outputDir)); }); gulp.task('build-receiver-css', function () { return gulp.src(sources.receiverCss) - .pipe(concat('receiver-msp.css')) - .pipe(gulp.dest('./build/')); + .pipe(concat(output.receiverCss)) + .pipe(gulp.dest(outputDir)); }); gulp.task('deploy-receiver-css', function () { return gulp.src(sources.receiverCss) - .pipe(concat('receiver-msp.css')) - .pipe(uglify()) - .pipe(gulp.dest('./build/')); + .pipe(concat(output.receiverCss)) + .pipe(minifyCSS()) + .pipe(gulp.dest(outputDir)); }); gulp.task('build-receiver-msp-js', function () { - return gulp.src(sources.receiver) - .pipe(concat('receiver-msp.js')) - .pipe(gulp.dest('./build/')); + return gulp.src(sources.receiverJs) + .pipe(concat(output.receiverJs)) + .pipe(gulp.dest(outputDir)); }); gulp.task('deploy-receiver-msp-js', function () { - return gulp.src(sources.receiver) - .pipe(concat('receiver-msp.js')) + return gulp.src(sources.receiverJs) + .pipe(concat(output.receiverJs)) .pipe(uglify()) - .pipe(gulp.dest('./build/')); + .pipe(gulp.dest(outputDir)); }); -gulp.task('deploy', ['deploy-css', 'deploy-js', 'deploy-receiver-msp-js', 'deploy-receiver-css']); +gulp.task('build', ['build-css', 'build-js', 'build-receiver-css', 'build-receiver-msp-js', 'build-map-css', 'build-map-js']); +gulp.task('deploy', ['deploy-css', 'deploy-js', 'deploy-receiver-css', 'deploy-receiver-msp-js']); gulp.task('watch', function () { gulp.watch('js/**/*.js', ['build-js']); @@ -175,4 +189,4 @@ gulp.task('watch', function () { gulp.watch('eventPage.js', ['build-js']); }); -gulp.task('default', ['build-js', 'build-css', 'build-receiver-msp-js', 'build-receiver-css', 'build-map-js', 'build-map-css']); \ No newline at end of file +gulp.task('default', ['build']); diff --git a/package.json b/package.json index 0d177872..526ed53a 100755 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "main.html", "default_locale": "en", "scripts": { - "start": "node_modules/nw/bin/nw ." + "start": "node_modules/gulp/bin/gulp.js build && node_modules/nw/bin/nw ." }, "window": { "title": "INAV Configurator", @@ -21,16 +21,19 @@ "author": "iNavFlight", "license": "GPL-3.0", "dependencies": { - "nw": "^0.24.4-sdk", - "jquery": "2.1.4", - "jquery-ui-npm": "1.12.0", - "three": "0.72.0", - "inflection": "1.12.0", "bluebird": "3.4.1", + "del": "^3.0.0", "gulp": "~3.9.1", + "gulp-concat": "~2.6.1", + "gulp-minify-css": "~1.2.4", "gulp-rename": "~1.2.2", "gulp-uglify": "~3.0.0", - "gulp-concat": "~2.6.1", - "gulp-minify-css": "~1.2.4" + "inflection": "1.12.0", + "jquery": "2.1.4", + "jquery-ui-npm": "1.12.0", + "nw": "^0.24.4-sdk", + "nw-builder": "^3.4.1", + "openlayers": "^4.3.1", + "three": "0.72.0" } } diff --git a/tabs/osd.js b/tabs/osd.js index 22284fc7..52ab0613 100644 --- a/tabs/osd.js +++ b/tabs/osd.js @@ -747,7 +747,7 @@ TABS.osd.initialize = function (callback) { // alarms $('.alarms-container').show(); var $alarms = $('.alarms').empty(); - for (let k in OSD.data.alarms) { + for (var k in OSD.data.alarms) { var alarm = OSD.data.alarms[k]; var alarmInput = $('' + alarm.display_name + ''); alarmInput.val(alarm.value); @@ -764,9 +764,8 @@ TABS.osd.initialize = function (callback) { // display fields on/off and position var $displayFields = $('.display-fields').empty(); - - for (let field of OSD.data.display_items) { - + for (var ii = 0; ii < OSD.data.display_items.length; ii++) { + var field = OSD.data.display_items[ii]; // versioning related, if the field doesn't exist at the current flight controller version, just skip it if (!field.name) { continue; @@ -822,7 +821,8 @@ TABS.osd.initialize = function (callback) { // buffer the preview OSD.data.preview = []; OSD.data.display_size.total = OSD.data.display_size.x * OSD.data.display_size.y; - for (let field of OSD.data.display_items) { + for (var ii = 0; ii < OSD.data.display_items.length; ii++) { + var field = OSD.data.display_items[ii]; // reset fields that somehow end up off the screen if (field.position > OSD.data.display_size.total) { field.position = 0; @@ -835,7 +835,8 @@ TABS.osd.initialize = function (callback) { } // draw all the displayed items and the drag and drop preview images - for (let field of OSD.data.display_items) { + for (var ii = 0; ii < OSD.data.display_items.length; ii++) { + var field = OSD.data.display_items[ii]; if (!field.preview || !field.isVisible) { continue; }