From 19061f898b58b2ce1a27d5b9657292e0c958422b Mon Sep 17 00:00:00 2001
From: Alex ORLUC <alex.orluc@maarch.org>
Date: Thu, 25 Jul 2019 19:34:15 +0200
Subject: [PATCH] FEAT #11296 TIME 1:30 begin document folder list

---
 src/frontend/app/app-routing.module.ts        |  2 ++
 .../folder-document-list.component.html       |  8 ++---
 .../folder-document-list.component.ts         | 34 +++++++++----------
 .../app/folder/folder-tree.component.ts       |  5 ++-
 .../folder/panel/panel-folder.component.html  |  2 +-
 .../folder/panel/panel-folder.component.ts    |  4 ++-
 6 files changed, 31 insertions(+), 24 deletions(-)

diff --git a/src/frontend/app/app-routing.module.ts b/src/frontend/app/app-routing.module.ts
index 4b492646a7c..1de7102e906 100755
--- a/src/frontend/app/app-routing.module.ts
+++ b/src/frontend/app/app-routing.module.ts
@@ -11,6 +11,7 @@ import { SignatureBookComponent }           from './signature-book.component';
 import { SaveNumericPackageComponent }      from './save-numeric-package.component';
 import { PrintSeparatorComponent }          from './separator/print-separator/print-separator.component';
 import { AppGuard }                         from '../service/app.guard';
+import { FolderDocumentListComponent } from './folder/document-list/folder-document-list.component';
 
 @NgModule({
     imports: [
@@ -21,6 +22,7 @@ import { AppGuard }                         from '../service/app.guard';
             { path: 'about-us', canActivate: [AppGuard], component: AboutUsComponent },
             { path: 'home', canActivate: [AppGuard],  component: HomeComponent },
             { path: 'basketList/users/:userSerialId/groups/:groupSerialId/baskets/:basketId', canActivate: [AppGuard], component: BasketListComponent },
+            { path: 'folders/:folderId', canActivate: [AppGuard], component: FolderDocumentListComponent },
             { path: 'saveNumericPackage', canActivate: [AppGuard], component: SaveNumericPackageComponent },
             { path: 'separators/print', canActivate: [AppGuard], component: PrintSeparatorComponent },
             { path: 'signatureBook/users/:userId/groups/:groupId/baskets/:basketId/resources/:resId', canActivate: [AppGuard],component: SignatureBookComponent },
diff --git a/src/frontend/app/folder/document-list/folder-document-list.component.html b/src/frontend/app/folder/document-list/folder-document-list.component.html
index 708a3cef746..ab65e8eb496 100644
--- a/src/frontend/app/folder/document-list/folder-document-list.component.html
+++ b/src/frontend/app/folder/document-list/folder-document-list.component.html
@@ -5,9 +5,9 @@
         <header-panel [snavLeft]="snav"></header-panel>
         <menu-shortcut></menu-shortcut>
         <menu-nav></menu-nav>
-        <basket-home *ngIf="homeData" #basketHome [homeData]="homeData" [snavL]="snav"
-            [currentBasketInfo]="currentBasketInfo"></basket-home>
+        <basket-home *ngIf="homeData" #basketHome [homeData]="homeData" [snavL]="snav"></basket-home>
         <mat-divider></mat-divider>
+        <panel-folder *ngIf="folderInfo.id > 0" [selectedId]="folderInfo.id"></panel-folder>
     </mat-sidenav>
     <mat-sidenav-content>
         <mat-card id="viewThumbnail" style="display:none;position: fixed;z-index: 2;margin-left: 1px;"><img style="max-height: 100vh;" src="{{thumbnailUrl}}" /></mat-card>
@@ -42,8 +42,8 @@
                     </div>
                     <div class="table-head-tool">
                         <span>
-                            <app-tools-list #actionsList [selectedRes]="selectedRes"
-                                [currentBasketInfo]="currentBasketInfo"></app-tools-list>
+                            <!--<app-tools-list #actionsList [selectedRes]="selectedRes"
+                                [currentBasketInfo]="currentBasketInfo"></app-tools-list>-->
                         </span>
                         <span>
                             <mat-paginator #paginatorResultList [length]="resultsLength" [pageSize]="10"
diff --git a/src/frontend/app/folder/document-list/folder-document-list.component.ts b/src/frontend/app/folder/document-list/folder-document-list.component.ts
index c4c884ed20c..3ba27915f68 100644
--- a/src/frontend/app/folder/document-list/folder-document-list.component.ts
+++ b/src/frontend/app/folder/document-list/folder-document-list.component.ts
@@ -13,6 +13,7 @@ import { HeaderService } from '../../../service/header.service';
 import { Overlay } from '@angular/cdk/overlay';
 import { PanelListComponent } from '../../list/panel/panel-list.component';
 import { AppService } from '../../../service/app.service';
+import { ThrowStmt } from '@angular/compiler';
 
 
 declare function $j(selector: any): any;
@@ -63,7 +64,6 @@ export class FolderDocumentListComponent implements OnInit {
     resultsLength = 0;
     isLoadingResults = true;
     listProperties: any = {};
-    currentBasketInfo: any = {};
     currentChrono: string = '';
     currentMode: string = '';
 
@@ -72,6 +72,9 @@ export class FolderDocumentListComponent implements OnInit {
     selectedRes: number[] = [];
     allResInBasket: number[] = [];
     selectedDiffusionTab: number = 0;
+    folderInfo: any = {
+        id: 0
+    };
 
     private destroy$ = new Subject<boolean>();
 
@@ -109,13 +112,7 @@ export class FolderDocumentListComponent implements OnInit {
         this.route.params.subscribe(params => {
             this.destroy$.next(true);
 
-            this.basketUrl = '../../rest/resourcesList/users/' + params['userSerialId'] + '/groups/' + params['groupSerialId'] + '/baskets/' + params['basketId'];
-
-            this.currentBasketInfo = {
-                ownerId: params['userSerialId'],
-                groupId: params['groupSerialId'],
-                basketId: params['basketId']
-            };
+            this.basketUrl = '../../rest/folders/' + params['folderId'];
             this.selectedRes = [];
             this.sidenavRight.close();
             window['MainHeaderComponent'].setSnav(this.sidenavLeft);
@@ -149,14 +146,20 @@ export class FolderDocumentListComponent implements OnInit {
                     return this.resultListDatabase!.getRepoIssues(
                         this.sort.active, this.sort.direction, this.paginator.pageIndex, this.basketUrl);
                 }),
+                map(data => data.folder),
                 map(data => {
+                    this.folderInfo = 
+                    {
+                        "id": data.id,
+                        "label": data.label
+
+                    };
                     // Flip flag to show that loading has finished.
                     this.isLoadingResults = false;
                     data = this.processPostData(data);
-                    this.resultsLength = data.count;
-                    this.allResInBasket = data.allResources;
-                    this.currentBasketInfo.basket_id = data.basket_id;
-                    this.headerService.setHeader(data.basketLabel);
+                    this.resultsLength = data.countResources;
+                    //this.allResInBasket = data.countResources;
+                    this.headerService.setHeader('Dossier : ' + this.folderInfo.label);
                     return data.resources;
                 }),
                 catchError((err: any) => {
@@ -274,12 +277,9 @@ export class FolderDocumentListComponent implements OnInit {
     }
 }
 export interface BasketList {
+    folder: any;
     resources: any[];
-    count: number;
-    basketLabel: string,
-    basket_id: string,
-    defaultAction: any;
-    allResources: number[]
+    countResources: number
 }
 
 export class ResultListHttpDao {
diff --git a/src/frontend/app/folder/folder-tree.component.ts b/src/frontend/app/folder/folder-tree.component.ts
index 77fded04038..24636d70b87 100644
--- a/src/frontend/app/folder/folder-tree.component.ts
+++ b/src/frontend/app/folder/folder-tree.component.ts
@@ -8,6 +8,7 @@ import { MatTreeFlatDataSource, MatTreeFlattener, MatDialog, MatDialogRef } from
 import { BehaviorSubject, of } from 'rxjs';
 import { NotificationService } from '../notification.service';
 import { ConfirmComponent } from '../../plugins/modal/confirm.component';
+import { Router } from '@angular/router';
 
 declare function $j(selector: any): any;
 /**
@@ -95,7 +96,8 @@ export class FolderTreeComponent implements OnInit {
     constructor(
         public http: HttpClient,
         private notify: NotificationService,
-        private dialog: MatDialog
+        private dialog: MatDialog,
+        private router: Router,
     ) { }
 
     ngOnInit(): void {
@@ -147,6 +149,7 @@ export class FolderTreeComponent implements OnInit {
             element.selected = false;
         });
         node.selected = true;
+        this.router.navigate(['/folders/'+node.id]);
     }
 
     showAction(node: any) {
diff --git a/src/frontend/app/folder/panel/panel-folder.component.html b/src/frontend/app/folder/panel/panel-folder.component.html
index 028fed08d00..d69b693f83b 100644
--- a/src/frontend/app/folder/panel/panel-folder.component.html
+++ b/src/frontend/app/folder/panel/panel-folder.component.html
@@ -4,5 +4,5 @@
             {{lang.folders}}
         </mat-panel-title>
     </mat-expansion-panel-header>
-    <folder-tree></folder-tree>
+    <folder-tree [selectedId]="id"></folder-tree>
 </mat-expansion-panel>
diff --git a/src/frontend/app/folder/panel/panel-folder.component.ts b/src/frontend/app/folder/panel/panel-folder.component.ts
index 2cae46215e9..884195a3656 100644
--- a/src/frontend/app/folder/panel/panel-folder.component.ts
+++ b/src/frontend/app/folder/panel/panel-folder.component.ts
@@ -1,4 +1,4 @@
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, Input } from '@angular/core';
 import { LANG } from '../../translate.component';
 
 declare function $j(selector: any): any;
@@ -12,6 +12,8 @@ export class PanelFolderComponent implements OnInit {
 
     lang: any = LANG;
 
+    @Input('selectedId') id: number;
+    
     constructor() { }
 
     ngOnInit(): void { }
-- 
GitLab