diff --git a/src/app/action/controllers/PreProcessActionController.php b/src/app/action/controllers/PreProcessActionController.php index f3631fdf35c31849bca08969408470123d0b7dda..c0de6e417676622fc8fee8e1cdd892273b3c04d1 100755 --- a/src/app/action/controllers/PreProcessActionController.php +++ b/src/app/action/controllers/PreProcessActionController.php @@ -956,18 +956,6 @@ class PreProcessActionController $resource['alt_identifier'] = _UNDEFINED; } - $circuit = ListInstanceModel::get([ - 'select' => ['requested_signature'], - 'where' => ['res_id = ?', 'difflist_type = ?', 'process_date is null'], - 'data' => [$resId, 'VISA_CIRCUIT'], - 'orderBy' => ['listinstance_id'], - 'limit' => 1 - ]); - if (empty($circuit)) { - $resourcesInformations['error'][] = ['alt_identifier' => $resource['alt_identifier'], 'res_id' => $resId, 'reason' => 'noCircuitAvailable']; - continue; - } - $attachments = AttachmentModel::get([ 'select' => ['status'], 'where' => ['res_id_master = ?', 'attachment_type in (?)', 'in_signature_book = ?', 'status not in (?)'], diff --git a/src/app/entity/controllers/ListTemplateController.php b/src/app/entity/controllers/ListTemplateController.php index a9028db8bc9f39dc2e433a17c76e2b50858c854a..6654edaaaff8de0786e764b4ca050a3811af14be 100755 --- a/src/app/entity/controllers/ListTemplateController.php +++ b/src/app/entity/controllers/ListTemplateController.php @@ -62,6 +62,12 @@ class ListTemplateController $listTemplateItems[$key]['idToDisplay'] = UserModel::getLabelledUserById(['id' => $value['item_id']]); $listTemplateItems[$key]['descriptionToDisplay'] = UserModel::getPrimaryEntityById(['id' => $value['item_id'], 'select' => ['entity_label']])['entity_label']; } + $listTemplateItems[$key]['hasPrivilege'] = true; + if ($listTemplate['type'] == 'visaCircuit' && !PrivilegeController::hasPrivilege(['privilegeId' => 'visa_documents', 'userId' => $value['item_id']]) && !PrivilegeController::hasPrivilege(['privilegeId' => 'sign_document', 'userId' => $value['item_id']])) { + $listTemplateItems[$key]['hasPrivilege'] = false; + } elseif ($listTemplate['type'] == 'opinionCircuit' && !PrivilegeController::hasPrivilege(['privilegeId' => 'avis_documents', 'userId' => $value['item_id']])) { + $listTemplateItems[$key]['hasPrivilege'] = false; + } } $roles = EntityModel::getRoles(); diff --git a/src/frontend/app/administration/diffusionModel/diffusionModel-administration.component.html b/src/frontend/app/administration/diffusionModel/diffusionModel-administration.component.html index b93bd7dd395be8a382b18e7686293ec6ab27e6f6..c61d6d2dee3aa373c6014259deb7ecb426f7f80c 100755 --- a/src/frontend/app/administration/diffusionModel/diffusionModel-administration.component.html +++ b/src/frontend/app/administration/diffusionModel/diffusionModel-administration.component.html @@ -50,9 +50,9 @@ <plugin-autocomplete [labelPlaceholder]="lang.addUser" [labelList]="lang.availableUsers" [routeDatas]="diffusionModel.type == 'visaCircuit' ? ['/rest/autocomplete/users/circuit'] : ['/rest/autocomplete/users/circuit?circuit=opinion']" [targetSearchKey]="'idToDisplay'" [subInfoKey]="'descriptionToDisplay'" (triggerEvent)="addElemListModelVisa($event)"></plugin-autocomplete> <mat-list> <span dnd-sortable-container [dropZones]="['boxers-zone']" [sortableData]="diffusionModel.items"> - <mat-list-item disableRipple="true" *ngFor="let template of diffusionModel.items; let i = index" title="{{lang.move}}" + <mat-list-item disableRipple="true" *ngFor="let template of diffusionModel.items; let i = index" [title]="template.hasPrivilege ? lang.move : lang.insufficientPrivilege" dnd-sortable [sortableIndex]="i" (onDropSuccess)="updateDiffListVisa(template)"> - <mat-icon color="primary" [class]="template.item_mode == 'sign' ? 'fa fa-certificate' : 'fa fa-user'" mat-list-icon></mat-icon> + <mat-icon [class]="template.item_mode == 'sign' ? 'fa fa-certificate' : 'fa fa-user'" [class.primaryColor]="template.hasPrivilege" [class.redColor]="!template.hasPrivilege" mat-list-icon></mat-icon> <p mat-line>{{template.idToDisplay}} <small style="opacity:0.5;">{{template.descriptionToDisplay}}</small> </p> diff --git a/src/frontend/app/administration/diffusionModel/diffusionModel-administration.component.css b/src/frontend/app/administration/diffusionModel/diffusionModel-administration.component.scss old mode 100755 new mode 100644 similarity index 70% rename from src/frontend/app/administration/diffusionModel/diffusionModel-administration.component.css rename to src/frontend/app/administration/diffusionModel/diffusionModel-administration.component.scss index bd3247a5c484adc1fcd7a7c540a8b40e90cc13c6..903b07dc24d45f7147ea0f5886c89e2e617c7744 --- a/src/frontend/app/administration/diffusionModel/diffusionModel-administration.component.css +++ b/src/frontend/app/administration/diffusionModel/diffusionModel-administration.component.scss @@ -1,3 +1,5 @@ +@import '../../../css/vars.scss'; + .mat-list-item[draggable="false"]:hover{ background: inherit; } @@ -12,4 +14,12 @@ .mat-list-item[draggable="true"] mat-icon{ cursor: move; -} \ No newline at end of file +} + +.primaryColor { + color: $primary; +} + +.redColor { + color: #e4342b; +} diff --git a/src/frontend/app/administration/diffusionModel/diffusionModel-administration.component.ts b/src/frontend/app/administration/diffusionModel/diffusionModel-administration.component.ts index 0d81c3b67b727b7cdb5a0721432b6e54ba6c56f0..06c2eb7b5b19e363ac7b60d02e4995a6d70c11cf 100755 --- a/src/frontend/app/administration/diffusionModel/diffusionModel-administration.component.ts +++ b/src/frontend/app/administration/diffusionModel/diffusionModel-administration.component.ts @@ -11,7 +11,7 @@ declare function $j(selector: any): any; @Component({ templateUrl: "diffusionModel-administration.component.html", - styleUrls: ['diffusionModel-administration.component.css'], + styleUrls: ['diffusionModel-administration.component.scss'], providers: [NotificationService, AppService] }) export class DiffusionModelAdministrationComponent implements OnInit { diff --git a/src/frontend/app/notification.service.ts b/src/frontend/app/notification.service.ts index 0940a2ac4dca5f5931b164d63bdff8a8c082305a..32bfc3930fc33cb0bfe2bc96c71855d1dfd178a0 100755 --- a/src/frontend/app/notification.service.ts +++ b/src/frontend/app/notification.service.ts @@ -47,7 +47,11 @@ export class NotificationService { } else { if (err.error !== undefined) { if (err.error.errors !== undefined) { - this.error(err.error.errors, err.url); + if (err.error.lang !== undefined) { + this.error('lang.' + err.error.lang, err.url); + } else { + this.error(err.error.errors, err.url); + } if (err.status === 403 || err.status === 404) { this.router.navigate(['/home']); } @@ -80,4 +84,4 @@ export class NotificationService { this.error(err); } } -} \ No newline at end of file +} diff --git a/src/frontend/app/visa/visa-workflow.component.ts b/src/frontend/app/visa/visa-workflow.component.ts index dcb5f7395e82d0cababea9b11b17d5eadfb3d2e1..6a758e405bbb9cf6d525b35c0f3cb90087186dac 100644 --- a/src/frontend/app/visa/visa-workflow.component.ts +++ b/src/frontend/app/visa/visa-workflow.component.ts @@ -327,10 +327,10 @@ export class VisaWorkflowComponent implements OnInit { 'listinstance_id': key, 'id': element.userId, 'labelToDisplay': element.userDisplay, - 'requested_signature': element.mode === 'visa' ? false : true, + 'requested_signature': element.mode !== 'visa', 'process_date': this.functions.formatFrenchDateToTechnicalDate(element.processDate), 'picture': '' - } + }; this.visaWorkflow.items.push(user); this.http.get("../../rest/maarchParapheur/user/" + element.userId + "/picture") .subscribe((data: any) => { @@ -475,7 +475,8 @@ export class VisaWorkflowComponent implements OnInit { this.http.get(`../../rest/listTemplates/${item.id}`).pipe( tap((data: any) => { this.visaWorkflow.items = this.visaWorkflow.items.concat( - data.listTemplate.items.map((itemTemplate: any) => { + + data.listTemplate.items.filter((itemTemplate: any) => itemTemplate.hasPrivilege === true).map((itemTemplate: any) => { return { item_id: itemTemplate.item_id, item_type: 'user', @@ -483,7 +484,7 @@ export class VisaWorkflowComponent implements OnInit { item_entity: itemTemplate.descriptionToDisplay, difflist_type: 'VISA_CIRCUIT', signatory: false, - requested_signature: itemTemplate.item_mode === 'sign' ? true : false + requested_signature: itemTemplate.item_mode === 'sign' } }) ); @@ -503,11 +504,7 @@ export class VisaWorkflowComponent implements OnInit { } emptyWorkflow() { - if (this.visaWorkflow.items.length === 0) { - return true; - } else { - return false; - } + return this.visaWorkflow.items.length === 0; } workflowEnd() { @@ -570,10 +567,6 @@ export class VisaWorkflowComponent implements OnInit { } isModified() { - if (this.loading || JSON.stringify(this.visaWorkflow.items) === JSON.stringify(this.visaWorkflowClone)) { - return false; - } else { - return true; - } + return !(this.loading || JSON.stringify(this.visaWorkflow.items) === JSON.stringify(this.visaWorkflowClone)); } } diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts index a6bf0fd375ef21ee4892cacff754449a2fcdfdf8..660f9c01f7a6ebea84fbf62d5f5ceb82530fe788 100755 --- a/src/frontend/lang/lang-en.ts +++ b/src/frontend/lang/lang-en.ts @@ -1553,5 +1553,6 @@ export const LANG_EN = { "willBeTransferedToNewTag" : "will be transfered to selected tag", "detailDoc" : "Detail page", "emptySubject" : "Empty subject", - "editAcknowledgementReceipt" : "Edit the acknowledgement receipt", + "editAcknowledgementReceipt" : "Edit the acknowledgement receipt", + "insufficientPrivilege" : "Privilege insuffisant", }; diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts index a8be924b32a501fdeccba836fd91f340e7c97b69..f3289c79a9ee167a7b161e967a4918dd015e7b88 100755 --- a/src/frontend/lang/lang-fr.ts +++ b/src/frontend/lang/lang-fr.ts @@ -1593,4 +1593,5 @@ export const LANG_FR = { "detailDoc" : "Fiche détaillée", "emptySubject" : "Objet vide", "editAcknowledgementReceipt" : "Editer l'accusé de réception", + "insufficientPrivilege" : "Privilège insuffisant", }; diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts index d12620d68f52df01e4d1340b25d081b7944106eb..751f7f536a79b7f77f739b3c0f1ee362e4893cb1 100755 --- a/src/frontend/lang/lang-nl.ts +++ b/src/frontend/lang/lang-nl.ts @@ -1579,4 +1579,5 @@ export const LANG_NL = { "detailDoc" : "Detail page", //_TO_TRANSLATE "emptySubject" : "Empty subject", //_TO_TRANSLATE "editAcknowledgementReceipt" : "Edit the acknowledgement receipt", //_TO_TRANSLATE + "insufficientPrivilege" : "Privilege insuffisant", //TRANSLATE };