1 appDS2.controller('reportStepController', function($scope,$http,$location, $routeParams, $q, $modal,$log,$window, raptorReportFactory, stepFormFactory, DOMHelper) {
3 // tabs for report wizard steps:
4 $scope.activeTabsId = 'Definition';
6 // For all the dropdown box, please declare the active selection variable in the following manner:
7 // $scope.selectedOpt = {};
8 // $scope.selectedOpt.value = "";
9 $scope.getDefinitionById = function(id) {
10 raptorReportFactory.getDefinitionByReportId(id).then(function(data){
11 $scope.loadDefinition(data);
12 $scope.definitionData = data;
14 $log.error("raptorReportFactory: getSearchData failed.");
19 $scope.createNewDefinition = function() {
20 raptorReportFactory.createNewDefinition().then(function(data){
21 $scope.loadDefinition(data);
22 $scope.definitionData = data;
24 $log.error("raptorReportFactory: getSearchData failed.");
28 var initializeCreateReport = function() {
29 $scope["selectedReportType"] ={};
30 $scope.selectedReportType.value ="linear";
31 $scope.selectedReportType2 ={};
32 $scope.selectedReportType2.value ="";
33 $scope.selectedDataSource ={};
34 $scope.selectedDataSource.value="local";
35 $scope.sqlScript = "SELECT ";
36 $scope.pageSize = {"value":"50"};
40 var loadSqlInSession = function(){
41 raptorReportFactory.getSqlInSession().then(function(data){
42 $scope.sqlInSessionJSON = data;
43 $scope.sqlScript = data.query;
45 $log.error("raptorReportFactory: getSearchData failed.");
49 initializeCreateReport();
50 if ($routeParams.reportMode) {
51 if ($routeParams.reportMode=="copy") {
52 raptorReportFactory.copyReportById($routeParams.reportId).then(function(data){
53 $scope.$emit('RefreshInsession');
55 $log.error("raptorReportFactory: deleteFormFieldById failed.");
57 } else if ($routeParams.reportMode=="import") {
58 $scope.$emit('RefreshInsession');
60 } else if ($routeParams.reportId) {
61 $scope.getDefinitionById($routeParams.reportId);
63 $scope.reportId = $routeParams.reportId;
65 $scope.isEdit = false;
66 $scope.createNewDefinition();
70 $scope.RunCurrentReport = function (){
71 $window.location.href = "#/report_run/c_master="+$scope.reportId+"&refresh=Y";
74 $scope.deleteFormField = function(rowData) {
75 var modalInstance = $modal.open({
77 animation: $scope.animationsEnabled,
78 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-formfield-del-confirm.html',
79 sizeClass: 'modal-large',
80 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory','rowData', function ($scope, $modalInstance, $http, $log, raptorReportFactory, rowData) {
81 $scope.tempFieldId = rowData.id;
82 $scope.ok = function() {
83 raptorReportFactory.deleteFormFieldById(rowData.id).then(function(data){
84 $modalInstance.close();
86 $log.error("raptorReportFactory: deleteFormFieldById failed.");
89 $scope.cancel = function() {
90 $modalInstance.dismiss();
99 modalInstance.result.then(function () {
100 $scope.$emit('RefreshFormField');
105 $scope.loadDefinition = function(definitionData) {
106 $scope.reportId = definitionData.reportId+"";
107 $scope.reportName = definitionData.reportName;
108 $scope.reportDescr = definitionData.reportDescr;
109 $scope.formHelpText = definitionData.formHelpText;
110 $scope.selectedPageSize = {"value": definitionData.pageSize+''};
111 $scope.selectedMaxRowsInExcelCSVDownload = {"value": definitionData.maxRowsInExcelCSVDownload};
112 $scope.reportTitle = definitionData.reportTitle;
113 $scope.reportSubTitle = definitionData.reportSubTitle;
114 $scope.selectedNumFormCols ={"value": definitionData.numFormCols+''};
115 $scope.selectedFrozenColumns={"value": definitionData.frozenColumns+''};
116 $scope.selectedDataGridAlign = {"value":definitionData.dataGridAlign+''};
117 $scope.emptyMessage = definitionData.emptyMessage+'';
118 $scope.selectedDataContainerHeight = {"value":definitionData.dataContainerHeight+''};
119 $scope.selectedDataContainerWidth = {"value":definitionData.dataContainerWidth+''};
120 var displayAreaValue = "null"
121 for (var i=0; i<3; i++ ) {
122 if (definitionData.displayArea[i].selected) {
123 displayAreaValue = definitionData.displayArea[i].name;
126 $scope.selectedDisplayArea = {"value":displayAreaValue+""};
128 $scope.hideFormFieldsAfterRunSelected = {"value": definitionData.hideFormFieldsAfterRun}
130 $scope.hideFormFieldsSelected = {"value":definitionData.displayOptions[0].selected};
131 $scope.hideChartSelected = {"value":definitionData.displayOptions[1].selected};
132 $scope.hideReportDataSelected = {"value":definitionData.displayOptions[2].selected};
133 $scope.hideExcelSelected = {"value":definitionData.displayOptions[3].selected};
134 $scope.hidePdfSelected = {"value":definitionData.displayOptions[4].selected};
135 $scope.runtimeColSortDisabled = {"value":definitionData.runtimeColSortDisabled};
139 var setDefinition = function(){
140 $scope.updatedDefJson = {
141 "tabName" : "Definition",
143 "reportId" : ($scope.isEdit?$scope.reportId+'':"-1"),
144 "reportName" : $scope.reportName,
145 "reportDescr" : $scope.reportDescr,
146 "reportType" : "Linear",
148 "formHelpText" : $scope.formHelpText,
149 "pageSize" : Number($scope.selectedPageSize.value),
153 "selected" : ($scope.selectedDisplayArea.value=="HOME")
157 "selected" : ($scope.selectedDisplayArea.value==="CUSTOMER")
161 "selected" : ($scope.selectedDisplayArea.value==="REPORTS")
163 "hideFormFieldsAfterRun" : $scope.hideFormFieldsAfterRunSelected.value,
164 "maxRowsInExcelCSVDownload" : Number($scope.selectedMaxRowsInExcelCSVDownload.value),
165 "frozenColumns" : Number($scope.selectedFrozenColumns.value),
166 "dataGridAlign" : $scope.selectedDataGridAlign.value,
167 "emptyMessage" : $scope.emptyMessage,
168 "dataContainerHeight" : $scope.selectedDataContainerHeight.value,
169 "dataContainerWidth" : $scope.selectedDataContainerWidth.value,
170 "displayOptions" : [ {
171 "name" : "HideFormFields",
172 "selected" : $scope.hideFormFieldsSelected.value
174 "name" : "HideChart",
175 "selected" : $scope.hideChartSelected.value
177 "name" : "HideReportData",
178 "selected" : $scope.hideReportDataSelected.value
180 "name" : "HideExcel",
181 "selected" : $scope.hideExcelSelected.value
184 "selected" : $scope.hidePdfSelected.value
186 "runtimeColSortDisabled" : $scope.runtimeColSortDisabled.value,
187 "numFormCols" : Number($scope.selectedNumFormCols.value),
188 "reportTitle" : $scope.reportTitle,
189 "reportSubTitle" : $scope.reportSubTitle
194 var updateDefinitionData = function() {
196 raptorReportFactory.updateDefinition($scope.updatedDefJson,$scope.isEdit).then(function(data){
198 $log.error("raptorReportFactory: updateDefinition by Id failed.");
202 var saveNewDefinitionData = function() {
204 raptorReportFactory.saveNewDefinition($scope.updatedDefJson).then(function(data){
206 $log.error("raptorReportFactory: saveNewDefinition by Id failed.");
210 $scope.testRunSql = function(){
211 var queryJSON = {query: $scope.sqlScript};
212 queryJSON = JSON.stringify(queryJSON);
213 raptorReportFactory.testRunSQL(queryJSON).then(function(data){
214 var modalInstance = $modal.open({
216 animation: $scope.animationsEnabled,
217 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-test-run-sql.html',
218 sizeClass: 'modal-large',
219 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory','queriedData', function ($scope, $modalInstance, $http, $log, raptorReportFactory, queriedData) {
220 var init = function() {
221 $scope.isError = false;
222 if (queriedData.errormessage) {
223 $scope.isError = true;
224 $scope.errormessage = queriedData.errormessage;
225 $scope.stacktrace = queriedData.stacktrace;
227 $scope.queryData = queriedData;
231 $scope.close = function() {
232 $modalInstance.dismiss();
236 queriedData: function(){
243 $log.error("raptorReportFactory: test run SQL failed.");
248 $scope.formFieldVerifySQL= function(sqlScript){
249 var queryJSON = {query: sqlScript};
250 queryJSON = JSON.stringify(queryJSON);
251 raptorReportFactory.formFieldVerifySQL(queryJSON).then(function(data){
252 var modalInstance = $modal.open({
254 animation: $scope.animationsEnabled,
255 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-test-run-sql.html',
256 sizeClass: 'modal-large',
257 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory','queriedData', function ($scope, $modalInstance, $http, $log, raptorReportFactory, queriedData) {
258 var init = function() {
259 $scope.isError = false;
260 if (queriedData.errormessage) {
261 $scope.isError = true;
262 $scope.errormessage = queriedData.errormessage;
263 $scope.stacktrace = queriedData.stacktrace;
265 $scope.queryData = queriedData;
269 $scope.close = function() {
270 $modalInstance.dismiss();
274 queriedData: function(){
281 $log.error("raptorReportFactory: test run SQL failed.");
286 /* $scope.selectedDataSource.allowSchedule={};
287 $scope.selectedDataSource.allowSchedule.value=""*/
289 var getJsonSrcName = function(stepNum){
290 var JsonSrcPrefix = "app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step"
291 return JsonSrcPrefix + stepNum +".json";
298 uniqueId: 'uniqueTab1x',
299 tabPanelId: 'threetab1x'
303 uniqueId: 'uniqueTab2x',
304 tabPanelId: 'threetab2x',
305 disabled: (!$scope.isEdit)
309 uniqueId: 'uniqueTab3x',
310 tabPanelId: 'threetab3x',
311 disabled: (!$scope.isEdit)
313 title: 'Form Fields',
315 uniqueId: 'uniqueTab4x',
316 tabPanelId: 'threetab4x',
317 disabled: (!$scope.isEdit)
321 uniqueId: 'uniqueTab5x',
322 tabPanelId: 'threetab5x',
323 disabled: (!$scope.isEdit)
327 $scope.unhideAllOtherTabs = function(){
328 for (var selectedTab = 0; selectedTab < $scope.gTabs.length; selectedTab++) {
329 $scope.gTabs[selectedTab].disabled = false;
333 $scope.openColumnPopup = function (rowData) {
334 var modalInstance = $modal.open({
336 animation: $scope.animationsEnabled,
337 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-col-edit.html',
338 sizeClass: 'modal-large',
339 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory','colData', function ($scope, $modalInstance, $http, $log, raptorReportFactory, colData) {
340 raptorReportFactory.getColumnEditInfoById(colData.id).then(function(data){
341 $scope.columnEditData = data;
342 $scope.colId = data.colId;
343 /* $scope.colName = data.colName;*/
344 $scope.colName = {'value':data.colName+''};
345 $scope.selectedDisplayAlignment = {"value":data.displayAlignment+''};
346 $scope.selectedDisplayHeaderAlignment = {"value":data.displayHeaderAlignment+''};
347 $scope.sortable = {"value":''+data.sortable};
348 $scope.visible = {"value":''+data.visible};
349 $scope.drilldownURL = data.drilldownURL;
350 $scope.drilldownParams = data.drilldownParams;
351 $scope.drilldownType = data.drilldownType;
353 $log.error("raptorReportFactory: getColumnEditInfoById failed.");
356 var init = function() {
357 /* $scope.colTableRowData = colData;*/
358 $scope.displayAlignmentOptions = [
359 {value:"null", text:""},
360 {value:"Left", text:"Left"},
361 {value:"Center", text:"Center"},
362 {value:"Right", text:"Right"}
365 {value:"true", text:"Yes"},
366 {value:"false", text:"No"}
368 $scope.drillDownOptions = [
369 {value:"drillDownOpt1", text:"drillDownOpt1"},
370 {value:"drillDownOpt2", text:"drillDownOpt2"},
371 {value:"drillDownOpt3", text:"drillDownOpt3"}
377 $scope.save = function() {
380 "tabName" : "Column Edit",
381 "colId" : $scope.colId,
382 "colName" : $scope.colName.value,
383 "displayAlignment" : ($scope.selectedDisplayAlignment.value=="null")?null:$scope.selectedDisplayAlignment.value,
384 "displayHeaderAlignment" : ($scope.selectedDisplayHeaderAlignment.value=="null")?null:$scope.selectedDisplayHeaderAlignment.value,
385 "sortable" : ($scope.sortable.value=="true"),
386 "visible" : ($scope.visible.value=="true"),
388 "drilldownParams" : "",
391 raptorReportFactory.saveColumnEditInfo(colInfo).then(function(data){
392 $modalInstance.close();
394 $log.error("raptorReportFactory: getColumnEditInfoById failed.");
398 $scope.cancel = function() {
399 $modalInstance.dismiss();
409 modalInstance.result.then(function () {
410 $scope.$emit('RefreshColumnList');
414 $scope.addNewFormField = function () {
415 var modalInstance = $modal.open({
417 animation: $scope.animationsEnabled,
418 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-formfield-edit.html',
419 sizeClass: 'modal-large',
420 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory', function ($scope, $modalInstance, $http, $log, raptorReportFactory) {
421 raptorReportFactory.getFormFieldEditInfoById("add").then(function(data){
422 $scope.formFieldEditData = data;
423 $scope.fieldId = $scope.formFieldEditData.fieldId;
424 $scope.fieldName ={"value": $scope.formFieldEditData.fieldName};
425 $scope.selectedVisible = {"value":$scope.formFieldEditData.visible+''};
426 $scope.defaultValue = {"value": $scope.formFieldEditData.defaultValue};
427 $scope.fieldDefaultSQL = {"value": $scope.formFieldEditData.fieldDefaultSQL};
428 $scope.fieldSqlContent = {"value": $scope.formFieldEditData.fieldSQL};
429 $scope.selectedValidationType = {"value":$scope.formFieldEditData.validationType +''};
430 $scope.selectedFieldType = {"value":$scope.formFieldEditData.fieldType +''};
431 $scope.sqlDefaultValueSelected= {value:false};
432 $scope.sqlDefaultValueSelected ={"value":false};
433 if (($scope.fieldDefaultSQL.value)&&($scope.fieldDefaultSQL.value!="")) {
434 $scope.sqlDefaultValueSelected.value =true;
437 $log.error("raptorReportFactory: getColumnEditInfoById failed.");
442 {value:"true", text:"Yes"},
443 {value:"false", text:"No"}
446 $scope.verifyFieldValueOptions = [
447 {value:"DATE", text:"Date"},
448 {value:"TIME_STAMP_HOUR", text:"TimeStamp (Hour)"},
449 {value:"TIME_STAMP_HOUR_MIN", text:"TimeStamp (Hour,Min)"},
450 {value:"HIDDEN", text:"Hidden"}
453 $scope.fieldTypeOptions = [
454 {value:"TEXT", text:"Text Box"},
455 {value:"LIST_BOX", text:"List Box"},
456 {value:"LIST_MULTI_SELECT", text:"Multi-select List Box"},
457 {value:"HIDDEN", text:"Hidden"}
460 $scope.save = function() {
461 var formFieldJSON = {
462 "tabId" : "FormEdit",
463 "tabName" : "Form Edit",
464 "fieldId" : $scope.fieldId,
465 "fieldName" : $scope.fieldName.value,
466 "fieldType" : $scope.selectedFieldType.value,
467 "visible" : ($scope.selectedVisible.value=="true"),
468 "defaultValue" : ($scope.sqlDefaultValueSelected.value?'':$scope.defaultValue.value),
469 "fieldDefaultSQL" : ($scope.sqlDefaultValueSelected.value?$scope.fieldDefaultSQL.value:""),
470 "fieldSQL" :$scope.fieldSqlContent.value,
471 "validationType" : "NONE",
472 "predefinedValueList" :null
474 raptorReportFactory.saveFormFieldEditInfo(formFieldJSON).then(function(data){
475 $modalInstance.close();
477 $log.error("raptorReportFactory: saveFormFieldEditInfo failed.");
481 $scope.cancel = function() {
482 $modalInstance.dismiss();
486 modalInstance.result.then(function () {
487 $scope.$emit('RefreshFormField');
492 $scope.openFormFieldPopup = function (rowData) {
493 var modalInstance = $modal.open({
495 animation: $scope.animationsEnabled,
496 templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-reports/modal/report-wizard-formfield-edit.html',
497 sizeClass: 'modal-large',
498 controller: ['$scope', '$modalInstance', '$http', '$log','raptorReportFactory','fieldData', function ($scope, $modalInstance, $http, $log, raptorReportFactory, fieldData) {
499 var init = function() {
500 raptorReportFactory.getFormFieldEditInfoById(fieldData.id).then(function(data){
501 $scope.formFieldEditData = data;
502 $scope.fieldId = $scope.formFieldEditData.fieldId;
503 $scope.fieldName = {"value":$scope.formFieldEditData.fieldName};
504 $scope.selectedVisible = {"value":$scope.formFieldEditData.visible+''};
505 $scope.defaultValue = {"value":$scope.formFieldEditData.defaultValue};
506 $scope.fieldDefaultSQL = {"value": $scope.formFieldEditData.fieldDefaultSQL};
507 $scope.fieldSqlContent = {"value": $scope.formFieldEditData.fieldSQL};
508 $scope.selectedValidationType = {"value":$scope.formFieldEditData.validationType +''};
509 $scope.selectedFieldType = {"value":$scope.formFieldEditData.fieldType +''};
510 $scope.sqlDefaultValueSelected ={"value":false};
511 if (($scope.fieldDefaultSQL.value)&&($scope.fieldDefaultSQL.value!="")) {
512 $scope.sqlDefaultValueSelected.value =true;
515 $log.error("raptorReportFactory: getColumnEditInfoById failed.");
519 {value:"true", text:"Yes"},
520 {value:"false", text:"No"}
523 $scope.verifyFieldValueOptions = [
524 {value:"DATE", text:"Date"},
525 {value:"TIME_STAMP_HOUR", text:"TimeStamp (Hour)"},
526 {value:"TIME_STAMP_HOUR_MIN", text:"TimeStamp (Hour,Min)"},
527 {value:"HIDDEN", text:"Hidden"}
530 $scope.fieldTypeOptions = [
531 {value:"TEXT", text:"Text Box"},
532 {value:"LIST_BOX", text:"List Box"},
533 {value:"LIST_MULTI_SELECT", text:"Multi-select List Box"},
534 {value:"HIDDEN", text:"Hidden"}
541 $scope.save = function() {
542 var formFieldJSON = {
543 "tabId" : "FormEdit",
544 "tabName" : "Form Edit",
545 "fieldId" : $scope.fieldId,
546 "fieldName" : $scope.fieldName.value,
547 "fieldType" : $scope.selectedFieldType.value,
548 "visible" : ($scope.selectedVisible.value=="true"),
549 "defaultValue" : ($scope.sqlDefaultValueSelected.value?'':$scope.defaultValue.value),
550 "fieldDefaultSQL" : ($scope.sqlDefaultValueSelected.value?$scope.fieldDefaultSQL.value:""),
551 "fieldSQL" :$scope.fieldSqlContent.value,
552 "validationType" : "NONE",
553 "predefinedValueList" :null
555 raptorReportFactory.saveFormFieldEditInfo(formFieldJSON).then(function(data){
556 $modalInstance.close();
558 $log.error("raptorReportFactory: saveFormFieldEditInfo failed.");
562 $scope.cancel = function() {
563 $modalInstance.dismiss();
567 fieldData: function(){
573 modalInstance.result.then(function () {
574 $scope.$emit('RefreshFormField');
580 $scope.$watch('activeTabsId', function (newVal, oldVal) {
581 if(newVal !== oldVal) {
583 for (selectedTab = 0; selectedTab < $scope.gTabs.length; selectedTab++) {
584 if ($scope.gTabs[selectedTab].id === newVal) {
585 $scope.stepNum = selectedTab;
586 /* stepFormFactory.getStepJSONData(getJsonSrcName($scope.stepNum))*/
587 $scope.isColumnStep = false;
588 $scope.isFormFieldStep = false;
589 $scope.renderStep(selectedTab+1);
590 if ($scope.stepNum == 2) {
592 } else if ($scope.stepNum == 3) {
593 $scope.isColumnStep = true;
595 raptorReportFactory.getColumnList().then(function(data){
596 $scope.colTableRowData = data;
598 $log.error("raptorReportFactory: get column list failed."); });
600 } else if ($scope.stepNum == 4) {
601 $scope.isFormFieldStep = true;
602 // put within then function:
603 raptorReportFactory.getFormFieldList().then(function(data){
604 $scope.formFieldData = data;
606 $log.error("raptorReportFactory: get formfields failed."); });
607 } else if ($scope.stepNum == 5) {
608 raptorReportFactory.getDefinitionInSession().then(function(data){
609 $scope.reportId = data.reportId;
611 $log.error("raptorReportFactory: getDefinitionInSession failed."); });
614 if ($scope.stepNum>1){
615 $scope.unhideAllOtherTabs();
621 var selectedTabPanelElement = document.getElementById($scope.gTabs[selectedTab].tabPanelId);
624 if (selectedTabPanelElement) {
625 elem = DOMHelper.firstTabableElement(selectedTabPanelElement);
629 $timeout(function () {
637 $scope.renderStep = function(stepNum){
638 var containerElement = angular.element(document.getElementById("stepView"));
639 containerElement.empty();
640 $scope.stepNum = stepNum;
641 var jsonSrcName = getJsonSrcName(stepNum);
642 stepFormFactory.renderForm(jsonSrcName, containerElement, $scope);
645 // initialize the page at step 1;
646 $scope.renderStep(1);
648 // create a message to display in our view
649 $scope.allProjects = [];
650 if(!$routeParams.step && $routeParams.step == "") $routeParams.step = 1;
651 if($routeParams.proj && $routeParams.proj > 0)
652 $scope.projid = $routeParams.proj;
653 if($routeParams.step)
654 $scope.stepNum = $routeParams.step;
658 $scope.jsonSrcName = getJsonSrcName($scope.stepNum);
660 $scope.selectAction = function () {
661 var containerElement = angular.element(document.getElementById("stepView"));
662 containerElement.empty();
663 $scope.project_name = this.prj.projectName;
665 var stepNum = $scope.stepNum;
666 var jsonSrcName = getJsonSrcName(stepNum);
667 stepFormFactory.renderForm(jsonSrcName, containerElement, $scope);
668 renderProject(this.prj.id, 1);
672 $scope.createAction = function () {
673 var containerElement = angular.element(document.getElementById("stepView"));
674 containerElement.empty();
676 var stepNum = $scope.stepNum;
677 $scope.jsonSrcName = "app/fusion/scripts/DS2-view-models/ds2-reports/wz_steps/json/step"+$scope.stepNum +".json";
678 var jsonSrcName = $scope.jsonSrcName;
679 stepFormFactory.renderForm(jsonSrcName, containerElement, $scope);
682 // select current project
683 renderProject = function (proj_id, stepNum) {
684 var userSelectedPrjId = proj_id;
687 url: 'get_selected_project_data',
688 params:{'selectedPrjId':userSelectedPrjId, 'step': stepNum}
689 }).then(function successCallback(response) {
690 var selectedproject = response.data;
691 $scope.projid = userSelectedPrjId;
692 //$scope.allProjects = projectLists;
693 //$location.path('/'+userSelectedPrjId+'/'+stepNum);
694 var div = d3.select("#stepView");
695 div.select("[name='proj_id']").text(userSelectedPrjId);
696 div.select("[name='proj_id']").property("value", userSelectedPrjId);
697 d3.select("[name='project_id']").property("value", userSelectedPrjId);
698 var h3Text = div.select("h3").text();
699 div.select("h3").text($scope.project_name+ " - " + h3Text);
700 for (var key in selectedproject) {
701 if (selectedproject.hasOwnProperty(key)) {
702 var val = selectedproject[key];
703 var formElement = d3.selectAll("[name='" + key + "']");
704 if(formElement[0].length > 0)
705 console.log(formElement.attr("type"));
706 if(formElement[0].length > 0 && formElement.attr("type") === "radio") {
707 var formRadio = d3.selectAll("[id='" + key +"_"+val + "']");
708 formRadio.property('checked', true);
710 if(formElement[0].length > 0 && formElement.property("type") === "textarea") {
711 div.select("textarea[name='" + key +"']").property('value', val);
713 if(formElement[0].length > 0 && formElement.attr("type") === "text") {
714 var formText = d3.selectAll("[name='" + key + "']");
715 formText.property("value", val);
717 if(formElement[0].length > 0 && formElement.html().startsWith("<option")) {
718 var formSelect = d3.selectAll("[name='" + key + "']");
720 var checkOption = function (e) {
722 return formSelect.property("selectedIndex", e.index );
726 formSelect.selectAll("option").forEach(function(d) {d.forEach(function(optionD) { console.log(optionD);checkOption(optionD); }) });
729 if(formElement[0].length == 0) {
731 if( Object.prototype.toString.call( val ) === '[object Array]' ) {
732 val.forEach(function(d){
733 for (var keyCheck in d) {
734 if (d.hasOwnProperty(keyCheck)) {
735 var valCheck = d[keyCheck];
736 var formCheck = d3.selectAll("[name='" + key + "_"+keyCheck + "']");
737 if(valCheck === true)
738 formCheck.property('checked', true);
744 var formElementOther = d3.selectAll("[name='" + key + "_"+ val + "']");
745 if(formElementOther[0].length > 0 && formElementOther.attr("type") === "checkbox") {
746 var formCheckbox = d3.selectAll("[name='" + key +"_"+val + "']");
747 formRadio.property('checked', true);
759 $scope.submit = function(){
760 let defer = $q.defer();
762 var div = d3.select("#stepView");
763 var jsonSrcName = $scope.jsonSrcName;
764 var stepNum = $scope.stepNum;
769 }).then(function successCallback(response) {
770 var json = response.data;
771 var step = json.step;
773 var sections = json.content.sections;
774 sections.forEach(function(d, i) {
775 var elements = d.elements;
777 //elements.forEach(function(element, elementIndex) {
779 values += "\"step\""+ ":\"" + step + "\",";
780 values += "\"proj_id\""+ ":\"" + d3.select('input[name="project_id"]').property("value") + "\",";
782 for (elementIndex = 0; elementIndex < elements.length; elementIndex++) {
783 var element = elements[elementIndex];
785 if(elementIndex > 0) values += ",";
786 values += "\""+element.name +"\""+ ":" ;
787 if(element.input === "hidden") {
788 values += "\""+div.select('input[name="'+element.name+'"]').property("value") +"\"";
790 if(element.input === "radio") {
791 values += "\""+ div.select('input[name="'+element.name+'"]:checked').property("value") +"\"";
793 if(element.input === "checkbox") {
794 var checkOptions = element.options;
796 checkOptions.forEach(function(d, i) {
797 // if(document.getElementById("'"+element.name+"_"+d.id+"'") != null)
798 values += "\""+d.id+"\""+ ":" + div.select('input[name="'+element.name+"_"+d.id+'"]').property("checked") ;
799 if(i<checkOptions.length-1) {
805 if(element.input === "text") {
806 values += "\""+div.select('input[name="'+element.name+'"]').property("value") +"\"";
808 if(element.input === "textarea") {
809 values += "\""+div.select('textarea[name="'+element.name+'"]').node().value +"\"";
811 if(element.input === "select") {
812 values += "\""+ div.select('select[name="'+element.name+'"]').property("value") + "\"";
820 var valueJSON = JSON.parse(values);
821 var valueStr = JSON.stringify(valueJSON, null, 4);
822 $http({method:'POST', url:'save_steps', data: jsonSrcName, params:{'result' : valueStr, 'proj_id' : values.proj_id}}).success(function(data, status) {
823 if(data.project_name)
824 $scope.project_name = data.project_name;
825 div.select("[name='proj_id']").property("value", data.proj_id);
826 d3.select("[name='project_id']").property("value", data.proj_id);
827 //$scope.projid = data.proj_id;
828 valueStr=JSON.stringify(data, null, 4);
830 //stepNum = Number(stepNum || 0)+1;
831 //document.getElementById('itestframe').src = data;
838 // $location.path('/step'+($scope.stepNum+1));
839 return defer.promise;
844 $scope.save = function() {
845 if ($scope.stepNum ==1) {
846 updateDefinitionData();
851 $scope.next = function(){
852 if ($scope.stepNum ==1) {
853 updateDefinitionData();
855 $scope.stepNum = $scope.stepNum +1;
856 $scope.activeTabsId = $scope.gTabs[$scope.stepNum-1].id;
860 $scope.previous = function(){
861 $scope.stepNum = $scope.stepNum -1;
862 $scope.activeTabsId = $scope.gTabs[$scope.stepNum-1].id;
866 $scope.$on('RefreshInsession', function(event) {
867 $scope.isEdit = true;
868 $scope.reportId = -1;
869 $scope.getDefinitionById(-1);
872 $scope.$on('RefreshFormField', function(event) {
873 raptorReportFactory.getFormFieldList().then(function(data){
874 $scope.formFieldData = data;
876 $log.error("raptorReportFactory: get formfields failed.");
880 $scope.$on('RefreshColumnList', function(event) {
881 raptorReportFactory.getColumnList().then(function(data){
882 $scope.colTableRowData = data;
884 $log.error("raptorReportFactory: get column list failed.");
888 $scope.getAllProjects = function(){
892 }).then(function successCallback(response) {
893 var projectLists = response.data;
894 $scope.allProjects = projectLists;