@memberjunction/ng-resource-permissions 2.20.1 → 2.20.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -39,14 +39,31 @@ export declare class ResourcePermissionsComponent extends BaseAngularComponent i
39
39
  * Allows you to determine if the user is able to delete existing permissions for the resource.
40
40
  */
41
41
  AllowDeletePermissions: boolean;
42
- permissionLevels: string[];
43
- permissionTypes: string[];
42
+ /**
43
+ * List of possible permission levels that can be set for the resource. An array of strings, defaults to ['View', 'Edit', 'Owner']
44
+ */
45
+ PermissionLevels: string[];
46
+ /**
47
+ * Specifies the types of permissions the UI will allow settings for. An array of strings, defaults to ['User', 'Role']
48
+ */
49
+ PermissionTypes: string[];
50
+ /**
51
+ * This optional input allows you to exclude certain roles from the list of roles that can be selected for permissions. If existing permissions have been created with roles that are in this list they will still be displayed,
52
+ * but the user will not be able to add new permissions with these roles. This is an array of strings with the NAMES of the roles.
53
+ */
54
+ ExcludedRoleNames: string[];
55
+ /**
56
+ * This optional input allows you to exclude certain users from the list of users that can be selected for permissions. If existing permissions have been created with users that are in this list they will still be displayed,
57
+ * but the user will not be able to add new permissions with these users. This is an array of strings with EMAILS.
58
+ */
59
+ ExcludedUserEmails: string[];
44
60
  AllUsers: UserEntity[];
45
61
  AllRoles: RoleInfo[];
46
62
  SelectedUser: UserEntity | null;
47
63
  SelectedRole: RoleInfo | null;
48
64
  SelectedType: 'User' | 'Role';
49
65
  SelectedPermissionLevel: 'View' | 'Edit' | 'Owner';
66
+ _Loading: boolean;
50
67
  UpdateResourceRecordID(ResourceRecordID: string): Promise<void>;
51
68
  resourcePermissions: ResourcePermissionEntity[];
52
69
  ngAfterViewInit(): Promise<void>;
@@ -58,6 +75,6 @@ export declare class ResourcePermissionsComponent extends BaseAngularComponent i
58
75
  SavePermissions(): Promise<boolean>;
59
76
  protected GetEngine(): ResourcePermissionEngine;
60
77
  static ɵfac: i0.ɵɵFactoryDeclaration<ResourcePermissionsComponent, never>;
61
- static ɵcmp: i0.ɵɵComponentDeclaration<ResourcePermissionsComponent, "mj-resource-permissions", never, { "ResourceTypeID": { "alias": "ResourceTypeID"; "required": false; }; "ResourceRecordID": { "alias": "ResourceRecordID"; "required": false; }; "ShowSaveButton": { "alias": "ShowSaveButton"; "required": false; }; "ShowUserErrorMessages": { "alias": "ShowUserErrorMessages"; "required": false; }; "AllowAddPermissions": { "alias": "AllowAddPermissions"; "required": false; }; "AllowEditPermissions": { "alias": "AllowEditPermissions"; "required": false; }; "AllowDeletePermissions": { "alias": "AllowDeletePermissions"; "required": false; }; }, {}, never, never, false, never>;
78
+ static ɵcmp: i0.ɵɵComponentDeclaration<ResourcePermissionsComponent, "mj-resource-permissions", never, { "ResourceTypeID": { "alias": "ResourceTypeID"; "required": false; }; "ResourceRecordID": { "alias": "ResourceRecordID"; "required": false; }; "ShowSaveButton": { "alias": "ShowSaveButton"; "required": false; }; "ShowUserErrorMessages": { "alias": "ShowUserErrorMessages"; "required": false; }; "AllowAddPermissions": { "alias": "AllowAddPermissions"; "required": false; }; "AllowEditPermissions": { "alias": "AllowEditPermissions"; "required": false; }; "AllowDeletePermissions": { "alias": "AllowDeletePermissions"; "required": false; }; "PermissionLevels": { "alias": "PermissionLevels"; "required": false; }; "PermissionTypes": { "alias": "PermissionTypes"; "required": false; }; "ExcludedRoleNames": { "alias": "ExcludedRoleNames"; "required": false; }; "ExcludedUserEmails": { "alias": "ExcludedUserEmails"; "required": false; }; }, {}, never, never, false, never>;
62
79
  }
63
80
  //# sourceMappingURL=resource-permissions.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-permissions.component.d.ts","sourceRoot":"","sources":["../../src/lib/resource-permissions.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoB,MAAM,eAAe,CAAC;AAChE,OAAO,EAA2D,QAAQ,EAAW,MAAM,sBAAsB,CAAC;AAClH,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC/G,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;AAGrE;;;GAGG;AACH,qBAKa,4BAA6B,SAAQ,oBAAqB,YAAW,aAAa;IAC7F;;OAEG;IACM,cAAc,EAAG,MAAM,CAAC;IACjC;;OAEG;IACM,gBAAgB,EAAG,MAAM,CAAC;IACnC;;;;OAIG;IACM,cAAc,EAAE,OAAO,CAAS;IACzC;;;OAGG;IACM,qBAAqB,EAAE,OAAO,CAAS;IAChD;;OAEG;IACM,mBAAmB,EAAE,OAAO,CAAQ;IAC7C;;OAEG;IACM,oBAAoB,EAAE,OAAO,CAAQ;IAC9C;;OAEG;IACM,sBAAsB,EAAE,OAAO,CAAQ;IAGzC,gBAAgB,WAA6B;IAE7C,eAAe,WAAoB;IAEnC,QAAQ,EAAE,UAAU,EAAE,CAAM;IAC5B,QAAQ,EAAE,QAAQ,EAAE,CAAM;IAE1B,YAAY,EAAE,UAAU,GAAG,IAAI,CAAQ;IACvC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAQ;IACrC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAU;IACvC,uBAAuB,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAU;IAEtD,sBAAsB,CAAC,gBAAgB,EAAE,MAAM;IAQrD,mBAAmB,EAAE,wBAAwB,EAAE,CAAM;IACtD,eAAe;IA6BrB,OAAO,CAAC,eAAe,CAAkC;IAClD,gBAAgB,CAAC,UAAU,EAAE,wBAAwB;IAK5D,OAAO,CAAC,YAAY,CAAkC;IACzC,aAAa;IAuBnB,uBAAuB,IAAI,OAAO;IAkB5B,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAqEhD,SAAS,CAAC,SAAS,IAAI,wBAAwB;yCAzMpC,4BAA4B;2CAA5B,4BAA4B;CA4MxC"}
1
+ {"version":3,"file":"resource-permissions.component.d.ts","sourceRoot":"","sources":["../../src/lib/resource-permissions.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoB,MAAM,eAAe,CAAC;AAChE,OAAO,EAA2D,QAAQ,EAAW,MAAM,sBAAsB,CAAC;AAClH,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC/G,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;AAGrE;;;GAGG;AACH,qBAKa,4BAA6B,SAAQ,oBAAqB,YAAW,aAAa;IAC7F;;OAEG;IACM,cAAc,EAAG,MAAM,CAAC;IACjC;;OAEG;IACM,gBAAgB,EAAG,MAAM,CAAC;IACnC;;;;OAIG;IACM,cAAc,EAAE,OAAO,CAAS;IACzC;;;OAGG;IACM,qBAAqB,EAAE,OAAO,CAAS;IAChD;;OAEG;IACM,mBAAmB,EAAE,OAAO,CAAQ;IAC7C;;OAEG;IACM,oBAAoB,EAAE,OAAO,CAAQ;IAC9C;;OAEG;IACM,sBAAsB,EAAE,OAAO,CAAQ;IAEhD;;OAEG;IACM,gBAAgB,WAA6B;IAEtD;;OAEG;IACM,eAAe,WAAoB;IAE5C;;;OAGG;IACM,iBAAiB,EAAE,MAAM,EAAE,CAAM;IAE1C;;;OAGG;IACM,kBAAkB,EAAE,MAAM,EAAE,CAAM;IAEpC,QAAQ,EAAE,UAAU,EAAE,CAAM;IAC5B,QAAQ,EAAE,QAAQ,EAAE,CAAM;IAE1B,YAAY,EAAE,UAAU,GAAG,IAAI,CAAQ;IACvC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAQ;IACrC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAU;IACvC,uBAAuB,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAU;IAE5D,QAAQ,EAAE,OAAO,CAAS;IAEpB,sBAAsB,CAAC,gBAAgB,EAAE,MAAM;IAQrD,mBAAmB,EAAE,wBAAwB,EAAE,CAAM;IACtD,eAAe;IAkCrB,OAAO,CAAC,eAAe,CAAkC;IAClD,gBAAgB,CAAC,UAAU,EAAE,wBAAwB;IAK5D,OAAO,CAAC,YAAY,CAAkC;IACzC,aAAa;IAuBnB,uBAAuB,IAAI,OAAO;IAkB5B,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAwEhD,SAAS,CAAC,SAAS,IAAI,wBAAwB;yCApOpC,4BAA4B;2CAA5B,4BAA4B;CAuOxC"}
@@ -16,98 +16,102 @@ import * as i0 from "@angular/core";
16
16
  import * as i1 from "@angular/forms";
17
17
  import * as i2 from "@progress/kendo-angular-buttons";
18
18
  import * as i3 from "@progress/kendo-angular-dropdowns";
19
+ import * as i4 from "@progress/kendo-angular-indicators";
19
20
  function ResourcePermissionsComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
21
+ i0.ɵɵelement(0, "kendo-loader");
22
+ } }
23
+ function ResourcePermissionsComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
20
24
  const _r1 = i0.ɵɵgetCurrentView();
21
25
  i0.ɵɵelementStart(0, "button", 5);
22
- i0.ɵɵlistener("click", function ResourcePermissionsComponent_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.SavePermissions()); });
26
+ i0.ɵɵlistener("click", function ResourcePermissionsComponent_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.SavePermissions()); });
23
27
  i0.ɵɵtext(1, "Save");
24
28
  i0.ɵɵelementEnd();
25
29
  } }
26
- function ResourcePermissionsComponent_Conditional_3_Conditional_4_Template(rf, ctx) { if (rf & 1) {
30
+ function ResourcePermissionsComponent_Conditional_4_Conditional_4_Template(rf, ctx) { if (rf & 1) {
27
31
  const _r4 = i0.ɵɵgetCurrentView();
28
32
  i0.ɵɵelementStart(0, "kendo-dropdownlist", 11);
29
- i0.ɵɵtwoWayListener("ngModelChange", function ResourcePermissionsComponent_Conditional_3_Conditional_4_Template_kendo_dropdownlist_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.SelectedUser, $event) || (ctx_r1.SelectedUser = $event); return i0.ɵɵresetView($event); });
33
+ i0.ɵɵtwoWayListener("ngModelChange", function ResourcePermissionsComponent_Conditional_4_Conditional_4_Template_kendo_dropdownlist_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.SelectedUser, $event) || (ctx_r1.SelectedUser = $event); return i0.ɵɵresetView($event); });
30
34
  i0.ɵɵelementEnd();
31
35
  } if (rf & 2) {
32
36
  const ctx_r1 = i0.ɵɵnextContext(2);
33
37
  i0.ɵɵproperty("data", ctx_r1.AllUsers);
34
38
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.SelectedUser);
35
39
  } }
36
- function ResourcePermissionsComponent_Conditional_3_Conditional_5_Template(rf, ctx) { if (rf & 1) {
40
+ function ResourcePermissionsComponent_Conditional_4_Conditional_5_Template(rf, ctx) { if (rf & 1) {
37
41
  const _r5 = i0.ɵɵgetCurrentView();
38
42
  i0.ɵɵelementStart(0, "kendo-dropdownlist", 12);
39
- i0.ɵɵtwoWayListener("ngModelChange", function ResourcePermissionsComponent_Conditional_3_Conditional_5_Template_kendo_dropdownlist_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.SelectedRole, $event) || (ctx_r1.SelectedRole = $event); return i0.ɵɵresetView($event); });
43
+ i0.ɵɵtwoWayListener("ngModelChange", function ResourcePermissionsComponent_Conditional_4_Conditional_5_Template_kendo_dropdownlist_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.SelectedRole, $event) || (ctx_r1.SelectedRole = $event); return i0.ɵɵresetView($event); });
40
44
  i0.ɵɵelementEnd();
41
45
  } if (rf & 2) {
42
46
  const ctx_r1 = i0.ɵɵnextContext(2);
43
47
  i0.ɵɵproperty("data", ctx_r1.AllRoles);
44
48
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.SelectedRole);
45
49
  } }
46
- function ResourcePermissionsComponent_Conditional_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
50
+ function ResourcePermissionsComponent_Conditional_4_Conditional_6_Template(rf, ctx) { if (rf & 1) {
47
51
  i0.ɵɵtext(0);
48
52
  } if (rf & 2) {
49
53
  const ctx_r1 = i0.ɵɵnextContext(2);
50
54
  i0.ɵɵtextInterpolate1(" SelectedType: ", ctx_r1.SelectedType, " ");
51
55
  } }
52
- function ResourcePermissionsComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
56
+ function ResourcePermissionsComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
53
57
  const _r3 = i0.ɵɵgetCurrentView();
54
58
  i0.ɵɵelementStart(0, "div", 3)(1, "span", 6);
55
59
  i0.ɵɵtext(2, "Add Permission");
56
60
  i0.ɵɵelementEnd();
57
61
  i0.ɵɵelementStart(3, "kendo-dropdownlist", 7);
58
- i0.ɵɵtwoWayListener("ngModelChange", function ResourcePermissionsComponent_Conditional_3_Template_kendo_dropdownlist_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.SelectedType, $event) || (ctx_r1.SelectedType = $event); return i0.ɵɵresetView($event); });
62
+ i0.ɵɵtwoWayListener("ngModelChange", function ResourcePermissionsComponent_Conditional_4_Template_kendo_dropdownlist_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.SelectedType, $event) || (ctx_r1.SelectedType = $event); return i0.ɵɵresetView($event); });
59
63
  i0.ɵɵelementEnd();
60
- i0.ɵɵtemplate(4, ResourcePermissionsComponent_Conditional_3_Conditional_4_Template, 1, 2, "kendo-dropdownlist", 8)(5, ResourcePermissionsComponent_Conditional_3_Conditional_5_Template, 1, 2, "kendo-dropdownlist", 9)(6, ResourcePermissionsComponent_Conditional_3_Conditional_6_Template, 1, 1);
64
+ i0.ɵɵtemplate(4, ResourcePermissionsComponent_Conditional_4_Conditional_4_Template, 1, 2, "kendo-dropdownlist", 8)(5, ResourcePermissionsComponent_Conditional_4_Conditional_5_Template, 1, 2, "kendo-dropdownlist", 9)(6, ResourcePermissionsComponent_Conditional_4_Conditional_6_Template, 1, 1);
61
65
  i0.ɵɵelementStart(7, "kendo-dropdownlist", 7);
62
- i0.ɵɵtwoWayListener("ngModelChange", function ResourcePermissionsComponent_Conditional_3_Template_kendo_dropdownlist_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.SelectedPermissionLevel, $event) || (ctx_r1.SelectedPermissionLevel = $event); return i0.ɵɵresetView($event); });
66
+ i0.ɵɵtwoWayListener("ngModelChange", function ResourcePermissionsComponent_Conditional_4_Template_kendo_dropdownlist_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.SelectedPermissionLevel, $event) || (ctx_r1.SelectedPermissionLevel = $event); return i0.ɵɵresetView($event); });
63
67
  i0.ɵɵelementEnd();
64
68
  i0.ɵɵelementStart(8, "button", 10);
65
- i0.ɵɵlistener("click", function ResourcePermissionsComponent_Conditional_3_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addPermission()); });
69
+ i0.ɵɵlistener("click", function ResourcePermissionsComponent_Conditional_4_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addPermission()); });
66
70
  i0.ɵɵtext(9, "Add");
67
71
  i0.ɵɵelementEnd()();
68
72
  } if (rf & 2) {
69
73
  const ctx_r1 = i0.ɵɵnextContext();
70
74
  i0.ɵɵadvance(3);
71
- i0.ɵɵproperty("data", ctx_r1.permissionTypes);
75
+ i0.ɵɵproperty("data", ctx_r1.PermissionTypes);
72
76
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.SelectedType);
73
77
  i0.ɵɵadvance();
74
78
  i0.ɵɵconditional(ctx_r1.SelectedType === "User" ? 4 : ctx_r1.SelectedType === "Role" ? 5 : 6);
75
79
  i0.ɵɵadvance(3);
76
- i0.ɵɵproperty("data", ctx_r1.permissionLevels);
80
+ i0.ɵɵproperty("data", ctx_r1.PermissionLevels);
77
81
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.SelectedPermissionLevel);
78
82
  i0.ɵɵadvance();
79
83
  i0.ɵɵproperty("disabled", ctx_r1.permissionAlreadyExists())("title", ctx_r1.permissionAlreadyExists() ? "This combination of Type/User/Role already exists below" : "");
80
84
  } }
81
- function ResourcePermissionsComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
85
+ function ResourcePermissionsComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
82
86
  i0.ɵɵelementStart(0, "th");
83
87
  i0.ɵɵtext(1, "Actions");
84
88
  i0.ɵɵelementEnd();
85
89
  } }
86
- function ResourcePermissionsComponent_For_16_Conditional_6_Template(rf, ctx) { if (rf & 1) {
90
+ function ResourcePermissionsComponent_For_17_Conditional_6_Template(rf, ctx) { if (rf & 1) {
87
91
  const _r6 = i0.ɵɵgetCurrentView();
88
92
  i0.ɵɵelementStart(0, "kendo-dropdownlist", 14);
89
- i0.ɵɵtwoWayListener("ngModelChange", function ResourcePermissionsComponent_For_16_Conditional_6_Template_kendo_dropdownlist_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r6); const p_r7 = i0.ɵɵnextContext().$implicit; i0.ɵɵtwoWayBindingSet(p_r7.PermissionLevel, $event) || (p_r7.PermissionLevel = $event); return i0.ɵɵresetView($event); });
93
+ i0.ɵɵtwoWayListener("ngModelChange", function ResourcePermissionsComponent_For_17_Conditional_6_Template_kendo_dropdownlist_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r6); const p_r7 = i0.ɵɵnextContext().$implicit; i0.ɵɵtwoWayBindingSet(p_r7.PermissionLevel, $event) || (p_r7.PermissionLevel = $event); return i0.ɵɵresetView($event); });
90
94
  i0.ɵɵelementEnd();
