Skip to content

Commit 9a55954

Browse files
author
Olga Davydova
committed
QQL AI generation improvements added (front-end)
1 parent 2f20cf9 commit 9a55954

File tree

10 files changed

+189
-202
lines changed

10 files changed

+189
-202
lines changed
Lines changed: 20 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,5 @@
11
<div class="page-block">
2-
<div class="toggle-button-container">
3-
<label for="toggle-button" class="toggle-button-label" [class.active]="!ddlIsUsing">QQL</label>
4-
<input type="checkbox" [checked]="ddlIsUsing" id="toggle-button" class="toggle-button" (click)="toggleDDL()">
5-
<label for="toggle-button" class="toggle-button-label" [class.active]="ddlIsUsing">DDL</label>
6-
</div>
7-
<form *ngIf="ddlIsUsing">
8-
<label>Describe desired stream content</label>
9-
<textarea [formControl]="inputDDL"></textarea>
10-
<button (click)="generate()" [disabled]="isLoading || !inputDDL.value"
11-
class="btn btn-primary">
12-
<span>{{ isLoading ? 'Generating...' : 'Generate DDL' }} </span>
13-
</button>
14-
<div class="output-and-error">
15-
<div class="error-or-warning"
16-
[class.visible]="(responceCame && ddlErrorMessage) || resultDDLNotValid">
17-
<div *ngIf="responceCame && ddlErrorMessage" class="error-message">
18-
Error: {{ ddlErrorMessage }}
19-
</div>
20-
<div class="warning-message" *ngIf="resultDDLNotValid && !ddlErrorMessage">
21-
{{ warningMessage }}
22-
</div>
23-
</div>
24-
<textarea readonly [value]="resultDDL" class="output"></textarea>
25-
</div>
26-
<div class="preloader" [ngStyle]="{'visibility': isLoading ? 'visible' : 'hidden' }">
27-
<div class="lds-dual-ring" [class.loader-visible]="isLoading"></div>
28-
</div>
29-
<button (click)="openQueryEditor(true)" class="btn btn-primary"
30-
[disabled]="!resultDDL || (responceCame && ddlErrorMessage)">
31-
<ng-container *ngTemplateOutlet="shareIcon"></ng-container>
32-
<span class="open-query-editor-button-text">Open query editor</span>
33-
</button>
34-
</form>
35-
36-
<form *ngIf="!ddlIsUsing" [formGroup]="form">
2+
<form [formGroup]="form">
373
<div class="stream-input-container">
384
<label class="select-stream-label">Select stream(s)</label>
395
<ng-multiselect-dropdown
@@ -46,28 +12,36 @@
4612
</ng-multiselect-dropdown>
4713
</div>
4814
<label class="qql-query-label">Describe desired query or goal</label>
49-
<textarea [formControl]="inputQQL" class="qql-input"></textarea>
50-
<button (click)="generate()" [disabled]="isLoading || !inputQQL.value || !selectedStreamList.value.length"
15+
<textarea [formControl]="inputQuery" class="qql-input"></textarea>
16+
<button *ngIf="!isLoading" (click)="generate()" [disabled]="isLoading || !inputQuery.value"
5117
class="btn btn-primary">
52-
<span>{{ isLoading ? 'Generating...' : 'Generate QQL' }} </span>
18+
<span>Generate</span>
5319
</button>
20+
<button *ngIf="isLoading" (click)="stopGeneration()" [disabled]="!isLoading"
21+
class="btn btn-primary">
22+
<span>Stop Response Generation</span>
23+
</button>
24+
5425
<div class="output-and-error">
5526
<div class="error-or-warning"
56-
[class.visible]="(responceCame && qqlErrorMessage) || resultQQLNotValid">
27+
[class.visible]="(responceCame && qqlErrorMessage)">
5728
<div *ngIf="responceCame && qqlErrorMessage" class="error-message">
5829
Error: {{ qqlErrorMessage }}
5930
</div>
60-
<div class="warning-message" *ngIf="resultQQLNotValid && !qqlErrorMessage">
31+
<div class="warning-message" *ngIf="!qqlErrorMessage">
6132
{{ warningMessage }}
6233
</div>
6334
</div>
64-
<textarea readonly [value]="resultQQL" class="output"></textarea>
65-
</div>
66-
<div class="preloader" [ngStyle]="{'visibility': isLoading ? 'visible' : 'hidden' }">
67-
<div class="lds-dual-ring" [class.loader-visible]="isLoading"></div>
35+
<div class="output" [class.unfinished]="isLoading" [class.error]="qqlErrorMessage">
36+
<span *ngIf="isLoading" class="loading-dots"></span>
37+
<ng-container *ngIf="resultStatus">
38+
<span>{{ resultStatus }}</span><br>
39+
</ng-container>
40+
<span>{{ resultQuery }}</span>
41+
</div>
6842
</div>
6943
<button (click)="openQueryEditor()" class="btn btn-primary"
70-
[disabled]="!resultQQL || (responceCame && qqlErrorMessage)">
44+
[disabled]="!resultQuery || (responceCame && qqlErrorMessage)">
7145
<ng-container *ngTemplateOutlet="shareIcon"></ng-container>
7246
<span class="open-query-editor-button-text">Open query editor</span>
7347
</button>
@@ -95,4 +69,4 @@
9569
transform="translate(0,1036.3622)"/>
9670
</g>
9771
</svg>
98-
</ng-template>
72+
</ng-template>

web/frontend/src/app/pages/generate-ddl/generate-ddl.component.scss

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@import '~src/app/core/styles/variables';
1+
@import 'src/app/core/styles/_variables';
22

33
textarea {
44
display: block;
@@ -17,6 +17,13 @@ textarea {
1717
@extend textarea;
1818
margin: 0rem;
1919
height: 22vh;
20+
overflow: auto;
21+
&.unfinished {
22+
color: rgba(245, 245, 245, 0.7);
23+
}
24+
&.error {
25+
color: #c33f67ed;
26+
}
2027
}
2128

2229
.output-and-error {
@@ -33,7 +40,7 @@ button {
3340
padding: 0.3rem 0.6rem;
3441
text-transform: uppercase;
3542
margin: 1rem auto;
36-
width: 13rem;
43+
width: 17rem;
3744
}
3845

3946
.loader {
@@ -113,7 +120,7 @@ form {
113120
}
114121

115122
.error-or-warning {
116-
height: 3.5rem;
123+
height: 2.5rem;
117124
overflow: hidden;
118125
visibility: hidden;
119126
margin-bottom: 0.3rem;
@@ -124,7 +131,6 @@ form {
124131
padding: 0.5rem 1rem;
125132
border-radius: 0.3rem;
126133
text-overflow: ellipsis;
127-
height: 100%;
128134
}
129135

130136
.warning-message {
@@ -223,4 +229,28 @@ ng-multiselect-dropdown {
223229

224230
.open-query-editor-button-text {
225231
margin-left: 0.7rem;
226-
}
232+
}
233+
234+
.loading-dots:after {
235+
content: ' .';
236+
display: inline-block;
237+
width: 1.9rem;
238+
font-weight: 800;
239+
color: rgba(245, 245, 245, 0.7);
240+
animation: dots 1s steps(5, end) infinite;
241+
}
242+
243+
@keyframes dots {
244+
0%, 20% {
245+
content: ' .';
246+
}
247+
40% {
248+
content: ' . .';
249+
}
250+
60% {
251+
content: ' . . .';
252+
}
253+
80%, 100% {
254+
content: ' . . .';
255+
}
256+
}

0 commit comments

Comments
 (0)