diff --git a/src/frontend/app/adv-search/adv-search.component.html b/src/frontend/app/adv-search/adv-search.component.html index 8fd39af0eb30832d55d77a315796fcf8a13be977..3ef99b324373005800be141b0cfc20c6d12f784b 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 ada54c4b9042ba987712ca6ec54be3fe7fb73791..3558c86ea35d6e63297b2a07ee45288b78cfabdc 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 cad687bdd344e7996c05c0fdfe5d5dea1aa05e5f..1c93c2ea12d4b5625cabd136f4ee2ad1c2e2871c 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(