91
95
  } if (rf & 2) {
92
96
  const p_r7 = i0.ɵɵnextContext().$implicit;
93
97
  const ctx_r1 = i0.ɵɵnextContext();
94
98
  i0.ɵɵtwoWayProperty("ngModel", p_r7.PermissionLevel);
95
- i0.ɵɵproperty("data", ctx_r1.permissionLevels);
99
+ i0.ɵɵproperty("data", ctx_r1.PermissionLevels);
96
100
  } }
97
- function ResourcePermissionsComponent_For_16_Conditional_7_Template(rf, ctx) { if (rf & 1) {
101
+ function ResourcePermissionsComponent_For_17_Conditional_7_Template(rf, ctx) { if (rf & 1) {
98
102
  i0.ɵɵtext(0);
99
103
  } if (rf & 2) {
100
104
  const p_r7 = i0.ɵɵnextContext().$implicit;
101
105
  i0.ɵɵtextInterpolate1(" ", p_r7.PermissionLevel, " ");
102
106
  } }
103
- function ResourcePermissionsComponent_For_16_Conditional_8_Template(rf, ctx) { if (rf & 1) {
107
+ function ResourcePermissionsComponent_For_17_Conditional_8_Template(rf, ctx) { if (rf & 1) {
104
108
  const _r8 = i0.ɵɵgetCurrentView();
105
109
  i0.ɵɵelementStart(0, "td")(1, "button", 5);
106
- i0.ɵɵlistener("click", function ResourcePermissionsComponent_For_16_Conditional_8_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r8); const p_r7 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.deletePermission(p_r7)); });
110
+ i0.ɵɵlistener("click", function ResourcePermissionsComponent_For_17_Conditional_8_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r8); const p_r7 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.deletePermission(p_r7)); });
107
111
  i0.ɵɵelement(2, "span", 15);
108
112
  i0.ɵɵelementEnd()();
109
113
  } }
