1 appDS2.controller('reportStepController', function($scope,$http,$location, $routeParams, $q, $modal,$log,$window, raptorReportFactory, stepFormFactory) {
3 $scope.showLoader = true;
4 // tabs for report wizard steps:
5 $scope.activeTabsId = 'Definition';
7 // For all the dropdown box, please declare the active selection variable in the following manner:
8 // $scope.selectedOpt = {};
9 // $scope.selectedOpt.value = "";
10 $scope.getDefinitionById = function(id) {
11 raptorReportFactory.getDefinitionByReportId(id).then(function(data){
12 $scope.loadDefinition(data);
13 $scope.definitionData = data;
14 $scope.showLoader = false;
16 $log.error("raptorReportFactory: getSearchData failed.");
17 $scope.showLoader = false;
22 $scope.createNewDefinition = function() {
23 raptorReportFactory.createNewDefinition().then(function(data){
24 $scope.loadDefinition(data);
25 $scope.definitionData = data;
26 $scope.showLoader = false;
28 $log.error("raptorReportFactory: getSearchData failed.");
32 var initializeCreateReport = function() {
33 $scope["selectedReportType"] ={};
34 $scope.selectedReportType.value ="linear";
35 $scope.selectedReportType2 ={};
36 $scope.selectedReportType2.value ="";
37 $scope.selectedDataSource ={};
38 $scope.selectedDataSource.value="local";
39 $scope.sqlScript = "SELECT ";
40 $scope.pageSize = {"value":"50"};
44 var loadSqlInSession = function(){
45 raptorReportFactory.getSqlInSession().then(function(data){
46 $scope.sqlInSessionJSON = data;
47 $scope.sqlScript = data.query;
48 $scope.showLoader = false;
50 $log.error("raptorReportFactory: getSearchData failed.");
54 initializeCreateReport();
55 if ($routeParams.reportMode) {
56 if ($routeParams.reportMode=="copy") {
57 raptorReportFactory.copyReportById($routeParams.reportId).then(function(data){
58 $scope.$emit('RefreshInsession');
60 $log.error("raptorReportFactory: deleteFormFieldById failed.");
62 } else if ($routeParams.reportMode=="import") {
63 $scope.$emit('RefreshInsession');
65 } else if ($routeParams.reportId) {
66 $scope.getDefinitionById($routeParams.reportId);
68 $scope.reportId = $routeParams.reportId;
70 $scope.isEdit = false;
71 $scope.createNewDefinition();
75 $scope.RunCurrentReport = function (){
76 $window.location.href = "#/report_run/c_master="+$scope.reportId+"&refresh=Y";
79 $scope.deleteFormField = function(rowData) {
80 var modalInstance = $modal.open({
82 animation: $scope.animationsEnabled,
83 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-formfield-del-confirm.html',
84 sizeClass: 'modal-large',
85 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory','rowData', function ($scope, $modalInstance, $http, $log, raptorReportFactory, rowData) {
86 $scope.tempFieldId = rowData.id;
87 $scope.ok = function() {
88 raptorReportFactory.deleteFormFieldById(rowData.id).then(function(data){
89 $modalInstance.close();
91 $log.error("raptorReportFactory: deleteFormFieldById failed.");
94 $scope.cancel = function() {
95 $modalInstance.dismiss();
104 modalInstance.result.then(function () {
105 $scope.$emit('RefreshFormField');
110 $scope.loadDefinition = function(definitionData) {
111 $scope.reportId = definitionData.reportId+"";
112 $scope.reportName = definitionData.reportName;
113 $scope.reportDescr = definitionData.reportDescr;
114 $scope.formHelpText = definitionData.formHelpText;
115 $scope.selectedPageSize = {"value": definitionData.pageSize+''};
116 $scope.selectedMaxRowsInExcelCSVDownload = {"value": definitionData.maxRowsInExcelCSVDownload};
117 $scope.reportTitle = definitionData.reportTitle;
118 $scope.reportSubTitle = definitionData.reportSubTitle;
119 $scope.selectedNumFormCols ={"value": definitionData.numFormCols+''};
120 $scope.selectedFrozenColumns={"value": definitionData.frozenColumns+''};
121 $scope.selectedDataGridAlign = {"value":definitionData.dataGridAlign+''};
122 $scope.emptyMessage = definitionData.emptyMessage+'';
123 $scope.selectedDataContainerHeight = {"value":definitionData.dataContainerHeight+''};
124 $scope.selectedDataContainerWidth = {"value":definitionData.dataContainerWidth+''};
125 var displayAreaValue = "null"
126 for (var i=0; i<3; i++ ) {
127 if (definitionData.displayArea[i].selected) {
128 displayAreaValue = definitionData.displayArea[i].name;
131 $scope.selectedDisplayArea = {"value":displayAreaValue+""};
133 $scope.hideFormFieldsAfterRunSelected = {"value": definitionData.hideFormFieldsAfterRun}
135 $scope.hideFormFieldsSelected = {"value":definitionData.displayOptions[0].selected};
136 $scope.hideChartSelected = {"value":definitionData.displayOptions[1].selected};
137 $scope.hideReportDataSelected = {"value":definitionData.displayOptions[2].selected};
138 $scope.hideExcelSelected = {"value":definitionData.displayOptions[3].selected};
139 $scope.hidePdfSelected = {"value":definitionData.displayOptions[4].selected};
140 $scope.runtimeColSortDisabled = {"value":definitionData.runtimeColSortDisabled};
141 $scope.showLoader = false;
145 var setDefinition = function(){
146 $scope.updatedDefJson = {
147 "tabName" : "Definition",
149 "reportId" : ($scope.isEdit?$scope.reportId+'':"-1"),
150 "reportName" : $scope.reportName,
151 "reportDescr" : $scope.reportDescr,
152 "reportType" : "Linear",
154 "formHelpText" : $scope.formHelpText,
155 "pageSize" : Number($scope.selectedPageSize.value),
159 "selected" : ($scope.selectedDisplayArea.value=="HOME")
163 "selected" : ($scope.selectedDisplayArea.value==="CUSTOMER")
167 "selected" : ($scope.selectedDisplayArea.value==="REPORTS")
169 "hideFormFieldsAfterRun" : $scope.hideFormFieldsAfterRunSelected.value,
170 "maxRowsInExcelCSVDownload" : Number($scope.selectedMaxRowsInExcelCSVDownload.value),
171 "frozenColumns" : Number($scope.selectedFrozenColumns.value),
172 "dataGridAlign" : $scope.selectedDataGridAlign.value,
173 "emptyMessage" : $scope.emptyMessage,
174 "dataContainerHeight" : $scope.selectedDataContainerHeight.value,
175 "dataContainerWidth" : $scope.selectedDataContainerWidth.value,
176 "displayOptions" : [ {
177 "name" : "HideFormFields",
178 "selected" : $scope.hideFormFieldsSelected.value
180 "name" : "HideChart",
181 "selected" : $scope.hideChartSelected.value
183 "name" : "HideReportData",
184 "selected" : $scope.hideReportDataSelected.value
186 "name" : "HideExcel",
187 "selected" : $scope.hideExcelSelected.value
190 "selected" : $scope.hidePdfSelected.value
192 "runtimeColSortDisabled" : $scope.runtimeColSortDisabled.value,
193 "numFormCols" : Number($scope.selectedNumFormCols.value),
194 "reportTitle" : $scope.reportTitle,
195 "reportSubTitle" : $scope.reportSubTitle
200 var updateDefinitionData = function() {
202 raptorReportFactory.updateDefinition($scope.updatedDefJson,$scope.isEdit).then(function(data){
204 $log.error("raptorReportFactory: updateDefinition by Id failed.");
208 var saveNewDefinitionData = function() {
210 raptorReportFactory.saveNewDefinition($scope.updatedDefJson).then(function(data){
212 $log.error("raptorReportFactory: saveNewDefinition by Id failed.");
216 $scope.testRunSql = function(){
217 var queryJSON = {query: $scope.sqlScript};
218 queryJSON = JSON.stringify(queryJSON);
219 raptorReportFactory.testRunSQL(queryJSON).then(function(data){
220 var modalInstance = $modal.open({
222 animation: $scope.animationsEnabled,
223 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-test-run-sql.html',
224 sizeClass: 'modal-large',
225 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory','queriedData', function ($scope, $modalInstance, $http, $log, raptorReportFactory, queriedData) {
226 var init = function() {
227 $scope.isError = false;
228 if (queriedData.errormessage) {
229 $scope.isError = true;
230 $scope.errormessage = queriedData.errormessage;
231 $scope.stacktrace = queriedData.stacktrace;
233 $scope.queryData = queriedData;
237 $scope.close = function() {
238 $modalInstance.dismiss();
242 queriedData: function(){
249 $log.error("raptorReportFactory: test run SQL failed.");
254 $scope.formFieldVerifySQL= function(sqlScript){
255 var queryJSON = {query: sqlScript};
256 queryJSON = JSON.stringify(queryJSON);
257 raptorReportFactory.formFieldVerifySQL(queryJSON).then(function(data){
258 var modalInstance = $modal.open({
260 animation: $scope.animationsEnabled,
261 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-test-run-sql.html',
262 sizeClass: 'modal-large',
263 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory','queriedData', function ($scope, $modalInstance, $http, $log, raptorReportFactory, queriedData) {
264 var init = function() {
265 $scope.isError = false;
266 if (queriedData.errormessage) {
267 $scope.isError = true;
268 $scope.errormessage = queriedData.errormessage;
269 $scope.stacktrace = queriedData.stacktrace;
271 $scope.queryData = queriedData;
275 $scope.close = function() {
276 $modalInstance.dismiss();
280 queriedData: function(){
287 $log.error("raptorReportFactory: test run SQL failed.");
292 /* $scope.selectedDataSource.allowSchedule={};
293 $scope.selectedDataSource.allowSchedule.value=""*/
295 var getJsonSrcName = function(stepNum){
296 var JsonSrcPrefix = "app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step"
297 return JsonSrcPrefix + stepNum +".json";
304 uniqueId: 'uniqueTab1x',
305 tabPanelId: 'threetab1x'
309 uniqueId: 'uniqueTab2x',
310 tabPanelId: 'threetab2x',
311 disabled: (!$scope.isEdit)
315 uniqueId: 'uniqueTab3x',
316 tabPanelId: 'threetab3x',
317 disabled: (!$scope.isEdit)
319 title: 'Form Fields',
321 uniqueId: 'uniqueTab4x',
322 tabPanelId: 'threetab4x',
323 disabled: (!$scope.isEdit)
327 uniqueId: 'uniqueTab5x',
328 tabPanelId: 'threetab5x',
329 disabled: (!$scope.isEdit)
333 $scope.unhideAllOtherTabs = function(){
334 for (var selectedTab = 0; selectedTab < $scope.gTabs.length; selectedTab++) {
335 $scope.gTabs[selectedTab].disabled = false;
339 $scope.openColumnPopup = function (rowData) {
340 var modalInstance = $modal.open({
342 animation: $scope.animationsEnabled,
343 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-col-edit.html',
344 sizeClass: 'modal-large',
345 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory','colData', function ($scope, $modalInstance, $http, $log, raptorReportFactory, colData) {
346 raptorReportFactory.getColumnEditInfoById(colData.id).then(function(data){
347 $scope.columnEditData = data;
348 $scope.colId = data.colId;
349 /* $scope.colName = data.colName;*/
350 $scope.colName = {'value':data.colName+''};
351 $scope.selectedDisplayAlignment = {"value":data.displayAlignment+''};
352 $scope.selectedDisplayHeaderAlignment = {"value":data.displayHeaderAlignment+''};
353 $scope.sortable = {"value":''+data.sortable};
354 $scope.visible = {"value":''+data.visible};
355 $scope.drilldownURL = data.drilldownURL;
356 $scope.drilldownParams = data.drilldownParams;
357 $scope.drilldownType = data.drilldownType;
358 $scope.selectedDrillDownReport = {"value":""};
362 $log.error("raptorReportFactory: getColumnEditInfoById failed.");
365 var init = function() {
367 raptorReportFactory.getDrillDownReportList().then(function(data2){
368 $scope.drilldownReports = data2;
370 $log.error("raptorReportFactory: getDrillDownReportList failed.");
373 /* $scope.colTableRowData = colData;*/
374 $scope.displayAlignmentOptions = [
375 {value:"null", text:""},
376 {value:"Left", text:"Left"},
377 {value:"Center", text:"Center"},
378 {value:"Right", text:"Right"}
381 {value:"true", text:"Yes"},
382 {value:"false", text:"No"}
384 $scope.drillDownOptions = [
385 {value:"drillDownOpt1", text:"drillDownOpt1"},
386 {value:"drillDownOpt2", text:"drillDownOpt2"},
387 {value:"drillDownOpt3", text:"drillDownOpt3"}
392 $scope.$watch('selectedDrillDownReport.value',function(){
393 if ($scope.selectedDrillDownReport) {
394 $scope.$emit('openDrillDownpage',$scope.selectedDrillDownReport.value);
398 $scope.save = function() {
399 var drilldownURL = "";//raptorReportFactory.drillDownPopupOptions
400 //raptorReportFactory.drillDownPopupOptions.radioGroup
403 "tabName" : "Column Edit",
404 "colId" : $scope.colId,
405 "colName" : $scope.colName.value,
406 "displayAlignment" : ($scope.selectedDisplayAlignment.value=="null")?null:$scope.selectedDisplayAlignment.value,
407 "displayHeaderAlignment" : ($scope.selectedDisplayHeaderAlignment.value=="null")?null:$scope.selectedDisplayHeaderAlignment.value,
408 "sortable" : ($scope.sortable.value=="true"),
409 "visible" : ($scope.visible.value=="true"),
410 "drilldownURL" : raptorReportFactory.drillDownURL,
411 "drilldownParams" : raptorReportFactory.drillDownParams,
414 raptorReportFactory.saveColumnEditInfo(colInfo).then(function(data){
415 $modalInstance.close();
417 $log.error("raptorReportFactory: getColumnEditInfoById failed.");
421 $scope.cancel = function() {
422 $modalInstance.dismiss();
432 modalInstance.result.then(function () {
433 $scope.$emit('RefreshColumnList');
437 $scope.addNewFormField = function () {
438 var modalInstance = $modal.open({
440 animation: $scope.animationsEnabled,
441 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-formfield-edit.html',
442 sizeClass: 'modal-large',
443 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory', function ($scope, $modalInstance, $http, $log, raptorReportFactory) {
444 raptorReportFactory.getFormFieldEditInfoById("add").then(function(data){
445 $scope.formFieldEditData = data;
446 $scope.fieldId = $scope.formFieldEditData.fieldId;
447 $scope.fieldName ={"value": $scope.formFieldEditData.fieldName};
448 $scope.selectedVisible = {"value":$scope.formFieldEditData.visible+''};
449 $scope.defaultValue = {"value": $scope.formFieldEditData.defaultValue};
450 $scope.fieldDefaultSQL = {"value": $scope.formFieldEditData.fieldDefaultSQL};
451 $scope.fieldSqlContent = {"value": $scope.formFieldEditData.fieldSQL};
452 $scope.selectedValidationType = {"value":$scope.formFieldEditData.validationType +''};
453 $scope.selectedFieldType = {"value":$scope.formFieldEditData.fieldType +''};
454 $scope.sqlDefaultValueSelected= {value:false};
455 $scope.sqlDefaultValueSelected ={"value":false};
456 if (($scope.fieldDefaultSQL.value)&&($scope.fieldDefaultSQL.value!="")) {
457 $scope.sqlDefaultValueSelected.value =true;
460 $log.error("raptorReportFactory: getColumnEditInfoById failed.");
465 {value:"true", text:"Yes"},
466 {value:"false", text:"No"}
469 $scope.verifyFieldValueOptions = [
470 {value:"DATE", text:"Date"},
471 {value:"TIME_STAMP_HOUR", text:"TimeStamp (Hour)"},
472 {value:"TIME_STAMP_HOUR_MIN", text:"TimeStamp (Hour,Min)"},
473 {value:"HIDDEN", text:"Hidden"}
476 $scope.fieldTypeOptions = [
477 {value:"TEXT", text:"Text Box"},
478 {value:"LIST_BOX", text:"List Box"},
479 {value:"LIST_MULTI_SELECT", text:"Multi-select List Box"},
480 {value:"HIDDEN", text:"Hidden"}
483 $scope.save = function() {
484 var formFieldJSON = {
485 "tabId" : "FormEdit",
486 "tabName" : "Form Edit",
487 "fieldId" : $scope.fieldId,
488 "fieldName" : $scope.fieldName.value,
489 "fieldType" : $scope.selectedFieldType.value,
490 "visible" : ($scope.selectedVisible.value=="true"),
491 "defaultValue" : ($scope.sqlDefaultValueSelected.value?'':$scope.defaultValue.value),
492 "fieldDefaultSQL" : ($scope.sqlDefaultValueSelected.value?$scope.fieldDefaultSQL.value:""),
493 "fieldSQL" :$scope.fieldSqlContent.value,
494 "validationType" : "NONE",
495 "predefinedValueList" :null
497 raptorReportFactory.saveFormFieldEditInfo(formFieldJSON).then(function(data){
498 $modalInstance.close();
500 $log.error("raptorReportFactory: saveFormFieldEditInfo failed.");
504 $scope.cancel = function() {
505 $modalInstance.dismiss();
509 modalInstance.result.then(function () {
510 $scope.$emit('RefreshFormField');
515 $scope.openFormFieldPopup = function (rowData) {
516 var modalInstance = $modal.open({
518 animation: $scope.animationsEnabled,
519 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-formfield-edit.html',
520 sizeClass: 'modal-large',
521 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory','fieldData', function ($scope, $modalInstance, $http, $log, raptorReportFactory, fieldData) {
522 var init = function() {
523 raptorReportFactory.getFormFieldEditInfoById(fieldData.id).then(function(data){
524 $scope.formFieldEditData = data;
525 $scope.fieldId = $scope.formFieldEditData.fieldId;
526 $scope.fieldName = {"value":$scope.formFieldEditData.fieldName};
527 $scope.selectedVisible = {"value":$scope.formFieldEditData.visible+''};
528 $scope.defaultValue = {"value":$scope.formFieldEditData.defaultValue};
529 $scope.fieldDefaultSQL = {"value": $scope.formFieldEditData.fieldDefaultSQL};
530 $scope.fieldSqlContent = {"value": $scope.formFieldEditData.fieldSQL};
531 $scope.selectedValidationType = {"value":$scope.formFieldEditData.validationType +''};
532 $scope.selectedFieldType = {"value":$scope.formFieldEditData.fieldType +''};
533 $scope.sqlDefaultValueSelected ={"value":false};
534 if (($scope.fieldDefaultSQL.value)&&($scope.fieldDefaultSQL.value!="")) {
535 $scope.sqlDefaultValueSelected.value =true;
538 $log.error("raptorReportFactory: getColumnEditInfoById failed.");
542 {value:"true", text:"Yes"},
543 {value:"false", text:"No"}
546 $scope.verifyFieldValueOptions = [
547 {value:"DATE", text:"Date"},
548 {value:"TIME_STAMP_HOUR", text:"TimeStamp (Hour)"},
549 {value:"TIME_STAMP_HOUR_MIN", text:"TimeStamp (Hour,Min)"},
550 {value:"HIDDEN", text:"Hidden"}
553 $scope.fieldTypeOptions = [
554 {value:"TEXT", text:"Text Box"},
555 {value:"LIST_BOX", text:"List Box"},
556 {value:"LIST_MULTI_SELECT", text:"Multi-select List Box"},
557 {value:"HIDDEN", text:"Hidden"}
564 $scope.save = function() {
565 var formFieldJSON = {
566 "tabId" : "FormEdit",
567 "tabName" : "Form Edit",
568 "fieldId" : $scope.fieldId,
569 "fieldName" : $scope.fieldName.value,
570 "fieldType" : $scope.selectedFieldType.value,
571 "visible" : ($scope.selectedVisible.value=="true"),
572 "defaultValue" : ($scope.sqlDefaultValueSelected.value?'':$scope.defaultValue.value),
573 "fieldDefaultSQL" : ($scope.sqlDefaultValueSelected.value?$scope.fieldDefaultSQL.value:""),
574 "fieldSQL" :$scope.fieldSqlContent.value,
575 "validationType" : "NONE",
576 "predefinedValueList" :null
578 raptorReportFactory.saveFormFieldEditInfo(formFieldJSON).then(function(data){
579 $modalInstance.close();
581 $log.error("raptorReportFactory: saveFormFieldEditInfo failed.");
585 $scope.cancel = function() {
586 $modalInstance.dismiss();
590 fieldData: function(){
596 modalInstance.result.then(function () {
597 $scope.$emit('RefreshFormField');
602 $scope.openDrillDownReportPopup = function (reportId,parentReportId) {
603 var modalInstance = $modal.open({
605 animation: $scope.animationsEnabled,
606 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-drilldown-edit.html',
607 sizeClass: 'modal-large',
608 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory','reportId', function ($scope, $modalInstance, $http, $log, raptorReportFactory, reportId) {
610 $scope.drillDownOptionList =[];
611 $scope.selectedvalueradioGroup = {"name":""};
612 $scope.selectedChildReportFormField = {"value":""};
613 $scope.selectedChildReportColumn = {"value":""};
614 $scope.fixedValue = {"value":""};
615 $scope.suppressValues = {"value":""};
617 raptorReportFactory.getChildReportFormField(reportId).then(function(data){
618 for (var i=0;i<data.length;i++) {
619 $scope.drillDownOptionList.push(
621 "name": data[i].name,
623 "selectedvalueradioGroup":{"name":""},
624 "selectedChildReportFormField":{"value":""},
625 "selectedChildReportColumn":{"value":""},
626 "fixedValue":{"value":""},
627 "suppressValues":{"value":""}
632 $log.error("raptorReportFactory: getChildReportFormField failed.");
635 raptorReportFactory.getChildReportFormField(parentReportId).then(function(data){
636 $scope.childReportFF =data;
638 $log.error("raptorReportFactory: getChildReportFormField failed.");
641 raptorReportFactory.getChildReportColumn(parentReportId).then(function(data){
642 $scope.childReportCol =data;
644 $log.error("raptorReportFactory: getChildReportFormField failed.");
647 raptorReportFactory.setDrillDownPopupOptions(null);
649 $scope.complete = function() {
651 console.log("$scope.drillDownOptionList: ");
652 console.log($scope.drillDownOptionList);
655 var drillDownPopupOptions= {
656 radioGroup : $scope.selectedvalueradioGroup.name,
657 reportFF: $scope.selectedChildReportFormField.value,
658 reportCol: $scope.selectedChildReportColumn.value,
659 fixedValue: $scope.fixedValue.value,
660 suppressValues: $scope.suppressValues.value
662 var drillDownParams = "";
664 for (var i=0;i<$scope.drillDownOptionList.length; i++) {
665 if (drillDownParams!="") {
668 if ($scope.drillDownOptionList[i].selectedvalueradioGroup.name=="fixedValue"){
669 drillDownParams = drillDownParams + ampStr + $scope.drillDownOptionList[i].id + "="+$scope.drillDownOptionList[i].fixedValue.value;
670 } else if ($scope.drillDownOptionList[i].selectedvalueradioGroup.name=="reportFF"){
671 drillDownParams = drillDownParams + ampStr + $scope.drillDownOptionList[i].id + "=[!"+$scope.drillDownOptionList[i].selectedChildReportFormField.value + "]";
672 } else if ($scope.drillDownOptionList[i].selectedvalueradioGroup.name=="reportCol"){
673 drillDownParams = drillDownParams + ampStr + $scope.drillDownOptionList[i].id + "=["+$scope.drillDownOptionList[i].selectedChildReportColumn.value + "]";
676 raptorReportFactory.setDrillDownPopupOptions(reportId,drillDownParams);
677 console.log(raptorReportFactory.drillDownURL);
678 console.log(raptorReportFactory.drillDownParams);
680 $modalInstance.close();
684 reportId: function(){
690 modalInstance.result.then(function () {
691 /* $scope.$emit('RefreshFormField');*/
696 $scope.$watch('activeTabsId', function (newVal, oldVal) {
697 if(newVal !== oldVal) {
698 $scope.showLoader = true;
700 for (selectedTab = 0; selectedTab < $scope.gTabs.length; selectedTab++) {
701 if ($scope.gTabs[selectedTab].id === newVal) {
702 $scope.stepNum = selectedTab;
703 /* stepFormFactory.getStepJSONData(getJsonSrcName($scope.stepNum))*/
704 $scope.isColumnStep = false;
705 $scope.isFormFieldStep = false;
706 $scope.renderStep(selectedTab+1);
707 if ($scope.stepNum == 1) {
708 $scope.showLoader = false;
710 else if ($scope.stepNum == 2) {
712 } else if ($scope.stepNum == 3) {
713 $scope.isColumnStep = true;
714 raptorReportFactory.getColumnList().then(function(data){
715 $scope.colTableRowData = data;
716 $scope.showLoader = false;
718 $log.error("raptorReportFactory: get column list failed.");
719 $scope.showLoader = false;});
721 } else if ($scope.stepNum == 4) {
722 $scope.isFormFieldStep = true;
723 // put within then function:
724 raptorReportFactory.getFormFieldList().then(function(data){
725 $scope.formFieldData = data;
726 $scope.showLoader = false;
728 $log.error("raptorReportFactory: get formfields failed.");
729 $scope.showLoader = false;});
730 } else if ($scope.stepNum == 5) {
731 raptorReportFactory.getDefinitionInSession().then(function(data){
732 $scope.reportId = data.reportId;
733 $scope.showLoader = false;
735 $log.error("raptorReportFactory: getDefinitionInSession failed.");
736 $scope.showLoader = false;});
739 if ($scope.stepNum>1){
740 $scope.unhideAllOtherTabs();
749 $scope.renderStep = function(stepNum){
750 var containerElement = angular.element(document.getElementById("stepView"));
751 containerElement.empty();
752 $scope.stepNum = stepNum;
753 var jsonSrcName = getJsonSrcName(stepNum);
754 stepFormFactory.renderForm(jsonSrcName, containerElement, $scope);
757 // initialize the page at step 1;
758 $scope.renderStep(1);
760 // create a message to display in our view
761 $scope.allProjects = [];
762 if(!$routeParams.step && $routeParams.step == "") $routeParams.step = 1;
763 if($routeParams.proj && $routeParams.proj > 0)
764 $scope.projid = $routeParams.proj;
765 if($routeParams.step)
766 $scope.stepNum = $routeParams.step;
770 $scope.jsonSrcName = getJsonSrcName($scope.stepNum);
772 $scope.selectAction = function () {
773 var containerElement = angular.element(document.getElementById("stepView"));
774 containerElement.empty();
775 $scope.project_name = this.prj.projectName;
777 var stepNum = $scope.stepNum;
778 var jsonSrcName = getJsonSrcName(stepNum);
779 stepFormFactory.renderForm(jsonSrcName, containerElement, $scope);
780 renderProject(this.prj.id, 1);
784 $scope.createAction = function () {
785 var containerElement = angular.element(document.getElementById("stepView"));
786 containerElement.empty();
788 var stepNum = $scope.stepNum;
789 $scope.jsonSrcName = "app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step"+$scope.stepNum +".json";
790 var jsonSrcName = $scope.jsonSrcName;
791 stepFormFactory.renderForm(jsonSrcName, containerElement, $scope);
794 // select current project
795 renderProject = function (proj_id, stepNum) {
796 var userSelectedPrjId = proj_id;
799 url: 'get_selected_project_data',
800 params:{'selectedPrjId':userSelectedPrjId, 'step': stepNum}
801 }).then(function successCallback(response) {
802 var selectedproject = response.data;
803 $scope.projid = userSelectedPrjId;
804 //$scope.allProjects = projectLists;
805 //$location.path('/'+userSelectedPrjId+'/'+stepNum);
806 var div = d3.select("#stepView");
807 div.select("[name='proj_id']").text(userSelectedPrjId);
808 div.select("[name='proj_id']").property("value", userSelectedPrjId);
809 d3.select("[name='project_id']").property("value", userSelectedPrjId);
810 var h3Text = div.select("h3").text();
811 div.select("h3").text($scope.project_name+ " - " + h3Text);
812 for (var key in selectedproject) {
813 if (selectedproject.hasOwnProperty(key)) {
814 var val = selectedproject[key];
815 var formElement = d3.selectAll("[name='" + key + "']");
816 if(formElement[0].length > 0)
817 console.log(formElement.attr("type"));
818 if(formElement[0].length > 0 && formElement.attr("type") === "radio") {
819 var formRadio = d3.selectAll("[id='" + key +"_"+val + "']");
820 formRadio.property('checked', true);
822 if(formElement[0].length > 0 && formElement.property("type") === "textarea") {
823 div.select("textarea[name='" + key +"']").property('value', val);
825 if(formElement[0].length > 0 && formElement.attr("type") === "text") {
826 var formText = d3.selectAll("[name='" + key + "']");
827 formText.property("value", val);
829 if(formElement[0].length > 0 && formElement.html().startsWith("<option")) {
830 var formSelect = d3.selectAll("[name='" + key + "']");
832 var checkOption = function (e) {
834 return formSelect.property("selectedIndex", e.index );
838 formSelect.selectAll("option").forEach(function(d) {d.forEach(function(optionD) { console.log(optionD);checkOption(optionD); }) });
841 if(formElement[0].length == 0) {
843 if( Object.prototype.toString.call( val ) === '[object Array]' ) {
844 val.forEach(function(d){
845 for (var keyCheck in d) {
846 if (d.hasOwnProperty(keyCheck)) {
847 var valCheck = d[keyCheck];
848 var formCheck = d3.selectAll("[name='" + key + "_"+keyCheck + "']");
849 if(valCheck === true)
850 formCheck.property('checked', true);
856 var formElementOther = d3.selectAll("[name='" + key + "_"+ val + "']");
857 if(formElementOther[0].length > 0 && formElementOther.attr("type") === "checkbox") {
858 var formCheckbox = d3.selectAll("[name='" + key +"_"+val + "']");
859 formRadio.property('checked', true);
871 $scope.submit = function(){
872 let defer = $q.defer();
874 var div = d3.select("#stepView");
875 var jsonSrcName = $scope.jsonSrcName;
876 var stepNum = $scope.stepNum;
881 }).then(function successCallback(response) {
882 var json = response.data;
883 var step = json.step;
885 var sections = json.content.sections;
886 sections.forEach(function(d, i) {
887 var elements = d.elements;
889 //elements.forEach(function(element, elementIndex) {
891 values += "\"step\""+ ":\"" + step + "\",";
892 values += "\"proj_id\""+ ":\"" + d3.select('input[name="project_id"]').property("value") + "\",";
894 for (elementIndex = 0; elementIndex < elements.length; elementIndex++) {
895 var element = elements[elementIndex];
897 if(elementIndex > 0) values += ",";
898 values += "\""+element.name +"\""+ ":" ;
899 if(element.input === "hidden") {
900 values += "\""+div.select('input[name="'+element.name+'"]').property("value") +"\"";
902 if(element.input === "radio") {
903 values += "\""+ div.select('input[name="'+element.name+'"]:checked').property("value") +"\"";
905 if(element.input === "checkbox") {
906 var checkOptions = element.options;
908 checkOptions.forEach(function(d, i) {
909 // if(document.getElementById("'"+element.name+"_"+d.id+"'") != null)
910 values += "\""+d.id+"\""+ ":" + div.select('input[name="'+element.name+"_"+d.id+'"]').property("checked") ;
911 if(i<checkOptions.length-1) {
917 if(element.input === "text") {
918 values += "\""+div.select('input[name="'+element.name+'"]').property("value") +"\"";
920 if(element.input === "textarea") {
921 values += "\""+div.select('textarea[name="'+element.name+'"]').node().value +"\"";
923 if(element.input === "select") {
924 values += "\""+ div.select('select[name="'+element.name+'"]').property("value") + "\"";
932 var valueJSON = JSON.parse(values);
933 var valueStr = JSON.stringify(valueJSON, null, 4);
934 $http({method:'POST', url:'save_steps', data: jsonSrcName, params:{'result' : valueStr, 'proj_id' : values.proj_id}}).success(function(data, status) {
935 if(data.project_name)
936 $scope.project_name = data.project_name;
937 div.select("[name='proj_id']").property("value", data.proj_id);
938 d3.select("[name='project_id']").property("value", data.proj_id);
939 //$scope.projid = data.proj_id;
940 valueStr=JSON.stringify(data, null, 4);
942 //stepNum = Number(stepNum || 0)+1;
943 //document.getElementById('itestframe').src = data;
950 // $location.path('/step'+($scope.stepNum+1));
951 return defer.promise;
956 $scope.save = function() {
957 if ($scope.stepNum ==1) {
958 updateDefinitionData();
963 $scope.next = function(){
964 if ($scope.stepNum ==1) {
965 updateDefinitionData();
967 $scope.stepNum = $scope.stepNum +1;
968 $scope.activeTabsId = $scope.gTabs[$scope.stepNum-1].id;
972 $scope.previous = function(){
973 $scope.stepNum = $scope.stepNum -1;
974 $scope.activeTabsId = $scope.gTabs[$scope.stepNum-1].id;
978 $scope.$on('RefreshInsession', function(event) {
979 $scope.isEdit = true;
980 $scope.reportId = -1;
981 $scope.getDefinitionById(-1);
984 $scope.$on('openDrillDownpage', function(event, reportId) {
985 console.log("$scope.reportId");
986 console.log($scope.reportId);
988 $scope.openDrillDownReportPopup(reportId,$scope.reportId);
993 $scope.$on('RefreshFormField', function(event) {
994 raptorReportFactory.getFormFieldList().then(function(data){
995 $scope.formFieldData = data;
997 $log.error("raptorReportFactory: get formfields failed.");
1001 $scope.$on('RefreshColumnList', function(event) {
1002 raptorReportFactory.getColumnList().then(function(data){
1003 $scope.colTableRowData = data;
1005 $log.error("raptorReportFactory: get column list failed.");
1009 $scope.getAllProjects = function(){
1013 }).then(function successCallback(response) {
1014 var projectLists = response.data;
1015 $scope.allProjects = projectLists;
1019 // getAllProjects();