Skip to content
Snippets Groups Projects
Commit 8b7d0db4 authored by Alex ORLUC's avatar Alex ORLUC
Browse files

FEAT #13271 TIME 1:20 add go to page

parent a4d45b95
Branches
Tags
No related merge requests found
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
<img style="max-height: 100vh;" *ngIf="thumbnailUrl !== ''" [src]="thumbnailUrl | secureUrl | async" /> <img style="max-height: 100vh;" *ngIf="thumbnailUrl !== ''" [src]="thumbnailUrl | secureUrl | async" />
</mat-card> </mat-card>
<ng-template #filterTemplate> <ng-template #filterTemplate>
<app-filter-tool-adv-search #appFilterToolAdvSearch [filters]="dataFilters" (filterChanged)="launchSearch()" *ngIf="!hideFilter && !isLoadingResults"></app-filter-tool-adv-search> <app-filter-tool-adv-search #appFilterToolAdvSearch [filters]="dataFilters" (filterChanged)="launchSearch()"
*ngIf="!hideFilter && !isLoadingResults"></app-filter-tool-adv-search>
</ng-template> </ng-template>
<ng-template #toolTemplate> <ng-template #toolTemplate>
<div *ngIf="data.length > 0" class="filtersContent"> <div *ngIf="data.length > 0" class="filtersContent">
...@@ -10,7 +11,8 @@ ...@@ -10,7 +11,8 @@
<div class="orderTool"> <div class="orderTool">
<mat-form-field class="basket-order"> <mat-form-field class="basket-order">
<mat-icon matPrefix class="fa fa-list"></mat-icon> <mat-icon matPrefix class="fa fa-list"></mat-icon>
<mat-select [(ngModel)]="this.listProperties.order" (selectionChange)="updateFilters()" [disabled]="isLoadingResults"> <mat-select [(ngModel)]="this.listProperties.order" (selectionChange)="updateFilters()"
[disabled]="isLoadingResults">
<mat-option [value]="column.id" *ngFor="let column of displayColsOrder"> <mat-option [value]="column.id" *ngFor="let column of displayColsOrder">
{{'lang.' + column.id | translate}} {{'lang.' + column.id | translate}}
</mat-option> </mat-option>
...@@ -72,7 +74,8 @@ ...@@ -72,7 +74,8 @@
</div> </div>
<div class="table-head"> <div class="table-head">
<div class="table-head-result"> <div class="table-head-result">
<mat-checkbox *ngIf="!singleSelection" color="primary" [checked]="selectedRes.length == allResInBasket.length && selectedRes.length > 0" <mat-checkbox *ngIf="!singleSelection" color="primary"
[checked]="selectedRes.length == allResInBasket.length && selectedRes.length > 0"
[indeterminate]="selectedRes.length > 0 && selectedRes.length < allResInBasket.length" [indeterminate]="selectedRes.length > 0 && selectedRes.length < allResInBasket.length"
style="margin: 10px;padding-right: 10px;" title="{{'lang.selectAllResInBasket' | translate}}" style="margin: 10px;padding-right: 10px;" title="{{'lang.selectAllResInBasket' | translate}}"
(change)="toggleAllRes($event)"> (change)="toggleAllRes($event)">
...@@ -82,9 +85,13 @@ ...@@ -82,9 +85,13 @@
{{'lang.selected' | translate}}</small> {{'lang.selected' | translate}}</small>
</div> </div>
<div class="table-head-tool"> <div class="table-head-tool">
<span> <span style="position: relative;">
<mat-paginator #paginatorResultList [length]="resultsLength" [pageSizeOptions]="[10, 25, 50, 100, 150]" <mat-paginator #paginatorResultList [length]="resultsLength" [pageSizeOptions]="[10, 25, 50, 100, 150]"
class="paginatorResultList"></mat-paginator> class="paginatorResultList"></mat-paginator>
<div *ngIf="paginatorResultList.getNumberOfPages() > 0" [matMenuTriggerFor]="page" class="pageList"></div>
<mat-menu #page="matMenu">
<button mat-menu-item *ngFor="let count of counter(paginatorResultList.getNumberOfPages());let i=index" (click)="goToPage(i)">{{i+1}}</button>
</mat-menu>
</span> </span>
<span> <span>
<span> <span>
...@@ -100,16 +107,20 @@ ...@@ -100,16 +107,20 @@
</div> </div>
</div> </div>
<div [class.integratedContent]="!standalone"> <div [class.integratedContent]="!standalone">
<table cdkDropList id="document-list" [cdkDropListConnectedTo]="listTodrag()" [cdkDropListData]="data" #tableBasketListSort="matSort" mat-table [dataSource]="data" matSort <table cdkDropList id="document-list" [cdkDropListConnectedTo]="listTodrag()" [cdkDropListData]="data"
matSortActive="resId" matSortDisableClear matSortDirection="asc" style="width:100%;" [cdkDropListDisabled]="dragInit || appService.getViewMode()"> #tableBasketListSort="matSort" mat-table [dataSource]="data" matSort matSortActive="resId" matSortDisableClear
matSortDirection="asc" style="width:100%;" [cdkDropListDisabled]="dragInit || appService.getViewMode()">
<ng-container matColumnDef="resId"> <ng-container matColumnDef="resId">
<td mat-cell *matCellDef="let row" style="padding:0;border-top: solid 1px rgba(0, 0, 0, 0.12);"> <td mat-cell *matCellDef="let row" style="padding:0;border-top: solid 1px rgba(0, 0, 0, 0.12);">
<div *ngIf="!appService.getViewMode() && row.display.length > 0" class="sub-info column-{{templateColumns}}-list" style="cursor: initial;"> <div *ngIf="!appService.getViewMode() && row.display.length > 0"
<span class="sub-info-data" [class]="data.cssClasses.join(' ')" class="sub-info column-{{templateColumns}}-list" style="cursor: initial;">
*ngFor="let data of row.display" style="flex:1;white-space: pre;overflow: hidden;text-overflow: ellipsis; <span class="sub-info-data" [class]="data.cssClasses.join(' ')" *ngFor="let data of row.display"
style="flex:1;white-space: pre;overflow: hidden;text-overflow: ellipsis;
padding-left: 5px; padding-left: 5px;
padding-right: 5px;" [class.hasEvent]="data.event && data.displayValue !== this.translate.instant('lang.undefined')" (click)="launchEventSubData(data, row)"> padding-right: 5px;"
[class.hasEvent]="data.event && data.displayValue !== this.translate.instant('lang.undefined')"
(click)="launchEventSubData(data, row)">
<ng-container *ngIf="data.value == 'getCreationAndProcessLimitDates'"> <ng-container *ngIf="data.value == 'getCreationAndProcessLimitDates'">
<ng-container *ngIf="row.closing_date != this.translate.instant('lang.undefined')"> <ng-container *ngIf="row.closing_date != this.translate.instant('lang.undefined')">
<i class="fa fa-lock" title="{{'lang.closingDate' | translate}}"></i>&nbsp;<span <i class="fa fa-lock" title="{{'lang.closingDate' | translate}}"></i>&nbsp;<span
...@@ -117,8 +128,7 @@ ...@@ -117,8 +128,7 @@
title='{{row.closing_date | fullDate}}'></span> title='{{row.closing_date | fullDate}}'></span>
</ng-container> </ng-container>
<ng-container *ngIf="row.closing_date == this.translate.instant('lang.undefined')"> <ng-container *ngIf="row.closing_date == this.translate.instant('lang.undefined')">
<i class="fa fa-calendar" <i class="fa fa-calendar" title="{{'lang.creationDate' | translate}}"></i>&nbsp;<span
title="{{'lang.creationDate' | translate}}"></i>&nbsp;<span
[class.highlightResult]="data.displayValue.creationDateHighlighted" [class.highlightResult]="data.displayValue.creationDateHighlighted"
[innerHTML]="data.displayValue.creationDate | timeAgo" [innerHTML]="data.displayValue.creationDate | timeAgo"
title='{{data.displayValue.creationDate | fullDate}}'></span> title='{{data.displayValue.creationDate | fullDate}}'></span>
...@@ -143,8 +153,7 @@ ...@@ -143,8 +153,7 @@
*ngIf="data.value != 'getCategory' && data.value != 'getCreationAndProcessLimitDates'"> *ngIf="data.value != 'getCategory' && data.value != 'getCreationAndProcessLimitDates'">
<span *ngIf="!data.value.includes('Date')" title="{{data.displayTitle}}" <span *ngIf="!data.value.includes('Date')" title="{{data.displayTitle}}"
[innerHTML]="data.displayValue"></span> [innerHTML]="data.displayValue"></span>
<span *ngIf="data.value.includes('Date')" <span *ngIf="data.value.includes('Date')" [innerHTML]="data.displayValue | timeAgo"></span>
[innerHTML]="data.displayValue | timeAgo"></span>
</ng-container> </ng-container>
</span> </span>
</div> </div>
...@@ -160,7 +169,8 @@ ...@@ -160,7 +169,8 @@
<mat-icon [ngClass]="[row.mailTracking === true ? 'fas fa-star' : 'far fa-star']" <mat-icon [ngClass]="[row.mailTracking === true ? 'fas fa-star' : 'far fa-star']"
style="margin-bottom: 5px;"></mat-icon> style="margin-bottom: 5px;"></mat-icon>
</button> </button>
<span style="cursor:pointer;" [class.highlightResultIcon]="row.inStatus" class="main-info-status" (click)="launch(row);"> <span style="cursor:pointer;" [class.highlightResultIcon]="row.inStatus" class="main-info-status"
(click)="launch(row);">
<mat-icon *ngIf="row.isLocked !== true" title="{{row.statusLabel}}" <mat-icon *ngIf="row.isLocked !== true" title="{{row.statusLabel}}"
[ngStyle]="{'color': row.priorityColor}" style="width: 100%;" color="primary" [ngStyle]="{'color': row.priorityColor}" style="width: 100%;" color="primary"
class="{{row.statusImage.charAt(0)}}{{row.statusImage.charAt(1)}} {{row.statusImage}} {{row.statusImage.charAt(0)}}{{row.statusImage.charAt(1)}}-2x"> class="{{row.statusImage.charAt(0)}}{{row.statusImage.charAt(1)}} {{row.statusImage}} {{row.statusImage.charAt(0)}}{{row.statusImage.charAt(1)}}-2x">
...@@ -177,7 +187,8 @@ ...@@ -177,7 +187,8 @@
<ng-container <ng-container
*ngIf="row.chrono == this.translate.instant('lang.undefined') && row.barcode != this.translate.instant('lang.undefined')"> *ngIf="row.chrono == this.translate.instant('lang.undefined') && row.barcode != this.translate.instant('lang.undefined')">
<span style="color: rgba(0,0,0,0.4);font-size: 90%;"> <span style="color: rgba(0,0,0,0.4);font-size: 90%;">
<i title="{{'lang.barcode' | translate}}" class="fas fa-barcode"></i>&nbsp;<span [innerHTML]="row.barcode"></span> <i title="{{'lang.barcode' | translate}}" class="fas fa-barcode"></i>&nbsp;<span
[innerHTML]="row.barcode"></span>
</span> </span>
</ng-container> </ng-container>
<ng-container *ngIf="row.chrono != this.translate.instant('lang.undefined')"> <ng-container *ngIf="row.chrono != this.translate.instant('lang.undefined')">
...@@ -188,7 +199,8 @@ ...@@ -188,7 +199,8 @@
[class.undefined]="row.subject == this.translate.instant('lang.undefined')" [class.undefined]="row.subject == this.translate.instant('lang.undefined')"
title="{{row.subject}}" [innerHTML]="row.subject | shorten: 150: '...'"></span> title="{{row.subject}}" [innerHTML]="row.subject | shorten: 150: '...'"></span>
<span *ngIf="sidenavRight !== undefined" class="main-info-action"> <span *ngIf="sidenavRight !== undefined" class="main-info-action">
<button mat-icon-button [class.highlightResultIcon]="row.inNotes" title="{{'lang.notes' | translate}}" <button mat-icon-button [class.highlightResultIcon]="row.inNotes"
title="{{'lang.notes' | translate}}"
(click)="$event.stopPropagation();togglePanel('note',row)" (click)="$event.stopPropagation();togglePanel('note',row)"
[class.noData]="row.countNotes == 0"> [class.noData]="row.countNotes == 0">
<mat-icon matBadgeHidden="{{row.countNotes == 0}}" fontSet="fas" <mat-icon matBadgeHidden="{{row.countNotes == 0}}" fontSet="fas"
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
.filterBadges { .filterBadges {
width: 100%; width: 100%;
} }
.filterBadges>.badge-eraser { .filterBadges>.badge-eraser {
margin: 5px; margin: 5px;
background: none; background: none;
...@@ -112,10 +113,10 @@ ...@@ -112,10 +113,10 @@
} }
.integratedContent { .integratedContent {
height:90%; height: 90%;
overflow:auto; overflow: auto;
position:absolute; position: absolute;
width:100%; width: 100%;
} }
::ng-deep .highlightResult { ::ng-deep .highlightResult {
...@@ -130,21 +131,45 @@ ...@@ -130,21 +131,45 @@
.align_leftData { .align_leftData {
text-align: left; text-align: left;
} }
.align_centerData { .align_centerData {
text-align: center; text-align: center;
} }
.align_rightData { .align_rightData {
text-align: right; text-align: right;
} }
.boldFontData { .boldFontData {
font-weight: bold; font-weight: bold;
} }
.bigFontData { .bigFontData {
font-size: 14px; font-size: 14px;
} }
.smallFontData { .smallFontData {
font-size: 10px; font-size: 10px;
} }
.normalData { .normalData {
flex: 1; flex: 1;
}
.pageInput {
padding: 0px;
::ng-deep .mat-form-field-wrapper {
margin: 0px;
padding: 0px;
}
}
.pageList {
cursor: pointer;
position: absolute;
top: 0;
left: 110px;
height: 100%;
width: 120px;
} }
\ No newline at end of file
...@@ -309,7 +309,7 @@ export class SearchResultListComponent implements OnInit, OnDestroy { ...@@ -309,7 +309,7 @@ export class SearchResultListComponent implements OnInit, OnDestroy {
this.data = []; this.data = [];
this.resultsLength = 0; this.resultsLength = 0;
this.dataFilters = {}; this.dataFilters = {};
this.allResInBasket = []; this.allResInBasket = [];
this.isLoadingResults = false; this.isLoadingResults = false;
this.loadingResult.emit(false); this.loadingResult.emit(false);
this.initSearch = false; this.initSearch = false;
...@@ -318,6 +318,15 @@ export class SearchResultListComponent implements OnInit, OnDestroy { ...@@ -318,6 +318,15 @@ export class SearchResultListComponent implements OnInit, OnDestroy {
).subscribe(data => this.data = data); ).subscribe(data => this.data = data);
} }
goToPage(page: number) {
this.paginator.pageIndex = page;
this.paginator.page.next({
pageIndex: page,
pageSize: this.paginator.pageSize,
length: this.paginator.length
});
}
goTo(row: any) { goTo(row: any) {
// this.criteriaSearchService.filterMode = false; // this.criteriaSearchService.filterMode = false;
if (this.docUrl === '../rest/resources/' + row.resId + '/content' && this.sidenavRight.opened) { if (this.docUrl === '../rest/resources/' + row.resId + '/content' && this.sidenavRight.opened) {
...@@ -693,7 +702,7 @@ export class SearchResultListComponent implements OnInit, OnDestroy { ...@@ -693,7 +702,7 @@ export class SearchResultListComponent implements OnInit, OnDestroy {
} }
removeCriteria(identifier: string, value: any = null) { removeCriteria(identifier: string, value: any = null) {
if (!this.isLoadingResults) { if (!this.isLoadingResults) {
if (identifier !== '_ALL') { if (identifier !== '_ALL') {
const tmpArrCrit = []; const tmpArrCrit = [];
if (value === null || this.criteria[identifier].values.length === 1) { if (value === null || this.criteria[identifier].values.length === 1) {
...@@ -731,6 +740,10 @@ export class SearchResultListComponent implements OnInit, OnDestroy { ...@@ -731,6 +740,10 @@ export class SearchResultListComponent implements OnInit, OnDestroy {
getSelectedResources() { getSelectedResources() {
return this.selectedRes; return this.selectedRes;
} }
counter(i: number) {
return new Array(i);
}
} }
export interface BasketList { export interface BasketList {
folder: any; folder: any;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment