-
Vueillez rentrer le contenu du Script :
+
Veuillez rentrer le contenu du Script :
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 7306175..8815cab 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -31,6 +31,8 @@ import { EditScriptComponent } from './edit-script/edit-script.component';
import { TagsManagementComponent } from './tags-management/tags-management.component';
import { NgMultiSelectDropDownModule } from 'ng-multiselect-dropdown';
import { CdkAccordionModule } from '@angular/cdk/accordion';
+import { Clipboard, ClipboardModule } from '@angular/cdk/clipboard';
+
@NgModule({
@@ -65,7 +67,8 @@ import { CdkAccordionModule } from '@angular/cdk/accordion';
MatDialogModule,
MatProgressSpinnerModule,
NgMultiSelectDropDownModule,
- CdkAccordionModule
+ CdkAccordionModule,
+ ClipboardModule
],
providers: [EmployeeService],
diff --git a/src/app/create-joins-page/create-joins-page.component.html b/src/app/create-joins-page/create-joins-page.component.html
index 6f5a16a..7511cb6 100644
--- a/src/app/create-joins-page/create-joins-page.component.html
+++ b/src/app/create-joins-page/create-joins-page.component.html
@@ -18,7 +18,8 @@
-
Résultat de la requête :
-
+
+
Résultat de la requête :
+
+
+
+
-
SELECT * FROM {{baseSchema}}.{{baseTableName}} AS {{baseTableNameLowerCase}}
+
{{newRequestData}}
+
+
diff --git a/src/app/create-joins-page/create-joins-page.component.ts b/src/app/create-joins-page/create-joins-page.component.ts
index 6cdb605..6958bd0 100644
--- a/src/app/create-joins-page/create-joins-page.component.ts
+++ b/src/app/create-joins-page/create-joins-page.component.ts
@@ -10,6 +10,9 @@ import { Alias } from '../model/alias';
import { WhereCardComponent } from '../where-card/where-card.component';
import { Condition } from '../model/condition';
import { ColumnData } from '../model/column-data';
+import { ClipboardModule } from '@angular/cdk/clipboard';
+import { MatIconRegistry } from '@angular/material/icon';
+import { DomSanitizer } from '@angular/platform-browser';
@Component({
selector: 'app-create-joins-page',
@@ -42,12 +45,19 @@ export class CreateJoinsPageComponent implements OnInit, AfterViewInit{
passTable: String = "";
baseAlias: Alias | undefined;
memoAlias: Alias | undefined;
- conditionData: Condition[] = []
+ conditionData: Condition[] = [];
+ newRequestData: string = "SELECT * FROM";
constructor(
private infoColumnService: InfoColumnService,
- private infoTableService: InfoTableService
- ){}
+ private infoTableService: InfoTableService,
+ private clipboard: ClipboardModule,
+ private matIconRegistry: MatIconRegistry,
+ private domSanitizer: DomSanitizer
+ ){
+ this.matIconRegistry.addSvgIcon('copy', this.domSanitizer.bypassSecurityTrustResourceUrl('../../assets/svg/copy.svg'))
+
+ }
ngAfterViewInit(): void {
}
@@ -57,6 +67,29 @@ export class CreateJoinsPageComponent implements OnInit, AfterViewInit{
this.requestInfoJoin.push(new JoinsTableComponent(this.infoColumnService, this.infoTableService));
}
+ public refreshRequestData(){
+ this.newRequestData = "SELECT * FROM";
+ this.newRequestData += ` ${this.baseSchema}.${this.baseTableName} AS ${this.baseTableNameLowerCase}`;
+
+ for (let i = 0; i < this.allData.length; i++) {
+ const join: Join = this.allData[i];
+ this.newRequestData += `
+ ${join.joinSpec} ${join.specificSchema}.${join.specificTable} AS ${join.aliasSpecificTable}`;
+
+ for (let j = 0; j < join.columns.length; j++) {
+ const allCol = join.columns[j];
+ this.newRequestData += `
+ ${allCol.operator} ${join.baseAlias}.${allCol.aliasColumn}=${join.aliasSpecificTable}.${allCol.specColumn}`;
+ }
+ }
+
+ for (let i = 0; i < this.conditionData.length; i++) {
+ const cond: Condition = this.conditionData[i];
+ this.newRequestData += `
+ ${cond.operator} ${cond.alias}.${cond.column} ${cond.condition} ${cond.value}`;
+ }
+ }
+
public getSchemas():void {
this.infoTableService.getSchemas().subscribe(
(response : String[]) => {
@@ -74,6 +107,7 @@ export class CreateJoinsPageComponent implements OnInit, AfterViewInit{
(response : InfoTable[]) => {
this.tablesByBaseSchemaAll = response;
this.divideTablesAndViews();
+ this.refreshRequestData();
},
(error: HttpErrorResponse) => {
alert(error.message)
@@ -125,6 +159,7 @@ export class CreateJoinsPageComponent implements OnInit, AfterViewInit{
this.aliasData.shift();
this.aliasData.unshift(this.baseAlias);
}
+ this.refreshRequestData();
}
public addTable(){
@@ -196,6 +231,7 @@ export class CreateJoinsPageComponent implements OnInit, AfterViewInit{
}
this.checkLength();
this.aliasData = [...this.aliasData]
+ this.refreshRequestData();
}
public checkLength(){
@@ -374,7 +410,7 @@ export class CreateJoinsPageComponent implements OnInit, AfterViewInit{
});
}
this.aliasData = [...this.aliasData];
-
+ this.refreshRequestData();
}
public removeWhereCard(i: number){
@@ -385,6 +421,7 @@ export class CreateJoinsPageComponent implements OnInit, AfterViewInit{
if(this.conditionData[0]){
this.conditionData[0].operator = "WHERE";
}
+ this.refreshRequestData();
}
public getConditionData(event: String[], index: number){
@@ -400,6 +437,7 @@ export class CreateJoinsPageComponent implements OnInit, AfterViewInit{
} else {
this.conditionData.push(tempCondition);
}
+ this.refreshRequestData();
}
public checkValue(event: any){
diff --git a/src/app/joins-page/joins-page.component.html b/src/app/joins-page/joins-page.component.html
index 81ed982..a417d6b 100644
--- a/src/app/joins-page/joins-page.component.html
+++ b/src/app/joins-page/joins-page.component.html
@@ -57,7 +57,16 @@