summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models')
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-landing.html66
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-listing.html65
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-new.html110
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-preview.html24
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-remove.html26
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-schedule.html130
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/b2b-leftnav-ext.html43
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/admin-menu-edit.html102
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/admin.html66
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/admin_closed_loop.html17
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/collaborate-list.html76
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/collaboration.html182
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/jcs_admin.html73
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/admin-menu-del-confirm.html22
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/cache-menu-clear-confirm.html22
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/cache-menu-clear-region-confirm.html22
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/clearItem-region-confirm.html22
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/collaborate-list-toggle-profile-active-status.html22
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/popup-modal-fn-menu-edit.html129
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/popup-modal-fnmenu-add.html136
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-child-add-confirm.html25
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-confirm-activation.html23
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-delete-confirm.html22
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-fun-add-confirm.html25
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-fun-role-del-confirm.html22
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-function-add.html32
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-function-del-confirm.html22
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-function-edit.html22
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-functions-child-roles-modal.html34
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-functions-modal.html36
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/role-function.html63
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/role.html96
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/role_list.html42
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/usage.html43
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-profile/modals/role-add-confirm.html25
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-profile/modals/role-add.html36
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-profile/modals/role-del-confirm.html23
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-profile/profile.html67
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/all-reports.html74
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/directive/dynamicform.js113
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/directive/step-form-directive.js14
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-del-confirm.html26
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-formfield-del-confirm.html26
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-col-edit.html125
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-formfield-edit.html149
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-test-run-sql.html62
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-import.html14
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-run.html91
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-search.html54
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step1.json218
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step2.json34
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step3.json19
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step4.json25
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step5.json28
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/report-step.html101
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/drools-list.html32
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/drools.html55
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/frame_insert.html27
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/notebook-frame.html74
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/notebook-page.html80
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/notebook-viz.html7
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2Header.html69
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2Left_menu.html3
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/loginSnippet.html63
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/welcome-content.html191
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/welcome-sample.html112
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/welcome.html151
67 files changed, 4050 insertions, 0 deletions
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-landing.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-landing.html
new file mode 100644
index 00000000..fc90c273
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-landing.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<!-- Single-page application for EPSDK-App workflow page using DS2 look and feel -->
+<html>
+<head>
+ <meta charset="ISO-8859-1">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />
+
+ <title>Workflow</title>
+
+ <!-- Common items -->
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/b2b/css/b2b-angular/b2b-angular.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/b2b/css/b2b-angular/font_icons.css">
+
+ <!-- icons in open source -->
+ <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 src="app/fusion/external/angular-1.4.8/angular.min.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-messages.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-touch.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-sanitize.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-cookies.min.js"></script>
+
+ <script src="app/fusion/external/b2b/js/b2b-angular/b2b-library.min.js"></script>
+ <script src="app/fusion/external/jquery/dist/jquery.min.js"></script>
+
+ <script src="app/fusion/external/javascript-detect-element-resize/jquery.resize.js"></script>
+ <script src="app/fusion/external/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
+ <script src="app/fusion/external/angular-gridster/dist/angular-gridster.min.js"></script>
+
+ <script src="app/fusion/scripts/DS2-services/ds2-modal/modalService.js"></script>
+ <script src="app/fusion/external/ds2/js/appDS2.js"></script>
+
+ <script src="app/fusion/scripts/DS2-services/userInfoServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/headerServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/leftMenuServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/manifestService.js"></script>
+
+ <script src="app/fusion/scripts/DS2-directives/footer.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/ds2Header.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/ds2LeftMenu.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/b2b-leftnav-ext.js"></script>
+
+ <!-- Page specific items -->
+ <script src="app/fusion/scripts/DS2-services/userInfoServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-controllers/ds2-workflows/workflowRouting.js"></script>
+ <script src="app/fusion/scripts/DS2-controllers/ds2-workflows/workflowController.js"></script>
+ <script src="app/fusion/scripts/DS2-controllers/ds2-workflows/workflowApp.js"></script>
+
+ <!-- <link rel="stylesheet" type="text/css" href="static/fusion/sample/css/scribble.css" />
+ <link rel="stylesheet" type="text/css" href="app/fusion/styles/workflows/workflows.css" >
+ <link rel="stylesheet" type="text/css" href="app/fusion/styles/workflows/bs-workflow.css" >
+ -->
+</head>
+ <body class="appBody" ng-app="abs">
+ <div ds2-Header class="header-container" ></div>
+ <div ds2-menu id="menuContainer" class="menu-container" ></div>
+ <div ng-view id="rightContentProfile" class="content-container"></div>
+ <div ds2-Footer class="footer-container"></div>
+ </body>
+</html>
+
+
+
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-listing.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-listing.html
new file mode 100644
index 00000000..452dcafa
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-listing.html
@@ -0,0 +1,65 @@
+
+<div id="page-content" style=" width: 100%;" >
+ <br/>
+ <div >
+ <h1 class="heading-page">Workflow</h1>
+ <button type="submit" ng-click="createWorkflow('md')" class="btn btn-alt btn-small" >Create Workflow</button>
+ </div>
+ <div>
+ <form>
+ <div class="form-group" align="right">
+ <input type="text" ng-model="search" placeholder = "Search Workflows"/>
+ </div>
+ </form>
+ </div>
+
+
+
+
+<div>
+<table class="striped" table-data="tableData" view-per-page="viewPerPage" current-page="currentPage" search-category="searchCategory" search-string="searchString" total-page="totalPage">
+ <thead >
+ <tr class="info">
+ <th >Id</th>
+ <th>Name</th>
+ <th>Key</th>
+ <th>Description</th>
+ <th>Workflow Server URL</th>
+ <!-- <th>Suspend Link</th> -->
+ <th>View</th>
+ <th>Active</th>
+ <th>Created </th>
+ <th>Created By</th>
+ <th>Action</th>
+ <th>Schedule</th>
+ <th>Edit</th>
+ <th>Delete?</th>
+
+
+ </tr>
+ </thead>
+
+
+ <tbody type="body" ng-repeat="workflow in workflows | filter: search">
+ <tr>
+ <td>{{workflow.id}}</td>
+ <td>{{workflow.name}}</td>
+ <td>{{workflow.workflowKey}}</td>
+ <td>{{workflow.description}}</td>
+ <td>{{workflow.runLink}}</td>
+ <td><div ng-click="previewWorkflow(workflow,'lg');" style="font-size:20px;"><a href="javascript:void(0)" class=" icon-people-preview"></a></div></td>
+ <!-- <td>{{workflow.suspendLink}}</td> -->
+ <td >{{workflow.active}}</td>
+ <td>{{workflow.created}}</td>
+ <td>{{workflow.createdBy}}</td>
+ <td><div ng-show="workflow.active ==='false'" ng-click="activateWorkflow(workflow)" style="font-size:20px;"><a href="javascript:void(0)" class="icon-controls-playalt"></a></div>
+ <div ng-show="workflow.active ==='true'" ng-click="suspendWorkflow(workflow)" style="font-size:20px;"><a href="javascript:void(0)" class="icon-controls-pauseL"></a></div></td>
+ <td><div ng-click="scheduleWorkflow(workflow);" style="font-size:20px;"><a href="javascript:void(0)" class="icon-misc-time"></a></div></td>
+ <td><div ng-click="updateWorkflow(workflow);" style="font-size:20px;"><a href="javascript:void(0)" class="icon-misc-pen"></a></div></td>
+ <td><div ng-click="removeWorkflow(workflow);" style="font-size:20px;"><a href="javascript:void(0)" class="icon-misc-trash"></a></div></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+ </div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-new.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-new.html
new file mode 100644
index 00000000..9daebd07
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-new.html
@@ -0,0 +1,110 @@
+<div>
+ <div class="b2b-modal-header ng-scope in">
+ <h2 id="myModalLabel" modal-title="">Create Workflows</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in">
+ <form name="workflowForm" class="css-form" novalidate>
+ <div class="form-row input-emphasized-field">
+ <label for="textinputID1">Name *: </label>
+
+ <div class="field-group">
+ <input type="text" id="textinputID-2a" ddh-reset ng-model="workflow.name" class="span12 input-emphasized"
+ name="workflowName" required="required" placeholder="Workflow Name" />
+
+ <div ng-show="workflowForm.$submitted || workflowForm.workflowName.$touched">
+ <span ng-show="workflowForm.workflowName.$error.required">Workflow Name is required !!!</span>
+ </div>
+
+ </div>
+ </div>
+
+
+ <div class="form-row input-emphasized-field">
+ <label for="textinputID1">Key*: </label>
+ <div class="field-group">
+ <input type="text" id="textinputID-2a" ddh-reset ng-model="workflow.workflowKey" class="span12 input-emphasized"
+ name="workflowKey" required="required" placeholder="Workflow Key" />
+
+ <div ng-show="workflowForm.$submitted || workflowForm.workflowKey.$touched">
+ <span ng-show="workflowForm.workflowKey.$error.required">Workflow Key is required !!!</span>
+ </div>
+
+ </div>
+ </div>
+
+
+ <div class="form-row input-emphasized-field">
+ <label for="textinputID1">Description: </label>
+
+ <div class="field-group">
+ <input type="text" ng-model="workflow.description" id = "textinputID-2a" ddh-reset name="workflowDescription" class="span12 input-emphasized" placeholder="Brief Description"/>
+ </div>
+ </div>
+
+ <div class="form-row input-emphasized-field">
+ <label for="textinputID1">Workflow Server URL*</label>
+ <div class="field-group">
+ <input type = "url" ng-model = "workflow.runLink" id = "workflowRunLink" ddh-reset name = "workflowRunLink" required = "required" class="span12 input-emphasized"/>
+ </div>
+
+ <div ng-show="workflowForm.$submitted || workflowForm.workflowRunLink.$touched">
+ <span ng-show="workflowForm.workflowRunLink.$error.required">Run Link is required !!!</span>
+ <span class="error" ng-show="workflowForm.workflowRunLink.$error.url">Not valid url!</span>
+ </div>
+
+ </div>
+
+ <!-- <div class="control-group">
+ <label class="fn-ebz-text large" for="workflowSuspendLink">Suspend Link*</label>
+ <div class="controls">
+ <input type = "url" ng-model = "workflow.suspendLink" id = "workflowSuspendLink" name = "workflowSuspendLink" required = "required" class="fn-ebz-text extra-large"/>
+ </div>
+
+ <div ng-show="workflowForm.$submitted || workflowForm.workflowSuspendLink.$touched">
+ <span ng-show="workflowForm.workflowSuspendLink.$error.required">Suspend Link is required !!!</span>
+ <span class="error" ng-show="workflowForm.workflowSuspendLink.$error.url">Not valid url!</span>
+ </div>
+ </div> -->
+
+ <div class="form-row" role="radio">
+ <fieldset role="radiogroup" radio-group-accessibility aria-labelledby="radiolabel1">
+ <label for="optionsRadios1111" class="radio">
+ <!-- <input type = "text" ng-model = "workflow.active" id="workflowActive" name="workflowActive" class="fn-ebz-text extra-large"/> -->
+ <input type="radio" ng-model="workflow.active" id="optionsRadios1111" name="optionsRadio11" value="true" required="">
+ <i class="skin"></i>
+ <span>Active</span>
+ </label>
+ </div>
+ <div class="form-row" role="radio">
+ <label for="optionsRadios2222" class="radio">
+ <input type="radio" ng-model ="workflow.active" id="optionsRadios2222" name="optionsRadio11" value="false">
+ <i class="skin"></i>
+ <span>Inactive</span>
+ </label>
+ <!-- </div>
+ <input type="radio" ng-model="workflow.active" value="true">Active
+ <input type="radio" ng-model="workflow.active" value="false">Inactive
+
+
+ </div> -->
+ </div>
+ </fieldset>
+ </div>
+
+
+
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-small"" type="button" ng-click="ok()">OK</button>
+ <button class="btn btn-medium" type="button"
+ ng-click="cancel()">Cancel</button>
+ </div>
+ </div>
+ </form>
+ <br />
+ </div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-preview.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-preview.html
new file mode 100644
index 00000000..0fb1ffa2
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-preview.html
@@ -0,0 +1,24 @@
+<div>
+ <div class="b2b-modal-header ng-scope in">
+ <h2 id="myModalLabel" modal-title="">View Workflow</h3>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in" >
+ <form name="workflowForm" class="css-form" novalidate>
+
+ <div style="overflow:scroll">
+ <img ng-src="{{workflowToPreview.runLink}}/engine-rest/process-definition/key/{{workflowToPreview.workflowKey}}/diagram">
+ </div>
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button class="btn btn-medium" type="button"
+ ng-click="cancel()">Cancel</button>
+ </div>
+ </div>
+ </form>
+ <br />
+ </div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-remove.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-remove.html
new file mode 100644
index 00000000..a355c07e
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-remove.html
@@ -0,0 +1,26 @@
+<div style=" height: 276px;">
+ <div class="b2b-modal-header ng-scope in">
+ <h2 id="myModalLabel" modal-title="">Remove Workflow</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in" style="margin-bottom: -50px;">
+ <form name="workflowForm" class="css-form" novalidate>
+
+ <div class="form-row input-emphasized-field">
+ <label class="span12 input-emphasized" for="textinputID-2a">Workflow "{{workflowToRemove.name}}" is going to be removed. Do you want to continue</label>
+ </div>
+
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-small" type="button" ng-click="ok()">OK</button>
+ <button class="btn btn-medium" type="button"
+ ng-click="cancel()">Cancel</button>
+ </div>
+ </div>
+ </form>
+ <br />
+ </div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-schedule.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-schedule.html
new file mode 100644
index 00000000..b939a598
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/DS2-workflows-page/workflow-schedule.html
@@ -0,0 +1,130 @@
+<div>
+ <div class="b2b-modal-header ng-scope in">
+ <h2 id="myModalLabel" modal-title="">Workflow: {{workflowToSchedule.name}}</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+
+ </div>
+ <table style="width:60%; margin-bottom: -21px">
+ <tr><td>Workflow Key:</td> <td>{{workflowToSchedule.workflowKey}}</td></tr>
+ <tr><td>Workflow Description:</td> <td>{{workflowToSchedule.description}}</td></tr>
+ </table>
+
+
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in" style="padding:0px;">
+ <form name="workflowForm" class="css-form" novalidate>
+
+ <table>
+ <tr>
+ <form name="myForm">
+ <td>
+ <label for="singleSelect"> Recurrence: </label>
+ </td>
+ <td style="padding-top: 0px;padding-bottom: 0px;">
+ <div class="span12">
+ <div class="form-row">
+ <select name="dropdown1" b2b-dropdown ng-model="selectRecurrenceOpt">
+ <option b2b-dropdown-list option-repeat="d in recurrenceOptions" value="{{d.value}}" init-value="{{selectRecurrenceOpt.title}}">{{d.title}}</option>
+ </select>
+ </div>
+ </div>
+
+ <br>
+ </td>
+ <td> </td>
+ </form>
+ </tr>
+<tr>
+<td>
+
+</td>
+<td>
+Pick a date:
+</td>
+<td>
+Hour:
+</td>
+<td>
+Minute:
+</td>
+</tr>
+ <tr>
+ <td>
+ <form name="FirstScheduleForm">
+ <label for="dateSelect"> First Schedule: </label>
+ </form>
+ </td>
+ <td >
+ <!--DATEPICKER POPUP-->
+ <input class="span12" id="datepicker1" type="text" style="overflow-y:scroll;" ng-model="dt" b2b-datepicker >
+ </td>
+ <td>
+ <div class="span12">
+ <div class="form-row">
+ <select name="dropdown1" b2b-dropdown ng-model="selectFirstHour">
+ <option b2b-dropdown-list option-repeat="d in hours" value="{{d.value}}" init-value="{{selectFirstHour.title}}" placeholder="Select an Option">{{d.title}}</option>
+ </select>
+ </div>
+ </div>
+ </td>
+ <td>
+ <div class="span12">
+ <div class="form-row">
+ <select name="dropdown1" b2b-dropdown ng-model="selectFirstMinute">
+ <option b2b-dropdown-list option-repeat="d in minutes" value="{{d.value}}" init-value="{{selectFirstMinute.title}}" placeholder="Select an Option">{{d.title}}</option>
+ </select>
+ </div>
+ </div>
+ </td>
+</tr>
+<tr >
+ <td>
+ <form name="LastScheduleForm">
+ <label for="dateSelect"> Last Schedule: </label>
+ </form>
+ </td>
+ <td>
+ <div >
+ <input class="span12" id="datepicker2" type="text" ng-model="dt2" b2b-datepicker>
+ </div>
+ </td>
+ <td>
+ <div class="span12">
+ <div class="form-row">
+ <select name="dropdown1" b2b-dropdown ng-model="selectLastHour">
+ <option b2b-dropdown-list option-repeat="d in hours" value="{{d.value}}" init-value="{{selectLastHour.title}}" placeholder="Select an Option">{{d.title}}</option>
+ </select>
+ </div>
+ </div>
+ </td>
+ <td>
+ <div class="span12">
+ <div class="form-row">
+ <select name="dropdown1" b2b-dropdown ng-model="selectLastMinute">
+ <option b2b-dropdown-list option-repeat="d in minutes" value="{{d.value}}" init-value="{{selectLastMinute.title}}" placeholder="Select an Option">{{d.title}}</option>
+ </select>
+ </div>
+ </div>
+ </td>
+ :
+
+ </tr>
+<tr>
+
+</tr>
+
+</table>
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-small" type="button" ng-click="ok()">OK</button>
+ <button class="btn btn-medium" type="button"
+ ng-click="cancel()">Cancel</button>
+ </div>
+ </div>
+
+ </form>
+ <br />
+ </div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/b2b-leftnav-ext.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/b2b-leftnav-ext.html
new file mode 100644
index 00000000..fad0e041
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/b2b-leftnav-ext.html
@@ -0,0 +1,43 @@
+<div class="b2b-nav-menu" id="left-menu-main-div" ng-class="leftMenuClass">
+ <div class="b2b-subnav-container" id="left-menu-subnav-container">
+ <ul class="b2b-subnav-content" id="left-menu-subnav-content">
+ <li id="b2b-subnav-content-li">
+ <div ng-class="leftMenuArrowClass" id="left-menu-arrow-toggle-div">
+ <a ng-click="toggleDrawer(showmenu);" class="text-right" id="left-menu-arrow-toggle-anchor">
+ <i ng-class="{true: 'icon-controls-left', false: 'icon-controls-right'}[showmenu]" id="left-menuf-arrow-toggle-icon">&nbsp;</i>
+ </a>
+ </div>
+ </li>
+ <li ng-repeat="menu in menuData" ng-click="toggleNav($index,menu.href,showmenu)" id="left-menu-li-{{menu.name.split(' ').join('-')}}">
+ <span ng-class="{true: 'menu-icon', false: 'menu-icon-collapse'}[showmenu]" id="left-menu-span-{{menu.name.split(' ').join('-')}}">
+ <span class="{{menu.imageSrc}}" id="icon-image-{{menu.name.split(' ').join('-')}}"></span>&nbsp;&nbsp;
+ </span>
+ <a ng-class="{expand: isOpen($index)}"
+ id="parent-item-{{menu.name.split(' ').join('-')}}"
+ ng-if="showmenu"
+ aria-label="{{menu.name}}" title="{{menu.name}}"
+ aria-expanded="{{(idx==$index)?true:false;}}"
+ href="javascript:void(0);">
+ {{menu.name}}
+ <i aria-hidden="true"
+ ng-if="(menu.menuItems.length > 0)"
+ class="b2b-icon-primary-plus-minus"
+ ng-class="idx==$index ? 'icon-primary-expanded' : 'icon-primary-collapsed'"></i>
+ </a>
+ <div role="region" aria-hidden="{{(isOpen($index))?false:true;}}" id="left-menu-child-div-{{menu.name.split(' ').join('-')}}">
+ <ul ng-class="{expand: idx==$index}" id="left-menu-child-ul-{{menu.name.split(' ').join('-')}}">
+ <li ng-repeat="menuItem in menu.menuItems"
+ ng-click="liveLink($event, $index, $parent.$index)"
+ id="left-menu-child-li-{{menuItem.name.split(' ').join('-')}}-{{menu.name.split(' ').join('-')}}">
+ <a aria-hidden="{{!(idx==$parent.$index)}}"
+ aria-label="{{menuItem.name}}" title="{{menuItem.name}}"
+ id="child-item-{{menuItem.name.split(' ').join('-')}}"
+ href="{{menuItem.href}}" tabindex="{{(idx==$parent.$index)?0:-1;}}"
+ ng-class="{active: itemIdx==$index && navIdx==$parent.$index}">{{menuItem.name}}</a>
+ </li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/admin-menu-edit.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/admin-menu-edit.html
new file mode 100644
index 00000000..69fd324b
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/admin-menu-edit.html
@@ -0,0 +1,102 @@
+<div id="page-content">
+ <div>
+ <h1 class="heading-page" id="AdminMenuItems">Admin Menu Items</h1>
+ </div>
+ <div>
+ <button type="submit" ng-click="addNewFnMenuItemModalPopup();" class="btn btn-alt btn-small">Add Menu Item</button>
+ </div>
+
+ <h3 class="heading-small">
+ Existing menu items
+ </h3>
+
+ <div ng-show="showLoader" class="span loader-container">
+ <i class="icon-primary-spinner" role="img" aria-label="Please wait while we load your content"></i>
+ </div>
+
+ <div ng-hide="showLoader">
+ <table>
+ <thead>
+ <tr>
+ <th sortable="true" key="id" default-sort="a">Menu ID</th>
+ <th sortable="true" key="label">Label</th>
+ <th sortable="true" key="ParentId">ParentId</th>
+ <th sortable="true" key="sortOrder">Sort Order</th>
+ <th sortable="true" key="action">Action</th>
+ <th sortable="true" key="functionCd">Function</th>
+ <th sortable="true" key="active">Active</th>
+ <th sortable="true" key="servlet">Servlet</th>
+ <th sortable="true" key="queryString">Query String</th>
+ <th sortable="true" key="externalUrl">External URL</th>
+ <th sortable="true" key="target">Target</th>
+ <th sortable="true" key="menuSetCode">Menu Set Code</th>
+ <th sortable="true" key="separator">Separator</th>
+ <th sortable="true" key="imageSrc">Image Source</th>
+ <th sortable="false" key="edit">Edit</th>
+ <th sortable="false" key="delete">Delete</th>
+ </tr>
+ </thead>
+ <tbody ng-repeat="fnMenuItem in tableFnMenuItems" >
+ <tr>
+ <td ng-bind="fnMenuItem.id"></td>
+ <td ng-bind="fnMenuItem.label"></td>
+ <td style="word-break: break-all;" ng-bind="fnMenuItem.parentId"></td>
+ <td style="word-break: break-all;" ng-bind="fnMenuItem.sortOrder"></td>
+ <td ng-bind="fnMenuItem.action"></td>
+ <td ng-bind="fnMenuItem.functionCd"></td>
+ <td style="word-break: break-all;" ng-bind="fnMenuItem.active ? 'Y' : 'N'"></td>
+ <td style="word-break: break-all;" ng-bind="fnMenuItem.servlet"></td>
+ <td style="word-break: break-all;" ng-bind="fnMenuItem.queryString"></td>
+ <td style="word-break: break-all;" ng-bind="fnMenuItem.externalUrl"></td>
+ <td style="word-break: break-all;" ng-bind="fnMenuItem.target"></td>
+ <td style="word-break: break-all;" ng-bind="fnMenuItem.menuSetCode"></td>
+ <td style="word-break: break-all;" ng-bind="fnMenuItem.separator ? 'Y' : 'N'"></td>
+ <td style="word-break: break-all;" ng-bind="fnMenuItem.imageSrc"></td>
+ <td >
+ <div ng-click="editMenuItemModalPopup(fnMenuItem);"
+ style="font-size: 20px;"><a href="javascript:void(0)" class="icon-misc-pen"></a>
+ </div>
+ </td>
+ <td>
+ <div ng-click="removeMenuItem(fnMenuItem);"><a href="javascript:void(0)" class="icon-misc-trash"></a>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="well" style="padding-bottom: 35px;">
+ <div class="row ddh-page short">
+ <div b2b-pagination="" total-pages="totalPages1"
+ current-page="currentPage1" click-handler="customHandler1"
+ role="navigation" aria-label="Customer Data Pages"></div>
+ </div>
+
+ <!-- <div class="row span10 offset1">
+ <div class="span6">
+ <div class="form-row">
+ <label for="totalPages1">Total Pages:</label>
+ <div class="field-group">
+ <input id="totalPages1" type="number" class="span12"
+ only-digits="" name="totalPages1" ng-model="totalPages1"
+ title="Total Pages {{totalPages1}}"style="pointer-events: none;">
+ </div>
+ </div>
+ </div>
+ <div class="span6 font-clearview">
+ <div class="form-row">
+ <label for="currentPage1">Current Page:</label>
+ <div class="field-group">
+ <input id="currentPage1" type="number" class="span12"
+ only-digits="" name="currentPage1" ng-model="currentPage1"
+ title="Current Page {{currentPage1}}">
+ </div>
+ </div>
+ </div>
+ </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/DS2-view-models/ds2-admin/admin.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/admin.html
new file mode 100644
index 00000000..8b352652
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/admin.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<!-- Single-page application for EPSDK-App admin pages using DS2 look and feel -->
+<html>
+<head>
+ <meta charset="ISO-8859-1">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />
+
+ <title>Admin</title>
+
+ <!-- B2b Library -->
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/b2b/css/b2b-angular/b2b-angular.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/b2b/css/b2b-angular/font_icons.css">
+
+ <!-- icons in open source -->
+ <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">
+
+ <!-- Common scripts -->
+ <script src="app/fusion/external/angular-1.4.8/angular.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-messages.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-touch.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-sanitize.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-cookies.min.js"></script>
+ <script src="app/fusion/external/jquery/dist/jquery.min.js"></script>
+
+ <script src="app/fusion/external/javascript-detect-element-resize/jquery.resize.js"></script>
+ <script src="app/fusion/external/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
+ <script src="app/fusion/external/angular-gridster/dist/angular-gridster.min.js"></script>
+
+ <!-- B2b Library -->
+ <script src="app/fusion/external/b2b/js/b2b-angular/b2b-library.min.js"></script>
+
+ <script src="app/fusion/scripts/DS2-services/ds2-modal/modalService.js"></script>
+ <script src="app/fusion/external/ds2/js/appDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/userInfoServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/headerServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/leftMenuServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/manifestService.js"></script>
+
+ <script src="app/fusion/scripts/DS2-directives/footer.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/ds2Header.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/ds2LeftMenu.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/b2b-leftnav-ext.js"></script>
+ <!-- Page-specific items -->
+ <script src="app/fusion/scripts/DS2-controllers/admin-controller.js"></script>
+ <script src="app/fusion/scripts/DS2-controllers/admin-route.js"></script>
+ <script src="app/fusion/scripts/DS2-controllers/admin-menu-edit.js"></script>
+ <script src="app/fusion/scripts/DS2-services/adminService.js"></script>
+ <script src="app/fusion/scripts/DS2-services/adminMenuService.js"></script>
+ <script src="app/fusion/scripts/DS2-services/userInfoServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-controllers/usage-list-controller.js"></script>
+ <script src="app/fusion/scripts/DS2-controllers/fn-menu-add-popup-controller.js"></script>
+ <script src="app/fusion/scripts/DS2-controllers/collaborate-list-controller.js"></script>
+ <script src="app/fusion/scripts/DS2-controllers/admin-closed-cloop.js"></script>
+ <script src="app/fusion/scripts/DS2-controllers/admin-whitelist.js"></script>
+
+</head>
+ <body class="appBody" ng-app="abs">
+ <div ds2-Header class="header-container" ></div>
+ <div ds2-menu id="menuContainer" class="menu-container" ></div>
+ <div ng-view id="rightContentProfile" class="content-container"></div>
+ <div ds2-Footer class="footer-container"></div>
+ </body>
+</html>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/admin_closed_loop.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/admin_closed_loop.html
new file mode 100644
index 00000000..4f65e7b3
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/admin_closed_loop.html
@@ -0,0 +1,17 @@
+<div style=" margin-right:50px;" id="fnMenueContent">
+ <div id="page-content" class="pageTitle" align="left">
+
+ <h1 class="heading1" style="margin-top:20px;">Closed Loop</h1>
+ <br/>
+ <br>
+ </div>
+ <div id="page-content" style="margin-right: 20px;text-align: justify;text-align-last:auto;">
+ Cloop Server
+ </div>
+ <br>
+ <div id="hiddenCamundaDiv" style="width:500px;"></div>
+ <br>
+ <iframe id="camundaFrame" style=" margin-left: 250px;"
+ ng-src="{{camunda_cockpit_url}}"
+ width="100%" height="500"></iframe>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/collaborate-list.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/collaborate-list.html
new file mode 100644
index 00000000..05c316c8
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/collaborate-list.html
@@ -0,0 +1,76 @@
+
+<div id="page-content">
+ <div>
+ <div align="right">
+ <a href="JavaScript:void(0);" style= "color:#00547A" onClick="downloadScreenCaptureExtenstion()" id="install-button" >
+ Please download the extension for ScreenCapture and refresh page</a>
+ </div>
+ <div>
+ <h1 class="heading-page">User List</h1>
+ </div>
+ <div ng-show="showLoader" class="span loader-container">
+ <i class="icon-primary-spinner" role="img" aria-label="Please wait while we load your content"></i>
+ </div>
+ <div>
+
+ <table class="striped" table-data="tableCollbItems">
+
+ <thead>
+ <tr>
+ <th key="id">User ID</th>
+ <th key="lastName">Last Name</th>
+ <th key="firstName">First Name</th>
+ <th key="email">Email</th>
+ <th key="orgUserId">Organization User ID</th>
+ <th key="online">Online/Offline</th>
+ </tr>
+
+ </thead>
+ <tbody type="body" ng-repeat="rowData in tableCollbItems">
+ <tr>
+ <td ng-bind="rowData['id']">{{rowData.id}}</td>
+ <td ng-bind="rowData['lastName']">{{rowData.lastName}}</td>
+ <td ng-bind="rowData['firstName']">{{rowData.firstName}}</td>
+ <td ng-bind="rowData['email']">{{rowData.email}}</td>
+ <td ng-bind="rowData['orgUserId']">{{rowData.loginId}}</td>
+ <td>
+ <div ng-hide="rowData.online" ng-click="rowData.isActive=true;openCollaboration(rowData.chatId)"><span class="icon-misc-lightsoff" ></span>Offline</div>
+ <div ng-show="rowData.online"ng-click="rowData.isActive=false;openCollaboration(rowData.chatId)"><span class="icon-misc-bulb" ></span>Online</div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <div class="well" style="padding-bottom: 35px;">
+ <div class="row">
+ <div b2b-pagination="" total-pages="totalPages1"
+ current-page="currentPage1" click-handler="customHandler1"
+ role="navigation" aria-label="Customer Data Pages"></div>
+ </div>
+
+ <!-- <div class="row span10 offset1">
+ <div class="span6">
+ <div class="form-row">
+ <label for="totalPages1">Total Pages:</label>
+ <div class="field-group">
+ <input id="totalPages1" type="number" class="span12"
+ only-digits="" name="totalPages1" ng-model="totalPages1"
+ title="Total Pages {{totalPages1}}"style="pointer-events: none;">
+ </div>
+ </div>
+ </div>
+ <div class="span6 font-clearview">
+ <div class="form-row">
+ <label for="currentPage1">Current Page:</label>
+ <div class="field-group">
+ <input id="currentPage1" type="number" class="span12"
+ only-digits="" name="currentPage1" ng-model="currentPage1"
+ title="Current Page {{currentPage1}}">
+ </div>
+ </div>
+ </div>
+ </div> -->
+ </div>
+ </div>
+<div id="peerBroadcastSection"></div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/collaboration.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/collaboration.html
new file mode 100644
index 00000000..cca54a6b
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/collaboration.html
@@ -0,0 +1,182 @@
+
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/b2b/css/b2b-angular/b2b-angular.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/b2b/css/b2b-angular/font_icons.css">
+
+ <link rel="stylesheet" type="text/css" href="app/fusion/styles/ecomp.css">
+
+ <style type="text/css">
+ /*
+ * NOTE: All CSS is purely cosmetic - it does not affect functionality
+ * http://layout.jquery-dev.com/demos.cfm
+ */
+
+ /* customize borders to avoid double-borders around inner-layouts */
+ .ui-layout-pane {
+ border: 0; /* override layout-default-latest.css */
+ border-top: 1px solid #BBB;
+ border-bottom: 1px solid #BBB;
+ }
+ .ui-layout-pane-north ,
+ .ui-layout-pane-south {
+ border: 1px solid #BBB;
+ overflow: auto;
+ }
+ .ui-layout-pane-west ,
+ .ui-layout-pane-east {
+ }
+ .ui-layout-pane-center {
+ border-left: 0;
+ border-right: 0;
+ }
+ .inner-center {
+ border: 1px solid #BBB;
+ }
+
+ /* add shading to outer sidebar-panes */
+ .outer-west ,
+ .outer-east {
+ background-color: #EEE;
+ }
+ .middle-west ,
+ .middle-east {
+ background-color: #F8F8F8;
+ }
+
+ /* remove padding & scrolling from panes that are 'containers' for nested layouts */
+ .outer-center ,
+ .middle-center {
+ border: 0; /* cosmetic */
+ padding: 0;
+ overflow: auto;
+ }
+
+ /*
+ * customize borders on panes/resizers to make pretty
+ */
+ .ui-layout-pane-west { border-right: 0; }
+ .ui-layout-resizer-west { border-left: 1px solid #BBB; }
+ .ui-layout-pane-east { border-left: 0; }
+ .ui-layout-resizer-east { border-right: 1px solid #BBB; }
+ .ui-layout-pane-north { border-bottom: 0; }
+ .ui-layout-resizer-north { border-top: 1px solid #BBB; }
+ .ui-layout-pane-south { border-top: 0; }
+ .ui-layout-resizer-south { border-bottom: 1px solid #BBB; }
+ /*
+ * add borders to resizers when pane is 'closed'
+ *
+ *.ui-layout-resizer-closed { border: 1px solid #BBB; }
+ */
+ /*
+ * show both borders when the resizer is 'dragging'
+ */
+ .ui-layout-resizer-west-dragging ,
+ .ui-layout-resizer-east-dragging {
+ border-left: 1px solid #BBB;
+ border-right: 1px solid #BBB;
+ }
+ .ui-layout-resizer-north-dragging ,
+ .ui-layout-resizer-south-dragging {
+ border-top: 1px solid #BBB;
+ border-bottom: 1px solid #BBB;
+ }
+
+
+ /*
+ layout toggler background image
+ */
+ .ui-layout-toggler-west, .ui-layout-toggler-east {
+ border-width: 1px 0;
+ background-image: url("static/fusion/images/layout/panel-e-w-toggle.png");
+ background-size: 10px 10px;
+ background-repeat: no-repeat;
+ background-position: center;
+ }
+
+ .ui-layout-toggler-north, .ui-layout-toggler-south {
+ border-width: 0 1px;
+ background-image: url("static/fusion/images/layout/panel-n-s-toggle.png");
+ background-size: 10px 10px;
+ background-repeat: no-repeat;
+ background-position: center;
+ }
+
+ body{background-color:#fff;font-size:14px;font-size:.875rem;margin:0;padding:0px 0 20px;position:relative}
+
+ </style>
+<!-- LAYOUT v 1.3.0 -->
+ <script type="text/javascript" src="app/fusion/scripts/layout/jquery-latest.js"></script>
+ <script type="text/javascript" src="app/fusion/scripts/layout/jquery-ui-latest.js"></script>
+ <script type="text/javascript" src="app/fusion/scripts/layout/jquery.layout-latest.js"></script>
+ <script type="text/javascript" src="app/fusion/scripts/webrtc/RTCMultiConnection.js"></script>
+ <script type="text/javascript" src="app/fusion/scripts/socket/peerBroadcast.js"></script>
+ <script type="text/javascript" src="app/fusion/scripts/layout/debug.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-messages.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-touch.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-sanitize.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-cookies.min.js"></script>
+ <script src="app/fusion/external/ds2/js/appDS2.js"></script>
+
+
+ <script src="app/fusion/scripts/DS2-services/ds2-modal/modalService.js"></script>
+
+
+ <script type="text/javascript" src= "app/fusion/scripts/DS2-controllers/collaboration-controller.js"></script>
+
+<div class="outer-center" style="position: absolute; left: 12px; right: 0px; top: 0px;bottom: 0px;">
+ <div class="inner-center">
+
+ <!-- <jsp:include page="/WEB-INF/fusion/zul/chatOne.zul" /> -->
+
+
+
+ <table style="width: 100%;">
+ <tbody><tr>
+ <td>
+ <button type="button" id="share-screen" class="btn btn-alt btn-small setup">Start Session</button>
+ <button id="stop-share-screen" class="btn btn-alt btn-small setup">Stop Session</button>
+ <button id="view-screen" class="btn btn-alt btn-small setup">View</button>
+
+ </td>
+
+ </tr>
+ </tbody>
+
+ <tbody><tr>
+ <td>
+ <input type="text" id="chat-input" style="font-size: 1.2em;visibility:collapse;" placeholder="type here.."/>
+ <div id="chat-output"></div>
+ </td>
+ <!--
+ <td style="background: white;">
+ <input type="file" id="file">
+ <div id="file-progress"></div>
+ </td>
+ -->
+ </tr>
+ </tbody>
+ </table>
+
+
+ </div>
+ <div id="inner-south" class="ui-layout-south">
+ <div class="videoContainer1"></div>
+ <div class="videoContainer2"></div>
+
+ </div>
+</div>
+
+<div class="outer-west">
+ <div class="screenContainer1"></div>
+ <div class="screenContainer2"></div>
+ <div ng-controller="collaborationControllerDS2">
+ </div>
+</div>
+
+
+
+
+
+
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/jcs_admin.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/jcs_admin.html
new file mode 100644
index 00000000..fd8a5302
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/jcs_admin.html
@@ -0,0 +1,73 @@
+<div id="page-content" style=" width: 100%">
+
+ <div>
+ <h1 class="heading-page" id="CacheRegions">Cache Regions</h1>
+ </div>
+
+ <div style="margin-right:20px; text-align:justify; text-align-last:auto;">
+ <p>
+ These are the regions which are currently defined in the cache. 'Items' and 'Bytes' refer to the elements currently in memory (not spooled).
+ You can clear all items for a region by clicking on the Clear icon next to the desired region below. You can also <a href="admin#/jcs_admin" ng-click="clearAllFuncPopUp();">clear all regions</a>
+ which empties the entire cache.</p>
+ </div>
+
+ <!-- This implements an accordion table in place -->
+ <div style="border-top: 1px solid #c4c4c4; margin-top: 0px; margin-bottom:30px; margin-right: 20px; background-color: #fff; padding: 10px 0; color: #646464s">
+ <div class="row" style="margin: 0 20px 10px 0px; float: left; width: 97%;">
+ <div class="col-md-4" style=" width: 16.6666666667%;"><b>Cache Name</b></div>
+ <div class="col-md-2" style=" width: 8.3333333333%;"><b># of Items</b></div>
+ <div class="col-md-2" style=" width: 8.3333333333%;"><b>Bytes</b></div>
+ <div class="col-md-2" style=" width: 8.3333333333%;"><b>Status</b></div>
+ <div class="col-md-3" style=" width: 12.5%;"><b>Memory Hits</b></div>
+ <div class="col-md-3" style=" width: 12.5%;"><b>Aux Hits</b></div>
+ <div class="col-md-3" style=" width: 12.5%;"><b>Not Found Misses</b></div>
+ <div class="col-md-3" style=" width:12.5%;"><b>Expired Misses</b></div>
+ <div class="col-md-1" style=" width: 4.1666666667%;"><b>Clear?</b></div>
+ <div class="col-md-1" style=" width: 4.1666666667%;"><b>Items</b></div>
+ </div>
+
+ <div ng-repeat="region in regions">
+ <div class="row" style="margin: 0 20px 10px 0px; float: left; width: 97%;">
+ <div class="col-md-4" style=" width: 16.6666666667%;">
+ <a b2b-tooltip="Click to Show Region Details" ng-click="showRegionDetails(region.cacheName);" href="admin#/jcs_admin">{{region.cacheName}}</a></div>
+ <div class="col-md-2" style=" width: 8.3333333333%;">{{region.size}}</div>
+ <div class="col-md-2" style=" width: 8.3333333333%;">{{region.byteCount}}</div>
+ <div class="col-md-2" style=" width: 8.3333333333%;">{{region.status}}</div>
+ <div class="col-md-3" style=" width: 12.5%;">{{region.hitCountRam}}</div>
+ <div class="col-md-3" style=" width: 12.5%;">{{region.hitCountAux}}</div>
+ <div class="col-md-3" style=" width: 12.5%;">{{region.missCountNotFound}}</div>
+ <div class="col-md-3" style=" width: 12.5%;">{{region.missCountExpired}}</div>
+ <div class="col-md-1" style=" width: 4.1666666667%;">
+ <div ng-click="clearRegionFuncPopUp(region.cacheName);" style="font-size:20px;">
+ <a href="javascript:void(0)" class="icon-misc-trash"></a></div>
+ </div>
+ <div class="col-md-1"><i class="icon-primary-accordion-plus" ng-class="{true: 'icon-primary-accordion-plus', false: 'icon-primary-accordion-minus'}[ !bling$index]" ng-click="bling$index = !bling$index" style="display: block;"></i></div>
+ </div>
+ <div class="row" style="margin: 0px 20px 0px 30px; float: left; width: 95%; border-top: 1px solid #e4e4e4; padding-top: 10px"
+ ng-show="bling$index">
+ <span style="height: 20px; width: 20px; display: inline-block; float: left"></span>
+ <div class="col-md-12" style=" width: 50%;"><b>Key</b></div>
+ <div class="col-md-2" style=" width: 8.3333333333%"><b>Eternal?</b></div>
+ <div class="col-md-4" style=" width: 16.6666666667%;"><b>Created</b></div>
+ <div class="col-md-2" style=" width: 8.3333333333%;"><b>Max Life</b></div>
+ <div class="col-md-2" style=" width: 8.3333333333%;"><b>Expires</b></div>
+ <div class="col-md-1" style=" width: 4.1666666667%;"><b>Clear?</b></div>
+ </div>
+ <div ng-repeat="item in region.items">
+ <div class="row" style="margin: 0px 20px 0px 30px; float: left; width: 95%;" ng-show="bling$index">
+ <span style="height: 20px; width: 20px; display: inline-block; float: left"></span>
+ <div class="col-md-12" style=" width: 50%;"><a href="#" tooltip="Click to Show Item Details" ng-click="showItemDetails(region.cacheName,item.key);">{{item.key}}</a></div>
+ <div class="col-md-2" style=" width: 8.3333333333%;">{{item.eternal}}</div>
+ <div class="col-md-4" style=" width: 16.6666666667%;">{{item.createTime}}</div>
+ <div class="col-md-2" style=" width: 8.3333333333%;">{{item.maxLifeSeconds}}</div>
+ <div class="col-md-2" style=" width: 8.3333333333%;">{{item.expiresInSeconds}}</div>
+ <div class="col-md-1" style=" width: 4.1666666667%;">
+ <div ng-click="clearItemFuncPopUp(region.cacheName,item.key);" style="font-size:20px;"><a href="javascript:void(0)" class="icon-misc-trash"></a></div>
+ </div>
+ </div>
+ </div>
+ <div style="clear: both"></div>
+ </div>
+
+ </div>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/admin-menu-del-confirm.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/admin-menu-del-confirm.html
new file mode 100644
index 00000000..5d6cb16c
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/admin-menu-del-confirm.html
@@ -0,0 +1,22 @@
+<div>
+ <div class="b2b-modal-header ng-scope">
+ <h2 id="myModalLabel" modal-title=""> Menu Item Deletion</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope" tabindex="0"
+ role="region" aria-label="Modal header text content"
+ style="height: 145px;">
+ You are about to delete '{{fnMenuItem.label}}' Menu Item. Please click 'OK' to continue.
+ </div>
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-small" type="button"
+ ng-click="deleteMenuItem(fnMenuItem);">Ok</button>
+ <button class="btn btn-small" type="button"
+ ng-click="$dismiss('cancel')">Cancel</button>
+ </div>
+ </div>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/cache-menu-clear-confirm.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/cache-menu-clear-confirm.html
new file mode 100644
index 00000000..d3eda5e4
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/cache-menu-clear-confirm.html
@@ -0,0 +1,22 @@
+<div>
+ <div class="b2b-modal-header ng-scope">
+ <h2 id="myModalLabel" modal-title="">Clear All Cache Regions</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in" tabindex="0"
+ role="region" aria-label="Modal header text content"
+ style="height: 145px;">
+ You are about to clear all cache regions. Please click 'OK' to continue.
+ </div>
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-small" type="button"
+ ng-click="deleteFun(roleFun);">Ok</button>
+ <button class="btn btn-small" type="button"
+ ng-click="$dismiss('cancel')">Cancel</button>
+ </div>
+ </div>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/cache-menu-clear-region-confirm.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/cache-menu-clear-region-confirm.html
new file mode 100644
index 00000000..5f43e2a0
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/cache-menu-clear-region-confirm.html
@@ -0,0 +1,22 @@
+<div>
+ <div class="b2b-modal-header ng-scope">
+ <h2 id="myModalLabel" modal-title="">Clear Cache Region</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in" tabindex="0"
+ role="region" aria-label="Modal header text content"
+ style="height: 145px;">
+ You are about to clear all of the items in the cache region {{msg.text}}. Please click 'OK' to continue.
+ </div>
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-small" type="button"
+ ng-click="deleteFun(roleFun);">Ok</button>
+ <button class="btn btn-small" type="button"
+ ng-click="$dismiss('cancel')">Cancel</button>
+ </div>
+ </div>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/clearItem-region-confirm.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/clearItem-region-confirm.html
new file mode 100644
index 00000000..004b49d8
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/clearItem-region-confirm.html
@@ -0,0 +1,22 @@
+<div>
+ <div class="b2b-modal-header ng-scope">
+ <h2 id="myModalLabel" modal-title="">Clear Item Cache Region</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope" tabindex="0"
+ role="region" aria-label="Modal header text content"
+ style="height: 145px;">
+ You are about to clear this item from the cache region {{msg.text}}. Please click 'OK' to continue.
+ </div>
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-small" type="button"
+ ng-click="deleteFun(roleFun);">Ok</button>
+ <button class="btn btn-small" type="button"
+ ng-click="$dismiss('cancel')">Cancel</button>
+ </div>
+ </div>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/collaborate-list-toggle-profile-active-status.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/collaborate-list-toggle-profile-active-status.html
new file mode 100644
index 00000000..6a91cb0a
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/collaborate-list-toggle-profile-active-status.html
@@ -0,0 +1,22 @@
+<div>
+ <div class="b2b-modal-header ng-scope">
+ <h2 id="myModalLabel" modal-title="">Change User Status</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope" tabindex="0"
+ role="region" aria-label="Modal header text content"
+ style="height: 145px;">
+ You are about to change user's active status. Please click 'OK' to continue.
+ </div>
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-small" type="button"
+ ng-click="deleteFun(roleFun);">Ok</button>
+ <button class="btn btn-small" type="button"
+ ng-click="$dismiss('cancel')">Cancel</button>
+ </div>
+ </div>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/popup-modal-fn-menu-edit.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/popup-modal-fn-menu-edit.html
new file mode 100644
index 00000000..2ccdf2af
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/popup-modal-fn-menu-edit.html
@@ -0,0 +1,129 @@
+<script type="text/ng-template" id="edit_menu_item_popup.html">
+
+ <div class="modal__informative font-showcase" style="width:1100px;">
+ <div class="modal__header">
+ <h2 class="font-showcase-font-name" style="width: 500px;">{{label}}</h2>
+ </div>
+ <div class="divider-container"><hr> </div>
+
+ <div class="modal__content" >
+ <table>
+ <tr>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b>*</b></sup>Label:</label><br>
+ <input id="popupAddMenuItemLabel" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.label" maxlength="30" />
+ </div>
+ </td>
+ <td>
+ <div class="fn-ebz-container" style = "display:none" >
+ <label class="fn-ebz-text-label"><sup><b>*</b></sup>Parent:</label><br>
+ <input id="popupAddMenuItemParentId" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.parentId" ng-disabled="disableParentId" maxlength="30" />
+ </div>
+ <div class="fn-ebz-container" ng-init="getParentData();">
+ <form name="parentListForm">
+ <label class="fn-ebz-text-label" for="parentSelect"><sup><b>*</b></sup>Parent:</label><br>
+ <select class="form-field" name="parentSelect" id="parentSelect" ng-model="addFnMenuItem.parentId">
+ <option>{{getParentLabel(addFnMenuItem.parentId, parentListSelectData)}}</option>
+ <option ng-repeat="option in parentListSelectData" value="{{option[0]}}" "{{(addFnMenuItem.parentId===option[0]) ? 'selected' : '' }}">{{option[1]}}</option>
+ </select>
+ </form>
+ </div>
+ </td>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b>*</b></sup>Sort Order:</label><br>
+ <input id="popupAddMenuItemSortOrder" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.sortOrder" ng-disabled="disableSortOrder" maxlength="30" />
+ </div>
+ </td>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b>*</b></sup>Action:</label><br>
+ <input id="popupAddMenuItemAction" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.action" ng-disabled="disableAction" maxlength="30" />
+ </div>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <div class="fn-ebz-container" ng-init="getFunctionCDselectData();">
+ <form name="functionCDform">
+ <label class="fn-ebz-text-label" for="repeatSelect"><sup><b>*</b></sup>Function:</label><br>
+ <select class="form-field" name="repeatSelect" id="repeatSelect" ng-model="addFnMenuItem.functionCd">
+ <option>{{addFnMenuItem.functionCd}}</option>
+ <option ng-repeat="option in functionCDselectData" value="{{option}}" >{{option}}</option>
+ </select>
+ </form>
+ </div>
+ </td>
+ <td>
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label"><sup><b>*</b></sup>Active:</label><br>
+ <select class="form-field" name="selectActive" ng-model="addFnMenuItem.active">
+ <option ng-repeat="active in activeStatusOptions" value="{{active.value}}" ng-selected="{{active.value}}=={{addFnMenuItem.active}}" >{{active.title}}</option>
+ </select>
+ </div>
+ </td>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b></b></sup>Servlet:</label><br>
+ <input id="popupAddMenuItemServlet" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.servlet" ng-disabled="disableServlet" maxlength="30" />
+ </div>
+ </td>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b></b></sup>Query String:</label><br>
+ <input id="popupAddMenuItemQueryString" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.queryString" ng-disabled="disableQueryString" maxlength="30" />
+ </div>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b></b></sup>External URL:</label><br>
+ <input id="popupAddMenuItemExternalUrl" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.externalUrl" ng-disabled="disableExternalUrl" maxlength="30" />
+ </div>
+ </td>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b></b></sup>Target:</label><br>
+ <input id="popupAddMenuItemTarget" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.target" ng-disabled="disableTarget" maxlength="30" />
+ </div>
+ </td>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b>*</b></sup>Menu Set Code:</label><br>
+ <input id="popupAddMenuItemMenuSetCode" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.menuSetCode" ng-disabled="disableMenuSetCode" maxlength="30" />
+ </div>
+ </td>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b>*</b></sup>Separator:</label><br>
+ <select class="form-field" name="select" ng-model="addFnMenuItem.separator">
+ <option ng-repeat="separator in separatorStatusOptions" value="{{separator.value}}" ng-selected="{{separator.value}}=={{addFnMenuItem.separator}}" >{{separator.title}}</option>
+ </select>
+ </div>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b></b></sup>Image Source:</label><br>
+ <input id="popupAddMenuItemImageSrc" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.imageSrc" ng-disabled="disableImageSrc" maxlength="30" />
+ </div>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <button class="button button--primary button--small" herf="javascript:void(0)" ng-click="updateFnMenu(addFnMenuItem);">Save</button>
+ <button class="button button--primary button--small" herf="javascript:void(0)" ng-click="close()">Close</button>
+ <!--
+ <div class="modal__footer">
+ </div>
+ -->
+ </div>
+</script>
+
+
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/popup-modal-fnmenu-add.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/popup-modal-fnmenu-add.html
new file mode 100644
index 00000000..167defb7
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/popup-modal-fnmenu-add.html
@@ -0,0 +1,136 @@
+<div>
+ <div class="b2b-modal-header ng-scope">
+ <h2 id="myModalLabel" modal-title="">{{label}}</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope" tabindex="0"
+ role="region" aria-label="Modal header text content">
+
+ <table>
+ <tr>
+ <td>
+
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b>*</b></sup>Label:</label><br>
+ <input id="popupAddMenuItemLabel" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.label" maxlength="30" />
+ </div>
+ </td>
+ <td>
+ <div class="fn-ebz-container" style = "display:none" >
+ <label class="fn-ebz-text-label"><sup><b>*</b></sup>Parent:</label><br>
+ <input id="popupAddMenuItemParentId" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.parentId" ng-disabled="disableParentId" maxlength="30" />
+ </div>
+ <div class="fn-ebz-container" ng-init="getParentData();">
+ <form name="parentListForm">
+ <label class="fn-ebz-text-label" for="parentSelect"><sup><b>*</b></sup>Parent:</label><br>
+ <select name="select_projects" id="select_projects" ng-model="addFnMenuItem.parentIdAsString">
+
+ <optgroup label="" ng-repeat="header in childListSelectData">
+ <option label="{{header.label}}" value="{{header.menuId}}" style="color:black;font-weight:bold;">{{header.label}}</option>
+ <option ng-repeat="child in header.children" value="{{child.menuId}}" ng-selected="child.menuId == addFnMenuItem.parentId">{{child.label}}</option>
+ </optgroup>
+ </select>
+ </form>
+ </div>
+ </td>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b>*</b></sup>Sort Order:</label><br>
+ <input id="popupAddMenuItemSortOrder" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.sortOrder" ng-disabled="disableSortOrder" maxlength="30" />
+ </div>
+ </td>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b>*</b></sup>Action:</label><br>
+ <input id="popupAddMenuItemAction" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.action" ng-disabled="disableAction" maxlength="200" />
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div class="fn-ebz-container" ng-init="getFunctionCDselectData();">
+ <form name="functionCDform">
+ <label class="fn-ebz-text-label" for="repeatSelect"><sup><b>*</b></sup>Function:</label><br>
+ <select class="form-field" name="repeatSelect" id="repeatSelect" ng-model="addFnMenuItem.functionCd">
+ <option>{{addFnMenuItem.functionCd}}</option>
+ <option ng-repeat="option in functionCDselectData" value="{{option}}" ng-selected="option==addFnMenuItem.functionCd">{{option}}</option>
+ </select>
+ </form>
+ </div>
+ </td>
+ <td>
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label"><sup><b>*</b></sup>Active:</label><br>
+ <select class="form-field" name="selectActive" ng-model="addFnMenuItem.activeAsString" >
+ <option ng-repeat="active in activeStatusOptions" value="{{active.value}}" ng-selected="{{active.value}} == {{addFnMenuItem.active}}" >{{active.title}}</option>
+ </select>
+ </div>
+ </td>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b></b></sup>Servlet:</label><br>
+ <input id="popupAddMenuItemServlet" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.servlet" ng-disabled="disableServlet" maxlength="30" />
+ </div>
+ </td>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b></b></sup>Query String:</label><br>
+ <input id="popupAddMenuItemQueryString" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.queryString" ng-disabled="disableQueryString" maxlength="30" />
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b></b></sup>External URL:</label><br>
+ <input id="popupAddMenuItemExternalUrl" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.externalUrl" ng-disabled="disableExternalUrl" maxlength="30" />
+ </div>
+ </td>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b></b></sup>Target:</label><br>
+ <input id="popupAddMenuItemTarget" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.target" ng-disabled="disableTarget" maxlength="30" />
+ </div>
+ </td>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b>*</b></sup>Menu Set Code:</label><br>
+ <input id="popupAddMenuItemMenuSetCode" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.menuSetCode" ng-disabled="disableMenuSetCode" maxlength="30" />
+ </div>
+ </td>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b>*</b></sup>Separator:</label><br>
+ <select class="form-field" name="select" ng-model="addFnMenuItem.separatorAsString">
+ <option ng-repeat="separator in separatorStatusOptions" value="{{separator.value}}" ng-selected="{{separator.value}}=={{addFnMenuItem.separator}}" >{{separator.title}}</option>
+ </select>
+ </div>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label"><sup><b></b></sup>Image Source:</label><br>
+ <input id="popupAddMenuItemImageSrc" type="text" class="fn-ebz-text" ng-model="addFnMenuItem.imageSrc" ng-disabled="disableImageSrc" maxlength="30" />
+ </div>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-small" type="button"
+ ng-click="updateFnMenu(addFnMenuItem);">Save</button>
+ <button class="btn btn-small" type="button"
+ ng-click="$dismiss('cancel')">Cancel</button>
+ </div>
+ </div>
+</div>
+
+
+
+
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-child-add-confirm.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-child-add-confirm.html
new file mode 100644
index 00000000..62f05269
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-child-add-confirm.html
@@ -0,0 +1,25 @@
+<div>
+ <div class="modal-header ng-scope in">
+ <h1><i class="icon-primary-alert"></i></h1>
+ <h2 id="myModalLabel" modal-title="">Confirm</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="modal-body ng-scope ng-isolate-scope in" tabindex="0"
+ role="region" aria-label="Modal header text content"
+ style="height: 55px;">
+ You are about to add the role function {{msg.roleFun}} to the role for {{msg.role}}. Do you want to continue?
+ </div>
+ <div class="modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button ng-if="!msg.selected" class="btn btn-alt btn-medium" type="button"
+ ng-click="confirmRoleChildRemove(msg.selected,msg.availableRole,msg.roleId);">Yes</button>
+ <button ng-if="msg.selected" class="btn btn-alt btn-medium" type="button"
+ ng-click="confirmRoleChildAdd(msg.selected,msg.availableRole,msg.roleId);">Yes</button>
+ <button class="btn btn-clear btn-medium" type="button"
+ ng-click="$dismiss('cancel')">Cancel</button>
+ </div>
+ </div>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-confirm-activation.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-confirm-activation.html
new file mode 100644
index 00000000..7a663cf3
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-confirm-activation.html
@@ -0,0 +1,23 @@
+<div>
+ <div class="b2b-modal-header ng-scope in">
+ <h1><i class="icon-primary-alert"></i></h1>
+ <h2 id="myModalLabel" modal-title="">Confirm</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in" tabindex="0"
+ role="region" aria-label="Modal header text content"
+ style="height: 55px;">
+ You are about to {{msg.text}} the {{msg.roleName}} role. Do you want to continue?
+ </div>
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-medium" type="button"
+ ng-click="roleActivate(msg.selected,msg.availableRole);">Ok</button>
+ <button class="btn btn-clear btn-medium" type="button"
+ ng-click="cancelRoleSwitch(msg)">Cancel</button>
+ </div>
+ </div>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-delete-confirm.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-delete-confirm.html
new file mode 100644
index 00000000..45e5ddfc
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-delete-confirm.html
@@ -0,0 +1,22 @@
+<div>
+ <div class="b2b-modal-header ng-scope in">
+ <h2 id="heading-medium" modal-title="">Confrim</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in" tabindex="0"
+ role="region" aria-label="Modal header text content"
+ style="height: 55px;">
+ You are about to delete {{msg.roleName}} role. Click 'OK' to continue.
+ </div>
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-medium" type="button"
+ ng-click="delRole(msg.availableRole);">Ok</button>
+ <button class="btn btn-clear btn-medium" type="button"
+ ng-click="$dismiss('cancel')">Cancel</button>
+ </div>
+ </div>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-fun-add-confirm.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-fun-add-confirm.html
new file mode 100644
index 00000000..ff5ac253
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-fun-add-confirm.html
@@ -0,0 +1,25 @@
+<div>
+ <div class="b2b-modal-header ng-scope in">
+ <h1><i class="icon-primary-alert"></i></h1>
+ <h2 id="myModalLabel" modal-title="">Confirm</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in" tabindex="0"
+ role="region" aria-label="Modal header text content"
+ style="height: 55px;">
+ You are about to add the role function {{msg.roleFun}} to the role for {{msg.role}}. Do you want to continue?
+ </div>
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button ng-if="!msg.selected" class="btn btn-alt btn-medium" type="button"
+ ng-click="confirmRoleFunRemove(msg.selected,msg.availableRole,msg.roleId);">Yes</button>
+ <button ng-if="msg.selected" class="btn btn-alt btn-medium" type="button"
+ ng-click="confirmRoleFunAdd(msg.selected,msg.availableRole,msg.roleId);">Yes</button>
+ <button class="btn btn-clear btn-medium" type="button"
+ ng-click="cancelRoleFunSwitch(msg)">Cancel</button>
+ </div>
+ </div>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-fun-role-del-confirm.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-fun-role-del-confirm.html
new file mode 100644
index 00000000..f293152c
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-fun-role-del-confirm.html
@@ -0,0 +1,22 @@
+<div>
+ <div class="modal-header ng-scope in">
+ <h2 id="myModalLabel" modal-title="">Role</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="modal-body ng-scope ng-isolate-scope in" tabindex="0"
+ role="region" aria-label="Modal header text content"
+ style="height: 55px;">
+ You are about to delete this Role Function. Click 'OK' to continue.
+ </div>
+ <div class="modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-medium" type="button"
+ ng-click="roleFunRemoveRole(msg.roleFunction)">Ok</button>
+ <button class="btn btn-clear btn-medium" type="button"
+ ng-click="$dismiss('cancel')">Cancel</button>
+ </div>
+ </div>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-function-add.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-function-add.html
new file mode 100644
index 00000000..a6912571
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-function-add.html
@@ -0,0 +1,32 @@
+<div>
+ <div class="b2b-modal-header ng-scope in">
+ <h2 id="myModalLabel" modal-title="">Role Function Create</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in" tabindex="0"
+ role="region" aria-label="Modal header text content"
+ style="height: 145px;">
+
+ <div class="field-group">
+ Name <input id="textinputID-2a" ddh-reset ng-model="roleFun['name']"
+ placeholder="Name" class="span12" type="text">
+ </div>
+ <div class="field-group">
+ Code <input id="textinputID-2a" ddh-reset ng-model="roleFun['code']"
+ placeholder="Code" class="span12" type="text">
+
+ </div>
+ </div>
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-medium" type="button"
+ ng-click="save(roleFun);">Create</button>
+ <button class="btn btn-medium" type="button"
+ ng-click="$dismiss('cancel')">Cancel</button>
+ </div>
+ </div>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-function-del-confirm.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-function-del-confirm.html
new file mode 100644
index 00000000..31109112
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-function-del-confirm.html
@@ -0,0 +1,22 @@
+<div>
+ <div class="b2b-modal-header ng-scope in">
+ <h2 id="myModalLabel" modal-title="">Role Function Delete</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in" tabindex="0"
+ role="region" aria-label="Modal header text content"
+ style="height: 55px;">
+ You are about to delete this role function, '{{msg.text}}'. Click 'OK' to continue.
+ </div>
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-medium" type="button"
+ ng-click="deleteFun(roleFun);">Ok</button>
+ <button class="btn btn-medium" type="button"
+ ng-click="$dismiss('cancel')">Cancel</button>
+ </div>
+ </div>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-function-edit.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-function-edit.html
new file mode 100644
index 00000000..ecf69b5a
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-function-edit.html
@@ -0,0 +1,22 @@
+<div>
+ <div class="b2b-modal-header">
+ <h2 id="myModalLabel" b2b-modal-title>Role Function Edit</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close" ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body" tabindex="0" role="region" aria-label="Modal header text content" style="height: 145px;">
+ <div class="field-group">
+ Name <input id="textinputID-2a" ng-model="roleFun['name']" placeholder="Name" class="span12" type="text">
+ </div>
+ <div class="field-group">
+ Code <input id="textinputID-2a" ng-model="roleFun['code']" disabled placeholder="Code" class="span12" type="text">
+ </div>
+ </div>
+ <div class="b2b-modal-footer">
+ <div class="cta-button-group">
+ <button class="btn btn-alt btn-medium" type="button" ng-click="save(roleFun);">Save</button>
+ <button class="btn btn-medium" type="button" ng-click="$dismiss('cancel')">Cancel</button>
+ </div>
+ </div>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-functions-child-roles-modal.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-functions-child-roles-modal.html
new file mode 100644
index 00000000..94211773
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-functions-child-roles-modal.html
@@ -0,0 +1,34 @@
+<div>
+ <div class="b2b-modal-header">
+ <br/>
+ <h1 class="heading-medium" id="SelectRole">Select Child Roles</h1>
+ </div>
+ <br/>
+ <div class="b2b-modal-body" tabindex="0" aria-label="Modal header text content" role="region">
+ <table class="striped">
+ <thead>
+ <tr>
+ <th></th>
+ <th>Role</th>
+ </tr>
+ </thead>
+ <tbody type="body" ng-repeat="role in role.childRoles">
+ <tr>
+ <td>
+ <label ng-click="activateRoleChildConfirmPopUp(roleFunction.selected,roleFunction);" class="btn-switch-label" tabindex="0" role="option">
+ <input type="checkbox" ddh-switches ng-model="roleFunction.selected"
+ size-class="modal-small modal-alert" >
+ </label>
+ </td>
+ <td>{{ roleFunction.name }}</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="b2b-modal-footer">
+ <div class="cta-button-group in">
+ <button style="float: right; margin-right: 20px;" class="btn btn-alt btn-small" ng-click="$dismiss('cancel')">Close</button>
+ </div>
+ <br/>
+ </div>
+</div> \ No newline at end of file
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
new file mode 100644
index 00000000..c4115c4a
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-functions-modal.html
@@ -0,0 +1,36 @@
+<div>
+ <div class="b2b-modal-header">
+ <h1 class="heading-medium" id="SelectRole">Select Role Functions</h1>
+
+ </div>
+
+ <div class="b2b-modal-body" tabindex="0" aria-label="Modal header text content" role="region">
+ <table class="striped">
+ <thead>
+ <tr>
+ <th></th>
+ <th>Role Function</th>
+ </tr>
+ </thead>
+ <tbody type="body" ng-repeat="roleFunction in msg.availableRoleFunctions">
+ <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">
+ </label>
+ </td>
+ <td>{{roleFunction.name}}</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <div class="b2b-modal-footer">
+ <div class="cta-button-group in">
+ <button style="float: right; margin-right: 20px;"
+ class="btn btn-alt btn-small"
+ ng-click="$dismiss('cancel')">Close</button>
+ </div>
+ <br />
+ </div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/role-function.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/role-function.html
new file mode 100644
index 00000000..0b07d6e8
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/role-function.html
@@ -0,0 +1,63 @@
+<div id="page-content">
+ <h1 class="heading-page" id="profileSearch">Role Function</h1>
+
+ <div class="row-nowrap">
+ <div class="span12">
+ <div class="form-row">
+ <div class="field-group">
+ <button class="btn btn-alt btn-medium" type="button"
+ ng-click="addRoleFuncPopUp(rowData);">Create</button>
+ </div>
+ </div>
+ </div>
+ <div class="span12">
+ <div class="form-row">
+ <div style="float: right;">
+ <div class="form-field form-field__small">
+ <input type="text" placeholder="Search role functions" ng-model="searchString" />
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div ng-show="showLoader" class="span loader-container">
+ <i class="icon-primary-spinner" role="img"
+ aria-label="Please wait while we load your content"></i>
+ </div>
+
+ <div b2b-table class="b2b-table-div" table-data="tableData"
+ search-string="searchString" current-page="currentPage"
+ next-sort="nextSort">
+
+ <table>
+ <thead b2b-table-row type="header">
+ <tr>
+ <th b2b-table-header key="name">Name</th>
+ <th b2b-table-header key="code">Code</th>
+ <th b2b-table-header sortable="false">Edit</th>
+ <th b2b-table-header sortable="false">Delete</th>
+ </tr>
+ </thead>
+ <tbody b2b-table-row type="body" row-repeat="rowData in tableData">
+ <tr>
+ <td b2b-table-body ng-bind="rowData['name']"></td>
+ <td b2b-table-body ng-bind="rowData['code']"></td>
+ <td b2b-table-body>
+ <div style="font-size: 20px;">
+ <a ng-click="saveRoleFuncPopUp(rowData);" class="icon-misc-pen"></a>
+ </div>
+ </td>
+ <td b2b-table-body>
+ <div style="font-size: 20px;">
+ <a href="javascript:void(0)"
+ ng-click="delRoleFuncConfirmPopUp(rowData);"
+ class="icon-misc-trash"></a>
+ </div>
+ </td>
+
+ </tr>
+ </tbody>
+ </table>
+ </div>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/role.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/role.html
new file mode 100644
index 00000000..12d8df70
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/role.html
@@ -0,0 +1,96 @@
+<div id="page-content">
+ <div>
+ <h1 class="heading-page" id="Roles">Manage Roles</h1>
+ </div>
+ <div>
+ <h2 class="heading-small-content">Please edit the role details below: </h2>
+ </div>
+
+ <div>
+ <label>*Name: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
+ <input type="text" ng-model="role.name"
+ maxlength="30" />
+ </label>
+ </div>
+
+ <div>
+ <label>Priority: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
+ <input type="text" ng-model="role.priority"
+ maxlength="30"/>
+ </label>
+ </div>
+
+ <div>
+ <button style="margin-left: 105px;" class="btn btn-small" onClick="window.location='admin'">Cancel</button>
+ <button class="btn btn-alt btn-small" ng-click="saveRole();">Save</button>
+ </div>
+ <br/>
+ <div ng-if="routeRoleId != 0">
+ <div>
+ <h3 class="heading-small-emphasis">Role Functions</h3>
+ <button class="btn btn-alt btn-small" ng-click="addNewRoleFunctionModalPopup(role.roleFunctions,role.name, role);">Manage Role Functions</button>
+
+ <table class="striped" ng-if="role.roleFunctions.length">
+ <thead>
+ <tr>
+ <th>Role Function Name</th>
+ <th>Remove</th>
+ </tr>
+ </thead>
+ <tbody type="body" ng-repeat="roleFunction in role.roleFunctions">
+ <tr>
+ <td width="70%">{{ roleFunction.name }}</td>
+ <td width="10%">
+ <div ng-click="removeRoleFunction(roleFunction);"><a href="javascript:void(0)" class="icon-misc-trash"></a></div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <br/>
+
+ <div>
+ <h4 class="heading-small-emphasis">Child Roles</h4>
+ <button class="btn btn-alt btn-small" ng-click="addNewChildRoleFunctionModalPopup(role.roleFunctions,role.name, role);">Manage Child Roles</button>
+
+ <table class="striped" ng-if="role.childRoles.length">
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Remove?</th>
+ </tr>
+ </thead>
+ <tbody type="body" ng-repeat="role in role.childRoles">
+ <tr>
+ <td width="70%">{{ role.name }}</td>
+ <td width="10%">
+ <div ng-click="removeChildRole(role);"><a href="javascript:void(0)" class="icon-misc-trash"></a></div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <br/>
+ <div>
+ <a href="admin#/role_function_list">Manage Role Functions</a><br><br>
+ </div>
+ <!-- <table class="striped" table-data="availableRoles">
+ <thead>
+ <tr>
+ <th></th>
+ <th>Role</th>
+ </tr>
+ </thead>
+ <tbody type="body" ng-repeat="availableRole in availableRoles">
+ <tr>
+ <td width="70%">
+ <div ng-click="toggleChildRole(availableRole.selected,availableRole);">
+ <input type="checkbox" ng-model="availableRole.selected" />
+ </div>
+ </td>
+ <td> {{ availableRole.name }} </td>
+ </tr>
+ </tbody>
+ </table> -->
+ </div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/role_list.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/role_list.html
new file mode 100644
index 00000000..a608a0db
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/role_list.html
@@ -0,0 +1,42 @@
+<div id="page-content">
+ <div>
+ <h1 class="heading-page" id="Roles">Roles</h1>
+ </div>
+
+ <div>
+ <button type="submit" onClick="window.location='admin#/role/0';" class="btn btn-alt btn-small">Add New Role</button>
+ </div>
+ <h2 class="heading-small">Click on a Role to view its details.</h2>
+
+ <table class="striped" ng-if="availableRoleFunctions" style="width: auto;">
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Priority</th>
+ <th>Edit</th>
+ <th>Active?</th>
+ <th>Delete?</th>
+ </tr>
+ </thead>
+ <tbody type="body" ng-repeat="availableRole in ociavailableRoles">
+ <tr>
+ <td>{{ availableRole.name }}</td>
+ <td>{{ availableRole.priority }}</td>
+ <td>
+ <a href="admin#/role/{{availableRole.id}}" class="icon-misc-pen"></a>
+ </td>
+ <td>
+ <div >
+ <label class="btn-switch-label" tabindex="0" role="option">
+ <input type="checkbox" b2b-switches ng-model="availableRole.active" ng-click="activateRoleConfirmPopUp(availableRole.active,availableRole);" >
+ </label>
+ </div>
+ </td>
+ <td width="10%">
+ <div ng-click="delRoleConfirmPopUp(availableRole);"><a href="javascript:void(0)" class="icon-misc-trash"></a></div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/usage.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/usage.html
new file mode 100644
index 00000000..8e411141
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/usage.html
@@ -0,0 +1,43 @@
+<div id="page-content">
+ <div>
+ <h1 class="heading-page" id="Usage">Current Usage</h1>
+ </div>
+
+ <h3 class="heading-small">
+ The following table shows all current user sessions. Click the icon to end a user's session.
+ </h3>
+
+ <!-- A simple table requires no b2b tags -->
+ <table style="width: auto;">
+
+ <thead>
+ <tr>
+ <th key="0" sortable="false" width="10%" align="center">User Id</th>
+ <th key="1" sortable="true" width="10%" align="center">User Name</th>
+ <th key="2" sortable="false" width="10%" align="center">Email</th>
+ <th key="3" sortable="true" width="10%" align="center">Last Access Time (minutes)</th>
+ <th key="4" sortable="false" width="10%" align="center">Time Remaining (minutes)</th>
+ <th key="5" sortable="false" width="10%" align="center">Expire User Session?</th>
+ </tr>
+ </thead>
+
+ <tbody ng-repeat="user in users" style="max-height: 980px;" >
+ <tr>
+ <td width="10%">{{user.id}}</td>
+ <td width="10%">{{user.lastName}}</td>
+ <td width="10%">{{user.email}}</td>
+ <td width="10%">{{user.lastAccess}}</td>
+ <td width="10%">{{user.remaining}}</td>
+ <td width="10%"><div ng-hide="user.delete=='yes'">Current Session</div>
+ <div ng-click="removeSession(user.sessionId);"
+ ng-hide="user.delete=='no'"
+ style="font-size:20px;text-align:center">
+ <a href="javascript:void(0)" class="icon-misc-trash"></a>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+
+ </table>
+
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-profile/modals/role-add-confirm.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-profile/modals/role-add-confirm.html
new file mode 100644
index 00000000..edaa0a1e
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-profile/modals/role-add-confirm.html
@@ -0,0 +1,25 @@
+<div>
+ <div class="b2b-modal-header ng-scope in">
+ <h1><i class="icon-primary-alert"></i></h1>
+ <h2 id="myModalLabel" modal-title="">Confirm</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in" tabindex="0"
+ role="region" aria-label="Modal header text content"
+ style="height: 55px;">
+ You are about to change the role {{msg.roleFun}} Do you want to continue?
+ </div>
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button ng-if="!msg.selected" class="btn btn-alt btn-medium" type="button"
+ ng-click="confirmRoleFunRemove(msg.availableRole,msg.roleId);">Yes</button>
+ <button ng-if="msg.selected" class="btn btn-alt btn-medium" type="button"
+ ng-click="confirmRoleFunAdd(msg.availableRole,msg.roleId);">Yes</button>
+ <button class="btn btn-clear btn-medium" type="button"
+ ng-click="cancelRoleFunSwitch(msg)">Cancel</button>
+ </div>
+ </div>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-profile/modals/role-add.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-profile/modals/role-add.html
new file mode 100644
index 00000000..d662fc01
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-profile/modals/role-add.html
@@ -0,0 +1,36 @@
+<div>
+ <div class="b2b-modal-header ng-scope in">
+ <h1 class="heading-medium" id="SelectRole">Select Role Functions</h1>
+
+ </div>
+
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in" tabindex="0" aria-label="Modal header text content" role="region">
+ <table class="striped">
+ <thead>
+ <tr>
+ <th></th>
+ <th>Role Function</th>
+ </tr>
+ </thead>
+ <tbody type="body"ng-repeat="roleFunction in msg.availableRoleFunctions">
+ <tr>
+ <td>
+ <label class="btn-switch-label" tabindex="0" role="option">
+ <input type="checkbox" b2b-switches ng-model="roleFunction.selected" ng-click="activateRoleConfirmPopUp(roleFunction.selected,roleFunction);" size-class="modal-small modal-alert">
+ </label>
+ </td>
+ <td>{{roleFunction.name}}</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button style="float: right; margin-right: 20px;"
+ class="btn btn-alt btn-small"
+ ng-click="$dismiss('cancel')">Close</button>
+ </div>
+ <br />
+ </div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-profile/modals/role-del-confirm.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-profile/modals/role-del-confirm.html
new file mode 100644
index 00000000..b795d35f
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-profile/modals/role-del-confirm.html
@@ -0,0 +1,23 @@
+<div>
+ <div class="b2b-modal-header ng-scope in">
+ <h1><i class="icon-primary-alert"></i></h1>
+ <h2 id="myModalLabel" modal-title="">Confirm</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in" tabindex="0"
+ role="region" aria-label="Modal header text content"
+ style="height: 50px;">
+ You are about to delete the role '{{msg.role.name}}'. Do you want to continue?
+ </div>
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button ng-if="!msg.selected" class="btn btn-alt btn-medium" type="button"
+ ng-click="confirmRoleDel(msg.role,msg.roleId);">Yes</button>
+ <button class="btn btn-clear btn-medium" type="button"
+ ng-click="$dismiss('cancel')">Cancel</button>
+ </div>
+ </div>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-profile/profile.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-profile/profile.html
new file mode 100644
index 00000000..97bb9aee
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-profile/profile.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!-- Single-page application for EPSDK-App profile pages using DS2 look and feel -->
+<html>
+<head>
+ <meta charset="ISO-8859-1">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />
+
+ <title>Profile Search</title>
+
+ <!-- B2b Library -->
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/b2b/css/b2b-angular/b2b-angular.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/b2b/css/b2b-angular/font_icons.css">
+
+ <!-- icons in open source -->
+ <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">
+
+ <!-- Common scripts -->
+
+ <script src="app/fusion/external/angular-1.4.8/angular.min.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-messages.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-touch.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-sanitize.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-cookies.min.js"></script>
+
+ <!-- B2b Library -->
+ <script src="app/fusion/external/b2b/js/b2b-angular/b2b-library.min.js"></script>
+ <script src="app/fusion/external/jquery/dist/jquery.min.js"></script>
+
+ <script src="app/fusion/external/javascript-detect-element-resize/jquery.resize.js"></script>
+ <script src="app/fusion/external/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
+ <script src="app/fusion/external/angular-gridster/dist/angular-gridster.min.js"></script>
+
+ <script src="app/fusion/scripts/DS2-services/ds2-modal/modalService.js"></script>
+ <script src="app/fusion/external/ds2/js/appDS2.js"></script>
+
+ <script src="app/fusion/scripts/DS2-services/userInfoServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/headerServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/leftMenuServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/manifestService.js"></script>
+
+ <script src="app/fusion/scripts/DS2-directives/footer.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/ds2Header.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/b2b-leftnav-ext.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/ds2LeftMenu.js"></script>
+
+ <!-- Page-specific scripts -->
+
+ <script src="app/fusion/scripts/DS2-controllers/profile-route.js"></script>
+ <script src="app/fusion/scripts/DS2-controllers/ds-profile/post-controller.js"></script>
+ <script src="app/fusion/scripts/DS2-controllers/ds2-profile/self-profile-controller.js"></script>
+ <script src="app/fusion/scripts/DS2-services/ds2-profile/selfProfileService.js"></script>
+ <script src="app/fusion/scripts/DS2-services/profileServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/postSearch.js"></script>
+ <script src="app/fusion/scripts/DS2-services/adminService.js"></script>
+ <script src="app/fusion/scripts/DS2-controllers/profile-search-controller-DS2.js"></script>
+
+</head>
+ <body class="appBody" ng-app="abs">
+ <div ds2-Header class="header-container" ></div>
+ <div ds2-menu id="menuContainer" class="menu-container" ></div>
+ <div ng-view id="rightContentProfile" class="content-container"></div>
+ <div ds2-Footer class="footer-container"></div>
+ </body>
+</html>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/all-reports.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/all-reports.html
new file mode 100644
index 00000000..c90f95b4
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/all-reports.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="ISO-8859-1">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />
+
+ <title>Reports</title>
+
+ <!-- Resources -->
+
+
+ <!-- B2b Library -->
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/b2b/css/b2b-angular/b2b-angular.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/b2b/css/b2b-angular/font_icons.css">
+
+ <!-- icons in open source -->
+ <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/external/angular-bootstrap/ui-bootstrap-csp.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/angular-gridster/dist/angular-gridster.min.css">
+ <!-- digital-design-library must be loaded late -->
+ <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/styles/ecomp.css">
+
+ <!-- Common scripts -->
+ <script src="app/fusion/external/angular-1.4.8/angular.min.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-messages.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-touch.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-sanitize.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-cookies.min.js"></script>
+ <script src="app/fusion/external/b2b/js/b2b-angular/b2b-library.min.js"></script>
+ <script src="app/fusion/external/jquery/dist/jquery.min.js"></script>
+ <script src="app/fusion/external/javascript-detect-element-resize/jquery.resize.js"></script>
+ <script src="app/fusion/external/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
+ <script src="app/fusion/external/angular-gridster/dist/angular-gridster.min.js"></script>
+ <script src="app/fusion/external/angular-gridster/dist/angular-gridster.min.js"></script>
+
+ <!-- EPSDK App scripts and common services -->
+ <script src="app/fusion/scripts/DS2-services/ds2-modal/modalService.js"></script>
+ <script src="app/fusion/external/ds2/js/appDS2.js"></script>
+
+ <script src="app/fusion/scripts/DS2-services/userInfoServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/headerServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/leftMenuServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/manifestService.js"></script>
+
+ <script src="app/fusion/scripts/DS2-directives/footer.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/ds2Header.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/ds2LeftMenu.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/b2b-leftnav-ext.js"></script>
+ <script src= "app/fusion/scripts/DS2-services/userInfoServiceDS2.js"></script>
+
+ <!-- Page specific items -->
+ <script src="app/fusion/external/d3/js/d3.js"></script>
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/angular-ui-grid/ui-grid.css">
+ <script src="app/fusion/external/angular-ui-grid/ui-grid.min.js"></script>
+ <script src="./app/fusion/scripts/DS2-services/ds2-raptor-report/raptorReportFactory.js"></script>
+ <script src="./app/fusion/scripts/DS2-services/ds2-raptor-report/stepFormFactory.js"></script>
+ <script src="./app/fusion/scripts/DS2-controllers/ds2-reports/report-search-controller.js"></script>
+ <script src="./app/fusion/scripts/DS2-controllers/ds2-reports/report-run-controller.js"></script>
+ <script src="./app/fusion/scripts/DS2-controllers/ds2-reports/report-step-controller.js"></script>
+ <script src="./app/fusion/scripts/DS2-controllers/ds2-reports/report-import-controller.js"></script>
+ <script src="./app/fusion/scripts/DS2-view-models/ds2-reports/directive/dynamicform.js"></script>
+ <script src="./app/fusion/scripts/DS2-controllers/ds2-reports/report-router.js"></script>
+
+</head>
+ <body class="appBody" ng-app="abs">
+ <div ds2-Header class="header-container" ></div>
+ <div ds2-menu id="menuContainer" class="menu-container" ></div>
+ <div ng-view id="rightContentProfile" class="content-container"></div>
+ <div ds2-Footer class="footer-container"></div>
+ </body>
+</html>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/directive/dynamicform.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/directive/dynamicform.js
new file mode 100644
index 00000000..9064b0dc
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/directive/dynamicform.js
@@ -0,0 +1,113 @@
+appDS2
+.directive('formBuilder', ['$q', '$parse', '$http', '$templateCache', '$compile', '$document', '$timeout', function ($q, $parse, $http, $templateCache, $compile, $document, $timeout) {
+ return {
+ restrict: 'E', // supports using directive as element only
+ scope:{
+ ngModel: '=',
+ ngFormFields: '=',
+ ngNumFormCols: '=',
+ ngTriggerMethod: '=',
+ ngShowFieldId: '='
+ },
+ link: function ($scope, element, attrs) {
+ $scope.element=element;
+ $scope.datetimeformat = "MM/dd/yyyy hh:mm a";
+ console.log("$scope");
+ console.log($scope);
+ $scope.buildField = function (field, parentElement) {
+ var x = '';
+ if(field.visible) {
+ if (field.fieldType === 'LIST_MULTI_SELECT') {
+ x = angular.element('<label><i>'+field.fieldDisplayName+'<span ng-show="ngShowFieldId"> [ '+field.fieldId+' ] </span>:</i></label><br>'+
+ '<div class="select2-container ebz-listbox form-field" style="height:100px;" tabindex="0" >'+
+ '<label ng-repeat="item in ngModel.'+field.fieldId+'" style="display:block;">'+
+ '<input type="checkbox" style="margin-top: 10px;" ng-model="item.defaultValue" ng-change="triggerFormFields('+field.triggerOtherFormFields+')" att-checkbox title="{{item.title}}"/> {{item.title}}<br/>'+
+ '</label>'+
+ '</div>');
+ } else if (field.fieldType === 'LIST_BOX') {
+ x = angular.element('<label><i>'+field.fieldDisplayName+'<span ng-show="ngShowFieldId"> [ '+field.fieldId+' ] </span>:</i></label><br> <div class="form-field" att-select="formFieldLuValues.'+field.fieldId+'" ng-model="ngModel.'+field.fieldId+'" ng-change="triggerFormFields('+field.triggerOtherFormFields+')"></div>');
+ } else if((field.fieldType === 'text' || field.fieldType === 'TEXT') && field.validationType === 'DATE'){
+ x = angular.element('<label><i>'+field.fieldDisplayName+'<span ng-show="ngShowFieldId"> [ '+field.fieldId+' ] </span>:</i></label><br> <input id="'+field.fieldId+'" type="text" ng-model="ngModel.'+field.fieldId+'" tabindex="0" ng-change="triggerFormFields('+field.triggerOtherFormFields+')" att-datepicker>');
+ } else if((field.fieldType === 'text' || field.fieldType === 'TEXT') && field.validationType === 'TIMESTAMP_MIN'){
+ x = angular.element('<label><i>'+field.fieldDisplayName+'<span ng-show="ngShowFieldId"> [ '+field.fieldId+' ] </span>:</i></label><br> <input id="'+field.fieldId+'" type="text" date-format="datetimeformat" ng-model="ngModel.'+field.fieldId+'" tabindex="0" ng-change="triggerFormFields('+field.triggerOtherFormFields+')" att-date-time-picker>');
+ } else if(field.fieldType === 'text' || field.fieldType === 'TEXT'){
+ x = angular.element('<label><i>'+field.fieldDisplayName+'<span ng-show="ngShowFieldId"> [ '+field.fieldId+' ] </span>:</i></label><br> <input type="text" class="form-field" ng-model="ngModel.'+field.fieldId+'" maxlength="'+field.length+'" ng-blur="triggerFormFields('+field.triggerOtherFormFields+')" />');
+ } else if(field.fieldType === 'CHECK_BOX'){
+ x = angular.element('<label><i>'+field.fieldDisplayName+'<span ng-show="ngShowFieldId"> [ '+field.fieldId+' ] </span>:</i></label><br> <input type="checkbox" ng-model="ngModel.'+field.fieldId+'" tabindex="0" ng-change="triggerFormFields('+field.triggerOtherFormFields+')" att-checkbox>');
+ }
+ }
+ parentElement.append(x);
+ $compile(x)($scope);
+ };
+ $scope.buildForm = function() {
+ // create elements <table> and a <tbody>
+ var tbl = angular.element("<table></table>");
+ var tblBody = angular.element("<tbody></tbody>");
+ var row = angular.element("<tr></tr>");
+
+ var ngFormFieldsLength = $scope.ngFormFields.length;
+
+ for (var j = 0; j < ngFormFieldsLength; j++) {
+ var cell = angular.element("<td style='padding: 5px;'></td>");
+ $scope.buildField($scope.ngFormFields[j],cell);
+ row.append(cell);
+
+ if((j!=0 && (j+1)%$scope.ngNumFormCols==0) || j==(ngFormFieldsLength-1)){
+ tblBody.append(row);
+ row = angular.element("<tr></tr>");
+ }
+ }
+ tbl.append(tblBody);
+ angular.element($scope.element).html('');
+ $scope.element.append(tbl);
+ };
+
+
+ $scope.formFieldLuValues = {};
+ $scope.getEBZFormat = function() {
+ if($scope.ngFormFields && $scope.ngFormFields.length>0){
+ $scope.ngFormFields.forEach(function(formField) {
+ if(formField.fieldType === 'LIST_MULTI_SELECT') {
+ $scope.ngModel[formField.fieldId]= [];
+ if(formField.formFieldValues && formField.formFieldValues.length>0){
+ formField.formFieldValues.forEach(function(entry,i) {
+ $scope.ngModel[formField.fieldId].push({ index: i, value: entry.id, title: entry.name, defaultValue: entry.defaultValue});
+ });
+ }
+ } else if(formField.fieldType==='LIST_BOX') {
+ $scope.formFieldLuValues[formField.fieldId]= [];
+ if(formField.formFieldValues && formField.formFieldValues.length>0){
+ formField.formFieldValues.forEach(function(entry,i) {
+ $scope.formFieldLuValues[formField.fieldId].push({ index: i, value: entry.id, title: entry.name});
+ if(entry.defaultValue){
+ $scope.ngModel[formField.fieldId]={ index: i, value: entry.id, title: entry.name};
+ }
+ });
+ }
+ } else if(formField.fieldType === 'text' || formField.fieldType === 'TEXT' ||
+ formField.validationType === 'DATE' || formField.validationType === 'TIMESTAMP_MIN') {
+ if(formField.formFieldValues && formField.formFieldValues.length>0){
+ $scope.ngModel[formField.fieldId]=formField.formFieldValues[0].id;
+ }
+ }
+ });
+ }
+ };
+
+ $scope.$watch("ngFormFields",function(newValue,oldValue) {
+ if($scope.ngFormFields){
+ $scope.getEBZFormat();
+ $scope.buildForm();
+ }
+ });
+
+ $scope.triggerFormFields = function(triggerFlag) {
+ if(triggerFlag){
+ $scope.element.html('Loading...');
+ $scope.ngTriggerMethod();
+ }
+ };
+
+ }
+ };
+ }]);
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/directive/step-form-directive.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/directive/step-form-directive.js
new file mode 100644
index 00000000..a64309bf
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/directive/step-form-directive.js
@@ -0,0 +1,14 @@
+appDS2
+.directive('stepForm', function($compile,$http, stepFormFactory) {
+ return {
+ restrict: 'AE',
+
+ // scope: {
+ // jsonSource: '='
+ // },
+ link: function(scope, elem, attrs) {
+ var jsonSrcName = "app/fusionapp/scripts/view-models/wz_steps/json/step1.json";
+ stepFormFactory.renderForm(jsonSrcName, elem, scope);
+ }
+ }
+});
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-del-confirm.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-del-confirm.html
new file mode 100644
index 00000000..da255bbf
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-del-confirm.html
@@ -0,0 +1,26 @@
+<div style="height:400px">
+ <div class="b2b-modal-header ng-scope in">
+ <h2 id="myModalLabel" modal-title="">Remove Report</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in" style="margin-bottom: -50px;">
+ <form name="workflowForm" class="css-form" novalidate>
+
+ <div class="form-row input-emphasized-field">
+ <label class="span12 input-emphasized" for="textinputID-2a">The selected report will be removed. Do you want to continue</label>
+ </div>
+
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-small" type="button" ng-click="ok()">OK</button>
+ <button class="btn btn-alt btn-small" type="button"
+ ng-click="cancel()">Cancel</button>
+ </div>
+ </div>
+ </form>
+ <br />
+ </div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-formfield-del-confirm.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-formfield-del-confirm.html
new file mode 100644
index 00000000..7bdf5a29
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-formfield-del-confirm.html
@@ -0,0 +1,26 @@
+<div style="height:400px">
+ <div class="b2b-modal-header ng-scope in">
+ <h2 id="myModalLabel" modal-title="">Remove Formfield</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in" style="margin-bottom: -50px;">
+ <form name="workflowForm" class="css-form" novalidate>
+
+ <div class="form-row input-emphasized-field">
+ <label class="span12 input-emphasized" for="textinputID-2a">The selected formfield {{tempFieldId}} will be removed. Do you want to continue</label>
+ </div>
+
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-small" type="button" ng-click="ok()">OK</button>
+ <button class="btn btn-alt btn-small" type="button"
+ ng-click="cancel()">Cancel</button>
+ </div>
+ </div>
+ </form>
+ <br />
+ </div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-col-edit.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-col-edit.html
new file mode 100644
index 00000000..ad081991
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-col-edit.html
@@ -0,0 +1,125 @@
+<style>
+#columnEditTable table tbody td {
+ border: none;
+}
+
+#columnEditTable table tbody tr {
+ border: none;
+}
+
+.colTableLeftColumn {
+ width: 45%;
+ text-align: right;
+ vertical-align:middle;
+}
+
+.colTableInput {
+ width:220px;
+}
+
+#columnEditTable .selectWrap{
+ width:220px;
+}
+</style>
+
+<div style="height: 700px;">
+ <div class="b2b-modal-header ng-scope in">
+ <h2 id="myModalLabel" modal-title="">Report Column - Edit </h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in" style="margin-bottom: -50px;">
+ <form name="workflowForm" class="css-form" novalidate>
+
+<!-- <div class="form-row input-emphasized-field">
+ <label class="span12 input-emphasized" for="textinputID-2a">The selected report will be removed. Do you want to continue</label>
+ </div> -->
+ <div id="columnEditTable">
+ <table class="striped">
+<!-- <caption><span>Table caption</span></caption> -->
+<!-- <thead>
+ <tr>
+ <th>Column ID:</th>
+ <th>Name</th>
+ <th>ID</th>
+ <th>Edit</th>
+ </tr>
+ </thead> -->
+ <tbody>
+ <tr>
+ <td class="colTableLeftColumn">Column ID:</td>
+ <td>{{columnEditData.colId}}</td>
+ </tr>
+
+ <tr>
+ <td class="colTableLeftColumn">Display Name:</td>
+ <td><input type="text" name="displayName" ng-model="colName.value" class="colTableInput"></td>
+ </tr>
+
+<!-- <tr>
+ <td class="colTableLeftColumn">Display Width (px):</td>
+ <td><input type="text" name="displayWidth" ng-model="displayWidth" class="colTableInput"></td>
+ </tr> -->
+
+ <tr>
+ <td class="colTableLeftColumn">Display Alignment: </td>
+ <td>
+ <select name="displayAlignment" b2b-dropdown ng-model="selectedDisplayAlignment.value" placeholder-text="Select">
+ <option b2b-dropdown-list option-repeat="d in displayAlignmentOptions" value="{{d.value}}">{{d.text}}</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="colTableLeftColumn">Display Header Alignment:</td>
+ <td>
+ <select name="displayHeaderAlignment" b2b-dropdown ng-model="selectedDisplayHeaderAlignment.value" placeholder-text="Select">
+ <option b2b-dropdown-list option-repeat="d in displayAlignmentOptions" value="{{d.value}}">{{d.text}}</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="colTableLeftColumn">Sortable:</td>
+ <td>
+ <select name="sortable" b2b-dropdown ng-model="sortable.value" placeholder-text="Select">
+ <option b2b-dropdown-list option-repeat="d in ynOptions" value="{{d.value}}">{{d.text}}</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="colTableLeftColumn">Visible:</td>
+ <td>
+ <select name="visible" b2b-dropdown ng-model="visible.value" placeholder-text="Select">
+ <option b2b-dropdown-list option-repeat="d in ynOptions" value="{{d.value}}">{{d.text}}</option>
+ </select>
+ </td>
+ </tr>
+
+<!-- <tr>
+ <td class="colTableLeftColumn">Drill-down Link:</td>
+ <td>
+ <select name="drillDown" b2b-dropdown ng-model="selectedDrillDownLink.value" placeholder-text="Select">
+ <option b2b-dropdown-list option-repeat="d in drillDownOptions" value="{{d.value}}">{{d.text}}</option>
+ </select>
+ </td>
+ </tr> -->
+
+
+ </tbody>
+ </table>
+ </div>
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-small" type="button" ng-click="save()">Save</button>
+ <button class="btn btn-alt btn-small" type="button"
+ ng-click="cancel()">Cancel</button>
+ </div>
+ </div>
+ </form>
+ <br />
+ </div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-formfield-edit.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-formfield-edit.html
new file mode 100644
index 00000000..c88eb596
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-formfield-edit.html
@@ -0,0 +1,149 @@
+<style>
+#columnEditTable table tbody td {
+ border: none;
+}
+
+#columnEditTable table tbody tr {
+ border: none;
+}
+
+.colTableLeftColumn {
+ width: 45%;
+ text-align: right;
+ vertical-align:middle;
+}
+
+.colTableInput {
+ width:220px;
+}
+
+#columnEditTable .selectWrap{
+ width:220px;
+}
+</style>
+
+<div style="height: 700px;">
+ <div class="b2b-modal-header ng-scope in">
+ <h2 id="myModalLabel" modal-title="">Report Form Field - Edit</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in" style="margin-bottom: -50px;">
+ <form name="workflowForm" class="css-form" novalidate>
+
+<!-- <div class="form-row input-emphasized-field">
+ <label class="span12 input-emphasized" for="textinputID-2a">The selected report will be removed. Do you want to continue</label>
+ </div> -->
+ <div id="columnEditTable">
+ <table class="striped">
+<!-- <caption><span>Table caption</span></caption> -->
+<!-- <thead>
+ <tr>
+ <th>Column ID:</th>
+ <th>Name</th>
+ <th>ID</th>
+ <th>Edit</th>
+ </tr>
+ </thead> -->
+ <tbody>
+<!-- <tr>
+ <td class="colTableLeftColumn">Field ID:</td>
+ <td>{{formFieldEditData.fieldId}}</td>
+ </tr> -->
+
+ <tr>
+ <td class="colTableLeftColumn">Field Name:</td>
+ <td><input type="text" name="displayName" ng-model="fieldName.value" class="colTableInput"></td>
+ </tr>
+
+ <tr>
+ <td class="colTableLeftColumn">Field Type: </td>
+ <td>
+ <select name="displayAlignment" b2b-dropdown ng-model="selectedFieldType.value" placeholder-text="Select">
+ <option b2b-dropdown-list option-repeat="d in fieldTypeOptions" value="{{d.value}}">{{d.text}}</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="colTableLeftColumn">Visible:</td>
+ <td>
+ <select name="displayHeaderAlignment" b2b-dropdown ng-model="selectedVisible.value" placeholder-text="Select">
+ <option b2b-dropdown-list option-repeat="d in ynOptions" value="{{d.value}}">{{d.text}}</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="colTableLeftColumn">SQL as Default Value:</td>
+ <td>
+ <label for="checkbox1" class="checkbox">
+ <input id="checkbox1" type="checkbox" ng-model="sqlDefaultValueSelected.value" /><i class="skin"></i><span></span>
+ </label>
+ </td>
+ </tr>
+
+ <tr ng-hide="sqlDefaultValueSelected.value">
+ <td class="colTableLeftColumn">Default Value:</td>
+ <td><input type="text" name="defaultValue" ng-model="defaultValue.value" class="colTableInput"></td>
+ </tr>
+
+
+ <tr ng-show="sqlDefaultValueSelected.value">
+ <td class="colTableLeftColumn">Default SQL:</td>
+ <td>
+ <textarea b2b-reset b2b-dragon-input b2b-reset-textarea ng-model="fieldDefaultSQL.value" style="height:80px">
+ </textarea>
+ </td>
+ <td>
+ <p><button ng-click="formFieldVerifySQL(fieldDefaultSQL.value)" class="btn btn-alt btn-small">Verify</button></p>
+ </td>
+ </tr>
+
+<!-- <tr>
+ <td class="colTableLeftColumn">Verify Field Value As: </td>
+ <td>
+ <select name="displayAlignment" b2b-dropdown ng-model="selectedVerifyFieldValue.value" placeholder-text="Select">
+ <option b2b-dropdown-list option-repeat="d in verifyFieldValueOptions" value="{{d.value}}">{{d.text}}</option>
+ </select>
+ </td>
+ </tr> -->
+
+ <tr>
+ <td class="colTableLeftColumn">SQL Generating Custom List of Values:</td>
+ <td>
+ <textarea b2b-reset b2b-dragon-input b2b-reset-textarea ng-model="fieldSqlContent.value" style="height:80px">
+ </textarea>
+ </td>
+ <td>
+ <p><button ng-click="formFieldVerifySQL(fieldSqlContent.value)" class="btn btn-alt btn-small">Verify</button></p>
+ </td>
+ </tr>
+
+<!-- <tr>
+ <td class="colTableLeftColumn">Drill-down Link:</td>
+ <td>
+ <select name="drillDown" b2b-dropdown ng-model="selectedDrillDownLink.value" placeholder-text="Select">
+ <option b2b-dropdown-list option-repeat="d in drillDownOptions" value="{{d.value}}">{{d.text}}</option>
+ </select>
+ </td>
+ </tr> -->
+
+
+ </tbody>
+ </table>
+ </div>
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-small" type="button" ng-click="save()">Save</button>
+ <button class="btn btn-alt btn-small" type="button"
+ ng-click="cancel()">Cancel</button>
+ </div>
+
+ </div>
+ </form>
+ <br />
+ </div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-test-run-sql.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-test-run-sql.html
new file mode 100644
index 00000000..a7955cad
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-test-run-sql.html
@@ -0,0 +1,62 @@
+<style>
+.colTableLeftColumn {
+ width: 45%;
+ text-align: right;
+ vertical-align:middle;
+}
+
+.colTableInput {
+ width:220px;
+}
+
+#columnEditTable .selectWrap{
+ width:220px;
+}
+</style>
+
+<div style="height: 700px;">
+ <div class="b2b-modal-header ng-scope in">
+ <h2 id="myModalLabel" modal-title="">SQL Test Run - {{isError?'Failed':'Executed'}}</h2>
+ <div class="corner-button in">
+ <button type="button" class="close" aria-label="Close"
+ ng-click="$dismiss('cancel')"></button>
+ </div>
+ </div>
+ <div class="b2b-modal-body ng-scope ng-isolate-scope in" style="margin-bottom: -50px;">
+ <form name="workflowForm" class="css-form" novalidate>
+<!-- <div class="form-row input-emphasized-field">
+ <label class="span12 input-emphasized" for="textinputID-2a">The selected report will be removed. Do you want to continue</label>
+ </div> -->
+ <div>
+
+ <div ng-show="isError">
+ <h2>Error Message:</h2><br>
+ <p>{{errormessage}}</p>
+ <h2>Stack Trace:</h2><br>
+ <p>{{stacktrace}}</p>
+
+ </div>
+ <table class="striped">
+ <thead>
+ <tr>
+ <th ng-repeat="colName in queryData.reportDataColumns">{{colName}}</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr ng-repeat="rowData in queryData.reportDataRows">
+ <td ng-repeat="keyName in queryData.reportDataColumns">{{rowData[keyName]}}</td>
+ </tr>
+
+ </tbody>
+ </table>
+ </div>
+ <div class="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <div class="cta-button-group in">
+ <button class="btn btn-alt btn-small" type="button"
+ ng-click="close()">Close</button>
+ </div>
+ </div>
+ </form>
+ <br />
+ </div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-import.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-import.html
new file mode 100644
index 00000000..cd64b09f
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-import.html
@@ -0,0 +1,14 @@
+<div id="page-content">
+
+<h1 class="heading-page">Report Import</h1>
+
+ <h2 id="myModalLabel" modal-title="">Import XML</h2>
+
+<div style="margin-top:5px; color:red;" ng-if="errorMessage&&errorMessage.length>0">
+ <h2 id="myModalLabel" modal-title="" style="color:red;">{{errorMessage}}</h2>
+</div>
+ <textarea b2b-reset b2b-dragon-input b2b-reset-textarea ng-model="xmlContent" class="span12" id="textareaXmlContent" style="height:480px;margin-top:5px;"></textarea>
+
+ <button style="margin-top:5px;" type="submit" class="btn btn-alt btn-small" ng-click="importXML();">Import</button>
+
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-run.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-run.html
new file mode 100644
index 00000000..82b7e878
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-run.html
@@ -0,0 +1,91 @@
+<style>
+table tbody td {
+ border: none;
+}
+
+table tbody tr {
+ border: none;
+}
+
+table tbody{
+ border: none;
+}
+
+table {
+ border: none;
+}
+
+.grid {
+ width: 100%;
+ height: 400;
+}
+.no-rows {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ width: 100%;
+ background: rgba(0, 0, 0, 0.4);
+}
+
+.no-rows .msg {
+ opacity: 1;
+ position: absolute;
+ top: 20%;
+ left: 20%;
+ width: 60%;
+ height: 50%;
+ line-height: 200%;
+ background-color: #eee;
+ border-radius: 4px;
+ border: 1px solid #555;
+ text-align: center;
+ font-size: 24px;
+ display: table;
+}
+
+.no-rows .msg span {
+ display: table-cell;
+ vertical-align: middle;
+}
+.grid .ui-grid-header-cell {
+ text-align:center;
+}
+body {
+ font-size:13px;
+}
+</style>
+
+<div id="page-content">
+ <!-- <h1 class="heading2">{{reportData.reportName}} -->
+ <h1 class="heading-page">{{reportData.reportHeading}}
+ <a ng-href="{{reportEditURL}}" ng-show="reportData.allowEdit" class="icon-edit" style="font-size:20px;"></a>
+
+ &nbsp;&nbsp;&nbsp;<a ng-href="{{reportChartURL}}" ng-show="reportData.allowEdit && reportData.chartWizardAvailable" class="icon-bar-chart-vertical" style="font-size:20px;"></a>
+ &nbsp;&nbsp;&nbsp;<span ng-show="reportData.allowEdit && showFormFields" ><input type="checkbox" ng-model="showFormFieldIds" ng-true-value="Hide_IDs" ng-false-value="Show_IDs" att-toggle-main></span>
+
+ <!-- &nbsp;&nbsp;&nbsp;<a ng-href="{{reportChartURLNew}}" ng-show="reportData.allowEdit" class="icon-bar-chart-horizontal" style="font-size:20px;"></a> -->
+ </h1>
+
+ <h3 class="heading3">{{reportData.reportSubTitle}} </h3>
+
+ <div ng-show="isInProgress" style="font-size:50px;color:#2ca02c">Loading...</div>
+
+ <form ng-show="showFormFields" class="row section-row" style="margin: 10px">
+ <form-builder ng-form-fields="reportData.formFieldList" ng-show-field-id="showFormFieldIds" ng-num-form-cols="reportData.numFormCols" ng-model="formFieldSelectedValues" ng-trigger-method="triggerOtherFormFields"></form-builder>
+ <br><br>
+ <button type="submit" style="width: 90px; height:35px;margin-top:20px; margin-left:5px;" class="btn btn-alt btn-small" ng-click="runReport()">Run</button>
+ </form>
+ <a type="submit" ng-show="showBackButton" style="margin: 10px" ng-href="report.htm#/report_run/{{parentReportUrlParams}}" att-button btn-type="primary" size="small" title='Back'>Back</a>
+ <iframe id="chartiframe" ng-show="showChart" width="100%" height="450px" style="border: none" scrolling="no"></iframe>
+ <div id="errorDiv"></div>
+ <div ng-if="showGrid">
+ <div id="grid1" ui-grid="gridOptions" ui-grid-pagination ui-grid-pinning ui-grid-resize-columns class="grid" style="height: {{gridHeight}}">
+ <div class="no-rows" ng-show="!gridOptions.data.length">
+ <div class="msg">
+ <span>{{reportData.message}}</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- <a type="submit" ng-show="showBackButton" style="margin: 10px" ng-href="report.htm#/report_run/{{parentReportUrlParams}}" att-button btn-type="primary" size="small" title='Back'>Back</a> -->
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-search.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-search.html
new file mode 100644
index 00000000..7524acca
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-search.html
@@ -0,0 +1,54 @@
+<div id="page-content" style="margin-right:-230px;">
+<style>
+.grid {
+ width: 100%;
+ height: 400px;
+}
+.grid .ui-grid-header-cell {
+ text-align:center;
+}
+.icon-add-widget:before {
+ content: "\e717";
+}
+.ui-grid-icon-angle-down {
+ margin-top: 5px;
+}
+body {
+ font-size:13px;
+}
+</style>
+<h1 class="heading-page">Report search</h1>
+<br>
+<div >
+<label style="float:left;margin-top:10px; margin-right: 5px;">Report Id:</label>
+
+<div class="form-row" style="float:left; width:160px;">
+ <select id="dropdown1" name="dropdown1" b2b-dropdown placeholder-text="Select" ng-model="operatorRepId.index">
+ <option b2b-dropdown-list option-repeat="d in operatorsRepId" value="{{d.index}}">{{d.text}}</option>
+ </select>
+</div>
+
+<div class="form-field form-field__glued pull-left size-onefifth" style="float:left; width:160px;margin-right: 40px;">
+ <input ng-model="reportId" type="text" placeholder="Search value?" style="margin-top:5px;width:160px;">
+</div>
+
+<label class="pull-left" style="float:left;margin-top: 10px;margin-right: 5px;">Report Name:</label>
+
+<div class="form-row" style="float:left; width:160px;">
+ <select id="dropdown2" name="dropdown2" b2b-dropdown placeholder-text="Select" ng-model="operatorRepName.index">
+ <option b2b-dropdown-list option-repeat="e in operatorsRepName" value="{{e.index}}">{{e.text}}</option>
+ </select>
+</div>
+
+<div class="form-field form-field__glued pull-left size-onefifth" style="width:13% !important;">
+ <input ng-model="reportName" type="text" placeholder="Search value?" style="margin-top:5px;width:160px;">
+</div>
+
+<div>
+ <button style="margin-left:50px;margin-top:4px;" type="submit" class="btn btn-alt btn-small" ng-click="runReport();">Submit</button>
+</div>
+</div>
+<br>
+
+<div id="grid1" ui-grid="gridOptions" ui-grid-pagination class="grid">
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step1.json b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step1.json
new file mode 100644
index 00000000..091d47e5
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step1.json
@@ -0,0 +1,218 @@
+{
+ "step" : "1",
+ "content": {
+ "title": "Step 1 : Report Definition",
+ "sections": [
+ {
+ "title": "",
+ "elements": [
+ {
+ "input": "hidden",
+ "name": "proj_id",
+ "displayName": "Project Id",
+ "defaultValue": ""
+ },
+ {
+ "input": "text",
+ "name": "reportName",
+ "displayName": "Report Name:",
+ "defaultValue": ""
+ },
+ {
+ "input": "textarea",
+ "name": "reportDescr",
+ "displayName": "Report Description:",
+ "style":"width:300px;height:80px;"
+ },
+ {
+ "input": "select",
+ "name": "reportType",
+ "ngModelName":"selectedReportType.value",
+ "displayName": "Report Type: ",
+ "defaultValue": "no",
+ "action": "",
+ "action_img": "",
+ "optionsName":"reportTypes",
+ "options":[{"value":"linear", "text":"Linear"}]
+ },
+ {
+ "input": "select",
+ "name": "dataSource",
+ "ngModelName":"selectedDataSource.value",
+ "displayName": "Data Source:",
+ "defaultValue": "no",
+ "action": "",
+ "action_img": "",
+ "optionsName":"DataSources",
+ "options":[{"value":"local", "text":"Local"}]
+ },
+ {
+ "input": "textarea",
+ "name": "formHelpText",
+ "displayName": "Form Help Text:",
+ "style":"width:300px;height:80px;"
+ },
+ {
+ "input": "select",
+ "name": "pageSize",
+ "ngModelName":"selectedPageSize.value",
+ "displayName": "Page Size:",
+ "defaultValue": "no",
+ "action": "",
+ "action_img": "",
+ "optionsName":"PageSizes",
+ "options":[ {"value":"10", "text":"10"},
+ {"value":"20", "text":"20"},
+ {"value":"50", "text":"50"},
+ {"value":"100", "text":"100"},
+ {"value":"500", "text":"500"}
+ ]
+ },
+ {
+ "input": "checkboxGroup",
+ "name":"displayArea",
+ "displayName": "Display Area:",
+ "defaultValue": "no",
+ "action": "",
+ "action_img": "",
+ "checkboxes":[{"value":"homeSelected.value", "text":"HOME"},
+ {"value":"customerSelected.value", "text":"CUSTOMER"},
+ {"value":"reportsSelected.value", "text":"REPORTS"}
+ ]
+ },
+
+ {
+ "input": "checkboxGroup",
+ "name": "hideFormFieldsAfterRun",
+ "displayName": "Hide Form Fields After Run:",
+ "defaultValue": "no",
+ "action": "",
+ "action_img": "",
+ "optionsName":"HideFormFieldsAfterRun",
+ "checkboxes":[{"value":"hideFormFieldsAfterRunSelected.value", "text":""}
+ ]
+ },
+ {
+ "input": "select",
+ "name": "maxRowsInExcelCSVDownload",
+ "ngModelName":"selectedMaxRowsInExcelCSVDownload.value",
+ "displayName": "Max Rows in Excel/CSV Download:",
+ "defaultValue": "no",
+ "action": "",
+ "action_img": "",
+ "optionsName":"PageSizes",
+ "options":[{"value":"500","text":"500"},{"value":"1000","text":"1000"},{"value":"2000","text":"2000"},{"value":"3000","text":"3000"},{"value":"4000","text":"4000"},{"value":"5000","text":"5000"},{"value":"10000","text":"10000"},{"value":"15000","text":"15000"},{"value":"20000","text":"20000"},{"value":"25000","text":"25000"},{"value":"30000","text":"30000"},{"value":"35000","text":"35000"},{"value":"40000","text":"40000"},{"value":"45000","text":"45000"},{"value":"50000","text":"50000"},{"value":"65000","text":"65000"}]
+ },
+ {
+ "input": "select",
+ "name": "frozenColumns",
+ "ngModelName":"selectedFrozenColumns.value",
+ "displayName": "Columns to be Frozen:",
+ "defaultValue": "",
+ "action": "",
+ "action_img": "",
+ "optionsName":"frozenColumnsOptions",
+ "options":[{"value":"0","text":"0"},{"value":"1","text":"1"},{"value":"2","text":"2"},{"value":"3","text":"3"},{"value":"4","text":"4"}]
+ },
+ {
+ "input": "select",
+ "name": "dataGridAlign",
+ "ngModelName":"selectedDataGridAlign.value",
+ "displayName": "Data Grid Align:",
+ "defaultValue": "",
+ "action": "",
+ "action_img": "",
+ "optionsName":"selectedDataGridAlignOptions",
+ "options":[{"value":"left","text":"Left"},{"value":"right","text":"Right"},{"value":"center","text":"Center"}]
+ },
+ {
+ "input": "textarea",
+ "name": "emptyMessage",
+ "displayName": "Empty Message:",
+ "style":"width:300px;height:80px;"
+ },
+ {
+ "input": "select",
+ "name": "dataContainerHeight",
+ "ngModelName":"selectedDataContainerHeight.value",
+ "displayName": "Height of the Data Container:",
+ "defaultValue": "",
+ "action": "",
+ "action_img": "",
+ "optionsName":"dataContainerHeightOptions",
+ "options":[{"value":"200","text":"200%"},{"value":"190","text":"190%"},{"value":"180","text":"180%"},{"value":"170","text":"170%"},{"value":"160","text":"160%"},{"value":"150","text":"150%"},{"value":"140","text":"140%"},{"value":"130","text":"130%"},{"value":"120","text":"120%"},{"value":"110","text":"110%"},{"value":"100","text":"100%"},{"value":"90","text":"90%"},{"value":"80","text":"80%"},{"value":"70","text":"70%"},{"value":"60","text":"60%"},{"value":"50","text":"50%"},{"value":"40","text":"40%"},{"value":"30","text":"30%"},{"value":"20","text":"20%"},{"value":"10","text":"10%"}]
+ },
+ {
+ "input": "select",
+ "name": "dataContainerWidth",
+ "ngModelName":"selectedDataContainerWidth.value",
+ "displayName": "Width of the Data Container:",
+ "defaultValue": "",
+ "action": "",
+ "action_img": "",
+ "optionsName":"dataContainerWidthOptions",
+ "options":[{"value":"200","text":"200%"},{"value":"190","text":"190%"},{"value":"180","text":"180%"},{"value":"170","text":"170%"},{"value":"160","text":"160%"},{"value":"150","text":"150%"},{"value":"140","text":"140%"},{"value":"130","text":"130%"},{"value":"120","text":"120%"},{"value":"110","text":"110%"},{"value":"100","text":"100%"},{"value":"90","text":"90%"},{"value":"80","text":"80%"},{"value":"70","text":"70%"},{"value":"60","text":"60%"},{"value":"50","text":"50%"},{"value":"40","text":"40%"},{"value":"30","text":"30%"},{"value":"20","text":"20%"},{"value":"10","text":"10%"}]
+ },
+ {
+ "input": "checkboxGroup",
+ "name": "displayOptions",
+ "displayName": "Display Options:",
+ "defaultValue": "no",
+ "action": "",
+ "action_img": "",
+ "checkboxes":[{"value":"hideFormFieldsSelected.value", "text":"Hide Form Fields"},
+ {"value":"hideChartSelected.value", "text":"Hide Chart"},
+ {"value":"hideReportDataSelected.value", "text":"Hide Report Data"},
+ {"value":"hideExcelSelected.value", "text":"Hide Excel"},
+ {"value":"hidePdfSelected.value", "text":"Hide PDF"}
+ ]
+ },
+ {
+ "input": "checkboxGroup",
+ "name":"runtimeColSort",
+ "displayName": "Disable column sort at runtime:",
+ "defaultValue": "no",
+ "action": "",
+ "action_img": "",
+ "checkboxes":[{"value":"runtimeColSortDisabled.value", "text":""}
+ ]
+ },
+ {
+ "input": "select",
+ "name": "runtimeFormNumberColumns",
+ "ngModelName":"selectedNumFormCols.value",
+ "displayName": "Run-time Form Number Columns:",
+ "defaultValue": "no",
+ "action": "",
+ "action_img": "",
+ "optionsName":"runtimeFormNumberColumns",
+ "options":[ {"value":"1", "text":"1"},
+ {"value":"2", "text":"2"},
+ {"value":"3", "text":"3"},
+ {"value":"3", "text":"4"}
+ ]
+ },
+ {
+ "input": "text",
+ "name": "reportTitle",
+ "displayName": "Report Title:",
+ "defaultValue": ""
+ },
+ {
+ "input": "text",
+ "name": "reportSubTitle",
+ "displayName": "Report Subtitle:",
+ "defaultValue": ""
+ }
+ ]
+
+ },
+ {
+ "title": "finalButton",
+ "submitAction" : "",
+ "next":"Microservice Config",
+ "previous":"none"
+ }
+ ]
+ }
+}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step2.json b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step2.json
new file mode 100644
index 00000000..ca01985d
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step2.json
@@ -0,0 +1,34 @@
+{
+ "step" : "2",
+ "content": {
+ "title": "Step 2 : Report SQL",
+ "sections": [
+ {
+ "title": "",
+ "elements": [
+ {
+ "input": "textarea",
+ "spanOverTwoColumns":"true",
+ "name": "sqlScript",
+ "displayName": "SQL script:",
+ "defaultValue":"SELECT ",
+ "style":"width: 600px; height: 400px"
+ }
+ ],
+ "buttons": [
+ {
+ "text":"Validate/Test Run SQL",
+ "value":"next",
+ "ngFunction":"testRunSql()"
+ }]
+
+ },
+ {
+ "title": "finalButton",
+ "submitAction" : "",
+ "next":"Microservice Config",
+ "previous":"none"
+ }
+ ]
+ }
+}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step3.json b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step3.json
new file mode 100644
index 00000000..9ea9b6f4
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step3.json
@@ -0,0 +1,19 @@
+{
+ "step" : "3",
+ "content": {
+ "title": "",
+ "sections": [
+ {
+ "title": "",
+ "elements": [
+ ]
+ },
+ {
+ "title": "finalButton",
+ "submitAction" : "",
+ "next":"Microservice Config",
+ "previous":"none"
+ }
+ ]
+ }
+}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step4.json b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step4.json
new file mode 100644
index 00000000..971a0cf3
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step4.json
@@ -0,0 +1,25 @@
+{
+ "step" : "4",
+ "content": {
+ "title": "",
+ "sections": [
+ {
+ "title": "",
+ "elements": [
+ ],
+ "buttons": [
+ {
+ "text":"Add",
+ "value":"add",
+ "ngFunction":"addNewFormField()"
+ }]
+ },
+ {
+ "title": "finalButton",
+ "submitAction" : "",
+ "next":"Microservice Config",
+ "previous":"none"
+ }
+ ]
+ }
+}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step5.json b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step5.json
new file mode 100644
index 00000000..e1675cde
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step5.json
@@ -0,0 +1,28 @@
+{
+ "step" : "5",
+ "last_step": true,
+ "hideSaveButton":true,
+ "hideBackButton":true,
+ "content": {
+ "title": "Step 5 : Run",
+ "sections": [
+ {
+ "elements": [
+ ],
+ "buttons": [
+ {
+ "text":"Run Report",
+ "value":"next",
+ "ngFunction":"RunCurrentReport()"
+ }]
+ },
+ {
+ "title": "finalButton",
+ "submitAction" : "",
+ "next":"Microservice Config",
+ "previous":"none"
+ }
+ ]
+
+ }
+}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/report-step.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/report-step.html
new file mode 100644
index 00000000..5767afb2
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/report-step.html
@@ -0,0 +1,101 @@
+<!-- <link rel="stylesheet" type="text/css" href="static/fusion/raptor/css/raptor.css"> -->
+<style>
+#stepView table tbody td {
+ border: none;
+}
+
+#stepView table tbody tr {
+ border: none;
+}
+
+
+.selectWrap {
+ width: 300px;
+}
+.tdLeftColumn {
+ text-align: right;
+ vertical-align:middle;
+}
+</style>
+
+<div id="page-content">
+<h1 class="heading-page">Report Wizard</h1>
+
+
+
+<!-- <h1 id="tabs---promo">Tabs - Promo</h1>
+<button class="btn btn-secondary btn-small" ng-click="gTabs[3].disabled = !gTabs[3].disabled">{{gTabs[3].disabled?'Enable':'Disable'}}</button> - Toggle 4th (Features) Tab
+<br><br> -->
+ <b2b-tabset tab-id-selected="activeTabsId">
+ <b2b-tab ng-repeat="tab in gTabs" tab-item="tab"
+ id="{{tab.uniqueId}}" aria-controls="{{tab.tabPanelId}}"
+ ng-disabled="tab.disabled">
+ {{tab.title}}
+ </b2b-tab>
+ </b2b-tabset>
+<br><br>
+<!-- <select ng-model="prj"
+ ng-options="item.projectName for item in allProjects track by item.id" data-ng-init="getAllProjects()"
+ ng-change="selectAction();">
+ <option value="">Select project</option>
+</select>
+
+<a ng-click="createAction()" class="pointer">Create Project</a> -->
+
+<input type="hidden" name="project_id" ng-model="project_id" value = ""/>
+
+<div id="stepViewColumn" ng-show = "isColumnStep">
+ <h1>Step 3 : Columns</h1>
+ <table class="striped">
+ <thead>
+ <tr>
+ <th>No</th>
+ <th>Column Name</th>
+ <th>ID</th>
+ <th>Edit</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr ng-repeat = "rowData in colTableRowData">
+ <td>{{$index+1}}</td>
+ <td>{{rowData.name}}</td>
+ <td>{{rowData.id}}</td>
+ <td><a ng-click="openColumnPopup(rowData)" class="icon-misc-pen"></a></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<div id="stepViewFormField" ng-show = "isFormFieldStep">
+ <h1>Step 4 : Form Fields</h1>
+ <table class="striped">
+ <thead>
+ <tr>
+ <th>No</th>
+ <th>Field Name</th>
+ <th>Edit</th>
+ <th>Delete</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr ng-repeat = "rowData in formFieldData">
+ <td>{{$index+1}}</td>
+ <td>{{rowData.name}}[{{rowData.id}}]</td>
+<!-- <td>id</td> -->
+ <td><a ng-click="openFormFieldPopup(rowData)" class="icon-misc-pen"></a></td>
+ <td><a ng-click="deleteFormField(rowData)" class="icon-misc-trash"></a></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<div id="stepView">
+<!-- <step-form ng-model="jsonSrcName" renderForm="changeme"></step-form> -->
+</div>
+
+
+<!-- <select id="dropdown1" name="dropdown1" b2b-dropdown placeholder-text="Select" ng-model="selectedReportType.value">
+ <option b2b-dropdown-list option-repeat="d in reportTypes" value="{{d.value}}">{{d.text}}</option>
+</select>
+<h1>{{selectedReportType.value}}</h1> -->
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/drools-list.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/drools-list.html
new file mode 100644
index 00000000..b94b5c08
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/drools-list.html
@@ -0,0 +1,32 @@
+<div id="page-content">
+ <h1 class="heading-page">Drools List</h1>
+ <div id="droolsTable" title="Drools List">
+ <table class="striped" table-data="tableData">
+ <thead>
+ <tr>
+ <th>Drools File Name</th>
+ <th>Class Name</th>
+ <th>Run Rule</th>
+ </tr>
+ </thead>
+ <tbody type="body" ng-repeat="rowData in tableData">
+ <tr>
+ <td ng-bind="rowData['droolsFile']"></td>
+ <td ng-bind="rowData['className']"></td>
+ <td>
+ <div>
+ <a href="samplePage#/drools/{{rowData.droolsFile}}" class="icon-controls-playalt"></a>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+
+ </table>
+
+ <div ng-if="tableData==null || tableData.length==0" align="center">No records found</div>
+ </div>
+ <a href="samplePage#/drools/0">Go to Drools Rule Engine import page</a>
+
+</div>
+
+
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/drools.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/drools.html
new file mode 100644
index 00000000..cbc0cfc0
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/drools.html
@@ -0,0 +1,55 @@
+
+<div id="page-content">
+ <div>
+ <h1 class="heading-page">Drools Rule Engine</h1>
+ </div>
+ <div>
+ <h2>Please enter below details:</h2>
+ </div>
+ <div ng-show="showLoader" class="span loader-container">
+ <i class="icon-primary-spinner" role="img"
+ aria-label="Please wait while we load your content"></i>
+ </div>
+ <div class="row-nowrap">
+ <div class="span12">
+ <div class="form-row">
+ <label for="textinputID-2a">*Drools File</label>
+ <div class="field-group">
+ <input id="textinputID-2a" ddh-reset=""
+ class="span12" type="text" data-ng-model="postDroolsBean.droolsFile">
+ </div>
+ </div>
+ </div>
+ <br>
+ <div class="span12">
+ <div class="form-row">
+ <label for="textinputID-3a">*Class Name</label>
+ <div class="field-group">
+ <input id="textinputID-3a" ddh-reset=""
+ class="span12" type="text"
+ data-ng-model="postDroolsBean.className">
+ </div>
+ </div>
+ </div>
+ <br>
+ <div class="span12">
+ <div class="form-row">
+ <label for="textinputID-3a">*Selected Rules </label>
+ <div class="field-group">
+ <input id="textinputID-3a" ddh-reset=""
+ class="span12" type="text"
+ data-ng-model="postDroolsBean.selectedRules">
+ </div>
+ </div>
+ </div>
+
+ </div>
+ <br>
+ <div>
+ <button class="btn btn-alt btn-small" type="button" ng-click="execute(postDroolsBean);">Execute Rules</button>
+ <a href="samplePage#/droolsList">Go to Drools list page</a>
+ </div>
+</div>
+
+
+
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/frame_insert.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/frame_insert.html
new file mode 100644
index 00000000..5c2e45f9
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/frame_insert.html
@@ -0,0 +1,27 @@
+<div>test</div>
+
+<iframe id="frame_insert" src="net_map_int"></iframe>
+
+<script type="text/javascript">
+
+ var frameId = "#frame_insert";
+
+ $(frameId).load(function(){
+ iframeLoaded()
+
+ });
+
+
+ function iframeLoaded() {
+ var iFrameRef = $(frameId);
+ if(iFrameRef) {
+
+ var height = iFrameRef.contents().find("input[name='inner_height']");
+ var width = iFrameRef.contents().find("input[name='inner_width']");
+
+ iFrameRef.css('height', (height.val() != undefined ? height.val():"500px"));
+ iFrameRef.css('width', (width.val() != undefined ? width.val():"500px"));
+ iFrameRef.css('border','none');
+ }
+ }
+</script> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/notebook-frame.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/notebook-frame.html
new file mode 100644
index 00000000..c9bcc27d
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/notebook-frame.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="ISO-8859-1">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />
+
+ <title>Notebook Page</title>
+
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/b2b/css/b2b-angular/b2b-angular.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/b2b/css/b2b-angular/font_icons.css">
+
+ <link rel="stylesheet" type="text/css" href="app/fusion/styles/ecomp.css">
+ <!-- Common scripts -->
+
+ <script src="app/fusion/external/angular-1.4.8/angular.min.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-messages.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-touch.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-sanitize.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-cookies.min.js"></script>
+
+ <script src="app/fusion/external/b2b/js/b2b-angular/b2b-library.min.js"></script>
+ <script src="app/fusion/external/jquery/dist/jquery.min.js"></script>
+
+ <script src="app/fusion/external/javascript-detect-element-resize/jquery.resize.js"></script>
+ <script src="app/fusion/external/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
+ <script src="app/fusion/external/angular-gridster/dist/angular-gridster.min.js"></script>
+
+ <script src="app/fusion/scripts/DS2-services/ds2-modal/modalService.js"></script>
+ <script src="app/fusion/external/ds2/js/appDS2.js"></script>
+
+ <script src="app/fusion/scripts/DS2-services/userInfoServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/headerServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/leftMenuServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/manifestService.js"></script>
+
+ <script src="app/fusion/scripts/DS2-directives/footer.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/ds2Header.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/ds2LeftMenu.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/b2b-leftnav-ext.js"></script>
+
+ <script src="app/fusion/external/utils/js/browserCheck.js"></script>
+
+
+
+ <script src="app/fusion/scripts/DS2-controllers/ds2-sample/nbook-framecontroller.js"></script>
+
+
+ <script src="app/fusion/scripts/DS2-controllers/ds2-sample/notebookFrameController.js"></script>
+ <script src="app/fusion/scripts/DS2-controllers/ds2-sample/nbook-framecontroller.js"></script>
+
+
+ <script src="app/fusion/scripts/DS2-services/userInfoServiceDS2.js"></script>
+
+ <!-- loadjscssfile("./app/fusion/external/utils/js/browserCheck.js","js");
+ loadjscssfile("./app/fusion/scripts/DS2-services/adminService.js","js");
+ loadjscssfile("./app/fusion/scripts/DS2-services/adminMenuService.js","js"); -->
+
+
+
+<!-- //<script src="dependency/joint.js"></script> -->
+
+</head>
+ <body class="appBody" ng-app="abs">
+ <div ds2-Header class="header-container" ></div>
+ <div ds2-menu id="menuContainer" class="menu-container" ></div>
+ <div ng-view id="rightContentProfile" class="content-container"></div>
+ <div ds2-Footer class="footer-container"></div>
+ </body>
+</html>
+
+
+
+
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/notebook-page.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/notebook-page.html
new file mode 100644
index 00000000..0db933d6
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/notebook-page.html
@@ -0,0 +1,80 @@
+<div id="page-content" style="min-height: 500px">
+ <div>
+ <h1 class="heading-page">Notebook</h1>
+ </div>
+ <div class="form-row">
+ <label for="textinputID1">Notebook ID:</label><BR> <input
+ type="text" name="notebookid" b2b-reset maxlength=200 class="span12 "
+ ng-model="notebookvalue"
+ ng-init="notebookvalue='833c0a69ec1433fbb2f8752af733cf0e'"
+ style="width: 180px" />
+ </div>
+ <BR>
+
+ <!-- Use this for only 1 key value query parameter
+ <div class="fn-ebz-container">
+
+ <label class="fn-ebz-text-label">Key</label><BR>
+ <input type="text" name="key" maxlength=200 ng-model="qparamKey" style="width:180px"/>
+ </div>
+
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Value</label><BR>
+ <input type="text" name="val" maxlength=200 ng-model="qparamVal" style="width:180px"/>
+ </div> -->
+
+
+
+ <!-- Use this for multiple key value query parameters -->
+ <div
+ style="border: 2px; border-style: solid; border-color: #808080; margin-bottom: 9px; width: 55%; padding-bottom: 20px;">
+ <div ng-repeat="kv in keyValueList">
+ <div style="margin-left: 5px">
+ <div class=" row-nowrap">
+ <div class="form-row input-emphasized-field">
+
+ <label for="textinputID1">Key</label><BR> <input type="text"
+ id="textinputID-2a" b2b-reset name="key"
+ class="span12 input-emphasized" maxlength=100 ng-model="kv.qK"
+ style="width: 180px" />
+ </div>
+
+ <div class="form-row input-emphasized-field"
+ style="padding-left: 50px;">
+ <label for="textinputID1">Value</label><BR> <input
+ type="text" id="textinputID-2a" b2b-reset name="val"
+ class="span12 input-emphasized" maxlength=100 ng-model="kv.qV"
+ style="width: 180px" />
+ </div>
+
+ <div class="fn-ebz-container"
+ style="position: relative; top: 25px;">
+ <button href="javascript:void(0)" id="addbtn"
+ ng-show="{{$index==0}}"
+ style="float: right; margin-left: 150px; bottom: -17px;"
+ size="small" att-accessibility-click="13,32"
+ class="btn btn-alt btn-small" ng-click="addKeyValuePairs(kv);">Add</button>
+ <a href="javascript:void(0)" ng-show="{{$index>0}}"
+ style="float: right; margin-left: 150px; bottom: -17px;"
+ size="small" att-accessibility-click="13,32"
+ ng-click="removeKeyValuePairs($index);"
+ class="btn btn-alt btn-small"> Remove</a>
+ </div>
+
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+
+
+ <BR>
+
+ <div class="fn-ebz-container">
+ <a class="btn btn-alt btn-small" btn-type="primary"
+ att-accessibility-click="13,32" ng-click="submitParameters();">Submit</a>
+ </div>
+
+ <!-- <div ng-show="iframevisibility"><iframe id='itestfr' width="1400" height="1400"></iframe></div> -->
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/notebook-viz.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/notebook-viz.html
new file mode 100644
index 00000000..4c89ee41
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-samplePages/notebook-viz.html
@@ -0,0 +1,7 @@
+ <div style="min-height:500px">
+
+
+ <div><iframe id='itestframe' width="1400" height="1400" style="margin-left:300px;"></iframe></div>
+
+
+ </div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2Header.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2Header.html
new file mode 100644
index 00000000..ef847518
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2Header.html
@@ -0,0 +1,69 @@
+<div style="position:relative;width: 100%;top: 0px;left: 0;background-color: #222;z-index:9999">
+ <header class="b2b-header-tabs" b2b-header-responsive ng-show="{{showHeader}}">
+ <ul class="header__items" role="navigation">
+ <li class="header__item icon__item" tabindex="0">
+
+ <!--
+ -TODO: needs to be this icon but is not availble
+ -->
+
+ <span class="globe-text">ECOMP Portal</span>
+ </li>
+ <li b2b-header-menu class="header__item b2b-headermenu" ng-repeat="item in menuItems" role="presentation">
+ <a href="#" class="menu__item" role="menuitem"></a>
+ <div class="header-secondary-wrapper">
+ <ul class="header-secondary" role="menu">
+ <li class="header-subitem" b2b-header-submenu ng-repeat="i in item.subitems" role="presentation">
+ <a href="#" class="menu__item" aria-haspopup="{{i.links ? true:false}}" role="menuitem">{{i.value}}</a>
+ <div class="header-tertiary-wrapper" ng-if="i.links">
+ <ul class="header-tertiary" role="menu">
+ <li b2b-header-tertiarymenu ng-repeat="link in i.links" role="presentation">
+ <label>{{link.title}}</label>
+ <div b2b-tertiary-link ng-repeat="title in link.value">
+ <a href="{{link.href}}" class="header-tertiaryitem" ng-if="!title.subitems" aria-haspopup="false" role="menuitem"><span class="b2b-label-hide">{{link.title}}</span>{{title.title}}</a>
+ <a href="{{link.href}}" class="header-tertiaryitem" b2b-header-togglemenu ng-if="title.subitems" aria-haspopup="true" role="menuitem"><span class="b2b-label-hide">{{link.title}}</span>{{title.title}}</a>
+ <ul class="header-quarternary" role="menu" ng-if="title.subitems">
+ <li b2b-header-quarternarymenu role="presentation">
+ <a href="{{nav.href}}" ng-repeat="nav in title.subitems" role="menuitem" aria-haspopup="true">
+ {{nav.title}}
+ </a>
+ </li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </li>
+ <!--<li class="header__item profile" b2b-header-responsive>-->
+ <li class="header__item profile">
+
+ <label ng-click="showInfo = !showInfo" class="headerUserName" tabindex="0" ddh-accessibility-click="13,32">
+ <!-- Temporarily copied the font file from DS1 to local directory(as DS2 component is not working yet) -->
+ <!-- <div class="icon-user-small login-snippet-icon"></div> -->
+ <i class="icon-user" style="color:#FFFFFF;"></i>
+ <span class="header_profile">{{userFirstName}}</span>
+ </label>
+
+ <div class="profile-info" ng-class="{'open': showInfo,'': !showInfo}">
+ <h6 id="example_source_john-smith">{{userProfile.fullName}}</h6>
+ <label for='email'>Email</label> <span id='email'>{{userProfile.email}}</span>
+ <label for='profileId'>Organization User ID</label> <span id='profileId'>{{userProfile.orgUserId}}</span>
+ <!-- <label for='comp'>Company</label> <span id='comp'>{{userProfile.serviceProviderName}}</span> -->
+ <i class="caret"></i>
+ <!-- <p>
+ <a href="{{userProfile.userProfileUrl}}" style="float: left">My Profile</a>
+ <a href="{{userProfile.companyProfileUrl}}" style="float: right">Company Profile</a>
+ </p> -->
+ <p>
+ <a class="btn btn-alt" style="float: right" href="logout.htm">Log Out</a>
+ </p>
+ </div>
+ <div style="width:250px;"></div>
+ </li>
+ </ul>
+ </header>
+
+ </div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2Left_menu.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2Left_menu.html
new file mode 100644
index 00000000..c30a0b69
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2Left_menu.html
@@ -0,0 +1,3 @@
+<div>
+ <left-menu-ecomp menu-data="menuData"></left-menu-ecomp>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/loginSnippet.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/loginSnippet.html
new file mode 100644
index 00000000..19868bb6
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/loginSnippet.html
@@ -0,0 +1,63 @@
+
+
+<script>
+var loginSnippetCtrl = function ($scope,$http, $log,UserInfoServiceDS2){
+ /*Define fields*/
+ $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;
+ if (typeof(userInfo.USER_ORG_USER_ID) != "undefined" && userInfo.USER_ORG_USER_ID!=null && userInfo.USER_ORG_USER_ID!='')
+ $scope.userProfile.orgUserId = userInfo.USER_ORG_USER_ID;
+ }
+ }
+ /*getting user info from session*/
+ $scope.getUserNameFromSession = function(){
+ UserInfoService.getFunctionalMenuStaticDetailSession()
+ .then(function (response) {
+ var j = response;
+ // console.log(response);
+ $scope.userProfile.fullName = response.userName;
+ $scope.userProfile.orgUserId = response.orgUserId;
+ $scope.userProfile.email = response.email;
+ });
+ }
+ /*getting user info from shared context*/
+ $scope.getUserName=function() {
+ var promise = UserInfoService.getFunctionalMenuStaticDetailShareContext();
+ promise.then(
+ function(res) {
+ if(res==null || res==''){
+ $log.info('loginSnippet: get user information from session');
+ $scope.getUserNameFromSession();
+ }else{
+ // $log.info('Received User information from shared context',res);
+ var resData = res;
+ /* $scope.inputUserInfo(resData); */
+ $scope.userProfile.fullName = $scope.userProfile.firstName+ ' '+ $scope.userProfile.lastName;
+ }
+ },
+ function(err) {
+ console.log('error');
+ }
+ );
+ };
+ /*call the get user info function*/
+ try{
+ $scope.getUserName();
+ }catch(err){
+ $log.info('Error while getting User information',err);
+ }
+}
+ </script> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/welcome-content.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/welcome-content.html
new file mode 100644
index 00000000..2626d01a
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/welcome-content.html
@@ -0,0 +1,191 @@
+<div id="page-content" class="content" gridster="gridsterOpts">
+
+ <!-- Gridster Item starts here -->
+ <div>
+ <ul>
+ <li gridster-item="item" ng-repeat="item in standardItems">
+ <div class="box">
+ <div class="box-header">
+ <table >
+ <tr>
+ <th table-body width="5%" style="height:20px; float:left;height:100%;" class="icon-content-gridguide" ></th>
+ <th>
+ <h3 ng-if="item.max">{{item.headerText}}</h3>
+ <h3 ng-hide="item.max">{{item.headerText.length<36?item.headerText:item.headerText.substring(0,35)+' ...'}} </h3>
+ </th>
+ <th>
+ <div style="height:20px;" class="box-header-btns pull-right" >
+ <div class="tileMinMaxBtn" ng-click="toggleMinMax($index,'')">
+ <span class="tileMinMaxIcon">
+ <i class="icon-controls-up" style="color:gray" ng-show="item.max"></i>
+ <i class="icon-controls-down" style="color:gray" ng-hide="item.max"></i>
+ </span>
+ </div>
+<!-- <a title="settings" ng-click="openSettings(widget)"><i class="glyphicon glyphicon-cog"></i></a>
+ <a title="Remove widget" ng-click="remove(widget)"><i class="glyphicon glyphicon-trash"></i></a> -->
+ <class="icon-up">
+ </div>
+ </th>
+ </tr>
+ </table>
+ </div>
+ <div class="box-content">
+
+ <div class="box-content-frame" align="center">
+
+ <div align="left" ng-if="item.headerText=='Dashboard' && item.max" style="height: 360px;">
+ <label>&nbsp; Sample Charts</label><BR>
+ <iframe scrolling="yes" frameBorder="0" style="display:block; width: 460px; height:100%;" src="static/fusion/sample/html/wordcloud.html"></iframe>
+ </div>
+ <div ng-if="item.headerText=='Donut Chart' && item.max">
+ <iframe scrolling="no" frameBorder="0" style="width: 310px; height: 210px;" src="static/fusion/sample/html/donut_d3.html"></iframe>
+ </div>
+ <div ng-if="item.headerText=='Area Chart' && item.max">
+ <div id="areaChart">
+ <div> <svg></svg> </div>
+ <script src="static/fusion/sample/html/js/area_chart.min.js"></script>
+ </div>
+ <!-- <iframe scrolling="no" frameBorder="0" style="width: 310px; height: 210px;" src="static/fusion/sample/html/area_chart.html"></iframe> -->
+ </div>
+ <div ng-if="item.headerText=='Pie Chart' && item.max">
+ <iframe scrolling="no" frameBorder="0" style="width: 310px; height: 210px;" src="static/fusion/sample/html/pie_chart.html"></iframe>
+ </div>
+ <div ng-if="item.headerText=='Line Chart' && item.max">
+ <div id="lineChart">
+ <div> <svg></svg> </div>
+ <script src="static/fusion/sample/html/js/line_chart.min.js"></script>
+ </div>
+
+<!-- <iframe scrolling="no" frameBorder="0" style="width: 310px; height: 210px;" src="static/fusion/sample/html/line_chart.html"></iframe> -->
+ </div>
+ <div ng-if="item.headerText=='Gauges' && item.max">
+ <iframe scrolling="no" frameBorder="0" style="width: 310pxx; height: 210px;" src="static/fusion/sample/html/d3_gauges_demo.html"></iframe>
+ </div>
+
+ <div align="left" ng-if="item.headerText=='Traffic distribution by day of week' && item.max">
+ <div id = "selectedTrafficDay">
+ <ul>
+ <li ng-repeat="Daytab in selectedTrafficDay"
+ ng-class="{active1:isActiveTab1(Daytab.url)}"
+ ng-click="onClickTab1(Daytab)">{{Daytab.title}}</li>
+ </ul>
+ <div id = "SelectedTrafficeDayView">
+ <div ng-include="currentSelectedDayTab"></div>
+ </div>
+ <script type="text/ng-template" id="#Monday">
+ <div id="Monday" align="centers"><img src="static/fusion/sample/images/tunnels/1_mon.png" width=100% height=100% alt="Monday"></div>
+ </script>
+ <script type="text/ng-template" id="#Tuesday">
+ <div id="Tuesday" align="center"><img src="static/fusion/sample/images/tunnels/2_tue.png" width=100% height=100% alt="Tuesday"></div>
+ </script>
+ <script type="text/ng-template" id="#Wednesday">
+ <div id="Wednesday" align="center"><img src="static/fusion/sample/images/tunnels/3_wed.png" width=100% height=100% alt="Wednesday"></div>
+ </script>
+ <script type="text/ng-template" id="#Thursday">
+ <div id="Thursday" align="center"><img src="static/fusion/sample/images/tunnels/4_thu.png" width=100% height=100% alt="Thursday"></div>
+ </script>
+ <script type="text/ng-template" id="#Friday">
+ <div id="Friday" align="center"><img src="static/fusion/sample/images/tunnels/5_fri.png" width=100% height=100% alt="Friday"></div>
+ </script>
+ <script type="text/ng-template" id="#Saturday">
+ <div id="Saturday" align="center"><img src="static/fusion/sample/images/tunnels/6_sat.png" width=100% height=100% alt="Saturday"></div>
+ </script>
+ <script type="text/ng-template" id="#Sunday">
+ <div id="Sunday" align="center"><img src="static/fusion/sample/images/tunnels/7_sun.png" width=100% height=100% alt="Sunday"></div>
+ </script>
+ </div>
+ </div>
+
+ <div align="left" ng-if="item.headerText=='Busy hour traffic analysis by day of week' && item.max">
+ <div id = "BusyHourTraffic">
+ <ul>
+ <li ng-repeat="TrafficTab in BusyHourTraffic"
+ ng-class="{active2:isActiveTab2(TrafficTab.url)}"
+ ng-click="onClickTab2(TrafficTab)">{{TrafficTab.title}}</li>
+ </ul>
+ <div id = "BusyHourTrafficView">
+ <div ng-include="currentSelectedBusyHourTraffic"></div>
+ </div>
+ <script type="text/ng-template" id="#Incoming">
+ <div id="Incoming" align="left"><img src="static/fusion/sample/images/tunnels/BH_DLSTX_IN.png" width=100% height=100%></div>
+ </script>
+ <script type="text/ng-template" id="#Outgoing">
+ <div id="Outgoing" align="center"><img src="static/fusion/sample/images/tunnels/BH_DLSTX_OUT.png" width=100% height=100%></div>
+ </script>
+ <script type="text/n g-template" id="#Default">
+ <div id="Default" align="center"><img src="static/fusion/sample/images/tunnels/BH_Nat_Def.png" width=100% height=100%></div>
+ </script>
+ <script type="text/ng-template" id="#Priority">
+ <div id="Priority" align="center"><img src="static/fusion/sample/images/tunnels/BH_Nat_Priority.png" width=100% height=100%></div>
+ </script>
+ <script type="text/ng-template" id="#BHNational">
+ <div id="BHNational" align="center"><img src="static/fusion/sample/images/tunnels/BH_Nat.png" width=100% height=100%></div>
+ </script>
+ </div>
+ </div>
+
+ <div align="left" ng-if="item.headerText=='Additional Samples' && item.max">
+ <label>&nbsp;Quick Links</label>
+ <table table
+ id="additional-samples-table"
+ search-string="searchStringIgnored"
+ view-per-page="viewPerPageIgnored"
+ current-page="currentPageIgnored"
+ total-page="totalPageIgnored">
+
+
+ <tr>
+ <td table-body width="90%" ><a href="http://jquery.com" target="_blank">JQuery</a></td>
+ <td table-body width="10%">
+ <a ng-click="removeRole();" class="icon-misc-trash"></a>
+ </td>
+ </tr>
+ <tr>
+ <td table-body width="90%" ><a href="app/sequence/views/details.html" target="_blank">Network Simulation</a></td>
+ <td table-body width="10%">
+ <a ng-click="removeRole();" class="icon-misc-trash"></a>
+ </td>
+ </tr>
+ <!-- <tr>
+ <td table-body width="90%" ><a href="sample_heat_map.htm" target="">Heat Map</a></td>
+ <td table-body width="10%">
+ <a ng-click="removeRole();" ><img src="static/fusion/sample/images/deleteicon.gif"></a>
+ </td>
+ </tr> -->
+ <tr>
+ <td table-body width="90%" ><a href="leafletMap.htm" target="">Animated Map</a></td>
+ <td table-body width="10%">
+ <a ng-click="removeRole();" class="icon-misc-trash"></a>
+ </td>
+ </tr>
+ <tr>
+ <td table-body width="90%" ><a href="collaborate_list.htm">Chat Session</a></td>
+ <td table-body width="10%">
+ <a ng-click="removeRole();" class="icon-misc-trash"></a>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <div ng-if="item.headerText=='Sticky Notes' && item.max">
+ <div style="width:100%; height:400px" id="scribble-pad"><pre id="scribble" contenteditable="true" onkeyup="storeUserScribble(this.id);"></pre></div>
+ </div>
+
+ <div ng-if="item.headerText=='Service Configuration' && item.max">
+<!-- <accordion close-others="true" css="accordion" > -->
+ <accordion-group heading="Service Configuration" ng-if="group11.open">
+ <iframe style="overflow:auto" frameBorder="0" align="center" width="100%" height="400px" src="static/fusion/sample/org_chart/example.html" ></iframe>
+ </accordion-group>
+ <accordion-group heading="VSP Service Configuration" ng-if="group12.open">
+ <iframe style="overflow:auto" frameBorder="0" align="center" width="100%" height="400px" src="static/fusion/sample/org_chart/example_vsp.html" ></iframe>
+ </accordion-group>
+<!-- </accordion> -->
+ </div>
+
+ </div>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <!-- Gridster Item ends here -->
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/welcome-sample.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/welcome-sample.html
new file mode 100644
index 00000000..52305d55
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/welcome-sample.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<!-- Single-page application for EPSDK-App welcome page using DS2 look and feel -->
+<html>
+<head>
+ <meta charset="ISO-8859-1">
+ <title>Welcome</title>
+
+ <!-- Common 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/angular-gridster/dist/angular-gridster.min.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/angular-bootstrap/ui-bootstrap-csp.css">
+
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-arrows.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-buildings.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-content.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-controls.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-datanetwork.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-devices.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-documents.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-healthcare.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-location.css">
+
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-misc.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-numslets.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-people.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-retail.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-securityalerts.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-social.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-speechbubbles.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-test.css">
+
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-transportation.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/icon-weather.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/x-tabs-pills.css">
+
+ <link rel="stylesheet" type="text/css" href="app/fusion/styles/ecomp.css">
+
+ <!-- Common scripts -->
+
+ <script src="app/fusion/external/angular-1.4.8/angular.min.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-messages.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-touch.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-sanitize.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-cookies.min.js"></script>
+
+ <script src="app/fusion/external/ds2/js/b2b-angular/b2b-library.min.js"></script>
+ <script src="app/fusion/external/jquery/dist/jquery.min.js"></script>
+
+ <script src="app/fusion/external/javascript-detect-element-resize/jquery.resize.js"></script>
+ <script src="app/fusion/external/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
+ <script src="app/fusion/external/angular-gridster/dist/angular-gridster.min.js"></script>
+
+ <script src="app/fusion/scripts/DS2-services/ds2-modal/modalService.js"></script>
+ <script src="app/fusion/external/ds2/js/appDS2.js"></script>
+
+ <script src="app/fusion/scripts/DS2-services/userInfoServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/headerServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/leftMenuServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/manifestService.js"></script>
+
+ <script src="app/fusion/scripts/DS2-directives/footer.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/ds2Header.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/ds2LeftMenu.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/b2b-leftnav-ext.js"></script>
+ <script src="app/fusion/external/ds2/js/digital-ng-library/digital-design-library.js"></script>
+
+ <!-- Page-specific items -->
+
+ <script src="app/fusion/scripts/DS2-services/userInfoServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-controllers/welcome-route.js"></script>
+ <script src="app/fusion/scripts/DS2-controllers/welcome-controller.js"></script>
+
+ <link rel="stylesheet" type="text/css" href="static/fusion/sample/css/scribble.css" />
+ <link rel="stylesheet" type="text/css" href="static/fusion/sample/css/flexslider.css" />
+ <link rel="stylesheet" type="text/css" href="static/fusion/sample/css/welcome.css" />
+
+ <script src="static/fusion/d3/js/d3.v3.min.js"></script>
+ <script src="static/fusion/d3/js/nv.d3.min.js"></script>
+ <script src="static/fusion/d3/js/models/axis.min.js"></script>
+
+</head>
+ <body class="appBody" ng-app="abs">
+ <!-- commented the header for now to avoid duplicate headers on portal -->
+ <div ds2-Header class="header-container" ></div>
+ <div ds2-menu id="menuContainer" class="menu-container" ></div>
+ <div ng-view id="rightContentProfile" class="content-container"></div>
+ <div ds2-Footer class="footer-container"></div>
+ </body>
+</html>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/welcome.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/welcome.html
new file mode 100644
index 00000000..b2cafdac
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/welcome.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html>
+<!-- Single-page application for EPSDK-App welcome page using DS2 look and feel. X-->
+<html>
+<head>
+ <meta charset="ISO-8859-1">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />
+
+ <title>Welcome</title>
+
+ <!-- B2b Library -->
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/b2b/css/b2b-angular/b2b-angular.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/b2b/css/b2b-angular/font_icons.css">
+
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/ds2/css/digital-ng-library/ionicons.css">
+
+ <!-- icons in open source -->
+ <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/external/angular-bootstrap/ui-bootstrap-csp.css">
+ <link rel="stylesheet" type="text/css" href="app/fusion/external/angular-gridster/dist/angular-gridster.min.css">
+ <link rel="stylesheet" type="text/css" href="static/fusion/sample/css/scribble.css" />
+ <link rel="stylesheet" type="text/css" href="static/fusion/sample/css/welcome.css" />
+
+ <link rel="stylesheet" type="text/css" href="app/fusion/styles/ecomp.css">
+
+ <!-- Common scripts -->
+ <script src="app/fusion/external/angular-1.4.8/angular.min.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-messages.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-touch.js"></script>
+ <script src="app/fusion/external/angular-1.4.8/angular-sanitize.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-cookies.min.js"></script>
+ <script src="app/fusion/external/jquery/dist/jquery.min.js"></script>
+ <script src="app/fusion/external/javascript-detect-element-resize/jquery.resize.js"></script>
+ <script src="app/fusion/external/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
+ <script src="app/fusion/external/angular-gridster/dist/angular-gridster.min.js"></script>
+
+ <!-- EPSDK App scripts and common services -->
+ <!-- B2b Library -->
+ <script src="app/fusion/external/b2b/js/b2b-angular/b2b-library.min.js"></script>
+ <script src="app/fusion/scripts/DS2-services/ds2-modal/modalService.js"></script>
+ <script src="app/fusion/external/ds2/js/appDS2.js"></script>
+
+ <script src="app/fusion/scripts/DS2-services/userInfoServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/headerServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/leftMenuServiceDS2.js"></script>
+ <script src="app/fusion/scripts/DS2-services/manifestService.js"></script>
+
+ <script src="app/fusion/scripts/DS2-directives/footer.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/ds2Header.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/ds2LeftMenu.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/b2b-leftnav-ext.js"></script>
+ <script src= "app/fusion/scripts/DS2-services/userInfoServiceDS2.js"></script>
+
+ <!-- Page specific items -->
+ <script src="app/fusion/scripts/DS2-controllers/welcome-controller.js"></script>
+ <script src="app/fusion/scripts/DS2-controllers/welcome-route.js"></script>
+
+<style>
+
+.controls {
+ margin-bottom: 20px;
+}
+.page-header {
+ margin-top: 20px;
+}
+ul {
+ list-style: none;
+}
+.box {
+ height: 100%;
+ border: 1px solid #ccc;
+ background-color: #fff;
+ position: relative;
+ overflow: hidden;
+}
+.box-header {
+ background-color: #eee;
+ padding: 0px 0px 0px 0px;
+/* border-bottom: 1px solid #ccc; */
+ margin-bottom: -25px;
+ cursor: move;
+ position: relative;
+}
+.box-header h3 {
+ margin-top: 0px;
+ display: inline-block;
+}
+.box-content {
+ padding: 10px;
+ display:block;
+ height: 100%;
+ position: relative;
+ overflow-x:auto;
+ overflow-y:auto;
+}
+.box-header-btns {
+ top: 15px;
+ right: 10px;
+ cursor: pointer;
+ position: absolute;
+}
+
+.gridster {
+ border: none;
+ position:relative;
+}
+
+.box-content .box-content-frame{
+
+}
+
+.box table{
+border:none;
+display:block;
+}
+
+.box table tr{
+line-height:20px;
+}
+
+.box table th{
+border:none;
+line-height:20px;
+}
+
+/* .header-container{
+ margin-top:-50px;
+} */
+/* .content-container{
+ margin-top:50px;
+} */
+.menu-container{
+margin-top:0px
+}
+
+.handle-e {
+width:3px;
+}
+
+</style>
+
+</head>
+ <body class="appBody" ng-app="abs">
+ <!-- commented the header for now to avoid duplicate headers on portal -->
+ <div ds2-Header class="header-container" ></div>
+ <div ds2-menu id="menuContainer" class="menu-container"></div>
+ <div ng-view id="rightContentProfile" class="content-container"></div>
+ <div ds2-Footer class="footer-container"></div>
+ </body>
+</html>