1 appDS2.controller('reportStepController', function($scope,$http,$location, $routeParams, $q, $modal,$log,$window, raptorReportFactory, stepFormFactory, DOMHelper) {
4 $scope.showLoader = true;
5 // tabs for report wizard steps:
6 $scope.activeTabsId = 'Definition';
8 // For all the dropdown box, please declare the active selection variable in the following manner:
9 // $scope.selectedOpt = {};
10 // $scope.selectedOpt.value = "";
11 $scope.getDefinitionById = function(id) {
12 raptorReportFactory.getDefinitionByReportId(id).then(function(data){
13 $scope.loadDefinition(data);
14 $scope.definitionData = data;
15 $scope.showLoader = false;
17 $log.error("raptorReportFactory: getSearchData failed.");
18 $scope.showLoader = false;
23 $scope.createNewDefinition = function() {
24 raptorReportFactory.createNewDefinition().then(function(data){
25 $scope.loadDefinition(data);
26 $scope.definitionData = data;
27 $scope.showLoader = false;
29 $log.error("raptorReportFactory: getSearchData failed.");
33 var initializeCreateReport = function() {
34 $scope["selectedReportType"] ={};
35 $scope.selectedReportType.value ="linear";
36 $scope.selectedReportType2 ={};
37 $scope.selectedReportType2.value ="";
38 $scope.selectedDataSource ={};
39 $scope.selectedDataSource.value="local";
40 $scope.sqlScript = "SELECT ";
41 $scope.pageSize = {"value":"50"};
45 var loadSqlInSession = function(){
46 raptorReportFactory.getSqlInSession().then(function(data){
47 $scope.sqlInSessionJSON = data;
48 $scope.sqlScript = data.query;
49 $scope.showLoader = false;
51 $log.error("raptorReportFactory: getSearchData failed.");
55 initializeCreateReport();
56 if ($routeParams.reportMode) {
57 if ($routeParams.reportMode=="copy") {
58 raptorReportFactory.copyReportById($routeParams.reportId).then(function(data){
59 $scope.$emit('RefreshInsession');
61 $log.error("raptorReportFactory: deleteFormFieldById failed.");
63 } else if ($routeParams.reportMode=="import") {
64 $scope.$emit('RefreshInsession');
66 } else if ($routeParams.reportId) {
67 $scope.getDefinitionById($routeParams.reportId);
69 $scope.reportId = $routeParams.reportId;
71 $scope.isEdit = false;
72 $scope.createNewDefinition();
76 $scope.RunCurrentReport = function (){
77 $window.location.href = "#/report_run/c_master="+$scope.reportId+"&refresh=Y";
80 $scope.deleteFormField = function(rowData) {
81 var modalInstance = $modal.open({
83 animation: $scope.animationsEnabled,
84 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-formfield-del-confirm.html',
85 sizeClass: 'modal-large',
86 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory','rowData', function ($scope, $modalInstance, $http, $log, raptorReportFactory, rowData) {
87 $scope.tempFieldId = rowData.id;
88 $scope.ok = function() {
89 raptorReportFactory.deleteFormFieldById(rowData.id).then(function(data){
90 $modalInstance.close();
92 $log.error("raptorReportFactory: deleteFormFieldById failed.");
95 $scope.cancel = function() {
96 $modalInstance.dismiss();
105 modalInstance.result.then(function () {
106 $scope.$emit('RefreshFormField');
111 $scope.loadDefinition = function(definitionData) {
112 $scope.reportId = definitionData.reportId+"";
113 $scope.reportName = definitionData.reportName;
114 $scope.reportDescr = definitionData.reportDescr;
115 $scope.formHelpText = definitionData.formHelpText;
116 $scope.selectedPageSize = {"value": definitionData.pageSize+''};
117 $scope.selectedMaxRowsInExcelCSVDownload = {"value": definitionData.maxRowsInExcelCSVDownload};
118 $scope.reportTitle = definitionData.reportTitle;
119 $scope.reportSubTitle = definitionData.reportSubTitle;
120 $scope.selectedNumFormCols ={"value": definitionData.numFormCols+''};
121 $scope.selectedFrozenColumns={"value": definitionData.frozenColumns+''};
122 $scope.selectedDataGridAlign = {"value":definitionData.dataGridAlign+''};
123 $scope.emptyMessage = definitionData.emptyMessage+'';
124 $scope.selectedDataContainerHeight = {"value":definitionData.dataContainerHeight+''};
125 $scope.selectedDataContainerWidth = {"value":definitionData.dataContainerWidth+''};
126 var displayAreaValue = "null"
127 for (var i=0; i<3; i++ ) {
128 if (definitionData.displayArea[i].selected) {
129 displayAreaValue = definitionData.displayArea[i].name;
132 $scope.selectedDisplayArea = {"value":displayAreaValue+""};
134 $scope.hideFormFieldsAfterRunSelected = {"value": definitionData.hideFormFieldsAfterRun}
136 $scope.hideFormFieldsSelected = {"value":definitionData.displayOptions[0].selected};
137 $scope.hideChartSelected = {"value":definitionData.displayOptions[1].selected};
138 $scope.hideReportDataSelected = {"value":definitionData.displayOptions[2].selected};
139 $scope.hideExcelSelected = {"value":definitionData.displayOptions[3].selected};
140 $scope.hidePdfSelected = {"value":definitionData.displayOptions[4].selected};
141 $scope.runtimeColSortDisabled = {"value":definitionData.runtimeColSortDisabled};
142 $scope.showLoader = false;
146 var setDefinition = function(){
147 $scope.updatedDefJson = {
148 "tabName" : "Definition",
150 "reportId" : ($scope.isEdit?$scope.reportId+'':"-1"),
151 "reportName" : $scope.reportName,
152 "reportDescr" : $scope.reportDescr,
153 "reportType" : "Linear",
155 "formHelpText" : $scope.formHelpText,
156 "pageSize" : Number($scope.selectedPageSize.value),
160 "selected" : ($scope.selectedDisplayArea.value=="HOME")
164 "selected" : ($scope.selectedDisplayArea.value==="CUSTOMER")
168 "selected" : ($scope.selectedDisplayArea.value==="REPORTS")
170 "hideFormFieldsAfterRun" : $scope.hideFormFieldsAfterRunSelected.value,
171 "maxRowsInExcelCSVDownload" : Number($scope.selectedMaxRowsInExcelCSVDownload.value),
172 "frozenColumns" : Number($scope.selectedFrozenColumns.value),
173 "dataGridAlign" : $scope.selectedDataGridAlign.value,
174 "emptyMessage" : $scope.emptyMessage,
175 "dataContainerHeight" : $scope.selectedDataContainerHeight.value,
176 "dataContainerWidth" : $scope.selectedDataContainerWidth.value,
177 "displayOptions" : [ {
178 "name" : "HideFormFields",
179 "selected" : $scope.hideFormFieldsSelected.value
181 "name" : "HideChart",
182 "selected" : $scope.hideChartSelected.value
184 "name" : "HideReportData",
185 "selected" : $scope.hideReportDataSelected.value
187 "name" : "HideExcel",
188 "selected" : $scope.hideExcelSelected.value
191 "selected" : $scope.hidePdfSelected.value
193 "runtimeColSortDisabled" : $scope.runtimeColSortDisabled.value,
194 "numFormCols" : Number($scope.selectedNumFormCols.value),
195 "reportTitle" : $scope.reportTitle,
196 "reportSubTitle" : $scope.reportSubTitle
201 var updateDefinitionData = function() {
203 raptorReportFactory.updateDefinition($scope.updatedDefJson,$scope.isEdit).then(function(data){
205 $log.error("raptorReportFactory: updateDefinition by Id failed.");
209 var saveNewDefinitionData = function() {
211 raptorReportFactory.saveNewDefinition($scope.updatedDefJson).then(function(data){
213 $log.error("raptorReportFactory: saveNewDefinition by Id failed.");
217 $scope.testRunSql = function(){
218 var queryJSON = {query: $scope.sqlScript};
219 queryJSON = JSON.stringify(queryJSON);
220 raptorReportFactory.testRunSQL(queryJSON).then(function(data){
221 var modalInstance = $modal.open({
223 animation: $scope.animationsEnabled,
224 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-test-run-sql.html',
225 sizeClass: 'modal-large',
226 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory','queriedData', function ($scope, $modalInstance, $http, $log, raptorReportFactory, queriedData) {
227 var init = function() {
228 $scope.isError = false;
229 if (queriedData.errormessage) {
230 $scope.isError = true;
231 $scope.errormessage = queriedData.errormessage;
232 $scope.stacktrace = queriedData.stacktrace;
234 $scope.queryData = queriedData;
238 $scope.close = function() {
239 $modalInstance.dismiss();
243 queriedData: function(){
250 $log.error("raptorReportFactory: test run SQL failed.");
255 $scope.formFieldVerifySQL= function(sqlScript){
256 var queryJSON = {query: sqlScript};
257 queryJSON = JSON.stringify(queryJSON);
258 raptorReportFactory.formFieldVerifySQL(queryJSON).then(function(data){
259 var modalInstance = $modal.open({
261 animation: $scope.animationsEnabled,
262 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-test-run-sql.html',
263 sizeClass: 'modal-large',
264 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory','queriedData', function ($scope, $modalInstance, $http, $log, raptorReportFactory, queriedData) {
265 var init = function() {
266 $scope.isError = false;
267 if (queriedData.errormessage) {
268 $scope.isError = true;
269 $scope.errormessage = queriedData.errormessage;
270 $scope.stacktrace = queriedData.stacktrace;
272 $scope.queryData = queriedData;
276 $scope.close = function() {
277 $modalInstance.dismiss();
281 queriedData: function(){
288 $log.error("raptorReportFactory: test run SQL failed.");
293 /* $scope.selectedDataSource.allowSchedule={};
294 $scope.selectedDataSource.allowSchedule.value=""*/
296 var getJsonSrcName = function(stepNum){
297 var JsonSrcPrefix = "app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step"
298 return JsonSrcPrefix + stepNum +".json";
305 uniqueId: 'uniqueTab1x',
306 tabPanelId: 'threetab1x'
310 uniqueId: 'uniqueTab2x',
311 tabPanelId: 'threetab2x',
312 disabled: (!$scope.isEdit)
316 uniqueId: 'uniqueTab3x',
317 tabPanelId: 'threetab3x',
318 disabled: (!$scope.isEdit)
320 title: 'Form Fields',
322 uniqueId: 'uniqueTab4x',
323 tabPanelId: 'threetab4x',
324 disabled: (!$scope.isEdit)
328 uniqueId: 'uniqueTab5x',
329 tabPanelId: 'threetab5x',
330 disabled: (!$scope.isEdit)
334 $scope.unhideAllOtherTabs = function(){
335 for (var selectedTab = 0; selectedTab < $scope.gTabs.length; selectedTab++) {
336 $scope.gTabs[selectedTab].disabled = false;
340 $scope.openColumnPopup = function (rowData) {
341 var modalInstance = $modal.open({
343 animation: $scope.animationsEnabled,
344 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-col-edit.html',
345 sizeClass: 'modal-large',
346 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory','colData', function ($scope, $modalInstance, $http, $log, raptorReportFactory, colData) {
347 raptorReportFactory.getColumnEditInfoById(colData.id).then(function(data){
348 $scope.columnEditData = data;
349 $scope.colId = data.colId;
350 /* $scope.colName = data.colName;*/
351 $scope.colName = {'value':data.colName+''};
352 $scope.selectedDisplayAlignment = {"value":data.displayAlignment+''};
353 $scope.selectedDisplayHeaderAlignment = {"value":data.displayHeaderAlignment+''};
354 $scope.sortable = {"value":''+data.sortable};
355 $scope.visible = {"value":''+data.visible};
356 $scope.drilldownURL = data.drilldownURL;
357 $scope.drilldownParams = data.drilldownParams;
358 $scope.drilldownType = data.drilldownType;
359 $scope.selectedDrillDownReport = {"value":""};
363 $log.error("raptorReportFactory: getColumnEditInfoById failed.");
366 var init = function() {
368 raptorReportFactory.getDrillDownReportList().then(function(data2){
369 $scope.drilldownReports = data2;
371 $log.error("raptorReportFactory: getDrillDownReportList failed.");
374 /* $scope.colTableRowData = colData;*/
375 $scope.displayAlignmentOptions = [
376 {value:"null", text:""},
377 {value:"Left", text:"Left"},
378 {value:"Center", text:"Center"},
379 {value:"Right", text:"Right"}
382 {value:"true", text:"Yes"},
383 {value:"false", text:"No"}
385 $scope.drillDownOptions = [
386 {value:"drillDownOpt1", text:"drillDownOpt1"},
387 {value:"drillDownOpt2", text:"drillDownOpt2"},
388 {value:"drillDownOpt3", text:"drillDownOpt3"}
393 $scope.$watch('selectedDrillDownReport.value',function(){
394 if ($scope.selectedDrillDownReport) {
395 $scope.$emit('openDrillDownpage',$scope.selectedDrillDownReport.value);
399 $scope.save = function() {
400 var drilldownURL = "";//raptorReportFactory.drillDownPopupOptions
401 //raptorReportFactory.drillDownPopupOptions.radioGroup
404 "tabName" : "Column Edit",
405 "colId" : $scope.colId,
406 "colName" : $scope.colName.value,
407 "displayAlignment" : ($scope.selectedDisplayAlignment.value=="null")?null:$scope.selectedDisplayAlignment.value,
408 "displayHeaderAlignment" : ($scope.selectedDisplayHeaderAlignment.value=="null")?null:$scope.selectedDisplayHeaderAlignment.value,
409 "sortable" : ($scope.sortable.value=="true"),
410 "visible" : ($scope.visible.value=="true"),
411 "drilldownURL" : raptorReportFactory.drillDownURL,
412 "drilldownParams" : raptorReportFactory.drillDownParams,
415 raptorReportFactory.saveColumnEditInfo(colInfo).then(function(data){
416 $modalInstance.close();
418 $log.error("raptorReportFactory: getColumnEditInfoById failed.");
422 $scope.cancel = function() {
423 $modalInstance.dismiss();
433 modalInstance.result.then(function () {
434 $scope.$emit('RefreshColumnList');
438 $scope.addNewFormField = function () {
439 var modalInstance = $modal.open({
441 animation: $scope.animationsEnabled,
442 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-formfield-edit.html',
443 sizeClass: 'modal-large',
444 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory', function ($scope, $modalInstance, $http, $log, raptorReportFactory) {
445 raptorReportFactory.getFormFieldEditInfoById("add").then(function(data){
446 $scope.formFieldEditData = data;
447 $scope.fieldId = $scope.formFieldEditData.fieldId;
448 $scope.fieldName ={"value": $scope.formFieldEditData.fieldName};
449 $scope.selectedVisible = {"value":$scope.formFieldEditData.visible+''};
450 $scope.defaultValue = {"value": $scope.formFieldEditData.defaultValue};
451 $scope.fieldDefaultSQL = {"value": $scope.formFieldEditData.fieldDefaultSQL};
452 $scope.fieldSqlContent = {"value": $scope.formFieldEditData.fieldSQL};
453 $scope.selectedValidationType = {"value":$scope.formFieldEditData.validationType +''};
454 $scope.selectedFieldType = {"value":$scope.formFieldEditData.fieldType +''};
455 $scope.sqlDefaultValueSelected= {value:false};
456 $scope.sqlDefaultValueSelected ={"value":false};
457 if (($scope.fieldDefaultSQL.value)&&($scope.fieldDefaultSQL.value!="")) {
458 $scope.sqlDefaultValueSelected.value =true;
461 $log.error("raptorReportFactory: getColumnEditInfoById failed.");
466 {value:"true", text:"Yes"},
467 {value:"false", text:"No"}
470 $scope.verifyFieldValueOptions = [
471 {value:"DATE", text:"Date"},
472 {value:"TIME_STAMP_HOUR", text:"TimeStamp (Hour)"},
473 {value:"TIME_STAMP_HOUR_MIN", text:"TimeStamp (Hour,Min)"},
474 {value:"HIDDEN", text:"Hidden"}
477 $scope.fieldTypeOptions = [
478 {value:"TEXT", text:"Text Box"},
479 {value:"LIST_BOX", text:"List Box"},
480 {value:"LIST_MULTI_SELECT", text:"Multi-select List Box"},
481 {value:"HIDDEN", text:"Hidden"}
484 $scope.save = function() {
485 var formFieldJSON = {
486 "tabId" : "FormEdit",
487 "tabName" : "Form Edit",
488 "fieldId" : $scope.fieldId,
489 "fieldName" : $scope.fieldName.value,
490 "fieldType" : $scope.selectedFieldType.value,
491 "visible" : ($scope.selectedVisible.value=="true"),
492 "defaultValue" : ($scope.sqlDefaultValueSelected.value?'':$scope.defaultValue.value),
493 "fieldDefaultSQL" : ($scope.sqlDefaultValueSelected.value?$scope.fieldDefaultSQL.value:""),
494 "fieldSQL" :$scope.fieldSqlContent.value,
495 "validationType" : "NONE",
496 "predefinedValueList" :null
498 raptorReportFactory.saveFormFieldEditInfo(formFieldJSON).then(function(data){
499 $modalInstance.close();
501 $log.error("raptorReportFactory: saveFormFieldEditInfo failed.");
505 $scope.cancel = function() {
506 $modalInstance.dismiss();
510 modalInstance.result.then(function () {
511 $scope.$emit('RefreshFormField');
516 $scope.openFormFieldPopup = function (rowData) {
517 var modalInstance = $modal.open({
519 animation: $scope.animationsEnabled,
520 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-formfield-edit.html',
521 sizeClass: 'modal-large',
522 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory','fieldData', function ($scope, $modalInstance, $http, $log, raptorReportFactory, fieldData) {
523 var init = function() {
524 raptorReportFactory.getFormFieldEditInfoById(fieldData.id).then(function(data){
525 $scope.formFieldEditData = data;
526 $scope.fieldId = $scope.formFieldEditData.fieldId;
527 $scope.fieldName = {"value":$scope.formFieldEditData.fieldName};
528 $scope.selectedVisible = {"value":$scope.formFieldEditData.visible+''};
529 $scope.defaultValue = {"value":$scope.formFieldEditData.defaultValue};
530 $scope.fieldDefaultSQL = {"value": $scope.formFieldEditData.fieldDefaultSQL};
531 $scope.fieldSqlContent = {"value": $scope.formFieldEditData.fieldSQL};
532 $scope.selectedValidationType = {"value":$scope.formFieldEditData.validationType +''};
533 $scope.selectedFieldType = {"value":$scope.formFieldEditData.fieldType +''};
534 $scope.sqlDefaultValueSelected ={"value":false};
535 if (($scope.fieldDefaultSQL.value)&&($scope.fieldDefaultSQL.value!="")) {
536 $scope.sqlDefaultValueSelected.value =true;
539 $log.error("raptorReportFactory: getColumnEditInfoById failed.");
543 {value:"true", text:"Yes"},
544 {value:"false", text:"No"}
547 $scope.verifyFieldValueOptions = [
548 {value:"DATE", text:"Date"},
549 {value:"TIME_STAMP_HOUR", text:"TimeStamp (Hour)"},
550 {value:"TIME_STAMP_HOUR_MIN", text:"TimeStamp (Hour,Min)"},
551 {value:"HIDDEN", text:"Hidden"}
554 $scope.fieldTypeOptions = [
555 {value:"TEXT", text:"Text Box"},
556 {value:"LIST_BOX", text:"List Box"},
557 {value:"LIST_MULTI_SELECT", text:"Multi-select List Box"},
558 {value:"HIDDEN", text:"Hidden"}
565 $scope.save = function() {
566 var formFieldJSON = {
567 "tabId" : "FormEdit",
568 "tabName" : "Form Edit",
569 "fieldId" : $scope.fieldId,
570 "fieldName" : $scope.fieldName.value,
571 "fieldType" : $scope.selectedFieldType.value,
572 "visible" : ($scope.selectedVisible.value=="true"),
573 "defaultValue" : ($scope.sqlDefaultValueSelected.value?'':$scope.defaultValue.value),
574 "fieldDefaultSQL" : ($scope.sqlDefaultValueSelected.value?$scope.fieldDefaultSQL.value:""),
575 "fieldSQL" :$scope.fieldSqlContent.value,
576 "validationType" : "NONE",
577 "predefinedValueList" :null
579 raptorReportFactory.saveFormFieldEditInfo(formFieldJSON).then(function(data){
580 $modalInstance.close();
582 $log.error("raptorReportFactory: saveFormFieldEditInfo failed.");
586 $scope.cancel = function() {
587 $modalInstance.dismiss();
591 fieldData: function(){
597 modalInstance.result.then(function () {
598 $scope.$emit('RefreshFormField');
603 $scope.openDrillDownReportPopup = function (reportId,parentReportId) {
604 var modalInstance = $modal.open({
606 animation: $scope.animationsEnabled,
607 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-drilldown-edit.html',
608 sizeClass: 'modal-large',
609 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory','reportId', function ($scope, $modalInstance, $http, $log, raptorReportFactory, reportId) {
611 $scope.drillDownOptionList =[];
612 $scope.selectedvalueradioGroup = {"name":""};
613 $scope.selectedChildReportFormField = {"value":""};
614 $scope.selectedChildReportColumn = {"value":""};
615 $scope.fixedValue = {"value":""};
616 $scope.suppressValues = {"value":""};
618 raptorReportFactory.getChildReportFormField(reportId).then(function(data){
619 for (var i=0;i<data.length;i++) {
620 $scope.drillDownOptionList.push(
622 "name": data[i].name,
624 "selectedvalueradioGroup":{"name":""},
625 "selectedChildReportFormField":{"value":""},
626 "selectedChildReportColumn":{"value":""},
627 "fixedValue":{"value":""},
628 "suppressValues":{"value":""}
633 $log.error("raptorReportFactory: getChildReportFormField failed.");
636 raptorReportFactory.getChildReportFormField(parentReportId).then(function(data){
637 $scope.childReportFF =data;
639 $log.error("raptorReportFactory: getChildReportFormField failed.");
642 raptorReportFactory.getChildReportColumn(parentReportId).then(function(data){
643 $scope.childReportCol =data;
645 $log.error("raptorReportFactory: getChildReportFormField failed.");
648 raptorReportFactory.setDrillDownPopupOptions(null);
650 $scope.complete = function() {
652 console.log("$scope.drillDownOptionList: ");
653 console.log($scope.drillDownOptionList);
656 var drillDownPopupOptions= {
657 radioGroup : $scope.selectedvalueradioGroup.name,
658 reportFF: $scope.selectedChildReportFormField.value,
659 reportCol: $scope.selectedChildReportColumn.value,
660 fixedValue: $scope.fixedValue.value,
661 suppressValues: $scope.suppressValues.value
663 var drillDownParams = "";
665 for (var i=0;i<$scope.drillDownOptionList.length; i++) {
666 if (drillDownParams!="") {
669 if ($scope.drillDownOptionList[i].selectedvalueradioGroup.name=="fixedValue"){
670 drillDownParams = drillDownParams + ampStr + $scope.drillDownOptionList[i].id + "="+$scope.drillDownOptionList[i].fixedValue.value;
671 } else if ($scope.drillDownOptionList[i].selectedvalueradioGroup.name=="reportFF"){
672 drillDownParams = drillDownParams + ampStr + $scope.drillDownOptionList[i].id + "=[!"+$scope.drillDownOptionList[i].selectedChildReportFormField.value + "]";
673 } else if ($scope.drillDownOptionList[i].selectedvalueradioGroup.name=="reportCol"){
674 drillDownParams = drillDownParams + ampStr + $scope.drillDownOptionList[i].id + "=["+$scope.drillDownOptionList[i].selectedChildReportColumn.value + "]";
677 raptorReportFactory.setDrillDownPopupOptions(reportId,drillDownParams);
678 console.log(raptorReportFactory.drillDownURL);
679 console.log(raptorReportFactory.drillDownParams);
681 $modalInstance.close();
685 reportId: function(){
691 modalInstance.result.then(function () {
692 /* $scope.$emit('RefreshFormField');*/
697 $scope.$watch('activeTabsId', function (newVal, oldVal) {
698 if(newVal !== oldVal) {
699 $scope.showLoader = true;
701 for (selectedTab = 0; selectedTab < $scope.gTabs.length; selectedTab++) {
702 if ($scope.gTabs[selectedTab].id === newVal) {
703 $scope.stepNum = selectedTab;
704 /* stepFormFactory.getStepJSONData(getJsonSrcName($scope.stepNum))*/
705 $scope.isColumnStep = false;
706 $scope.isFormFieldStep = false;
707 $scope.renderStep(selectedTab+1);
708 if ($scope.stepNum == 1) {
709 $scope.showLoader = false;
711 else if ($scope.stepNum == 2) {
713 } else if ($scope.stepNum == 3) {
714 $scope.isColumnStep = true;
715 raptorReportFactory.getColumnList().then(function(data){
716 $scope.colTableRowData = data;
717 $scope.showLoader = false;
719 $log.error("raptorReportFactory: get column list failed.");
720 $scope.showLoader = false;});
722 } else if ($scope.stepNum == 4) {
723 $scope.isFormFieldStep = true;
724 // put within then function:
725 raptorReportFactory.getFormFieldList().then(function(data){
726 $scope.formFieldData = data;
727 $scope.showLoader = false;
729 $log.error("raptorReportFactory: get formfields failed.");
730 $scope.showLoader = false;});
731 } else if ($scope.stepNum == 5) {
732 raptorReportFactory.getDefinitionInSession().then(function(data){
733 $scope.reportId = data.reportId;
734 $scope.showLoader = false;
736 $log.error("raptorReportFactory: getDefinitionInSession failed.");
737 $scope.showLoader = false;});
740 if ($scope.stepNum>1){
741 $scope.unhideAllOtherTabs();
747 var selectedTabPanelElement = document.getElementById($scope.gTabs[selectedTab].tabPanelId);
750 if (selectedTabPanelElement) {
751 elem = DOMHelper.firstTabableElement(selectedTabPanelElement);
755 $timeout(function () {
763 $scope.renderStep = function(stepNum){
764 var containerElement = angular.element(document.getElementById("stepView"));
765 containerElement.empty();
766 $scope.stepNum = stepNum;
767 var jsonSrcName = getJsonSrcName(stepNum);
768 stepFormFactory.renderForm(jsonSrcName, containerElement, $scope);
771 // initialize the page at step 1;
772 $scope.renderStep(1);
774 // create a message to display in our view
775 $scope.allProjects = [];
776 if(!$routeParams.step && $routeParams.step == "") $routeParams.step = 1;
777 if($routeParams.proj && $routeParams.proj > 0)
778 $scope.projid = $routeParams.proj;
779 if($routeParams.step)
780 $scope.stepNum = $routeParams.step;
784 $scope.jsonSrcName = getJsonSrcName($scope.stepNum);
786 $scope.selectAction = function () {
787 var containerElement = angular.element(document.getElementById("stepView"));
788 containerElement.empty();
789 $scope.project_name = this.prj.projectName;
791 var stepNum = $scope.stepNum;
792 var jsonSrcName = getJsonSrcName(stepNum);
793 stepFormFactory.renderForm(jsonSrcName, containerElement, $scope);
794 renderProject(this.prj.id, 1);
798 $scope.createAction = function () {
799 var containerElement = angular.element(document.getElementById("stepView"));
800 containerElement.empty();
802 var stepNum = $scope.stepNum;
803 $scope.jsonSrcName = "app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step"+$scope.stepNum +".json";
804 var jsonSrcName = $scope.jsonSrcName;
805 stepFormFactory.renderForm(jsonSrcName, containerElement, $scope);
808 // select current project
809 renderProject = function (proj_id, stepNum) {
810 var userSelectedPrjId = proj_id;
813 url: 'get_selected_project_data',
814 params:{'selectedPrjId':userSelectedPrjId, 'step': stepNum}
815 }).then(function successCallback(response) {
816 var selectedproject = response.data;
817 $scope.projid = userSelectedPrjId;
818 //$scope.allProjects = projectLists;
819 //$location.path('/'+userSelectedPrjId+'/'+stepNum);
820 var div = d3.select("#stepView");
821 div.select("[name='proj_id']").text(userSelectedPrjId);
822 div.select("[name='proj_id']").property("value", userSelectedPrjId);
823 d3.select("[name='project_id']").property("value", userSelectedPrjId);
824 var h3Text = div.select("h3").text();
825 div.select("h3").text($scope.project_name+ " - " + h3Text);
826 for (var key in selectedproject) {
827 if (selectedproject.hasOwnProperty(key)) {
828 var val = selectedproject[key];
829 var formElement = d3.selectAll("[name='" + key + "']");
830 if(formElement[0].length > 0)
831 console.log(formElement.attr("type"));
832 if(formElement[0].length > 0 && formElement.attr("type") === "radio") {
833 var formRadio = d3.selectAll("[id='" + key +"_"+val + "']");
834 formRadio.property('checked', true);
836 if(formElement[0].length > 0 && formElement.property("type") === "textarea") {
837 div.select("textarea[name='" + key +"']").property('value', val);
839 if(formElement[0].length > 0 && formElement.attr("type") === "text") {
840 var formText = d3.selectAll("[name='" + key + "']");
841 formText.property("value", val);
843 if(formElement[0].length > 0 && formElement.html().startsWith("<option")) {
844 var formSelect = d3.selectAll("[name='" + key + "']");
846 var checkOption = function (e) {
848 return formSelect.property("selectedIndex", e.index );
852 formSelect.selectAll("option").forEach(function(d) {d.forEach(function(optionD) { console.log(optionD);checkOption(optionD); }) });
855 if(formElement[0].length == 0) {
857 if( Object.prototype.toString.call( val ) === '[object Array]' ) {
858 val.forEach(function(d){
859 for (var keyCheck in d) {
860 if (d.hasOwnProperty(keyCheck)) {
861 var valCheck = d[keyCheck];
862 var formCheck = d3.selectAll("[name='" + key + "_"+keyCheck + "']");
863 if(valCheck === true)
864 formCheck.property('checked', true);
870 var formElementOther = d3.selectAll("[name='" + key + "_"+ val + "']");
871 if(formElementOther[0].length > 0 && formElementOther.attr("type") === "checkbox") {
872 var formCheckbox = d3.selectAll("[name='" + key +"_"+val + "']");
873 formRadio.property('checked', true);
885 $scope.submit = function(){
886 let defer = $q.defer();
888 var div = d3.select("#stepView");
889 var jsonSrcName = $scope.jsonSrcName;
890 var stepNum = $scope.stepNum;
895 }).then(function successCallback(response) {
896 var json = response.data;
897 var step = json.step;
899 var sections = json.content.sections;
900 sections.forEach(function(d, i) {
901 var elements = d.elements;
903 //elements.forEach(function(element, elementIndex) {
905 values += "\"step\""+ ":\"" + step + "\",";
906 values += "\"proj_id\""+ ":\"" + d3.select('input[name="project_id"]').property("value") + "\",";
908 for (elementIndex = 0; elementIndex < elements.length; elementIndex++) {
909 var element = elements[elementIndex];
911 if(elementIndex > 0) values += ",";
912 values += "\""+element.name +"\""+ ":" ;
913 if(element.input === "hidden") {
914 values += "\""+div.select('input[name="'+element.name+'"]').property("value") +"\"";
916 if(element.input === "radio") {
917 values += "\""+ div.select('input[name="'+element.name+'"]:checked').property("value") +"\"";
919 if(element.input === "checkbox") {
920 var checkOptions = element.options;
922 checkOptions.forEach(function(d, i) {
923 // if(document.getElementById("'"+element.name+"_"+d.id+"'") != null)
924 values += "\""+d.id+"\""+ ":" + div.select('input[name="'+element.name+"_"+d.id+'"]').property("checked") ;
925 if(i<checkOptions.length-1) {
931 if(element.input === "text") {
932 values += "\""+div.select('input[name="'+element.name+'"]').property("value") +"\"";
934 if(element.input === "textarea") {
935 values += "\""+div.select('textarea[name="'+element.name+'"]').node().value +"\"";
937 if(element.input === "select") {
938 values += "\""+ div.select('select[name="'+element.name+'"]').property("value") + "\"";
946 var valueJSON = JSON.parse(values);
947 var valueStr = JSON.stringify(valueJSON, null, 4);
948 $http({method:'POST', url:'save_steps', data: jsonSrcName, params:{'result' : valueStr, 'proj_id' : values.proj_id}}).success(function(data, status) {
949 if(data.project_name)
950 $scope.project_name = data.project_name;
951 div.select("[name='proj_id']").property("value", data.proj_id);
952 d3.select("[name='project_id']").property("value", data.proj_id);
953 //$scope.projid = data.proj_id;
954 valueStr=JSON.stringify(data, null, 4);
956 //stepNum = Number(stepNum || 0)+1;
957 //document.getElementById('itestframe').src = data;
964 // $location.path('/step'+($scope.stepNum+1));
965 return defer.promise;
970 $scope.save = function() {
971 if ($scope.stepNum ==1) {
972 updateDefinitionData();
977 $scope.next = function(){
978 if ($scope.stepNum ==1) {
979 updateDefinitionData();
981 $scope.stepNum = $scope.stepNum +1;
982 $scope.activeTabsId = $scope.gTabs[$scope.stepNum-1].id;
986 $scope.previous = function(){
987 $scope.stepNum = $scope.stepNum -1;
988 $scope.activeTabsId = $scope.gTabs[$scope.stepNum-1].id;
992 $scope.$on('RefreshInsession', function(event) {
993 $scope.isEdit = true;
994 $scope.reportId = -1;
995 $scope.getDefinitionById(-1);
998 $scope.$on('openDrillDownpage', function(event, reportId) {
999 console.log("$scope.reportId");
1000 console.log($scope.reportId);
1002 $scope.openDrillDownReportPopup(reportId,$scope.reportId);
1007 $scope.$on('RefreshFormField', function(event) {
1008 raptorReportFactory.getFormFieldList().then(function(data){
1009 $scope.formFieldData = data;
1011 $log.error("raptorReportFactory: get formfields failed.");
1015 $scope.$on('RefreshColumnList', function(event) {
1016 raptorReportFactory.getColumnList().then(function(data){
1017 $scope.colTableRowData = data;
1019 $log.error("raptorReportFactory: get column list failed.");
1023 $scope.getAllProjects = function(){
1027 }).then(function successCallback(response) {
1028 var projectLists = response.data;
1029 $scope.allProjects = projectLists;
1033 // getAllProjects();