Newer
Older
import { Component, Input, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { LANG } from '../translate.component';
import { NotificationService } from '../notification.service';
import { CdkDragDrop, moveItemInArray, transferArrayItem, CdkDrag } from '@angular/cdk/drag-drop';
@Component({
selector: 'app-diffusions-list',
templateUrl: 'diffusions-list.component.html',
styleUrls: ['diffusions-list.component.scss'],
providers: [NotificationService]
})
export class DiffusionsListComponent implements OnInit {
lang: any = LANG;
listinstance: any = [];
visaCircuit: any = [];
avisCircuit: any = [];
roles: any = [];
loading: boolean = true;
tabVisaCircuit: boolean = false;
tabAvisCircuit: boolean = false;
data: any;
availableRoles: any[] = [];
diffList: any = {};
@Input('injectDatas') injectDatas: any;
constructor(public http: HttpClient, private notify: NotificationService) { }
ngOnInit(): void {
this.http.get("../../rest/listTemplates/types/entity_id/roles")
data['roles'].forEach((element: any) => {
if (element.id == 'cc') {
element.id = 'copy';
}
if (element.available) {
this.availableRoles.push(element);
this.diffList[element.id] = {
'label': element.label,
'items': []
};
}
});
if (this.injectDatas.resId > 0) {
this.loadListinstance(this.injectDatas.resId);
} else {
this.loadListModel('COU');
}, (err: any) => {
this.notify.error(err.error.errors);
});
}
drop(event: CdkDragDrop<string[]>) {
if (event.previousContainer === event.container) {
//moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
} else if (event.container.id != 'dest') {
transferArrayItem(event.previousContainer.data,
event.container.data,
event.previousIndex,
event.currentIndex);
}
}
noReturnPredicate() {
return false;
}
allPredicate() {
return true;
}
loadListModel(entityId: string) {
this.loading = true;
this.availableRoles.forEach(element => {
this.diffList[element.id].items = [];
});
// TO DO : ADD ROUTE
/*this.http.get("../../rest/???")
.subscribe((data: any) => {
this.loading = false;
});*/
this.diffList['dest'].items.push(
{
"listinstance_id": 20,
"sequence": 0,
"item_mode": "dest",
"item_id": "bbain",
"item_type": "user_id",
"item_firstname": "Barbara",
"item_lastname": "BAIN",
"item_entity": "P\u00f4le Jeunesse et Sport",
"viewed": 0,
"process_date": null,
"process_comment": "",
"signatory": false,
"requested_signature": false
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
this.diffList['copy'].items.push(
{
"listinstance_id": 21,
"sequence": 0,
"item_mode": "copy",
"item_id": "DSG",
"item_type": "entity_id",
"item_entity": "Secr\u00e9tariat G\u00e9n\u00e9ral",
"viewed": 0,
"process_date": null,
"process_comment": null,
"signatory": false,
"requested_signature": false
}
);
this.diffList['copy'].items.push(
{
"listinstance_id": 20,
"sequence": 0,
"item_mode": "copy",
"item_id": "bboule",
"item_type": "user_id",
"item_firstname": "Bruno",
"item_lastname": "Boule",
"item_entity": "Archives",
"viewed": 0,
"process_date": null,
"process_comment": "",
"signatory": false,
"requested_signature": false
});
this.loading = false;
}
loadListinstance(resId: number) {
this.loading = true;
this.http.get("../../rest/res/" + resId + "/listinstance").subscribe((data: any) => {
this.availableRoles.forEach(element => {
this.diffList[element.id].items = [];
});
Object.keys(data).forEach(diffusionRole => {
data[diffusionRole].forEach((line:any) => {
this.diffList[line.item_mode].items.push(line);
});
});
this.loading = false;
}, (err: any) => {
this.notify.handleErrors(err);
});
}
deleteItem(roleId:string, index: number) {
this.diffList[roleId].items.splice(index, 1);