From 1022c99a01e113fee55818202f00859c5ff15f1d Mon Sep 17 00:00:00 2001 From: Alex ORLUC <alex.orluc@maarch.org> Date: Mon, 21 Sep 2020 16:51:26 +0200 Subject: [PATCH] FEAT #13271 TIME 0:25 my message --- .../app/adv-search/adv-search.component.html | 11 +++++---- .../app/adv-search/adv-search.component.ts | 12 ++++++---- .../criteria-tool/criteria-tool.component.ts | 24 +++++++++++++++++-- 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/src/frontend/app/adv-search/adv-search.component.html b/src/frontend/app/adv-search/adv-search.component.html index 8fd39af0eb3..3ef99b32437 100644 --- a/src/frontend/app/adv-search/adv-search.component.html +++ b/src/frontend/app/adv-search/adv-search.component.html @@ -39,13 +39,16 @@ <ng-container *ngIf="isArrayType(critKey.value.values) && critKey.value.values.length > 3"> <span class="label badge-search" [title]="appCriteriaTool.getLabelValues(critKey.key,critKey.value.values)" - (click)="removeCriteria(critKey.key)"><i + (click)="removeCriteria(critKey.key, val)"><i class="fa {{indexingFieldService.getField(critKey.key).icon}}" [title]="indexingFieldService.getField(critKey.key).label"></i> {{critKey.value.values.length}} valeurs <i class="fa fa-times-circle"></i></span> </ng-container> - <ng-container *ngIf="!isArrayType(critKey.value.values)"> - <span class="label badge-search" [title]="critKey.value.values" (click)="removeCriteria(critKey.key, val)"><i + <ng-container *ngIf="!isArrayType(critKey.value.values) && critKey.key !== 'meta'"> + <span class="label badge-search" [title]="appCriteriaTool.getFormatLabel(critKey.value.values)" (click)="removeCriteria(critKey.key, val)"><i class="fa {{indexingFieldService.getField(critKey.key).icon}}" - [title]="indexingFieldService.getField(critKey.key).label"></i> {{critKey.value.values}} <i class="fa fa-times-circle"></i></span> + [title]="indexingFieldService.getField(critKey.key).label"></i> {{appCriteriaTool.getFormatLabel(critKey.value.values)}} <i class="fa fa-times-circle"></i></span> + </ng-container> + <ng-container *ngIf="!isArrayType(critKey.value.values) && critKey.key === 'meta'"> + <span class="label badge-search" [title]="'meta'" (click)="removeCriteria(critKey.key, val)">"{{critKey.value.values}}" <i class="fa fa-times-circle"></i></span> </ng-container> </ng-container> </div> diff --git a/src/frontend/app/adv-search/adv-search.component.ts b/src/frontend/app/adv-search/adv-search.component.ts index ada54c4b904..3558c86ea35 100644 --- a/src/frontend/app/adv-search/adv-search.component.ts +++ b/src/frontend/app/adv-search/adv-search.component.ts @@ -127,7 +127,14 @@ export class AdvSearchComponent implements OnInit, OnDestroy { public indexingFieldService: IndexingFieldsService) { _activatedRoute.queryParams.subscribe( params => { - this.searchTerm = params.value; + if (!this.functions.empty(params.value)) { + this.searchTerm = params.value; + this.criteria = { + meta : { + values : this.searchTerm + } + }; + } } ); } @@ -142,8 +149,6 @@ export class AdvSearchComponent implements OnInit, OnDestroy { this.headerService.injectInSideBarLeft(this.adminMenuTemplate, this.viewContainerRef, 'adminMenu'); this.headerService.setHeader(this.translate.instant('lang.searchMails'), '', ''); - this.appCriteriaTool.getCriterias(); - this.initResultList(); /*this.route.params.subscribe(params => { @@ -459,7 +464,6 @@ export class AdvSearchComponent implements OnInit, OnDestroy { const indexArr = this.criteria[identifier].values.indexOf(value); this.criteria[identifier].values.splice(indexArr, 1); } - this.appCriteriaTool.refreshCriteria(this.criteria); } } diff --git a/src/frontend/app/adv-search/criteria-tool/criteria-tool.component.ts b/src/frontend/app/adv-search/criteria-tool/criteria-tool.component.ts index cad687bdd34..1c93c2ea12d 100644 --- a/src/frontend/app/adv-search/criteria-tool/criteria-tool.component.ts +++ b/src/frontend/app/adv-search/criteria-tool/criteria-tool.component.ts @@ -14,11 +14,13 @@ import { MatDialog } from '@angular/material/dialog'; import { ConfirmComponent } from '../../../plugins/modal/confirm.component'; import { NotificationService } from '../../../service/notification/notification.service'; import { AddSearchTemplateModalComponent } from './search-template/search-template-modal.component'; +import { DatePipe } from '@angular/common'; @Component({ selector: 'app-criteria-tool', templateUrl: 'criteria-tool.component.html', - styleUrls: ['criteria-tool.component.scss', '../../indexation/indexing-form/indexing-form.component.scss'] + styleUrls: ['criteria-tool.component.scss', '../../indexation/indexing-form/indexing-form.component.scss'], + providers: [DatePipe] }) export class CriteriaToolComponent implements OnInit { @@ -52,6 +54,7 @@ export class CriteriaToolComponent implements OnInit { public indexingFields: IndexingFieldsService, private dialog: MatDialog, private notify: NotificationService, + private datePipe: DatePipe, private latinisePipe: LatinisePipe) { _activatedRoute.queryParams.subscribe( params => { @@ -165,7 +168,7 @@ export class CriteriaToolComponent implements OnInit { getCurrentCriteriaValues() { const objCriteria = {}; if (!this.functions.empty(this.searchTermControl.value)) { - objCriteria['quickSearch'] = { + objCriteria['meta'] = { values: this.searchTermControl.value }; } @@ -192,6 +195,15 @@ export class CriteriaToolComponent implements OnInit { } } + getFormatLabel(value: any) { + if (typeof value === 'object') { + return `${this.datePipe.transform(value.start, 'dd/MM/y') } - ${this.datePipe.transform(value.end, 'dd/MM/y')}`; + } else { + return value; + + } + } + getLabelValues(identifier: string, values: string[]) { if (values.length === 0) { return this.translate.instant('lang.undefined'); @@ -209,9 +221,17 @@ export class CriteriaToolComponent implements OnInit { } }); + if (Object.keys(criteria)[0] === 'meta') { + this.searchTermControl.setValue(criteria['meta'].values); + } + this.getCurrentCriteriaValues(); } + set_meta_field(value: any) { + this.searchTermControl.setValue(value); + } + set_doctype_field(elem: any) { return new Promise((resolve, reject) => { this.http.get(`../rest/doctypes`).pipe( -- GitLab