From b36be927afd9317a029bb4813cad990855103745 Mon Sep 17 00:00:00 2001
From: "florian.azizian" <florian.azizian@maarch.org>
Date: Thu, 23 Jan 2020 18:41:07 +0100
Subject: [PATCH] FEAT #12091 TIME 0:40 Add to folder from tracked document
 list

---
 .../controllers/UserFollowedResourceController.php |  1 +
 .../followed-action-list.component.html            |  2 ++
 .../followed-action-list.component.ts              |  7 +++++++
 .../followed-document-list.component.html          |  3 +++
 .../followed-document-list.component.scss          | 14 ++++++++++++++
 src/frontend/app/list/basket-list.component.html   |  2 +-
 src/frontend/lang/lang-en.ts                       |  1 +
 src/frontend/lang/lang-fr.ts                       |  1 +
 src/frontend/lang/lang-nl.ts                       |  1 +
 9 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/src/app/resource/controllers/UserFollowedResourceController.php b/src/app/resource/controllers/UserFollowedResourceController.php
index ab14f80aace..9c3b61a1b4e 100644
--- a/src/app/resource/controllers/UserFollowedResourceController.php
+++ b/src/app/resource/controllers/UserFollowedResourceController.php
@@ -156,6 +156,7 @@ class UserFollowedResourceController
                     'attachments'   => $attachments,
                     'checkLocked'   => false,
                     'trackedMails'  => $followedResources,
+                    'listDisplay'   => ['folders']
                 ]);
             }
 
diff --git a/src/frontend/app/home/followed-action-list/followed-action-list.component.html b/src/frontend/app/home/followed-action-list/followed-action-list.component.html
index 41a15dabee1..7fba14a0708 100644
--- a/src/frontend/app/home/followed-action-list/followed-action-list.component.html
+++ b/src/frontend/app/home/followed-action-list/followed-action-list.component.html
@@ -23,6 +23,8 @@
         </ng-container>
     </mat-menu>
     <mat-divider></mat-divider>
+    <folder-menu [resIds]="selectedRes" [currentFolders]="folderList" (refreshList)="refreshList()" (refreshFolders)="refreshFolders()"></folder-menu>
+    <mat-divider></mat-divider>
     <button mat-menu-item class="folderAction" (click)="unFollow()" [disabled]="selectedRes.length === 0">
         <mat-icon class="far fa-star fa-2x"></mat-icon>
         <span>{{lang.untrackThisMail}}</span>
