diff --git a/gulpfile.js b/gulpfile.js index 567bd39a0c8..26c3e058fff 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -93,6 +93,10 @@ gulp.task('lib', ['clean:lib'], function () { src: paths.npmDir + 'ngclipboard/dist/ngclipboard.js', dest: paths.libDir + 'ngclipboard' }, + { + src: paths.npmDir + 'angularjs-slider/dist/rzslider.js', + dest: paths.libDir + 'angularjs-slider' + }, { src: paths.npmDir + 'clipboard/dist/clipboard.js', dest: paths.libDir + 'clipboard' diff --git a/package.json b/package.json index 49676fc6111..afe2aacf000 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "clipboard": "1.5.12", "merge-stream": "1.0.0", "angular-toastr": "2.1.1", - "q": "1.4.1" + "q": "1.4.1", + "angularjs-slider": "5.5.0" } } diff --git a/src/popup/app/tools/toolsModule.js b/src/popup/app/tools/toolsModule.js index 8b592b4357b..1f24a1cae01 100644 --- a/src/popup/app/tools/toolsModule.js +++ b/src/popup/app/tools/toolsModule.js @@ -1,2 +1,2 @@ angular - .module('bit.tools', ['ngAnimate', 'ngclipboard', 'toastr']); + .module('bit.tools', ['ngAnimate', 'ngclipboard', 'toastr', 'rzModule']); diff --git a/src/popup/app/tools/toolsPasswordGeneratorController.js b/src/popup/app/tools/toolsPasswordGeneratorController.js index 1d110f6904d..ee050735b1d 100644 --- a/src/popup/app/tools/toolsPasswordGeneratorController.js +++ b/src/popup/app/tools/toolsPasswordGeneratorController.js @@ -8,8 +8,27 @@ popupUtils.initListSectionItemListeners(); $scope.password = '-'; + $scope.slider = { + value: 12, + options: { + floor: 5, + ceil: 64, + step: 1, + hideLimitLabels: true, + hidePointerLabels: true, + onChange: function () { + $scope.options.length = $scope.slider.value; + $scope.regenerate(); + }, + onEnd: function () { + $scope.saveOptions($scope.options); + } + } + }; + $q.when(passwordGenerationService.getOptions()).then(function (options) { $scope.options = options; + $scope.slider.value = options.length; $scope.regenerate(); }); diff --git a/src/popup/app/tools/views/toolsPasswordGenerator.html b/src/popup/app/tools/views/toolsPasswordGenerator.html index 603bd3c7abb..edb8e142497 100644 --- a/src/popup/app/tools/views/toolsPasswordGenerator.html +++ b/src/popup/app/tools/views/toolsPasswordGenerator.html @@ -8,8 +8,8 @@
Generate Password
-
- {{password}} +
+ {{password}}
@@ -30,6 +30,9 @@
+ {{slider.value}} +
diff --git a/src/popup/index.html b/src/popup/index.html index 41397beaaff..6af7a0b2710 100644 --- a/src/popup/index.html +++ b/src/popup/index.html @@ -22,6 +22,7 @@ + diff --git a/src/popup/less/components.less b/src/popup/less/components.less index fbcf565f71d..fedb637d1c8 100644 --- a/src/popup/less/components.less +++ b/src/popup/less/components.less @@ -331,6 +331,16 @@ text-align: right; } } + + &.list-section-item-slider { + .slider-value { + color: @gray-light; + + &:before { + content: "\00a0 \00a0 \00a0 \00a0 \00a0 \00a0 \00a0"; + } + } + } } &.list-no-selection { @@ -341,3 +351,12 @@ } } } + +.generate-password-block { + margin: 20px; + font-size: 20px; + text-align: center; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} diff --git a/src/popup/less/plugins.less b/src/popup/less/plugins.less index f5776576b20..3bc76c0ba17 100644 --- a/src/popup/less/plugins.less +++ b/src/popup/less/plugins.less @@ -1,4 +1,21 @@ @import (reference) "variables.less"; +@import "../../../node_modules/angularjs-slider/src/rzslider.less"; + +/* Slider */ + +@handleSize: 15px; +@barDimension: 2px; +@handleBgColor: @brand-primary; +@handleInnerColor: @handleBgColor; +@handleActiveColor: @handleBgColor; +@handleHoverColor: @handleBgColor; +@barNormalColor: @border-color-dark; + +.list-section-item-slider .rzslider { + width: 182px; + margin: 9px 0 0 5px; + float: right; +} /* Toastr */