diff --git a/apps/maarch_entreprise/Views/entities-administration.component.html b/apps/maarch_entreprise/Views/entities-administration.component.html
index fb034eef5ece68af3739783237d3016828c3a8d4..ce288156312506c23a2a9d1a3a11547fecd35832 100644
--- a/apps/maarch_entreprise/Views/entities-administration.component.html
+++ b/apps/maarch_entreprise/Views/entities-administration.component.html
@@ -25,7 +25,7 @@
             <mat-divider></mat-divider>
             <mat-nav-list>
                 <h3 mat-subheader>Role(s) supplémentaire(s)</h3>
-                <ng-container *ngFor="let role of currentEntity.roles; let i = index">
+                <ng-container *ngFor="let role of listTemplateRoles">
                     <a mat-list-item disableRipple="true" *ngIf="role.id != 'dest' && role.id != 'cc'">
                         <mat-icon color="primary" mat-list-icon style="margin-bottom: 20px;">
                             <mat-slide-toggle [(ngModel)]="role.available" [checked]="role.available" color="primary" [ngStyle]="{'opacity': role.available ? '' : '0.5'}" (change)="toggleRole(role)" [disabled]="role.id == 'dest'"></mat-slide-toggle>
diff --git a/apps/maarch_entreprise/js/angular/app/administration/entities-administration.component.ts b/apps/maarch_entreprise/js/angular/app/administration/entities-administration.component.ts
index 76d7f64b61030f235af55d61531c240ec53f30b2..06b49dc8c7120cfda09e1d65ad7e1d224c70e7e1 100644
--- a/apps/maarch_entreprise/js/angular/app/administration/entities-administration.component.ts
+++ b/apps/maarch_entreprise/js/angular/app/administration/entities-administration.component.ts
@@ -18,35 +18,37 @@ declare var angularGlobals: any;
     providers: [NotificationService]
 })
 export class EntitiesAdministrationComponent extends AutoCompletePlugin implements OnInit {
-    mobileQuery: MediaQueryList;
-    private _mobileQueryListener: () => void;
-    dialogRef: MatDialogRef<any>;
-    coreUrl: string;
-    lang: any = LANG;
-    isDraggable: boolean = true;
 
-    entities: any[] = [];
-    entityTypeList: any[];
-    currentEntity: any = {};
-    config: any = {};
+    private _mobileQueryListener    : () => void;
+    mobileQuery                     : MediaQueryList;
+    dialogRef                       : MatDialogRef<any>;
 
-    loading: boolean = false;
-    creationMode: boolean = false;
-    idCircuitVisa: number;
+    coreUrl                         : string;
+    lang                            : any       = LANG;
+    loading                         : boolean   = false;
+
+    entities                        : any[]     = [];
+    listTemplateRoles               : any[]     = [];
+    entityTypeList                  : any[]     = [];
+    currentEntity                   : any       = {};
+    isDraggable                     : boolean   = true;
+    creationMode                    : boolean   = false;
+    idCircuitVisa                   : number;
+    config                          : any       = {};
+
+    dataSource          = new MatTableDataSource(this.currentEntity.users);
+    displayedColumns    = ['firstname', 'lastname'];
 
-    displayedColumns = ['firstname', 'lastname'];
-    dataSource = new MatTableDataSource(this.currentEntity.users);
-    @ViewChild('snav2') sidenav: MatSidenav;
 
+    @ViewChild('snav2') sidenav: MatSidenav;
     @ViewChild(MatPaginator) paginator: MatPaginator;
     @ViewChild(MatSort) sort: MatSort;
     applyFilter(filterValue: string) {
-        filterValue = filterValue.trim(); // Remove whitespace
-        filterValue = filterValue.toLowerCase(); // MatTableDataSource defaults to lowercase matches
+        filterValue = filterValue.trim();
+        filterValue = filterValue.toLowerCase();
         this.dataSource.filter = filterValue;
     }
 
-
     constructor(changeDetectorRef: ChangeDetectorRef, media: MediaMatcher, public http: HttpClient, private notify: NotificationService, public dialog: MatDialog) {
         super(http, ['usersAndEntities', 'visaUsers']);
         $j("link[href='merged_css.php']").remove();
@@ -69,10 +71,18 @@ export class EntitiesAdministrationComponent extends AutoCompletePlugin implemen
             }, (err) => {
                 this.notify.error(err.error.errors);
             });
+        this.http.get(this.coreUrl + "rest/listTemplates/types/entity_id/roles")
+            .subscribe((data: any) => {
+                this.listTemplateRoles = data['roles'];
+            }, (err) => {
+                this.notify.error(err.error.errors);
+            });
 
         this.http.get(this.coreUrl + "rest/entities")
             .subscribe((data: any) => {
                 this.entities = data['entities'];
+                this.loading = false;
+
                 setTimeout(() => {
                     $j('#jstree').jstree({
                         "checkbox": {
@@ -97,8 +107,8 @@ export class EntitiesAdministrationComponent extends AutoCompletePlugin implemen
                         },
                         "dnd": {
                             is_draggable: function (nodes: any) {
-                                var i = 0,
-                                    j = nodes.length;
+                                var i = 0;
+                                var j = nodes.length;
                                 for (; i < j; i++) {
                                     if (!nodes[i].original.allowed) {
                                         return false;
@@ -150,7 +160,6 @@ export class EntitiesAdministrationComponent extends AutoCompletePlugin implemen
                         $j('#jstree').jstree('select_node', data.data.nodes[0]);
                     });
                 }, 0);
-                this.loading = false;
             }, () => {
                 location.href = "index.php";
             });
@@ -179,7 +188,7 @@ export class EntitiesAdministrationComponent extends AutoCompletePlugin implemen
             "title": this.currentEntity.entity_id,
             "description": this.currentEntity.entity_id,
             "items": Array()
-        }
+        };
         var inListModel = false;
         var newElemListModel: any = {};
 
@@ -271,9 +280,7 @@ export class EntitiesAdministrationComponent extends AutoCompletePlugin implemen
             "title": this.currentEntity.entity_id,
             "description": this.currentEntity.entity_id,
             "items": Array()
-        }
-        var itemMode = '';
-
+        };
         var newElemListModel = {
             "id": '',
             "item_type": 'user_id',
@@ -351,7 +358,7 @@ export class EntitiesAdministrationComponent extends AutoCompletePlugin implemen
 
     moveEntity() {
         this.http.put(this.coreUrl + "rest/entities/" + this.currentEntity.entity_id, this.currentEntity)
-            .subscribe((data: any) => {
+            .subscribe(() => {
                 this.notify.success(this.lang.entityUpdated);
             }, (err) => {
                 this.notify.error(err.error.errors);
@@ -422,7 +429,6 @@ export class EntitiesAdministrationComponent extends AutoCompletePlugin implemen
     prepareEntityAdd() {
         this.creationMode = true;
         this.isDraggable = false;
-        console.log(this.currentEntity.entity_id);
         if (this.currentEntity.entity_id) {
             for (let i = 0; i < this.entities.length; i++) {
                 if (this.entities[i].entity_id == this.currentEntity.entity_id) {
@@ -441,10 +447,8 @@ export class EntitiesAdministrationComponent extends AutoCompletePlugin implemen
                 }
             }
         }
-
     }
 
-
     updateStatus(entity: any, method: string) {
         this.http.put(this.coreUrl + "rest/entities/" + entity['entity_id'] + "/status", { "method": method })
             .subscribe((data: any) => {
@@ -461,7 +465,7 @@ export class EntitiesAdministrationComponent extends AutoCompletePlugin implemen
             "title": this.currentEntity.entity_id,
             "description": this.currentEntity.entity_id,
             "items": Array()
-        }
+        };
 
         if (role == 'dest' && this.currentEntity.listTemplate.dest.length > 0) {
             this.currentEntity.listTemplate.dest.forEach((listModel: any) => {
@@ -511,7 +515,7 @@ export class EntitiesAdministrationComponent extends AutoCompletePlugin implemen
             "title": this.currentEntity.entity_id,
             "description": this.currentEntity.entity_id,
             "items": Array()
-        }
+        };
         this.currentEntity.visaTemplate.forEach((listModel: any, i: number) => {
             listModel.sequence = i;
             if (i == (this.currentEntity.visaTemplate.length - 1)) {
@@ -544,7 +548,7 @@ export class EntitiesAdministrationComponent extends AutoCompletePlugin implemen
             "title": this.currentEntity.entity_id,
             "description": this.currentEntity.entity_id,
             "items": Array()
-        }
+        };
         this.currentEntity.roles.forEach((role: any) => {
             if (role.available == true) {
                 if (this.currentEntity.listTemplate[role.id]) {
@@ -577,7 +581,7 @@ export class EntitiesAdministrationComponent extends AutoCompletePlugin implemen
                 "title": this.currentEntity.entity_id,
                 "description": this.currentEntity.entity_id,
                 "items": Array()
-            }
+            };
 
             this.currentEntity.visaTemplate.forEach((listModel: any, i: number) => {
                 listModel.sequence = i;
@@ -603,7 +607,7 @@ export class EntitiesAdministrationComponent extends AutoCompletePlugin implemen
                 });
         } else {
             this.http.delete(this.coreUrl + "rest/listTemplates/" + this.idCircuitVisa)
-                .subscribe((data: any) => {
+                .subscribe(() => {
                     this.idCircuitVisa = null;
                     this.notify.success(this.lang.entityUpdated);
                 }, (err) => {
@@ -613,9 +617,11 @@ export class EntitiesAdministrationComponent extends AutoCompletePlugin implemen
     }
 
     toggleRole(role:any) {
-        this.http.put(this.coreUrl + "rest/listTemplates/types/roles",{"roles":this.currentEntity.roles,"typeId":"entity_id"})
-            .subscribe((data: any) => {
-                this.currentEntity.listTemplate[role.id] = [];
+        this.http.put(this.coreUrl + "rest/listTemplates/types/entity_id/roles", {"roles" : this.listTemplateRoles})
+            .subscribe(() => {
+                if (this.currentEntity.listTemplate) {
+                    this.currentEntity.listTemplate[role.id] = [];
+                }
                 this.notify.success(this.lang.entityUpdated);
             }, (err) => {
                 this.notify.error(err.error.errors);
diff --git a/package-lock.json b/package-lock.json
index ce7bf8fce6ccf2a9a1e8b7c1bd97337ec5a0c441..920d06d1357dc46b16922a8ef8da7bb030cee3ce 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2894,6 +2894,7 @@
       "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz",
       "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==",
       "dev": true,
+      "optional": true,
       "requires": {
         "nan": "2.9.2",
         "node-pre-gyp": "0.6.39"
@@ -2902,12 +2903,14 @@
         "abbrev": {
           "version": "1.1.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "ajv": {
           "version": "4.11.8",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "co": "4.6.0",
             "json-stable-stringify": "1.0.1"
@@ -2921,12 +2924,14 @@
         "aproba": {
           "version": "1.1.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "are-we-there-yet": {
           "version": "1.1.4",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "delegates": "1.0.0",
             "readable-stream": "2.2.9"
@@ -2935,27 +2940,32 @@
         "asn1": {
           "version": "0.2.3",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "assert-plus": {
           "version": "0.2.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "asynckit": {
           "version": "0.4.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "aws-sign2": {
           "version": "0.6.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "aws4": {
           "version": "1.6.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "balanced-match": {
           "version": "0.4.2",
@@ -3004,12 +3014,14 @@
         "caseless": {
           "version": "0.12.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "co": {
           "version": "4.6.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "code-point-at": {
           "version": "1.1.0",
@@ -3051,6 +3063,7 @@
           "version": "1.14.1",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "assert-plus": "1.0.0"
           },
@@ -3058,7 +3071,8 @@
             "assert-plus": {
               "version": "1.0.0",
               "bundled": true,
-              "dev": true
+              "dev": true,
+              "optional": true
             }
           }
         },
@@ -3074,7 +3088,8 @@
         "deep-extend": {
           "version": "0.4.2",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "delayed-stream": {
           "version": "1.0.0",
@@ -3084,12 +3099,14 @@
         "delegates": {
           "version": "1.0.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "detect-libc": {
           "version": "1.0.2",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "ecc-jsbn": {
           "version": "0.1.1",
@@ -3103,7 +3120,8 @@
         "extend": {
           "version": "3.0.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "extsprintf": {
           "version": "1.0.2",
@@ -3113,7 +3131,8 @@
         "forever-agent": {
           "version": "0.6.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "form-data": {
           "version": "2.1.4",
@@ -3146,6 +3165,7 @@
           "version": "1.0.5",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "fstream": "1.0.11",
             "inherits": "2.0.3",
@@ -3156,6 +3176,7 @@
           "version": "2.7.4",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "aproba": "1.1.1",
             "console-control-strings": "1.1.0",
@@ -3171,6 +3192,7 @@
           "version": "0.1.7",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "assert-plus": "1.0.0"
           },
@@ -3178,7 +3200,8 @@
             "assert-plus": {
               "version": "1.0.0",
               "bundled": true,
-              "dev": true
+              "dev": true,
+              "optional": true
             }
           }
         },
@@ -3203,7 +3226,8 @@
         "har-schema": {
           "version": "1.0.5",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "har-validator": {
           "version": "4.2.1",
@@ -3218,7 +3242,8 @@
         "has-unicode": {
           "version": "2.0.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "hawk": {
           "version": "3.1.3",
@@ -3240,6 +3265,7 @@
           "version": "1.1.1",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "assert-plus": "0.2.0",
             "jsprim": "1.4.0",
@@ -3263,7 +3289,8 @@
         "ini": {
           "version": "1.3.4",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "is-fullwidth-code-point": {
           "version": "1.0.0",
@@ -3276,7 +3303,8 @@
         "is-typedarray": {
           "version": "1.0.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "isarray": {
           "version": "1.0.0",
@@ -3286,7 +3314,8 @@
         "isstream": {
           "version": "0.1.2",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "jodid25519": {
           "version": "1.0.2",
@@ -3306,12 +3335,14 @@
         "json-schema": {
           "version": "0.2.3",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "json-stable-stringify": {
           "version": "1.0.1",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "jsonify": "0.0.0"
           }
@@ -3319,17 +3350,20 @@
         "json-stringify-safe": {
           "version": "5.0.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "jsonify": {
           "version": "0.0.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "jsprim": {
           "version": "1.4.0",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "assert-plus": "1.0.0",
             "extsprintf": "1.0.2",
@@ -3389,6 +3423,7 @@
           "version": "0.6.39",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "detect-libc": "1.0.2",
             "hawk": "3.1.3",
@@ -3417,6 +3452,7 @@
           "version": "4.1.0",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "are-we-there-yet": "1.1.4",
             "console-control-strings": "1.1.0",
@@ -3503,6 +3539,7 @@
           "version": "1.2.1",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "deep-extend": "0.4.2",
             "ini": "1.3.4",
@@ -3536,6 +3573,7 @@
           "version": "2.81.0",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "aws-sign2": "0.6.0",
             "aws4": "1.6.0",
@@ -3604,6 +3642,7 @@
           "version": "1.13.0",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "asn1": "0.2.3",
             "assert-plus": "1.0.0",
@@ -3645,7 +3684,8 @@
         "stringstream": {
           "version": "0.0.5",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "strip-ansi": {
           "version": "3.0.1",
@@ -3658,7 +3698,8 @@
         "strip-json-comments": {
           "version": "2.0.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "tar": {
           "version": "2.2.1",
@@ -3674,6 +3715,7 @@
           "version": "3.4.0",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "debug": "2.6.8",
             "fstream": "1.0.11",
@@ -3689,6 +3731,7 @@
           "version": "2.3.2",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "punycode": "1.4.1"
           }
@@ -3697,6 +3740,7 @@
           "version": "0.6.0",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "safe-buffer": "5.0.1"
           }
@@ -3710,7 +3754,8 @@
         "uid-number": {
           "version": "0.0.6",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "util-deprecate": {
           "version": "1.0.2",
@@ -3720,12 +3765,14 @@
         "uuid": {
           "version": "3.0.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "verror": {
           "version": "1.3.6",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "extsprintf": "1.0.2"
           }
@@ -3734,6 +3781,7 @@
           "version": "1.1.2",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "string-width": "1.0.2"
           }
diff --git a/rest/index.php b/rest/index.php
index efac0cf9752a06fce78debb8ff3e23ffe5e906b3..bd8a2d55f3fcd35595c354dd05213757fe2238e1 100755
--- a/rest/index.php
+++ b/rest/index.php
@@ -212,7 +212,8 @@ $app->put('/listTemplates/{id}', \Entity\controllers\ListTemplateController::cla
 $app->delete('/listTemplates/{id}', \Entity\controllers\ListTemplateController::class . ':delete');
 $app->get('/listTemplates/entityDest/itemId/{itemId}', \Entity\controllers\ListTemplateController::class . ':getByUserWithEntityDest');
 $app->put('/listTemplates/entityDest/itemId/{itemId}', \Entity\controllers\ListTemplateController::class . ':updateByUserWithEntityDest');
-$app->put('/listTemplates/types/roles', \Entity\controllers\ListTemplateController::class . ':updateTypes');
+$app->get('/listTemplates/types/{typeId}/roles', \Entity\controllers\ListTemplateController::class . ':getTypeRoles');
+$app->put('/listTemplates/types/{typeId}/roles', \Entity\controllers\ListTemplateController::class . ':updateTypeRoles');
 
 //Parameters
 $app->get('/parameters', \Parameter\controllers\ParameterController::class . ':get');
diff --git a/src/app/entity/controllers/ListTemplateController.php b/src/app/entity/controllers/ListTemplateController.php
index b43183362be4652e004b3e8bd493fa20f1b59dc5..185e13c69b221f76c8d7b5e0d92dc00725e741ef 100644
--- a/src/app/entity/controllers/ListTemplateController.php
+++ b/src/app/entity/controllers/ListTemplateController.php
@@ -277,7 +277,44 @@ class ListTemplateController
         return $response->withJson(['success' => 'success']);
     }
 
-    public function updateTypes(Request $request, Response $response)
+    public function getTypeRoles(Request $request, Response $response, array $aArgs)
+    {
+        if (!ServiceModel::hasService(['id' => 'manage_entities', 'userId' => $GLOBALS['userId'], 'location' => 'entities', 'type' => 'admin'])) {
+            return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']);
+        }
+
+        $unneededRoles = [];
+        if ($aArgs['typeId'] == 'entity_id') {
+            $unneededRoles = ['visa', 'sign'];
+        }
+        $roles = EntityModel::getRoles();
+        $listTemplateTypes = ListTemplateModel::getTypes(['select' => ['difflist_type_roles'], 'where' => ['difflist_type_id = ?'], 'data' => [$aArgs['typeId']]]);
+        $rolesForType = empty($listTemplateTypes[0]['difflist_type_roles']) ? [] : explode(' ', $listTemplateTypes[0]['difflist_type_roles']);
+        foreach ($roles as $key => $role) {
+            if (in_array($role['id'], $unneededRoles)) {
+                unset($roles[$key]);
+                continue;
+            }
+            if (in_array($role['id'], $rolesForType)) {
+                $roles[$key]['available'] = true;
+            } else {
+                $roles[$key]['available'] = false;
+            }
+            if ($role['id'] == 'copy') {
+                $roles[$key]['id'] = 'cc';
+            }
+
+            $roles[$key]['usedIn'] = [];
+            $listTemplates = ListTemplateModel::get(['select' => ['object_id'], 'where' => ['object_type = ?', 'item_mode = ?'], 'data' => [$aArgs['typeId'], $roles[$key]['id']]]);
+            foreach ($listTemplates as $listTemplate) {
+                $roles[$key]['usedIn'][] = $listTemplate['object_id'];
+            }
+        }
+
+        return $response->withJson(['roles' => array_values($roles)]);
+    }
+
+    public function updateTypeRoles(Request $request, Response $response, array $aArgs)
     {
         if (!ServiceModel::hasService(['id' => 'manage_entities', 'userId' => $GLOBALS['userId'], 'location' => 'entities', 'type' => 'admin'])) {
             return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']);
@@ -285,8 +322,7 @@ class ListTemplateController
 
         $data = $request->getParams();
 
-        $check = Validator::stringType()->notEmpty()->validate($data['typeId']);
-        $check = $check && Validator::arrayType()->notEmpty()->validate($data['roles']);
+        $check = Validator::arrayType()->notEmpty()->validate($data['roles']);
         if (!$check) {
             return $response->withStatus(400)->withJson(['errors' => 'Bad Request']);
         }
@@ -308,17 +344,17 @@ class ListTemplateController
         ListTemplateModel::updateTypes([
             'set'   => ['difflist_type_roles' => $roles],
             'where' => ['difflist_type_id = ?'],
-            'data'  => [$data['typeId']]
+            'data'  => [$aArgs['typeId']]
         ]);
         if (empty($roles)) {
             ListTemplateModel::delete([
                 'where' => ['object_type = ?'],
-                'data'  => [$data['typeId']]
+                'data'  => [$aArgs['typeId']]
             ]);
         } else {
             ListTemplateModel::delete([
                 'where' => ['object_type = ?', 'item_mode not in (?)'],
-                'data'  => [$data['typeId'], explode(' ', $roles)]
+                'data'  => [$aArgs['typeId'], explode(' ', $roles)]
             ]);
         }