a73d26a5507a2b80309da9fc7f0c78059b2c62b1
[portal/sdk.git] /
1 import { Component, OnInit, Input, AfterViewInit } from '@angular/core';
2 import { HttpClient, HttpHeaders } from '@angular/common/http';
3 import { environment } from '../../../../../../environments/environment';
4 import { Router } from '@angular/router';
5 import { SqlService } from './sql.service';
6
7 @Component({
8   selector: 'app-sqlcomponent',
9   templateUrl: './sql.component.html',
10   styleUrls: ['./sql.component.css']
11 })
12 export class SQLComponent implements OnInit {
13
14   @Input("reportId") reportId1 : string;
15   @Input("reportMode") reportMode : string;
16
17
18   showSaveSQLDialog: boolean;
19   SQLPostResponse : any;
20   ValidatePostResponse : any;
21   showValidateSQLDialog : boolean;
22   SQLstatus : string;
23   Validatestatus : string;
24   SQLmessage : string;
25   Validatemessage : string;
26   sqlText : string;
27   showModal : boolean;
28   ValidateResponseString : string;
29
30   finalGetObj : any;
31   showSpinner : boolean;
32
33   @Input() SQLclosable = true;
34   @Input() Validateclosable = true;
35   
36
37   constructor(private _http : HttpClient, private _router : Router, private _sqlService : SqlService) { 
38     this.showSaveSQLDialog = false;
39     this.SQLPostResponse = true;
40     this.ValidatePostResponse = {};
41   }
42
43   ngOnInit() {
44     this.showSaveSQLDialog = false;
45     this.SQLPostResponse = true;
46     this.ValidatePostResponse = {};
47
48     this._sqlService.getSQLTabData(this.reportId1)
49     .subscribe((response) => {
50         this.showSpinner = true;
51
52         this.finalGetObj = response;
53         this.sqlText = this.finalGetObj.query;
54
55         this.showSpinner = false;
56     });
57   }
58
59
60   ngOnChanges()
61   {
62     this.showSaveSQLDialog = false;
63     this.SQLPostResponse = true;
64     this.ValidatePostResponse = {};
65
66     this._sqlService.getSQLTabData(this.reportId1)
67     .subscribe((response) => {
68         this.showSpinner = true;
69         this.finalGetObj = response;
70         this.sqlText = this.finalGetObj.query;
71
72         this.showSpinner = false;
73     });
74   }
75
76
77   saveSQL()
78   {
79
80     this.SQLPostResponse = true;
81
82   if(this.SQLPostResponse === true)
83   {
84     this.SQLstatus = "Success!";
85     this.SQLmessage = "Your change has been saved! Definition is updated.";
86       this.showSaveSQLDialog = !this.showSaveSQLDialog;
87       this.SQLclosable = true; 
88   }
89   else
90   {
91     this.SQLstatus = "Failure!";
92     this.SQLmessage = "Definition could not be updated.";
93       this.showSaveSQLDialog = !this.showSaveSQLDialog;
94       this.SQLclosable = true;
95   }
96 }
97
98
99
100 validate()
101 {
102   this._sqlService.postSQLValidateAndSave(this.sqlText)
103     .subscribe((response) => {
104       this.showSpinner = true;
105
106         this.ValidateResponseString = response["data"]["elements"];
107         this.SetValidateResponseString(this.ValidateResponseString);
108
109         this.ValidatePostResponse = JSON.parse(response["data"]["elements"]);
110         
111         if(this.ValidatePostResponse["query"] !== undefined)
112         {
113             this.showModal = true;
114             this.Validatestatus = "SQL Test Run - Executed!";
115             this.showValidateSQLDialog = !this.showValidateSQLDialog;
116             this.Validateclosable = true; 
117         }
118         else
119         {
120           this.showModal = false;
121             this.Validatestatus = "SQL Test Run - Failed!";
122             this.showValidateSQLDialog = !this.showValidateSQLDialog;
123             this.Validateclosable = true;
124         }
125         this.showSpinner = false;
126     });
127
128
129
130 }
131
132 closeSaveModal() {
133   this.showSaveSQLDialog = !this.showSaveSQLDialog;
134   this.SQLclosable = false;
135 }
136
137 closeValidateModal() {
138   if(this.reportMode === "Create")
139   {
140     if(this.Validatestatus == "SQL Test Run - Failed!")
141     {
142       this.sqlText = this.sqlText;
143     }
144     else
145     {
146     this._http.get(environment.baseUrl + "report/wizard/retrieve_def_tab_wise_data/InSession")
147     .subscribe((response) => {
148
149       console.log(response);
150
151       this._router.navigate(["v2/reports", "Edit",response["reportId"]]); 
152       });
153     }
154   }
155   this.showValidateSQLDialog = !this.showValidateSQLDialog;
156   this.Validateclosable = false;
157 }
158
159 SetValidateResponseString(ValidateResponseString1 : string)
160 {
161   this.ValidateResponseString = ValidateResponseString1;
162 }
163
164 GetValidateResponseString()
165 {
166   return this.ValidateResponseString;
167 }
168
169 }