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" : drilldownURL,
412 "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) {
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) {
610 $scope.selectedvalueradioGroup = {"name":""};
611 $scope.selectedChildReportFormField = {"value":""};
612 $scope.selectedChildReportColumn = {"value":""};
613 $scope.fixedValue = {"value":""};
614 $scope.suppressValues = {"value":""};
616 raptorReportFactory.getChildReportFormField(reportId).then(function(data){
617 $scope.childReportFF =data;
619 $log.error("raptorReportFactory: getChildReportFormField failed.");
622 raptorReportFactory.getChildReportColumn(reportId).then(function(data){
623 $scope.childReportCol =data;
625 $log.error("raptorReportFactory: getChildReportFormField failed.");
628 raptorReportFactory.setDrillDownPopupOptions(null);
630 $scope.complete = function() {
631 // if ($scope.selectedvalueradioGroup.name=="radiovalue1") {
632 // console.log("radio 1 selected");
633 // } else if ($scope.selectedvalueradioGroup.name=="radiovalue2") {
634 // console.log("radio 2 selected");
635 // } else if ($scope.selectedvalueradioGroup.name=="radiovalue3") {
636 // console.log("radio 3 selected");
637 // } else if ($scope.selectedvalueradioGroup.name=="radiovalue4") {
638 // console.log("radio 4 selected");
639 // } else if ($scope.selectedvalueradioGroup.name=="radiovalue5") {
640 // console.log("radio 5 selected");
642 // console.log("None selected");
645 var drillDownPopupOptions= {
646 radioGroup : $scope.selectedvalueradioGroup.name,
647 reportFF: $scope.selectedChildReportFormField.value,
648 reportCol: $scope.selectedChildReportColumn.value,
649 fixedValue: $scope.fixedValue.value,
650 suppressValues: $scope.suppressValues.value
652 raptorReportFactory.setDrillDownPopupOptions(drillDownPopupOptions);
653 console.log(raptorReportFactory.drillDownPopupOptions);
655 $modalInstance.close();
659 reportId: function(){
665 modalInstance.result.then(function () {
666 /* $scope.$emit('RefreshFormField');*/
671 $scope.$watch('activeTabsId', function (newVal, oldVal) {
672 if(newVal !== oldVal) {
673 $scope.showLoader = true;
675 for (selectedTab = 0; selectedTab < $scope.gTabs.length; selectedTab++) {
676 if ($scope.gTabs[selectedTab].id === newVal) {
677 $scope.stepNum = selectedTab;
678 /* stepFormFactory.getStepJSONData(getJsonSrcName($scope.stepNum))*/
679 $scope.isColumnStep = false;
680 $scope.isFormFieldStep = false;
681 $scope.renderStep(selectedTab+1);
682 if ($scope.stepNum == 1) {
683 $scope.showLoader = false;
685 else if ($scope.stepNum == 2) {
687 } else if ($scope.stepNum == 3) {
688 $scope.isColumnStep = true;
689 raptorReportFactory.getColumnList().then(function(data){
690 $scope.colTableRowData = data;
691 $scope.showLoader = false;
693 $log.error("raptorReportFactory: get column list failed.");
694 $scope.showLoader = false;});
696 } else if ($scope.stepNum == 4) {
697 $scope.isFormFieldStep = true;
698 // put within then function:
699 raptorReportFactory.getFormFieldList().then(function(data){
700 $scope.formFieldData = data;
701 $scope.showLoader = false;
703 $log.error("raptorReportFactory: get formfields failed.");
704 $scope.showLoader = false;});
705 } else if ($scope.stepNum == 5) {
706 raptorReportFactory.getDefinitionInSession().then(function(data){
707 $scope.reportId = data.reportId;
708 $scope.showLoader = false;
710 $log.error("raptorReportFactory: getDefinitionInSession failed.");
711 $scope.showLoader = false;});
714 if ($scope.stepNum>1){
715 $scope.unhideAllOtherTabs();
721 var selectedTabPanelElement = document.getElementById($scope.gTabs[selectedTab].tabPanelId);
724 if (selectedTabPanelElement) {
725 elem = DOMHelper.firstTabableElement(selectedTabPanelElement);
729 $timeout(function () {
737 $scope.renderStep = function(stepNum){
738 var containerElement = angular.element(document.getElementById("stepView"));
739 containerElement.empty();
740 $scope.stepNum = stepNum;
741 var jsonSrcName = getJsonSrcName(stepNum);
742 stepFormFactory.renderForm(jsonSrcName, containerElement, $scope);
745 // initialize the page at step 1;
746 $scope.renderStep(1);
748 // create a message to display in our view
749 $scope.allProjects = [];
750 if(!$routeParams.step && $routeParams.step == "") $routeParams.step = 1;
751 if($routeParams.proj && $routeParams.proj > 0)
752 $scope.projid = $routeParams.proj;
753 if($routeParams.step)
754 $scope.stepNum = $routeParams.step;
758 $scope.jsonSrcName = getJsonSrcName($scope.stepNum);
760 $scope.selectAction = function () {
761 var containerElement = angular.element(document.getElementById("stepView"));
762 containerElement.empty();
763 $scope.project_name = this.prj.projectName;
765 var stepNum = $scope.stepNum;
766 var jsonSrcName = getJsonSrcName(stepNum);
767 stepFormFactory.renderForm(jsonSrcName, containerElement, $scope);
768 renderProject(this.prj.id, 1);
772 $scope.createAction = function () {
773 var containerElement = angular.element(document.getElementById("stepView"));
774 containerElement.empty();
776 var stepNum = $scope.stepNum;
777 $scope.jsonSrcName = "app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step"+$scope.stepNum +".json";
778 var jsonSrcName = $scope.jsonSrcName;
779 stepFormFactory.renderForm(jsonSrcName, containerElement, $scope);
782 // select current project
783 renderProject = function (proj_id, stepNum) {
784 var userSelectedPrjId = proj_id;
787 url: 'get_selected_project_data',
788 params:{'selectedPrjId':userSelectedPrjId, 'step': stepNum}
789 }).then(function successCallback(response) {
790 var selectedproject = response.data;
791 $scope.projid = userSelectedPrjId;
792 //$scope.allProjects = projectLists;
793 //$location.path('/'+userSelectedPrjId+'/'+stepNum);
794 var div = d3.select("#stepView");
795 div.select("[name='proj_id']").text(userSelectedPrjId);
796 div.select("[name='proj_id']").property("value", userSelectedPrjId);
797 d3.select("[name='project_id']").property("value", userSelectedPrjId);
798 var h3Text = div.select("h3").text();
799 div.select("h3").text($scope.project_name+ " - " + h3Text);
800 for (var key in selectedproject) {
801 if (selectedproject.hasOwnProperty(key)) {
802 var val = selectedproject[key];
803 var formElement = d3.selectAll("[name='" + key + "']");
804 if(formElement[0].length > 0)
805 console.log(formElement.attr("type"));
806 if(formElement[0].length > 0 && formElement.attr("type") === "radio") {
807 var formRadio = d3.selectAll("[id='" + key +"_"+val + "']");
808 formRadio.property('checked', true);
810 if(formElement[0].length > 0 && formElement.property("type") === "textarea") {
811 div.select("textarea[name='" + key +"']").property('value', val);
813 if(formElement[0].length > 0 && formElement.attr("type") === "text") {
814 var formText = d3.selectAll("[name='" + key + "']");
815 formText.property("value", val);
817 if(formElement[0].length > 0 && formElement.html().startsWith("<option")) {
818 var formSelect = d3.selectAll("[name='" + key + "']");
820 var checkOption = function (e) {
822 return formSelect.property("selectedIndex", e.index );
826 formSelect.selectAll("option").forEach(function(d) {d.forEach(function(optionD) { console.log(optionD);checkOption(optionD); }) });
829 if(formElement[0].length == 0) {
831 if( Object.prototype.toString.call( val ) === '[object Array]' ) {
832 val.forEach(function(d){
833 for (var keyCheck in d) {
834 if (d.hasOwnProperty(keyCheck)) {
835 var valCheck = d[keyCheck];
836 var formCheck = d3.selectAll("[name='" + key + "_"+keyCheck + "']");
837 if(valCheck === true)
838 formCheck.property('checked', true);
844 var formElementOther = d3.selectAll("[name='" + key + "_"+ val + "']");
845 if(formElementOther[0].length > 0 && formElementOther.attr("type") === "checkbox") {
846 var formCheckbox = d3.selectAll("[name='" + key +"_"+val + "']");
847 formRadio.property('checked', true);
859 $scope.submit = function(){
860 let defer = $q.defer();
862 var div = d3.select("#stepView");
863 var jsonSrcName = $scope.jsonSrcName;
864 var stepNum = $scope.stepNum;
869 }).then(function successCallback(response) {
870 var json = response.data;
871 var step = json.step;
873 var sections = json.content.sections;
874 sections.forEach(function(d, i) {
875 var elements = d.elements;
877 //elements.forEach(function(element, elementIndex) {
879 values += "\"step\""+ ":\"" + step + "\",";
880 values += "\"proj_id\""+ ":\"" + d3.select('input[name="project_id"]').property("value") + "\",";
882 for (elementIndex = 0; elementIndex < elements.length; elementIndex++) {
883 var element = elements[elementIndex];
885 if(elementIndex > 0) values += ",";
886 values += "\""+element.name +"\""+ ":" ;
887 if(element.input === "hidden") {
888 values += "\""+div.select('input[name="'+element.name+'"]').property("value") +"\"";
890 if(element.input === "radio") {
891 values += "\""+ div.select('input[name="'+element.name+'"]:checked').property("value") +"\"";
893 if(element.input === "checkbox") {
894 var checkOptions = element.options;
896 checkOptions.forEach(function(d, i) {
897 // if(document.getElementById("'"+element.name+"_"+d.id+"'") != null)
898 values += "\""+d.id+"\""+ ":" + div.select('input[name="'+element.name+"_"+d.id+'"]').property("checked") ;
899 if(i<checkOptions.length-1) {
905 if(element.input === "text") {
906 values += "\""+div.select('input[name="'+element.name+'"]').property("value") +"\"";
908 if(element.input === "textarea") {
909 values += "\""+div.select('textarea[name="'+element.name+'"]').node().value +"\"";
911 if(element.input === "select") {
912 values += "\""+ div.select('select[name="'+element.name+'"]').property("value") + "\"";
920 var valueJSON = JSON.parse(values);
921 var valueStr = JSON.stringify(valueJSON, null, 4);
922 $http({method:'POST', url:'save_steps', data: jsonSrcName, params:{'result' : valueStr, 'proj_id' : values.proj_id}}).success(function(data, status) {
923 if(data.project_name)
924 $scope.project_name = data.project_name;
925 div.select("[name='proj_id']").property("value", data.proj_id);
926 d3.select("[name='project_id']").property("value", data.proj_id);
927 //$scope.projid = data.proj_id;
928 valueStr=JSON.stringify(data, null, 4);
930 //stepNum = Number(stepNum || 0)+1;
931 //document.getElementById('itestframe').src = data;
938 // $location.path('/step'+($scope.stepNum+1));
939 return defer.promise;
944 $scope.save = function() {
945 if ($scope.stepNum ==1) {
946 updateDefinitionData();
951 $scope.next = function(){
952 if ($scope.stepNum ==1) {
953 updateDefinitionData();
955 $scope.stepNum = $scope.stepNum +1;
956 $scope.activeTabsId = $scope.gTabs[$scope.stepNum-1].id;
960 $scope.previous = function(){
961 $scope.stepNum = $scope.stepNum -1;
962 $scope.activeTabsId = $scope.gTabs[$scope.stepNum-1].id;
966 $scope.$on('RefreshInsession', function(event) {
967 $scope.isEdit = true;
968 $scope.reportId = -1;
969 $scope.getDefinitionById(-1);
972 $scope.$on('openDrillDownpage', function(event, reportId) {
974 $scope.openDrillDownReportPopup(reportId);
979 $scope.$on('RefreshFormField', function(event) {
980 raptorReportFactory.getFormFieldList().then(function(data){
981 $scope.formFieldData = data;
983 $log.error("raptorReportFactory: get formfields failed.");
987 $scope.$on('RefreshColumnList', function(event) {
988 raptorReportFactory.getColumnList().then(function(data){
989 $scope.colTableRowData = data;
991 $log.error("raptorReportFactory: get column list failed.");
995 $scope.getAllProjects = function(){
999 }).then(function successCallback(response) {
1000 var projectLists = response.data;
1001 $scope.allProjects = projectLists;
1005 // getAllProjects();