diff --git a/src/frontend/app/home/followed-action-list/followed-action-list.component.ts b/src/frontend/app/home/followed-action-list/followed-action-list.component.ts
index d0010baaf94..f803459aed5 100644
--- a/src/frontend/app/home/followed-action-list/followed-action-list.component.ts
+++ b/src/frontend/app/home/followed-action-list/followed-action-list.component.ts
@@ -32,6 +32,7 @@ export class FollowedActionListComponent implements OnInit {
     contextResId = 0;
     currentLock: any = null;
     arrRes: any[] = [];
+    folderList: any[] = [];
 
     actionsList: any[] = [];
     basketList: any = {
@@ -69,6 +70,7 @@ export class FollowedActionListComponent implements OnInit {
         this.contextMenuTitle = row.chrono;
         this.contextResId = row.resId;
 
+        this.folderList = row.folders !== undefined ? row.folders : [];
         // Opens the menu
         this.contextMenu.openMenu();
 
@@ -115,4 +117,9 @@ export class FollowedActionListComponent implements OnInit {
             this.router.navigate(['/basketList/users/' + this.headerService.user.id + '/groups/' + basket.groupId + '/baskets/' + basket.basketId]);
         }
     }
+
+    refreshList() {
+        this.refreshEvent.emit();
+    }
+
 }
diff --git a/src/frontend/app/home/followed-list/followed-document-list.component.html b/src/frontend/app/home/followed-list/followed-document-list.component.html
index 147df8f3ed1..083d1c56757 100644
--- a/src/frontend/app/home/followed-list/followed-document-list.component.html
+++ b/src/frontend/app/home/followed-list/followed-document-list.component.html
@@ -143,6 +143,9 @@
                                         </button>
                                     </span>
                                 </div>
+                                <div *ngIf="row.folders !== undefined && row.folders.length > 0" class="folder-info">
+                                    <span class="badge badge-folder" *ngFor="let folder of row.folders | sortBy : 'label'" routerLink="/folders/{{folder.id}}" title="{{lang.goToFolder}} : {{folder.label}}"><i class="fa fa-folder"></i> {{folder.label}}</span>
+                                </div>
                             </td>
                         </ng-container>
                         <tr mat-row *matRowDef="let row; columns: displayedColumnsBasket;"
diff --git a/src/frontend/app/home/followed-list/followed-document-list.component.scss b/src/frontend/app/home/followed-list/followed-document-list.component.scss
index 7a6af119a53..3c256aca35a 100644
--- a/src/frontend/app/home/followed-list/followed-document-list.component.scss
+++ b/src/frontend/app/home/followed-list/followed-document-list.component.scss
@@ -93,3 +93,17 @@
 .followIcon {
     color: $secondary;
 }
+
+.folder-info {
+    padding-left: 20px;
+    padding-right: 20px;
+}
+
+.badge-folder {
+    cursor: pointer;
+    background: $secondary;
+    margin: 5px;
+    font-size: 12px;
+    border-radius: 3px;
+    opacity: 0.8;
+}
diff --git a/src/frontend/app/list/basket-list.component.html b/src/frontend/app/list/basket-list.component.html
index d5eb5f9f120..0ac0e53d4fc 100644
--- a/src/frontend/app/list/basket-list.component.html
+++ b/src/frontend/app/list/basket-list.component.html
@@ -176,7 +176,7 @@
                                         </span>
                                     </div>
                                     <div *ngIf="displayFolderTags && row.folders !== undefined && row.folders.length > 0" class="folder-info">
-                                        <span class="badge badge-folder" *ngFor="let folder of row.folders | sortBy : 'label'" routerLink="/folders/{{folder.id}}" title="Accéder au dossier : {{folder.label}}"><i class="fa fa-folder"></i> {{folder.label}}</span>
+                                        <span class="badge badge-folder" *ngFor="let folder of row.folders | sortBy : 'label'" routerLink="/folders/{{folder.id}}" title="{{lang.goToFolder}} : {{folder.label}}"><i class="fa fa-folder"></i> {{folder.label}}</span>
                                     </div>
                                 </td>
                             </ng-container>
diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts
index 68a9a5eb784..ecea2a84994 100755
--- a/src/frontend/lang/lang-en.ts
+++ b/src/frontend/lang/lang-en.ts
@@ -1439,6 +1439,7 @@ export const LANG_EN = {
     "circuitNotStarted": "The workflow has not yet started",
     "searchCommunicationMean": "Search communication mean",
     "searchExternalIdM2M": "Search M2GEC Identifier",
+    "goToFolder": "Go to folder",
     "ADD": "Add",
     "UP": "Update",
     "DEL": "Delete",
diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts
index 79eda385c52..089a720a3a8 100755
--- a/src/frontend/lang/lang-fr.ts
+++ b/src/frontend/lang/lang-fr.ts
@@ -1479,6 +1479,7 @@ export const LANG_FR = {
     "circuitNotStarted": "Le circuit n'a pas encore commencé",
     "searchCommunicationMean": "Recherchez un moyen de communication",
     "searchExternalIdM2M": "Recherchez un identifiant M2GEC",
+    "goToFolder": "Accéder au dossier",
     "ADD": "Ajout",
     "UP": "Modification",
     "DEL": "Suppression",
diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts
index f363d668ce2..0234b0534eb 100755
--- a/src/frontend/lang/lang-nl.ts
+++ b/src/frontend/lang/lang-nl.ts
@@ -1464,6 +1464,7 @@ export const LANG_NL = {
     "circuitNotStarted": "The workflow has not yet started", //_TO_TRANSLATE
     "searchCommunicationMean": "Search communication mean", //_TO_TRANSLATE
     "searchExternalIdM2M": "Search M2GEC Identifier", //_TO_TRANSLATE
+    "goToFolder": "Go to folder", //_TO_TRANSLATE
     "ADD": "Add", //_TO_TRANSLATE
     "UP": "Update", //_TO_TRANSLATE
     "DEL": "Delete", //_TO_TRANSLATE
-- 
GitLab