From 68f87b67b060f3b3c2d7bee527bc352094856215 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Wed, 7 Sep 2016 18:51:36 -0400 Subject: [PATCH] Moving away from ionic to pure angular for popup. Setup gulpfile and some tasks --- .gitignore | 2 + src/gulpfile.js | 109 +++++++++++++++++++++++ src/manifest.json | 8 +- src/package.json | 21 ++++- src/popup/app/app.js | 2 +- src/popup/app/services/servicesModule.js | 2 +- src/popup/app/vault/vaultController.js | 4 +- src/popup/app/vault/vaultModule.js | 2 +- src/popup/index.html | 13 ++- src/popup/less/popup.less | 3 + 10 files changed, 152 insertions(+), 14 deletions(-) create mode 100644 src/gulpfile.js create mode 100644 src/popup/less/popup.less diff --git a/.gitignore b/.gitignore index 87beaa63c3..3012831aff 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ .vs node_modules npm-debug.log +lib/ +css/ diff --git a/src/gulpfile.js b/src/gulpfile.js new file mode 100644 index 0000000000..53be475e41 --- /dev/null +++ b/src/gulpfile.js @@ -0,0 +1,109 @@ +var gulp = require('gulp'), + rimraf = require('rimraf'), + concat = require('gulp-concat'), + rename = require('gulp-rename'), + less = require('gulp-less'), + preprocess = require('gulp-preprocess'), + runSequence = require('run-sequence'), + jshint = require('gulp-jshint'), + merge = require('merge-stream'); + +var paths = {}; +paths.dist = '../dist/'; +paths.libDir = './lib/'; +paths.npmDir = './node_modules/'; +paths.popupDir = './popup/'; +paths.lessDir = paths.popupDir + 'less/'; +paths.cssDir = paths.popupDir + 'css/'; + +gulp.task('lint', function () { + return gulp.src(paths.popupDir + 'app/**/*.js') + .pipe(jshint()) + .pipe(jshint.reporter('default')); +}); + +gulp.task('build', function (cb) { + return runSequence( + 'clean', + ['lib', 'less', 'lint'], + cb); +}); + +gulp.task('clean:css', function (cb) { + return rimraf(paths.cssDir, cb); +}); + +gulp.task('clean:lib', function (cb) { + return rimraf(paths.libDir, cb); +}); + +gulp.task('clean', ['clean:css', 'clean:lib']); + +gulp.task('lib', ['clean:lib'], function () { + var libs = [ + { + src: [ + paths.npmDir + 'bootstrap/dist/**/*', + '!' + paths.npmDir + 'bootstrap/dist/**/npm.js', + '!' + paths.npmDir + 'bootstrap/dist/**/css/*theme*' + ], + dest: paths.libDir + 'bootstrap' + }, + { + src: paths.npmDir + 'font-awesome/css/*', + dest: paths.libDir + 'font-awesome/css' + }, + { + src: paths.npmDir + 'font-awesome/fonts/*', + dest: paths.libDir + 'font-awesome/fonts' + }, + { + src: paths.npmDir + 'jquery/dist/*.js', + dest: paths.libDir + 'jquery' + }, + { + src: paths.npmDir + 'angular/angular*.js', + dest: paths.libDir + 'angular' + }, + { + src: paths.npmDir + 'angular-ui-bootstrap/dist/*tpls*.js', + dest: paths.libDir + 'angular-ui-bootstrap' + }, + { + src: paths.npmDir + 'angular-jwt/dist/*.js', + dest: paths.libDir + 'angular-jwt' + }, + { + src: paths.npmDir + 'angular-ui-router/release/*.js', + dest: paths.libDir + 'angular-ui-router' + }, + { + src: [paths.npmDir + 'sjcl/core/cbc.js', paths.npmDir + 'sjcl/core/bitArray.js', paths.npmDir + 'sjcl/sjcl.js'], + dest: paths.libDir + 'sjcl' + }, + { + src: paths.npmDir + 'ngclipboard/dist/ngclipboard*.js', + dest: paths.libDir + 'ngclipboard' + }, + { + src: paths.npmDir + 'clipboard/dist/clipboard*.js', + dest: paths.libDir + 'clipboard' + } + ]; + + var tasks = libs.map(function (lib) { + return gulp.src(lib.src).pipe(gulp.dest(lib.dest)); + }); + + return merge(tasks); +}); + +gulp.task('less', function () { + return gulp.src(paths.lessDir + 'popup.less') + .pipe(less()) + .pipe(gulp.dest(paths.cssDir)); +}); + +gulp.task('watch', function () { + gulp.watch(paths.lessDir + '*.less', ['less']); +}); diff --git a/src/manifest.json b/src/manifest.json index 4a1b0ebcff..ee5e3427ec 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -13,10 +13,10 @@ }, "background": { "scripts": [ - "node_modules/jquery/dist/jquery.min.js", - "node_modules/sjcl/sjcl.js", - "node_modules/sjcl/core/cbc.js", - "node_modules/sjcl/core/bitArray.js", + "lib/jquery/jquery.js", + "lib/sjcl/sjcl.js", + "lib/sjcl/cbc.js", + "lib/sjcl/bitArray.js", "models/api/requestModels.js", "models/api/responseModels.js", "models/dataModels.js", diff --git a/src/package.json b/src/package.json index a61915e9b0..2020d0be35 100644 --- a/src/package.json +++ b/src/package.json @@ -2,9 +2,26 @@ "name": "bitwarden", "version": "0.0.1", "devDependencies": { - "ionic-framework-v1": "1.3.1", "sjcl": "1.0.3", "angular-jwt": "0.0.9", - "jquery": "3.1.0" + "jquery": "2.2.4", + "bootstrap": "3.3.7", + "font-awesome": "4.6.3", + "angular": "1.5.8", + "angular-ui-bootstrap": "2.1.3", + "angular-ui-router": "0.3.1", + "angular-animate": "1.5.8", + "gulp": "3.9.1", + "gulp-less": "3.1.0", + "gulp-preprocess": "2.0.0", + "gulp-concat": "2.6.0", + "gulp-rename": "1.2.2", + "rimraf": "2.5.4", + "jshint": "2.9.3", + "gulp-jshint": "2.0.1", + "run-sequence": "1.2.2", + "ngclipboard": "1.1.1", + "clipboard": "1.5.12", + "merge-stream": "1.0.0" } } diff --git a/src/popup/app/app.js b/src/popup/app/app.js index a907cb90ef..8b15338171 100644 --- a/src/popup/app/app.js +++ b/src/popup/app/app.js @@ -1,6 +1,6 @@ angular .module('bit', [ - 'ionic', + 'ui.router', 'angular-jwt', 'bit.services', diff --git a/src/popup/app/services/servicesModule.js b/src/popup/app/services/servicesModule.js index 49effbfd8b..3c9059b0db 100644 --- a/src/popup/app/services/servicesModule.js +++ b/src/popup/app/services/servicesModule.js @@ -1,2 +1,2 @@ angular - .module('bit.services', ['ngResource', 'angular-jwt']); + .module('bit.services', ['angular-jwt']); diff --git a/src/popup/app/vault/vaultController.js b/src/popup/app/vault/vaultController.js index 707349737f..3133be38dd 100644 --- a/src/popup/app/vault/vaultController.js +++ b/src/popup/app/vault/vaultController.js @@ -1,7 +1,7 @@ angular .module('bit.vault') - .controller('vaultController', function ($scope, $ionicModal, siteService, folderService, $q, cipherService) { + .controller('vaultController', function ($scope, siteService, folderService, $q, cipherService) { $scope.parentScope = $scope; $scope.sites = []; $scope.folders = []; @@ -70,6 +70,7 @@ return item.name.toLowerCase(); }; + /* $scope.viewSite = function (site) { $scope.focusedSiteId = site.id; $ionicModal.fromTemplateUrl('app/vault/views/vaultViewSite.html', { @@ -101,6 +102,7 @@ modal.show(); }); }; + */ $scope.closeAddSite = function () { $scope.addSiteModal.hide(); diff --git a/src/popup/app/vault/vaultModule.js b/src/popup/app/vault/vaultModule.js index 6d0be322c4..f223546912 100644 --- a/src/popup/app/vault/vaultModule.js +++ b/src/popup/app/vault/vaultModule.js @@ -1,2 +1,2 @@ angular - .module('bit.vault', ['ionic']); + .module('bit.vault', []); diff --git a/src/popup/index.html b/src/popup/index.html index 1457247cf5..39129fb69d 100644 --- a/src/popup/index.html +++ b/src/popup/index.html @@ -5,10 +5,15 @@ bitwarden - - - - + + + + + + + + + diff --git a/src/popup/less/popup.less b/src/popup/less/popup.less new file mode 100644 index 0000000000..6fa88516d1 --- /dev/null +++ b/src/popup/less/popup.less @@ -0,0 +1,3 @@ +body { + +}