summaryrefslogtreecommitdiffstats
path: root/epsdk-app-onap/src/main/webapp
diff options
context:
space:
mode:
authorOfir Sonsino <os0695@att.com>2018-01-31 17:19:00 +0200
committerOfir Sonsino <os0695@att.com>2018-01-31 17:19:00 +0200
commit1cfb08779ea0e00be69e072a940b3063e049fe6b (patch)
tree6602a900387c8393ed0dcd81c0539381632903c6 /epsdk-app-onap/src/main/webapp
parent2f20b001b9243e0f8b44aecc768ec265fd538732 (diff)
org.onap migration
Change-Id: I52f0b2851f2c765752b6d21f49b32136d7d72a3d Issue-ID: VID-86 Signed-off-by: Ofir Sonsino <os0695@att.com>
Diffstat (limited to 'epsdk-app-onap/src/main/webapp')
-rwxr-xr-xepsdk-app-onap/src/main/webapp/WEB-INF/conf/system.properties1
-rwxr-xr-xepsdk-app-onap/src/main/webapp/WEB-INF/fusion/jsp/ds2/footer.jsp31
-rwxr-xr-xepsdk-app-onap/src/main/webapp/WEB-INF/fusion/jsp/ds2/header.jsp236
-rw-r--r--epsdk-app-onap/src/main/webapp/WEB-INF/fusion/jsp/ebz/ebz_header.jsp837
-rw-r--r--epsdk-app-onap/src/main/webapp/WEB-INF/jsp/createnewserviceinstance.jsp146
-rw-r--r--epsdk-app-onap/src/main/webapp/WEB-INF/jsp/searchexistingsi.jsp81
-rwxr-xr-xepsdk-app-onap/src/main/webapp/WEB-INF/jsp/serviceModels.jsp63
-rw-r--r--epsdk-app-onap/src/main/webapp/WEB-INF/jsp/subscriberdetails.jsp184
-rwxr-xr-xepsdk-app-onap/src/main/webapp/WEB-INF/jsp/testViewEdit.jsp6
-rwxr-xr-xepsdk-app-onap/src/main/webapp/WEB-INF/jsp/welcome.jsp19
-rwxr-xr-xepsdk-app-onap/src/main/webapp/app/fusion/external/ebz/angular_js/app.js2
-rw-r--r--epsdk-app-onap/src/main/webapp/app/vid/external/multiselect/angular-bootstrap-multiselect.min.js1
12 files changed, 1565 insertions, 42 deletions
diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/conf/system.properties b/epsdk-app-onap/src/main/webapp/WEB-INF/conf/system.properties
index 7a6d5d9c..86e18940 100755
--- a/epsdk-app-onap/src/main/webapp/WEB-INF/conf/system.properties
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/conf/system.properties
@@ -169,7 +169,6 @@ mso.restapi.get.man.tasks=/tasks/v1
vid.truststore.filename=/opt/app/vid/etc/vid_keystore.jks
mso.dme2.client.timeout=30000
mso.dme2.client.read.timeout=120000
-vid.truststore.filename=vid_keystore.jks
vid.truststore.passwd.x=OBF:1wgg1wfq1uus1uui1x131x0r1x1v1x1j1uvo1uve1wg81wfi
scheduler.create.new.vnf.change.instance=/v1/ChangeManagement/schedules/
scheduler.get.time.slots=/v1/ChangeManagement/schedules/
diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/fusion/jsp/ds2/footer.jsp b/epsdk-app-onap/src/main/webapp/WEB-INF/fusion/jsp/ds2/footer.jsp
index 33bb38d0..9cb68150 100755
--- a/epsdk-app-onap/src/main/webapp/WEB-INF/fusion/jsp/ds2/footer.jsp
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/fusion/jsp/ds2/footer.jsp
@@ -1,17 +1,34 @@
<script src="./app/fusion/external/angular-1.5/angular.min.js"></script>
-<script src="app/fusion/external/ds2/js/b2b-angular/b2b-library.min.js"></script>
+<script src="./app/fusion/external/angular-1.5/angular-messages.js"></script>
+<script src="./app/fusion/external/angular-1.5/angular-touch.js"></script>
+<script src="./app/fusion/external/angular-1.5/angular-sanitize.js"></script>
+<script src="./app/fusion/external/angular-1.5/angular-route.min.js"></script>
+<script src="./app/fusion/external/angular-1.5/angular-cookies.min.js"></script>
<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/b2b-angular/b2b-angular.css"></style>
+<script src="app/fusion/external/ds2/js/b2b-angular/b2b-library.min.js"></script>
+<!-- b2b-column-switch-footer can only found in b2b-library.min.js -->
+
<div style="position: relative; bottom: 0; left: 0; width: 100%">
- <footer class="b2b-footer-wrapper" role="contentinfo"
- aria-label="footer">
+ <footer class="b2b-footer-wrapper" role="contentinfo" aria-label="footer">
<div class="b2b-footer-container" b2b-column-switch-footer>
- <!-- footer-link-items='footerItems' -->
- <!-- <hr> -->
<div style="margin-top: -25px;" class="divider-bottom-footer">
- <div class="span12 footerLogo">
+ <div style="text-align: center;" class="span12 footerLogo">
+ <div class="span8 copyright-text">
+ <a href="//www.att.com/gen/privacy-policy?pid=2587" target="_blank">&copy; 2017 AT&amp;T Intellectual Property.</a> All rights reserved. AT&T, the AT&T Globe logo and all other AT&T marks contained herein are trademarks of AT&T intellectual property and/or AT&T affiliated companies.
+ </div>
+ <div class="span3" style="margin-left:30px;">
+ <a href="welcome.htm" class="footer-logo">
+ <span class="footer-global">
+ <i class="icon-att-globe" >
+ <span class="hidden-spoken">A T &amp; T</span>
+ </i>
+ </span>
+ <h2 class="logo-title" id="at&amp;t">AT&amp;T</h2>
+ </a>
+ </div>
</div>
</div>
</div>
</footer>
-</div> \ No newline at end of file
+</div> \ No newline at end of file
diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/fusion/jsp/ds2/header.jsp b/epsdk-app-onap/src/main/webapp/WEB-INF/fusion/jsp/ds2/header.jsp
index 94213a2a..483922fc 100755
--- a/epsdk-app-onap/src/main/webapp/WEB-INF/fusion/jsp/ds2/header.jsp
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/fusion/jsp/ds2/header.jsp
@@ -1 +1,235 @@
-<div ds2-menu id="menuContainer" class="menu-container" ></div> \ No newline at end of file
+<script src="./app/fusion/external/angular-1.5/angular.min.js"></script>
+<script src="./app/fusion/external/angular-1.5/angular-messages.js"></script>
+<script src="./app/fusion/external/angular-1.5/angular-touch.js"></script>
+<script src="./app/fusion/external/angular-1.5/angular-sanitize.js"></script>
+<script src="./app/fusion/external/angular-1.5/angular-route.min.js"></script>
+<script src="./app/fusion/external/angular-1.5/angular-cookies.min.js"></script>
+<script src="./app/fusion/external/ds2/js/b2b-angular/b2b-library.min.js"></script>
+<script src="./app/fusion/external/ds2/js/digital-ng-library/digital-design-library.js"></script>
+<script src="./app/fusion/scripts/DS2-services/leftMenuServiceDS2.js"></script>
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/b2b-angular/b2b-angular.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/b2b-angular/b2b-angular.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/extras/ds2-accordion.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/extras/ds2-bootstrap-datepicker.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/extras/ds2-cc-input-field.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/extras/ds2-tooltip.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/extras/x-tabs-pills.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/ds2-accordion.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/ds2-bootstrap-datepicker.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/ds2-c2c.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/ds2-cc-input-field.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/ds2-filmstrip.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/ds2-filters.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/ds2-legacynav-fix.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/ds2-marquee.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/ds2-pagination.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/ds2-popover.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/ds2-progressbar.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/ds2-tooltip.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/global.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/digital-design-library.css">
+
+<link rel="stylesheet" type="text/css" href="./app/fusion/external/ds2/css/digital-ng-library/ionicons.css">
+<link rel="stylesheet" type="text/css" href="./app/fusion/styles/ecomp.css">
+<script>
+angular.module('att.abs.helper', []);
+angular.module('quantum', []);
+var appDS2=angular.module("abs", ["ngRoute", 'ngAnimate', 'ngTouch', 'ui.bootstrap', 'ngMessages', 'ngCookies', 'b2b.att.tpls', 'ddh.att.tpls', 'ddh.att.switches', 'b2b.att.footer', 'b2b.att.header', 'btorfs.multiselect']);
+</script>
+
+<script src="./app/fusion/scripts/DS2-services/leftMenuServiceDS2.js"></script>
+
+<script>
+appDS2.controller("leftMenuController", ['$scope', '$filter','$http','$timeout','$cookies','LeftMenuServiceDS2', function ($scope, $filter, $http, $timeout, $cookies, LeftMenuServiceDS2) {
+ $scope.menuData = [];
+ $scope.leftChildData=[];
+ $scope.leftParentData=[];
+ $scope.leftMenuItems = [];
+ $scope.app_name = "";
+ $scope.app_name_full;
+ LeftMenuServiceDS2.getLeftMenu().then(function(response){
+ var j = response;
+ try{
+ if(j && j !== "null" && j!== "undefined"){
+ $scope.leftParentData = JSON.parse(j.data);
+ $scope.leftChildData = JSON.parse(j.data2);
+ }else{
+ throw "Get Left Menu respsone is not an object/is empty";
+ }
+ try{
+ var leftChildItemList = $scope.leftChildData;
+ var pageUrl = window.location.href.split('/')[window.location.href.split('/').length-1];
+ var leftParentList =$scope.leftParentData;
+
+ for (var i = 0; i < leftParentList.length; i++) {
+ var parentItem = {};
+ parentItem.name = leftParentList[i].label;
+ if(parentItem.name == 'Home'){
+ parentItem.imageSrc = /*"icon-location-pinpoint"*/ "icon-building-home";
+ } else if(parentItem.name == 'Sample Pages'){
+ parentItem.imageSrc = "icon-documents-book";
+ } else if(parentItem.name == 'Reports'){
+ parentItem.imageSrc = "icon-misc-piechart";
+ } else if(parentItem.name == 'Profile'){
+ parentItem.imageSrc = "icon-people-oneperson";
+ } else if(parentItem.name == 'Admin'){
+ parentItem.imageSrc = "icon-content-star";
+ } else if(parentItem.name == 'Sample Pages'){
+ parentItem.imageSrc = "icon-content-searchchannels";
+ } else {
+ parentItem.imageSrc = "icon-building-door";
+ }
+ parentItem.menuItems = [];
+ for (var j = 0; j < leftChildItemList[i].length; j++) {
+ if(leftChildItemList[i][j].label != null && leftChildItemList[i][j].label.length > 0) {
+ var childItem = {};
+ childItem.name = leftChildItemList[i][j].label;
+ childItem.href = leftChildItemList[i][j].action;
+ parentItem.menuItems.push(childItem)
+ }
+ }
+ $scope.menuData.push(parentItem);
+ }
+
+
+ //For Home, add href
+ $scope.menuData[0].href = leftParentList[0].action;
+
+ for (var i = 0; i < leftParentList.length; i++) {
+ $scope.item = {
+ parentLabel : leftParentList[i].label,
+ parentAction : leftParentList[i].action,
+ parentImageSrc : leftParentList[i].imageSrc,
+ open:pageUrl==leftParentList[i].action?true:false,
+ childItemList : leftChildItemList[i]
+ };
+ };
+ }catch(err){
+ console.log("error happened while trying to set left menu structure"+err);
+ }
+ }catch (e) {
+ console.log("error happened while trying to get left menu items"+e);
+ reloadPageOnce();
+ return;
+ }
+},function(error){
+ console.log("error happened while calling getLeftMenu"+error);
+});
+
+LeftMenuServiceDS2.getAppName().then(function(response){
+ var j = response;
+ try{
+ if(j && j !== "null" && j!== "undefined"){
+ console.log("app name is " + $scope.app_name);
+ $scope.app_name_full = j.data;
+ var processed_app_name = j.data;
+ var n = processed_app_name.length;
+ if (n > 15) {
+ n = 15;
+ }
+ $scope.app_name = processed_app_name.substr(0, n);
+ }else{
+ throw "Get app_name respsone is not an object/is empty";
+ }
+ }catch (e) {
+ console.log("error happened while trying to get app name "+e);
+ return;
+ }
+},function(error){
+ console.log("error happened while calling getAppName "+error);
+});
+
+$scope.adjustHeader=function() {
+ $scope.showHeader = ($cookies.show_app_header == undefined ? true : $cookies.show_app_header);
+
+ if($scope.showHeader == true) {
+ $scope.drawer_margin_top = 50;
+ $scope.drawer_custom_top = 54;
+ $scope.toggle_drawer_top = 55;
+ }
+ else {
+
+ $scope.drawer_margin_ top = 40;
+ $scope.drawer_custom_top = 0;
+ $scope.toggle_drawer_top = 10;
+ }
+
+
+};
+
+$scope.adjustHLeftMenu = function (type){
+ $scope.showHeader = ($cookies.show_app_header == undefined ? true : $cookies.show_app_header);
+
+ if($scope.showHeader == true) {
+ $scope.drawer_margin_top = 60;
+ $scope.drawer_custom_top = 54;
+ $scope.toggle_drawer_top = 55;
+ }
+ else {
+
+ $scope.drawer_margin_top = 50;
+ $scope.drawer_custom_top = 0;
+ $scope.toggle_drawer_top = 10;
+ }
+ if(type=='burgerIcon'){
+ return { "top": $scope.toggle_drawer_top+"px"};
+ }else if(type=='leftMenu'){
+ return { "margin-top": $scope.drawer_margin_top+"px"};
+ }else
+ return;
+}
+$scope.adjustHeader();
+$scope.drawerOpen = true;
+
+$scope.toggleDrawer = function() {
+ $scope.drawerOpen = !($scope.drawerOpen);
+ if ($scope.drawerOpen) {
+ // setCookie('drawerOpen','open',30);
+ $scope.arrowShow = true;
+
+
+ if (document.getElementById('fnMenueContent')!=null)
+ document.getElementById('fnMenueContent').style.marginLeft = "0px";
+
+ if (document.getElementById('rightContentAdmin')!=null)
+ document.getElementById('rightContentAdmin').style.marginLeft = "210px";
+
+ else if (document.getElementById('rightContentProfile')!=null)
+ document.getElementById('rightContentProfile').style.marginLeft = "210px";
+ } else {
+
+ $scope.arrowShow = false;
+
+ if (document.getElementById('fnMenueContent')!=null)
+ document.getElementById('fnMenueContent').style.marginLeft = "-150px";
+
+ if (document.getElementById('rightContentAdmin')!=null) {
+ document.getElementById('rightContentAdmin').style.marginLeft = "50px";
+ }
+
+ else if (document.getElementById('rightContentProfile')!=null)
+ document.getElementById('rightContentProfile').style.marginLeft = "50px";
+ }
+ };
+
+$timeout(function() {
+ //detectScrollEvent();
+ }, 800);
+}]);
+</script>
+
+<style>
+#page-content{
+margin-top:-250px;
+}
+
+#page-content td, th {
+ padding: 0px;
+ border:none;
+}
+</style>
+<div ng-app="abs">
+ <div ng-controller = "leftMenuController">
+ <ddh-left-navigation menu-data="menuData"></ddh-left-navigation>
+ </div>
+</div> \ No newline at end of file
diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/fusion/jsp/ebz/ebz_header.jsp b/epsdk-app-onap/src/main/webapp/WEB-INF/fusion/jsp/ebz/ebz_header.jsp
new file mode 100644
index 00000000..ad3201cf
--- /dev/null
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/fusion/jsp/ebz/ebz_header.jsp
@@ -0,0 +1,837 @@
+<%--
+ ================================================================================
+ eCOMP Portal SDK
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ================================================================================
+ --%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
+<%@ page isELIgnored="false"%>
+<%@ page import="org.openecomp.portalsdk.core.util.SystemProperties"%>
+<%@ page import="org.openecomp.portalsdk.core.onboarding.util.PortalApiProperties"%>
+<%@ page import="org.openecomp.portalsdk.core.onboarding.util.PortalApiConstants"%>
+<%@ page import="org.openecomp.portalsdk.core.domain.MenuData"%>
+<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/portal_ebz_header.css">
+<link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/sandbox/styles/style.css" >
+
+
+<%--<script src= "app/fusion/external/ebz/angular_js/angular.js"></script> --%>
+<script src="app/fusion/external/angular-1.4.8/angular.min.js"></script>
+<script src="app/fusion/external/angular-1.4.8/angular-route.min.js"></script>
+<script src="app/fusion/external/angular-1.4.8/angular-sanitize.min.js"></script>
+<script src="app/fusion/external/angular-1.4.8/angular-cookies.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="static/js/jquery-1.10.2.js"></script>
+<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>
+<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/0.10.0/lodash.min.js"></script>
+<%--<script src="app/fusion/external/angular-ui/ui-bootstrap-tpls-1.1.2.min.js"></script>--%>
+<script src="app/fusion/external/angular-1.4.8/angular-touch.min.js"></script>
+<script src="app/fusion/external/angular-1.4.8/angular-animate.min.js"></script>
+<script src="app/fusion/external/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
+<script src="app/fusion/scripts/services/userInfoService.js"></script>
+<script src="app/fusion/scripts/services/leftMenuService.js"></script>
+
+
+<jsp:include page="/WEB-INF/fusion/jsp/ebz/loginSnippet.html" ></jsp:include>
+
+<c:set var="UserName" value="<%= session.getAttribute(\"fullName\")%>" />
+<c:set var="UserFirstName" value="<%= session.getAttribute(\"first_name\")%>" />
+
+<%
+ String contactUsLink = SystemProperties.getProperty(SystemProperties.CONTACT_US_LINK);
+ String redirectUrl = PortalApiProperties.getProperty(PortalApiConstants.ECOMP_REDIRECT_URL);
+ String portalUrl = redirectUrl.substring(0, redirectUrl.lastIndexOf('/')) + "/process_csp";
+ String getAccessLink = redirectUrl.substring(0, redirectUrl.lastIndexOf('/')) + "/get_access";
+%>
+<c:set var="returnPortalUrl" value="<%=portalUrl%>" />
+<c:set var="contactUsLink" value="<%=contactUsLink%>" />
+<c:set var="getAccessLink" value="<%=getAccessLink%>" />
+<style>
+.att-drawer{
+ z-index:997 !important;
+}
+
+.secondaryMenuContainer{
+ z-index:1000;
+}
+.megamenu-tabs .megamenu__item {
+ padding: 0 0;
+}
+.megamenu-tabs .megamenu__item span {
+ font-size: 18px;
+}
+
+.submenu-tabs {
+ line-height:50px;
+}
+.submenu-tabs .sub__menu{
+ top:5px;
+}
+
+.top-megamenu .megamenu-tabs ul{
+ width:98%;
+ list-style: none;
+}
+
+</style>
+<%@include file="/WEB-INF/fusion/jsp/ebz/loginSnippet.html" %>
+
+<div style="position: relative; z-index: 999;">
+ <div ng-controller="headerController">
+
+ <div class="headerContainer" id="headerContainer" ng-cloak ng-show="{{showHeader && false}}">
+ <div id="megaMenuContainer" class="megaMenuContainer" style="margin-top: 0; overflow: visible;">
+ <div>
+ <!--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;" onclick="returnToPortal()">
+ <img src="app/fusion/external/ebz/images/att_logo.png" class="ATTLogo" ></span>
+<!-- <a id='returnPortal' class="primaryMenuOptionLink" style="font-weight: 400 !important; font-family: clearview_att_bold !important; font-size: 18px;">ECOMP</a>
+ --> <strong style="font-weight: 400 !important; font-family: clearview_att_bold !important; font-size: 18px;" id='returnPortal' >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>
+ <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='favoritesWindow' ng-show="emptyFavorites">
+ <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>
+ </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>
+<!-- <li class="megamenu__item" style="width: 20%;">&nbsp;</li>
+ --> </div>
+ <!-- Login Snippet-->
+ <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; max-width:120px; padding-top: 0px; margin-top: 0px; white-space: nowrap;" ng-bind="userProfile.firstName"></div>
+ </div>
+ </li>
+ <li class="megamenu__item" style="width:120px;">&nbsp;</li>
+ </div>
+
+ </div>
+ </div>
+ <div style="clear: both"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="license-notification" id="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 style="position: relative; color: black; top: 70px;">
+ <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;">&nbsp&nbsp&nbsp {{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="margin-top:{{drawer_margin_top}}px;">
+ <div style="margin-left:10px; margin-right:10px;">
+ <accordion close-others="true" css="att-accordion--no-box">
+ <accordion-group ng-repeat="parent in menuItems" heading="{{parent.parentLabel}}" child="{{parent.parentAction}}" 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>
+ </div>
+ </div>
+</div>
+<script>
+ function returnToPortal(){
+ window.location.href = "<c:out value='${returnPortalUrl}'/>";
+ }
+ detectScrollEvent = function() {
+ var footerOff = $('#footerContainer').offset().top;
+ var headOff = $('#headerContainer').offset().top;
+ var winHeight = $(window).height();
+ if ((footerOff - headOff) <= winHeight) {
+ $('.att-drawer').css({
+ "height" : footerOff - headOff - 55
+ });
+ } else {
+ $('.att-drawer').css({
+ "height" : "94vh"
+ });
+ }
+ }
+ $(window).scroll(function() {
+ if ($('.att-drawer').is(':visible')) {
+ detectScrollEvent();
+ }
+ });
+ app.controller("headerController", function($scope, $timeout, $log, $http, UserInfoService, $window, $cookies,LeftMenuService) {
+ // $log.debug('HeaderController started');
+ $scope.jsonMenuData = [];
+ $scope.loadMenufail=false;
+ $scope.app_name = "";
+ $scope.app_name_full = "";
+ $scope.megaMenuDataObject =[];
+ $scope.activeClickSubMenu = {
+ x: ''
+ };
+ $scope.activeClickMenu = {
+ x: ''
+ };
+ $scope.favoritesMenuItems = [];
+ $scope.favoriteItemsCount = 0;
+ $scope.showFavorites = false;
+ $scope.emptyFavorites = false;
+ $scope.favoritesWindow = false;
+ $scope.userProfile={
+ firstName:'',
+ lastName:'',
+ fullName:'',
+ email:''
+ }
+ /*Put user info into fields*/
+ $scope.inputUserInfo = function(userInfo){
+ if (typeof(userInfo) != "undefined" && userInfo!=null && userInfo!=''){
+ if (typeof(userInfo.USER_FIRST_NAME) != "undefined" && userInfo.USER_FIRST_NAME!=null && userInfo.USER_FIRST_NAME!='')
+ $scope.userProfile.firstName = userInfo.USER_FIRST_NAME;
+ if (typeof(userInfo.USER_LAST_NAME) != "undefined" && userInfo.USER_LAST_NAME!=null && userInfo.USER_LAST_NAME!='')
+ $scope.userProfile.lastName = userInfo.USER_LAST_NAME;
+ if (typeof(userInfo.USER_EMAIL) != "undefined" && userInfo.USER_EMAIL!=null && userInfo.USER_EMAIL!='')
+ $scope.userProfile.email = userInfo.USER_EMAIL;
+ }
+ }
+ /*getting user info from session*/
+ $scope.getUserNameFromSession = function(){
+ UserInfoService.getFunctionalMenuStaticDetailSession()
+ .then(function (res) {
+ $scope.userProfile.firstName = res.firstName;
+ $scope.redirectUrl = res.portalUrl;
+ });
+ }
+ $scope.getTopMenuStaticInfo=function() {
+ var promise = UserInfoService.getFunctionalMenuStaticDetailShareContext();
+ promise.then(
+ function(res) {
+ if(res==null || res==''){
+ $log.info('failed getting static User information');
+ $scope.getUserNameFromSession();
+ }else{
+ $log.info('Received static User information');
+ var resData = res;
+ $scope.inputUserInfo(resData);
+ $scope.userProfile.fullName = $scope.userProfile.firstName+ ' '+ $scope.userProfile.lastName;
+ }
+ },
+ function(err) {
+ $log.info('failed getting static User information');
+ }
+ );
+ }
+
+ var unflatten = function( array, parent, tree ){
+ tree = typeof tree !== 'undefined' ? tree : [];
+ parent = typeof parent !== 'undefined' ? parent : { menuId: null };
+ var children = _.filter( array, function(child){ return child.parentMenuId == parent.menuId; });
+
+ if( !_.isEmpty( children ) ){
+ if( parent.menuId === null ){
+ tree = children;
+ }else{
+ parent['children'] = children
+ }
+ _.each( children, function( child ){ unflatten( array, child ) } );
+ }
+
+ return tree;
+ }
+
+ var menuStructureConvert = function(menuItems) {
+ var megaMenuDataObjectTemp = [
+ {
+ text: "ECOMP",
+ children:menuItems
+ },
+ {
+ text: "Help",
+ children: [{
+ text:"Contact Us",
+ url:"<c:out value='${contactUsLink}'/>"
+ },
+ {
+ text:"Get Access",
+ url:"<c:out value='${getAccessLink}'/>"
+ }]
+ }
+ ];
+ return megaMenuDataObjectTemp;
+ };
+
+
+ /*Left Menu*/
+ LeftMenuService.getAppName().then(function(response){
+ var j = response;
+ try{
+ if(j && j !== "null" && j!== "undefined"){
+ // console.log("app name is " + $scope.app_name);
+ $scope.app_name_full = j.data;
+ var processed_app_name = j.data;
+ var indexOfLic = processed_app_name.indexOf('[');
+ if(indexOfLic>-1) {
+ if (jQuery('.license-notification')!=null)
+ jQuery('.license-notification').css("display", "none");
+ }
+ var n = processed_app_name.length;
+ if (n > 15) {
+ n = 15;
+ }
+ if(n > indexOfLic && indexOfLic > 0) {
+ n = indexOfLic;
+ }
+ $scope.app_name_full = $scope.app_name_full.substr(0, n);
+ $scope.app_name = processed_app_name.substr(0, n);
+
+ }else{
+ throw "Get app_name response is not an object/is empty";
+ }
+ }catch (e) {
+ console.log("error happened while trying to get app name "+e);
+ return;
+ }
+ },function(error){
+ console.log('getAppName failed', error);
+ });
+
+
+ $scope.getTopMenuStaticInfo();
+ $scope.getMenu=function() {
+
+ $http({
+ method: "GET",
+ url: 'get_functional_menu',
+// TIMEOUT USED FOR LOCAL TESTING ONLY
+// timeout: 100
+ }).success(function (response) {
+ if(response == '101: Timeout') {
+ $log.error('Timeout attempting to get_functional_menu');
+ // TIMEOUT USED FOR LOCAL TESTING ONLY
+// $scope.createErrorMenu();
+ $scope.megaMenuDataObject = menuStructureConvert('');
+ }else {
+ $log.debug('get_functional_menu success: ' + response);
+ if(typeof response != 'undefined' && response.length!=0 && typeof response[0] != 'undefined' && typeof response[0].error!="undefined"){
+// createErrorMenu() USED FOR LOCAL TESTING ONLY
+// $scope.createErrorMenu();
+ $scope.megaMenuDataObject = menuStructureConvert('');
+ // $scope.loadMenufail=true;
+ }else{
+ $scope.jsonMenuData = unflatten( response );
+ $scope.megaMenuDataObject = menuStructureConvert($scope.jsonMenuData);
+ }
+ }
+ }).error(function (response){
+// createErrorMenu() USED FOR LOCAL TESTING ONLY
+// $scope.createErrorMenu();
+
+ //$scope.loadMenufail=true;
+ $scope.megaMenuDataObject = menuStructureConvert('');
+ $log.debug('REST API failed get_functional_menu...'+ response);
+ });
+ }
+ $scope.adjustHLeftMenu = function (type){
+ $scope.showHeader = ($cookies.show_app_header == undefined ? true : $cookies.show_app_header);
+
+ if($scope.showHeader == true) {
+ $scope.drawer_margin_top = 60;
+ $scope.drawer_custom_top = 5;
+ $scope.toggle_drawer_top = 5;
+ }
+ else {
+
+ $scope.drawer_margin_top = 50;
+ $scope.drawer_custom_top = 5;
+ $scope.toggle_drawer_top = 5;
+ }
+ if(type=='burgerIcon'){
+ return { "top": $scope.toggle_drawer_top+"px"};
+ }else if(type=='leftMenu'){
+ return { "margin-top": $scope.drawer_margin_top+"px"};
+ }else
+ return;
+ }
+ $scope.adjustHeader=function() {
+ $scope.showHeader = ($cookies.show_app_header == undefined ? true : $cookies.show_app_header);
+
+ if($scope.showHeader == true) {
+ $scope.drawer_margin_top = 50;
+ $scope.drawer_custom_top = 5;
+ $scope.toggle_drawer_top = 5;
+ }
+ else {
+
+ $scope.drawer_margin_top = 40;
+ $scope.drawer_custom_top = 5;
+ $scope.toggle_drawer_top = 5;
+ }
+
+
+ }
+
+
+ //$scope.getMenu();
+ $scope.adjustHeader();
+
+
+ /* **************************************************************************/
+ /* Logic for the favorite menus is here */
+
+ $scope.loadFavorites = function () {
+ $log.debug('loadFavorites has happened.');
+ if ($scope.favoritesMenuItems == '') {
+ $scope.generateFavoriteItems();
+ $log.debug('loadFavorites is calling generateFavoriteItems()');
+ } else {
+ $log.debug('loadFavorites is NOT calling generateFavoriteItems()');
+ }
+ }
+
+ $scope.goToUrl = function (item) {
+ $log.info("goToUrl called")
+ $log.info(item);
+
+ var url = item.url;
+ var restrictedApp = item.restrictedApp;
+ $log.debug('Restricted app status is: ' + restrictedApp);
+ if (!url) {
+ $log.info('No url found for this application, doing nothing..');
+ return;
+ }
+ if (restrictedApp) {
+ $window.open(url, '_blank');
+ } else {
+ $window.open(url, '_self');
+ }
+
+ }
+
+ $scope.submenuLevelAction = function(index, column) {
+ if ($scope.favoritesMenuItems == '') {
+ $scope.generateFavoriteItems();
+ $log.debug('submenuLevelAction is calling generateFavoriteItems()');
+ }
+ $log.debug('item hovered/clicked: ' + index + '; column = ' + column);
+ if (column == 2) { // 2 is Design
+ $scope.favoritesWindow = false;
+ $scope.showFavorites = false;
+ $scope.emptyFavorites = false;
+ }
+ if (index=='Favorites' && $scope.favoriteItemsCount != 0) {
+ $log.debug('Showing Favorites window');
+ $scope.favoritesWindow = true;
+ $scope.showFavorites = true;
+ $scope.emptyFavorites = false;
+ }
+ if (index=='Favorites' && $scope.favoriteItemsCount == 0) {
+ $log.debug('Hiding Favorites window in favor of No Favorites Window');
+ $scope.favoritesWindow = true;
+ $scope.showFavorites = false;
+ $scope.emptyFavorites = true;
+ }
+ if (column > 2) {
+ $scope.favoritesWindow = false;
+ $scope.showFavorites = false;
+ $scope.emptyFavorites = false;
+ }
+ };
+
+ $scope.hideFavoritesWindow = function() {
+ $log.debug('$scope.hideFavoritesWindow has been called');
+ $scope.showFavorites = false;
+ $scope.emptyFavorites = false;
+ }
+
+ $scope.isUrlFavorite = function (menuId) {
+// $log.debug('array objects in menu favorites = ' + $scope.favoriteItemsCount + '; menuId=' + menuId);
+ var jsonMenu = JSON.stringify($scope.favoritesMenuItems);
+ var isMenuFavorite = jsonMenu.indexOf('menuId\":' + menuId);
+ if (isMenuFavorite==-1) {
+ return false;
+ } else {
+ return true;
+ }
+
+ }
+
+ $scope.generateFavoriteItems = function() {
+ $http({
+ method: "GET",
+ url: 'get_favorites',
+ // TIMEOUT USED FOR LOCAL TESTING ONLY
+// timeout: 100
+ }).success(function (response) {
+ if (response == '101: Timeout') {
+ $log.error('Timeout attempting to get_favorites_menu');
+ } else {
+ if(typeof response != 'undefined' && response.length!=0 && typeof response[0] != 'undefined' && typeof response[0].error!="undefined"){
+ $log.error('REST API failed get_favorites' + response);
+ }else{
+ $log.debug('get_favorites = ' + JSON.stringify(response));
+ $scope.favoritesMenuItems = response;
+ $scope.favoriteItemsCount = Object.keys($scope.favoritesMenuItems).length;
+ $log.info('number of favorite menus: ' + $scope.favoriteItemsCount);
+ }
+ }
+ }).error(function (response){
+ $log.error('REST API failed get_favorites' + response);
+ //createFavoriteErrorMenu() USED FOR LOCAL TESTING ONLY
+// $scope.createFavoriteErrorMenu();
+ });
+ }
+
+ $scope.createFavoriteErrorMenu=function() {
+ $scope.favoritesMenuItems = [
+// {
+// "menuId": "93",
+// "text": "JSONLint",
+// "url": "http://http://jsonlint.com"
+// },
+// {
+// "menuId": "22",
+// "text": "ECOMP Wasteland",
+// "url": "https://ecomp.homer.att.com/ecompportal/applicationsHome"
+// },
+// {
+// "menuId": "94",
+// "text": "HROneStop",
+// "url": "http://ebiz.sbc.com/hronestop"
+// },
+// {
+// "menuId": "91",
+// "text": "Andy and his Astrophotgraphy",
+// "url": "https://ecomp.homer.att.com/ecompportal/applicationsHome"
+// }
+ ];
+ $scope.favoriteItemsCount = Object.keys($scope.favoritesMenuItems).length;
+ $log.info('number of favorite menus: ' + $scope.favoriteItemsCount);
+ }
+
+ /* end of Favorite Menu code */
+ /* **************************************************************************/
+
+
+ /* **************************************************************************/
+ // THIS IS USED FOR LOCAL TESTING ONLY
+ /* **************************************************************************/
+
+ $scope.createErrorMenu=function() {
+ $scope.jsonMenuData = [
+ {
+ "menuId": 1,
+ "column": 2,
+ "text": "Design",
+ "parentMenuId": null,
+ "url": ""
+ },
+ {
+ "menuId": 2,
+ "column": 3,
+ "text": "Infrastructure Ordering",
+ "parentMenuId": null,
+ "url": ""
+ },
+ {
+ "menuId": 3,
+ "column": 4,
+ "text": "Service Creation",
+ "parentMenuId": null,
+ "url": ""
+ },
+ {
+ "menuId": 4,
+ "column": 5,
+ "text": "Service Mgmt",
+ "parentMenuId": null,
+ "url": ""
+ },
+ {
+ "menuId": 90,
+ "column": 1,
+ "text": "Google",
+ "parentMenuId": 1,
+ "url": "http://google.com"
+ },
+ {
+ "menuId": 91,
+ "column": 1,
+ "text": "Mike Little's Coffee Cup",
+ "parentMenuId": 2,
+ "url": "http://coffee.com"
+ },
+ {
+ "menuId": 92,
+ "column": 2,
+ "text": "Andy and his Astrophotgraphy",
+ "parentMenuId": 3,
+ "url": "http://nightskypix.com"
+ },
+ {
+ "menuId": 93,
+ "column": 1,
+ "text": "JSONLint",
+ "parentMenuId": 4,
+ "url": "http://http://jsonlint.com"
+ },
+ {
+ "menuId": 94,
+ "column": 2,
+ "text": "HROneStop",
+ "parentMenuId": 4,
+ "url": "http://ebiz.sbc.com/hronestop"
+ },
+ {
+ "menuId": 95,
+ "column": 2,
+ "text": "4th Level App4a R16",
+ "parentMenuId": 4,
+ "url": "http://www.e-access.att.com/ecomp_portal_ist/ecompportal/widgets"
+ },
+ {
+ "menuId": 96,
+ "column": 3,
+ "text": "3rd Level App1c R200",
+ "parentMenuId": 4,
+ "url": "http://app1c.com"
+ },
+ {
+ "menuId": 97,
+ "column": 1,
+ "text": "3rd Level App4b R16",
+ "parentMenuId": 5,
+ "url": "http://app4b.com"
+ },
+ {
+ "menuId": 98,
+ "column": 2,
+ "text": "3rd Level App2b R16",
+ "parentMenuId": 5,
+ "url": "http://app2b.com"
+ },
+ {
+ "menuId": 99,
+ "column": 1,
+ "text": "Favorites",
+ "parentMenuId": null,
+ "url": ""
+ }
+ ];
+ $scope.jsonMenuData = unflatten( $scope.jsonMenuData );
+ $scope.megaMenuDataObject = menuStructureConvert($scope.jsonMenuData);
+// $log.debug(JSON.stringify($scope.jsonMenuData));
+ }
+ var childItemList="";
+ var parentList = "";
+ try{
+ childItemList = ${menu.childItemList};
+ parentList = ${menu.parentList};
+ }catch(err){
+ console.log("ebz_header: failed to get child/parent lists", err);
+ }
+
+ var pageUrl = window.location.href.split('/')[window.location.href.split('/').length-1];
+
+ $scope.menuItems = [];
+ for (var i = 0; i < parentList.length; i++) {
+ $scope.openCurrentMenu = false;
+ if(pageUrl==parentList[i].action)
+ $scope.openCurrentMenu = true;
+ $scope.childItemList = childItemList[i];
+ for(chIndex in $scope.childItemList){
+ if($scope.childItemList.length>0)
+ if($scope.childItemList[chIndex].action!=null){
+ if($scope.childItemList[chIndex].action==pageUrl)
+ $scope.openCurrentMenu = true;
+ }
+ }
+ $scope.item = {
+ parentLabel : parentList[i].label,
+ parentAction : parentList[i].action,
+ parentImageSrc : parentList[i].imageSrc,
+ open:$scope.openCurrentMenu,
+ childItemList : $scope.childItemList
+ }
+ $scope.menuItems.push($scope.item);
+ }
+ $scope.arrowShow = true;
+ $scope.drawerOpen = false;
+ $scope.subMenuContent = false;
+ $scope.toggleSubMenu = function() {
+ $scope.subMenuContent = !$scope.subMenuContent;
+ };
+
+ var drawerOpen = 'open';
+ if (drawerOpen == 'open') {
+ $scope.drawerOpen = true;
+ $scope.arrowShow = true;
+ } else {
+ $scope.arrowShow = false;
+ }
+ $scope.arrowShow = true;
+ $scope.drawerOpen = false;
+ $scope.toggleDrawer = function() {
+ $scope.drawerOpen = !($scope.drawerOpen);
+ if ($scope.drawerOpen) {
+ $scope.arrowShow = true;
+ if (document.getElementById('mContent')!=null)
+ document.getElementById('mContent').style.marginLeft = "0px";
+ } else {
+ $scope.arrowShow = false;
+ if (document.getElementById('mContent')!=null)
+ document.getElementById('mContent').style.marginLeft = "-150px";
+ }
+ };
+ //var drawerOpen = getCookie('drawerOpen');
+ if (drawerOpen == 'open') {
+ $scope.drawerOpen = true;
+ $scope.arrowShow = true;
+ } else {
+ $scope.arrowShow = false;
+ }
+ $timeout(function() {
+ detectScrollEvent();
+ }, 800);
+
+ });
+
+ app.filter("ellipsis", function(){
+ return function(text, length){
+ if (text) {
+ var ellipsis = text.length > length ? "..." : "";
+ return text.slice(0, length) + ellipsis;
+ };
+ return text;
+ }
+ });
+</script> \ No newline at end of file
diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/createnewserviceinstance.jsp b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/createnewserviceinstance.jsp
new file mode 100644
index 00000000..fd2030e6
--- /dev/null
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/createnewserviceinstance.jsp
@@ -0,0 +1,146 @@
+<script>
+app.controller('createNewSIController',['$scope','$http',function ($scope,$http) {
+
+ $scope.searchCategory = "";
+ $scope.searchString = "";
+ $scope.tableData=[];
+ $scope.displayData=[];
+ $scope.selectedSubscriber = $scope.tableData[0];
+ $scope.selectedServiceType = "Select Service Type";
+ function escapeRegExp(str) {
+ return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|\&]/g, " ");
+ }
+ $scope.serviceTypes=["Select Service Type", "uCPE-VMS", "SDN-L3-BONDING", "SDN-ETHERNET-INTERNET"];
+
+ $scope.getSubscribers = function(refresh){
+
+ var refreshTxt = 'refresh_subscribers';
+ var getTxt = 'get_subscribers';
+ var selectedTxt = getTxt;
+ if (refresh)
+ selectedTxt = refreshTxt;
+ $http.get(selectedTxt).
+ then(function(response){
+ var data = JSON.parse(response.data.result);
+ $scope.tableData = data['customer'];
+ $scope.initSubscriberList();
+ })
+ .catch(function(data,status){
+ console.log("Error: " + status + " : " + data);
+ })
+ .finally(function() {
+
+ });
+
+ }
+
+
+ $scope.initSubscriberList = function () {
+ //$scope.selectedSubscriber = $scope.selectedSubscriber['subscriber-name'] || $scope.tableData[0]['subscriber-name'];
+ $scope.selectedSubscriber = 'Select Subscriber Name';
+ }
+
+ $scope.initSrvcTypeList = function () {
+ $scope.selectedServiceType = $scope.serviceTypes[0];
+ }
+
+ $scope.getSubscriberDetails = function(selectedSubscriber){
+ if (selectedSubscriber == 'Select Subscriber Name')
+ return;
+ $http.get('createsubscriber/' + encodeURIComponent(selectedSubscriber)).
+ then(function(response){
+ // window.location.href = 'createsubscriberdetails.htm';
+ })
+ .catch(function(data,status){
+ console.log("Error: " + status + " : " + data);
+ })
+ .finally(function() {
+
+ });
+ }
+
+ $scope.disableSubmitBtn = function (subName, svcType) {
+ return (typeof subName === "undefined") && (svcType == 'Select Service Type');
+ //return (subName == 'Select Subscriber Name') && (svcType == 'Select Service Type');
+ }
+
+ $scope.cancelCreateSI = function(selectedSubscriber){
+
+ window.location.href = 'welcome.htm';
+
+ }
+
+ $scope.getSubscribers(false);
+ //$scope.initSubscriberList();
+
+}]);
+
+
+</script>
+
+<div ng-controller="createNewSIController">
+
+ <h1 class="heading1"><center>Create New Service Instance</center></h1>
+
+
+<BR>
+ <table> <tr>
+
+ <td width="5%" align="left">
+ <!-- <a ng-click="getSubscriberDetails(selectedSubscriber['global-customer-id']);" ng-disabled="disableSubmitBtn(selectedSubscriber['subscriber-name'], selectedServiceType);" ><img src="static/fusion/images/plus.png"></a>-->
+ <input type="image" ng-click="getSubscriberDetails(selectedSubscriber['global-customer-id']);" ng-disabled="disableSubmitBtn(selectedSubscriber['subscriber-name'], selectedServiceType);" src="static/fusion/images/plus.png"/>
+ </td>
+
+ <td style="width:10%" align="left"><div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Subscriber:</label>
+ </div> </td>
+ <td style="width:30%"><div class="fn-ebz-container">
+ <select ng-model="selectedSubscriber" ng-options="resultdata['subscriber-name'] for resultdata in tableData" required>
+ <option value="">Select Subscriber Name</option>
+ </select>
+ </div></td>
+ <td width="5%" align="left">
+ <input type="image" ng-click="getSubscribers(true);" src="static/fusion/images/refresh.jpg"/>
+ </td>
+
+ <td width="5%"> </td>
+<td style="width:10%" align="left">
+
+
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Service Type:</label>
+ </div> </td>
+ <td style="width:32%"><div class="fn-ebz-container">
+ <select ng-model="selectedServiceType" ng-options="sType for sType in serviceTypes" ng-init="initSrvcTypeList();" ></select>
+ </div> </td>
+
+ <td width="5%"> </td>
+
+ </tr>
+ </table>
+
+ <center>
+ <button type="cancel" ng-click="cancelCreateSI();" att-button size="small">Cancel</button>
+ </center>
+
+
+
+</div>
+<!-- Temporary solution for footer overlapping the men after talking to EComp SDK developer on 06/16/2016 -->
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+
+
diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/searchexistingsi.jsp b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/searchexistingsi.jsp
new file mode 100644
index 00000000..ca840e62
--- /dev/null
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/searchexistingsi.jsp
@@ -0,0 +1,81 @@
+<link rel="stylesheet" type="text/css" href="app/vid/styles/subscriberSearch.css" />
+
+<script src="app/vid/scripts/controller/VidApp.js"></script>
+<script src="app/vid/scripts/controller/subscriberSearch.js"></script>
+
+<script src="app/vid/scripts/controller/aaiSubscriberController.js"></script>
+<script src="app/vid/scripts/services/utilityService.js"></script>
+<script src="app/vid/scripts/angular-ui-tree.js"></script>
+
+<link rel="stylesheet" type="text/css" href="app/vid/styles/dialogs.css" />
+
+<script src="app/vid/test/testAaiData.js"></script>
+
+<script src="app/vid/scripts/controller/creationDialogController.js"></script>
+<script src="app/vid/scripts/controller/deleteResumeDialogController.js"></script>
+<script src="app/vid/scripts/controller/detailsDialogController.js"></script>
+<script src="app/vid/scripts/controller/statusDialogController.js"></script>
+<script src="app/vid/scripts/controller/msoCommitController.js"></script>
+
+<script src="app/vid/scripts/services/aaiService.js"></script>
+<script src="app/vid/scripts/services/asdcService.js"></script>
+<script src="app/vid/scripts/services/creationService.js"></script>
+<script src="app/vid/scripts/services/dataService.js"></script>
+<script src="app/vid/scripts/services/deleteResumeService.js"></script>
+<script src="app/vid/scripts/services/detailsService.js"></script>
+<script src="app/vid/scripts/services/statusService.js"></script>
+<script src="app/vid/scripts/services/componentService.js"></script>
+<script src="app/vid/scripts/services/msoService.js"></script>
+<script src="app/vid/scripts/services/propertyService.js"></script>
+<script src="app/vid/scripts/services/utilityService.js"></script>
+
+<script src="app/vid/scripts/directives/extensionsDirective.js"></script>
+<script src="app/vid/scripts/directives/parameterBlockDirective.js"></script>
+<script src="app/vid/scripts/directives/popupWindowDirective.js"></script>
+<script src="app/vid/scripts/directives/progressBarDirective.js"></script>
+
+<script src="app/vid/scripts/constants/componentConstants.js"></script>
+<script src="app/vid/scripts/constants/fieldConstants.js"></script>
+<script src="app/vid/scripts/constants/parameterConstants.js"></script>
+
+<link rel="stylesheet" type="text/css" href="app/vid/styles/aaiGetSubs.css" />
+<link rel="stylesheet" type="text/css" href="app/vid/styles/aaiSubDetails.css" />
+<link rel="stylesheet" type="text/css" href="app/vid/styles/angular-ui-tree.css" />
+<link rel="stylesheet" type="text/css" href="app/vid/styles/vidTree.css" />
+
+<%@ page import="org.openecomp.vid.mso.*"%>
+<%@ page import="org.openecomp.portalsdk.core.util.SystemProperties"%>
+<%
+ String properties = "{msoMaxPolls:" + SystemProperties.getProperty(MsoProperties.MSO_MAX_POLLS)
+ + ",msoMaxPollingIntervalMsec:"
+ + SystemProperties.getProperty(MsoProperties.MSO_POLLING_INTERVAL_MSECS) + "}";
+%>
+
+<div ng-controller="aaiSubscriberSearchController"
+ ng-init="init(<%=properties%>);" ng-cloak>
+
+
+
+ <div ng-view></div>
+
+</div>
+
+<!-- Temporary solution for footer overlapping the men after talking to EComp SDK developer on 06/16/2016 -->
+
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+
+ \ No newline at end of file
diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/serviceModels.jsp b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/serviceModels.jsp
index d0c36d47..88131c59 100755
--- a/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/serviceModels.jsp
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/serviceModels.jsp
@@ -1,3 +1,4 @@
+<link rel="stylesheet" type="text/css" href="app/vid/external/bootstrap/css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="app/vid/styles/aaiGetSubs.css" />
<link rel="stylesheet" type="text/css" href="app/vid/styles/aaiSubDetails.css" />
<link rel="stylesheet" type="text/css" href="app/vid/styles/aaiSubViewEdit.css" />
@@ -7,20 +8,22 @@
<link rel="stylesheet" type="text/css" href="app/vid/styles/vidTree.css" />
<link rel="stylesheet" type="text/css" href="app/vid/styles/dialogs.css" />
<link rel="stylesheet" type="text/css" href="app/vid/styles/angularjs-datetime-picker.css"></link>
-<link rel="stylesheet" type="text/css" href="app/vid/external/bootstrap/css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="app/vid/styles/common.css" />
+<link rel="stylesheet" type="text/css" href="app/vid/styles/messageViewer.css" />
<script>
var appDS2 = app;
</script>
+
<script src="app/vid/scripts/controller/VidApp.js"></script>
<!-- Latest compiled and minified JavaScript -->
-<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
+<script src="app/vid/external/bootstrap/js/bootstrap.min.js"></script>
<script src="app/vid/external/multiselect/angular-bootstrap-multiselect.min.js"></script>
+<script src="app/vid/external/upload-file/ng-file-upload.min.js"></script>
<script src="app/vid/scripts/angular-ui-tree.js"></script>
@@ -33,40 +36,56 @@
<script src="app/vid/scripts/filters/date.filter.js"></script>
<script src="app/vid/scripts/modals/change-management-manual-tasks-controller/change-management-manual-tasks.controller.js"></script>
<script src="app/vid/scripts/modals/new-change-management/new-change-management.controller.js"></script>
-<script src="app/vid/scripts/modals/new-scheduler/new-scheduler.controller.js"></script>
+
+<script src="app/vid/scripts/modals/new-test-environment/new-test-environment.controller.js"></script>
+<script src="app/vid/scripts/modals/alert-modal/alert-modal.controller.js"></script>
<script src="app/vid/scripts/controller/aaiSubscriberController.js"></script>
<script src="app/vid/scripts/controller/creationDialogController.js"></script>
-<script src="app/vid/scripts/controller/deletionDialogController.js"></script>
+<script src="app/vid/scripts/controller/deleteResumeDialogController.js"></script>
<script src="app/vid/scripts/controller/detailsDialogController.js"></script>
<script src="app/vid/scripts/controller/statusDialogController.js"></script>
<script src="app/vid/scripts/controller/InstantiationController.js"></script>
<script src="app/vid/scripts/controller/msoCommitController.js"></script>
+<script src="app/vid/scripts/controller/pnfSearchAssociationController.js"></script>
<script src="app/vid/scripts/controller/ServiceModelController.js"></script>
<script src="app/vid/scripts/controller/previousVersionDialogController.js"></script>
<script src="app/vid/scripts/controller/previousVersionContoller.js"></script>
+<script src="app/vid/scripts/controller/AddNetworkNodeController.js"></script>
<script src="app/vid/scripts/controller/change-management.controller.js"></script>
+<script src="app/vid/scripts/controller/testEnvironmentsController.js"></script>
+<script src="app/vid/scripts/modals/attach-test-env-manifest/attach-test-env-manifest.controller.js"></script>
+<script src="app/vid/scripts/controller/ServiceProxyConfigController.js"></script>
<script src="app/vid/scripts/directives/angularjs-datetime-picker.js"></script>
+<script src="app/vid/scripts/controller/msoCommitModalController.js"></script>
-
+<script src="app/vid/scripts/directives/messageViewer.js"></script>
<script src="app/vid/scripts/directives/extensionsDirective.js"></script>
<script src="app/vid/scripts/directives/parameterBlockDirective.js"></script>
<script src="app/vid/scripts/directives/popupWindowDirective.js"></script>
<script src="app/vid/scripts/directives/progressBarDirective.js"></script>
+<script src="app/vid/scripts/directives/serviceMetadata.js"></script>
+<script src="app/vid/scripts/directives/search.js"></script>
<script src="app/vid/scripts/services/aaiService.js"></script>
<script src="app/vid/scripts/services/schedulerService.js"></script>
<script src="app/vid/scripts/services/asdcService.js"></script>
<script src="app/vid/scripts/services/componentService.js"></script>
<script src="app/vid/scripts/services/creationService.js"></script>
<script src="app/vid/scripts/services/dataService.js"></script>
-<script src="app/vid/scripts/services/deletionService.js"></script>
+<script src="app/vid/scripts/services/deleteResumeService.js"></script>
<script src="app/vid/scripts/services/detailsService.js"></script>
<script src="app/vid/scripts/services/statusService.js"></script>
<script src="app/vid/scripts/services/msoService.js"></script>
<script src="app/vid/scripts/services/propertyService.js"></script>
<script src="app/vid/scripts/services/utilityService.js"></script>
<script src="app/vid/scripts/services/vnfService.js"></script>
+<script src="app/vid/scripts/services/pnfService.js"></script>
<script src="app/vid/scripts/services/change-management.service.js"></script>
+<script src="app/vid/scripts/modals/cancel-pending-workflow/cancel-pending-workflow.controller.js"></script>
+<script src="app/vid/scripts/services/OwningEntityService.js"></script>
+<script src="app/vid/scripts/services/testEnvironmentsService.js"></script>
+
+
<%@ page import="org.openecomp.vid.mso.*"%>
<%@ page import="org.openecomp.portalsdk.core.util.SystemProperties"%>
@@ -81,18 +100,20 @@
<div ng-view></div>
</div>
<!-- Temporary solution for footer overlapping the men after talking to EComp SDK developer on 06/16/2016 -->
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
+<div class="temporary-solution">
+ <br>
+ <br>
+ <br>
+ <br>
+ <br>
+ <br>
+ <br>
+ <br>
+ <br>
+ <br>
+ <br>
+ <br>
+ <br>
+ <br>
+ <br>
+</div>
diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/subscriberdetails.jsp b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/subscriberdetails.jsp
new file mode 100644
index 00000000..ca92b152
--- /dev/null
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/subscriberdetails.jsp
@@ -0,0 +1,184 @@
+<%@ include file="/WEB-INF/fusion/jsp/popup_modal.html" %>
+<div ng-controller="subscriberDetailsController">
+ <div>
+ <h1 class="heading1" style="margin-top:20px;">Selected Subscriber's Service Instance Details:</h1>
+ <div style="margin-top:30px">
+ <table att-table table-data="tableData">
+
+ <thead att-table-row type="header">
+ <tr>
+ <th att-table-header key="viewSubDetails">View/Edit</th>
+ <th att-table-header key="global-customer-id">Global Customer ID</th>
+ <th att-table-header key="subscriber-name">Subscriber Name</th>
+ <th att-table-header key="service-type">Service Type</th>
+ <th att-table-header key="service-instance-id">Service Instance ID</th>
+ </tr>
+ </thead>
+ <tbody att-table-row type="body" row-repeat="disData in displayData">
+ <tr>
+ <td att-table-body>
+ <div ng-controller="viewEditSubController">
+ <a href="#" ng-click="postsubscriberID(disData.subscriberName)" alt="View/Edit">
+ View/Edit
+ </a>
+ </div>
+ </td>
+ <td att-table-body >{{disData.globalCustomerId}}</td>
+ <td att-table-body >{{disData.subscriberName}}</td>
+ <td att-table-body >{{disData.serviceType}}</td>
+ <td att-table-body >{{disData.serviceInstanceId}}</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <table><tr>
+ <td>
+ <div ng-controller="searchExistingSIController" align="left" >
+ <button type="submit" ng-click="cancelSubDetails();" att-button
+ btn-type="primary" size="small">Cancel</button>
+ </div>
+ </td></tr>
+
+ </table>
+
+</div>
+<!-- Temporary solution for footer overlapping the men after talking to EComp SDK developer on 06/25/2016 -->
+
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+
+<script>
+app.controller("subscriberDetailsController", function ($scope,$http,modalService, $modal) {
+ $scope.tableData=${model.customerInfo};
+ $scope.displayData= [];
+ $scope.subscriberData=[];
+ $scope.serviceInstanceData= new Array();
+ $scope.globalcustomerid = $scope.tableData['global-customer-id'];
+ $scope.subscriberName = $scope.tableData['subscriber-name'];
+ $scope.subscriberData = $scope.tableData['service-subscriptions'];
+
+ $scope.setDisplaynoSTSI = function(){
+ $scope.displayData.push({
+ globalCustomerId : $scope.globalcustomerid,
+ subscriberName : $scope.subscriberName,
+ serviceType : "No Service Subscription Found",
+ serviceInstanceId : "No Service Instance Found"
+ });
+ }
+
+ $scope.setDisplaynoSI = function(servcType){
+ $scope.displayData.push({
+ globalCustomerId : $scope.globalcustomerid,
+ subscriberName : $scope.subscriberName,
+ serviceType : servcType,
+ serviceInstanceId : "No Service Instance Found"
+ });
+ }
+
+ if ($scope.subscriberData != null)
+ {
+ if ($scope.numberofSubscribers = $scope.subscriberData['service-subscription'] != null)
+ {
+ $scope.numberofSubscribers = $scope.subscriberData['service-subscription'].length;
+ if ($scope.numberofSubscribers > 0)
+ {
+ var index = 0;
+ for(i=0; i < $scope.numberofSubscribers; i++) {
+ $scope.serviceInstanceData[i] = new Array();
+ var servicesubscription = $scope.subscriberData['service-subscription'][i];
+ $scope.serviceInstanceData[i] = servicesubscription['service-instances'];
+ if ($scope.serviceInstanceData[i] != null)
+ {
+ if ($scope.serviceInstanceData[i]['service-instance'] != null)
+ {
+ var numberofserviceInstance = $scope.serviceInstanceData[i]['service-instance'].length;
+ if (numberofserviceInstance > 0)
+ {
+ for(j=0; j < numberofserviceInstance; j++)
+ {
+ $scope.displayData.push({
+ globalCustomerId : $scope.globalcustomerid,
+ subscriberName : $scope.subscriberName,
+ serviceType : servicesubscription['service-type'],
+ serviceInstanceId : $scope.serviceInstanceData[i]['service-instance'][j]['service-instance-id']
+ });
+ }
+ }
+ else
+ {
+ $scope.setDisplaynoSI(servicesubscription['service-type']);
+ }
+ }
+ else
+ {
+ $scope.setDisplaynoSI(servicesubscription['service-type']);
+ }
+ }
+ else
+ {
+ $scope.setDisplaynoSI(servicesubscription['service-type']);
+ }
+ }
+ }
+ else
+ {
+ $scope.setDisplaynoSTSI();
+ }
+ }
+ else
+ {
+ $scope.setDisplaynoSTSI();
+ }
+ }
+ else
+ {
+ $scope.setDisplaynoSTSI();
+ }
+
+
+});
+
+app.controller('viewEditSubController',['$scope','$http',function ($scope,$http) {
+
+ $scope.postsubscriberID = function(subID){
+ $.ajax({
+ url: "vieweditsub/subedit?"+"subscriberID="+encodeURIComponent(subID),
+ type : "POST",
+ success:function (response){
+ window.location.href = 'instantiate.htm';
+ },
+ error:function( jqXHR, status,error ){
+ $("#errorInfo").show();
+ }
+
+ });
+ }
+
+}]);
+
+app.controller('searchExistingSIController',['$scope','$http',function ($scope,$http) {
+
+ $scope.cancelSubDetails = function(selectedSubscriber){
+
+ window.location.href = 'searchexistingsi.htm';
+
+ }
+
+}]);
+</script>
+
+
diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/testViewEdit.jsp b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/testViewEdit.jsp
index 59c8a317..2c802226 100755
--- a/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/testViewEdit.jsp
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/testViewEdit.jsp
@@ -7,7 +7,7 @@
<link rel="stylesheet" type="text/css" href="app/vid/styles/dialogs.css" />
<script src="app/vid/scripts/controller/creationDialogController.js"></script>
-<script src="app/vid/scripts/controller/deletionDialogController.js"></script>
+<script src="app/vid/scripts/controller/deleteResumeDialogController.js"></script>
<script src="app/vid/scripts/controller/detailsDialogController.js"></script>
<script src="app/vid/scripts/controller/statusDialogController.js"></script>
<script src="app/vid/scripts/controller/msoCommitController.js"></script>
@@ -16,7 +16,7 @@
<script src="app/vid/scripts/services/asdcService.js"></script>
<script src="app/vid/scripts/services/creationService.js"></script>
<script src="app/vid/scripts/services/dataService.js"></script>
-<script src="app/vid/scripts/services/deletionService.js"></script>
+<script src="app/vid/scripts/services/deleteResumeService.js"></script>
<script src="app/vid/scripts/services/detailsService.js"></script>
<script src="app/vid/scripts/services/statusService.js"></script>
<script src="app/vid/scripts/services/componentService.js"></script>
@@ -54,7 +54,7 @@
<div popup-window class="popupContents" ngx-show="{{popup.isVisible}}"
ng-cloak>
<div ng-include="'app/vid/scripts/view-models/creationDialog.htm'"></div>
- <div ng-include="'app/vid/scripts/view-models/deletionDialog.htm'"></div>
+ <div ng-include="'app/vid/scripts/view-models/deleteResumeDialog.htm'"></div>
<div ng-include="'app/vid/scripts/view-models/detailsDialog.htm'"
onload="autoStartTest();"></div>
</div>
diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/welcome.jsp b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/welcome.jsp
index ad5331d9..b505909f 100755
--- a/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/welcome.jsp
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/welcome.jsp
@@ -1,23 +1,27 @@
<script src="app/vid/external/multiselect/angular-bootstrap-multiselect.min.js"></script>
+<script src="app/vid/external/upload-file/ng-file-upload.min.js"></script>
<div>
- <h1 class="heading1">ONAP</h1>
+ <h1 class="heading1">AT&T Domain 2.0 Network</h1>
<br>
<h1 class="heading1"><u>Welcome to VID</u></h1>
<br>
The Virtual Infrastructure Deployment (VID) application allows infrastructure service deployment operators
to instantiate service instances and their constituent parts for Distributed service models required by the
- ONAP service operations that manage them, such as Mobility Network Services, etc.
- The models are defined by ONAP component SDC. The service
+ internal AT&T service operations organizations that manage them, such as Mobility Network Services,
+ Netbond Services, or FlexReach Services. The models are defined by ECOMP component ASDC. The service
deployment operator selects the service operations owner and model that they wish to instantiate. After
- entry of appropriate data, the operator instructs VID to direct another ONAP component, MSO, to instantiate
+ entry of appropriate data, the operator instructs VID to direct another ECOMP component, MSO, to instantiate
the selected service model. Once the service instance has been instantiated, the service operator can instruct
VID to direct MSO to instantiate the service instance's component VNFs, VF Modules, Networks and Volume Groups.
The VID user can also search for, and display, existing service instances and direct the instantiation of
subsequent instance components.
<br><br>
-
- <h1 class="heading1"><a href="mailto:portal@lists.onap.org" target="_top">Contact Us</a></h1>
- <a href="mailto:portal@lists.onap.org" target="_top">Please click here to contact us.</a>
+ <h1 class="heading1"><u>About VID</u></h1>
+ VID was originally developed for the October 2016 release by an integrated IT and Labs team, under the
+ direction of Steve Smokowski and Vivian Pressley.
+ <br><br>
+ <h1 class="heading1"><a href="mailto:VID-Tier4@ist.att.com" target="_top">Contact Us</a></h1>
+ <a href="mailto:VID-Tier4@ist.att.com" target="_top">Please click here to contact us.</a>
@@ -26,6 +30,7 @@
</div>
+<!-- Temporary solution for footer overlapping the men after talking to EComp SDK developer on 06/16/2016 -->
<br>
<br>
<br>
diff --git a/epsdk-app-onap/src/main/webapp/app/fusion/external/ebz/angular_js/app.js b/epsdk-app-onap/src/main/webapp/app/fusion/external/ebz/angular_js/app.js
index 59e27470..e5db518d 100755
--- a/epsdk-app-onap/src/main/webapp/app/fusion/external/ebz/angular_js/app.js
+++ b/epsdk-app-onap/src/main/webapp/app/fusion/external/ebz/angular_js/app.js
@@ -1,5 +1,5 @@
angular.module('att.abs.helper', []);
angular.module('quantum', []);
var app=angular.module("abs", ["att.abs", "att.abs.helper","modalServices", /*'ngAnimate','ngTouch',*/ 'ui.bootstrap',
- "att.gridster","checklist-model","ngRoute", "ngCookies", 'btorfs.multiselect']);
+ "att.gridster","checklist-model","ngRoute", "ngCookies", 'btorfs.multiselect','ngFileUpload']);
diff --git a/epsdk-app-onap/src/main/webapp/app/vid/external/multiselect/angular-bootstrap-multiselect.min.js b/epsdk-app-onap/src/main/webapp/app/vid/external/multiselect/angular-bootstrap-multiselect.min.js
deleted file mode 100644
index b9be2c7e..00000000
--- a/epsdk-app-onap/src/main/webapp/app/vid/external/multiselect/angular-bootstrap-multiselect.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){"use strict";var a=angular.module("btorfs.multiselect",["btorfs.multiselect.templates"]);a.getRecursiveProperty=function(a,b){return b.split(".").reduce(function(a,b){return a?a[b]:null},a)},a.directive("multiselect",["$filter","$document","$log",function(b,c,d){return{restrict:"AE",scope:{options:"=",displayProp:"@",idProp:"@",searchLimit:"=?",selectionLimit:"=?",showSelectAll:"=?",showUnselectAll:"=?",showSearch:"=?",searchFilter:"=?",disabled:"=?ngDisabled",labels:"=?",showTooltip:"=?",placeholder:"@?"},require:"ngModel",templateUrl:"multiselect.html",link:function(b,e,f,g){b.selectionLimit=b.selectionLimit||0,b.searchLimit=b.searchLimit||25,b.searchFilter="",b.resolvedOptions=[],"function"!=typeof b.options&&(b.resolvedOptions=b.options),"undefined"!=typeof f.disabled&&(b.disabled=!0);var h=function(a){e[0].contains(a.target)||b.$apply(function(){b.open=!1})};c.on("click",h);var i=function(){g.$viewValue?(b.selectedOptions=b.resolvedOptions.filter(function(a){for(var c=b.getId(a),d=0;d<g.$viewValue.length;d++){var e=b.getId(g.$viewValue[d]);if(c===e)return!0}return!1}),b.unselectedOptions=b.resolvedOptions.filter(function(a){return b.selectedOptions.indexOf(a)<0})):(b.selectedOptions&&(b.selectedOptions=[]),b.unselectedOptions=b.resolvedOptions.slice())};b.toggleDropdown=function(){b.open=!b.open,b.resolvedOptions=b.options,i()},g.$render=function(){i()},g.$viewChangeListeners.push(function(){i()}),g.$isEmpty=function(a){return!a||0===a.length};var j=b.$watch("selectedOptions",function(){g.$setViewValue(angular.copy(b.selectedOptions))},!0);b.$on("$destroy",function(){c.off("click",h),j&&j()}),b.getButtonText=function(){if(b.selectedOptions&&1===b.selectedOptions.length)return b.getDisplay(b.selectedOptions[0]);if(b.selectedOptions&&b.selectedOptions.length>1){var a=angular.isDefined(b.selectedOptions)?b.selectedOptions.length:0;return 0===a?b.labels&&b.labels.select?b.labels.select:b.placeholder||"Select":a+" "+(b.labels&&b.labels.itemsSelected?b.labels.itemsSelected:"selected")}return b.labels&&b.labels.select?b.labels.select:b.placeholder||"Select"},b.selectAll=function(){b.selectedOptions=b.resolvedOptions.slice(),b.unselectedOptions=[]},b.unselectAll=function(){b.selectedOptions=[],b.unselectedOptions=b.resolvedOptions.slice()},b.toggleItem=function(a){"undefined"==typeof b.selectedOptions&&(b.selectedOptions=[]);var c=b.selectedOptions.indexOf(a),d=c!==-1;if(d)b.unselectedOptions.push(b.selectedOptions[c]),b.selectedOptions.splice(c,1);else if(!d&&(0===b.selectionLimit||b.selectedOptions.length<b.selectionLimit)){var e=b.unselectedOptions.indexOf(a);b.unselectedOptions.splice(e,1),b.selectedOptions.push(a)}},b.getId=function(c){return angular.isString(c)?c:angular.isObject(c)?b.idProp?a.getRecursiveProperty(c,b.idProp):(d.error("Multiselect: when using objects as model, a idProp value is mandatory."),""):c},b.getDisplay=function(c){return angular.isString(c)?c:angular.isObject(c)?b.displayProp?a.getRecursiveProperty(c,b.displayProp):(d.error("Multiselect: when using objects as model, a displayProp value is mandatory."),""):c},b.isSelected=function(a){if(!b.selectedOptions)return!1;for(var c=b.getId(a),d=0;d<b.selectedOptions.length;d++){var e=b.selectedOptions[d];if(b.getId(e)===c)return!0}return!1},b.updateOptions=function(){"function"==typeof b.options&&b.options().then(function(a){b.resolvedOptions=a,i()})},b.search=function(){var a=0;return function(c){if(a>b.searchLimit)return!1;var d=b.getDisplay(c);if(d){var e=d.toLowerCase().indexOf(b.searchFilter.toLowerCase())>-1;return e&&a++,e}}}}}}])}(),angular.module("btorfs.multiselect.templates",["multiselect.html"]),angular.module("multiselect.html",[]).run(["$templateCache",function(a){a.put("multiselect.html",'<div class="btn-group" style="width: 100%">\n <button type="button" class="btn btn-default btn-block dropdown-toggle" ng-click="toggleDropdown()" ng-disabled="disabled" style="white-space: nowrap; overflow-x: hidden; text-overflow: ellipsis;">\n {{getButtonText()}}&nbsp;<span class="caret"></span>\n </button>\n <ul class="dropdown-menu dropdown-menu-form"\n ng-style="{display: open ? \'block\' : \'none\'}" style="width: 100%; overflow-x: auto">\n\n <li ng-show="showSelectAll">\n <a ng-click="selectAll()" href="">\n <span class="glyphicon glyphicon-ok"></span> {{labels.selectAll || \'Select All\'}}\n </a>\n </li>\n <li ng-show="showUnselectAll">\n <a ng-click="unselectAll()" href="">\n <span class="glyphicon glyphicon-remove"></span> {{labels.unselectAll || \'Unselect All\'}}\n </a>\n </li>\n <li ng-show="(showSelectAll || showUnselectAll)"\n class="divider">\n </li>\n\n <li role="presentation" ng-repeat="option in selectedOptions" class="active">\n <a class="item-selected" href="" title="{{showTooltip ? getDisplay(option) : \'\'}}" ng-click="toggleItem(option); $event.stopPropagation()" style="overflow-x: auto">\n <span class="glyphicon glyphicon-remove"></span>\n {{getDisplay(option)}}\n </a>\n </li>\n <li ng-show="selectedOptions.length > 0" class="divider"></li>\n\n <li ng-show="showSearch">\n <div class="dropdown-header">\n <input type="text" class="form-control input-sm" style="width: 100%;"\n ng-model="searchFilter" placeholder="{{labels.search || \'Search...\'}}" ng-change="updateOptions()"/>\n </div>\n </li>\n\n <li ng-show="showSearch" class="divider"></li>\n <li role="presentation" ng-repeat="option in unselectedOptions | filter:search() | limitTo: searchLimit"\n ng-if="!isSelected(option)"\n ng-class="{disabled : selectionLimit && selectedOptions.length >= selectionLimit}">\n <a class="item-unselected" href="" title="{{showTooltip ? getDisplay(option) : \'\'}}" ng-click="toggleItem(option); $event.stopPropagation()" style="overflow-x: auto">\n {{getDisplay(option)}}\n </a>\n </li>\n\n <li class="divider" ng-show="selectionLimit > 1"></li>\n <li role="presentation" ng-show="selectionLimit > 1">\n <a>{{selectedOptions.length || 0}} / {{selectionLimit}} {{labels.itemsSelected || \'selected\'}}</a>\n </li>\n\n </ul>\n</div>\n')}]); \ No newline at end of file