diff --git a/src/frontend/app/adv-search/adv-search.component.html b/src/frontend/app/adv-search/adv-search.component.html index edf92a0fa1e10ced2da945920f4fb24c3073df9b..2ec7d87c733a947c42892f8c6e263b6395046eeb 100644 --- a/src/frontend/app/adv-search/adv-search.component.html +++ b/src/frontend/app/adv-search/adv-search.component.html @@ -48,7 +48,7 @@ [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)">"{{critKey.value.values}}" <i class="fa fa-times-circle"></i></span> + <span class="label badge-search" [title]="'meta'" (click)="removeCriteria(critKey.key)">{{critKey.value.values}} <i class="fa fa-times-circle"></i></span> </ng-container> </ng-container> </div> diff --git a/src/frontend/app/adv-search/criteria-tool/criteria-tool.component.html b/src/frontend/app/adv-search/criteria-tool/criteria-tool.component.html index 43251ba221773dd3ee53cb9848c5b09a9eb96a71..10a5c8fac1e7d1d53fd6619fc4f32f3d61450fcb 100755 --- a/src/frontend/app/adv-search/criteria-tool/criteria-tool.component.html +++ b/src/frontend/app/adv-search/criteria-tool/criteria-tool.component.html @@ -79,12 +79,13 @@ </mat-autocomplete> </mat-form-field> </div>--> - <div style="display: grid;align-items: start;grid-template-columns: repeat(2, 1fr);max-height: 300px;overflow: hidden;overflow-y: auto;"> + <div + style="display: grid;align-items: start;grid-template-columns: repeat(2, 1fr);max-height: 300px;overflow: hidden;overflow-y: auto;"> <div style="display: grid;align-items: baseline;grid-template-columns: 35% 60% 5%;" *ngFor="let field of currentCriteria;let i=index"> <ng-container *ngIf="field.type === 'string'"> <span class="criteria-label"> - <i class="fa {{field.icon}}"></i> {{field.label}} : + <i class="fa {{field.icon}}"></i> {{field.label}} <sup class="searchInAttachments" *ngIf="searchInAttachments(field.identifier)" [title]="'lang.searchInAttachmentsInfo' | translate">(1)</sup> : </span> <mat-form-field class="input-form" floatLabel="never"> <input [id]="field.identifier" type="text" matInput @@ -93,7 +94,7 @@ </ng-container> <ng-container *ngIf="field.type === 'integer'"> <span class="criteria-label"> - <i class="fa {{field.icon}}"></i> {{field.label}} : + <i class="fa {{field.icon}}"></i> {{field.label}} <sup class="searchInAttachments" *ngIf="searchInAttachments(field.identifier)" [title]="'lang.searchInAttachmentsInfo' | translate">(1)</sup> : </span> <mat-form-field class="input-form" floatLabel="never"> <input [id]="field.identifier" type="number" matInput [formControl]="field.control" @@ -102,7 +103,7 @@ </ng-container> <ng-container *ngIf="['select', 'radio', 'checkbox'].indexOf(field.type) > -1"> <span class="criteria-label"> - <i class="fa {{field.icon}}"></i> {{field.label}} : + <i class="fa {{field.icon}}"></i> {{field.label}} <sup class="searchInAttachments" *ngIf="searchInAttachments(field.identifier)" [title]="'lang.searchInAttachmentsInfo' | translate">(1)</sup> : </span> <plugin-select-search [id]="field.identifier" [showResetOption]="true" [label]="field.label" [placeholderLabel]="'lang.chooseValue' | translate" [formControlSelect]="field.control" @@ -111,7 +112,7 @@ </ng-container> <ng-container *ngIf="['selectAutocomplete'].indexOf(field.type) > -1"> <span class="criteria-label"> - <i class="fa {{field.icon}}"></i> {{field.label}} : + <i class="fa {{field.icon}}"></i> {{field.label}} <sup class="searchInAttachments" *ngIf="searchInAttachments(field.identifier)" [title]="'lang.searchInAttachmentsInfo' | translate">(1)</sup> : </span> <plugin-select-autocomplete-search #pluginSelectAutocompleteSearch [id]="field.identifier" [showResetOption]="true" [label]="field.label" @@ -122,14 +123,16 @@ </ng-container> <ng-container *ngIf="field.type === 'date'"> <span class="criteria-label"> - <i class="fa {{field.icon}}"></i> {{field.label}} : + <i class="fa {{field.icon}}"></i> {{field.label}} <sup class="searchInAttachments" *ngIf="searchInAttachments(field.identifier)" [title]="'lang.searchInAttachmentsInfo' | translate">(1)</sup> : </span> <mat-form-field class="input-form input-date" floatLabel="never" (click)="picker.open()" style="cursor:pointer;"> <mat-date-range-input [rangePicker]="picker"> - <input matStartDate [placeholder]="'lang.start' | translate" [value]="field.control.value.start" + <input matStartDate [placeholder]="'lang.start' | translate" + [value]="field.control.value.start" (dateChange)="field.control.value.start=$event.value"> - <input matEndDate [placeholder]="'lang.end' | translate" [value]="field.control.value.end" + <input matEndDate [placeholder]="'lang.end' | translate" + [value]="field.control.value.end" (dateChange)="field.control.value.end=$event.value"> </mat-date-range-input> <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle> @@ -138,7 +141,7 @@ </ng-container> <ng-container *ngIf="['senders','recipients'].indexOf(field.identifier) > -1"> <span class="criteria-label"> - <i class="fa {{field.icon}}"></i> {{field.label}} : + <i class="fa {{field.icon}}"></i> {{field.label}} <sup class="searchInAttachments" *ngIf="searchInAttachments(field.identifier)" [title]="'lang.searchInAttachmentsInfo' | translate">(1)</sup> : </span> <app-contact-autocomplete [id]="field.identifier" [control]="field.control" style="width:100%;"> @@ -146,35 +149,35 @@ </ng-container> <ng-container *ngIf="field.identifier === 'folders'"> <span class="criteria-label"> - <i class="fa {{field.icon}}"></i> {{field.label}} : + <i class="fa {{field.icon}}"></i> {{field.label}} <sup class="searchInAttachments" *ngIf="searchInAttachments(field.identifier)" [title]="'lang.searchInAttachmentsInfo' | translate">(1)</sup> : </span> <app-folder-input [control]="field.control" style="width:100%;"> </app-folder-input> </ng-container> <ng-container *ngIf="field.identifier === 'tags'"> <span class="criteria-label"> - <i class="fa {{field.icon}}"></i> {{field.label}} : + <i class="fa {{field.icon}}"></i> {{field.label}} <sup class="searchInAttachments" *ngIf="searchInAttachments(field.identifier)" [title]="'lang.searchInAttachmentsInfo' | translate">(1)</sup> : </span> <app-tag-input [control]="field.control" style="width:100%;"> </app-tag-input> </ng-container> <ng-container *ngIf="field.type === 'banAutocomplete'"> <span class="criteria-label"> - <i class="fa {{field.icon}}"></i> {{field.label}} : + <i class="fa {{field.icon}}"></i> {{field.label}} <sup class="searchInAttachments" *ngIf="searchInAttachments(field.identifier)" [title]="'lang.searchInAttachmentsInfo' | translate">(1)</sup> : </span> <app-address-ban-input [control]="field.control" style="width:100%;"> </app-address-ban-input> </ng-container> <ng-container *ngIf="field.identifier === 'registeredMail_issuingSite'"> <span class="criteria-label"> - <i class="fa {{field.icon}}"></i> {{field.label}} : + <i class="fa {{field.icon}}"></i> {{field.label}} <sup class="searchInAttachments" *ngIf="searchInAttachments(field.identifier)" [title]="'lang.searchInAttachmentsInfo' | translate">(1)</sup> : </span> <app-issuing-site-input #appIssuingSiteInput [control]="field.control" style="width:100%;"> </app-issuing-site-input> </ng-container> <ng-container *ngIf="field.identifier === 'registeredMail_recipient'"> <span class="criteria-label"> - <i class="fa {{field.icon}}"></i> {{field.label}} : + <i class="fa {{field.icon}}"></i> {{field.label}} <sup class="searchInAttachments" *ngIf="searchInAttachments(field.identifier)" [title]="'lang.searchInAttachmentsInfo' | translate">(1)</sup> : </span> <app-registered-mail-recipient-input #appRegisteredMailRecipientInput [control]="field.control" style="width:100%;"> @@ -190,6 +193,10 @@ style="color: white;font-size: 12px;font-style: inherit;padding: 10px;opacity: 0.5;padding-top: 25px;"> Les critères de recherche se cumulent sur la recherche rapide </div> + <div + style="color: white;font-size: 12px;font-style: inherit;padding: 10px;opacity: 0.5;"> + <sup>(1)</sup> {{'lang.searchInAttachmentsInfo' | translate}} + </div> </ng-container> <ng-template #loadingTemplate> <mat-spinner class="loader"></mat-spinner> diff --git a/src/frontend/app/adv-search/criteria-tool/criteria-tool.component.scss b/src/frontend/app/adv-search/criteria-tool/criteria-tool.component.scss index bb01ad85187e02a2e6a2ea3b3171d13c128d4ce3..764dfcc75a05413741c6fcae4532787029ae170a 100644 --- a/src/frontend/app/adv-search/criteria-tool/criteria-tool.component.scss +++ b/src/frontend/app/adv-search/criteria-tool/criteria-tool.component.scss @@ -116,4 +116,16 @@ align-items: center; color: #135f7f; font-weight: bold; +} + +.fieldDesc { + font-size: 10px; + text-align: right; + color: white; + font-style: italic; + opacity: 0.5; +} + +.searchInAttachments { + cursor: help; } \ No newline at end of file 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 7babc64a8603613a54071be978c72dbe8cfd76ce..e9371bd6a150637e0a402b48797d1bc4bc4c1359 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 @@ -247,6 +247,10 @@ export class CriteriaToolComponent implements OnInit { this.getCurrentCriteriaValues(); } + searchInAttachments(identifier: string) { + return ['subject', 'chrono'].indexOf(identifier) > -1; + } + set_meta_field(value: any) { this.searchTermControl.setValue(value); } diff --git a/src/frontend/service/indexing-fields.service.ts b/src/frontend/service/indexing-fields.service.ts index 0d9a2bb97158763634ae99821aeaf10b9c4766bc..e9efaac88866aee1b0e358ea5c0b17983bf7ec9d 100644 --- a/src/frontend/service/indexing-fields.service.ts +++ b/src/frontend/service/indexing-fields.service.ts @@ -29,7 +29,7 @@ export class IndexingFieldsService { { identifier: 'subject', label: this.translate.instant('lang.subject'), - icon: 'fa-question', + icon: 'fa-quote-left', unit: 'mail', type: 'string', system: true, @@ -50,6 +50,24 @@ export class IndexingFieldsService { values: [], enabled: true, }, + { + identifier: 'chrono', + label: this.translate.instant('lang.chrono'), + icon: 'fa-compass', + type: 'string', + default_value: [], + values: [], + enabled: true, + }, + { + identifier: 'creationDate', + label: this.translate.instant('lang.creationDate'), + icon: 'fa-calendar-day', + type: 'date', + default_value: [], + values: [], + enabled: true, + }, { identifier: 'recipients', label: this.translate.instant('lang.getRecipients'), diff --git a/src/lang/lang-fr.json b/src/lang/lang-fr.json index bd56d616736b25fba7d91be6cf7216365406322a..2809fbec18c7f1dcb4213e941a82182d06ec848d 100644 --- a/src/lang/lang-fr.json +++ b/src/lang/lang-fr.json @@ -2038,5 +2038,6 @@ "start": "Début", "end": "Fin", "createSearchTemplate": "Enregistrer un modèle...", - "infoImportregisteredMails" : "Les fichiers <b>sans en-tête</b> sont mappés en fonction des <b>positions des colonnes</b> du fichier.<br/>Les valeurs <b>par défaut</b> définis dans le <b>modèle d'enregistrement</b> utilisé sont prises en compte." + "infoImportregisteredMails" : "Les fichiers <b>sans en-tête</b> sont organisés en fonction des <b>positions des colonnes</b> du fichier.<br/>Les valeurs <b>par défaut</b> définis dans le <b>modèle d'enregistrement</b> utilisé sont prises en compte.", + "searchInAttachmentsInfo" : "Indique que la recherche se fait sur les courriers et les pièces jointes." }