diff options
author | Christopher Lott (cl778h) <clott@research.att.com> | 2017-09-25 15:52:24 -0400 |
---|---|---|
committer | Christopher Lott (cl778h) <clott@research.att.com> | 2017-09-25 15:53:55 -0400 |
commit | 3a2b5c60384feb490e878020bdb9c01f514d7856 (patch) | |
tree | 840d02d1090640b08aa481f52d3385ad92552991 /ecomp-sdk/epsdk-app-overlay/src/main/webapp/static | |
parent | 65c475eb72271f674f5ec4502fa67fd972344543 (diff) |
Sonar Scans and Role Centralization; clean nl
PORTAL-21: centralized user role management
PORTAL-72: Address Sonar Scan code issues for ONAP - mostly on raptor
PORTAL-86: ONAP - Remove internal att.com usages from tests and otherfiles
PORTAL-90: Add debug statements to demo app's class; no functional change
Issue: PORTAL-21 PORTAL-72 PORTAL-86 PORTAL-90
Change-Id: I72a6c812009f51446330bf42bab6d3338d053805
Signed-off-by: Christopher Lott (cl778h) <clott@research.att.com>
Diffstat (limited to 'ecomp-sdk/epsdk-app-overlay/src/main/webapp/static')
-rw-r--r-- | ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/sample/html/data/worddata.csv | 128 | ||||
-rw-r--r-- | ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/js/search.js | 830 |
2 files changed, 127 insertions, 831 deletions
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/sample/html/data/worddata.csv b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/sample/html/data/worddata.csv index 762cb423..13f0d020 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/sample/html/data/worddata.csv +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/sample/html/data/worddata.csv @@ -1 +1,127 @@ -text,frequency
service,98
portal,70
management,70
virtual,56
design,56
VNF,56
studio,42
operations,42
inventory,42
POLO,42
D2.0,42
ASDC,42
router,28
restart,28
process,28
platform,28
manage,28
loop,28
licensing,28
license,28
integrated,28
flow-through,28
enable,28
data,28
controller,28
control,28
configure,28
component,28
common,28
asset,28
application,28
ECOMP,28
workflow,14
waterfall,14
visual,14
view,14
vCTS,14
utilization,14
user,14
usage,14
troubleshoot,14
transformation,14
track,14
topolgies,14
topics,14
time,14
tickets,14
thresholds,14
templates,14
structures,14
standards-based,14
software,14
reuse,14
repository,14
reports,14
release,14
recipes,14
real-time,14
provisioning,14
properties,14
project-based,14
processes,14
physical,14
oversight,14
openl-loop,14
network,14
monitor,14
modeling,14
model-driven,14
model,14
message,14
maximize,14
manually,14
machine,14
layer,14
interact,14
instances,14
initiate,14
increase,14
imported,14
impacts,14
host,14
function,14
feeds,14
features,14
faults,14
extended,14
engines,14
engine,14
dynamic,14
document-driven,14
determine,14
dashboard,14
current,14
creation,14
created,14
create,14
configuration,14
composer,14
components,14
collective,14
certification,14
bus,14
basis,14
available,14
automation,14
automated,14
associated,14
assignment,14
appropriate,14
against,14
aervice,14
adminstrators,14
activation,14
action,14
VMs,14
VM,14
VLAN,14
SDN,14
SDK,14
SBG,14
SAM,14
RUBY,14
Policy,14
PODS,14
Ops,14
GFP,14
F5FW,14
DMaaP,14
DCAE,14
DBC,14
CPADS,14
AT&T,14
APP-C,14
AOTS-TM,14
ALTS,14
A&AI,14 +text,frequency +service,98 +portal,70 +management,70 +virtual,56 +design,56 +studio,42 +operations,42 +inventory,42 +router,28 +restart,28 +process,28 +platform,28 +manage,28 +loop,28 +licensing,28 +license,28 +integrated,28 +flow-through,28 +enable,28 +data,28 +controller,28 +control,28 +configure,28 +component,28 +common,28 +asset,28 +application,28 +ECOMP,28 +workflow,14 +waterfall,14 +visual,14 +view,14 +workflow,14 +waterfall,14 +visual,14 +view,14 +utilization,14 +user,14 +usage,14 +troubleshoot,14 +transformation,14 +track,14 +topolgies,14 +topics,14 +time,14 +tickets,14 +thresholds,14 +templates,14 +structures,14 +standards-based,14 +software,14 +reuse,14 +repository,14 +reports,14 +release,14 +recipes,14 +real-time,14 +provisioning,14 +properties,14 +project-based,14 +processes,14 +physical,14 +oversight,14 +openl-loop,14 +network,14 +monitor,14 +modeling,14 +model-driven,14 +model,14 +message,14 +maximize,14 +manually,14 +machine,14 +layer,14 +interact,14 +instances,14 +initiate,14 +increase,14 +imported,14 +impacts,14 +host,14 +function,14 +feeds,14 +features,14 +faults,14 +extended,14 +engines,14 +engine,14 +dynamic,14 +document-driven,14 +determine,14 +dashboard,14 +current,14 +creation,14 +created,14 +create,14 +configuration,14 +composer,14 +components,14 +collective,14 +certification,14 +bus,14 +basis,14 +available,14 +automation,14 +automated,14 +associated,14 +assignment,14 +appropriate,14 +against,14 +aervice,14 +adminstrators,14 +activation,14 +action,14 +VMs,14 +VM,14 +VLAN,14 +SDK,14 +SBG,14 +SAM,14 +RUBY,14 +Policy,14 +PODS,14 +Ops,14 +GFP,14 +F5FW,14 diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/js/search.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/js/search.js deleted file mode 100644 index c7b7ba65..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/js/search.js +++ /dev/null @@ -1,830 +0,0 @@ - -// var app=angular.module("abs", ["att.abs"]); - - - app.directive('afterRender', [ function() { - var def = { - restrict : 'A', - terminal : true, - transclude : false, - link : function(scope, element, attrs) { - if (attrs) { scope.$eval(attrs.afterRender) } - scope.$emit('onAfterRender') - } - }; - return def; - }]); - - app.directive("search", function() { - return { - // replace custom element with html5 markup - template: '<div >' - //+ '<c:set var="zeroidx" value="0" />' - + '<div ng-repeat="a in optionsSizeArray track by $index"> ' - + '<div id="{{sId}}{{a}}" > ' - + ' <div class="form-field form-field__glued pull-left size-onefourth" style=" width:25%;" >' - + ' <div att-search="options" ng-model="valueOptions[a]" placeholder="Select"></div> ' - + ' </div> ' - + ' <div class="form-field form-field__glued pull-left size-onefourth" style=" width:25%;"> ' - + ' <div att-search="operators" ng-model="compareOptions[a]" placeholder="Select"></div> ' - + ' </div> ' - + ' <div class="form-field form-field__glued pull-left size-onefourth" style=" width:25%;">' - + ' <input ng-model="searchValue[a]" type="text" placeholder="What are you looking for?" style=" border-radius:0px 5px 5px 0px" > ' - + ' </div> ' - + ' <div class="form-field form-field__glued pull-left size-onefourth" style=" width:25%; padding-left:5px;"> ' - + ' <button ng-click="remove(sId,a)" class="myzkBtn" >-</button>' - + ' <button ng-if="$index==0" ng-click="addSearch(sId,a,optionsSizeArray)" class="myzkBtn" >+</button> ' - + ' <button ng-if="$index==0" ng-click="updateparent({filter: { valueOptions: valueOptions, compareOptions: compareOptions, searchValue : searchValue } })" class="myzkBtn" style="background-image:url(static/ebz/images/searchIcon.png); background-repeat: no-repeat; background-position: center;"> </button>' - + ' </div>' - + ' </div> ' - + '</div>' - + '</div> ' , - replace: true, - // restrict usage to element only since we use attributes for APIs - restrict: 'EA', - require: 'ngModel', - // new isolate scope - scope: { - mSearch : '=ngModel' - ,updateparent: '&' - ,jsonForOption : '=' - ,jsonForOperator : '=' - ,searchId : '=' - }, - link: function(scope, iElement, iAttrs){ - scope.optionsSizeArray = []; - scope.sId = ''; - //scope.options = JSON.parse(JSON.stringify(iAttrs.jsonForOption)); - //scope.operators = JSON.parse(iAttrs.operators); - - scope.$watch("jsonForOption", function(newval, oldval) { - scope.options = JSON.parse(JSON.stringify(oldval)); - console.log('1'); - scope.evalRepeatIndex(scope.options.length); - console.log('2'); - - }); - - scope.evalRepeatIndex = function(size){ - for(index = 0; index < size; index++) { - scope.optionsSizeArray.push(index); - } - }; - - scope.$watch("jsonForOperator", function(newval, oldval) { - scope.operators = JSON.parse(JSON.stringify(oldval)); - - }); - - if(getParameterByName("search")!=null && getParameterByName("search")!=''){ - if((getParameterByName("location")!=null && getParameterByName("location")!='')){ - scope.searchValue[0]=JSON.parse(JSON.stringify(getParameterByName("location"))); - scope.valueOptions[0]={index:0,value:'Location Name',title:"Location Name",alias:'Location Name'}; - scope.compareOptions[0]={index:1,value:'Contains',title:"Contains",alias:'Contains'}; - }else if((getParameterByName("userLastName")!=null && getParameterByName("userLastName")!='')){ - scope.searchValue[0]=JSON.parse(JSON.stringify(getParameterByName("userLastName"))); - scope.valueOptions[0]= {index: 0, value: 'Last Name', title: 'Last Name', alias:'Last Name'}; - scope.compareOptions[0]={index:1,value:'Contains',title:"Contains",alias:'Contains'}; - } - } - scope.$watch("searchId", function(newval, oldval) { - scope.sId = oldval; - scope.hideDiv(); - }); - - scope.showHide = function(div){ - if(div != 0){ - $("#s1").css('display', 'none'); - } - return true; - }; - - - scope.hideDiv = function(){ - console.log('3'); - console.log(scope.optionsSizeArray); - - - for (i = 1; i < scope.optionsSizeArray.length; i++) { - var element = "#"+scope.sId+i; - $(element).css('display', 'none'); - } - - console.log('4'); - - }; - - - $(function() { - scope.hideDiv(); - }); - - }, - - controller: function ($scope) { - - $scope.addSearch = function(searchId, index, optionsLength){ - console.log('5'); - - for(var i = 0; i<=optionsLength.length ;i++){ - var element = "#"+searchId+i; - if($(element).css('display') == 'none'){ - $(element).css('display', 'inline'); - break; - } - }; - console.log('6'); - - }; - - $scope.remove = function(searchId, index){ - var remove = "#"+searchId+index; - if(index!=0) - $(remove).css("display", "none"); - var v ={ - index: 0, - value: '', - title: 'Select', - alias:'' - }; - $scope.valueOptions[index]=v; - $scope.compareOptions[index]=v; - $scope.searchValue[index]=""; - }; - - $scope.search = function() { - var data = { - valueOptions : $scope.valueOptions, - compareOptions : $scope.compareOptions, - searchValue : $scope.searchValue - }; - }; - - var data = { - valueOptions : $scope.valueOptions, - compareOptions : $scope.compareOptions, - searchValue : $scope.searchValue - }; - - $scope.mSearch = data; - $scope.valueOptions=[]; - $scope.compareOptions=[]; - $scope.searchValue=[]; - } - } - - }); - - app.directive('phoneNumberMask', [function(){ - return { - restrict: 'A', - require: '?ngModel', - scope: { - ngModel : '=' - }, - link: function(scope, el, attrs){ - scope.$watch(attrs.phoneNumberMask, function(newValue, oldValue) { - - if(scope.ngModel) - scope.ngModel= scope.ngModel.replace(/(\+1)?(\d{3})(\d{3})(\d{4})/, '$2.$3.$4'); - $(el).mask("999.999.9999"); - }); - scope.$watch("ngModel", function() { - var current = $(el).val(); - if(scope.ngModel && /^(\+1)?\d{3,}$/.test(scope.ngModel)) - scope.ngModel= scope.ngModel.replace(/(\+1)?(\d{3})(\d{3})(\d{4})/, '$2.$3.$4'); - - }); - }, - }; - }]); - - app.directive('allowOnlyNumber', [function(){ - return { - require: 'ngModel', - link: function(scope, element, attrs, modelCtrl) { - modelCtrl.$parsers.push(function (inputValue) { - if (inputValue == undefined) return ''; - var transformedInput = inputValue.replace(/[^0-9]/g, ''); - if (transformedInput!=inputValue) { - modelCtrl.$setViewValue(transformedInput); - modelCtrl.$render(); - } - - return transformedInput; - }); - } - }; - }]); - - app.directive('showProcessing', function(){ - return { - restrict: 'A', - link: function(scope, elem, attrs) { - elem.bind('click', function() { - $(".overlayed").css("display","inline"); - $(".loadingId").css("display","inline"); - }); - } - } - }); - -app.directive("searchCriteria", function() { - return { - // replace custom element with html5 markup - template: '<div >' - + '<div ng-repeat="a in searchCriterion track by $index" ng-show="isShown[$index]"> ' - + ' <div class="form-field form-field__glued form-field__square size-onefourth left_round_border">' - + ' <div att-search="availableOptions[$index]" ng-model="valueOptions[$index]"></div> ' - + ' </div> ' - + ' <div class="form-field form-field__glued form-field__square size-onefourth"> ' - + ' <div att-search="availableOperators[$index]" ng-model="compareOptions[$index]" > </div> ' - + ' </div> ' - + ' <div class="form-field form-field__glued form-field__square size-onefourth right_round_border">' - + ' <input ng-show="!availableValues[$index] || availableValues[$index].length===0" ng-model="searchValue[$index]" type="text" placeholder="What are you looking for?" class="fn-ebz-text" style="width:100%;" > ' - + ' <div ng-show="availableValues[$index] && availableValues[$index].length!==0" att-search="availableValues[$index]" ng-model="searchValue[$index]"></div> ' - + ' </div> ' - + ' <div class="form-field form-field__glued form-field__square size-onefourth" style=" padding-left:5px;" > ' - + ' <button ng-show="$index!=0" ng-click="removeSearchCriteria($index)" class="myzkBtn">-</button>' - + ' <button ng-show="$index==0" ng-click="addSearchCriteria($index)" class="myzkBtn">+</button> ' - + ' <button ng-show="$index==0" ng-click="search()" class="myzkBtn" style="background-image:url(static/ebz/images/searchIcon.png); background-repeat: no-repeat; background-position: center;"> </button>' - + ' </div>' - + ' </div> ' - + '</div> ' , - replace: true, - // restrict usage to element only since we use attributes for APIs - restrict: 'EA', - require: 'ngModel', - // new isolate scope - scope: { - mSearch : '=ngModel', - updateparent: '&' - ,options : '=jsonForOption' - ,operators : '=jsonForOperator' - }, - - controller: function ($scope) { - $scope.isShown = [true]; - $scope.searchCriterion = []; - $scope.valueOptions=[]; - $scope.compareOptions=[]; - $scope.searchValue=[]; - $scope.availableOperators=[]; - $scope.availableValues=[]; - $scope.availableOptions = []; - //init - $scope.insertEmptyOption = function(arr){ - var hasEmpty = false; - $.each(arr, function(i, a){ - if(a.value ===''){ - hasEmpty = true; - } - }); - if(!hasEmpty){ - $.each(arr, function(i, a){ - a.index +=1; - }); - arr.unshift({index: 0, value: '', title: 'Select', alias:'Select'}); - } - }; - $scope.findFirstOption = function(arr){ - - }; - $scope.insertEmptyOption($scope.options); - $scope.insertEmptyOption($scope.operators); - - for(var i = 0, l= $scope.options.length; i<l; i++) { - var option= $scope.options[i]; - var n = option.maxOccurs; - if(option.value!==''){ - if(n && Number(n)===n && n%1===0){ //maxOccurs is specified - for(var j=0; j<n; j++){ - $scope.searchCriterion.push(""); - $scope.availableOperators.push($scope.operators); - var valueArr = []; - $scope.availableValues.push(valueArr); - $scope.availableOptions.push($scope.options); - $scope.isShown.push(false); - } - }else{ - $scope.searchCriterion.push(""); - $scope.availableOperators.push($scope.operators); - var valueArr = []; - $scope.availableValues.push(valueArr); - $scope.availableOptions.push($scope.options); - $scope.isShown.push(false); - } - } - } - $scope.isShown.pop(); - - $scope.updateAvailableOptions = function(index, isFirst){ - var selectedOptions = [];//{value:'name', occurs: } - if($scope.options && $scope.options.length > 0){ - $.each($scope.valueOptions, function(i, a){ - if(a){ - var v = a.value; - if(v){ - var s= $.grep(selectedOptions, function(e){ return e.value === v }); - - if(s.length ===1){ - s[0].occurs += 1; - }else{ - selectedOptions.push({value: v, occurs:1}); - } - } - var o= $.grep($scope.options, function(e){ return e.value === v }); - if(o.length ===1){ - if("operators" in o[0]){ - $scope.availableOperators[i]=o[0].operators; - $scope.insertEmptyOption($scope.availableOperators[i]); - }else{ - $scope.availableOperators[i]=$scope.operators; - } - if("values" in o[0]){ - $scope.availableValues[i]=o[0].values; - }else{ - $scope.availableValues[i]=[]; - } - } - } - }); - for(var j = 0 , l = $scope.availableOptions.length; j<l ; j++){ - var newOptions = []; - var aoi = 0; - $.each($scope.options, function(i, a){ - var s= $.grep(selectedOptions, function(e){ return e.value === a.value }); - var maxOccurs = "maxOccurs" in a ? a.maxOccurs :1; - if(s.length > 0 && s[0].occurs >= maxOccurs && ($scope.valueOptions[j] && $scope.valueOptions[j].value !== s[0].value)){// reach limit - }else{ - newOptions.push({index: aoi, value: a.value, title: a.title, alias:a.alias}); - aoi += 1; - } - }); - $scope.availableOptions[j] = newOptions; - if(isFirst){ - if($scope.availableValues[j].length>0) - $scope.searchValue[j]= $scope.availableValues[j][0]; - else - $scope.searchValue[j]=""; - - $scope.compareOptions[j]= $scope.availableOperators[j][0]; - } - }; - - } - if(typeof index !== 'undefined' && !isFirst){ - if($scope.availableValues[index].length>0) - $scope.searchValue[index]= $scope.availableValues[index][0]; - else - $scope.searchValue[index]=""; - } - }; - - $scope.updateAvailableOptions(undefined, true); - $.each($scope.availableOptions, function(j, a){ - $scope.valueOptions[j]= a[0]; - }); - $scope.addSearchCriteria = function(index){ - for(var i = 0 , l =$scope.isShown.length; i<l; i++ ){ - if(!$scope.isShown[i]){ - $scope.isShown[i]= true; - break; - } - - } - }; - - $scope.removeSearchCriteria = function(index){ - $scope.isShown[index]= false; - - - $scope.valueOptions[index]=$scope.availableOptions[index][0]; - $scope.compareOptions[index]=$scope.availableOperators[index][0]; - $scope.searchValue[index]=""; - }; - $scope.search = function() { - //remove empty criteria - var vo =[]; - var co =[]; - var sv =[]; - for(var i = 0 , l=$scope.valueOptions.length; i<l ; i++){ - if($scope.valueOptions[i].value==='' || $scope.compareOptions[i].value==='' ||(typeof $scope.searchValue[i] ==='string' && $scope.searchValue[i] ==='') || $scope.searchValue[i].value === ''){ - }else{ - vo.push($scope.valueOptions[i]); - co.push($scope.compareOptions[i]); - sv.push($scope.searchValue[i]); - } - } - $scope.updateparent({filter: { valueOptions: vo, compareOptions: co, searchValue :sv } }); - }; - - $scope.$watchCollection("valueOptions", function(collection, oldValue ){ - if(collection) { - var index; - for(var i = 0 , l =collection.length; i<l; i++ ){ - if(!oldValue[i] || oldValue[i].value!=collection[i].value){ - index = i; - break; - } - - } - $scope.updateAvailableOptions(index); - } - }, true); - - } - } - - }); - - app.directive("selectUser", function() { - return { - // replace custom element with html5 markup - template: '<div> ' - + '<table style="width:660px; margin-left:-12px;" >' - + '<thead>' - + ' <tr >' - + ' <th style="width:325px;">{{availableTitle}}</th> ' - + ' <th style="width:10px;"></th> ' - + ' <th style="width:325px;">{{userTitle}}</th> ' - + '</tr>' - + '</thead>' - + '<tbody>' - + '<tr>' - + ' <td style="width:325px;">' - + ' <div class="ebz-listbox">' - + ' <label ng-repeat="canditateId in canditateIds track by canditateId.ociUserId" style="display:block;"> ' - + ' <input type="checkbox" style="margin-top: 10px;" ng-model="canditateId.available" att-checkbox ng-change="checkCanditate($index)"/> {{canditateId.firstName}} {{canditateId.lastName}}({{canditateId.phone}})<br/>' - + ' </label>' - + ' </div>' - + '</td>' - + '<td valign="middle" width="10px">' - + ' <img src="static/images/rightarrow_g.png" id="removeBtn" ng-click="chooseSelected()" ng-hide="oneMax && chosenIds.length==1"/>' - + ' <img src="static/images/leftarrow_g.png" id="chooseBtn" ng-click="removeSelected()" ng-show="oneMax && chosenIds.length==1"/>' - + ' <br/><br/> ' - + ' <img src="static/images/leftarrow_g.png" id="chooseBtn" ng-click="removeSelected()" ng-hide="oneMax"/>' - + ' <br/><br/>' - + ' <img id="chooseAllBtn" src="static/images/rightrightarrow_g.png" ng-click="chooseAll()" ng-hide="oneMax"/>' - + ' <br/><br/>' - + ' <img style="cursor:pointer" id="removeAllBtn" src="static/images/leftleftarrow_g.png" ng-click="removeAll()" ng-hide="oneMax"/>' - + '</td>' - + '<td style="width:325px;">' - + ' <div class="ebz-listbox" >' - + ' <label ng-repeat="chosenId in chosenIds" style="display:block;">' - + ' <input type="checkbox" style=" margin-top :10px;" att-checkbox ng-model="chosenId.available"/> {{chosenId.firstName}} {{chosenId.lastName}}({{chosenId.phone}})<br/>' - + ' </label>' - + ' </div>' - + '</td> ' - + ' </tr>' - + '</tbody>' - + '</table>' - + '</div>', - replace: true, - // restrict usage to element only since we use attributes for APIs - restrict: 'EA', - // new isolate scope - scope: { - chosenIds : '=assignedUsers' - ,availableUsers : '=' - ,userTitle : '=' - ,availableTitle : '=' - ,oneMax : '=?' - }, - link: function(scope, iElement, attrs){ - - scope.$watch("userTitle", function(newval, oldval) { - scope.userTitle = newval; - }); - scope.$watch("availableTitle", function(newval, oldval) { - scope.availableTitle = newval; - }); - - scope.$watch("availableUsers", function(newval, oldval) { - scope.availableUsers = newval; - scope.canditateIds= scope.getArrayRemoved(scope.availableUsers, scope.chosenIds); - }); - - }, - - controller: function ($scope) { - $scope.getArrayRemoved = function(from, removed){ - var retArray = (from)? from:[]; - if(retArray && retArray.length >0 && removed){ - for(var i = 0, l = removed.length; i<l; i++ ){ - retArray = $.grep(retArray, function(e){ return e.ociUserId !== removed[i].ociUserId; }); - }; - } - return retArray; - }; - $scope.canditateIds= $scope.getArrayRemoved($scope.availableUsers, $scope.chosenIds); - $scope.chooseAll = function() { - - var dataFromTableData = $scope.canditateIds; - for (var i = dataFromTableData.length - 1; i >= 0; i--){ - if(!$scope.chosenIds) - $scope.chosenIds=[]; - $scope.chosenIds.push(dataFromTableData[i]); - $scope.canditateIds.splice(i,1); - - } - var dataFromChoosonTable = $scope.chosenIds; - for (var i = dataFromChoosonTable.length - 1; i >= 0; i--){ - if(dataFromChoosonTable[i].available){ - $scope.chosenIds[i].available=false; - } - } - }; - - $scope.removeAll = function() { - var dataFromTableData = $scope.chosenIds; - for (var i = dataFromTableData.length - 1; i >= 0; i--){ - $scope.canditateIds.push(dataFromTableData[i]); - $scope.chosenIds.splice(i,1); - - } - var dataFromChoosonTable = $scope.canditateIds; - for (var i = dataFromChoosonTable.length - 1; i >= 0; i--){ - if(dataFromChoosonTable[i].available){ - $scope.canditateIds[i].available=false; - } - } - }; - - $scope.chooseSelected = function() { - - var dataFromTableData = $scope.canditateIds; - - for (var i = dataFromTableData.length - 1; i >= 0; i--){ - - if(dataFromTableData[i].available){ - if(!$scope.chosenIds) - $scope.chosenIds=[]; - $scope.chosenIds.push(dataFromTableData[i]); - $scope.canditateIds.splice(i,1); - - } - } - var dataFromChoosonTable = $scope.chosenIds; - for (var i = dataFromChoosonTable.length - 1; i >= 0; i--){ - if(dataFromChoosonTable[i].available){ - $scope.chosenIds[i].available=false; - } - } - }; - $scope.removeSelected = function() { - - var dataFromTableData = $scope.chosenIds; - - for (var i = dataFromTableData.length - 1; i >= 0; i--){ - if(dataFromTableData[i].available){ - $scope.canditateIds.push(dataFromTableData[i]); - $scope.chosenIds.splice(i,1); - - } - } ; - var dataFromChoosonTable = $scope.canditateIds; - for (var i = dataFromChoosonTable.length - 1; i >= 0; i--){ - if(dataFromChoosonTable[i].available){ - $scope.canditateIds[i].available=false; - } - } - }; - $scope.checkCanditate = function(index) { - if($scope.oneMax){ - for (var i = $scope.canditateIds.length - 1; i >= 0; i--){ - if(i != index) - $scope.canditateIds[i].available=false; - } - } - }; - - - } - } - }); - app.directive("selectString", function() { - return { - // replace custom element with html5 markup - template: '<div> ' - + '<table style="width:660px;">' - + '<thead>' - + ' <tr >' - + ' <th style="width:325px;">{{availableTitle}}</th> ' - + ' <th style="width:10px;"></th> ' - + ' <th style="width:325px;">{{assignedTitle}}</th> ' - + '</tr>' - + '</thead>' - + '<tbody>' - + '<tr>' - + ' <td style="width:325px;">' - + ' <div class="ebz-listbox">' - + ' <label ng-repeat="canditateId in canditateIds track by $index" style="display:block;"> ' - + ' <input type="checkbox" style="margin-top: 10px;" ng-model="canditateId.available" att-checkbox /> {{canditateId}}<br/>' - + ' </label>' - + ' </div>' - + '</td>' - + '<td valign="middle" width="10px">' - + ' <img src="static/images/rightarrow_g.png" id="removeBtn" ng-click="chooseSelected()" />' - + ' <br/><br/> ' - + ' <img src="static/images/leftarrow_g.png" id="chooseBtn" ng-click="removeSelected()" />' - + ' <br/><br/>' - + ' <img id="chooseAllBtn" src="static/images/rightrightarrow_g.png" ng-click="chooseAll()" />' - + ' <br/><br/>' - + ' <img style="cursor:pointer" id="removeAllBtn" src="static/images/leftleftarrow_g.png" ng-click="removeAll()" />' - + '</td>' - + '<td style="width:325px;">' - + ' <div class="ebz-listbox" >' - + ' <label ng-repeat="chosenId in chosenIds" style="display:block;">' - + ' <input type="checkbox" style=" margin-top :10px;" att-checkbox ng-model="chosenId.available"/> {{chosenId}}<br/>' - + ' </label>' - + ' </div>' - + '</td> ' - + ' </tr>' - + '</tbody>' - + '</table>' - + '</div>', - replace: true, - // restrict usage to element only since we use attributes for APIs - restrict: 'EA', - // new isolate scope - scope: { - chosenIds : '=assignedOptions' - ,availableOptions : '=' - ,availableTitle : '@' - ,assignedTitle : '@' - }, - link: function(scope, iElement, attrs){ - scope.$watch("availableOptions", function(newval, oldval) { - scope.availableOptions = newval; - scope.canditateIds= scope.getArrayRemoved(scope.availableOptions, scope.chosenIds); - }); - - }, - - controller: function ($scope) { - $scope.getArrayRemoved = function(from, removed){ - var retArray = (from)? from:[]; - if(retArray && retArray.length >0 && removed){ - for(var i = 0, l = removed.length; i<l; i++ ){ - retArray = $.grep(retArray, function(e){ return e !== removed[i]; }); - }; - } - return retArray; - }; - - $scope.canditateIds= $scope.getArrayRemoved($scope.availableOptions, $scope.chosenIds); - $scope.chooseAll = function() { - - var dataFromTableData = $scope.canditateIds; - for (var i = dataFromTableData.length - 1; i >= 0; i--){ - if(!$scope.chosenIds) - $scope.chosenIds=[]; - $scope.chosenIds.push(dataFromTableData[i]); - $scope.canditateIds.splice(i,1); - - } - }; - - $scope.removeAll = function() { - var dataFromTableData = $scope.chosenIds; - for (var i = dataFromTableData.length - 1; i >= 0; i--){ - $scope.canditateIds.push(dataFromTableData[i]); - $scope.chosenIds.splice(i,1); - - } - }; - - $scope.chooseSelected = function() { - - var dataFromTableData = $scope.canditateIds; - - for (var i = dataFromTableData.length - 1; i >= 0; i--){ - - if(dataFromTableData[i].available){ - if(!$scope.chosenIds) - $scope.chosenIds=[]; - $scope.chosenIds.push(dataFromTableData[i]); - $scope.canditateIds.splice(i,1); - - } - } - }; - $scope.removeSelected = function() { - - var dataFromTableData = $scope.chosenIds; - - for (var i = dataFromTableData.length - 1; i >= 0; i--){ - if(dataFromTableData[i].available){ - $scope.canditateIds.push(dataFromTableData[i]); - $scope.chosenIds.splice(i,1); - - } - } ; - }; - - } - } - }); - function getParameterByName(name) { - name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); - var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), - results = regex.exec(location.search); - return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); - }; - - app.directive("time", function() { - return { - // replace custom element with html5 markup - template: '<div style="height:80px; display:inline-block;"> ' - + ' <input type="text" class="fn-ebz-text" ng-model="timeStr" placeholder="HH:MM" style="width:70px" ng-change="parseValue()"/>' - + ' <div class="form-field" att-select="ampmOptions" ng-model="ampm" style="width:70px" ng-change="parseValue()"></div>' - + ' </div>', - replace: true, - // restrict usage to element only since we use attributes for APIs - restrict: 'EA', - // new isolate scope - scope: { - value : '=' - ,validTime : '=?' - }, - link: function(scope, iElement, attrs){ - }, - - controller: function ($scope) { - $scope.timeStr=''; - $scope.ampm=null; - var am ={index: 0, value: 'AM', title: 'AM', alias:'Name2'}; - var pm = {index: 1, value: 'PM', title: 'PM', alias:'Name'}; - $scope.ampmOptions=[ - am, - pm, - ] - $scope.parseTimeStr= function(str){ - if(str){ - try{ - var date; - if(/^(\d*):(\d*)$/.test(str)){ - var hh = Number(str.match(/^(\d+)/)[1]); - var mm = Number(str.match(/:(\d+)/)[1]); - date = new Date(1970, 0, 1, hh, mm, 0); - }else{ - date = new Date(str); - } - var hours = date.getHours(); - var minutes = date.getMinutes(); - var ampm = hours >= 12 ?pm : am; - hours = hours % 12; - hours = hours ? hours : 12; // the hour '0' should be '12' - minutes = minutes < 10 ? '0'+minutes : minutes; - hours = hours < 10 ? '0'+hours : hours; - var strTime = hours + ':' + minutes ; - - - $scope.timeStr =strTime; - $scope.ampm = ampm; - if (typeof $scope.validTime != 'undefined'){ - $scope.validTime=true; - } - }catch(err){ - if (typeof $scope.validTime != 'undefined'){ - $scope.validTime=false; - } - } - }else{ - $scope.timeStr = "12:00"; - $scope.ampm =am; - } - }; - $scope.parseTimeStr($scope.value); - $scope.parseValue = function(){ - try{ - var date; - var hh = Number($scope.timeStr.match(/^(\d+)/)[1]); - var mm = Number($scope.timeStr.match(/:(\d+)/)[1]); - - if(hh<=12 && hh>0 && mm>=0 && mm<=59){ - - if($scope.ampm.value=='PM'&& hh<12) hh = hh+12; - if($scope.ampm.value=='AM'&& hh==12) hh = hh-12; - mm = mm < 10 ? '0'+mm : mm; - hh = hh < 10 ? '0'+hh : hh; - $scope.value= hh+":"+mm; - if (typeof $scope.validTime != 'undefined'){ - $scope.validTime=true; - } - }else{ - if (typeof $scope.validTime != 'undefined'){ - $scope.validTime=false; - } - } - - }catch(err){ - if (typeof $scope.validTime != 'undefined'){ - $scope.validTime=false; - } - } - }; - } - } - });
\ No newline at end of file |