Skip to content

Commit 98cfda0

Browse files
frontend: small changes, fixed bugs
1 parent 88b6c6c commit 98cfda0

File tree

8 files changed

+83
-31
lines changed

8 files changed

+83
-31
lines changed

frontend/angular.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"src/styles.css",
3232
"node_modules/primeicons/primeicons.css",
3333
"node_modules/primeng/resources/themes/saga-blue/theme.css",
34-
"node_modules/primeng/resources/primeng.min.css"
34+
"node_modules/primeng/resources/primeng.css"
3535
],
3636
"scripts": [
3737
"node_modules/js-base64/base64.js",

frontend/proxy.conf.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"/api/bs": {
3-
"target": "http://127.0.0.1:8080/api",
3+
"target": "http://127.0.0.1:8810/api",
44
"secure": false,
55
"logLevel": "debug",
66
"pathRewrite": {

frontend/src/app/app.module.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {ProgressBarModule} from "primeng/progressbar";
1616
import {FileUploadModule} from "primeng/fileupload";
1717
import {ToastModule} from "primeng/toast";
1818
import {MessageService} from "primeng/api";
19+
import {ToolbarModule} from "primeng/toolbar";
1920

2021
@NgModule({
2122
declarations: [
@@ -28,7 +29,7 @@ import {MessageService} from "primeng/api";
2829
BrowserAnimationsModule,
2930
HttpClientModule,
3031
AppRoutingModule,
31-
ToastModule,
32+
ToastModule, ToolbarModule,
3233
DialogModule, ProgressBarModule, FileUploadModule,
3334
TableModule, ButtonModule, RippleModule, TooltipModule
3435
],

frontend/src/app/components/start/start.component.html

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,37 @@
1-
<p-table #dt
2-
[value]="containers"
1+
<p-toolbar>
2+
<div class="p-toolbar-group-left">
3+
<p-button icon="pi pi-plus"
4+
(click)="showUpload()" pTooltip="Upload new file" tooltipPosition="bottom"
5+
styleClass="p-button-success"></p-button>
6+
7+
<i class="pi pi-bars"></i>
8+
9+
<p-button icon="pi pi-trash" [disabled]="selected == null"
10+
(click)="remove()" pTooltip="Remove file" tooltipPosition="bottom"
11+
styleClass="p-button-danger"></p-button>
12+
</div>
13+
</p-toolbar>
14+
15+
<p-table [value]="containers"
316
selectionMode="single" [selection]="selected" (onRowSelect)="onRowSelect($event)"
417
[scrollable]="true" [scrollHeight]="'calc(100vh - 150px)'">
5-
<ng-template pTemplate="caption">
6-
<div class="p-d-flex">
7-
<button type="button" pButton icon="pi pi-plus"
8-
(click)="showUpload()" class="p-mr-2" pTooltip="Upload new file" tooltipPosition="bottom"></button>
9-
<button type="button" pButton icon="pi pi-trash" [disabled]="selected == null"
10-
(click)="remove()" class="p-button-warning p-mr-2" pTooltip="Remove file" tooltipPosition="bottom"></button>
11-
</div>
12-
</ng-template>
13-
1418
<ng-template pTemplate="header">
1519
<tr>
1620
<th>Name</th>
21+
<th>Lease State</th>
22+
<th>Lease Status</th>
23+
<th>Last Modified</th>
24+
<th>ETag</th>
1725
</tr>
1826
</ng-template>
1927

2028
<ng-template pTemplate="body" let-container>
2129
<tr [pSelectableRow]="container">
22-
<td>{{container}}</td>
30+
<td><a href="#" (click)="open($event, container)">{{container.name}}</a></td>
31+
<td>{{container.leaseState}}</td>
32+
<td>{{container.leaseStatus}}</td>
33+
<td>{{container.lastModified}}</td>
34+
<td>{{container.etag}}</td>
2335
</tr>
2436
</ng-template>
2537
</p-table>

frontend/src/app/components/start/start.component.ts

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {FilesService} from "../../services/files.service";
33
import * as uuid from "uuid";
44
import {UploadFileComponent} from "../upload-file/upload-file.component";
55
import {MessageService} from "primeng/api";
6+
import {Container} from "../../utils/Container";
67

78
@Component({
89
selector: 'app-start',
@@ -11,8 +12,8 @@ import {MessageService} from "primeng/api";
1112
})
1213
export class StartComponent implements OnInit {
1314
idContainer: string = "";
14-
containers: any[] = [];
15-
selected: any;
15+
containers: Container[] = [];
16+
selected: Container;
1617

1718
@ViewChild(UploadFileComponent, { static: false }) uploaderCmp;
1819

@@ -29,9 +30,8 @@ export class StartComponent implements OnInit {
2930
}
3031

3132
async remove() {
32-
const code = this.selected;
33+
const code = this.selected.name;
3334
const listOfFiles: any = await this.filesService.listOfFilesInContainer(code);
34-
console.log("ListOfBlobs", listOfFiles);
3535

3636
for(const i in listOfFiles) {
3737
const idFile = listOfFiles[i];
@@ -48,9 +48,31 @@ export class StartComponent implements OnInit {
4848

4949
async onRowSelect(data: any) {
5050
this.selected = data.data;
51-
const code = this.selected;
51+
const code = this.selected.name;
5252
const listOfFiles: any = await this.filesService.listOfFilesInContainer(code);
53-
console.log("onRowSelect", data, listOfFiles);
53+
const url = (listOfFiles.length > 0) ? await this.filesService.getStorageLink(code, listOfFiles[0]) : "";
54+
55+
console.log("onRowSelect", data, listOfFiles, url);
56+
}
57+
58+
async open(event, row: Container) {
59+
const code = row.name;
60+
const listOfFiles: any = await this.filesService.listOfFilesInContainer(code);
61+
const url = (listOfFiles.length > 0) ? await this.filesService.getStorageLink(code, listOfFiles[0]) : "";
62+
63+
//this._loading = true;
64+
(event as MouseEvent).preventDefault();
65+
if (url != "") window.open(""+ url, "_blank")
66+
// this.dataService.getLink(this.idProject, id)
67+
// .pipe(finalize(() => this._loading = false))
68+
// .subscribe(
69+
// data => {
70+
// window.open(data, '_blank');
71+
// },
72+
// error => {
73+
// this.messageService.showMessage(error, 'Error receiving data');
74+
// }
75+
// );
5476
}
5577

5678
fileUploadSuccess(data: any) {

frontend/src/app/services/files.service.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {HttpClient, HttpHeaders} from "@angular/common/http";
33
import {Observable} from "rxjs";
44
import {MessageService} from "primeng/api";
55
import {UIUtils} from "../utils/Utils";
6+
import {Container} from "../utils/Container";
67

78
@Injectable({
89
providedIn: 'root'
@@ -15,6 +16,7 @@ export class FilesService {
1516
return this.http.get<any>('/api/bs/')
1617
.toPromise()
1718
.catch((error) => { this.messageService.add(UIUtils.getMessageVar(error)); })
19+
.then(res => <Container[]>res)
1820
.then(data => { return data; });
1921
}
2022

@@ -49,8 +51,11 @@ export class FilesService {
4951
.catch((error) => { this.messageService.add(UIUtils.getMessageVar(error)); });
5052
}
5153

52-
getStorageLink(iddoc: string, id: string): Observable<string> {
53-
return this.http.get(`/api/bs/${iddoc}/files/${id}/link`, {responseType: 'text'});
54+
getStorageLink(iddoc: string, id: string) {
55+
return this.http.get(`/api/bs/${iddoc}/files/${id}/link`, {responseType: 'text'})
56+
.toPromise()
57+
.catch((error) => { this.messageService.add(UIUtils.getMessageVar(error)); })
58+
.then(data => { return data; });
5459
}
5560

5661
beforeUpload(iddoc: string): Observable<string> {
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
export class Container {
2+
// Container name
3+
name: string;
4+
// BlobContainerItemProperties.leaseState
5+
leaseState?: string;
6+
// BlobContainerItemProperties.leaseStatus
7+
leaseStatus?: string;
8+
// BlobContainerItemProperties.lastModified
9+
lastModified?: string;
10+
// BlobContainerItemProperties.ETag
11+
etag?: string;
12+
}

frontend/src/app/utils/Utils.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,17 @@ export class UIUtils {
2323
return { severity: apiError.status === "error" ? 'error' : 'warn', summary: title || 'Error', detail: _message }
2424
} else {
2525
try {
26-
let _message: string = "<b>Status:</b> [" + error.status + "] " + error.statusText + " " + error.url + "<br /><b>Message:</b> " + error.message;
26+
let _message: string = `[${error.status}] \"${error.url}\": ${error.statusText}`;
27+
if (error.message) _message += `\nMessage: ${error.message}`;
2728
if (error.error) {
28-
if (error.error.exception) _message += "<br /><b>Exception: </b>" + error.error.exception;
29-
if (error.error.message) _message += "<br /><b>Detail message: </b>" + error.error.message;
30-
let _errors = error.error.errors;
31-
if (_errors) {
32-
_message += "<br /><b>Detail info:</b><ul>";
29+
if (error.error.exception) _message += `\nException: ${error.error.exception}`;
30+
if (error.error.message) _message += `\nAdditional: ${error.error.message}`;
31+
if (error.error.errors) {
32+
const _errors = error.error.errors;
33+
_message += "\nDetail: ";
3334
for (let _k in _errors) {
34-
_message += "<li>" + _errors[_k] + "</li>";
35+
_message += ", " + _errors[_k];
3536
}
36-
_message += "</ul>";
3737
}
3838
}
3939
return { severity: 'error', summary: title || 'Error', detail: _message }

0 commit comments

Comments
 (0)