From 09dcc5ff0461f2419673317ba01118d4f34797c1 Mon Sep 17 00:00:00 2001 From: Alex ORLUC <alex.orluc@maarch.org> Date: Tue, 5 Nov 2019 14:59:24 +0100 Subject: [PATCH] FEAT #11698 TIME 0:20 add loader loadtmpfile --- rest/index.php | 4 +- .../app/viewer/document-viewer.component.ts | 65 ++++++++++++++----- 2 files changed, 51 insertions(+), 18 deletions(-) diff --git a/rest/index.php b/rest/index.php index eab581e838f..2167f131108 100755 --- a/rest/index.php +++ b/rest/index.php @@ -214,8 +214,8 @@ $app->get('/groups/{id}/details', \Group\controllers\GroupController::class . ': $app->get('/groups/{id}/indexing', \Group\controllers\GroupController::class . ':getIndexingInformationsById'); $app->put('/groups/{id}/indexing', \Group\controllers\GroupController::class . ':updateIndexingInformations'); $app->put('/groups/{id}/reassign/{newGroupId}', \Group\controllers\GroupController::class . ':reassignUsers'); -$app->post('/groups/{id}/add/{privilegeId}', \Group\controllers\ServiceController::class . ':addPrivilege'); -$app->delete('/groups/{id}/remove/{privilegeId}', \Group\controllers\ServiceController::class . ':removePrivilege'); +$app->post('/groups/{id}/privileges/{privilegeId}', \Group\controllers\ServiceController::class . ':addPrivilege'); +$app->delete('/groups/{id}/privileges/{privilegeId}', \Group\controllers\ServiceController::class . ':removePrivilege'); //Histories $app->get('/histories', \History\controllers\HistoryController::class . ':get'); diff --git a/src/frontend/app/viewer/document-viewer.component.ts b/src/frontend/app/viewer/document-viewer.component.ts index a939aeb960a..945ba955b31 100644 --- a/src/frontend/app/viewer/document-viewer.component.ts +++ b/src/frontend/app/viewer/document-viewer.component.ts @@ -115,24 +115,31 @@ export class DocumentViewerComponent implements OnInit { } loadTmpFile(filenameOnTmp: string) { - this.http.get(`../../rest/convertedFile/${filenameOnTmp}`, { params: { convert: 'true'}}).pipe( - tap((data: any) => { - this.file = { - name: filenameOnTmp, - format: data.extension, - type: data.type, - content: data.encodedResource, - src: this.base64ToArrayBuffer(data.encodedConvertedResource) - }; - this.editMode = true; - this.noConvertedFound = false; - this.loading = false; - }), - catchError((err: any) => { + this.loading = true; + this.loadingInfo.mode = 'determinate'; + + this.requestWithLoader(`../../rest/convertedFile/${filenameOnTmp}?convert=true`).subscribe( + (data: any) => { + if (data.encodedResource) { + this.file = { + name: filenameOnTmp, + format: data.extension, + type: data.type, + content: data.encodedResource, + src: this.base64ToArrayBuffer(data.encodedConvertedResource) + }; + this.editMode = true; + this.noConvertedFound = false; + this.loading = false; + } + }, + (err: any) => { + this.noConvertedFound = true; this.notify.handleErrors(err); + this.loading = false; return of(false); - }) - ).subscribe(); + } + ); } uploadTrigger(fileInput: any) { @@ -278,6 +285,32 @@ export class DocumentViewerComponent implements OnInit { ); } + requestWithLoader(url: string) { + this.loadingInfo.percent = 0; + + return this.http.get<any>(url, { + reportProgress: true, + observe: 'events' + }).pipe(map((event) => { + switch (event.type) { + case HttpEventType.DownloadProgress: + + const downloadProgress = Math.round(100 * event.loaded / event.total); + this.loadingInfo.percent = downloadProgress; + this.loadingInfo.mode = 'determinate'; + this.loadingInfo.message = ``; + + return { status: 'progressDownload', message: downloadProgress }; + + case HttpEventType.Response: + return event.body; + default: + return `Unhandled event: ${event.type}`; + } + }) + ); + } + onError(error: any) { console.log(error); -- GitLab