aboutsummaryrefslogtreecommitdiffstats
path: root/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports
diff options
context:
space:
mode:
authorshentao <shentao@chinamobile.com>2017-09-01 11:57:47 +0800
committershentao <shentao@chinamobile.com>2017-09-01 11:57:58 +0800
commit57dbba269d19bc59fad89160200bb2dbcccb9003 (patch)
treed466041ceffa2161124ca79a48b3e077777c74b8 /usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports
parent4ff32341a0af1972b44a7410e76e9b231131e7ab (diff)
Upload Monitor function code
Change-Id: I33ad76221b4cb771a298ff240245fc24be664efb Issue-Id: USECASEUI-6 Signed-off-by: shentao <shentao@chinamobile.com>
Diffstat (limited to 'usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports')
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/all-reports.html77
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/directive/dynamicform.js113
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/directive/step-form-directive.js14
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-del-confirm.html26
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-formfield-del-confirm.html26
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-security-role-del-confirm.html26
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-security-user-del-confirm.html26
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-user-role-confirm-toggle.html23
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-col-edit.html130
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-drilldown-edit.html112
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-formfield-edit.html149
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-report-name-validation.html20
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-test-run-sql.html62
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-chart-wizard.html897
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-import.html14
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-run.html96
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-search.html54
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step1.json218
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step2.json34
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step3.json19
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step4.json25
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step5.json19
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step6.json28
-rw-r--r--usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/report-step.html243
24 files changed, 2451 insertions, 0 deletions
diff --git a/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/all-reports.html b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/all-reports.html
new file mode 100644
index 00000000..7f470d40
--- /dev/null
+++ b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/all-reports.html
@@ -0,0 +1,77 @@
+<!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/ds2/css/digital-ng-library/ecomp-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-controllers/ds2-reports/report-chart-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/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/directive/dynamicform.js b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/directive/dynamicform.js
new file mode 100644
index 00000000..9064b0dc
--- /dev/null
+++ b/usecaseui-common/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/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/directive/step-form-directive.js b/usecaseui-common/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/usecaseui-common/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/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-del-confirm.html b/usecaseui-common/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/usecaseui-common/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/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-formfield-del-confirm.html b/usecaseui-common/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/usecaseui-common/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/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-security-role-del-confirm.html b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-security-role-del-confirm.html
new file mode 100644
index 00000000..01d1e609
--- /dev/null
+++ b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-security-role-del-confirm.html
@@ -0,0 +1,26 @@
+<div style="height:300px">
+ <div class="b2b-modal-header ng-scope in">
+ <h2 id="myModalLabel" modal-title="">Remove Report Role</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">{{securityRoleName}} will be removed. Would 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/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-security-user-del-confirm.html b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-security-user-del-confirm.html
new file mode 100644
index 00000000..6620fe7c
--- /dev/null
+++ b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-security-user-del-confirm.html
@@ -0,0 +1,26 @@
+<div style="height:300px">
+ <div class="b2b-modal-header ng-scope in">
+ <h2 id="myModalLabel" modal-title="">Remove Report User</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">{{securityUserName}} will be removed. Would 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/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-user-role-confirm-toggle.html b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-user-role-confirm-toggle.html
new file mode 100644
index 00000000..21bb046f
--- /dev/null
+++ b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-user-role-confirm-toggle.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 {{rowData.accessAllowed?"grant":"revoke"}} {{rowData.name}} edit access. Would you like 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="toggleEditAccessStatus(rowData);">Ok</button>
+ <button class="btn btn-clear btn-medium" type="button"
+ ng-click="cancelEditAccessToggle(rowData);">Cancel</button>
+ </div>
+ </div>
+</div>
diff --git a/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-col-edit.html b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-col-edit.html
new file mode 100644
index 00000000..e74f89a8
--- /dev/null
+++ b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-col-edit.html
@@ -0,0 +1,130 @@
+<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;
+}
+
+
+#drilldownOption .selectWrap{
+ width:450px;
+}
+</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" style="width:350px;">Drill-down Link:</td>
+ <td id="drilldownOption">
+ <select name="drillDown" b2b-dropdown ng-model="selectedDrillDownReport.value" placeholder-text="Select">
+ <option b2b-dropdown-list option-repeat="d in drilldownReports" value="{{d.id}}">{{d.name}}</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/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-drilldown-edit.html b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-drilldown-edit.html
new file mode 100644
index 00000000..6b98ac78
--- /dev/null
+++ b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-drilldown-edit.html
@@ -0,0 +1,112 @@
+<style>
+#columnEditTable table tbody td {
+ border: none;
+}
+
+#columnEditTable table tbody tr {
+ border: none;
+}
+
+.colTableLeftColumn {
+ width: 45%;
+ vertical-align:center;
+}
+
+.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="">Drill-down Parameters Configuration</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 id="columnEditTable" ng-repeat="drillDownOption in drillDownOptionList">
+ <table class="striped">
+ <tbody>
+ <fieldset role="radiogroup" radio-group-accessibility>
+ <tr ng-show="childReportFF.length>0||childReportCol.length>0">
+ <td colspan="2">
+ <h2>{{drillDownOption.name}}</h2>
+ </td>
+ </tr>
+
+
+ <tr ng-show="childReportFF.length>0||childReportCol.length>0">
+ <td>
+ <div class="form-row" role="radio" style="margin-top:0px;">
+ <label for="optionsRadios2{{$index}}" class="radio">
+ <input type="radio" ng-model="drillDownOption.selectedvalueradioGroup.name" id="optionsRadios2{{$index}}" name="optionsRadio2{{$index}}" value="fixedValue">
+ <i class="skin"></i>
+ <span>Fixed Value</span>
+ </label>
+ </div>
+ </td>
+ <td><input type="text" name="defaultValue" ng-model="drillDownOption.fixedValue.value" class="colTableInput"></td>
+ </tr>
+
+
+ <tr ng-show="childReportCol.length>0">
+ <td>
+ <div class="form-row" role="radio" style="margin-top:0px;">
+ <label for="optionsRadios3{{$index}}" class="radio">
+ <input type="radio" ng-model="drillDownOption.selectedvalueradioGroup.name" id="optionsRadios3{{$index}}" name="optionsRadio3{{$index}}" value="reportCol">
+ <i class="skin"></i>
+ <span>Value of Column</span>
+ </div>
+ </td>
+ <td>
+ <select name="childReportColumn" b2b-dropdown ng-model="drillDownOption.selectedChildReportColumn.value" placeholder-text="Select">
+ <option b2b-dropdown-list option-repeat="d in childReportCol" value="{{d.id}}">{{d.name}}</option>
+ </select>
+ </td>
+
+ </tr>
+
+ <tr ng-show="childReportFF.length>0">
+ <td>
+ <div class="form-row" role="radio" style="margin-top:0px;">
+ <label for="optionsRadios4{{$index}}" class="radio">
+ <input type="radio" ng-model="drillDownOption.selectedvalueradioGroup.name" id="optionsRadios4{{$index}}" name="optionsRadio4{{$index}}" value="reportFF">
+ <i class="skin"></i>
+ <span>Value of Form Field</span>
+ </div>
+ </td>
+ <td>
+ <select name="childReportFormField" b2b-dropdown ng-model="drillDownOption.selectedChildReportFormField.value" placeholder-text="Select">
+ <option b2b-dropdown-list option-repeat="d in childReportFF" value="{{d.id}}">{{d.name}}</option>
+ </select>
+ </td>
+ </tr>
+
+
+
+ </fieldset>
+
+
+ </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="complete()">Complete</button>
+ </div>
+
+ </div>
+ </form>
+ <br />
+ </div>
+</div> \ No newline at end of file
diff --git a/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-formfield-edit.html b/usecaseui-common/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/usecaseui-common/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/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-report-name-validation.html b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-report-name-validation.html
new file mode 100644
index 00000000..50132ecf
--- /dev/null
+++ b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-report-name-validation.html
@@ -0,0 +1,20 @@
+<div style="height: 220px;">
+ <div class="b2b-modal-header ng-scope in">
+ <h2 id="myModalLabel" modal-title="">Warning</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="b2b-modal-footer ng-scope ng-isolate-scope in">
+ <p>Please enter the missing report name.</p>
+
+ <button class="btn btn-alt btn-small" type="button"
+ ng-click="close()">close</button>
+ </div>
+ </form>
+ <br />
+ </div>
+</div> \ No newline at end of file
diff --git a/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-test-run-sql.html b/usecaseui-common/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/usecaseui-common/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/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-chart-wizard.html b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-chart-wizard.html
new file mode 100644
index 00000000..8558729e
--- /dev/null
+++ b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-chart-wizard.html
@@ -0,0 +1,897 @@
+<style>
+table tbody td {
+ border: none;
+}
+
+table tbody tr {
+ border: none;
+}
+
+table{
+ border: none;
+ margin-bottom:0px;
+}
+
+#RangeTable{
+ margin-top: 5px;
+ border: 1px solid black;
+}
+</style>
+
+<div id="page-content">
+<h1 class="heading-page">Report Chart Configuration</h1>
+
+<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">
+<div>
+<table>
+ <thead>
+ <tr>
+ <th width="30%">Chart Type</th>
+ <th></th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tr>
+ <td>
+ <select name="chartType" b2b-dropdown ng-model="reportRunJson.chartType">
+ <option b2b-dropdown-list option-repeat="d in chartTypeOptions" value="{{d.value}}">{{d.text}}</option>
+ </select>
+ </td>
+ <td></td>
+ </tr>
+ </tbody>
+</table>
+
+<table>
+ <thead>
+ <tr>
+ <th width="50px">Width (px)</th>
+ <th>Height (px)</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <input type="text" name="displayName" ng-model="reportRunJson.width" style="width:100px;">
+ </td>
+ <td>
+ <input type="text" name="displayName" ng-model="reportRunJson.height" style="width:100px;">
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<table>
+ <thead>
+ <tr>
+ <th width="50px">Title</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <fieldset role="radiogroup" radio-group-accessibility>
+ <td>
+ <label for="optionsRadiosShowTitleTrue" class="radio">
+ <input type="radio" ng-model="reportRunJson.showTitle" id="optionsRadiosShowTitleTrue" name="optionsRadiosShowTitleTrue" value="true">
+ <i class="skin"></i>
+ <span>Show</span>
+ </label>
+ </td>
+ <td>
+ <label for="optionsRadiosShowTitleFalse" class="radio">
+ <input type="radio" ng-model="reportRunJson.showTitle" id="optionsRadiosShowTitleFalse" name="optionsRadiosShowTitleFalse" value="false">
+ <i class="skin"></i>
+ <span>Hide</span>
+ </label>
+ </td>
+ </fieldset>
+ </tr>
+
+ </tbody>
+</table>
+
+<table>
+ <thead>
+ <tr>
+ <th width="30%">Domain Axis</th>
+ <th width="30%">Category</th>
+ <th width="40%"></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <select name="chartType" b2b-dropdown ng-model="reportRunJson.domainAxis">
+ <option b2b-dropdown-list option-repeat="d in reportRunJson.chartColumnJSONList" value="{{d.value}}">{{d.title}}</option>
+ </select>
+ </td>
+ <td>
+ <select name="chartType" b2b-dropdown ng-model="reportRunJson.categoryAxis">
+ <option b2b-dropdown-list option-repeat="d in reportRunJson.chartColumnJSONList" value="{{d.value}}">{{d.title}}</option>
+ </select>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+
+ <div id="RangeTable">
+
+<table ng-repeat="rangeReport in reportRunJson.rangeAxisList">
+ <thead>
+ <tr>
+ <th width="18%">Range Axis</th>
+ <th width="15%">Y Axis</th>
+ <th width="15%">Chart Title</th>
+ <th width="22%">Color</th>
+ <th width="25%">Line Type</th>
+ <th></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <select name="chartType" b2b-dropdown ng-model="rangeReport.rangeAxisLabelJSON.value" placeholder-text="Select" ng-disabled="rangeReport.removed=='true'">
+ <option b2b-dropdown-list option-repeat="d in reportRunJson.chartColumnJSONList" value="{{d.value}}">{{d.title}}</option>
+ </select>
+ </td>
+ <td>
+ <input type="text" name="displayName" ng-model="rangeReport.rangeYAxis" ng-disabled="rangeReport.removed=='true'" style="width:100px;">
+ </td>
+ <td>
+ <input type="text" name="displayName" ng-model="rangeReport.rangeChartGroup" ng-disabled="rangeReport.removed=='true'" style="width:150px;">
+ </td>
+ <td>
+ <select name="chartType" b2b-dropdown ng-model="rangeReport.rangeColor" ng-disabled="rangeReport.removed=='true'">
+ <option b2b-dropdown-list option-repeat="d in rangeColors" value="{{d.value}}">{{d.title}}</option>
+ </select>
+ </td>
+ <td>
+ <select name="lineType" b2b-dropdown ng-model="rangeReport.rangeLineType" ng-disabled="rangeReport.removed=='true'">
+ <option b2b-dropdown-list option-repeat="d in lineTypes" value="{{d.value}}">{{d.title}}</option>
+ </select>
+ </td>
+ <td>
+ <button ng-show="$index==0" type="submit" style="width: 90px; height:35px;margin-left:5px;" class="btn btn-secondary btn-small" ng-click="addRangeAxisRow()">Add</button>
+ <span ng-hide="$index==0">
+ <button ng-if="rangeReport.removed!='true'" type="submit" style="width: 90px; height:35px;margin-left:5px;" class="btn btn-secondary btn-small" ng-click="removeRangeAxisRow($index)">Remove</button>
+ <button ng-if="rangeReport.removed=='true'" type="submit" style="width: 90px; height:35px;margin-left:5px;" class="btn btn-secondary btn-small" disabled="disabled">Removed</button>
+ </span>
+ </td>
+ </tr>
+
+ </tbody>
+</table>
+</div>
+
+</div>
+
+<div ng-show=false style="min-height:500px" data-ng-init="init()">
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label">Chart Type</label><BR>
+ <div class="form-field" att-select="chartTypes" ng-model="reportRunJson.chartTypeJSON" placeholder="Select an Option" show-input-filter="true" ng-change="actionClicked()"></div>
+ </div>
+
+
+ <div class="fn-ebz-container" style="position:relative; top: -8px;">
+ <label class="fn-ebz-text-label">Animate</label><BR>
+ <div><input type="checkbox" ng-model="reportRunJson.animation" att-checkbox data-ng-value="true"></div>
+ </div>
+ <BR>
+
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label">Width (Px)</label><BR>
+ <input type="text" name="chartWidth" maxlength=4 only-digits ng-model="reportRunJson.width" style="width:80px"/>
+ </div>
+
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label">Height (Px)</label><BR>
+ <input type="text" name="chartHeight" maxlength=4 only-digits ng-model="reportRunJson.height" style="width:80px"/>
+ </div>
+ <BR>
+
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Title</label><BR>
+ <span><input name="tle" type="radio" ng-model="reportRunJson.showTitle" data-ng-value="true"/>Show</span>
+ <span><input name="tle" type="radio" ng-model="reportRunJson.showTitle" data-ng-value="false"/>Hide</span>
+ </div>
+ <BR>
+
+
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label">Domain Axis</label><BR>
+ <div class="form-field" att-select="reportRunJson.chartColumnJSONList" ng-model="reportRunJson.domainAxisJSON" placeholder="Select an Option" show-input-filter="true"></div>
+ </div>
+
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label">Category</label><BR>
+ <div class="form-field" att-select="reportRunJson.chartColumnJSONList" ng-model="reportRunJson.categoryAxis" placeholder="" show-input-filter="true"></div>
+ </div>
+ <BR>
+
+<div style="border:2px;border-style:solid;border-color:#808080;margin-bottom:9px">
+<div ng-repeat="rangeReport in reportRunJson.rangeAxisList">
+ <div style="margin-left:5px">
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Range Axis</label><BR>
+ <div class="form-field" att-select="reportRunJson.chartColumnJSONList"
+ ng-model="rangeReport.rangeAxisLabelJSON" placeholder="Select an Option" show-input-filter="true"></div>
+ </div>
+
+
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label">Y Axis</label><BR>
+ <input id="yaxs" type="text" name="yAxis" maxlength=50 ng-model=rangeReport.rangeYAxis style="width:100px"/>
+ </div>
+
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label">Chart Title</label><BR>
+ <input type="text" name="chartTitle" maxlength=50 ng-model="rangeReport.rangeChartGroup" style="width:200px"/>
+ </div>
+
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label">Color</label><BR>
+ <div class="form-field" att-select="rangeColors" ng-model="rangeReport.rangeColorJSON" placeholder="Select an Option" show-input-filter="true"></div>
+ </div>
+
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label">Line Type</label><BR>
+ <div class="form-field" att-select="lineTypes" ng-model="rangeReport.rangeLineTypeJSON" placeholder="Select an Option" show-input-filter="true"></div>
+ </div>
+
+ <div class="fn-ebz-container" ng-show="reportRunJson.chartTypeJSON.value=='FlexTimeChart' ||
+ reportRunJson.chartTypeJSON.value=='AnnotationChart'" style="position:relative; top: -8px;">
+ <label class="fn-ebz-text-label">Area</label><BR>
+ <input type="checkbox" ng-model="rangeReport.showAsArea" att-checkbox data-ng-value="true">
+ </div>
+
+ <div class="fn-ebz-container" style="position:relative; top: 25px;">
+ <a href="javascript:void(0)" ng-show="{{$index==0}}" style="float: right;" att-button btn-type="secondary" size="small" att-accessibility-click="13,32"
+ ng-click="addRangeAxisRow(rangeReport);" >Add</a>
+ <a href="javascript:void(0)" ng-show="{{$index>0}}" style="float: right;" att-button btn-type="secondary" size="small" att-accessibility-click="13,32" ng-click="removeRangeAxisRow($index);" >
+ Remove</a>
+ </div>
+ </div>
+ </div>
+ </div>
+ <BR>
+
+<accordion close-others="true" css="att-accordion--no-box">
+ <accordion-group id="additionalOptions" heading="Additional Options" child-length="10">
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Primary Axis Label</label><BR>
+ <input type="text" name="prAxis" maxlength=50 ng-model="reportRunJson.primaryAxisLabel" style="width:210px"/>
+ </div>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label">Secondary Axis Label</label><BR>
+ <input type="text" name="secAxis" maxlength=75 ng-model="reportRunJson.secondaryAxisLabel" style="width:210px"/>
+ </div>
+ <BR>
+ <div class="fn-ebz-container" >
+ <label class="fn-ebz-text-label">Range Axis Minimum Range</label><BR>
+ <input type="text" name="rAxisMinRange" only-digits ng-model="reportRunJson.minRange" style="width:210px"/>
+ </div>
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Maximum Range</label><BR>
+ <input type="text" name="rAxisMaxRange" only-digits ng-model="reportRunJson.maxRange" ng-maxLength="35" style="width:210px"/>
+ </div><BR>
+ </accordion-group>
+</accordion>
+
+
+
+
+<div ng-show="reportRunJson.chartType=='BarChart3D'">
+
+ <accordion close-others="true" css="att-accordion--no-box">
+ <accordion-group id="accBar" heading="Bar Chart Options" child-length="10">
+
+
+ <div style="border:2px;border-style:solid;border-color:#808080;margin-bottom:9px">
+ <div class="fn-ebz-container" style="position:relative;margin:10px;" >
+ <label class="fn-ebz-text-label">Orientation</label><BR>
+ <span><input name="orient" type="radio" ng-model="reportRunJson.barChartOptions.verticalOrientation" data-ng-value="true"/>Vertical</span>
+ <span><input name="orient" type="radio" ng-model="reportRunJson.barChartOptions.verticalOrientation" data-ng-value="false"/>Horizontal</span>
+ </div>
+
+ <div class="fn-ebz-container" style="position:relative;margin:10px;">
+ <label class="fn-ebz-text-label">Stacked</label><BR>
+ <span><input name="stack" type="radio" ng-model="reportRunJson.barChartOptions.stackedChart" data-ng-value="true"/>Yes</span>
+ <span><input name="stack" type="radio" ng-model="reportRunJson.barChartOptions.stackedChart" data-ng-value="false"/>No</span>
+ </div>
+
+ <div class="fn-ebz-container" style="position:relative;margin:10px;">
+ <label class="fn-ebz-text-label">Show Controls</label><BR>
+ <span><input name="shwcontrol" type="radio" ng-model="reportRunJson.barChartOptions.displayBarControls" data-ng-value="true"/>Yes</span>
+ <span><input name="shwcontrol" type="radio" ng-model="reportRunJson.barChartOptions.displayBarControls" data-ng-value="false"/>No</span>
+ </div>
+
+ <div class="fn-ebz-container" style="position:relative;margin:10px;">
+ <label class="fn-ebz-text-label">XAxis Date Type</label><BR>
+ <span><input name="xAxisDtype" type="radio" ng-model="reportRunJson.barChartOptions.xAxisDateType" data-ng-value="true"/>Yes</span>
+ <span><input name="xAxisDtype" type="radio" ng-model="reportRunJson.barChartOptions.xAxisDateType" data-ng-value="false"/>No</span>
+ </div>
+
+ <div class="fn-ebz-container" style="position:relative;margin:10px;">
+ <label class="fn-ebz-text-label">Display less XAxis tickers</label><BR>
+ <span><input name="xTicker" type="radio" ng-model="reportRunJson.barChartOptions.minimizeXAxisTickers" data-ng-value="true"/>Yes</span>
+ <span><input name="xTicker" type="radio" ng-model="reportRunJson.barChartOptions.minimizeXAxisTickers" data-ng-value="false"/>No</span>
+ </div><BR>
+
+ <div class="fn-ebz-container" style="position:relative;margin:10px;">
+ <label class="fn-ebz-text-label">Is Time Axis?</label><BR>
+ <span><input name="timeAxis" type="radio" ng-model="reportRunJson.barChartOptions.timeAxis" data-ng-value="true"/>Yes</span>
+ <span><input name="timeAxis" type="radio" ng-model="reportRunJson.barChartOptions.timeAxis" data-ng-value="false"/>No</span>
+ </div>
+
+ <div class="fn-ebz-container" style="position:relative;margin:10px;">
+ <label class="fn-ebz-text-label">Log Scale (Y Axis)</label><BR>
+ <span><input type="checkbox" ng-model="reportRunJson.barChartOptions.yAxisLogScale" att-checkbox data-ng-value="true"></span>
+
+ </div>
+ </div>
+
+ </accordion-group>
+</accordion>
+</div>
+ {{reportRunJson.chartType}}
+ <div ng-show="reportRunJson.chartType=='TimeSeriesChart'">
+ <accordion close-others="true" css="att-accordion--no-box">
+ <accordion-group id="accTimeChart" heading="Time Series Chart Options" child-length="10">
+
+ <div style="border:2px;border-style:solid;border-color:#808080;margin-bottom:9px">
+ <div style="margin-left:5px">
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Render as</label><BR>
+ <span><input name="renderAs" type="radio" ng-model="reportRunJson.timeSeriesChartOptions.lineChartRenderer" value="line"/>Line</span>
+ <span><input name="orient" type="radio" ng-model="reportRunJson.timeSeriesChartOptions.lineChartRenderer" value="area"/>Area</span>
+ </div>
+
+ <div class="fn-ebz-container" style="position:relative;margin:10px;">
+ <label class="fn-ebz-text-label">X Axis Label</label><BR>
+ <span><input type="checkbox" ng-model="reportRunJson.timeSeriesChartOptions.showXAxisLabel" att-checkbox data-ng-value="true"></span>
+ </div><BR>
+
+ <div class="fn-ebz-container" style="position:relative;bottom:10px;">
+ <label class="fn-ebz-text-label">X Axis <br>Tickers</label><BR>
+ <span style="position:relative;top:10px;"><input type="checkbox" ng-model="reportRunJson.timeSeriesChartOptions.addXAxisTicker" att-checkbox data-ng-value="true"></span>
+ </div>
+
+ <div class="fn-ebz-container" style="position:relative;margin:20px;">
+ <label class="fn-ebz-text-label">Is Time Axis?</label><BR>
+ <span><input name="timeAxisChart" type="radio" ng-model="reportRunJson.timeSeriesChartOptions.nonTimeAxis" data-ng-value="true"/>Yes</span>
+ <span><input name="timeAxisChart" type="radio" ng-model="reportRunJson.timeSeriesChartOptions.nonTimeAxis" data-ng-value="false"/>No</span>
+ </div>
+
+ <div class="fn-ebz-container" style="position:relative;margin:10px;">
+ <label class="fn-ebz-text-label">Multi Series?</label><BR>
+ <span><input name="mSeries" type="radio" ng-model="reportRunJson.timeSeriesChartOptions.multiSeries" data-ng-value="true"/>Yes</span>
+ <span><input name="mSeries" type="radio" ng-model="reportRunJson.timeSeriesChartOptions.multiSeries" data-ng-value="false"/>No</span>
+ </div>
+ </div>
+ </div>
+
+ </accordion-group>
+ </accordion>
+
+ </div>
+
+ <div>
+
+ <accordion close-others="true" css="att-accordion--no-box">
+ <accordion-group id="accFlexTimeChart" heading="Flex Time Series Chart Options" child-length="10">
+
+ <div style="border:2px;border-style:solid;border-color:#808080;margin-bottom:9px">
+ <div style="margin-left:5px">
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Zoom-In Window</label><BR>
+ <span><input type="text" name="zWindow" only-digits maxlength=3 ng-model="reportRunJson.flexTimeSeriesChartOptions.zoomIn"></span>
+ </div>
+
+ <div class="fn-ebz-container" style="position:relative;margin:10px;">
+ <label class="fn-ebz-text-label">Time Axis Type</label><BR>
+ <span><input name="timeAxisType" type="radio" ng-model="reportRunJson.flexTimeSeriesChartOptions.timeAxisType" value="weekly"/>Weekly</span>
+ <span><input name="timeAxisType" type="radio" ng-model="reportRunJson.flexTimeSeriesChartOptions.timeAxisType" value="daily"/>Daily</span>
+ <span><input name="timeAxisType" type="radio" ng-model="reportRunJson.flexTimeSeriesChartOptions.timeAxisType" value="hourly"/>Hourly</span>
+ <span><input name="timeAxisType" type="radio" ng-model="reportRunJson.flexTimeSeriesChartOptions.timeAxisType" value="30min"/>30 Min</span>
+ </div>
+ </div>
+ </div>
+ </accordion-group>
+ </accordion>
+
+ </div>
+
+
+
+
+
+
+
+
+ <accordion close-others="true" css="att-accordion--no-box">
+ <accordion-group id="accCommonOptions" heading="Common Options" child-length="10">
+
+ <div style="border:2px;border-style:solid;border-color:#808080;margin-bottom:9px">
+ <div style="margin-left:5px">
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Legend Angle</label><BR>
+ <span><input name="langle" type="radio" ng-model="reportRunJson.commonChartOptions.legendLabelAngle" value="up45"/>up 45&deg;</span>
+ <span><input name="langle" type="radio" ng-model="reportRunJson.commonChartOptions.legendLabelAngle" value="up90"/>up 90&deg;</span>
+ <span><input name="langle" type="radio" ng-model="reportRunJson.commonChartOptions.legendLabelAngle" value="down45"/>down 45&deg;</span>
+ <span><input name="langle" type="radio" ng-model="reportRunJson.commonChartOptions.legendLabelAngle" value="down90"/>down 90&deg;</span>
+ <span><input name="langle" type="radio" ng-model="reportRunJson.commonChartOptions.legendLabelAngle" value="standard"/>Standard</span>
+ </div>
+
+ <div class="fn-ebz-container" style="position:relative;margin:15px;">
+ <label class="fn-ebz-text-label">Legend Position</label><BR>
+ <span><input name="lgPosition" type="radio" ng-model="reportRunJson.commonChartOptions.legendPosition" value="top"/>Top</span>
+ <span><input name="lgPosition" type="radio" ng-model="reportRunJson.commonChartOptions.legendPosition" value="bottom"/>Bottom</span>
+ </div><BR>
+
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Legend</label><BR>
+ <span><input name="lgd" type="radio" ng-model="reportRunJson.commonChartOptions.hideLegend" data-ng-value="false"/>Yes</span>
+ <span><input name="lgd" type="radio" ng-model="reportRunJson.commonChartOptions.hideLegend" data-ng-value="true"/>No</span>
+ </div>
+
+ <div class="fn-ebz-container" style="position:relative;margin:10px;">
+ <label class="fn-ebz-text-label">Animation</label><BR>
+ <span><input name="anmtate" type="radio" ng-model="reportRunJson.commonChartOptions.animateAnimatedChart" data-ng-value="true" />Yes</span>
+ <span><input name="anmtate" type="radio" ng-model="reportRunJson.commonChartOptions.animateAnimatedChart" data-ng-value="false"/>No</span>
+ </div><BR>
+
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Top Margin</label><BR>
+ <input type="text" name="reportRunJson.commonChartOptions.topMargin" only-digits maxlength=3 ng-model="reportRunJson.commonChartOptions.topMargin" style="width:210px"/>
+ </div>
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Bottom Margin</label><BR>
+ <input type="text" name="reportRunJson.commonChartOptions.bottomMargin" only-digits maxlength=3 ng-model="reportRunJson.commonChartOptions.bottomMargin" style="width:210px"/>
+ </div>
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Left Margin</label><BR>
+ <input type="text" name="reportRunJson.commonChartOptions.leftMargin" only-digits maxlength=3 ng-model="reportRunJson.commonChartOptions.leftMargin" style="width:210px"/>
+ </div>
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Right Margin</label><BR>
+ <input type="text" name="reportRunJson.commonChartOptions.rightMargin" only-digits maxlength=3 ng-model="reportRunJson.commonChartOptions.rightMargin" style="width:210px">
+ </div><BR>
+ </div>
+ </div>
+ </accordion-group>
+</accordion>
+ <br/><br/>
+ <a href="javascript:void(0)" att-button btn-type="primary" att-accessibility-click="13,32" ng-click="saveChartData();">Save</a>
+ <a href="report#/report_run/c_master={{reportRunJson.reportID}}&refresh=Y" att-button btn-type="primary" att-accessibility-click="13,32">Run</a>
+</div>
+
+<div>
+ <b2b-expanders class="mpc-expanders" is-open="additionalOptionOpen">
+ <b2b-expander-heading>
+ <div class="row">
+ <div class="span6">
+ <div class="heading-medium b2b-blue" ng-class=" { 'b2b-toggle-header-active': !additionalOptionOpen, 'b2b-toggle-header-inactive': additionalOptionOpen } ">Additional Options</div>
+ <p class="p-small">
+ </p>
+ </div>
+ <div style="position: absolute;right: 250px;" class="span1">
+ <i class="pull-right b2b-toggle-header-icon" b2b-expander-toggle b2b-accessibility-click="13,32" expand-icon="icon-primary-collapsed" collapse-icon="icon-primary-expanded" tabindex="0" aria-posinset="1" aria-setsize="2"></i>
+ </div>
+ </div>
+ </b2b-expander-heading>
+ <b2b-expander-body>
+ <div>
+ <div id="RangeTable">
+ <table>
+ <thead>
+ <tr>
+ <th width="30%">Primary Axis Label</th>
+ <th width="30%">Secondary Axis Label</th>
+ <th></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <input type="text" name="primaryAxisLabel" ng-model="reportRunJson.primaryAxisLabel" style="width:200px;">
+ </td>
+ <td>
+ <input type="text" name="secondaryAxisLabel" ng-model="reportRunJson.secondaryAxisLabel" style="width:200px;">
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <table>
+ <thead>
+ <tr>
+ <th width="30%">Range Axis Minimum Range</th>
+ <th width="30%">Maximum Range</th>
+ <th></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <input type="text" name="minRange" ng-model="reportRunJson.minRange" style="width:200px;">
+ </td>
+ <td>
+ <input type="text" name="maxRange" ng-model="reportRunJson.maxRange" style="width:200px;">
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </b2b-expander-body>
+ </b2b-expanders>
+
+ <!-- BAR CHART OPTION SECTION STARTS HERE -->
+ <b2b-expanders ng-show="reportRunJson.chartType=='BarChart3D'" class="mpc-expanders" is-open="barChartOptionOpen">
+ <b2b-expander-heading>
+ <div class="row">
+ <div class="span6">
+ <div class="heading-medium b2b-blue" ng-class=" { 'b2b-toggle-header-active': !barChartOptionOpen, 'b2b-toggle-header-inactive': barChartOptionOpen } ">Bar Chart Options</div>
+ <p class="p-small">
+ </p>
+ </div>
+ <div style="position: absolute;right: 250px;" class="span1">
+ <i class="pull-right b2b-toggle-header-icon" b2b-expander-toggle b2b-accessibility-click="13,32" expand-icon="icon-primary-collapsed" collapse-icon="icon-primary-expanded" tabindex="0" aria-posinset="1" aria-setsize="2"></i>
+ </div>
+ </div>
+ </b2b-expander-heading>
+ <b2b-expander-body>
+ <div>
+ <div id="RangeTable">
+ <table>
+ <thead>
+ <tr>
+ <th width="25%">Orientation</th>
+ <th width="18%">Stacked</th>
+ <th width="18%">Show Controls</th>
+ <th width="18%">XAxis Date Type</th>
+ <th width="21%">Display less XAxis tickers</th>
+ <th></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <label for="optionsOrientationVertical" class="radio">
+ <input type="radio" ng-model="reportRunJson.barChartOptions.verticalOrientation" id="optionsOrientationVertical" name="optionsOrientationVertical" value="true">
+ <i class="skin"></i>
+ <span>Vertical</span>
+ </label>
+ <label for="optionsOrientationHorizontal" class="radio">
+ <input type="radio" ng-model="reportRunJson.barChartOptions.verticalOrientation" id="optionsOrientationHorizontal" name="optionsOrientationHorizontal" value="false">
+ <i class="skin"></i>
+ <span>Horizontal</span>
+ </label>
+ </td>
+
+ <td>
+ <label for="optionsStackedYes" class="radio">
+ <input type="radio" ng-model="reportRunJson.barChartOptions.stackedChart" id="optionsStackedYes" name="optionsStackedYes" value="true">
+ <i class="skin"></i>
+ <span>Yes</span>
+ </label>
+ <label for="optionsStackedNo" class="radio">
+ <input type="radio" ng-model="reportRunJson.barChartOptions.stackedChart" id="optionsStackedNo" name="optionsStackedNo" value="false">
+ <i class="skin"></i>
+ <span>No</span>
+ </label>
+ </td>
+ <td>
+ <label for="optionsShowControlYes" class="radio">
+ <input type="radio" ng-model="reportRunJson.barChartOptions.displayBarControls" id="optionsShowControlYes" name="optionsShowControlYes" value="true">
+ <i class="skin"></i>
+ <span>Yes</span>
+ </label>
+ <label for="optionsShowControlNo" class="radio">
+ <input type="radio" ng-model="reportRunJson.barChartOptions.displayBarControls" id="optionsShowControlNo" name="optionsShowControlNo" value="false">
+ <i class="skin"></i>
+ <span>No</span>
+ </label>
+ </td>
+ <td>
+ <label for="optionsXAxisDateTypeYes" class="radio">
+ <input type="radio" ng-model="reportRunJson.barChartOptions.xAxisDateType" id="optionsXAxisDateTypeYes" name="optionsXAxisDateTypeYes" value="true">
+ <i class="skin"></i>
+ <span>Yes</span>
+ </label>
+ <label for="optionsXAxisDateTypeNo" class="radio">
+ <input type="radio" ng-model="reportRunJson.barChartOptions.xAxisDateType" id="optionsXAxisDateTypeNo" name="optionsXAxisDateTypeNo" value="false">
+ <i class="skin"></i>
+ <span>No</span>
+ </label>
+ </td>
+ <td>
+ <label for="optionsMinimizeXAxisTickersYes" class="radio">
+ <input type="radio" ng-model="reportRunJson.barChartOptions.minimizeXAxisTickers" id="optionsMinimizeXAxisTickersYes" name="optionsMinimizeXAxisTickersYes" value="true">
+ <i class="skin"></i>
+ <span>Yes</span>
+ </label>
+ <label for="optionsMinimizeXAxisTickersNo" class="radio">
+ <input type="radio" ng-model="reportRunJson.barChartOptions.minimizeXAxisTickers" id="optionsMinimizeXAxisTickersNo" name="optionsMinimizeXAxisTickersNo" value="false">
+ <i class="skin"></i>
+ <span>No</span>
+ </label>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <table>
+ <thead>
+ <tr>
+ <th width="25%">Is Time Axis?</th>
+ <th width="25%">Log Scale (Y Axis)</th>
+ <th></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <label for="optionsTimeAxisYes" class="radio">
+ <input type="radio" ng-model="reportRunJson.barChartOptions.timeAxis" id="optionsTimeAxisYes" name="optionsTimeAxisYes" value="true">
+ <i class="skin"></i>
+ <span>Yes</span>
+ </label>
+ <label for="optionsTimeAxisNo" class="radio">
+ <input type="radio" ng-model="reportRunJson.barChartOptions.timeAxis" id="optionsTimeAxisNo" name="optionsTimeAxisNo" value="false">
+ <i class="skin"></i>
+ <span>No</span>
+ </label>
+ </td>
+ <td>
+ <label for="logScaleYAxisCheckBox" class="checkbox">
+ <input id="logScaleYAxisCheckBox" type="checkbox" ng-model="reportRunJson.barChartOptions.yAxisLogScale" /><i class="skin"></i><span></span>
+ </label>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </b2b-expander-body>
+ </b2b-expanders>
+ <!-- BAR CHART OPTION SECTION ENDS HERE -->
+
+ <!-- TIME SERIES CHART OPTION SECTION STARTS HERE -->
+ <b2b-expanders ng-show="reportRunJson.chartType=='TimeSeriesChart'" class="mpc-expanders" is-open="timeSeriesChartOptionOpen">
+ <b2b-expander-heading>
+ <div class="row">
+ <div class="span6">
+ <div class="heading-medium b2b-blue" ng-class=" { 'b2b-toggle-header-active': !timeSeriesChartOptionOpen, 'b2b-toggle-header-inactive': timeSeriesChartOptionOpen } ">Time Series Chart Options</div>
+ <p class="p-small">
+ </p>
+ </div>
+ <div style="position: absolute;right: 250px;" class="span1">
+ <i class="pull-right b2b-toggle-header-icon" b2b-expander-toggle b2b-accessibility-click="13,32" expand-icon="icon-primary-collapsed" collapse-icon="icon-primary-expanded" tabindex="0" aria-posinset="1" aria-setsize="2"></i>
+ </div>
+ </div>
+ </b2b-expander-heading>
+ <b2b-expander-body>
+ <div>
+ <div>
+ <table>
+ <thead>
+ <tr>
+ <th width="20%">Render as</th>
+ <th width="20%">X Axis Label</th>
+ <th width="20%">X Axis Tickers</th>
+ <th width="20%">Is Time Axis?</th>
+ <th width="20%">Multi Series</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <label for="optionsLineChartRendererLine" class="radio">
+ <input type="radio" ng-model="reportRunJson.timeSeriesChartOptions.lineChartRenderer" id="optionsLineChartRendererLine" name="optionsLineChartRendererLine" value="line">
+ <i class="skin"></i>
+ <span>Line</span>
+ </label>
+ <label for="optionsLineChartRendererArea" class="radio">
+ <input type="radio" ng-model="reportRunJson.timeSeriesChartOptions.lineChartRenderer" id="optionsLineChartRendererArea" name="optionsLineChartRendererArea" value="area">
+ <i class="skin"></i>
+ <span>Area</span>
+ </label>
+ </td>
+ <td>
+ <label for="xAxisLabelCheckBox" class="checkbox">
+ <input id="xAxisLabelCheckBox" type="checkbox" ng-model="reportRunJson.timeSeriesChartOptions.showXAxisLabel" /><i class="skin"></i><span></span>
+ </label>
+ </td>
+ <td>
+ <label for="addXAxisTickerCheckBox" class="checkbox">
+ <input id="addXAxisTickerCheckBox" type="checkbox" ng-model="reportRunJson.timeSeriesChartOptions.addXAxisTicker" /><i class="skin"></i><span></span>
+ </label>
+ </td>
+ <td>
+ <label for="isTimeAxisCheckBox" class="checkbox">
+ <input id="isTimeAxisCheckBox" type="checkbox" ng-model="reportRunJson.timeSeriesChartOptions.nonTimeAxis" /><i class="skin"></i><span></span>
+ </label>
+ </td>
+ <td>
+ <label for="multiSeriesCheckBox" class="checkbox">
+ <input id="multiSeriesCheckBox" type="checkbox" ng-model="reportRunJson.timeSeriesChartOptions.multiSeries" /><i class="skin"></i><span></span>
+ </label>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </b2b-expander-body>
+ </b2b-expanders>
+ <!-- TIME SERIES CHART OPTION SECTION ENDS HERE -->
+
+ <b2b-expanders class="mpc-expanders" is-open="commonOptionOpen">
+ <b2b-expander-heading>
+ <div class="row">
+ <div class="span6">
+ <div class="heading-medium b2b-blue" ng-class=" { 'b2b-toggle-header-active': !commonOptionOpen, 'b2b-toggle-header-inactive': commonOptionOpen } ">Common Options</div>
+ <p class="p-small">
+ </p>
+ </div>
+ <div style="position: absolute;right: 250px;" class="span1">
+ <i class="pull-right b2b-toggle-header-icon" b2b-expander-toggle b2b-accessibility-click="13,32" expand-icon="icon-primary-collapsed" collapse-icon="icon-primary-expanded" tabindex="0" aria-posinset="1" aria-setsize="2"></i>
+ </div>
+ </div>
+ </b2b-expander-heading>
+ <b2b-expander-body>
+ <div >
+ <div>
+ <div style="border:2px;border-style:solid;border-color:#808080;margin-bottom:9px">
+ <div style="margin-left:0px">
+ <table>
+ <thead>
+ <tr>
+ <th>Legend Angle</th>
+ <th>Legend Position</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <fieldset role="radiogroup" radio-group-accessibility>
+ <td>
+ <label for="optionsRadios1" class="radio">
+ <input type="radio" ng-model="reportRunJson.commonChartOptions.legendLabelAngle" id="optionsRadios1" name="optionsRadio1" value="up45">
+ <i class="skin"></i>
+ <span>up 45&deg;</span>
+ </label>
+ <label for="optionsRadios2" class="radio">
+ <input type="radio" ng-model="reportRunJson.commonChartOptions.legendLabelAngle" id="optionsRadios2" name="optionsRadio2" value="up90">
+ <i class="skin"></i>
+ <span>up 90&deg;</span>
+ </label>
+ <label for="optionsRadios3" class="radio">
+ <input type="radio" ng-model="reportRunJson.commonChartOptions.legendLabelAngle" id="optionsRadios3" name="optionsRadio3" value="down45">
+ <i class="skin"></i>
+ <span>down 45&deg;</span>
+ </label>
+ <label for="optionsRadios4444" class="radio">
+ <input type="radio" ng-model="reportRunJson.commonChartOptions.legendLabelAngle" id="optionsRadios4444" name="optionsRadio44" value="down90">
+ <i class="skin"></i>
+ <span>down 90&deg;</span>
+ </label>
+ <label for="optionsRadios5555" class="radio">
+ <input type="radio" ng-model="reportRunJson.commonChartOptions.legendLabelAngle" id="optionsRadios5555" name="optionsRadio55" value="standard">
+ <i class="skin"></i>
+ <span>Standard</span>
+ </label>
+ </td>
+ </fieldset>
+
+ <fieldset role="radiogroup" radio-group-accessibility>
+ <td>
+ <label for="optionsRadiosTop" class="radio">
+ <input type="radio" ng-model="reportRunJson.commonChartOptions.legendPosition" id="optionsRadiosTop" name="optionsRadioTop" value="top">
+ <i class="skin"></i>
+ <span>Top</span>
+ </label>
+ <label for="optionsRadiosBottom" class="radio">
+ <input type="radio" ng-model="reportRunJson.commonChartOptions.legendPosition" id="optionsRadiosBottom" name="optionsRadioBottom" value="bottom">
+ <i class="skin"></i>
+ <span>Bottom</span>
+ </label>
+ </td>
+ </fieldset>
+ </tr>
+ </tbody>
+ </table>
+
+
+ <table>
+ <thead>
+ <tr>
+ <th width="20%">Legend</th>
+ <th width="20%">Animation</th>
+ <th></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <fieldset role="radiogroup" radio-group-accessibility>
+ <td>
+ <label for="optionsRadiosHideLegendFalse" class="radio">
+ <input type="radio" ng-model="reportRunJson.commonChartOptions.hideLegend" id="optionsRadiosHideLegendFalse" name="optionsRadiosHideLegendFalse" value="false">
+ <i class="skin"></i>
+ <span>Yes</span>
+ </label>
+ <label for="optionsRadiosHideLegendTrue" class="radio">
+ <input type="radio" ng-model="reportRunJson.commonChartOptions.hideLegend" id="optionsRadiosHideLegendTrue" name="optionsRadiosHideLegendTrue" value="true">
+ <i class="skin"></i>
+ <span>No</span>
+ </label>
+ </td>
+ </fieldset>
+
+ <fieldset role="radiogroup" radio-group-accessibility>
+ <td>
+ <label for="optionsRadiosAnimateChartTrue" class="radio">
+ <input type="radio" ng-model="reportRunJson.commonChartOptions.animateAnimatedChart" id="optionsRadiosAnimateChartTrue" name="optionsRadiosAnimateChartTrue" value="true">
+ <i class="skin"></i>
+ <span>Yes</span>
+ </label>
+ <label for="optionsRadiosAnimateChartFalse" class="radio">
+ <input type="radio" ng-model="reportRunJson.commonChartOptions.animateAnimatedChart" id="optionsRadiosAnimateChartFalse" name="optionsRadiosAnimateChartFalse" value="false">
+ <i class="skin"></i>
+ <span>No</span>
+ </label>
+ </td>
+ </fieldset>
+ <td>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <table>
+ <thead>
+ <tr>
+ <th width="25%">Top Margin</th>
+ <th width="25%">Bottom Margin</th>
+ <th width="25%">Left Margin</th>
+ <th width="25%">Right Margin</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <input type="text" name="topMargin" ng-model="reportRunJson.commonChartOptions.topMargin" style="width:200px;">
+ </td>
+ <td>
+ <input type="text" name="bottomMargin" ng-model="reportRunJson.commonChartOptions.bottomMargin" style="width:200px;">
+ </td>
+ <td>
+ <input type="text" name="leftMargin" ng-model="reportRunJson.commonChartOptions.leftMargin" style="width:200px;">
+ </td>
+ <td>
+ <input type="text" name="rightMargin" ng-model="reportRunJson.commonChartOptions.rightMargin" style="width:200px;">
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </div>
+ </b2b-expander-body>
+ </b2b-expanders>
+
+</div>
+</div>
+ <div>
+ <button type="submit" style="width: 90px; height:35px;margin-top:20px; margin-left:5px;" class="btn btn-alt btn-small" ng-click="saveChartData();">Save</button>
+ <a href="report#/report_run/c_master={{reportRunJson.reportID}}&refresh=Y">
+ <button type="submit" style="width: 90px; height:35px;margin-top:20px; margin-left:5px;" class="btn btn-alt btn-small">Run</button>
+ </a>
+ </div>
+</div>
diff --git a/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-import.html b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-import.html
new file mode 100644
index 00000000..cd64b09f
--- /dev/null
+++ b/usecaseui-common/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/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-run.html b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-run.html
new file mode 100644
index 00000000..aaa1cac0
--- /dev/null
+++ b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-run.html
@@ -0,0 +1,96 @@
+<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">
+ <div style="width:100%; overflow:hidden;">
+ <div style="float:left;"><h1 class="heading-page">{{reportData.reportHeading}}</h1></div>
+ <div style="float:left; margin-left: 10px; margin-right: 10px;">
+ <a style="font-size:180%;" ng-href="report#/report_wizard/{{reportData.reportID}}" class="icon-misc-pen" ng-show="reportData.allowEdit"></a>
+ </div>
+ <div style="float:left; margin-left: 5px; margin-right: 10px;">
+ <a style="font-size:180%;" ng-href="report#/report_chart/{{reportData.reportID}}" class="icon-misc-piechart" ng-show="reportData.allowEdit"></a>
+ </div>
+
+ <div ng-show ="reportData.allowEdit && showFormFields" style="margin-top:5px;">
+ <label for="checkbox1" class="checkbox">
+ <input id="checkbox1" type="checkbox" ng-model="showFormFieldId.value" /><i class="skin"></i><span>show IDs</span>
+ </label>
+ </div>
+ </div>
+ <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="showFormFieldId.value" 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>
+ <button type="submit" ng-show="showBackButton" style="width: 90px; height:35px;margin-top:20px; margin-left:5px;" class="btn btn-alt btn-small" ng-click="backToParentReport()">Back</button>
+ <iframe id="chartiframe" ng-show="showChart" width="100%" height="550px" 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/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-search.html b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-search.html
new file mode 100644
index 00000000..7524acca
--- /dev/null
+++ b/usecaseui-common/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/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step1.json b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step1.json
new file mode 100644
index 00000000..66562d4b
--- /dev/null
+++ b/usecaseui-common/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/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step2.json b/usecaseui-common/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/usecaseui-common/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/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step3.json b/usecaseui-common/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/usecaseui-common/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/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step4.json b/usecaseui-common/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/usecaseui-common/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/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step5.json b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step5.json
new file mode 100644
index 00000000..cc10114d
--- /dev/null
+++ b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step5.json
@@ -0,0 +1,19 @@
+{
+ "step" : "5",
+ "content": {
+ "title": "",
+ "sections": [
+ {
+ "title": "",
+ "elements": [
+ ]
+ },
+ {
+ "title": "finalButton",
+ "submitAction" : "",
+ "next":"Microservice Config",
+ "previous":"none"
+ }
+ ]
+ }
+}
diff --git a/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step6.json b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step6.json
new file mode 100644
index 00000000..e3b1ccce
--- /dev/null
+++ b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step6.json
@@ -0,0 +1,28 @@
+{
+ "step" : "6",
+ "last_step": true,
+ "hideSaveButton":true,
+ "hideBackButton":true,
+ "content": {
+ "title": "Step 6 : Run",
+ "sections": [
+ {
+ "elements": [
+ ],
+ "buttons": [
+ {
+ "text":"Run Report",
+ "value":"next",
+ "ngFunction":"RunCurrentReport()"
+ }]
+ },
+ {
+ "title": "finalButton",
+ "submitAction" : "",
+ "next":"Microservice Config",
+ "previous":"none"
+ }
+ ]
+
+ }
+}
diff --git a/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/report-step.html b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/report-step.html
new file mode 100644
index 00000000..9b498870
--- /dev/null
+++ b/usecaseui-common/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/report-step.html
@@ -0,0 +1,243 @@
+<!-- <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;
+}
+
+
+.noTableBorder table tbody td {
+ border: none;
+}
+.noTableBorder table tbody tr {
+ border: none;
+}
+.selectWrap {
+ width: 300px;
+}
+.tdLeftColumn {
+ text-align: right;
+ vertical-align:middle;
+}
+
+.tabs.tabs-justified > li.active, .tabs.promo-tabs > li.active {
+z-index:0;
+}
+</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>
+<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">
+
+<!-- <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><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="stepViewSecurity" ng-show = "isSecurityStep">
+ <h1>Step 5 : Report Security</h1>
+ <div class="noTableBorder">
+ <table class="striped">
+ <tbody>
+ <tr>
+ <td>Created By: {{reportSecurityInfo.createdUser}}</td>
+ <td>Created Date: {{reportSecurityInfo.createdDate}}</td>
+ <tr/>
+ <tr>
+ <td>Last Updated By: {{reportSecurityInfo.updateUser}}</td>
+ <td>Last Updated: {{reportSecurityInfo.updatedDate}}</td>
+ <tr/>
+ <tr>
+ <td>
+ Report Owner:
+
+ <select name="reportOwner" b2b-dropdown ng-model="reportOwnerId.id">
+ <option b2b-dropdown-list option-repeat="d in reportOwnerList" value="{{d.id}}">{{d.name}}</option>
+ </select>
+
+ </td>
+ <td>
+ Public? (All users can run the report):
+ <select name="isPublic" b2b-dropdown ng-model="reportSecurityInfo.isPublic">
+ <option b2b-dropdown-list option-repeat="d in isPublicOptionList" value="{{d.value}}">{{d.text}}</option>
+ </select>
+ </td>
+ <tr/>
+ </tbody>
+ </table>
+ </div>
+
+ <div style="margin-top:20px;">
+ <h1 style="margin-bottom:5px;">Report Users</h1>
+ <table class="striped">
+ <thead>
+ <tr>
+ <th width="10%">No</th>
+ <th width="45%">User Name</th>
+ <th width="15%">Run Access</th>
+ <th width="15%">Edit Access</th>
+ <th width="15%">Remove</th>
+ <tr/>
+ </thead>
+ <tbody>
+ <tr ng-repeat = "reportUser in reportSecurityUsers">
+ <td>{{$index+1}}</td>
+ <td>{{reportUser.name}}</td>
+ <td>
+ <label for="switch{{$index+1}}runAccess" class="btn-switch-label">
+ <input type="checkbox" role="switch" id="switch{{$index+1}}runAccess" b2b-switches ng-model=true ng-disabled=true aria-disabled=true aria-label="">
+ </label>
+ </td>
+ <td>
+ <label for="switch{{$index+1}}" class="btn-switch-label">
+ <input type="checkbox" role="switch" id="switch{{$index+1}}" b2b-switches ng-model="reportUser.accessAllowed" ng-click="toggleUserEditAccessActive(reportUser)" ng-disabled=false aria-disabled=false aria-label="">
+ </label>
+ </td>
+ <td>
+ <a class="icon-misc-trash" style="font-size: 22px;" ng-click="removeReportSecurityUser(reportUser)"> </a>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ Grant Access To:
+ </td>
+
+ <td colspan="2">
+ <select name="reportUser" b2b-dropdown ng-model="addReportUserId.id" placeholder-text="Select a User">
+ <option b2b-dropdown-list option-repeat="d in reportOwnerList" value="{{d.id}}">{{d.name}}</option>
+ </select>
+ </td>
+ <td>
+ <button class="btn btn-alt btn-small" type="button" ng-click="addReportSecurityUser(addReportUserId.id)">Add</button>
+ </td>
+ </tr>
+
+ </tbody>
+ </table>
+ </div>
+
+ <div style="margin-top:20px;">
+ <h1>Report Roles</h1>
+ <table class="striped">
+ <thead>
+ <tr>
+ <th width="10%">No</th>
+ <th width="45%">Role Name</th>
+ <th width="15%">Run Access</th>
+ <th width="15%">Edit Access</th>
+ <th width="15%">Remove</th>
+ <tr/>
+ </thead>
+ <tbody>
+ <tr ng-repeat = "reportRole in reportSecurityRoles">
+ <td>{{$index+1}}</td>
+ <td>{{reportRole.name}}</td>
+ <td>
+ <label for="switch{{$index+1}}RoleRunAccess" class="btn-switch-label">
+ <input type="checkbox" role="switch" id="switch{{$index+1}}RoleRunAccess" b2b-switches ng-model=true ng-disabled=true aria-disabled=true aria-label="">
+ </label>
+ </td>
+ <td>
+ <label for="switch{{$index+1}}RoleEditAccess" class="btn-switch-label">
+ <input type="checkbox" role="switch" id="switch{{$index+1}}RoleEditAccess" b2b-switches ng-model="reportRole.accessAllowed" ng-click="toggleRoleEditAccessActive(reportRole)" ng-disabled=false aria-disabled=false aria-label="">
+ </label>
+ </td>
+ <td>
+ <a class="icon-misc-trash" ng-click="removeReportSecurityRole(reportRole)" style="font-size: 22px;"> </a>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ Grant Access To:
+ </td>
+ <td colspan="2">
+ <select name="reportOwner" b2b-dropdown ng-model="addReportRoleId.id" placeholder-text="Select a Role">
+ <option b2b-dropdown-list option-repeat="d in reportRoleList" value="{{d.id}}">{{d.name}}</option>
+ </select>
+ </td>
+ <td>
+ <button class="btn btn-alt btn-small" type="button" ng-click="addReportSecurityRole(addReportRoleId.id)">Add</button>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+</div>
+
+<div id="stepView">
+</div>
+</div>
+
+</div>