From cf43701a05229ac45f88be94c987ea4a0a5ca59c Mon Sep 17 00:00:00 2001
From: Alex ORLUC <alex.orluc@maarch.org>
Date: Tue, 16 Jul 2019 10:02:33 +0200
Subject: [PATCH] FEAT #9305 TIME 0:10 chang exec for file diff

---
 .../controllers/VersionUpdateController.php              | 9 ++++-----
 .../versions-update-administration.component.html        | 2 +-
 src/frontend/lang/lang-en.ts                             | 1 +
 src/frontend/lang/lang-fr.ts                             | 1 +
 src/frontend/lang/lang-nl.ts                             | 1 +
 5 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/app/versionUpdate/controllers/VersionUpdateController.php b/src/app/versionUpdate/controllers/VersionUpdateController.php
index 50f8fd65759..74967164376 100755
--- a/src/app/versionUpdate/controllers/VersionUpdateController.php
+++ b/src/app/versionUpdate/controllers/VersionUpdateController.php
@@ -89,9 +89,9 @@ class VersionUpdateController
         }
 
         $output = [];
-        exec('git diff 2>&1', $output);
-        exec('git diff --staged 2>&1', $output);
 
+        exec('git status --porcelain --untracked-files=no 2>&1', $output);
+        
         return $response->withJson([
             'lastAvailableMinorVersion' => $lastAvailableMinorVersion,
             'lastAvailableMajorVersion' => $lastAvailableMajorVersion,
@@ -149,10 +149,9 @@ class VersionUpdateController
         $minorVersion = $availableMinorVersions[0];
 
         $output = [];
-        $diff = exec('git diff 2>&1', $output);
-        $stagedDiff = exec('git diff --staged 2>&1', $output);
+        exec('git status --porcelain --untracked-files=no 2>&1', $output);
 
-        if (!empty($output) || !empty($diff) || !empty($stagedDiff)) {
+        if (!empty($output)) {
             return $response->withStatus(400)->withJson(['errors' => 'Some files are modified. Can not update application', 'lang' => 'canNotUpdateApplication']);
         }
 
diff --git a/src/frontend/app/administration/versionUpdate/versions-update-administration.component.html b/src/frontend/app/administration/versionUpdate/versions-update-administration.component.html
index 3878485dda7..5276bade320 100755
--- a/src/frontend/app/administration/versionUpdate/versions-update-administration.component.html
+++ b/src/frontend/app/administration/versionUpdate/versions-update-administration.component.html
@@ -31,7 +31,7 @@
                     </span>
                     <mat-icon class="fa fa-info-circle fa-2x" style="flex: 1;text-align: right;"></mat-icon>
                 </div>
-                <div class="alert-message alert-message-danger" *ngIf="!versions.canUpdate && versions.lastAvailableMinorVersion!=null" [innerHTML]="versions.diffOutput">
+                <div class="alert-message alert-message-danger" *ngIf="!versions.canUpdate && versions.lastAvailableMinorVersion!=null" [innerHTML]="lang.updateWarn + versions.diffOutput.join('<br/>')">
                 </div>
                 <div class="col-sm-12" style="text-align:center;" *ngIf="versions.lastAvailableMinorVersion!=null">
                     <button mat-raised-button color="primary" [disabled]="!versions.canUpdate"
diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts
index 5707fc26275..1d988dc7d2c 100755
--- a/src/frontend/lang/lang-en.ts
+++ b/src/frontend/lang/lang-en.ts
@@ -1030,4 +1030,5 @@ export const LANG_EN = {
     "updateInProgress" : "Update in progress ...",
     "updateInfo" : "This action cannot be undone! Do not make any actions during process.",
     "isAvailable" : "is available",
+    "updateWarn" : "Update is not possible.<br/>These files can be modified : <br/>"
 };
diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts
index 71756a7a7cd..d46d42c151b 100755
--- a/src/frontend/lang/lang-fr.ts
+++ b/src/frontend/lang/lang-fr.ts
@@ -1063,4 +1063,5 @@ export const LANG_FR = {
     "updateInProgress" : "Mise à jour en cours ...",
     "updateInfo" : "Cette action est irréversible ! Il est préférable de ne pas faire d'actions durant le processus et qu'aucun utilisateur ne soit connecté.",
     "isAvailable" : "est disponible",
+    "updateWarn" : "<b>Impossible</b> d'effectuer la mise à jour. Voici les fichiers pouvant être mise en cause :<br/><br/>"
 };
\ No newline at end of file
diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts
index 97cbab70a7c..38108c1594c 100755
--- a/src/frontend/lang/lang-nl.ts
+++ b/src/frontend/lang/lang-nl.ts
@@ -1056,4 +1056,5 @@ export const LANG_NL = {
     "updateInProgress" : "Update in progress ...", //_TO_TRANSLATE
     "updateInfo" : "This action cannot be undone! Do not make any actions during process.", //_TO_TRANSLATE
     "isAvailable" : "is available", //_TO_TRANSLATE
+    "updateWarn" : "Update is not possible.<br/>These files can be modified : <br/>"
 };
-- 
GitLab