Skip to content
Snippets Groups Projects
Verified Commit 3ed6eb51 authored by Alex ORLUC's avatar Alex ORLUC
Browse files

FEAT #11296 TIME 3 begin unclassify

parent d7ac550e
No related branches found
No related tags found
No related merge requests found
......@@ -7,7 +7,7 @@
<menu-nav></menu-nav>
<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>
<panel-folder #panelFolder [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,6 +42,9 @@
</div>
<div class="table-head-tool">
<span>
<button mat-raised-button color="primary" (click)="unclassify();" *ngIf="selectedRes.length > 0">
Enlever du dossier
</button>
<!--<app-tools-list #actionsList [selectedRes]="selectedRes"
[currentBasketInfo]="currentBasketInfo"></app-tools-list>-->
</span>
......@@ -52,7 +55,7 @@
</div>
</div>
<div style="height:90%;overflow:auto;position:absolute;width:100%;">
<table #tableBasketListSort="matSort" mat-table [dataSource]="data" matSort
<table #tableBasketListSort="matSort" cdkDropList id="folder-list" [cdkDropListConnectedTo]="panelFolder.getDragIds()" [cdkDropListData]="data" mat-table [dataSource]="data" matSort
matSortActive="res_id" matSortDisableClear matSortDirection="asc" style="width:100%;">
<ng-container matColumnDef="res_id">
......@@ -65,6 +68,14 @@
(change)="toggleRes($event,row)" (click)="$event.stopPropagation();">
</mat-checkbox>
</span>
<span *ngIf="!appService.getViewMode()" style="cursor:pointer;" class="main-info-status" (click)="launch(defaultAction,row);">
<mat-icon *ngIf="row.isLocked !== true" title="{{row.statusLabel}}" [ngStyle]="{'color': row.priorityColor}" color="primary"
class="{{row.statusImage.charAt(0)}}{{row.statusImage.charAt(1)}} {{row.statusImage}} {{row.statusImage.charAt(0)}}{{row.statusImage.charAt(1)}}-2x">
</mat-icon>
<span *ngIf="row.confidentiality === 'Y'" class="watermark">{{lang.confidential}}</span>
<mat-icon *ngIf="row.isLocked === true" title="{{lang.warnLockResInProgress}} : {{row.locker}}" style="color: red;" class="fa fa-lock fa-2x">
</mat-icon>
</span>
<span *ngIf="!appService.getViewMode()" class="main-info-data" style="width:200px;text-align:center;cursor:pointer;">
<ng-container
*ngIf="row.alt_identifier == lang.undefined && row.barcode != lang.undefined">
......@@ -108,7 +119,10 @@
</td>
</ng-container>
<tr mat-row *matRowDef="let row; columns: displayedColumnsBasket;"
(contextmenu)="open($event,row);"></tr>
(contextmenu)="open($event,row);" class="rowData" [class.locked]="row.isLocked == true" cdkDrag [cdkDragData]="row" >
<div class="example-custom-placeholder" *cdkDragPlaceholder></div>
<div class="dragPreview" *cdkDragPreview><i class="fas fa-envelope-open-text fa-2x"></i><br/>Classer <b>{{row.alt_identifier}}</b> dans un dossier</div>
</tr>
</table>
</div>
<div class="table-head">
......
@import '../../../css/vars.scss';
.dragPreview {
text-align: center;
border-radius:5px;
background: white;
padding: 10px;
box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2),0 8px 10px 1px rgba(0, 0, 0, 0.14),0 3px 14px 2px rgba(0, 0, 0, 0.12);
color: $primary;
}
\ No newline at end of file
......@@ -6,14 +6,14 @@ import { NotificationService } from '../../notification.service';
import { MatDialog, MatSidenav, MatPaginator, MatSort } from '@angular/material';
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
import { startWith, switchMap, map, catchError, takeUntil } from 'rxjs/operators';
import { startWith, switchMap, map, catchError, takeUntil, tap } from 'rxjs/operators';
import { ActivatedRoute, Router } from '@angular/router';
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';
import { PanelFolderComponent } from '../panel/panel-folder.component';
declare function $j(selector: any): any;
......@@ -84,6 +84,7 @@ export class FolderDocumentListComponent implements OnInit {
@ViewChild(MatPaginator) paginator: MatPaginator;
@ViewChild('tableBasketListSort') sort: MatSort;
@ViewChild('panelFolder') panelFolder: PanelFolderComponent;
constructor(
private router: Router,
......@@ -112,7 +113,13 @@ export class FolderDocumentListComponent implements OnInit {
this.route.params.subscribe(params => {
this.destroy$.next(true);
this.basketUrl = '../../rest/folders/' + params['folderId'];
this.basketUrl = '../../rest/folders/' + params['folderId'] + '/resources';
this.folderInfo =
{
"id": params['folderId'],
"label": 'test'
};
this.selectedRes = [];
this.sidenavRight.close();
window['MainHeaderComponent'].setSnav(this.sidenavLeft);
......@@ -146,20 +153,13 @@ 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.countResources;
//this.allResInBasket = data.countResources;
this.headerService.setHeader('Dossier : ' + this.folderInfo.label);
this.resultsLength = data.count;
//this.allResInBasket = data.count;
//this.headerService.setHeader('Dossier : ' + this.folderInfo.label);
return data.resources;
}),
catchError((err: any) => {
......@@ -275,11 +275,17 @@ export class FolderDocumentListComponent implements OnInit {
});
}
}
unclassify() {
this.http.request('DELETE', '../../rest/folders/' + this.folderInfo.id + '/resources', { body: { resources: this.selectedRes } }).pipe(
tap(() => this.notify.success('Courriers classés'))
).subscribe();
}
}
export interface BasketList {
folder: any;
resources: any[];
countResources: number
count: number
}
export class ResultListHttpDao {
......
<mat-nav-list>
<mat-tree [dataSource]="dataSource" [treeControl]="treeControl">
<!-- This is the tree node template for leaf nodes -->
<mat-tree-node cdkDropList [id]="'folder-list-'+node.id" cdkDropListConnectedTo="list-1" (cdkDropListDropped)="drop($event, node)"
<mat-tree-node cdkDropList [id]="'folder-list-'+node.id" cdkDropListConnectedTo="['document-list','folder-list']" (cdkDropListDropped)="drop($event, node)"
(cdkDropListEntered)="dragEnter(node)" (cdkDropListExited)="node.drag=false" [@hideShow] *matTreeNodeDef="let node"
matTreeNodePadding matTreeNodePaddingIndent="20px">
<!-- use a disabled button to provide padding for tree leaf -->
......
......@@ -146,7 +146,9 @@ export class FolderTreeComponent implements OnInit {
selectTree(id: number) {
let indexSelectedFolder = this.treeControl.dataNodes.map((folder: any) => folder.id).indexOf(id);
this.treeControl.dataNodes[indexSelectedFolder].selected = true;
if (indexSelectedFolder != -1) {
this.treeControl.dataNodes[indexSelectedFolder].selected = true;
}
}
hasChild = (_: number, node: any) => node.expandable;
......@@ -158,7 +160,7 @@ export class FolderTreeComponent implements OnInit {
element.selected = false;
});
node.selected = true;
this.router.navigate(['/folders/'+node.id]);
this.router.navigate(['/folders/' + node.id]);
}
showAction(node: any) {
......@@ -321,14 +323,43 @@ export class FolderTreeComponent implements OnInit {
}
drop(ev: any, node: any) {
this.dialogRef = this.dialog.open(ConfirmComponent, { autoFocus: false, disableClose: true, data: { title: 'Classer '+ ev.item.data.alt_identifier, msg: 'Voulez-vous classer <b>'+ ev.item.data.alt_identifier+'</b> dans <b>' + node.label+ '</b> ?'} });
console.log(ev.previousContainer.id);
this.classifyDocument(ev, node);
/*if (ev.previousContainer.id === 'folder-list') {
this.moveFolder(ev, node);
} else {
this.classifyDocument(ev, node);
}*/
}
moveFolder(ev: any, node: any) {
this.dialogRef = this.dialog.open(ConfirmComponent, { autoFocus: false, disableClose: true, data: { title: 'Déplacer ' + ev.item.data.alt_identifier, msg: 'Voulez-vous déplacer <b>' + ev.item.data.alt_identifier + '</b> dans <b>' + node.label + '</b> ?' } });
this.dialogRef.afterClosed().pipe(
filter((data: string) => data === 'ok'),
//exhaustMap(() => this.http.post("../../rest/folders/" + node.id)),
tap(() => {
tap(() => {
node.countResources = node.countResources + 1;
}),
tap(() => this.notify.success('Courrier déplacé')),
tap(() => this.getFolders()),
finalize(() => node.drag = false),
catchError((err) => {
this.notify.handleErrors(err);
return of(false);
})
).subscribe();
}
classifyDocument(ev: any, node: any) {
this.dialogRef = this.dialog.open(ConfirmComponent, { autoFocus: false, disableClose: true, data: { title: 'Classer ' + ev.item.data.alt_identifier, msg: 'Voulez-vous classer <b>' + ev.item.data.alt_identifier + '</b> dans <b>' + node.label + '</b> ?' } });
this.dialogRef.afterClosed().pipe(
filter((data: string) => data === 'ok'),
exhaustMap(() => this.http.post('../../rest/folders/' + node.id + '/resources', { resources: [ev.item.data.res_id] })),
tap((data: any) => {
node.countResources = data.countResources;
}),
tap(() => this.notify.success('Courrier classé')),
finalize(() => node.drag = false),
catchError((err) => {
......@@ -338,17 +369,19 @@ export class FolderTreeComponent implements OnInit {
).subscribe();
}
dragEnter(node: any) {
node.drag=true;
node.drag = true;
}
getDragIds() {
if (this.treeControl.dataNodes !== undefined) {
return this.treeControl.dataNodes.map(node => 'folder-list-'+node.id);
return this.treeControl.dataNodes.map(node => 'folder-list-' + node.id);
} else {
return [];
}
}
toggleInput() {
......
......@@ -62,7 +62,7 @@
</div>
</div>
<div style="height:90%;overflow:auto;position:absolute;width:100%;">
<table cdkDropList id="list-1" [cdkDropListConnectedTo]="panelFolder.getDragIds()" [cdkDropListData]="data" #tableBasketListSort="matSort" mat-table [dataSource]="data" matSort
<table cdkDropList id="document-list" [cdkDropListConnectedTo]="panelFolder.getDragIds()" [cdkDropListData]="data" #tableBasketListSort="matSort" mat-table [dataSource]="data" matSort
matSortActive="res_id" matSortDisableClear matSortDirection="asc" style="width:100%;">
<ng-container matColumnDef="res_id">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment