From 4bef8226bb803666d11a2cbe468a1bd1dcd78958 Mon Sep 17 00:00:00 2001
From: Guillaume Heurtier <guillaume.heurtier@maarch.org>
Date: Wed, 7 Oct 2020 15:22:38 +0200
Subject: [PATCH] FIX #15029 TIME 2:00 remove check on header + added spinner
 when saving doc in admin

---
 .../controllers/CollaboraOnlineController.php        | 12 ------------
 .../template-file-editor-modal.component.html        |  5 ++++-
 .../template-file-editor-modal.component.ts          |  4 ++++
 3 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/src/app/contentManagement/controllers/CollaboraOnlineController.php b/src/app/contentManagement/controllers/CollaboraOnlineController.php
index ca87b90fd7d..e380cd97a4d 100644
--- a/src/app/contentManagement/controllers/CollaboraOnlineController.php
+++ b/src/app/contentManagement/controllers/CollaboraOnlineController.php
@@ -171,18 +171,6 @@ class CollaboraOnlineController
 
     public function saveFile(Request $request, Response $response, array $args)
     {
-        $headers = $request->getHeaders();
-
-        // Collabora online saves automatically every X seconds, but we do not want to save the document yet
-        if (empty($headers['HTTP_X_LOOL_WOPI_EXTENDEDDATA'][0])) {
-            return $response->withStatus(200);
-        }
-        $extendedData = $headers['HTTP_X_LOOL_WOPI_EXTENDEDDATA'][0];
-        $extendedData = explode('=', $extendedData);
-        if (empty($extendedData) || $extendedData[0] != 'FinalSave' || $extendedData[1] != 'True') {
-            return $response->withStatus(200);
-        }
-
         $queryParams = $request->getQueryParams();
 
         if (!Validator::stringType()->notEmpty()->validate($queryParams['access_token'])) {
diff --git a/src/frontend/app/administration/template/templateFileEditorModal/template-file-editor-modal.component.html b/src/frontend/app/administration/template/templateFileEditorModal/template-file-editor-modal.component.html
index 7e5ccf401eb..c66dff30e4d 100644
--- a/src/frontend/app/administration/template/templateFileEditorModal/template-file-editor-modal.component.html
+++ b/src/frontend/app/administration/template/templateFileEditorModal/template-file-editor-modal.component.html
@@ -1,5 +1,8 @@
 <div class="mat-dialog-content-container">
     <mat-dialog-content style="padding: 0px;">
+        <div class="example-loading-shade" *ngIf="loading">
+            <mat-spinner></mat-spinner>
+        </div>
         <onlyoffice-viewer *ngIf="editorType === 'onlyoffice'" #onlyofficeViewer style="height:100%;width:100%;" [hideCloseEditor]="true"
             [params]="editorOptions" [file]="file" [editMode]="true" (triggerAfterUpdatedDoc)="close()"
             (triggerCloseEditor)="dialogRef.close('');" (triggerModifiedDocument)="documentIsModified = true"></onlyoffice-viewer>
@@ -10,7 +13,7 @@
     <span class="divider-modal"></span>
     <div mat-dialog-actions class="actions">
         <button mat-raised-button mat-button color="primary"
-            (click)="close()" [disabled]="!documentIsModified">{{'lang.validate' | translate}}</button>
+            (click)="close()" [disabled]="!documentIsModified || loading">{{'lang.validate' | translate}}</button>
         <button mat-raised-button mat-button [disabled]="loading" [mat-dialog-close]="">{{'lang.cancel' | translate}}</button>
     </div>
 </div>
diff --git a/src/frontend/app/administration/template/templateFileEditorModal/template-file-editor-modal.component.ts b/src/frontend/app/administration/template/templateFileEditorModal/template-file-editor-modal.component.ts
index 16c22661f99..1d4456c781e 100755
--- a/src/frontend/app/administration/template/templateFileEditorModal/template-file-editor-modal.component.ts
+++ b/src/frontend/app/administration/template/templateFileEditorModal/template-file-editor-modal.component.ts
@@ -30,10 +30,12 @@ export class TemplateFileEditorModalComponent implements OnInit {
     }
 
     close() {
+        this.loading = true;
         if (this.editorType === 'onlyoffice') {
             this.onlyofficeViewer.getFile().pipe(
                 take(1),
                 tap((data: any) => {
+                    this.loading = false;
                     this.dialogRef.close(data);
                 })
             ).subscribe();
@@ -41,10 +43,12 @@ export class TemplateFileEditorModalComponent implements OnInit {
             this.collaboraOnlineViewer.getFile().pipe(
                 take(1),
                 tap((data: any) => {
+                    this.loading = false;
                     this.dialogRef.close(data);
                 })
             ).subscribe();
         } else {
+            this.loading = false;
             this.dialogRef.close();
         }
     }
-- 
GitLab