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 | |
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')
19 files changed, 154 insertions, 1398 deletions
diff --git a/ecomp-sdk/epsdk-app-overlay/README.md b/ecomp-sdk/epsdk-app-overlay/README.md index c6a1012f..5f03cb9f 100644 --- a/ecomp-sdk/epsdk-app-overlay/README.md +++ b/ecomp-sdk/epsdk-app-overlay/README.md @@ -22,6 +22,8 @@ Version 1.4.0 - PORTAL-42 Use OParent as parent POM - PORTAL-72 Address Sonar Scan code issues - PORTAL-90 Use approved ONAP license text +- Portal-86 Remove application specific usages from tests and other files + * Put new entries here * Version 1.3.0, 28 August 2017 diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/WEB-INF/fusion/jsp/ebz/ebz_header.jsp b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/WEB-INF/fusion/jsp/ebz/ebz_header.jsp index 0c94add3..a1128ede 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/WEB-INF/fusion/jsp/ebz/ebz_header.jsp +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/WEB-INF/fusion/jsp/ebz/ebz_header.jsp @@ -57,7 +57,6 @@ <script src="app/fusion/scripts/modalService.js"></script> <script src="static/js/jquery.mask.min.js" type="text/javascript"></script> <script src="static/js/jquery-ui.js" type="text/javascript"></script> -<script src="app/fusion/external/ebz/sandbox/att-abs-tpls.js" type="text/javascript"></script> <script src="static/fusion/js/att_angular_gridster/ui-gridster-tpls.js"></script> <script src="static/fusion/js/att_angular_gridster/angular-gridster.js"></script> <script src= "app/fusion/external/ebz/angular_js/checklist-model.js"></script> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/WEB-INF/fusion/jsp/ebz_template_report_embedded.jsp b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/WEB-INF/fusion/jsp/ebz_template_report_embedded.jsp index e4d2d1ef..159932ca 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/WEB-INF/fusion/jsp/ebz_template_report_embedded.jsp +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/WEB-INF/fusion/jsp/ebz_template_report_embedded.jsp @@ -49,7 +49,6 @@ <script src="static/js/modalService.js"></script> <script src="static/js/jquery.mask.min.js" type="text/javascript"></script> <script src="static/js/jquery-ui.js" type="text/javascript"></script> -<script src="app/fusion/external/ebz/sandbox/att-abs-tpls.js" type="text/javascript"></script> <script src="static/fusion/js/att_angular_gridster/ui-gridster-tpls.js"></script> <script src="static/fusion/js/att_angular_gridster/angular-gridster.js"></script> <script src= "app/fusion/external/ebz/angular_js/checklist-model.js"></script> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/WEB-INF/fusion/jsp/webrtc/collaboration.jsp b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/WEB-INF/fusion/jsp/webrtc/collaboration.jsp index f99712ea..f392ed56 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/WEB-INF/fusion/jsp/webrtc/collaboration.jsp +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/WEB-INF/fusion/jsp/webrtc/collaboration.jsp @@ -166,7 +166,6 @@ <%@ include file="/WEB-INF/fusion/jsp/popup_modal.html" %> <script src="app/fusion/scripts/modalService.js"></script> - <script src="app/fusion/external/ebz/sandbox/att-abs-tpls.js" type="text/javascript"></script> <script src="app/fusion/scripts/att_angular_gridster/ui-gridster-tpls.js"></script> <script src="app/fusion/scripts/att_angular_gridster/angular-gridster.js"></script> <script src= "app/fusion/external/ebz/angular_js/checklist-model.js"></script> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/admin-controller.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/admin-controller.js index 0c6105c8..0d95e72a 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/admin-controller.js +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/admin-controller.js @@ -704,7 +704,7 @@ appDS2.controller('adminController', function($scope, $http,AdminService, $modal },function(error){ console.log("roleControllerDS2 failed: " + error); - reloadPageOnce(); + // reloadPageOnce(); }).finally(function() { $scope.showLoader=false; // Always execute this on both error and success }); @@ -727,7 +727,13 @@ appDS2.controller('adminController', function($scope, $http,AdminService, $modal }) $scope.roleFnInit(); - + $scope.updateRoleFunction = function(){ + $scope.role.roleFunctions=[]; + for(var i=0;i<$scope.ociavailableRoleFunctions.length;i++){ + if($scope.ociavailableRoleFunctions[i].selected) + $scope.role.roleFunctions.push($scope.ociavailableRoleFunctions[i]); + } + } $scope.saveRole = function() { var errorMsg; $scope.showLoader=true; @@ -841,6 +847,9 @@ appDS2.controller('adminController', function($scope, $http,AdminService, $modal } } }); + modalInstance.result.finally(function () { + $scope.updateRoleFunction(); + }); } $scope.addNewChildRoleFunctionModalPopup = function(data, role,info) { @@ -860,6 +869,9 @@ appDS2.controller('adminController', function($scope, $http,AdminService, $modal } } }); + modalInstance.result.finally(function () { + alert(); + }); } // remove role function associated to a role on Role Edit page diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-profile/self-profile-controller.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-profile/self-profile-controller.js index efe2b749..2c005365 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-profile/self-profile-controller.js +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-profile/self-profile-controller.js @@ -25,8 +25,7 @@ appDS2.controller('selfProfileController', function($scope, $http, $modal, $rout $scope.pageType=2; } - $scope.sbcid=$scope.profile.sbcid; - $scope.managerAttuid=$scope.profile.managerAttuid; + /***********************************************************functions***********************************************/ $scope.getProfileDetail = function(profileIdParam){ @@ -42,8 +41,7 @@ appDS2.controller('selfProfileController', function($scope, $http, $modal, $rout $scope.ociTimeZones=JSON.parse($scope.data.timeZones); $scope.ociCountries=JSON.parse($scope.data.countries); stateList=JSON.parse($scope.data.stateList); - $scope.sbcid=$scope.profile.sbcid; - $scope.managerAttuid=$scope.profile.managerAttuid; + if($scope.ociavailableRoles) $.each($scope.ociavailableRoles, function(i, a){ @@ -100,9 +98,7 @@ appDS2.controller('selfProfileController', function($scope, $http, $modal, $rout $scope.ociTimeZones=JSON.parse($scope.data.timeZones); $scope.ociCountries=JSON.parse($scope.data.countries); stateList=JSON.parse($scope.data.stateList); - $scope.sbcid=$scope.profile.sbcid; - $scope.managerAttuid=$scope.profile.managerAttuid; - + if($scope.ociavailableRoles) $.each($scope.ociavailableRoles, function(i, a){ var availableRole = a; diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-workflows/workflowApp.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-workflows/workflowApp.js index a3496785..2ae2b1b3 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-workflows/workflowApp.js +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-workflows/workflowApp.js @@ -1,5 +1,6 @@ -angular.module('att.abs.helper', []); +/*angular.module('att.abs.helper', []); angular.module('quantum', []); //angular.module('ui.bootstrap', []); appDS2=angular.module("workflowApp", ["ngRoute", 'ngMessages', 'ngCookies', 'b2b.att.tpls', 'ddh.att.tpls','ddh.att.dropdowns', 'ddh.att.switches', 'b2b.att.footer', 'b2b.att.header','gridster','ui.bootstrap']); - +*/ +var appDS2=angular.module("workflowApp", ["ngRoute", 'ngMessages','ngCookies','modalServices', 'ngCookies', 'b2b.att','gridster','ui.bootstrap','ui.bootstrap.modal']);
\ No newline at end of file diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-services/modalService.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-services/modalService.js deleted file mode 100644 index cb85ffce..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-services/modalService.js +++ /dev/null @@ -1,57 +0,0 @@ - -angular.module("template/modalsAndAlerts/window2.html", []).run(["$templateCache", function($templateCache) { - $templateCache.put("template/modalsAndAlerts/window.html", - "<div class=\"modalwrapper active {{windowClass}}\" ng-class=\"{'modal-landscape': isModalLandscape}\" role=\"dialog\" tabindex=\"-1\" aria-labelledby=\"{{title}}\" aria-describedby=\"{{content}}\">\n" + - " <div class=\"modal fade {{sizeClass}}\">sdfdsfsfd</div>\n" + - "</div>"); - }]); - -angular.module('ddh.att.modalsAndAlerts') - -.controller('modalsAndAlertsController', function ($scope, $modal, $log) { - $scope.name='eeee'; - $scope.items = ['item1', 'item2', 'item3']; - $scope.dt = new Date("March 10, 2014 00:00:00"); - $scope.helperText = "The date you selected is $date. Double tap to open calendar. Select a date to close the calendar."; - $scope.open = function (event) { - var modalInstance = $modal.open({ - templateUrl: 'template/modalsAndAlerts/modal-demo.html', - controller: ModalInstanceCtrl, - sizeClass: 'modal-long-adjust', - resolve: { - items: function () { - return $scope.items; - } - } - }); - - modalInstance.result.then(function (selectedItem) { - $scope.selected = selectedItem; - event.target.focus(); - }, function () { - $log.info('Modal dismissed at: ' + new Date()); - event.target.focus(); - }); - }; - $scope.ok = function () { - //add the ok functionality - console.log("ok"); - }; - $scope.cancel = function () { - //add the cancel functionality - console.log("cancel"); - }; -}) - -var ModalInstanceCtrl = function ($scope, $modalInstance, items) { - $scope.items = items; - $scope.selected = { - item: $scope.items[0] - }; - $scope.ok = function () { - $modalInstance.close($scope.selected.item); - }; - $scope.cancel = function () { - $modalInstance.dismiss('cancel'); - }; -}; diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-functions-modal.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-functions-modal.html index 48044da2..1ecf192b 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-functions-modal.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-functions-modal.html @@ -18,7 +18,7 @@ <tr> <td> <label class="btn-switch-label" tabindex="0" role="option"> - <input ng-click="activateRoleConfirmPopUp(roleFunction.selected,roleFunction);" type="checkbox" b2b-switches ng-model="roleFunction.selected" size-class="modal-small modal-alert"> + <input type="checkbox" b2b-switches ng-model="roleFunction.selected" size-class="modal-small modal-alert"> </label> </td> <td>{{roleFunction.name}}</td> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/network/net_map.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/network/net_map.js index 49599503..421e511f 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/network/net_map.js +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/network/net_map.js @@ -243,7 +243,7 @@ plotHeader = function(attributes,cssType){ plotElement = function(element) { if(element.left){ - if(!element.id.startsWith("com.att.trinity.ue")){ + if(!element.id.startsWith("ue")){ left = element.left ; var thisColor = element.bgColor; var thisElement = new joint.shapes.basic.newRect({ @@ -325,7 +325,7 @@ plotElementIcon = function(element) { left = element.left ; uetop = element.top; - if(element.id.startsWith("com.att.trinity.ue")) { + if(element.id.startsWith("ue")) { uetop = element.top - 30; } else { uetop = element.top ; @@ -368,7 +368,7 @@ plotElementIcon = function(element) { }); } - if(element.id.startsWith("com.att.trinity.ue")){ + if(element.id.startsWith("ue")){ thisElement.attr({ rect: {fill: 'white', style:{'pointer-events':'none'}}, image: { style:{'pointer-events':'none'}} diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/view-models/header.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/view-models/header.html deleted file mode 100644 index e7616d94..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/view-models/header.html +++ /dev/null @@ -1,162 +0,0 @@ -<div style="position: relative; z-index: 999;"> - <div class="headerContainer" id="headerContainer" ng-show="{{showHeader}}"> - <div style="position: relative; z-index: 999;"> - <div class="headerContainer" id="headerContainer"> - <div id="megaMenuContainer" class="megaMenuContainer" style="margin-top: 0; overflow: visible;"> - <!--for mega Menu--> - <!-- Mega Menu parent-tab directive with three models menu-items, active-sub-menu, active-menu --> - <div id="topMenu" class="top-megamenu" ng-mouseleave="activeClickSubMenu.x.active=false; activeClickMenu.x.active=false" > - <div style="float:left;width:100%;"parent-tab menu-items="megaMenuDataObject" active-sub-menu='activeClickSubMenu.x' active-menu='activeClickMenu.x'> - <div parentmenu-tabs mega-menu="true" menu-items="megaMenuDataObject" style="height:55px;"> - <div style="float:left"> - <li class="megamenu__item" style="line-height:55px;" ng-click="returnToPortal()"> - - <strong style="font-weight: 400 !important; font-family: clearview_att_bold !important; font-size: 18px;" >ECOMP Portal</strong> - </li> - <div menu-tabs mega-menu="true" tab-name="item.text" menu-item="item" - active-menu="activeClickMenu.x" - ng-repeat="item in megaMenuDataObject" - style="font-size: 18px;" - ng-mousedown="loadFavorites()"> - <div parentmenu-tabs sub-menu="true" ng-show="activeClickMenu.x.active && item.active" - menu-items="activeClickMenu.x.children"> - - <!-- Second level menu --> - <div menu-tabs sub-menu="true" tab-name="subItem.text" - tab-url="subItem.url" menu-item="subItem" - ng-repeat="subItem in activeClickMenu.x.children | orderBy : 'column'" active-menu="activeClickSubMenu.x" - sub-item-active="{{subItem.active}}" style="float:left;" aria-label="{{subItem.text}}" - ng-mouseenter="submenuLevelAction(subItem.text,subItem.column)" - ng-mouseleave="submenuLevelAction(subItem.text,subItem.column)" - ng-click="submenuLevelAction(subItem.text,subItem.column)" > - <i ng-if="subItem.text=='Favorites'" id="favorite-star" - class="icon-star favorites-icon-active"> - </i> - </div> - <div class="sub__menu" ng-mouseleave="activeClickSubMenu.x.active=false" > - <ul ng-show="activeClickSubMenu.x.active" role="menubar" class="columns"> - <!-- Third level menu --> - <div menu-tabs - menu-item="subItem" - class="columns-div" - ng-repeat="subItem in activeClickSubMenu.x.children | orderBy : 'column'" - ng-show="activeClickSubMenu.x.active"> - - <i id="favorite-selector-third-level" - ng-show="isUrlFavorite(subItem.menuId)==false" - class="icon-star favorites-icon-inactive" - ng-if="subItem.url.length > 1"> - </i> - <i id="favorite-selector-third-level" - ng-show="isUrlFavorite(subItem.menuId)" - class="icon-star favorites-icon-active" - ng-if="subItem.url.length > 1"> - </i> - <span class="title" aria-label="{{subItem.text}}" - ng-click="goToUrl(subItem)">{{subItem.text}}</span> - <!-- Fourth level menus --> - <div att-links-list=""> - <i id="favorite-selector-fourth-level" - class="icon-star favorites-icon-inactive" - ng-show="isUrlFavorite(tabValue.menuId)==false" - ng-if="tabValue.url.length > 1"> - - </i> - <i id="favorite-selector-fourth-level" - class="icon-star favorites-icon-active" - ng-show="isUrlFavorite(tabValue.menuId)" - ng-if="tabValue.url.length > 1"> - - </i> - <span role="menuitem" att-links-list-item="" - ng-repeat="tabValue in subItem.children" - ng-click="goToUrl(tabValue)" - att-accessibility-click="13,32" - ng-class="{'disabled': tabValue.disabled}">{{tabValue.text}}</span> - </div> - <hr ng-show="!$last"/> - </div> - </ul> - <!-- Favorites level menu --> - <div class="favorites-window" ng-show='favoritesWindow' ng-mouseleave="hideFavoritesWindow()"> - <div id="favorites-menu-items" ng-show="showFavorites"> - <div ng-repeat="subItem in favoritesMenuItems" - att-links-list="" - style='display: inline'> - <i id="favorite-selector-favorites-list" - class="icon-star favorites-icon-active" - > - </i> - <a id="favorites-list" aria-label="{{subItem.text}}" - ng-click="goToUrl(subItem)" - style="margin-left: 3px; margin-right: 20px; text-decoration: none; color: #666666;"> - {{subItem.text}} - </a> - </div> - <div> - <br> - <p style='font-weight: 400; font-family: clearview_att_bold !important; - font-size: 18px; text-align: center; background-color: lightgray; - width: 400px; margin-left: 25%; margin-right: 25%;'> - Manage favorites on ECOMP Portal. - </p> - </div> - </div> - <!-- Favorites when empty --> - <div id="favorites-empty" ng-show="emptyFavorites" class="favorites-window-empty"> - <div> - <img src="app/fusion/external/ebz/images/no_favorites_star.png"> - <p class='favoritesLargeText'>No Favorites</p> - <p class='favoritesNormalText'>Manage favorites on ECOMP Portal.</p> - </div> - </div> - </div> - </div> - </div> - </div> - </div > - <li class="megamenu__item" style="line-height:55px;" ng-if="loadMenufail"> - <strong style="font-weight: 400 !important; font-family: clearview_att_bold !important; font-size: 18px;" >Unable to load menus</strong> - </li> - <div style="float:right"> - <li id="bcLoginSnippet" class="megamenu__item" style="width: 140px;" > - <div popover="loginSnippet.html" aria-label="Login Snippet" - referby="loginSnippet" att-accessibility-click="13,32" popover-style="\" popover-placement="below" style="width: 200px;"> - <div class="icon-user-small login-snippet-icon"></div> - <div class="login-snippet-text" style="display: inline-block; font-size:12px; margin-left:5px;overflow: hidden; max-height: 31px; overflow: hidden; max-height: 31px; max-width:120px; padding-top: 0px; margin-top: 0px; white-space: nowrap;">{{userFirstName}}</div> - </div> - </li> - </div> - </div> - </div> - </div> - <div style="clear: both"></div> - </div> - </div> - </div> - </div> - </div> -</div> -<script type="text/ng-template" id="loginSnippet.html"> - <div style="line-height: normal; right: 167px; min-height: 200px; height: auto; width: auto; " ng-controller="loginSnippetCtrl" > - <div id="reg-header-snippet"> - <div class="reg-profilePicture" style="min-height: 215px; width: auto; " id="reg-profile-links"> - <div id="reg-profileImage"> - <div style="clear: both; height: 80px; position: relative; width: 80px;"> - <span style=" background-position: -1px -1px; height: 81px;left: 0;position: absolute;top: 0;width: 81px;"> </span> - </div> - </div> - <div id="reg-logout-div"> - <a class="reg-logout-btn" href="logout.htm">Log Out</a> - </div> - </div> - <div tabindex="0" class="reg-profileDetails" id="reg-profiledetails-id"> - <ul class="reg-Details-table" style="list-style: none;"> - <li><div class="reg-userName-table"><div id="reg-userName-table-row"><div id="reg-userName-table-cell"><h3 class="att-global-fonts" style="font-size:18px !important;" id="reg-userName">{{userProfile.fullName}} </h3><span class="visuallyhidden">.</span></div></div></div></li> - <li><div class="reg-userEmail-label"><span class="reg-userEmail-label-spn">EMAIL<span class="visuallyhidden">:</span></span></div></li> - <li><div class="reg-userEmail-value"><span class="reg-userEmail-value-spn">{{userProfile.email}}<span class="visuallyhidden">.</span></span></div></li> - </ul> - </div> - </div> - </div> -</script> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/view-models/left_menu.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/view-models/left_menu.html deleted file mode 100644 index ad4e5d91..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/view-models/left_menu.html +++ /dev/null @@ -1,27 +0,0 @@ - <div class="license-notification"> - <a href="javascript:void(0)" style="background-color:#bbb;" class="button button--small" tooltip="Please contact ECOMP Portal team to get the license" tooltip-placement="below" tooltip-style="light" tooltip-popup-delay="500" > - <span style="">{{app_name_full}}</span> - </a> -</div> -<div ng-cloak> - <span ng-style="adjustHLeftMenu('burgerIcon')" style="z-index:998; position:fixed; left:0%; font-size:35px; margin-left:10px;text-decoration:none;"> - <a ng-click="toggleDrawer();isOpen = !isOpen" href="javascript:void(0);" class="arrow-icon-left" > - <span class="icon-hamburger"></span></a> - <span ng-init="isOpen = true" ng-show="isOpen" style="font-size:16px; position:relative; top:-8px; left:-15px;">    {{app_name}}</span> - </span> - <div att-drawer drawer-slide="left" drawer-custom-top="{{drawer_custom_top}}px" drawer-size="200px" drawer-open="drawerOpen" drawer-custom-height="100%" > - <div ng-style="adjustHLeftMenu('leftMenu')"> - <div class="attDrawer" style="z-index:998"> - <div class="appLeftMenuAccordDiv"> - <accordion close-others="true" css="att-accordion--no-box"> - <accordion-group ng-repeat="parent in leftMenuItems" heading="{{parent.parentLabel}}" parent-link="{{parent.parentAction}}" image-source="{{parent.parentImageSrc}}" child-length="{{parent.childItemList.length}}" is-open="parent.open"> - <div ng-repeat="subMenu in parent.childItemList" style="font-size:12px; margin-left:10px;"> - <a href="{{subMenu.action}}" style="font-size:12px; color:#666666;" >{{subMenu.label}}</a> - </div> - </accordion-group> - </accordion> - </div> - </div> - </div> - </div> -</div>
\ No newline at end of file diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/view-models/reportdashboard-page/src/report-dashboard.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/view-models/reportdashboard-page/src/report-dashboard.html index 8fecfb7b..ecdccb62 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/view-models/reportdashboard-page/src/report-dashboard.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/view-models/reportdashboard-page/src/report-dashboard.html @@ -109,25 +109,6 @@ <script src="app/fusion/scripts/modalService.js"></script> <script src="app/fusion/scripts/view-models/reportdashboard-page/src/app/report_whitelist.js"></script> <!-- Controller js --> -<!-- <script src="app/fusion/scripts/controllers/fn_menu_add_popup_controller.js"></script> - <script src="app/fusion/scripts/controllers/admin_menu_edit.js"></script> - <script src="app/fusion/scripts/controllers/profile-search-controller.js"></script> - <script src="app/fusion/scripts/controllers/profile-controller.js"></script> - <script src="app/fusion/scripts/controllers/post-search-controller.js"></script> - <script src="app/fusion/scripts/controllers/role-list-controller.js"></script> - <script src="app/fusion/scripts/controllers/role-function-list-controller.js"></script> - <script src="app/fusion/scripts/controllers/rolefunctionpopupController.js"></script> - <script src="app/fusion/scripts/controllers/modelpopupController.js"></script> - <script src="app/fusion/scripts/controllers/jcs-admin-controller.js"></script> - <script src="app/fusion/scripts/controllers/broadcast-list-controller.js"></script> - <script src="app/fusion/scripts/controllers/broadcast-controller.js"></script> - <script src="app/fusion/scripts/controllers/usage-list-controller.js"></script> - <script src="app/fusion/scripts/controllers/collaborate-list-controller.js"></script> - <script src="app/fusion/scripts/controllers/role-controller.js"></script> - <script src="app/fusion/scripts/controllers/rolepopupmodelController.js"></script>--> - <!-- Header and Footer --> - <!-- <script src="app/fusion/external/ebz/js/attHeaderSnippet.js"></script> - <script src="app/fusion/external/ebz/js/attHeader.js"></script> --> <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/ebz_header/header.css"> <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/ebz_header/footer.css" > <script src="app/fusion/scripts/directives/footer.js"></script> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/webrtc/RTCMultiConnection.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/webrtc/RTCMultiConnection.js index 3ce348b6..daf64413 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/webrtc/RTCMultiConnection.js +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/webrtc/RTCMultiConnection.js @@ -5574,8 +5574,7 @@ hark: 'https://cdn.webrtc-experiment.com/hark.js', firebase: 'https://cdn.webrtc-experiment.com/firebase.js', firebaseio: 'https://webrtc-signaling.firebaseio.com/', - - muted: 'static/fusion/images/ATT_Labs_Logo.png', + getConnectionStats: 'https://cdn.webrtc-experiment.com/getConnectionStats.js', FileBufferReader: 'https://cdn.webrtc-experiment.com/FileBufferReader.js' @@ -5995,29 +5994,7 @@ username: 'ambient' }); - /* CHANGED: Fusion: These are non-att servers for testing purposes - - iceServers.push({ - url: 'stun:stun.l.google.com:19302' - }); - - iceServers.push({ - url: 'stun:stun.anyfirewall.com:3478' - }); - - iceServers.push({ - url: 'turn:turn.bistri.com:80', - credential: 'homeo', - username: 'homeo' - }); - - iceServers.push({ - url: 'turn:turn.anyfirewall.com:443?transport=tcp', - credential: 'webrtc', - username: 'webrtc' - }); - */ // CUSTOM CODE // connection.iceServers = iceServers; diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/styles/global.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/styles/global.css deleted file mode 100644 index 25d1c578..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/styles/global.css +++ /dev/null @@ -1,178 +0,0 @@ -body{ - margin: 0; - padding: 0; - padding-bottom: 0 !important; - min-width: 980px; -} -label { - display: inline-block; - margin-bottom: 5px; - font-weight: 700; -} -.footer-columns label { - color: #009fdb; - font-size: 18px; -} - -.b2b-header-tabs .header__item.profile .profile-info{ - border: 1px solid #d3d3d3; - max-width:400px; - width:300px; - padding: 20px; - pointer-events: auto; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - font-size: 16px; - -webkit-transition: opacity .2s ease-out; - -moz-transition: opacity .2s ease-out; - transition: opacity .2s ease-out; - background: #fff; - border-radius: 5px; - box-shadow: 0 5px 6px 0 rgba(0,0,0,.25); - color: #333; - line-height: 20px; - position: absolute; - left:-123px; - top:38px; - display:none; -} -.b2b-header-tabs .header__item.profile .profile-info.open{ - display:block; -} -.b2b-header-tabs .header__item.profile .profile-info label{ - font-family:Omnes-ATT-W02; - display:block; - margin-top:20px; - font-size: 16px; -} -.b2b-header-tabs .header__item.profile .profile-info span{ - font-family:Omnes_ATTW02Medium; - display:block; -} - -.b2b-header-tabs .selectWrap button.awd-select{ - height:36px; - line-height:31px; - font-size:1rem; - display:inline-block; -} -/* @font-face { - font-family: atticons; - src: url(../fonts/atticons.eot?#iefix) format("embedded-opentype"), url(../fonts/atticons.woff) format("woff"), url(../fonts/atticons.ttf) format("truetype"), url(../fonts/atticons.svg#atticons) format("svg"); - font-weight: normal; - font-style: normal; -} */ -[class*=" icon-"], [class^=icon-] { - font-family: atticons; - speak: none; - font-style: normal; - font-weight: 400; - font-variant: normal; - text-transform: none; - line-height: 40px; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.icon-user-small { - display: inline-block; - vertical-align: middle; - width: 20px; - font-size: 56px; - margin-right: 16px; - float: left; -} -.icon-user-small:before { - content: "\e60b"; -} -.icon-local-search { - content: "\e685"; -} -.header-container { - width: 100%; - float: left; -} -.menu-container { - width: 250px; - float: left; -} -.content-container { - float: left; - min-height: 650px; - width: calc(100% - 250px); -} -.footer-container { - float:left; - width: 100%; -} -.profile-info { - font-size: 16px; - color: #333; - line-height: 20px; -} -h6 { - font-weight: bold; - font-size: 1.125em; - line-height: 1.3333333333; -} - -.icon-primary-accordion-plus, .icon-primary-accordion-minus { - float: right; - line-height: 20px; -} -.left-menu-collapsed { - width: 0px !important; -} -.menu-icon { - float: left; - line-height: 20px; - width: 25px; - height: 20px; - margin-top: -10px; -} -.b2b-footer-wrapper { - width: 100%; - background-color: #222; - height: 88px; -} -.icon-primary-right { - margin-left: -11px; -} -@media (max-width: 768px) { - .divider-bottom-footer .footerLogo { - margin: 10px 0 0 0px; - } - .b2b-header-tabs .header__items { - width: 700px; - } -} -@media screen and (min-device-width: 769px) and (max-width: 1200px) { - .b2b-header-tabs .header__items { - width: 700px; - } -} -@media screen and (max-width: 1100px) { - .b2b-header-tabs .header__item.profile { - float: right; - } -} -@media screen and (min-width: 768px) and (max-width: 1105px) { - table th, table td{ - padding: 19px 10px; - } -} -.icon-spinner { - animation: spinner 1s linear infinite; - background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2036%2036%22%3E%0A%20%20%3Cpath%20fill%3D%22%230569AE%22%20d%3D%22M18%2036c-2.7%200-4.8-.6-6.2-1C8%2033.6%205.4%2031.1%204%2029.3%202.7%2027.6.9%2024.7.3%2020.8c-.3-2.1-.5-5.4.9-9.1C3%206.8%206.4%204.1%208.3%202.8%2011.8.5%2015.4%200%2017.8%200l.1%204.3c-1.8%200-4.6.4-7.3%202.2-1.4.9-4%203-5.4%206.7-1%202.8-.9%205.3-.7%206.9.5%203%201.8%205.1%202.9%206.4%201.1%201.4%203%203.2%206%204.3%201.5.5%204.6%201.3%208.3.3%203-.8%205-2.5%206.2-3.7%201.4-1.4%202.4-3.2%203.1-5%20.4-1.3.9-3.3.6-5.8-.5-4.2-2.8-7.1-4.2-8.5L30.5%205c1.8%201.8%204.8%205.6%205.4%2011.1.3%203.2-.3%205.9-.9%207.6-.8%202.4-2.2%204.8-4%206.7-1.5%201.6-4.2%203.8-8.1%204.9-1.8.5-3.4.7-4.9.7z%22%2F%3E%0A%20%20%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M17.8%202.2c1.8%200%204.9.3%208.2%202.2%201.2.7%202.2%201.5%203%202.3%22%2F%3E%0A%20%20%3Cpath%20fill%3D%22%23F2F2F3%22%20d%3D%22M27.5%208.1c-.8-.8-1.7-1.4-2.6-1.9-2.1-1.2-4.5-1.9-7.1-1.9V0c3.3%200%206.5.9%209.3%202.4%201.2.8%202.3%201.6%203.4%202.6l-3%203.1z%22%2F%3E%0A%3C%2Fsvg%3E"); - height: 50px; - width: 50px; -} -.loader-container { - position: fixed; - top: calc(50vh - 25px); - left: calc(50vw - 25px); -} -.loader-container i { - float: left; -}
\ No newline at end of file diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/styles/workflows/workflows.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/styles/workflows/workflows.css index 2a740ec5..0995a992 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/styles/workflows/workflows.css +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/styles/workflows/workflows.css @@ -15,16 +15,6 @@ background-color:white; } -.scrolling-table #att-scroll-table-content{ - height:200px; - position: absolute !important; - width:700px; - padding-left: 0px; - padding-top: 0px; - padding-bottom: 0px; - padding-right:5px; -} - .workflow-popup-body{ position: relative; padding: 30px; diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusionapp/drools/view-models/droolsSinglePage.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusionapp/drools/view-models/droolsSinglePage.html deleted file mode 100644 index a1d0a5ba..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusionapp/drools/view-models/droolsSinglePage.html +++ /dev/null @@ -1,72 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta http-equiv="X-UA-Compatible" content="IE=edge" /> - <meta http-equiv="cache-control" content="max-age=0" /> - <meta http-equiv="cache-control" content="no-cache" /> - <meta http-equiv="expires" content="0" /> - <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" /> - <meta http-equiv="pragma" content="no-cache" /> - <!-- CSS --> - <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/fn-ebz.css" > - <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/sandbox/styles/demo.css" > - <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/sandbox/styles/base.css" > - <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/sandbox/styles/btn.css" > - <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/sandbox/styles/dtpk.css" > - <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/sandbox/styles/frms.css" > - <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/sandbox/styles/sldr.css" > - <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/sandbox/styles/style.css" > - <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/sandbox/styles/tbs.css" > - <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/ebz_header/portal_ebz_header.css"> - <link rel="stylesheet" type="text/css" href="static/fusion/css/jquery-ui.css"> - <!-- Basic AngularJS --> - <script src= "app/fusion/external/ebz/angular_js/angular.js"></script> - <script src= "app/fusion/external/ebz/angular_js/angular-sanitize.js"></script> - <script src= "app/fusion/external/ebz/angular_js/angular-route.min.js"></script> - <script src= "app/fusion/external/ebz/angular_js/app.js"></script> - <script src= "app/fusion/external/ebz/angular_js/gestures.js"></script> - <script src= "app/fusion/external/ebz/sandbox/att-abs-tpls.js" type="text/javascript"></script> - <script src="app/fusion/external/angular-ui/ui-bootstrap-tpls-1.1.2.min.js"></script> - <script src= "app/fusion/external/ebz/angular_js/angular-cookies.js"></script> - <!-- jQuery --> - <script src="static/js/jquery-1.10.2.js"></script> - <script src="static/js/jquery.mask.min.js" type="text/javascript"></script> - <script src="static/js/jquery-ui.js" type="text/javascript"></script> - <!-- AngularJS Gridster --> - <script src="static/fusion/js/att_angular_gridster/ui-gridster-tpls.js"></script> - <script src="static/fusion/js/att_angular_gridster/angular-gridster.js"></script> - <!-- AngularJS Config --> - <script src= "app/fusion/external/ebz/angular_js/app.js"></script> - <script src= "app/fusion/external/ebz/angular_js/checklist-model.js"></script> - <!-- Utility --> - <script src="app/fusion/scripts/modalService.js"></script> - <!-- Controller js --> - <script src="app/fusion/scripts/controllers/rolefunctionpopupController.js"></script> - <script src="app/fusion/scripts/controllers/modelpopupController.js"></script> - <script src="app/fusionapp/drools/controller/droolsController.js"></script> - <script src="app/fusionapp/drools/controller/drools-list-controller.js"></script> - <script src="app/fusionapp/drools/controller/drools-view-controller.js"></script> - <!-- Header and Footer --> - <script src="app/fusion/external/ebz/js/attHeaderSnippet.js"></script> - <script src="app/fusion/external/ebz/js/attHeader.js"></script> - <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/ebz_header/header.css"> - <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/ebz_header/footer.css" > - <script src="app/fusion/scripts/directives/footer.js"></script> - <script src="app/fusion/external/ebz/js/footer.js"></script> - <script src="app/fusion/scripts/directives/header.js"></script> - <script src="app/fusion/scripts/directives/leftMenu.js"></script> - <script src="app/fusion/scripts/services/leftMenuService.js"></script> - - <!-- Services --> - <script src="app/fusionapp/drools/services/droolsService.js"></script> - <script src="app/fusion/scripts/services/userInfoService.js"></script> - </head> - <body class="appBody" ng-app="abs"> - <div ng-include src="'app/fusion/scripts/view-models/profile-page/popup_modal_rolefunction.html'"></div> - <div ng-include src="'app/fusion/scripts/view-models/profile-page/popup_modal.html'"></div> - <div q-header></div> - <div q-menu class="appLeftMenu"></div> - <div id="rightContentAdmin" ng-view style="min-height: 450px;margin-top:-50px;margin-left:210px;margin-right:10px;"></div> - <div q-footer class="appFooter"></div> - </body> -</html>
\ No newline at end of file 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 |