summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-app-overlay/src
diff options
context:
space:
mode:
authorChristopher Lott (cl778h) <clott@research.att.com>2017-05-11 09:38:56 -0400
committerChristopher Lott (cl778h) <clott@research.att.com>2017-05-11 10:08:34 -0400
commitc081bd0a7db3f434e76c03a9ca0334539ee84470 (patch)
tree11bd5b565a7f901bba051c5b56366eb6c9bb30a1 /ecomp-sdk/epsdk-app-overlay/src
parent6beb446925c967aca92f5513adf36c5db77c00d6 (diff)
[PORTAL-7] Features and repairs from 1707
This merges latest changes made to Raptor and other features. Change-Id: I3a58f88e988ddadf52e1c0c782cdccd2b2ecf5e9 Signed-off-by: Christopher Lott (cl778h) <clott@research.att.com>
Diffstat (limited to 'ecomp-sdk/epsdk-app-overlay/src')
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-chart-controller.js382
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-router.js4
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-run-controller.js24
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-search-controller.js1
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-step-controller.js125
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-directives/ds2Header.js256
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-directives/ds2LeftMenu.js18
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-services/ds2-raptor-report/raptorReportFactory.js87
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-services/headerServiceDS2.js496
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-services/leftMenuServiceDS2.js13
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/all-reports.html1
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-col-edit.html10
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-drilldown-edit.html150
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-chart-wizard.html719
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-run.html29
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/report-step.html10
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2Header.html138
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/styles/ecomp.css39
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/raptor/ebz/date_time_picker.js277
19 files changed, 1722 insertions, 1057 deletions
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-chart-controller.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-chart-controller.js
new file mode 100644
index 00000000..806b1bc2
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-chart-controller.js
@@ -0,0 +1,382 @@
+appDS2.controller('reportChartController', function ($scope, $rootScope, $timeout, $window, $http, $routeParams,modalService) {
+ //$scope.test="1223";
+ //alert($scope.chartType.value);
+ console.log("reportChartController called");
+ $scope.commonOptionOpen = false;
+ $scope.additionalOptionOpen = false;
+
+ $scope.selectedChartType = {value:""};
+ $scope.chartTypeOptions = [
+ {value: 'barChart', text: 'Bar Chart'},
+ {value: 'timeSeries', text: 'Time Series/Area Chart'},
+ {value: 'pieChart', text: 'Pie Chart'},
+ {value: 'annotationChart', text: 'Annotation Chart'},
+ {value: 'flexibleTimeChart', text: 'Flexible Time Chart'}
+ ];
+
+ $scope.animateSelected = {value:false};
+
+ $scope.populateChrtWzdFields = function() {
+ $scope.reportRunJson = {};
+ $http.get("raptor.htm?action=chart.json&c_master="+$routeParams.reportId).then(function (response) {
+ $scope.reportRunJson = response.data;
+ //Set chart type
+ if ($scope.reportRunJson.chartTypeJSON) {
+ var chrtTypeValue = $scope.reportRunJson.chartTypeJSON.value;
+ for(var i = 0; i < $scope.chartTypes.length; i++) {
+ var obj = $scope.chartTypes[i];
+ //console.log(obj.id);
+ if ($scope.chartTypes[i].value==chrtTypeValue) {
+ $scope.reportRunJson.chartTypeJSON.index=$scope.chartTypes[i].index;
+ $scope.reportRunJson.chartTypeJSON.title=$scope.chartTypes[i].title;
+ }
+
+ }
+ }
+
+ //Set Domain Axis
+ if ($scope.reportRunJson.domainAxisJSON) {
+ var domaninAxisValue = $scope.reportRunJson.domainAxisJSON.value;
+ for(var i = 0; i < $scope.reportRunJson.chartColumnJSONList.length; i++) {
+ if ($scope.reportRunJson.chartColumnJSONList[i].value==domaninAxisValue) {
+ $scope.reportRunJson.domainAxisJSON.index=$scope.reportRunJson.chartColumnJSONList[i].index;
+ $scope.reportRunJson.domainAxisJSON.title=$scope.reportRunJson.chartColumnJSONList[i].title;
+ }
+
+ }
+ }
+
+ //Set Category
+ if ($scope.reportRunJson.categoryAxisJSON) {
+ var categoryAxisValue = $scope.reportRunJson.categoryAxisJSON.value;
+ for(var i = 0; i < $scope.reportRunJson.chartColumnJSONList.length; i++) {
+ if ($scope.reportRunJson.chartColumnJSONList[i].value==categoryAxisValue) {
+ $scope.reportRunJson.categoryAxisJSON.index=$scope.reportRunJson.chartColumnJSONList[i].index;
+ $scope.reportRunJson.categoryAxisJSON.title=$scope.reportRunJson.chartColumnJSONList[i].title;
+ }
+ }
+ }
+
+ //Set range axis label
+ if ($scope.reportRunJson.rangeAxisList) {
+ for(var j = 0; j < $scope.reportRunJson.rangeAxisList.length; j++) {
+
+ if ($scope.reportRunJson.rangeAxisList[j].rangeAxisLabelJSON) {
+ var rangeAxisLabelValue = $scope.reportRunJson.rangeAxisList[j].rangeAxisLabelJSON.value;
+ for(var i = 0; i < $scope.reportRunJson.chartColumnJSONList.length; i++) {
+ if ($scope.reportRunJson.chartColumnJSONList[i].value==rangeAxisLabelValue) {
+ $scope.reportRunJson.rangeAxisList[j].rangeAxisLabelJSON.index=$scope.reportRunJson.chartColumnJSONList[i].index;
+ $scope.reportRunJson.rangeAxisList[j].rangeAxisLabelJSON.title=$scope.reportRunJson.chartColumnJSONList[i].title;
+ }
+ }
+ }
+ }
+ }
+
+
+ //set range linetype
+ if ($scope.reportRunJson.rangeAxisList) {
+ for(var j = 0; j < $scope.reportRunJson.rangeAxisList.length; j++) {
+ if ($scope.reportRunJson.rangeAxisList[j].rangeLineTypeJSON != null && $scope.reportRunJson.rangeAxisList[j].rangeLineTypeJSON.value != ""
+ && $scope.reportRunJson.rangeAxisList[j].rangeLineTypeJSON.value != null) {
+ var lineTypeValue = $scope.reportRunJson.rangeAxisList[j].rangeLineTypeJSON.value;
+ for(var i = 0; i < $scope.lineTypes.length; i++) {
+ if ($scope.lineTypes[i].value==lineTypeValue) {
+ $scope.reportRunJson.rangeAxisList[j].rangeLineTypeJSON.index=$scope.lineTypes[i].index;
+ $scope.reportRunJson.rangeAxisList[j].rangeLineTypeJSON.title=$scope.lineTypes[i].title;
+ }
+ }
+ } else {
+ $scope.reportRunJson.rangeAxisList[j].rangeLineTypeJSON = null;
+ }
+ }
+ }
+ //set range color
+ if ($scope.reportRunJson.rangeAxisList) {
+ for(var j = 0; j < $scope.reportRunJson.rangeAxisList.length; j++) {
+ if ($scope.reportRunJson.rangeAxisList[j].rangeColorJSON != null && $scope.reportRunJson.rangeAxisList[j].rangeColorJSON.value != ""
+ && $scope.reportRunJson.rangeAxisList[j].rangeColorJSON.value != null) {
+ var colorValue = $scope.reportRunJson.rangeAxisList[j].rangeColorJSON.value;
+ for(var i = 0; i < $scope.rangeColors.length; i++) {
+ if ($scope.rangeColors[i].value==colorValue) {
+ $scope.reportRunJson.rangeAxisList[j].rangeColorJSON.index=$scope.rangeColors[i].index;
+ $scope.reportRunJson.rangeAxisList[j].rangeColorJSON.title=$scope.rangeColors[i].title;
+ }
+ }
+ }else {
+ $scope.reportRunJson.rangeAxisList[j].rangeColorJSON = null;
+ }
+ }
+ }
+ });
+
+ $scope.legend = "true";
+ }
+
+ $scope.saveChartData = function() {
+ //Converting string variables to numbers
+ $scope.reportRunJson.commonChartOptions.rightMargin = Number($scope.reportRunJson.commonChartOptions.rightMargin);
+ $scope.reportRunJson.commonChartOptions.topMargin = Number($scope.reportRunJson.commonChartOptions.topMargin);
+ $scope.reportRunJson.commonChartOptions.bottomMargin = Number($scope.reportRunJson.commonChartOptions.bottomMargin);
+ $scope.reportRunJson.commonChartOptions.leftMargin = Number($scope.reportRunJson.commonChartOptions.leftMargin);
+
+ if ($scope.reportRunJson.categoryAxisJSON == "") {
+ console.log('Inside categoryAxisJSON value');
+ $scope.reportRunJson.categoryAxisJSON = {};
+ $scope.reportRunJson.categoryAxisJSON.value = -1;
+ console.log('$scope.reportRunJson.categoryAxisJSON',$scope.reportRunJson.categoryAxisJSON);
+ }
+
+ console.log($scope.reportRunJson);
+ $http.post("save_chart", JSON.stringify($scope.reportRunJson)).success(function(data, status) {
+ $scope.successSubmit=true;
+ })
+ }
+
+
+ $scope.addRangeAxisRow = function (rangeaxisitem) {
+ $scope.reportRunJson.rangeAxisList.push({
+ });
+ };
+
+ $scope.removeRangeAxisRow = function (index) {
+ $scope.reportRunJson.rangeAxisList.splice(index, 1);
+ };
+
+
+ $scope.init = function () {
+ if ($scope) {
+ $scope.populateChrtWzdFields();
+ }
+ };
+
+
+
+ $scope.domainItems = [{title:"Domain Axis1", content:"Test1", open: false},{title:"Domain Axis2", content:"Test2", open: false}];
+
+ $scope.chartTypes = [
+ {index: 0, value: 'BarChart3D', title: 'Bar Chart'},
+ {index: 1, value: 'TimeSeriesChart', title: 'Time Series/Area Chart'},
+ {index: 2, value: 'PieChart', title: 'Pie Chart'},
+ {index: 3, value: 'AnnotationChart', title: 'Annotation Chart'},
+ {index: 4, value: 'FlexTimeChart', title: 'Flexible Time Chart'}
+ ];
+
+ $scope.categories = [
+ {index: 0, value: 'scenario_name', title: 'scenario_name'},
+ {index: 1, value: 'total_traffic_in_PB', title: 'Total Traffic in PB'},
+ {index: 2, value: 'Avg Utilization Day', title: 'Avg Utilization Day'}
+ ];
+
+ $scope.rangeColors = [
+ {index: 0, value: "#1f77b4",title: "Dodger Blue"},
+ {index: 1, value: "#ff7f0e",title: "Vivid orange"},
+ {index: 2, value: "#2ca02c",title: "Forest Green"},
+ {index: 3, value: "#8c864b",title: "Greenish Red"},
+ {index: 4, value: "#9467bd",title: "Desaturated violet"},
+ {index: 5, value: "#8c564b",title: "Dark moderate red"},
+ {index: 6, value: "#e377c2",title: "Soft pink"},
+ {index: 7, value: "#7f7f7f",title: "Dark gray"},
+ {index: 8, value: "#bcbd22",title: "Strong yellow"},
+ {index: 9, value: "#17becf",title: "Strong cyan"},
+ {index: 10, value: "#dc143c",title: "Vivid red"},
+ {index: 11, value: "#800080",title: "Dark magenta"},
+ {index: 12, value: "#0000FF",title: "Blue"},
+ {index: 13, value: "#008000",title: "Dark lime green"},
+ {index: 14, value: "#D2691E",title: "Reddish Orange"},
+ {index: 15, value: "#FF0000",title: "Red"},
+ {index: 16, value: "#000000",title: "Black"},
+ {index: 17, value: "#DB7093",title: "Pink"},
+ {index: 18, value: "#FF00FF",title: "Pure Magenta"},
+ {index: 19, value: "#7B68EE",title: "Soft blue"},
+ {index: 20, value: "#1f77b6",title: "Strong blue"},
+ {index: 21, value: "#9edae5",title: "Very soft cyan"},
+ {index: 22, value: "#393b79",title: "Dark Blue"},
+ {index: 23, value: "#5254a3",title: "Dark moderate Blue"},
+ {index: 24, value: "#6b6ecf",title: "Slightly desaturated blue"},
+ {index: 25, value: "#9c9ede",title: "Very soft blue"},
+ {index: 26, value: "#637939",title: "Dark Green"},
+ {index: 27, value: "#8ca252",title: "Dark moderate green"},
+ {index: 28, value: "#b5cf6b",title: "Slightly desaturated green"},
+ {index: 29, value: "#cedb9c",title: "Desaturated Green"},
+
+ /* Old Colors */
+ {index: 30, value: "#00FFFF",title: "Aqua"},
+ {index: 31, value: "#000000",title: "Black"},
+ {index: 32, value: "#0000FF",title: "Blue"},
+ {index: 33, value: "#FF00FF",title: "Fuchsia"},
+ {index: 34, value: "#808080",title: "Gray"},
+ {index: 35, value: "#008000",title: "Green"},
+ {index: 36, value: "#00FF00",title: "Lime"},
+ {index: 37, value: "#800000",title: "Maroon"},
+ {index: 38, value: "#000080",title: "Navy"},
+ {index: 39, value: "#808000",title: "Olive"},
+ {index: 40, value: "#FF9900",title: "Orange"},
+ {index: 41, value: "#800080",title: "Purple"},
+ {index: 42, value: "#FF0000",title: "Red"},
+ {index: 43, value: "#C0C0C0",title: "Silver"},
+ {index: 44, value: "#008080",title: "Teal"},
+ {index: 45, value: "#FFFFFF",title: "White"},
+ {index: 46, value: "#FFFF00",title: "Yellow"}
+ ];
+
+
+ $scope.lineTypes = [
+ {index: 0, value: 'default', title: 'Default'},
+ {index: 1, value: 'dotted_lines', title: 'Dotted Lines'},
+ {index: 2, value: 'dashed_lines', title: 'Dashed Lines'}
+ ];
+
+ $scope.hardCodeReport= {
+ "reportID":"3356",
+ "reportName":"Test: Line Chart",
+ "reportDescr":"",
+ "reportTitle":"",
+ "reportSubTitle":"",
+ "formFieldList":[
+ ],
+ "chartColumnJSONList":[
+ {
+ "index":0,
+ "value":"tr0",
+ "title":"traffic_date",
+ "$$hashKey":"056"
+ },
+ {
+ "index":1,
+ "value":"ut1",
+ "title":"util_perc",
+ "$$hashKey":"057"
+ }
+ ],
+ "formfield_comments":null,
+ "totalRows":0,
+ "chartSqlWhole":"SELECT traffic_date tr0, traffic_date tr0_1,util_perc ut1, 1 FROM portal.demo_util_chart ORDER BY 1",
+ "chartAvailable":true,
+ "chartType":{"index": "", "value": "Bar Chart", "title": ""},
+ "width":"700",
+ "height":"420",
+ "animation":false,
+ "rotateLabels":"90",
+ "staggerLabels":false,
+ "showTitle":"false",
+ "domainAxis":{
+ "index":0,
+ "value":"tr0",
+ "title":"traffic_date",
+ "$$hashKey":"11H"
+ },
+
+ "categoryAxis":{
+ "index":1,
+ "value":"ut1",
+ "title":"util_perc",
+ "$$hashKey":"11I"
+ },
+
+ "hasCategoryAxis":false,
+ "rangeAxisList":[
+ {
+
+ "rangeColor":{
+ "index":"",
+ "value":"#bcbd22",
+ "title":""
+ },
+
+ "rangeLineType":{
+ "index":"",
+ "value":"dotted_lines",
+ "title":""
+ },
+ "rangeAxisLabel":{
+ "index":0,
+ "value":"tr0",
+ "title":"traffic_date",
+ "$$hashKey":"056"
+ },
+ "YAxis":"10",
+ "chartTitle":"test"
+ },
+ {
+ "rangeColor":{
+ "index":"",
+ "value":"#2ca02c",
+ "title":""
+ },
+
+ "rangeLineType":{
+ "index":"",
+ "value":"dashed_lines",
+ "title":""
+
+
+ },
+
+ "rangeAxisLabel":{
+ "index":0,
+ "value":"tr0",
+ "title":"traffic_date",
+ "$$hashKey":"056"
+ },
+ "YAxis":"10",
+ "chartTitle":"test"
+ }
+
+
+ ],
+
+ "primaryAxisLabel":"testlabel",
+ "secondaryAxisLabel":"testseclabel",
+ "minRange":"10",
+ "maxRange":"20",
+ "topMargin":"6",
+ "bottomMargin":"5",
+ "leftMargin":"4",
+ "rightMargin":"3"
+ };
+
+ var colorValue = $scope.hardCodeReport.rangeAxisList[0].rangeColor.value;
+
+ $timeout(function() {
+ $rootScope.isViewRendering = false;
+ });
+
+
+});
+
+app.directive('onlyDigits', function () {
+
+ return {
+ restrict: 'A',
+ require: '?ngModel',
+ link: function (scope, element, attrs, ngModel) {
+ if (!ngModel) return;
+ ngModel.$parsers.unshift(function (inputValue) {
+ var digits = inputValue.split('').filter(function (s) { return (!isNaN(s) && s != ' '); }).join('');
+ ngModel.$viewValue = digits;
+ ngModel.$render();
+ return digits;
+ });
+ }
+ };
+});
+
+app.directive('onlyCharacters', function () {
+ return {
+ restrict: 'A',
+ require: '?ngModel',
+ link: function (scope, element, attrs, ngModel) {
+ if (!ngModel) return;
+ ngModel.$parsers.unshift(function (inputValue) {
+ var digits = inputValue.split('').filter(function (s) { return (isNaN(s) && s != ' '); }).join('');
+ ngModel.$viewValue = digits;
+ ngModel.$render();
+ return digits;
+ });
+ }
+ };
+});
+
+
+
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-router.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-router.js
index db3422ed..1e22cca3 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-router.js
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-router.js
@@ -17,6 +17,10 @@ appDS2.config(['$routeProvider',
templateUrl: 'static/fusion/raptor/ebz/report_chart_wizard.html',
controller: 'ChartController'
}).
+ when('/report_chart/:reportId', {
+ templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/report-chart-wizard.html',
+ controller: 'reportChartController'
+ }).
when("/report_wizard", {
templateUrl : "app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/report-step.html",
controller: "reportStepController"
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-run-controller.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-run-controller.js
index 02f58985..760ff6d3 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-run-controller.js
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-run-controller.js
@@ -10,7 +10,9 @@ appDS2.controller("reportRunController", ['$scope','$rootScope','$routeParams','
$scope.reportData.allowEdit = false;
$scope.formFieldSelectedValues = {};
$scope.showFormFieldIds = false;
-
+ $scope.showFormFieldId = {
+ value: false
+ };
$scope.isInProgress = true;
if($routeParams.reportUrlParams.indexOf("parent___params===")>-1) {
@@ -20,7 +22,7 @@ appDS2.controller("reportRunController", ['$scope','$rootScope','$routeParams','
} else {
$scope.currentReportUrlParams = $routeParams.reportUrlParams;
}
- console.log($routeParams.reportUrlParams);
+ // console.log($routeParams.reportUrlParams);
var parseQueryString = function( queryString ) {
var params = {}, queries, temp, i, l;
// Split into key/value pairs
@@ -60,10 +62,10 @@ appDS2.controller("reportRunController", ['$scope','$rootScope','$routeParams','
$http.get('raptor.htm?action=report.run.container&'+$scope.currentReportUrlParams).then(
function(response){
- console.log(response);
+ // console.log(response);
$scope.isInProgress = false;
$scope.reportData = response.data;
- console.log('reportData report run container response',$scope.reportData);
+ // console.log('reportData report run container response',$scope.reportData);
if ($scope.reportData.reportTitle) {
$scope.reportData.reportHeading = $scope.reportData.reportTitle;
if ($scope.reportData.reportSubTitle) {
@@ -73,7 +75,7 @@ appDS2.controller("reportRunController", ['$scope','$rootScope','$routeParams','
else
$scope.reportData.reportHeading = $scope.reportData.reportName;
if(!$scope.urlParams.hideChart && $scope.reportData.chartAvailable && $scope.reportData.totalRows>1){
- console.log('raptor.htm?action=chart.run&'+convertQueryString($scope.urlParams));
+ // console.log('raptor.htm?action=chart.run&'+convertQueryString($scope.urlParams));
$http.get('raptor.htm?action=chart.run&'+convertQueryString($scope.urlParams)).then(
function(response){
$scope.showChart = true;
@@ -120,7 +122,7 @@ appDS2.controller("reportRunController", ['$scope','$rootScope','$routeParams','
else
$scope.reportData.reportHeading = $scope.reportData.reportName;*/
- console.log("pagination");
+ // console.log("pagination");
if(!pagination) {
//console.log("refreshed ...");
$scope.gridOptions.pageNumber = 1;
@@ -141,7 +143,7 @@ appDS2.controller("reportRunController", ['$scope','$rootScope','$routeParams','
}
$scope.currentReportUrlParams = 'c_master='+$scope.urlParams.c_master+'&'+formFieldsUrl+'&display_content=Y&r_page='+(paginationOptions.pageNumber-1);
- console.log('raptor.htm?action=report.run.container&c_master='+$scope.urlParams.c_master+'&'+formFieldsUrl+'refresh=Y&display_content=Y&r_page='+(paginationOptions.pageNumber-1));
+ // console.log('raptor.htm?action=report.run.container&c_master='+$scope.urlParams.c_master+'&'+formFieldsUrl+'refresh=Y&display_content=Y&r_page='+(paginationOptions.pageNumber-1));
$http.get('raptor.htm?action=report.run.container&c_master='+$scope.urlParams.c_master+'&'+formFieldsUrl+'refresh=Y&display_content=Y&r_page='+(paginationOptions.pageNumber-1)).then(
function(response){
$scope.reportData = response.data;
@@ -163,12 +165,12 @@ appDS2.controller("reportRunController", ['$scope','$rootScope','$routeParams','
}
if(!pagination) {
if(!$scope.urlParams.hideChart && $scope.reportData.chartAvailable && $scope.reportData.totalRows>1){
- console.log('raptor.htm?action=chart.run&c_master='+$scope.urlParams.c_master+'&'+formFieldsUrl+'display_content=Y&r_page='+(paginationOptions.pageNumber-1));
+ // console.log('raptor.htm?action=chart.run&c_master='+$scope.urlParams.c_master+'&'+formFieldsUrl+'display_content=Y&r_page='+(paginationOptions.pageNumber-1));
$http.get('raptor.htm?action=chart.run&c_master='+$scope.urlParams.c_master+'&'+formFieldsUrl+'display_content=Y&r_page='+(paginationOptions.pageNumber-1)).then(
function(response) {
- console.log(response.data);
+ // console.log(response.data);
$scope.showChart = true;
- console.log('response.data',response.data);
+ // console.log('response.data',response.data);
document.getElementById('chartiframe').contentWindow.document.write(response.data);
document.getElementById('chartiframe').contentWindow.document.close();
});
@@ -313,7 +315,7 @@ appDS2.controller("reportRunController", ['$scope','$rootScope','$routeParams','
});
$scope.triggerOtherFormFields = function(){
- console.log("report_run");
+ // console.log("report_run");
var formFieldsUrl = $scope.getFormFieldSelectedValuesAsURL();
$http.get('raptor.htm?action=report.formfields.run.container&c_master='+$scope.reportData.reportID+'&'+formFieldsUrl).then(
function(response){
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-search-controller.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-search-controller.js
index 1e01a297..3fe5bde3 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-search-controller.js
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-search-controller.js
@@ -45,6 +45,7 @@ appDS2.controller("reportSearchController", ['$scope','$rootScope','$http','$tim
paginationPageSize: 5,
paginationTemplate: correctTotalPaginationTemplate,
columnDefs: [],
+ enableColumnResizing: true,
data: [],
enableGridMenu: true,
enableSelectAll: true,
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-step-controller.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-step-controller.js
index 6133fe64..f1e82fa5 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-step-controller.js
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/ds2-reports/report-step-controller.js
@@ -1,5 +1,7 @@
appDS2.controller('reportStepController', function($scope,$http,$location, $routeParams, $q, $modal,$log,$window, raptorReportFactory, stepFormFactory, DOMHelper) {
+
+ $scope.showLoader = true;
// tabs for report wizard steps:
$scope.activeTabsId = 'Definition';
@@ -10,8 +12,10 @@ appDS2.controller('reportStepController', function($scope,$http,$location, $rout
raptorReportFactory.getDefinitionByReportId(id).then(function(data){
$scope.loadDefinition(data);
$scope.definitionData = data;
+ $scope.showLoader = false;
},function(error){
$log.error("raptorReportFactory: getSearchData failed.");
+ $scope.showLoader = false;
});
}
@@ -20,6 +24,7 @@ appDS2.controller('reportStepController', function($scope,$http,$location, $rout
raptorReportFactory.createNewDefinition().then(function(data){
$scope.loadDefinition(data);
$scope.definitionData = data;
+ $scope.showLoader = false;
},function(error){
$log.error("raptorReportFactory: getSearchData failed.");
});
@@ -41,6 +46,7 @@ appDS2.controller('reportStepController', function($scope,$http,$location, $rout
raptorReportFactory.getSqlInSession().then(function(data){
$scope.sqlInSessionJSON = data;
$scope.sqlScript = data.query;
+ $scope.showLoader = false;
},function(error){
$log.error("raptorReportFactory: getSearchData failed.");
});
@@ -133,6 +139,7 @@ appDS2.controller('reportStepController', function($scope,$http,$location, $rout
$scope.hideExcelSelected = {"value":definitionData.displayOptions[3].selected};
$scope.hidePdfSelected = {"value":definitionData.displayOptions[4].selected};
$scope.runtimeColSortDisabled = {"value":definitionData.runtimeColSortDisabled};
+ $scope.showLoader = false;
}
@@ -349,11 +356,21 @@ appDS2.controller('reportStepController', function($scope,$http,$location, $rout
$scope.drilldownURL = data.drilldownURL;
$scope.drilldownParams = data.drilldownParams;
$scope.drilldownType = data.drilldownType;
+ $scope.selectedDrillDownReport = {"value":""};
+
+
},function(error){
$log.error("raptorReportFactory: getColumnEditInfoById failed.");
});
var init = function() {
+
+ raptorReportFactory.getDrillDownReportList().then(function(data2){
+ $scope.drilldownReports = data2;
+ },function(error){
+ $log.error("raptorReportFactory: getDrillDownReportList failed.");
+ });
+
/* $scope.colTableRowData = colData;*/
$scope.displayAlignmentOptions = [
{value:"null", text:""},
@@ -373,8 +390,15 @@ appDS2.controller('reportStepController', function($scope,$http,$location, $rout
}
init();
+ $scope.$watch('selectedDrillDownReport.value',function(){
+ if ($scope.selectedDrillDownReport) {
+ $scope.$emit('openDrillDownpage',$scope.selectedDrillDownReport.value);
+ }
+ });
$scope.save = function() {
+ var drilldownURL = "";//raptorReportFactory.drillDownPopupOptions
+ //raptorReportFactory.drillDownPopupOptions.radioGroup
var colInfo = {
"tabId" : "ColEdit",
"tabName" : "Column Edit",
@@ -384,7 +408,7 @@ appDS2.controller('reportStepController', function($scope,$http,$location, $rout
"displayHeaderAlignment" : ($scope.selectedDisplayHeaderAlignment.value=="null")?null:$scope.selectedDisplayHeaderAlignment.value,
"sortable" : ($scope.sortable.value=="true"),
"visible" : ($scope.visible.value=="true"),
- "drilldownURL" : "",
+ "drilldownURL" : drilldownURL,
"drilldownParams" : "",
"drilldownType" : ""
}
@@ -576,9 +600,77 @@ appDS2.controller('reportStepController', function($scope,$http,$location, $rout
});
};
-
+ $scope.openDrillDownReportPopup = function (reportId) {
+ var modalInstance = $modal.open({
+ scope: $scope,
+ animation: $scope.animationsEnabled,
+ templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-drilldown-edit.html',
+ sizeClass: 'modal-large',
+ controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory','reportId', function ($scope, $modalInstance, $http, $log, raptorReportFactory, reportId) {
+ $scope.selectedvalueradioGroup = {"name":""};
+ $scope.selectedChildReportFormField = {"value":""};
+ $scope.selectedChildReportColumn = {"value":""};
+ $scope.fixedValue = {"value":""};
+ $scope.suppressValues = {"value":""};
+
+ raptorReportFactory.getChildReportFormField(reportId).then(function(data){
+ $scope.childReportFF =data;
+ },function(error){
+ $log.error("raptorReportFactory: getChildReportFormField failed.");
+ });
+
+ raptorReportFactory.getChildReportColumn(reportId).then(function(data){
+ $scope.childReportCol =data;
+ },function(error){
+ $log.error("raptorReportFactory: getChildReportFormField failed.");
+ });
+
+ raptorReportFactory.setDrillDownPopupOptions(null);
+
+ $scope.complete = function() {
+// if ($scope.selectedvalueradioGroup.name=="radiovalue1") {
+// console.log("radio 1 selected");
+// } else if ($scope.selectedvalueradioGroup.name=="radiovalue2") {
+// console.log("radio 2 selected");
+// } else if ($scope.selectedvalueradioGroup.name=="radiovalue3") {
+// console.log("radio 3 selected");
+// } else if ($scope.selectedvalueradioGroup.name=="radiovalue4") {
+// console.log("radio 4 selected");
+// } else if ($scope.selectedvalueradioGroup.name=="radiovalue5") {
+// console.log("radio 5 selected");
+// } else {
+// console.log("None selected");
+// }
+
+ var drillDownPopupOptions= {
+ radioGroup : $scope.selectedvalueradioGroup.name,
+ reportFF: $scope.selectedChildReportFormField.value,
+ reportCol: $scope.selectedChildReportColumn.value,
+ fixedValue: $scope.fixedValue.value,
+ suppressValues: $scope.suppressValues.value
+ }
+ raptorReportFactory.setDrillDownPopupOptions(drillDownPopupOptions);
+ console.log(raptorReportFactory.drillDownPopupOptions);
+
+ $modalInstance.close();
+ };
+ }],
+ resolve:{
+ reportId: function(){
+ return reportId;
+ }
+ }
+ });
+
+ modalInstance.result.then(function () {
+/* $scope.$emit('RefreshFormField');*/
+ }, function () {
+ });
+};
+
$scope.$watch('activeTabsId', function (newVal, oldVal) {
if(newVal !== oldVal) {
+ $scope.showLoader = true;
var selectedTab;
for (selectedTab = 0; selectedTab < $scope.gTabs.length; selectedTab++) {
if ($scope.gTabs[selectedTab].id === newVal) {
@@ -587,28 +679,36 @@ appDS2.controller('reportStepController', function($scope,$http,$location, $rout
$scope.isColumnStep = false;
$scope.isFormFieldStep = false;
$scope.renderStep(selectedTab+1);
- if ($scope.stepNum == 2) {
+ if ($scope.stepNum == 1) {
+ $scope.showLoader = false;
+ }
+ else if ($scope.stepNum == 2) {
loadSqlInSession();
} else if ($scope.stepNum == 3) {
$scope.isColumnStep = true;
-
raptorReportFactory.getColumnList().then(function(data){
$scope.colTableRowData = data;
+ $scope.showLoader = false;
},function(error){
- $log.error("raptorReportFactory: get column list failed."); });
-
+ $log.error("raptorReportFactory: get column list failed.");
+ $scope.showLoader = false;});
+
} else if ($scope.stepNum == 4) {
$scope.isFormFieldStep = true;
// put within then function:
raptorReportFactory.getFormFieldList().then(function(data){
$scope.formFieldData = data;
+ $scope.showLoader = false;
},function(error){
- $log.error("raptorReportFactory: get formfields failed."); });
+ $log.error("raptorReportFactory: get formfields failed.");
+ $scope.showLoader = false;});
} else if ($scope.stepNum == 5) {
raptorReportFactory.getDefinitionInSession().then(function(data){
$scope.reportId = data.reportId;
+ $scope.showLoader = false;
},function(error){
- $log.error("raptorReportFactory: getDefinitionInSession failed."); });
+ $log.error("raptorReportFactory: getDefinitionInSession failed.");
+ $scope.showLoader = false;});
}
if ($scope.stepNum>1){
@@ -869,6 +969,13 @@ appDS2.controller('reportStepController', function($scope,$http,$location, $rout
$scope.getDefinitionById(-1);
});
+ $scope.$on('openDrillDownpage', function(event, reportId) {
+ if (reportId!="") {
+ $scope.openDrillDownReportPopup(reportId);
+ }
+ });
+
+
$scope.$on('RefreshFormField', function(event) {
raptorReportFactory.getFormFieldList().then(function(data){
$scope.formFieldData = data;
@@ -897,4 +1004,4 @@ appDS2.controller('reportStepController', function($scope,$http,$location, $rout
// getAllProjects();
-}); \ No newline at end of file
+});
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-directives/ds2Header.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-directives/ds2Header.js
index 87ae7a31..7dcbdbe8 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-directives/ds2Header.js
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-directives/ds2Header.js
@@ -1,152 +1,116 @@
- appDS2.directive('ds2Header', function () {
- return {
- restrict: 'A', //This menas that it will be used as an attribute and NOT as an element. I don't like creating custom HTML elements
- replace: false,
- templateUrl: "app/fusion/scripts/DS2-view-models/ds2Header.html",
- controller: ['$scope', '$filter','$http','$timeout', '$log','UserInfoServiceDS2', '$window', '$cookies', "$cookieStore", function ($scope, $filter, $http, $timeout, $log,UserInfoServiceDS2, $window, $cookies, $cookieStore) {
- // copy from existing DS1
- /*Define fields*/
- $scope.userName;
- $scope.userFirstName;
- /*$scope.redirectUrl;
- $scope.contactUsUrl;
- $scope.getAccessUrl;
- $scope.childData=[];
- $scope.parentData=[];
- $scope.menuItems = [];
- $scope.loadMenufail=false;
- $scope.megaMenuDataObject=[];
- $scope.activeClickSubMenu = {
- x: ''
- };
- $scope.activeClickMenu = {
- x: ''
- };
- $scope.favoritesMenuItems = [];
- $scope.favoriteItemsCount = 0;
- $scope.showFavorites = false;
- $scope.emptyFavorites = false;
- $scope.favoritesWindow = false;*/
+appDS2.directive('ds2Header', function () {
+ return {
+ restrict: 'A', //This menas that it will be used as an attribute and NOT as an element. I don't like creating custom HTML elements
+ replace: false,
+ templateUrl: "app/fusion/scripts/DS2-view-models/ds2Header.html",
+ controller: ['$scope', '$filter','$http','$timeout', '$log','UserInfoServiceDS2', 'HeaderServiceDS2', '$window', '$cookies','$cookieStore', function ($scope, $filter, $http, $timeout, $log,UserInfoServiceDS2,HeaderServiceDS2, $window, $cookies,$cookieStore) {
+ // copy from existing DS1
- //DS2 code
- $scope.tabItems = [
- {
- 'title': 'ECOMP'
- },
- {
- 'title': 'Help',
- 'subitems': [{
- 'value': 'Contact Us'
+ /*Define fields*/
+ $scope.userName;
+ $scope.userFirstName;
+ $scope.userId;
+ $scope.userEmail;
+ $scope.redirectUrl;
+ $scope.contactUsUrl;
+ $scope.getAccessUrl;
+ $scope.menuItems = [];
+ $scope.showHeader = ($cookieStore.get("show_app_header") == undefined ? true : $cookies.get("show_app_header") );
- }, {
- 'value': 'Get Access'
- },
- ]},
- ];
-
- $scope.userProfile = {};
- $scope.showInfo = false;
- $scope.showProfile = function () {
- $scope.showInfo = !$scope.showInfo;
- };
- $scope.loginOptions1 = [
- {value: '', text: 'Log In..'},
- {value: '1', text: 'Premier'},
- {value: '2', text: 'Wifi Services'},
- {value: '3', text: 'Cloud Solutions'}
- ];
- $scope.loginVal = {};
- $scope.loginVal.value = $scope.loginOptions1[0].value;
-
- $scope.clickLogin = function () {
- $scope.openDropdown = !$scope.openDropdown;
- };
- $scope.skipNavigation = function () {
- var element = angular.element(document.querySelector('li.last'))[0];
- element.children[0].focus();
- };
-
- /***************functions**************/
- /*Put user info into fields*/
+
+ /***************functions**************/
+ /*getting user info from session*/
+ $scope.getUserNameFromSession = function(){
+ UserInfoServiceDS2.getFunctionalMenuStaticDetailSession()
+ .then(function (res) {
+ $scope.contactUsUrl=res.contactUsLink;
+ $scope.userName = res.userName;
+ $scope.userId = res.userid;
+ $scope.userEmail = res.email;
+ $scope.userFirstName = res.firstName;
+ $scope.redirectUrl = res.portalUrl;
+ $scope.getAccessUrl = res.getAccessUrl;
+ });
+ }
+
+ $scope.returnToPortal=function(){
+ window.location.href = $scope.redirectUrl;
+ }
- $scope.inputUserInfo = function(userInfo){
- if (typeof(userInfo) != "undefined" && userInfo!=null && userInfo!=''){
- if(typeof(userInfo.USER_FIRST_NAME) != "undefined" && userInfo.USER_FIRST_NAME!=null){
- $scope.userFirstName = userInfo.USER_FIRST_NAME;
- }
- }
- }
- /*getting user info from session*/
- $scope.getUserNameFromSession = function(){
- UserInfoServiceDS2.getFunctionalMenuStaticDetailSession()
- .then(function (res) {
- $scope.contactUsUrl=res.contactUsLink;
- $scope.userName = res.userName;
- $scope.userFirstName = res.firstName;
- $scope.redirectUrl = res.portalUrl;
- $scope.getAccessUrl = res.getAccessUrl;
- $scope.userProfile.fullName = res.userName;
- $scope.userProfile.email = res.email;
- });
- }
+ /*Menu Structure*/
+ var menuStructureConvert = function(menuItems) {
+ $scope.megaMenuDataObjectTemp =
+ [{
+ text: "Manage",
+ children: menuItems
+ },
+ {
+ text: "Support",
+ children: [
+ {
+ label:"Contact Us",
+ action:$scope.contactUsUrl,
+ childMenus:[]
+ },
+ {
+ label:"Get Access",
+ action:$scope.getAccessUrl,
+ childMenus:[]
+ }]
+ }];
+ return $scope.megaMenuDataObjectTemp;
+ };
- /*Put user info into fields*/
- $scope.inputUserInfo = function(userInfo){
- if (typeof(userInfo) != "undefined" && userInfo!=null && userInfo!=''){
- if (typeof(userInfo.USER_FIRST_NAME) != "undefined" && userInfo.USER_FIRST_NAME!=null && userInfo.USER_FIRST_NAME!='')
- $scope.userProfile.firstName = userInfo.USER_FIRST_NAME;
- if (typeof(userInfo.USER_LAST_NAME) != "undefined" && userInfo.USER_LAST_NAME!=null && userInfo.USER_LAST_NAME!='')
- $scope.userProfile.lastName = userInfo.USER_LAST_NAME;
- if (typeof(userInfo.USER_EMAIL) != "undefined" && userInfo.USER_EMAIL!=null && userInfo.USER_EMAIL!='')
- $scope.userProfile.email = userInfo.USER_EMAIL;
- }
- }
+ $scope.getMenu=function() {
+ $scope.getUserNameFromSession();
+ var promise = HeaderServiceDS2.getMenu();
+ promise.then(
+ function(res) {
+ if(res==null || res==''){
+ $log.error('failed to get menu');
+ $scope.getUserNameFromSession();
+ }else{
+ $scope.parentMenu = JSON.parse(res.data);
+ $scope.childMenu = JSON.parse(res.data2);
+ for(var i=0; i<$scope.parentMenu.length;i++){
+ $scope.parentMenu[i].childMenus = ($scope.childMenu[i]);
+ }
+ $scope.menuItems = menuStructureConvert($scope.parentMenu);
+ }
+ },
+ function(err) {
+ $log.error('getMenu failed', err);
+ }
+ );
+ }
- /*getting user info from shared context*/
- $scope.getUserName=function() {
- var promise = UserInfoServiceDS2.getFunctionalMenuStaticDetailShareContext();
- promise.then(
- function(res) {
- if(res==null || res==''){
- $log.warn('DS2HeaderCtlr::getUserName: failed to get info from shared context');
- $scope.getUserNameFromSession();
- }else{
- // $log.info('Received User information from shared context',res);
- var resData = res;
- $scope.inputUserInfo(resData);
- $scope.userProfile.fullName = $scope.userProfile.firstName+ ' '+ $scope.userProfile.lastName;
- }
- },
- function(err) {
- console.log('error');
- }
- );
- };
-
- $scope.adjustHeader=function() {
- $scope.showHeader = ($cookieStore.get("show_app_header") == undefined ? true : $cookies.show_app_header);
- if($scope.showHeader == true) {
- $scope.drawer_margin_top = 70;
- $scope.drawer_custom_top = 54;
- $scope.toggle_drawer_top = 55;
- }
- else {
-
- $scope.drawer_margin_top = 60;
- $scope.drawer_custom_top = 0;
- $scope.toggle_drawer_top = 10;
- }
-
- }
+
+
+ $scope.adjustHeader=function() {
+ $scope.showHeader = ($cookies.get("show_app_header") == undefined ? true : $cookies.get("show_app_header"));
+ console.log($scope.showHeader);
+ if ($scope.showHeader==true) {
+ document.getElementById('page-content').style.marginTop = "45px";
+ }else{
+ document.getElementById('page-content').style.marginTop = "0px";
+ }
+ }; // adjustHeader
+ $scope.$on('$routeChangeSuccess', function () {
+ $scope.adjustHeader();
+ });
- /*call the get user info function*/
- try{
- $scope.getUserName();
- $scope.adjustHeader();
-
- }catch(err){
- $log.info('Error while getting User information',err);
- }
- }]
- }
-}); \ No newline at end of file
+ $scope.getUserNameFromSession();
+ $scope.getMenu();
+ }]
+ }
+});
+
+appDS2.filter("ellipsis", function(){
+ return function(text, length){
+ if (text) {
+ var ellipsis = text.length > length ? "..." : "";
+ return text.slice(0, length) + ellipsis;
+ };
+ return text;
+ }
+});
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-directives/ds2LeftMenu.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-directives/ds2LeftMenu.js
index 8174c586..758add6e 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-directives/ds2LeftMenu.js
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-directives/ds2LeftMenu.js
@@ -64,23 +64,7 @@ appDS2.directive('ds2Menu', function () {
},function(error){
console.log("error happened while calling getAppName "+error);
});
-
- $scope.adjustHeader=function() {
- $scope.showHeader = ($cookies.show_app_header == undefined ? true : $cookies.show_app_header);
- if ($scope.showHeader == true) {
- $scope.drawer_margin_top = 50;
- $scope.drawer_custom_top = 54;
- $scope.toggle_drawer_top = 55;
- }
- else {
- $scope.drawer_margin_top = 40;
- $scope.drawer_custom_top = 0;
- $scope.toggle_drawer_top = 10;
- }
- }; // adjustHeader
-
-
- $scope.adjustHeader();
+
$scope.drawerOpen = true;
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-services/ds2-raptor-report/raptorReportFactory.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-services/ds2-raptor-report/raptorReportFactory.js
index 06324d39..65e05fbd 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-services/ds2-raptor-report/raptorReportFactory.js
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-services/ds2-raptor-report/raptorReportFactory.js
@@ -3,7 +3,22 @@ appDS2.factory('raptorReportFactory', function($http, $q) {
getDefinitionByReportId: function(reportId) {
return $http({
method: "GET",
- url: "report/wizard/retrieve_tab_wise_data/Def/"+reportId,
+ url: "report/wizard/retrieve_def_tab_wise_data/"+reportId,
+ }).then(function(response) {
+ if (typeof response.data === 'object') {
+ return response.data;
+ } else {
+ return $q.reject("raptorReportFactory: getDefinitionByReportId did not return a valid JSON object.");
+ }
+ }, function(response) {
+ // something went wrong
+ return $q.reject("raptorReportFactory: getDefinitionByReportId callback failed");
+ });
+ },
+ getDefinitionByReportId: function(reportId) {
+ return $http({
+ method: "GET",
+ url: "report/wizard/retrieve_def_tab_wise_data/"+reportId,
}).then(function(response) {
if (typeof response.data === 'object') {
return response.data;
@@ -18,7 +33,7 @@ appDS2.factory('raptorReportFactory', function($http, $q) {
getDefinitionInSession: function() {
return $http({
method: "GET",
- url: "report/wizard/retrieve_tab_wise_data/Def/InSession",
+ url: "report/wizard/retrieve_def_tab_wise_data/InSession",
}).then(function(response) {
if (typeof response.data === 'object') {
return response.data;
@@ -34,7 +49,7 @@ appDS2.factory('raptorReportFactory', function($http, $q) {
createNewDefinition: function() {
return $http({
method: "GET",
- url: "report/wizard/retrieve_tab_wise_data/Def/Create",
+ url: "report/wizard/retrieve_def_tab_wise_data/Create",
}).then(function(response) {
if (typeof response.data === 'object') {
return response.data;
@@ -82,7 +97,7 @@ appDS2.factory('raptorReportFactory', function($http, $q) {
getSqlInSession: function() {
return $http({
method: "GET",
- url: "report/wizard/retrieve_tab_wise_data/Sql/InSession",
+ url: "report/wizard/retrieve_sql_tab_wise_data/InSession",
}).then(function(response) {
if (typeof response.data === 'object') {
return response.data;
@@ -100,8 +115,8 @@ appDS2.factory('raptorReportFactory', function($http, $q) {
url: "report/wizard/retrieve_data/true",
data: queryJSON
}).then(function(response) {
- if (typeof response.data === 'object') {
- return response.data;
+ if (typeof response.data === 'object') {
+ return JSON.parse(response.data.data.elements);
} else {
return $q.reject("raptorReportFactory: testRunSQL did not return a valid JSON object.");
}
@@ -118,7 +133,7 @@ appDS2.factory('raptorReportFactory', function($http, $q) {
data: queryJSON
}).then(function(response) {
if (typeof response.data === 'object') {
- return response.data;
+ return JSON.parse(response.data.data.elements);
} else {
return $q.reject("raptorReportFactory: formFieldVerifySQL did not return a valid JSON object.");
}
@@ -144,11 +159,58 @@ appDS2.factory('raptorReportFactory', function($http, $q) {
return $q.reject("raptorReportFactory: getColumnList callback failed");
});
},
-
+ getDrillDownReportList: function() {
+ return $http({
+ method: "GET",
+ url: "report/wizard/list_drilldown_reports",
+ }).then(function(response) {
+ if (typeof response.data === 'object') {
+ return response.data;
+ } else {
+ return $q.reject("raptorReportFactory: getDrillDownReportList did not return a valid JSON object.");
+ }
+ return response.data;
+ }, function(response) {
+ // something went wrong
+ return $q.reject("raptorReportFactory: getDrillDownReportList callback failed");
+ });
+ },
+ getChildReportFormField: function(reportId) {
+ return $http({
+ method: "GET",
+ url: "report/wizard/list_child_report_ff/"+reportId,
+ }).then(function(response) {
+ if (typeof response.data === 'object') {
+ return response.data;
+ } else {
+ return $q.reject("raptorReportFactory: getDrillDownReportList did not return a valid JSON object.");
+ }
+ return response.data;
+ }, function(response) {
+ // something went wrong
+ return $q.reject("raptorReportFactory: getDrillDownReportList callback failed");
+ });
+ },
+ getChildReportColumn: function(reportId) {
+ return $http({
+ method: "GET",
+ url: "report/wizard/list_child_report_col/"+reportId,
+ }).then(function(response) {
+ if (typeof response.data === 'object') {
+ return response.data;
+ } else {
+ return $q.reject("raptorReportFactory: getChildReportColumn did not return a valid JSON object.");
+ }
+ return response.data;
+ }, function(response) {
+ // something went wrong
+ return $q.reject("raptorReportFactory: getChildReportColumn callback failed");
+ });
+ },
getColumnEditInfoById: function(columnId){
return $http({
method: "GET",
- url: "report/wizard/retrieve_tab_wise_data/ColEdit/"+columnId,
+ url: "report/wizard/retrieve_col_tab_wise_data/"+columnId,
}).then(function(response) {
if (typeof response.data === 'object') {
return response.data;
@@ -241,7 +303,7 @@ appDS2.factory('raptorReportFactory', function($http, $q) {
getFormFieldEditInfoById: function(fieldId){
return $http({
method: "GET",
- url: "report/wizard/retrieve_tab_wise_data/FormEdit/"+fieldId,
+ url: "report/wizard/retrieve_form_tab_wise_data/"+fieldId,
}).then(function(response) {
if (typeof response.data === 'object') {
return response.data;
@@ -257,7 +319,7 @@ appDS2.factory('raptorReportFactory', function($http, $q) {
deleteFormFieldById: function(fieldId){
return $http({
method: "GET",
- url: "report/wizard/retrieve_tab_wise_data/FormEdit/delete/"+fieldId,
+ url: "report/wizard/retrieve_form_tab_wise_data/"+fieldId+"/delete",
}).then(function(response) {
if (typeof response.data === 'object') {
return response.data;
@@ -314,6 +376,9 @@ appDS2.factory('raptorReportFactory', function($http, $q) {
return $q.reject("raptorReportFactory: getSearchDataAtPage callback failed");
});
},
+ setDrillDownPopupOptions: function(drillDownPopupOptions) {
+ this.drillDownPopupOptions = drillDownPopupOptions;
+ },
getReportDeleteStatus : function(deleteUrl) {
return $http.get(deleteUrl).then(function(response) {
if (typeof response.data === 'object') {
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-services/headerServiceDS2.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-services/headerServiceDS2.js
index 92a99be0..c9134f62 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-services/headerServiceDS2.js
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-services/headerServiceDS2.js
@@ -1,483 +1,17 @@
-appDS2.directive('qHeader', function () {
-
- return {
- restrict: 'A', //This menas that it will be used as an attribute and NOT as an element. I don't like creating custom HTML elements
- replace: false,
- templateUrl: "app/fusion/scripts/DS2-view-models/ds2Header.html",
- controller: ['$scope', '$filter','$http','$timeout', '$log','UserInfoServiceDS2', '$window', '$cookies', function ($scope, $filter, $http, $timeout, $log,UserInfoServiceDS2, $window, $cookies) {
-
- //alert("in header service")
- /*Define fields*/
- $scope.userName;
- $scope.userFirstName;
- $scope.redirectUrl;
- $scope.contactUsUrl;
- $scope.getAccessUrl;
- $scope.childData=[];
- $scope.parentData=[];
- $scope.menuItems = [];
- $scope.loadMenufail=false;
- $scope.megaMenuDataObject=[];
- $scope.activeClickSubMenu = {
- x: ''
- };
- $scope.activeClickMenu = {
- x: ''
- };
- $scope.favoritesMenuItems = [];
- $scope.favoriteItemsCount = 0;
- $scope.showFavorites = false;
- $scope.emptyFavorites = false;
- $scope.favoritesWindow = false;
-
- /* Menu Structure
- var menuStructureConvert = function(menuItems) {
- console.log(menuItems);
- $scope.megaMenuDataObjectTemp =
- [
- {
- text: "ECOMP",
- children: menuItems
- },
- {
- text: "Help",
- children: [
- {
- text:"Contact Us",
- url:$scope.contactUsUrl
- },
- {
- text:"Get Access",
- url:$scope.getAccessUrl
- }]
- }
- ];
- return $scope.megaMenuDataObjectTemp;
- };
- */
- /***************functions**************/
- /*Put user info into fields*/
- $scope.inputUserInfo = function(userInfo){
- if (typeof(userInfo) != "undefined" && userInfo!=null && userInfo!=''){
- if(typeof(userInfo.USER_FIRST_NAME) != "undefined" && userInfo.USER_FIRST_NAME!=null){
- $scope.userFirstName = userInfo.USER_FIRST_NAME;
- }
- }
- }
- /*getting user info from session*/
- $scope.getUserNameFromSession = function(){
- UserInfoServiceDS2.getFunctionalMenuStaticDetailSession()
- .then(function (res) {
- $scope.contactUsUrl=res.contactUsLink;
- $scope.userName = res.userName;
- $scope.userFirstName = res.firstName;
- $scope.redirectUrl = res.portalUrl;
- $scope.getAccessUrl = res.getAccessUrl;
- });
- }
- $scope.getTopMenuStaticInfo=function() {
- var promise = UserInfoServiceDS2.getFunctionalMenuStaticDetailShareContext();
- promise.then(
- function(res) {
- if(res==null || res==''){
- $log.info('failed getting static User information');
- $scope.getUserNameFromSession();
- }else{
- $log.info('Received static User information');
-
- var resData = res;
- console.log(resData);
- $scope.inputUserInfo(resData);
- $scope.userName = $scope.firstName+ ' '+ $scope.lastName;
- }
- },
- function(err) {
- $log.info('failed getting static User information');
- }
- );
- }
-
- $scope.returnToPortal=function(){
- window.location.href = $scope.redirectUrl;
- }
-
- var unflatten = function( array, parent, tree ){
- tree = typeof tree !== 'undefined' ? tree : [];
- parent = typeof parent !== 'undefined' ? parent : { menuId: null };
- var children = _.filter( array, function(child){ return child.parentMenuId == parent.menuId; });
- if( !_.isEmpty( children ) ){
- if( parent.menuId === null ){
- tree = children;
- }else{
- parent['children'] = children
- }
- _.each( children, function( child ){ unflatten( array, child ) } );
- }
- return tree;
- }
-
- $scope.getMenu=function() {
- $scope.getTopMenuStaticInfo();
- $http({
- method: "GET",
- url: 'get_functional_menu',
-// TIMEOUT USED FOR LOCAL TESTING ONLY
-// timeout: 100
- }).success(function (response) {
-
- if (response == '101: Timeout') {
- $log.debug('Timeout attempting to get_functional_menu');
- $scope.megaMenuDataObject = menuStructureConvert("");
-// $scope.createErrorMenu();
- //$scope.loadMenufail=true;
- } else {
- if(typeof response != 'undefined' && response.length!=0 && typeof response[0] != 'undefined' && typeof response[0].error!="undefined"){
- $log.debug('Timeout attempting to get_functional_menu');
- $scope.menuItems = unflatten( response);
- $scope.megaMenuDataObject = menuStructureConvert($scope.menuItems);
-// $scope.createErrorMenu();
- //$scope.loadMenufail=true;
- }else{
- $scope.loadMenufail=false;
- $scope.contactUsURL = response.contactUsLink;
- $log.debug('functional_menu',response);
- $scope.megaMenuDataObject = menuStructureConvert("");
- }
- }
- }).error(function (response){
- $scope.megaMenuDataObject = menuStructureConvert("");
-// $scope.createErrorMenu();
- //$scope.loadMenufail=true;
- $log.debug('REST API failed get_functional_menu...');
- });
-
- }
-
- /*$scope.adjustHeader=function() {
- $scope.showHeader = ($cookies.show_app_header == undefined ? true : $cookies.show_app_header);
-
- if($scope.showHeader == true) {
- $scope.drawer_margin_top = 70;
- $scope.drawer_custom_top = 54;
- $scope.toggle_drawer_top = 55;
- }
- else {
-
- $scope.drawer_margin_top = 60;
- $scope.drawer_custom_top = 0;
- $scope.toggle_drawer_top = 10;
- }
-
- }*/
-
- $scope.getMenu();
- // $scope.adjustHeader();
-
-/* **************************************************************************/
-/* Logic for the favorite menus is here */
-
- $scope.loadFavorites = function () {
- $log.debug('loadFavorites has happened.');
- if ($scope.favoritesMenuItems == '') {
- $scope.generateFavoriteItems();
- $log.debug('loadFavorites is calling generateFavoriteItems()');
- } else {
- $log.debug('loadFavorites is NOT calling generateFavoriteItems()');
- }
- }
-
- $scope.goToUrl = function (item) {
- $log.info("goToUrl called")
- $log.info(item);
-
- var url = item.url;
- var restrictedApp = item.restrictedApp;
- $log.debug('Restricted app status is: ' + restrictedApp);
- if (!url) {
- $log.info('No url found for this application, doing nothing..');
- return;
- }
- if (restrictedApp) {
- $window.open(url, '_blank');
- } else {
- $window.open(url, '_self');
- }
-
- }
-
- $scope.submenuLevelAction = function(index, column) {
- if ($scope.favoritesMenuItems == '') {
- $scope.generateFavoriteItems();
- $log.debug('submenuLevelAction is calling generateFavoriteItems()');
- }
- $log.debug('item hovered/clicked: ' + index + '; column = ' + column);
- if (column == 2) { // 2 is Design
- $scope.favoritesWindow = false;
- $scope.showFavorites = false;
- $scope.emptyFavorites = false;
- }
- if (index=='Favorites' && $scope.favoriteItemsCount != 0) {
- $log.debug('Showing Favorites window');
- $scope.favoritesWindow = true;
- $scope.showFavorites = true;
- $scope.emptyFavorites = false;
- }
- if (index=='Favorites' && $scope.favoriteItemsCount == 0) {
- $log.debug('Hiding Favorites window in favor of No Favorites Window');
- $scope.favoritesWindow = true;
- $scope.showFavorites = false;
- $scope.emptyFavorites = true;
- }
- if (column > 2) {
- $scope.favoritesWindow = false;
- $scope.showFavorites = false;
- $scope.emptyFavorites = false;
- }
- };
-
- $scope.hideFavoritesWindow = function() {
- $log.debug('$scope.hideFavoritesWindow has been called');
- $scope.showFavorites = false;
- $scope.emptyFavorites = false;
- }
-
- $scope.isUrlFavorite = function (menuId) {
-// $log.debug('array objects in menu favorites = ' + $scope.favoriteItemsCount + '; menuId=' + menuId);
- var jsonMenu = JSON.stringify($scope.favoritesMenuItems);
- var isMenuFavorite = jsonMenu.indexOf('menuId\":' + menuId);
- if (isMenuFavorite==-1) {
- return false;
- } else {
- return true;
- }
-
- }
-
- $scope.generateFavoriteItems = function() {
- $http({
- method: "GET",
- url: 'get_favorites',
-// TIMEOUT USED FOR LOCAL TESTING ONLY
-// timeout: 100
- }).success(function (response) {
- if (response == '101: Timeout') {
- $log.error('Timeout attempting to get_favorites_menu');
+appDS2.factory('HeaderServiceDS2', function ($http,$log, $q) {
+ return {
+ getMenu: function() {
+ return $http.get('get_menu')
+ .then(function(response) {
+ if (typeof response.data === 'object') {
+ return response.data;
} else {
- if(typeof response != 'undefined' && response.length!=0 && typeof response[0] != 'undefined' && typeof response[0].error!="undefined"){
- $log.error('REST API failed get_favorites' + response);
- }else{
- $log.debug('get_favorites = ' + JSON.stringify(response));
- $scope.favoritesMenuItems = response;
- $scope.favoriteItemsCount = Object.keys($scope.favoritesMenuItems).length;
- $log.info('number of favorite menus: ' + $scope.favoriteItemsCount);
- }
- }
- }).error(function (response){
- $log.error('REST API failed get_favorites' + response);
-//createFavoriteErrorMenu() USED FOR LOCAL TESTING ONLY
-// $scope.createFavoriteErrorMenu();
- });
- }
-
- $scope.createFavoriteErrorMenu=function() {
- $scope.favoritesMenuItems = [];
- $scope.favoriteItemsCount = Object.keys($scope.favoritesMenuItems).length;
- $log.info('number of favorite menus: ' + $scope.favoriteItemsCount);
- }
-
- /* end of Favorite Menu code */
- /* **************************************************************************/
-
-
- /* **************************************************************************/
- // THIS IS USED FOR LOCAL TESTING ONLY
- /* **************************************************************************/
- $scope.createErrorMenu=function() {
- $log.debug('Creating fake menu now...');
-// $scope.loadMenufail=true;
- $scope.menuItems = [
- {
- "menuId": 1,
- "column": 2,
- "text": "Design",
- "parentMenuId": null,
- "url": ""
- },
- {
- "menuId": 2,
- "column": 3,
- "text": "Infrastructure Ordering",
- "parentMenuId": null,
- "url": ""
- },
- {
- "menuId": 3,
- "column": 4,
- "text": "Service Creation",
- "parentMenuId": null,
- "url": ""
- },
- {
- "menuId": 4,
- "column": 5,
- "text": "Service Mgmt",
- "parentMenuId": null,
- "url": ""
- },
- {
- "menuId": 90,
- "column": 1,
- "text": "Google",
- "parentMenuId": 1,
- "url": "http://google.com"
- },
- {
- "menuId": 91,
- "column": 1,
- "text": "Mike Little's Coffee Cup",
- "parentMenuId": 2,
- "url": "http://coffee.com"
- },
- {
- "menuId": 92,
- "column": 2,
- "text": "Andy and his Astrophotgraphy",
- "parentMenuId": 3,
- "url": "http://nightskypix.com"
- },
- {
- "menuId": 93,
- "column": 1,
- "text": "JSONLint",
- "parentMenuId": 4,
- "url": "http://http://jsonlint.com"
- },
- {
- "menuId": 94,
- "column": 2,
- "text": "HROneStop",
- "parentMenuId": 4,
- "url": "http://ebiz.sbc.com/hronestop"
- },
- {
- "menuId": 95,
- "column": 2,
- "text": "4th Level App4a R16",
- "parentMenuId": 4,
- "url": "http://www.e-access.att.com/ecomp_portal_ist/ecompportal/widgets"
- },
- {
- "menuId": 96,
- "column": 3,
- "text": "3rd Level App1c R200",
- "parentMenuId": 4,
- "url": "http://app1c.com"
- },
- {
- "menuId": 97,
- "column": 1,
- "text": "3rd Level App4b R16",
- "parentMenuId": 5,
- "url": "http://app4b.com"
- },
- {
- "menuId": 98,
- "column": 2,
- "text": "3rd Level App2b R16",
- "parentMenuId": 5,
- "url": "http://app2b.com"
- },
- {
- "menuId": 99,
- "column": 1,
- "text": "Favorites",
- "parentMenuId": null,
- "url": ""
- }
- ];
- $scope.menuItems = unflatten( $scope.menuItems );
- //remove this
- $scope.megaMenuDataObject = menuStructureConvert($scope.menuItems);
- }
- }]
- }
+ return $q.reject(response.data);
+ }
+ }, function(response) {
+ // something went wrong
+ return $q.reject(response.data);
+ });
+ }
+ };
});
-
-appDS2.filter("ellipsis", function(){
- return function(text, length){
- if (text) {
- var ellipsis = text.length > length ? "..." : "";
- return text.slice(0, length) + ellipsis;
- };
- return text;
- }
-});
-function reloadPageOnce() {
- if( window.localStorage )
- {
- if( !localStorage.getItem('firstLoad') )
- {
- localStorage['firstLoad'] = true;
- window.location.reload();
- }
- else
- localStorage.removeItem('firstLoad');
- }
-}
-appDS2.controller('loginSnippetCtrl', function ($scope,$http, $log,UserInfoServiceDS2){
- /*Define fields*/
- $scope.userProfile={
- firstName:'',
- lastName:'',
- fullName:'',
- email:'',
- }
- /*Put user info into fields*/
- $scope.inputUserInfo = function(userInfo){
- if (typeof(userInfo) != "undefined" && userInfo!=null && userInfo!=''){
- if (typeof(userInfo.USER_FIRST_NAME) != "undefined" && userInfo.USER_FIRST_NAME!=null && userInfo.USER_FIRST_NAME!='')
- $scope.userProfile.firstName = userInfo.USER_FIRST_NAME;
- if (typeof(userInfo.USER_LAST_NAME) != "undefined" && userInfo.USER_LAST_NAME!=null && userInfo.USER_LAST_NAME!='')
- $scope.userProfile.lastName = userInfo.USER_LAST_NAME;
- if (typeof(userInfo.USER_EMAIL) != "undefined" && userInfo.USER_EMAIL!=null && userInfo.USER_EMAIL!='')
- $scope.userProfile.email = userInfo.USER_EMAIL;
-
- }
- }
- /*getting user info from session*/
- $scope.getUserNameFromSession = function(){
- UserInfoServiceDS2.getFunctionalMenuStaticDetailSession()
- .then(function (response) {
- $scope.userProfile.fullName = response.userName;
- $scope.userProfile.email = response.email;
- });
- }
- /*getting user info from shared context*/
- $scope.getUserName=function() {
- var promise = UserInfoServiceDS2.getFunctionalMenuStaticDetailShareContext();
- promise.then(
- function(res) {
- if(res==null || res==''){
- $log.info('headerServiceDS2: get user information from session');
- $scope.getUserNameFromSession();
-
- }else{
- // $log.info('Received User information from shared context',res);
- var resData = res;
- console.log(resData);
- $scope.inputUserInfo(resData);
- $scope.userProfile.fullName = $scope.userProfile.firstName+ ' '+ $scope.userProfile.lastName;
- }
- },
- function(err) {
- console.log('error');
- }
- );
- };
- /*call the get user info function*/
- try{
- $scope.getUserName();
- }catch(err){
- $log.info('Error while getting User information',err);
- }
-}); \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-services/leftMenuServiceDS2.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-services/leftMenuServiceDS2.js
index 879da8e7..61346c84 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-services/leftMenuServiceDS2.js
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-services/leftMenuServiceDS2.js
@@ -70,22 +70,9 @@ window.onscroll = function (e) {
adjustLeftMenuHeight();
}
-function adjustHeader() {
- var showHeader = getCookie("show_app_header");
- if(showHeader==''){
- $(".menu-container").css({
- "margin-top" : 45,
- });
- }else{
- $(".menu-container").css({
- "margin-top" : 0,
- });
- }
-};
/* adjust left menu height on page load */
$(function() {
adjustLeftMenuHeight();
- adjustHeader();
});
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/all-reports.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/all-reports.html
index c90f95b4..bbfddca6 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/all-reports.html
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/all-reports.html
@@ -61,6 +61,7 @@
<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>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-col-edit.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-col-edit.html
index ad081991..097d1795 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-col-edit.html
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-col-edit.html
@@ -99,14 +99,14 @@
</td>
</tr>
-<!-- <tr>
- <td class="colTableLeftColumn">Drill-down Link:</td>
+ <tr>
+ <td class="colTableLeftColumn" style="width:350px;">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 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> -->
+ </tr>
</tbody>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-drilldown-edit.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-drilldown-edit.html
new file mode 100644
index 00000000..ec2134bf
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-drilldown-edit.html
@@ -0,0 +1,150 @@
+<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">
+ <table class="striped">
+ <tbody>
+
+ <fieldset role="radiogroup" radio-group-accessibility>
+ <tr ng-show="childReportFF.length>0">
+ <td colspan="2">
+ <h2>User</h2>
+ </td>
+ </tr>
+
+ <tr ng-show="childReportFF.length>0">
+ <td>
+ <div class="form-row" role="radio" style="margin-top:0px;">
+ <label for="optionsRadios1111" class="radio">
+ <input type="radio" ng-model="selectedvalueradioGroup.name" id="optionsRadios1111" name="optionsRadio11" value="noValue" required>
+ <i class="skin"></i>
+ <span>No Value</span>
+ </label>
+ </div>
+ </td>
+ <td style="margin-top:10px;">
+ <p>Accept Default</p>
+ </td>
+ </tr>
+
+ <tr ng-show="childReportFF.length>0">
+ <td>
+ <div class="form-row" role="radio" style="margin-top:0px;">
+ <label for="optionsRadios2222" class="radio">
+ <input type="radio" ng-model="selectedvalueradioGroup.name" id="optionsRadios2222" name="optionsRadio11" value="fixedValue">
+ <i class="skin"></i>
+ <span>Fixed Value</span>
+ </label>
+ </div>
+ </td>
+ <td><input type="text" name="defaultValue" ng-model="fixedValue.value" class="colTableInput"></td>
+ </tr>
+
+
+ <tr ng-show="childReportFF.length>0">
+ <td>
+ <div class="form-row" role="radio" style="margin-top:0px;">
+ <label for="optionsRadios333333" class="radio">
+ <input type="radio" ng-model="selectedvalueradioGroup.name" id="optionsRadios333333" name="optionsRadio11" value="reportCol">
+ <i class="skin"></i>
+ <span>Value of Column</span>
+ </div>
+ </td>
+ <td>
+ <select name="childReportColumn" b2b-dropdown ng-model="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="optionsRadios444444" class="radio">
+ <input type="radio" ng-model="selectedvalueradioGroup.name" id="optionsRadios444444" name="optionsRadio11" value="reportFF">
+ <i class="skin"></i>
+ <span>Value of Form Field</span>
+ </div>
+ </td>
+ <td>
+ <select name="childReportFormField" b2b-dropdown ng-model="selectedChildReportFormField.value" placeholder-text="Select">
+ <option b2b-dropdown-list option-repeat="d in childReportFF" 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="optionsRadios5555" class="radio">
+ <input type="radio" ng-model="selectedvalueradioGroup.name" id="optionsRadios5555" name="optionsRadio11" value="valueSet" required>
+ <i class="skin"></i>
+ <span>Value Set</span>
+ </label>
+ </div>
+ </td>
+ <td style="margin-top:10px;">
+ <p>Pass the value of the selected column if not empty, otherwise pass the value of the selected form field</p>
+ </td>
+ </tr>
+
+ </fieldset>
+
+ <tr>
+ <td colspan="2">
+ <h2>Parameter values not to be passed to the drill-down report</h2>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="colTableLeftColumn">Suppress Values</td>
+ <td><input type="text" name="suppressValue" ng-model="suppressValues.value" class="colTableInput"></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="complete()">Complete</button>
+ </div>
+
+ </div>
+ </form>
+ <br />
+ </div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-chart-wizard.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-chart-wizard.html
new file mode 100644
index 00000000..16676d24
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-chart-wizard.html
@@ -0,0 +1,719 @@
+<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 style="color:#2ca02c" ng-show="successSubmit">Your configurations have been successfully submitted</div> -->
+
+
+
+<div>
+<table>
+ <thead>
+ <tr>
+ <th width="30%">Chart Type</th>
+ <th>Animate</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tr>
+ <td>
+ <select name="chartType" b2b-dropdown ng-model="reportRunJson.chartTypeJSON.value" placeholder-text="Select">
+ <option b2b-dropdown-list option-repeat="d in chartTypeOptions" value="{{d.value}}">{{d.text}}</option>
+ </select>
+ </td>
+ <td>
+ <label for="animateCheckbox" class="checkbox">
+ <input id="animateCheckbox" type="checkbox" ng-model="reportRunJson.animation" /><i class="skin"></i><span></span>
+ </label>
+ </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.domainAxisJSON" placeholder-text="Select">
+ <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.categoryAxisJSON" placeholder-text="Select">
+ <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="25%">Range Axis</th>
+ <th width="10%">Y Axis</th>
+ <th width="20%">Chart Title</th>
+ <th width="22%">Color</th>
+ <th width="18%">Line Type</th>
+ <th></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <select name="chartType" b2b-dropdown ng-model="rangeReport.rangeAxisLabelJSON.value" placeholder-text="Select">
+ <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" style="width:100px;">
+ </td> <td>
+ <input type="text" name="displayName" ng-model="rangeReport.rangeChartGroup" style="width:150px;">
+ </td>
+ <td>
+ <select name="chartType" b2b-dropdown ng-model="rangeReport.rangeColorJSON" placeholder-text="Select">
+ <option b2b-dropdown-list option-repeat="d in rangeColors" value="{{d.value}}">{{d.title}}</option>
+ </select>
+ </td>
+ <td>
+ <select name="chartType" b2b-dropdown ng-model="rangeReport.rangeLineTypeJSON" placeholder-text="Select">
+ <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>
+ <button ng-hide="$index==0" type="submit" style="width: 90px; height:35px;margin-left:5px;" class="btn btn-secondary btn-small" ng-click="removeRangeAxisRow($index)">Remove</button>
+ </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.categoryAxisJSON" placeholder="Select an Option" 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.chartTypeJSON.value=='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>
+
+ <div ng-show="reportRunJson.chartTypeJSON.value=='TimeSeriesChart'">
+ <!-- <div class="fn-ebz-text-label"><b>Time Series Chart Options</b></div><BR> -->
+ <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 ng-show="reportRunJson.chartTypeJSON.value=='FlexTimeChart'">
+
+
+ <accordion close-others="true" css="att-accordion--no-box">
+ <accordion-group id="accFlexTimeChart" heading="Flex Time Series Chart Options" child-length="10">
+
+ <!-- <div class="fn-ebz-text-label"><b>Flex Time Series Chart Options</b></div><BR> -->
+ <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>
+
+
+
+
+
+
+
+ <!-- <div class="fn-ebz-text-label"><b>Common Options</b></div><BR> -->
+
+ <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 style="border:2px;border-style:solid;border-color:#808080;margin-bottom:9px"> -->
+<!-- <div style="margin-left:0px">
+
+ <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>
+
+ </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>
+
+ <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>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-run.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-run.html
index 82b7e878..70b24925 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-run.html
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/report-run.html
@@ -55,23 +55,28 @@ body {
}
</style>
-<div id="page-content">
- <!-- <h1 class="heading2">{{reportData.reportName}} -->
- <h1 class="heading-page">{{reportData.reportHeading}}
- <a ng-href="{{reportEditURL}}" ng-show="reportData.allowEdit" class="icon-edit" style="font-size:20px;"></a>
-
- &nbsp;&nbsp;&nbsp;<a ng-href="{{reportChartURL}}" ng-show="reportData.allowEdit && reportData.chartWizardAvailable" class="icon-bar-chart-vertical" style="font-size:20px;"></a>
- &nbsp;&nbsp;&nbsp;<span ng-show="reportData.allowEdit && showFormFields" ><input type="checkbox" ng-model="showFormFieldIds" ng-true-value="Hide_IDs" ng-false-value="Show_IDs" att-toggle-main></span>
-
- <!-- &nbsp;&nbsp;&nbsp;<a ng-href="{{reportChartURLNew}}" ng-show="reportData.allowEdit" class="icon-bar-chart-horizontal" style="font-size:20px;"></a> -->
- </h1>
-
+<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="showFormFieldIds" ng-num-form-cols="reportData.numFormCols" ng-model="formFieldSelectedValues" ng-trigger-method="triggerOtherFormFields"></form-builder>
+ <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>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/report-step.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/report-step.html
index 5767afb2..6665dcf2 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/report-step.html
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/report-step.html
@@ -22,7 +22,6 @@
<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> -->
@@ -34,6 +33,13 @@
</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();">
@@ -92,7 +98,7 @@
<div id="stepView">
<!-- <step-form ng-model="jsonSrcName" renderForm="changeme"></step-form> -->
</div>
-
+</div>
<!-- <select id="dropdown1" name="dropdown1" b2b-dropdown placeholder-text="Select" ng-model="selectedReportType.value">
<option b2b-dropdown-list option-repeat="d in reportTypes" value="{{d.value}}">{{d.text}}</option>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2Header.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2Header.html
index ef847518..5c0e2bcc 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2Header.html
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2Header.html
@@ -1,69 +1,69 @@
-<div style="position:relative;width: 100%;top: 0px;left: 0;background-color: #222;z-index:9999">
- <header class="b2b-header-tabs" b2b-header-responsive ng-show="{{showHeader}}">
- <ul class="header__items" role="navigation">
- <li class="header__item icon__item" tabindex="0">
-
- <!--
- -TODO: needs to be this icon but is not availble
- -->
-
- <span class="globe-text">ECOMP Portal</span>
- </li>
- <li b2b-header-menu class="header__item b2b-headermenu" ng-repeat="item in menuItems" role="presentation">
- <a href="#" class="menu__item" role="menuitem"></a>
- <div class="header-secondary-wrapper">
- <ul class="header-secondary" role="menu">
- <li class="header-subitem" b2b-header-submenu ng-repeat="i in item.subitems" role="presentation">
- <a href="#" class="menu__item" aria-haspopup="{{i.links ? true:false}}" role="menuitem">{{i.value}}</a>
- <div class="header-tertiary-wrapper" ng-if="i.links">
- <ul class="header-tertiary" role="menu">
- <li b2b-header-tertiarymenu ng-repeat="link in i.links" role="presentation">
- <label>{{link.title}}</label>
- <div b2b-tertiary-link ng-repeat="title in link.value">
- <a href="{{link.href}}" class="header-tertiaryitem" ng-if="!title.subitems" aria-haspopup="false" role="menuitem"><span class="b2b-label-hide">{{link.title}}</span>{{title.title}}</a>
- <a href="{{link.href}}" class="header-tertiaryitem" b2b-header-togglemenu ng-if="title.subitems" aria-haspopup="true" role="menuitem"><span class="b2b-label-hide">{{link.title}}</span>{{title.title}}</a>
- <ul class="header-quarternary" role="menu" ng-if="title.subitems">
- <li b2b-header-quarternarymenu role="presentation">
- <a href="{{nav.href}}" ng-repeat="nav in title.subitems" role="menuitem" aria-haspopup="true">
- {{nav.title}}
- </a>
- </li>
- </ul>
- </div>
- </li>
- </ul>
- </div>
- </li>
- </ul>
- </div>
- </li>
- <!--<li class="header__item profile" b2b-header-responsive>-->
- <li class="header__item profile">
-
- <label ng-click="showInfo = !showInfo" class="headerUserName" tabindex="0" ddh-accessibility-click="13,32">
- <!-- Temporarily copied the font file from DS1 to local directory(as DS2 component is not working yet) -->
- <!-- <div class="icon-user-small login-snippet-icon"></div> -->
- <i class="icon-user" style="color:#FFFFFF;"></i>
- <span class="header_profile">{{userFirstName}}</span>
- </label>
-
- <div class="profile-info" ng-class="{'open': showInfo,'': !showInfo}">
- <h6 id="example_source_john-smith">{{userProfile.fullName}}</h6>
- <label for='email'>Email</label> <span id='email'>{{userProfile.email}}</span>
- <label for='profileId'>Organization User ID</label> <span id='profileId'>{{userProfile.orgUserId}}</span>
- <!-- <label for='comp'>Company</label> <span id='comp'>{{userProfile.serviceProviderName}}</span> -->
- <i class="caret"></i>
- <!-- <p>
- <a href="{{userProfile.userProfileUrl}}" style="float: left">My Profile</a>
- <a href="{{userProfile.companyProfileUrl}}" style="float: right">Company Profile</a>
- </p> -->
- <p>
- <a class="btn btn-alt" style="float: right" href="logout.htm">Log Out</a>
- </p>
- </div>
- <div style="width:250px;"></div>
- </li>
- </ul>
- </header>
-
- </div> \ No newline at end of file
+<div class="header-main-div" >
+ <header class="b2b-header-tabs" b2b-header-responsive ng-show="{{showHeader}}">
+ <ul class="header__items" role="navigation">
+ <li class="header__item icon__item" tabindex="0" ng-click="returnToPortal()">
+ <span class="icon-primary-att-globe"></span>
+ <span class="globe-text">ECOMP Portal</span>
+ </li>
+ <li b2b-header-menu class="header__item b2b-headermenu" ng-repeat="item in menuItems" role="presentation">
+ <a href="javascript:void(0);" class="menu__item" role="menuitem" ng-bind="item.text"></a>
+ <div class="header-secondary-wrapper">
+ <ul class="header-secondary" role="menu">
+ <li class="header-subitem" b2b-header-submenu
+ ng-repeat="secondLevMenu in item.children" role="presentation">
+ <a href="{{secondLevMenu.action}}" ng-if="secondLevMenu.childMenus.length==0" class="menu__item" role="menuitem" ng-bind="secondLevMenu.label"></a>
+ <a href="javascript:void(0);" ng-if="secondLevMenu.childMenus.length!=0" class="menu__item" role="menuitem" ng-bind="secondLevMenu.label" ></a>
+ <div class="header-tertiary-wrapper">
+ <ul class="header-tertiary" role="menu">
+ <li b2b-header-tertiarymenu ng-repeat="thirdLevMenu in secondLevMenu.childMenus"role="presentation">
+ <a href="{{thirdLevMenu.action}}"role="menuitem" aria-haspopup="true" ng-bind="thirdLevMenu.label"></a>
+ </li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ </div></li>
+ <li class="header__item profile">
+ <b2b-flyout>
+ <div b2b-flyout-toggler class="header-profile" >
+ <div class="icon-people-oneperson" id="header-user-icon" tabindex="0" b2b-accessibility-click="13,32" aria-label="notifications" aria-haspopup="true" aria-expanded="{{flyoutOpened}}" role="button"></div>
+ <div id="login-snippet-text" class="login-snippet-text">{{userFirstName}}</div>
+ </div>
+ <b2b-flyout-content horizontal-placement="center" vertical-placement="below">
+ <div>
+ <div id="reg-header-snippet">
+ <div tabindex="0" class="reg-profileDetails" id="reg-profiledetails-id">
+ <ul class="reg-Details-table">
+ <li>
+ <div class="reg-userName-table">
+ <div id="reg-userName-table-row">
+ <div id="reg-userName-table-cell">
+ <h3 ng-bind="userName">&nbsp;</h3>
+ <span>&nbsp;</span>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li><div class="reg-userEmail-label"><span class="reg-userEmail-label-spn" style=font-weight:bold>Email<span class="visuallyhidden">:
+ </span></span></div></li>
+ <li><div class="reg-userEmail-value"><span class="reg-userEmail-value-spn">
+ {{userEmail}}</span></div></li>
+ <li>&nbsp;</li>
+ <li><div class="reg-userRole-label"><span class="reg-userRole-label-spn" style=font-weight:bold>
+ User Id<span class="visuallyhidden">:</span></span></div></li>
+ <li><div class="reg-userRole-value"><span class="reg-userRole-value-spn">
+ {{userId}}<span class="visuallyhidden"></span></span></div></li>
+ </ul>
+ <div id="reg-logout-div" style="padding-top: 8px">
+ <a href="logout.htm" id="allLogout" class="btn btn-alt btn-small">
+ Log out
+ </a>
+ </div>
+ </div>
+ </div>
+ </div>
+ </b2b-flyout-content>
+ </b2b-flyout>
+ </ul>
+ </header>
+</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/styles/ecomp.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/styles/ecomp.css
index 7b659e9c..bf5e4002 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/styles/ecomp.css
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/styles/ecomp.css
@@ -11,6 +11,8 @@
.header-container {
width: 100%;
float: left;
+ position: fixed;
+ z-index: 100;
}
.menu-container {
float: left;
@@ -58,12 +60,28 @@
display:none;
}
+#header-user-icon{
+ font-size:25px;
+ color:#FFFFFF;
+
+}
+.header-tertiary-wrapper{
+ top:52px;
+}
+.header-profile div{
+ display:inline-block;
+}
+.b2b-header-tabs .header-secondary{;
+ width: 97%;
+ height:42px;
+}
+.b2b-header-tabs .header-tertiary{
+ width:97%;
+}
-/* .icon-accordion-plus, .icon-accordion-minus {
- float: right;
- line-height: 40px;
+.b2b-header-tabs .header-secondary .header-subitem a.menu__item{
+ padding: 10px 0;
}
- */
.b2b-ln-icon-fix-pos{
margin-top:10px;
}
@@ -133,3 +151,16 @@ p,a{
.b2b-footer-wrapper .copyright-text-sdk a:hover {
text-decoration: none;
}
+
+.b2b-header-tabs .header__items{
+ width:97%;
+}
+
+.header-main-div{
+ position: fixed;
+ width: 100%;
+ top: 0px;
+ left: 0;
+ background-color: #222;
+ z-index: 9999;
+} \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/raptor/ebz/date_time_picker.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/raptor/ebz/date_time_picker.js
deleted file mode 100644
index ae69a913..00000000
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/raptor/ebz/date_time_picker.js
+++ /dev/null
@@ -1,277 +0,0 @@
- String.prototype.paddingLeft = function (paddingValue) {
- return String(paddingValue + this).slice(-paddingValue.length);
- };
-
-angular.module("app/scripts/ng_js_att_tpls/datepicker/dateTimePickerPopup.html", []).run(["$templateCache", function($templateCache) {
- $templateCache.put("app/scripts/ng_js_att_tpls/datepicker/dateTimePickerPopup.html",
- "<div class=\"calendar\">\n" +
- " <div class=\"box\" ng-class=\"{'active': isOpen}\">\n" +
- " <span ng-transclude></span>\n" +
-
- " <i class=\"calendar-icon\" tabindex=\"0\" att-accessibility-click=\"13,32\" ng-click=\"toggle()\" alt=\"Calendar Icon\" ></i>\n" +
- " </div>\n" +
-
- '<div class="datetimepicker datepicker-wrapper datepicker-wrapper-display-none" style="z-index:10000;width:292px" ng-style="{display: (isOpen && \'block\') || \'none\'}" aria-hidden=\"false\" role=\"dialog\" tabindex=\"-1\">'
- + '<div class="datetimepicker-content">'
-
- + '<ul class="tabsbid--small">'
- + '<li class="tabsbid__item" ng-class="{\'tabsbid__item--active\':tab==\'date\'}" ng-click="setTab(\'date\')">'
- + '<a class="tabsbid__item-link" href="" tabindex="0" att-accessibility-click="32,13">Date</a>'
- + '</li>'
- + '<li class="tabsbid__item " ng-class="{\'tabsbid__item--active\':tab==\'time\'}" ng-click="setTab(\'time\')">'
- + '<a class="tabsbid__item-link" href="" tabindex="0" att-accessibility-click="32,13">Time</a>'
- + '</li>'
- + '</ul>'
-
- + '<div class="datetimepicker-section datetimepicker-date-section" ng-if="tab==\'date\'">'
- + '<div class="datetimepicker-month">'
- +'<div class="icons-list left" style="margin:5px;cursor: pointer;" data-size="medium" ng-click="addMonth(-1)"><i class="icon-arrow-left-circle" ng-class="{\'disabled\': disablePrev}" alt="Left Arrow"></i></div>'
- +'<div class="icons-list right" style="margin:5px;cursor: pointer;" data-size="medium" ng-click="addMonth(1)"><i class="icon-arrow-right-circle" ng-class="{\'disabled\': disableNext}" alt="Right Arrow"></i></div>'
- + '<div class="datetimepicker-current-month">{{displayMonth}} {{year}}</div>'
- + '</div>'
- + '<div class="datetimepicker-calendar">'
- + '<div class="datetimepicker-day" ng-repeat="day in dayNames">{{day | limitTo: 1}}</div>'
- + '<div class="datetimepicker-day datetimepicker-leading-day" ng-repeat="d in days.leadingDays">{{d}}</div>'
- + '<div class="datetimepicker-day datetimepicker-active-day" ng-class="{\'selected\':day==d}" ng-click="setDay(d)" ng-repeat="d in days.days">{{d}}</div>'
- + '<div class="datetimepicker-day datetimepicker-trailing-day" ng-repeat="d in days.trailingDays">{{d}}</div>'
- + '</div>'
- + '</div>'
-
- + '<div class="datetimepicker-section datetimepicker-date-time" ng-if="tab==\'time\'">'
- + '<div class="datetimepicker-month">'
- + '<div class="datetimepicker-current-month">{{hour}}:{{minute}}</div>'
- + '</div>'
- + '<div class="time-circle-outer">'
- + '<div class="time-meridian time-left" ng-click="setMeridian(\'AM\')" ng-class="{\'selected\':meridian==\'AM\'}">AM</div>'
- + '<div class="time-meridian time-right" ng-click="setMeridian(\'PM\')" ng-class="{\'selected\':meridian==\'PM\'}">PM</div>'
- + '<div class="time-circle-center"></div>'
- + '<div class="time-circle-hand time-circle-hand-large deg-{{minute/5}}" ></div>'
- + '<div class="time time-{{$index+1}}" ng-class="{\'selected\':minute==time}" ng-click="setMinutes(time)" ng-repeat="time in [5,10,15,20,25,30,35,40,45,50,55,0]">{{time}}</div>'
- + '<div class="time-circle-inner">'
- + '<div class="time-circle-hand deg-{{hour}}" ></div>'
- + '<div class="time time-{{$index+1}}" ng-class="{\'selected\':hour==time}" ng-click="setHour(time)" ng-repeat="time in [1,2,3,4,5,6,7,8,9,10,11,12]">{{time}}</div>'
- + '</div>'
- + '</div>'
- + '</div>'
-
- + '</div>'
- + '</div>' +
-
- "</div>\n" +
- "");
-}]);
-
-angular.module('quantum').requires.push("app/scripts/ng_js_att_tpls/datepicker/dateTimePickerPopup.html");
-
-angular.module('quantum')
-.directive('dateTimePickerPopup', ['$document', 'datepickerService', '$isElement', '$documentBind', function($document, datepickerService, $isElement, $documentBind) {
- var link = function (scope, elem, attr) {
- datepickerService.bindScope(attr, scope);
-
- scope.isOpen = false;
-
- var toggle = scope.toggle = function (show) {
- if(show === true || show === false) {
- scope.isOpen = show;
- } else {
- scope.isOpen = !scope.isOpen;
- }
- };
-
-// scope.$watch('current', function () {
-// toggle(false);
-// });
-
- var outsideClick = function (e) {
- var isElement = $isElement(angular.element(e.target), elem, $document);
- if(!isElement) {
- toggle(false);
- scope.$apply();
- }
- };
-
- $documentBind.click('isOpen', outsideClick, scope);
-
- scope.tabs = [{
- title: 'DATE',
- url: '#option1'
- }, {
- title: 'TIME',
- url: '#option2',
- selected: true
- }
- ];
-
- //--------------------------------------
-
- scope.state = false;
- scope.tab = 'time';
- scope.setTab = function(tab){
- scope.tab = tab;
- };
- scope.config = {
- modal: true,
- color:'rgba(5, 116, 172, 1)',
- backgroundColor: 'rgba(0,0,0,0.75)'
- };
- scope.months = ["January","February","March","April","May","June","July","Augusta","September","October","November","December"];
- scope.dayNames = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
- scope.$watch('current',function(value){
- var m;
- if(value)
- m = moment(value);
- else
- m = moment();
- m = m.minute(5*Math.ceil(m.minute()/5));
- scope.display = m.format('YYYY-MM-DD hh:mm A');
- scope.days = scope.getDaysInMonth(m.year(),m.month());
- scope.minute = m.minute();
- scope.meridian = m.format('A');
- scope.hour = scope.meridian == 'PM' ? m.hour() - 12: m.hour();
- if(scope.hour==0) scope.hour = 12;
- scope.datePreview = m.format('YYYY-MM-DD');
- scope.timePreview = m.format('hh:mm A');
- scope.displayMonth = scope.months[m.month()];
- scope.day = m.date();
- scope.year = m.year();
-
- });
-
- scope.setDay = function(date){
- scope.current = moment(scope.current).date(date).toDate();
- };
-
- scope.setState = function(state){
- scope.state = false;
- };
-
- scope.setHour = function(hour){
- if(scope.meridian == 'PM' && hour < 12)
- hour = hour + 12;
- if(scope.meridian == 'AM' && hour == 12)
- hour = hour - 12;
- scope.current = moment(scope.current).hour(hour).toDate();
- };
-
- scope.setMeridian = function(meridian){
- var m = moment(scope.current);
-
- if(meridian == 'AM'){
- if(m.hours()>=12){
- m = m.add(-12,'hours');
- scope.current = m.toDate();
- }
- }else{
- if(m.hours()<12){
- m = m.add(12,'hours');
- scope.current = m.toDate();
- }
- }
- };
-
- scope.setMinutes = function(minutes){
- scope.current = moment(scope.current).minute(minutes).toDate();
- };
-
- var days = [];
- for(var i=1;i<=31;i++){
- days.push(i);
- }
- scope.getDaysInMonth = function(year,month){
- var firstDayOfWeek = 0;
- var firstDayOfMonth = new Date(year, month, 1),
- lastDayOfMonth = new Date(year, month + 1, 0),
- lastDayOfPreviousMonth = new Date(year, month, 0),
- daysInMonth = lastDayOfMonth.getDate(),
- daysInLastMonth = lastDayOfPreviousMonth.getDate(),
- dayOfWeek = firstDayOfMonth.getDay(),
- leadingDays = (dayOfWeek - firstDayOfWeek + 7) % 7 || 7,
- trailingDays = days.slice(0, 6 * 7 - (leadingDays + daysInMonth));
- if (trailingDays.length > 7) {
- trailingDays = trailingDays.slice(0, trailingDays.length-7);
- }
-
- return {
- year: year,
- month: month,
- days: days.slice(0, daysInMonth),
- leadingDays: days.slice(- leadingDays - (31 - daysInLastMonth), daysInLastMonth),
- trailingDays: trailingDays
- };
- };
-
- scope.addMonth = function(increment){
- scope.current = moment(scope.current).add(increment,'months').toDate();
- };
-
- };
-
- return {
- restrict: 'EA',
- replace: true,
- transclude: true,
- templateUrl: 'app/scripts/ng_js_att_tpls/datepicker/dateTimePickerPopup.html',
- scope: {
- current: "=current"
- },
- compile: function (elem, attr) {
- var wrapperElement = elem.find('span').eq(1);
- wrapperElement.attr('current', 'current');
- datepickerService.setAttributes(attr, wrapperElement);
-
- return link;
- }
- };
-}])
-.directive('attDateTimePicker', ['$log', function($log) {
- return {
- restrict: 'A',
- require: 'ngModel',
- scope: {},
- controller: ['$scope', '$element', '$attrs', '$compile', 'datepickerConfig', 'datepickerService', function($scope, $element, $attrs, $compile, datepickerConfig, datepickerService) {
- var dateFormatString = angular.isDefined($attrs.dateFormat) ? $scope.$parent.$eval($attrs.dateFormat) : datepickerConfig.dateFormat;
- var selectedDateMessage = '<div class="sr-focus hidden-spoken" tabindex="-1">the date you selected is {{$parent.current | date : \'' + dateFormatString + '\'}}</div>';
-
- $element.removeAttr('att-date-time-picker');
- $element.removeAttr('ng-model');
- $element.attr('ng-model', '$parent.current');
- $element.attr('aria-describedby', 'datepicker');
- $element.attr('format-date', dateFormatString);
- $element.attr('att-input-deny', '[^0-9ampAMP \/:-]');
- $element.attr('maxlength', 20);
-
- var wrapperElement = angular.element('<div></div>');
- wrapperElement.attr('date-time-picker-popup', '');
- wrapperElement.attr('current', 'current');
-
- datepickerService.setAttributes($attrs, wrapperElement);
- datepickerService.bindScope($attrs, $scope);
-
- wrapperElement.html('');
- wrapperElement.append($element.prop('outerHTML'));
- if (navigator.userAgent.match(/MSIE 8/) === null) {
- wrapperElement.append(selectedDateMessage);
- }
- var elm = wrapperElement.prop('outerHTML');
-
- elm = $compile(elm)($scope);
- $element.replaceWith(elm);
- }],
- link: function(scope, elem, attr, ctrl) {
- if (!ctrl) {
- // do nothing if no ng-model
- $log.error("ng-model is required.");
- return;
- }
-
- scope.$watch('current', function(value) {
- ctrl.$setViewValue(value);
- });
- ctrl.$render = function() {
- scope.current = ctrl.$viewValue;
- };
- }
- };
-}]);
-
-