diff --git a/src/app/search/controllers/SearchController.php b/src/app/search/controllers/SearchController.php index 2bd9ec38385a5521c37f64ef50c69fe628018662..b03642ee4620177ae94f3061af8db734d333b319 100644 --- a/src/app/search/controllers/SearchController.php +++ b/src/app/search/controllers/SearchController.php @@ -114,9 +114,9 @@ class SearchController if (!empty($queryParams['offset']) && is_numeric($queryParams['offset'])) { $offset = (int)$queryParams['offset']; } - $order = !in_array($queryParams['order'], ['asc', 'desc']) ? '' : $queryParams['order']; - $orderBy = str_replace(['chrono', 'typeLabel', 'creationDate', 'category'], ['order_alphanum(alt_identifier)', 'type_label', 'creation_date', 'category_id'], $queryParams['orderBy']); - $orderBy = !in_array($orderBy, ['order_alphanum(alt_identifier)', 'status', 'subject', 'type_label', 'creation_date', 'category_id']) ? ['creation_date'] : ["{$orderBy} {$order}"]; + $order = !in_array($queryParams['orderDir'], ['ASC', 'DESC']) ? '' : $queryParams['orderDir']; + $orderBy = str_replace(['chrono', 'typeLabel', 'creationDate', 'category', 'destUser', 'processLimitDate', 'entityLabel'], ['order_alphanum(alt_identifier)', 'type_label', 'creation_date', 'category_id', 'dest_user', 'process_limit_date', 'entity_label'], $queryParams['order']); + $orderBy = !in_array($orderBy, ['order_alphanum(alt_identifier)', 'status', 'subject', 'type_label', 'creation_date', 'category_id', 'dest_user', 'process_limit_date', 'entity_label', 'priority']) ? ['creation_date'] : ["{$orderBy} {$order}"]; $allResources = ResModel::getOnView([ 'select' => ['res_id as "resId"'], diff --git a/src/frontend/app/adv-search/adv-search.component.ts b/src/frontend/app/adv-search/adv-search.component.ts index cf02e3efcbe2e78d77d422ff3609d6dee1ce5ba5..3f7b3d34f56c37996eb035c16f037915323ef8f2 100644 --- a/src/frontend/app/adv-search/adv-search.component.ts +++ b/src/frontend/app/adv-search/adv-search.component.ts @@ -97,16 +97,16 @@ export class AdvSearchComponent implements OnInit, OnDestroy { subscription: Subscription; displayColsOrder = [ - { 'id': 'dest_user' }, - { 'id': 'category_id' }, - { 'id': 'creation_date' }, - { 'id': 'process_limit_date' }, - { 'id': 'entity_label' }, + { 'id': 'destUser' }, + { 'id': 'categoryId' }, + { 'id': 'creationDate' }, + { 'id': 'processLimitDate' }, + { 'id': 'entityLabel' }, { 'id': 'subject' }, - { 'id': 'alt_identifier' }, + { 'id': 'chrono' }, { 'id': 'priority' }, { 'id': 'status' }, - { 'id': 'type_label' } + { 'id': 'typeLabel' } ]; @ViewChild('adminMenuTemplate', { static: true }) adminMenuTemplate: TemplateRef<any>; 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 8c6a18ca50b4a0880da53d56a398874641761b4c..baa20a115c50a8e427927daa187695ca345ad73a 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 @@ -526,7 +526,7 @@ export class CriteriaToolComponent implements OnInit { set_role_field(elem: any) { elem.type = 'selectAutocomplete'; - elem.routeDatas = elem.identifier === 'role_dest' ? ['/rest/autocomplete/users?serial=serialId'] : ['/rest/autocomplete/users', '/rest/autocomplete/entities?serial=serialId']; + elem.routeDatas = ['role_dest', 'role_visa', 'role_sign'].indexOf(elem.identifier) > -1 ? ['/rest/autocomplete/users?serial=serialId'] : ['/rest/autocomplete/users', '/rest/autocomplete/entities?serial=serialId']; elem.extraModel = ['type']; elem.returnValue = 'object'; } diff --git a/src/frontend/plugins/select-autocomplete-search/plugin-select-autocomplete-search.component.ts b/src/frontend/plugins/select-autocomplete-search/plugin-select-autocomplete-search.component.ts index 780e6554ea98058ea742621f115ccdcab2a56d64..71b8ffb544e11097a517a8c79b01a4bfeb31ec48 100644 --- a/src/frontend/plugins/select-autocomplete-search/plugin-select-autocomplete-search.component.ts +++ b/src/frontend/plugins/select-autocomplete-search/plugin-select-autocomplete-search.component.ts @@ -191,8 +191,6 @@ export class PluginSelectAutocompleteSearchComponent implements OnInit, OnDestro // tap(() => this.loading = true), switchMap((data: any) => this.getDatas(data)), tap((data: any) => { - console.log(data); - let selectedDatas = []; let unselectedDatasSearch = []; let selectedDatasId = []; diff --git a/src/frontend/service/criteriaSearch.service.ts b/src/frontend/service/criteriaSearch.service.ts index 106721c48c80d8223ba43b32aa1e2179fc5be7f6..5f8eae393b5179b14fc77a86723fb6e6b1583afb 100644 --- a/src/frontend/service/criteriaSearch.service.ts +++ b/src/frontend/service/criteriaSearch.service.ts @@ -17,7 +17,7 @@ export class CriteriaSearchService { listsProperties: ListProperties = { page : 0, pageSize : 0, - order: 'creation_date', + order: 'creationDate', orderDir: 'DESC', criteria: [], filters: [] @@ -68,8 +68,6 @@ export class CriteriaSearchService { } formatDatas(data: any) { - console.log(data); - Object.keys(data).forEach(key => { if (['folders', 'tags', 'registeredMail_issuingSite'].indexOf(key) > -1 || ['select', 'radio', 'checkbox'].indexOf(data[key].type) > -1) { data[key].values = data[key].values.map((val: any) => val.id); @@ -77,7 +75,7 @@ export class CriteriaSearchService { data[key].values.start = this.datePipe.transform(data[key].values.start, 'y-MM-dd'); data[key].values.end = this.datePipe.transform(data[key].values.end, 'y-MM-dd'); } - // delete data[key].type; + delete data[key].type; }); return data; diff --git a/src/frontend/service/indexing-fields.service.ts b/src/frontend/service/indexing-fields.service.ts index fe28370efcb227fd9b69360eba4df05660f02ad1..1dbdf877e72df5e0d06e932fd8a4fb4febc0ef15 100644 --- a/src/frontend/service/indexing-fields.service.ts +++ b/src/frontend/service/indexing-fields.service.ts @@ -389,6 +389,24 @@ export class IndexingFieldsService { enabled: true, }); }); + fields.push({ + identifier: `role_visa`, + label: this.translate.instant('lang.visaUser'), + icon: 'fa-user-check', + type: 'select', + default_value: null, + values: [], + enabled: true, + }); + fields.push({ + identifier: `role_sign`, + label: this.translate.instant('lang.signUser'), + icon: 'fa-user-tie', + type: 'select', + default_value: null, + values: [], + enabled: true, + }); this.roleFields = fields; }), finalize(() => resolve(this.roleFields)), diff --git a/src/lang/lang-fr.json b/src/lang/lang-fr.json index bec8f7eeef7d159c251abd57b02baaf0db22306e..b71b0fb52f8aad551eb188f1df574f2bc24a1d9f 100644 --- a/src/lang/lang-fr.json +++ b/src/lang/lang-fr.json @@ -252,6 +252,7 @@ "cantMoveFirstLevel": "La sous-chemise peut uniquement être déplacée dans une chemise", "categories": "Catégories", "category_id": "Catégorie", + "categoryId": "Catégorie", "changeMyPassword": "Modifier mon mot de passe", "changePassword": "Modifier le mot de passe", "changePasswordInfo": "vous êtes invité à changer de mot de passe", @@ -486,6 +487,7 @@ "description": "Description", "destUserSetToDefault": "L'attributaire sera celui de la liste de diffusion de l'entité initiatrice", "dest_user": "Attributaire", + "destUser": "Attributaire", "destination": "Entité traitante", "destinationChangingInfo": "Le courrier sera réattribué à l'entité", "destinationChangingInfoMass": "Les courriers issus d'une entité externe à ", @@ -630,6 +632,7 @@ "entityUpdated": "Entité modifiée", "entityWithoutParentMessage": "Si vous n'êtes pas directement membre de cette entité, vous le deviendrez automatiquement.", "entity_label": "Entité", + "entityLabel": "Entité", "entries": "entrée(s)", "eraseAll": "Tout effacer", "eraseAllFilters": "Effacer tous les filtres", @@ -1544,6 +1547,7 @@ "typeNewPassword": "Entrez un nouveau mot de passe", "typeValue": "Saisissez une valeur", "type_label": "Type de courrier", + "typeLabel": "Type de courrier", "typist": "Rédacteur", "unableToDelete": "Impossible de supprimer", "unableToSuspend": "Impossible de suspendre",