summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/raptor/ebz/multiselect.js
diff options
context:
space:
mode:
authorTATTAVARADA <statta@research.att.com>2017-04-27 07:53:18 -0400
committerst782s <statta@research.att.com>2017-04-27 08:31:27 -0400
commit6beb446925c967aca92f5513adf36c5db77c00d6 (patch)
tree9392057ed0739de2445c5b2a2a8bee6dcdacbcf7 /ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/raptor/ebz/multiselect.js
parent246b225194e3e8dc1926294de591a94fd9787fa7 (diff)
[PORTAL-7] Rebase
This rebasing includes common libraries and common overlays projects abstraction of components Change-Id: Ia1efa4deacdc5701e6205104ac021a6c80ed60ba Signed-off-by: st782s <statta@research.att.com>
Diffstat (limited to 'ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/raptor/ebz/multiselect.js')
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/raptor/ebz/multiselect.js62
1 files changed, 62 insertions, 0 deletions
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/raptor/ebz/multiselect.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/raptor/ebz/multiselect.js
new file mode 100644
index 00000000..eda8da08
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/raptor/ebz/multiselect.js
@@ -0,0 +1,62 @@
+'use strict';
+
+angular.module('quantum').directive('dropdownMultiselect', ['$document', function($document){
+ return {
+ restrict: 'E',
+ scope:{
+ model: '=ngModel',
+ options: '='
+ },
+ template: "<div class='btn-group ng-isolate-scope buttons-dropdown--small' data-ng-class='{open: open}'>"+
+ "<a class='button btn buttons-dropdown__split button--secondary' data-ng-click='open=!open;' style='border-right:none;'>Multi-Select</a>"+
+ "<a class='button buttons-dropdown__drop dropdown-toggle button--secondary' data-ng-click='open=!open;' style='border-left:none;color:#067ab4'></a>"+
+ "<ul class='dropdown-menu' aria-labelledby='dropdownMenu'>" +
+ "<li><a data-ng-click='selectAll()'><i class='icon-included-checkmark'></i> Check All</a></li>" +
+ "<li><a data-ng-click='deselectAll();'><i class='icon-erase'></i> Uncheck All</a></li>" +
+ "<li class='divider'></li>" +
+ "<li data-ng-repeat='option in options'> <a data-ng-click='setSelectedItem()'>{{option.title}}<span data-ng-class='isChecked(option.value)'></span></a></li>" +
+ "</ul>" +
+ "</div>" ,
+ link: function($scope,element,attr){
+
+ $scope.$watch("options",function(newValue,oldValue) {
+ $scope.model = [];
+ });
+
+ $scope.selectAll = function () {
+ $scope.model = _.pluck($scope.options, 'value');
+ };
+ $scope.deselectAll = function() {
+ $scope.model=[];
+ };
+ $scope.setSelectedItem = function(){
+ var value = this.option.value;
+ if (_.contains($scope.model, value)) {
+ $scope.model = _.without($scope.model, value);
+ } else {
+ $scope.model.push(value);
+ }
+ return false;
+ };
+ $scope.isChecked = function (value) {
+ if (_.contains($scope.model, value)) {
+ return 'icon-included-checkmark pull-right';
+ }
+ return false;
+ };
+
+ $document.bind('click', function(event){
+ var isClickedElementChildOfPopup = element
+ .find(event.target)
+ .length > 0;
+
+ if (isClickedElementChildOfPopup)
+ return;
+
+ $scope.open = false;
+ $scope.$apply();
+ });
+
+ }
+ };
+}]); \ No newline at end of file