diff options
author | Christopher Lott (Christopher) (cl778h) <clott@vm-ep-dev2.client.research.att.com> | 2017-06-12 09:49:00 -0400 |
---|---|---|
committer | Christopher Lott (cl778h) <clott@research.att.com> | 2017-06-12 13:42:43 -0400 |
commit | 627badaf69987c01811c477219fd943757a635f5 (patch) | |
tree | 97df9449a411d1ecf830cc76d8afd6f9b5677bda /ecomp-portal-FE-common/client/app/directives/multiple-select/multiple-select2.directive.js | |
parent | ba838f2e13f1e8050c75e68bd3733d56d8f416d5 (diff) |
[PORTAL-16 PORTAL-18] Widget ms; staging
Remove staging repositories from poms.
Add widget microservice code base.
Add portal unit tests.
Repair defects.
Normalize line endings.
Change-Id: Ia5e48da2a3141b352439ecd548cddf918f4df585
Signed-off-by: Christopher Lott (cl778h) <clott@research.att.com>
Diffstat (limited to 'ecomp-portal-FE-common/client/app/directives/multiple-select/multiple-select2.directive.js')
-rw-r--r-- | ecomp-portal-FE-common/client/app/directives/multiple-select/multiple-select2.directive.js | 226 |
1 files changed, 113 insertions, 113 deletions
diff --git a/ecomp-portal-FE-common/client/app/directives/multiple-select/multiple-select2.directive.js b/ecomp-portal-FE-common/client/app/directives/multiple-select/multiple-select2.directive.js index e0471631..f49848ce 100644 --- a/ecomp-portal-FE-common/client/app/directives/multiple-select/multiple-select2.directive.js +++ b/ecomp-portal-FE-common/client/app/directives/multiple-select/multiple-select2.directive.js @@ -1,113 +1,113 @@ -/*-
- * ================================================================================
- * ECOMP Portal
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ================================================================================
- */
-/**
- * Created by nnaffar on 12/21/15.+
- */
-angular.module('ecompApp')
- .directive('multipleSelect2', function ($window) {
- return {
- restrict: 'E',
- templateUrl: 'app/directives/multiple-select/multiple-select2.tpl.html',
- scope: {
- onChange: '&',
- nameAttr: '@',
- valueAttr: '@',
- ngModel: '=',
- placeholder: '@',
- uniqueData: '@?',
- onDropdownClose: '&?'
- },
- link: function(scope, elm, attrs){
- scope.isExpanded = false;
-
- scope.isDisabled = !scope.ngModel || !scope.ngModel.length;
- scope.$watch('ngModel', function(newVal){
- scope.isDisabled = !newVal || !newVal.length;
- });
-
-
- let startListening = () => {
- console.log('listening on $window!');
- angular.element($window).on('click', function () {
- stopListening();
- });
-
- angular.element('multiple-select2').on('click', function(e) {
- if($(e.target).closest('multiple-select2')[0].attributes['unique-data'].value === attrs.uniqueData){
- console.log('ignored that..:', attrs.uniqueData);
- e.stopPropagation();
- }else{
- console.log('shouldnt ignore, close expanded!:', attrs.uniqueData);
- scope.isExpanded = false;
- scope.$applyAsync();
- }
- });
- };
-
- let stopListening = function() {
- if(scope.onDropdownClose){
- scope.onDropdownClose();
- }
- scope.isExpanded = false;
- scope.$applyAsync();
- console.log('stop listening on $window and multiple-element!');
- angular.element($window).off('click');
- angular.element('multiple-select2').off('click');
- };
-
- scope.showCheckboxes = function(){
- scope.isExpanded = !scope.isExpanded;
- if(scope.isExpanded){
- startListening();
- }else{
- stopListening();
- if(scope.onDropdownClose){
- scope.onDropdownClose();
- }
- }
- };
-
- scope.onCheckboxClicked = function() {
- console.log('checkbox clicked; unique data: ',attrs.uniqueData);
- if(scope.onChange) {
- scope.onChange();
- }
- }
-
- scope.getTitle = function(){
- var disp = '';
- if(!scope.ngModel || !scope.ngModel.length) {
- return disp;
- }
- scope.ngModel.forEach(function(item){
- if(item[scope.valueAttr]){
- disp+=item[scope.nameAttr] + ',';
- }
- });
- if(disp!==''){
- disp = disp.slice(0,disp.length-1);
- }else{
- disp = scope.placeholder;
- }
- return disp;
- };
- }
- };
- });
+/*- + * ================================================================================ + * ECOMP Portal + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ================================================================================ + */ +/** + * Created by nnaffar on 12/21/15.+ + */ +angular.module('ecompApp') + .directive('multipleSelect2', function ($window) { + return { + restrict: 'E', + templateUrl: 'app/directives/multiple-select/multiple-select2.tpl.html', + scope: { + onChange: '&', + nameAttr: '@', + valueAttr: '@', + ngModel: '=', + placeholder: '@', + uniqueData: '@?', + onDropdownClose: '&?' + }, + link: function(scope, elm, attrs){ + scope.isExpanded = false; + + scope.isDisabled = !scope.ngModel || !scope.ngModel.length; + scope.$watch('ngModel', function(newVal){ + scope.isDisabled = !newVal || !newVal.length; + }); + + + let startListening = () => { + console.log('listening on $window!'); + angular.element($window).on('click', function () { + stopListening(); + }); + + angular.element('multiple-select2').on('click', function(e) { + if($(e.target).closest('multiple-select2')[0].attributes['unique-data'].value === attrs.uniqueData){ + console.log('ignored that..:', attrs.uniqueData); + e.stopPropagation(); + }else{ + console.log('shouldnt ignore, close expanded!:', attrs.uniqueData); + scope.isExpanded = false; + scope.$applyAsync(); + } + }); + }; + + let stopListening = function() { + if(scope.onDropdownClose){ + scope.onDropdownClose(); + } + scope.isExpanded = false; + scope.$applyAsync(); + console.log('stop listening on $window and multiple-element!'); + angular.element($window).off('click'); + angular.element('multiple-select2').off('click'); + }; + + scope.showCheckboxes = function(){ + scope.isExpanded = !scope.isExpanded; + if(scope.isExpanded){ + startListening(); + }else{ + stopListening(); + if(scope.onDropdownClose){ + scope.onDropdownClose(); + } + } + }; + + scope.onCheckboxClicked = function() { + console.log('checkbox clicked; unique data: ',attrs.uniqueData); + if(scope.onChange) { + scope.onChange(); + } + } + + scope.getTitle = function(){ + var disp = ''; + if(!scope.ngModel || !scope.ngModel.length) { + return disp; + } + scope.ngModel.forEach(function(item){ + if(item[scope.valueAttr]){ + disp+=item[scope.nameAttr] + ','; + } + }); + if(disp!==''){ + disp = disp.slice(0,disp.length-1); + }else{ + disp = scope.placeholder; + } + return disp; + }; + } + }; + }); |