110
- function ResourcePermissionsComponent_For_16_Template(rf, ctx) { if (rf & 1) {
114
+ function ResourcePermissionsComponent_For_17_Template(rf, ctx) { if (rf & 1) {
111
115
  i0.ɵɵelementStart(0, "tr")(1, "td");
112
116
  i0.ɵɵtext(2);
113
117
  i0.ɵɵelementEnd();
@@ -115,9 +119,9 @@ function ResourcePermissionsComponent_For_16_Template(rf, ctx) { if (rf & 1) {
115
119
  i0.ɵɵtext(4);
116
120
  i0.ɵɵelementEnd();
117
121
  i0.ɵɵelementStart(5, "td");
118
- i0.ɵɵtemplate(6, ResourcePermissionsComponent_For_16_Conditional_6_Template, 1, 2, "kendo-dropdownlist", 13)(7, ResourcePermissionsComponent_For_16_Conditional_7_Template, 1, 1);
122
+ i0.ɵɵtemplate(6, ResourcePermissionsComponent_For_17_Conditional_6_Template, 1, 2, "kendo-dropdownlist", 13)(7, ResourcePermissionsComponent_For_17_Conditional_7_Template, 1, 1);
119
123
  i0.ɵɵelementEnd();
120
- i0.ɵɵtemplate(8, ResourcePermissionsComponent_For_16_Conditional_8_Template, 3, 0, "td");
124
+ i0.ɵɵtemplate(8, ResourcePermissionsComponent_For_17_Conditional_8_Template, 3, 0, "td");
121
125
  i0.ɵɵelementEnd();
122
126
  } if (rf & 2) {
123
127
  const p_r7 = ctx.$implicit;
@@ -161,15 +165,31 @@ export class ResourcePermissionsComponent extends BaseAngularComponent {
161
165
  * Allows you to determine if the user is able to delete existing permissions for the resource.
162
166
  */
163
167
  this.AllowDeletePermissions = true;
164
- // Define permission levels
165
- this.permissionLevels = ['View', 'Edit', 'Owner']; // these are the possible permission levels
166
- this.permissionTypes = ['User', 'Role'];
168
+ /**
169
+ * List of possible permission levels that can be set for the resource. An array of strings, defaults to ['View', 'Edit', 'Owner']
170
+ */
171
+ this.PermissionLevels = ['View', 'Edit', 'Owner']; // these are the possible permission levels
172
+ /**
173
+ * Specifies the types of permissions the UI will allow settings for. An array of strings, defaults to ['User', 'Role']
174
+ */
175
+ this.PermissionTypes = ['User', 'Role'];
176
+ /**
177
+ * This optional input allows you to exclude certain roles from the list of roles that can be selected for permissions. If existing permissions have been created with roles that are in this list they will still be displayed,
178
+ * but the user will not be able to add new permissions with these roles. This is an array of strings with the NAMES of the roles.
179
+ */
180
+ this.ExcludedRoleNames = [];
181
+ /**
182
+ * This optional input allows you to exclude certain users from the list of users that can be selected for permissions. If existing permissions have been created with users that are in this list they will still be displayed,
183
+ * but the user will not be able to add new permissions with these users. This is an array of strings with EMAILS.
184
+ */
185
+ this.ExcludedUserEmails = [];
167
186
  this.AllUsers = [];
168
187
  this.AllRoles = [];
169
188
  this.SelectedUser = null;
170
189
  this.SelectedRole = null;
171
190
  this.SelectedType = 'Role';
172
191
  this.SelectedPermissionLevel = 'View';
192
+ this._Loading = false;
173
193
  this.resourcePermissions = [];
174
194
  this._pendingDeletes = [];
175
195
  this._pendingAdds = [];
@@ -188,6 +208,7 @@ export class ResourcePermissionsComponent extends BaseAngularComponent {
188
208
  if (!this.ResourceTypeID || !this.ResourceRecordID) {
189
209
  throw new Error('ResourceTypeID and ResourceRecordID must be set');
190
210
  }
211
+ this._Loading = true;
191
212
  // load up the current permissions for the specified ResourceTypeID and ResourceRecordID
192
213
  const engine = this.GetEngine();
193
214
  yield engine.Config(false, this.ProviderToUse.CurrentUser, this.ProviderToUse);
@@ -202,12 +223,15 @@ export class ResourcePermissionsComponent extends BaseAngularComponent {
202
223
  OrderBy: "Name",
203
224
  ExtraFilter: "IsActive=1"
204
225
  });
205
- this.AllUsers = result.Results;
206
- this.AllRoles = p.Roles;
226
+ // filter out any users that are in the ExcludedUserEmails list
227
+ this.AllUsers = result.Results.filter((u) => !this.ExcludedUserEmails.includes(u.Email));
228
+ // filter out any roles that are in the ExcludedRoleNames list
229
+ this.AllRoles = p.Roles.filter((r) => !this.ExcludedRoleNames.includes(r.Name));
207
230
  if (this.AllUsers.length > 0)
208
231
  this.SelectedUser = this.AllUsers[0];
209
232
  if (this.AllRoles.length > 0)
210
233
  this.SelectedRole = this.AllRoles[0];
234
+ this._Loading = false;
211
235
  });
212
236
  }
213
237
  deletePermission(permission) {
@@ -258,13 +282,14 @@ export class ResourcePermissionsComponent extends BaseAngularComponent {
258
282
  SavePermissions() {
259
283
  return __awaiter(this, void 0, void 0, function* () {
260
284
  // first delete any permissions that were marked for deletion
285
+ this._Loading = true;
261
286
  const p = this.ProviderToUse;
262
287
  const tg = yield p.CreateTransactionGroup();
263
288
  for (const permission of this._pendingDeletes) {
264
289
  if (permission.IsSaved) {
265
290
  // only delete records previously saved, sometimes a user adds a new permission and deletes it before saving it
266
291
  permission.TransactionGroup = tg;
267
- if (!permission.Delete()) { // no await - we await the tg.submit below
292
+ if (!(yield permission.Delete())) { // we use await here because the promise will resolve before the actual save occurs --- the internals will not call the network until tg.Submit() below
268
293
  // validation errors come back here
269
294
  if (this.ShowUserErrorMessages)
270
295
  MJNotificationService.Instance.CreateSimpleNotification('Error saving permissions', 'error', 2500);
@@ -278,7 +303,7 @@ export class ResourcePermissionsComponent extends BaseAngularComponent {
278
303
  if (this._pendingDeletes.includes(permission)) {
279
304
  // don't save a permission record that is new, if it was also marked for deletion
280
305
  permission.TransactionGroup = tg;
281
- if (!permission.Save()) { // no await - we await the tg.submit below
306
+ if (!permission.Save()) { // no await on saves, use tg.Submit() below
282
307
  // validation errors come back here
283
308
  if (this.ShowUserErrorMessages)
284
309
  MJNotificationService.Instance.CreateSimpleNotification('Error saving permissions', 'error', 2500);
@@ -292,7 +317,7 @@ export class ResourcePermissionsComponent extends BaseAngularComponent {
292
317
  // make sure not in the delete array
293
318
  if (!this._pendingDeletes.includes(permission)) {
294
319
  permission.TransactionGroup = tg;
295
- if (!permission.Save()) { // no await - we await the tg.submit below
320
+ if (!permission.Save()) { // no await on saves, use tg.Submit() below
296
321
  // validation errors come back here
297
322
  if (this.ShowUserErrorMessages)
298
323
  MJNotificationService.Instance.CreateSimpleNotification('Error saving permissions', 'error', 2500);
@@ -303,6 +328,7 @@ export class ResourcePermissionsComponent extends BaseAngularComponent {
303
328
  }
304
329
  // now save the changes
305
330
  if (yield tg.Submit()) {
331
+ this._Loading = false;
306
332
  this._pendingDeletes = [];
307
333
  this._pendingAdds = [];
308
334
  const engine = this.GetEngine();
@@ -311,6 +337,7 @@ export class ResourcePermissionsComponent extends BaseAngularComponent {
311
337
  }
312
338
  else {
313
339
  // we had an error, show the user via SharedService
340
+ this._Loading = false;
314
341
  if (this.ShowUserErrorMessages)
315
342
  MJNotificationService.Instance.CreateSimpleNotification('Error saving permissions', 'error');
316
343
  LogError('Error saving permissions in the transaction group');
@@ -323,38 +350,40 @@ export class ResourcePermissionsComponent extends BaseAngularComponent {
323
350
  }
324
351
  }
325
352
  ResourcePermissionsComponent.ɵfac = /*@__PURE__*/ (() => { let ɵResourcePermissionsComponent_BaseFactory; return function ResourcePermissionsComponent_Factory(t) { return (ɵResourcePermissionsComponent_BaseFactory || (ɵResourcePermissionsComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ResourcePermissionsComponent)))(t || ResourcePermissionsComponent); }; })();
326
- ResourcePermissionsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ResourcePermissionsComponent, selectors: [["mj-resource-permissions"]], inputs: { ResourceTypeID: "ResourceTypeID", ResourceRecordID: "ResourceRecordID", ShowSaveButton: "ShowSaveButton", ShowUserErrorMessages: "ShowUserErrorMessages", AllowAddPermissions: "AllowAddPermissions", AllowEditPermissions: "AllowEditPermissions", AllowDeletePermissions: "AllowDeletePermissions" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 17, vars: 3, consts: [[1, "container"], ["kendoButton", ""], [1, "table-container"], [1, "add-permission-section"], [1, "resource-table"], ["kendoButton", "", 3, "click"], [1, "add-permission-label"], [2, "width", "100px", 3, "ngModelChange", "data", "ngModel"], ["textField", "Name", "valueField", "ID", 2, "width", "225px", 3, "data", "ngModel"], ["textField", "Name", "valueField", "ID", 2, "width", "150px", 3, "data", "ngModel"], ["kendoButton", "", 3, "click", "disabled", "title"], ["textField", "Name", "valueField", "ID", 2, "width", "225px", 3, "ngModelChange", "data", "ngModel"], ["textField", "Name", "valueField", "ID", 2, "width", "150px", 3, "ngModelChange", "data", "ngModel"], [2, "width", "100px", 3, "ngModel", "data"], [2, "width", "100px", 3, "ngModelChange", "ngModel", "data"], [1, "fa-solid", "fa-trash-can"]], template: function ResourcePermissionsComponent_Template(rf, ctx) { if (rf & 1) {
353
+ ResourcePermissionsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ResourcePermissionsComponent, selectors: [["mj-resource-permissions"]], inputs: { ResourceTypeID: "ResourceTypeID", ResourceRecordID: "ResourceRecordID", ShowSaveButton: "ShowSaveButton", ShowUserErrorMessages: "ShowUserErrorMessages", AllowAddPermissions: "AllowAddPermissions", AllowEditPermissions: "AllowEditPermissions", AllowDeletePermissions: "AllowDeletePermissions", PermissionLevels: "PermissionLevels", PermissionTypes: "PermissionTypes", ExcludedRoleNames: "ExcludedRoleNames", ExcludedUserEmails: "ExcludedUserEmails" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 18, vars: 4, consts: [[1, "container"], ["kendoButton", ""], [1, "table-container"], [1, "add-permission-section"], [1, "resource-table"], ["kendoButton", "", 3, "click"], [1, "add-permission-label"], [2, "width", "100px", 3, "ngModelChange", "data", "ngModel"], ["textField", "Name", "valueField", "ID", 2, "width", "225px", 3, "data", "ngModel"], ["textField", "Name", "valueField", "ID", 2, "width", "150px", 3, "data", "ngModel"], ["kendoButton", "", 3, "click", "disabled", "title"], ["textField", "Name", "valueField", "ID", 2, "width", "225px", 3, "ngModelChange", "data", "ngModel"], ["textField", "Name", "valueField", "ID", 2, "width", "150px", 3, "ngModelChange", "data", "ngModel"], [2, "width", "100px", 3, "ngModel", "data"], [2, "width", "100px", 3, "ngModelChange", "ngModel", "data"], [1, "fa-solid", "fa-trash-can"]], template: function ResourcePermissionsComponent_Template(rf, ctx) { if (rf & 1) {
327
354
  i0.ɵɵelementStart(0, "div", 0);
328
- i0.ɵɵtemplate(1, ResourcePermissionsComponent_Conditional_1_Template, 2, 0, "button", 1);
329
- i0.ɵɵelementStart(2, "div", 2);
330
- i0.ɵɵtemplate(3, ResourcePermissionsComponent_Conditional_3_Template, 10, 7, "div", 3);
331
- i0.ɵɵelementStart(4, "table", 4)(5, "thead")(6, "tr")(7, "th");
332
- i0.ɵɵtext(8, "Type");
355
+ i0.ɵɵtemplate(1, ResourcePermissionsComponent_Conditional_1_Template, 1, 0, "kendo-loader")(2, ResourcePermissionsComponent_Conditional_2_Template, 2, 0, "button", 1);
356
+ i0.ɵɵelementStart(3, "div", 2);
357
+ i0.ɵɵtemplate(4, ResourcePermissionsComponent_Conditional_4_Template, 10, 7, "div", 3);
358
+ i0.ɵɵelementStart(5, "table", 4)(6, "thead")(7, "tr")(8, "th");
359
+ i0.ɵɵtext(9, "Type");
333
360
  i0.ɵɵelementEnd();
334
- i0.ɵɵelementStart(9, "th");
335
- i0.ɵɵtext(10, "Name");
361
+ i0.ɵɵelementStart(10, "th");
362
+ i0.ɵɵtext(11, "Name");
336
363
  i0.ɵɵelementEnd();
337
- i0.ɵɵelementStart(11, "th");
338
- i0.ɵɵtext(12, "Level");
364
+ i0.ɵɵelementStart(12, "th");
365
+ i0.ɵɵtext(13, "Level");
339
366
  i0.ɵɵelementEnd();
340
- i0.ɵɵtemplate(13, ResourcePermissionsComponent_Conditional_13_Template, 2, 0, "th");
367
+ i0.ɵɵtemplate(14, ResourcePermissionsComponent_Conditional_14_Template, 2, 0, "th");
341
368
  i0.ɵɵelementEnd()();
342
- i0.ɵɵelementStart(14, "tbody");
343
- i0.ɵɵrepeaterCreate(15, ResourcePermissionsComponent_For_16_Template, 9, 4, "tr", null, i0.ɵɵrepeaterTrackByIdentity);
369
+ i0.ɵɵelementStart(15, "tbody");
370
+ i0.ɵɵrepeaterCreate(16, ResourcePermissionsComponent_For_17_Template, 9, 4, "tr", null, i0.ɵɵrepeaterTrackByIdentity);
344
371
  i0.ɵɵelementEnd()()()();
345
372
  } if (rf & 2) {
346
373
  i0.ɵɵadvance();
347
- i0.ɵɵconditional(ctx.ShowSaveButton ? 1 : -1);
374
+ i0.ɵɵconditional(ctx._Loading ? 1 : -1);
375
+ i0.ɵɵadvance();
376
+ i0.ɵɵconditional(ctx.ShowSaveButton ? 2 : -1);
348
377
  i0.ɵɵadvance(2);
349
- i0.ɵɵconditional(ctx.AllowAddPermissions ? 3 : -1);
378
+ i0.ɵɵconditional(ctx.AllowAddPermissions ? 4 : -1);
350
379
  i0.ɵɵadvance(10);
351
- i0.ɵɵconditional(ctx.AllowDeletePermissions ? 13 : -1);
380
+ i0.ɵɵconditional(ctx.AllowDeletePermissions ? 14 : -1);
352
381
  i0.ɵɵadvance(2);
353
382
  i0.ɵɵrepeater(ctx.resourcePermissions);
354
- } }, dependencies: [i1.NgControlStatus, i1.NgModel, i2.ButtonComponent, i3.DropDownListComponent], styles: ["\n\n.container[_ngcontent-%COMP%] {\n max-width: 100%;\n}\n\n\n\n.table-container[_ngcontent-%COMP%] {\n max-height: 400px; \n\n overflow-y: auto;\n border: 1px solid #ccc;\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n\n\n.resource-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n}\n\n.resource-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] {\n background-color: #f4f4f4;\n font-weight: bold;\n position: sticky;\n top: 0;\n z-index: 1;\n}\n\n.resource-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .resource-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px;\n text-align: left;\n border-bottom: 1px solid #ddd;\n}\n\n.resource-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background-color: #f8f8f8;\n}\n\n.resource-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(even) {\n background-color: #f9f9f9;\n}\n\n.resource-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background-color: #f1f1f1;\n}\n\n\n\nbutton.k-button[_ngcontent-%COMP%] {\n background-color: #ff5252;\n color: white;\n border: none;\n padding: 5px 10px;\n border-radius: 4px;\n cursor: pointer;\n}\n\nbutton.k-button[_ngcontent-%COMP%]:hover {\n background-color: #ff1744;\n}\n\n.add-permission-label[_ngcontent-%COMP%] {\n margin-left: 5px;\n margin-right: 5px;\n font-weight: bold;\n}\n\n.add-permission-section[_ngcontent-%COMP%] {\n margin-top: 10px;\n margin-bottom: 10px;\n}"] });
383
+ } }, dependencies: [i1.NgControlStatus, i1.NgModel, i2.ButtonComponent, i3.DropDownListComponent, i4.LoaderComponent], styles: ["\n\n.container[_ngcontent-%COMP%] {\n max-width: 100%;\n}\n\n\n\n.table-container[_ngcontent-%COMP%] {\n max-height: 400px; \n\n overflow-y: auto;\n border: 1px solid #ccc;\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n\n\n.resource-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n}\n\n.resource-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] {\n background-color: #f4f4f4;\n font-weight: bold;\n position: sticky;\n top: 0;\n z-index: 1;\n}\n\n.resource-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .resource-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px;\n text-align: left;\n border-bottom: 1px solid #ddd;\n}\n\n.resource-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background-color: #f8f8f8;\n}\n\n.resource-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(even) {\n background-color: #f9f9f9;\n}\n\n.resource-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background-color: #f1f1f1;\n}\n\n\n\nbutton.k-button[_ngcontent-%COMP%] {\n background-color: #ff5252;\n color: white;\n border: none;\n padding: 5px 10px;\n border-radius: 4px;\n cursor: pointer;\n}\n\nbutton.k-button[_ngcontent-%COMP%]:hover {\n background-color: #ff1744;\n}\n\n.add-permission-label[_ngcontent-%COMP%] {\n margin-left: 5px;\n margin-right: 5px;\n font-weight: bold;\n}\n\n.add-permission-section[_ngcontent-%COMP%] {\n margin-top: 10px;\n margin-bottom: 10px;\n}"] });
355
384
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ResourcePermissionsComponent, [{
356
385
  type: Component,
357
- args: [{ selector: 'mj-resource-permissions', template: "<div class=\"container\">\n @if(ShowSaveButton) {\n <button kendoButton (click)=\"SavePermissions()\">Save</button>\n }\n <div class=\"table-container\">\n @if(AllowAddPermissions) {\n <div class=\"add-permission-section\">\n <span class=\"add-permission-label\">Add Permission</span>\n <kendo-dropdownlist \n [data]=\"permissionTypes\"\n [(ngModel)]=\"SelectedType\"\n style=\"width: 100px;\">\n </kendo-dropdownlist>\n @if (SelectedType === 'User') {\n <kendo-dropdownlist \n [data]=\"AllUsers\"\n [(ngModel)]=\"SelectedUser\"\n textField=\"Name\"\n valueField=\"ID\"\n style=\"width: 225px;\">\n </kendo-dropdownlist>\n }\n @else if (SelectedType === 'Role') {\n <kendo-dropdownlist \n [data]=\"AllRoles\"\n [(ngModel)]=\"SelectedRole\"\n textField=\"Name\"\n valueField=\"ID\"\n style=\"width: 150px;\">\n </kendo-dropdownlist>\n }\n @else {\n SelectedType: {{ SelectedType }}\n }\n <kendo-dropdownlist \n [data]=\"permissionLevels\"\n [(ngModel)]=\"SelectedPermissionLevel\"\n style=\"width: 100px;\">\n </kendo-dropdownlist>\n <button kendoButton (click)=\"addPermission()\" [disabled]=\"permissionAlreadyExists()\" [title]=\"permissionAlreadyExists() ? 'This combination of Type/User/Role already exists below' : ''\" >Add</button>\n </div>\n }\n <table class=\"resource-table\">\n <thead>\n <tr>\n <th>Type</th>\n <th>Name</th>\n <th>Level</th>\n @if(AllowDeletePermissions) {\n <th>Actions</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (p of resourcePermissions; track p) {\n <tr>\n <td>{{ p.Type }}</td>\n <td>{{ p.Type === 'User' ? p.User : p.Role }}</td>\n <td>\n @if (AllowEditPermissions) {\n <kendo-dropdownlist \n [(ngModel)]=\"p.PermissionLevel\"\n [data]=\"permissionLevels\"\n style=\"width: 100px;\">\n </kendo-dropdownlist>\n }\n @else {\n {{ p.PermissionLevel }}\n }\n </td>\n @if(AllowDeletePermissions) {\n <td>\n <button kendoButton (click)=\"deletePermission(p)\"><span class=\"fa-solid fa-trash-can\"></span></button>\n </td>\n }\n </tr> \n }\n </tbody>\n </table>\n </div>\n</div>\n", styles: ["/* Container styling */\n.container {\n max-width: 100%;\n}\n\n/* Table container for vertical scrolling */\n.table-container {\n max-height: 400px; /* Adjust as needed */\n overflow-y: auto;\n border: 1px solid #ccc;\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n/* Table styling */\n.resource-table {\n width: 100%;\n border-collapse: collapse;\n}\n\n.resource-table thead {\n background-color: #f4f4f4;\n font-weight: bold;\n position: sticky;\n top: 0;\n z-index: 1;\n}\n\n.resource-table th, .resource-table td {\n padding: 12px;\n text-align: left;\n border-bottom: 1px solid #ddd;\n}\n\n.resource-table th {\n background-color: #f8f8f8;\n}\n\n.resource-table tbody tr:nth-child(even) {\n background-color: #f9f9f9;\n}\n\n.resource-table tbody tr:hover {\n background-color: #f1f1f1;\n}\n\n/* Button styling */\nbutton.k-button {\n background-color: #ff5252;\n color: white;\n border: none;\n padding: 5px 10px;\n border-radius: 4px;\n cursor: pointer;\n}\n\nbutton.k-button:hover {\n background-color: #ff1744;\n}\n\n.add-permission-label {\n margin-left: 5px;\n margin-right: 5px;\n font-weight: bold;\n}\n\n.add-permission-section {\n margin-top: 10px;\n margin-bottom: 10px;\n}"] }]
386
+ args: [{ selector: 'mj-resource-permissions', template: "<div class=\"container\">\n @if(_Loading) {\n <kendo-loader></kendo-loader>\n }\n @if(ShowSaveButton) {\n <button kendoButton (click)=\"SavePermissions()\">Save</button>\n }\n <div class=\"table-container\">\n @if(AllowAddPermissions) {\n <div class=\"add-permission-section\">\n <span class=\"add-permission-label\">Add Permission</span>\n <kendo-dropdownlist \n [data]=\"PermissionTypes\"\n [(ngModel)]=\"SelectedType\"\n style=\"width: 100px;\">\n </kendo-dropdownlist>\n @if (SelectedType === 'User') {\n <kendo-dropdownlist \n [data]=\"AllUsers\"\n [(ngModel)]=\"SelectedUser\"\n textField=\"Name\"\n valueField=\"ID\"\n style=\"width: 225px;\">\n </kendo-dropdownlist>\n }\n @else if (SelectedType === 'Role') {\n <kendo-dropdownlist \n [data]=\"AllRoles\"\n [(ngModel)]=\"SelectedRole\"\n textField=\"Name\"\n valueField=\"ID\"\n style=\"width: 150px;\">\n </kendo-dropdownlist>\n }\n @else {\n SelectedType: {{ SelectedType }}\n }\n <kendo-dropdownlist \n [data]=\"PermissionLevels\"\n [(ngModel)]=\"SelectedPermissionLevel\"\n style=\"width: 100px;\">\n </kendo-dropdownlist>\n <button kendoButton (click)=\"addPermission()\" [disabled]=\"permissionAlreadyExists()\" [title]=\"permissionAlreadyExists() ? 'This combination of Type/User/Role already exists below' : ''\" >Add</button>\n </div>\n }\n <table class=\"resource-table\">\n <thead>\n <tr>\n <th>Type</th>\n <th>Name</th>\n <th>Level</th>\n @if(AllowDeletePermissions) {\n <th>Actions</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (p of resourcePermissions; track p) {\n <tr>\n <td>{{ p.Type }}</td>\n <td>{{ p.Type === 'User' ? p.User : p.Role }}</td>\n <td>\n @if (AllowEditPermissions) {\n <kendo-dropdownlist \n [(ngModel)]=\"p.PermissionLevel\"\n [data]=\"PermissionLevels\"\n style=\"width: 100px;\">\n </kendo-dropdownlist>\n }\n @else {\n {{ p.PermissionLevel }}\n }\n </td>\n @if(AllowDeletePermissions) {\n <td>\n <button kendoButton (click)=\"deletePermission(p)\"><span class=\"fa-solid fa-trash-can\"></span></button>\n </td>\n }\n </tr> \n }\n </tbody>\n </table>\n </div>\n</div>\n", styles: ["/* Container styling */\n.container {\n max-width: 100%;\n}\n\n/* Table container for vertical scrolling */\n.table-container {\n max-height: 400px; /* Adjust as needed */\n overflow-y: auto;\n border: 1px solid #ccc;\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n/* Table styling */\n.resource-table {\n width: 100%;\n border-collapse: collapse;\n}\n\n.resource-table thead {\n background-color: #f4f4f4;\n font-weight: bold;\n position: sticky;\n top: 0;\n z-index: 1;\n}\n\n.resource-table th, .resource-table td {\n padding: 12px;\n text-align: left;\n border-bottom: 1px solid #ddd;\n}\n\n.resource-table th {\n background-color: #f8f8f8;\n}\n\n.resource-table tbody tr:nth-child(even) {\n background-color: #f9f9f9;\n}\n\n.resource-table tbody tr:hover {\n background-color: #f1f1f1;\n}\n\n/* Button styling */\nbutton.k-button {\n background-color: #ff5252;\n color: white;\n border: none;\n padding: 5px 10px;\n border-radius: 4px;\n cursor: pointer;\n}\n\nbutton.k-button:hover {\n background-color: #ff1744;\n}\n\n.add-permission-label {\n margin-left: 5px;\n margin-right: 5px;\n font-weight: bold;\n}\n\n.add-permission-section {\n margin-top: 10px;\n margin-bottom: 10px;\n}"] }]
358
387
  }], null, { ResourceTypeID: [{
359
388
  type: Input
360
389
  }], ResourceRecordID: [{
@@ -369,6 +398,14 @@ ResourcePermissionsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type
369
398
  type: Input
370
399
  }], AllowDeletePermissions: [{
371
400
  type: Input
401
+ }], PermissionLevels: [{
402
+ type: Input
403
+ }], PermissionTypes: [{
404
+ type: Input
405
+ }], ExcludedRoleNames: [{
406
+ type: Input
407
+ }], ExcludedUserEmails: [{
408
+ type: Input
372
409
  }] }); })();
373
410
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ResourcePermissionsComponent, { className: "ResourcePermissionsComponent", filePath: "src/lib/resource-permissions.component.ts", lineNumber: 16 }); })();
374
411
  //# sourceMappingURL=resource-permissions.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-permissions.component.js","sourceRoot":"","sources":["../../src/lib/resource-permissions.component.ts","../../src/lib/resource-permissions.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-permissions.component.js","sourceRoot":"","sources":["../../src/lib/resource-permissions.component.ts","../../src/lib/resource-permissions.component.html"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-resource-permissions",
3
- "version": "2.20.1",
3
+ "version": "2.20.3",
4
4
  "description": "MemberJunction: Generic Angular components for displaying/editing permissions for a resource",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -25,13 +25,13 @@
25
25
  "@angular/router": "18.0.2"
26
26
  },
27
27
  "dependencies": {
28
- "@memberjunction/global": "2.20.1",
29
- "@memberjunction/core": "2.20.1",
30
- "@memberjunction/core-entities": "2.20.1",
31
- "@memberjunction/ng-container-directives": "2.20.1",
32
- "@memberjunction/ng-notifications": "2.20.1",
33
- "@memberjunction/ng-generic-dialog": "2.20.1",
34
- "@memberjunction/ng-base-types": "2.20.1",
28
+ "@memberjunction/global": "2.20.3",
29
+ "@memberjunction/core": "2.20.3",
30
+ "@memberjunction/core-entities": "2.20.3",
31
+ "@memberjunction/ng-container-directives": "2.20.3",
32
+ "@memberjunction/ng-notifications": "2.20.3",
33
+ "@memberjunction/ng-generic-dialog": "2.20.3",
34
+ "@memberjunction/ng-base-types": "2.20.3",
35
35
  "@progress/kendo-angular-dropdowns": "16.2.0",
36
36
  "@progress/kendo-angular-grid": "16.2.0",
37
37
  "@progress/kendo-angular-buttons": "16.2.0",