summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports')
-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
17 files changed, 1173 insertions, 0 deletions
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>