@memberjunction/ng-explorer-settings 2.50.0 → 2.52.0

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.
Files changed (66) hide show
  1. package/README.md +89 -1
  2. package/dist/lib/application-management/application-management.component.d.ts +59 -0
  3. package/dist/lib/application-management/application-management.component.d.ts.map +1 -0
  4. package/dist/lib/application-management/application-management.component.js +540 -0
  5. package/dist/lib/application-management/application-management.component.js.map +1 -0
  6. package/dist/lib/entity-permissions/entity-permissions.component.d.ts +71 -0
  7. package/dist/lib/entity-permissions/entity-permissions.component.d.ts.map +1 -0
  8. package/dist/lib/entity-permissions/entity-permissions.component.js +667 -0
  9. package/dist/lib/entity-permissions/entity-permissions.component.js.map +1 -0
  10. package/dist/lib/module.d.ts +19 -23
  11. package/dist/lib/module.d.ts.map +1 -1
  12. package/dist/lib/module.js +13 -38
  13. package/dist/lib/module.js.map +1 -1
  14. package/dist/lib/role-management/role-management.component.d.ts +56 -0
  15. package/dist/lib/role-management/role-management.component.d.ts.map +1 -0
  16. package/dist/lib/role-management/role-management.component.js +464 -0
  17. package/dist/lib/role-management/role-management.component.js.map +1 -0
  18. package/dist/lib/settings/settings.component.d.ts +42 -51
  19. package/dist/lib/settings/settings.component.d.ts.map +1 -1
  20. package/dist/lib/settings/settings.component.js +432 -198
  21. package/dist/lib/settings/settings.component.js.map +1 -1
  22. package/dist/lib/shared/components/settings-card/settings-card.component.d.ts +27 -0
  23. package/dist/lib/shared/components/settings-card/settings-card.component.d.ts.map +1 -0
  24. package/dist/lib/shared/components/settings-card/settings-card.component.js +167 -0
  25. package/dist/lib/shared/components/settings-card/settings-card.component.js.map +1 -0
  26. package/dist/lib/shared/settings-card.component.d.ts +11 -0
  27. package/dist/lib/shared/settings-card.component.d.ts.map +1 -0
  28. package/dist/lib/shared/settings-card.component.js +73 -0
  29. package/dist/lib/shared/settings-card.component.js.map +1 -0
  30. package/dist/lib/shared/shared-settings.module.d.ts +9 -0
  31. package/dist/lib/shared/shared-settings.module.d.ts.map +1 -0
  32. package/dist/lib/shared/shared-settings.module.js +25 -0
  33. package/dist/lib/shared/shared-settings.module.js.map +1 -0
  34. package/dist/lib/sql-logging/sql-logging.component.d.ts +176 -0
  35. package/dist/lib/sql-logging/sql-logging.component.d.ts.map +1 -0
  36. package/dist/lib/sql-logging/sql-logging.component.js +946 -0
  37. package/dist/lib/sql-logging/sql-logging.component.js.map +1 -0
  38. package/dist/lib/user-management/user-management.component.d.ts +65 -0
  39. package/dist/lib/user-management/user-management.component.d.ts.map +1 -0
  40. package/dist/lib/user-management/user-management.component.js +643 -0
  41. package/dist/lib/user-management/user-management.component.js.map +1 -0
  42. package/dist/public-api.d.ts +1 -5
  43. package/dist/public-api.d.ts.map +1 -1
  44. package/dist/public-api.js +1 -5
  45. package/dist/public-api.js.map +1 -1
  46. package/package.json +13 -13
  47. package/dist/lib/application-entities-grid/application-entities-grid.component.d.ts +0 -50
  48. package/dist/lib/application-entities-grid/application-entities-grid.component.d.ts.map +0 -1
  49. package/dist/lib/application-entities-grid/application-entities-grid.component.js +0 -342
  50. package/dist/lib/application-entities-grid/application-entities-grid.component.js.map +0 -1
  51. package/dist/lib/single-application/single-application.component.d.ts +0 -22
  52. package/dist/lib/single-application/single-application.component.d.ts.map +0 -1
  53. package/dist/lib/single-application/single-application.component.js +0 -130
  54. package/dist/lib/single-application/single-application.component.js.map +0 -1
  55. package/dist/lib/single-role/single-role.component.d.ts +0 -36
  56. package/dist/lib/single-role/single-role.component.d.ts.map +0 -1
  57. package/dist/lib/single-role/single-role.component.js +0 -188
  58. package/dist/lib/single-role/single-role.component.js.map +0 -1
  59. package/dist/lib/single-user/single-user.component.d.ts +0 -24
  60. package/dist/lib/single-user/single-user.component.d.ts.map +0 -1
  61. package/dist/lib/single-user/single-user.component.js +0 -176
  62. package/dist/lib/single-user/single-user.component.js.map +0 -1
  63. package/dist/lib/user-roles-grid/user-roles-grid.component.d.ts +0 -42
  64. package/dist/lib/user-roles-grid/user-roles-grid.component.d.ts.map +0 -1
  65. package/dist/lib/user-roles-grid/user-roles-grid.component.js +0 -326
  66. package/dist/lib/user-roles-grid/user-roles-grid.component.js.map +0 -1
package/README.md CHANGED
@@ -12,6 +12,7 @@ The `@memberjunction/ng-explorer-settings` package provides a complete settings
12
12
  - **Role Management**: Define and manage security roles with user assignments
13
13
  - **Application Configuration**: Configure applications and their associated entities
14
14
  - **Entity Permissions**: Granular control over entity-level permissions
15
+ - **SQL Logging Management**: Real-time SQL logging configuration and session control
15
16
  - **Transaction-based Updates**: Batch updates using MemberJunction's transaction system
16
17
  - **Responsive Navigation**: Left-side navigation with dynamic content area
17
18
  - **Real-time Updates**: Immediate reflection of permission and assignment changes
@@ -73,6 +74,7 @@ The main navigation component that provides a consistent interface for all setti
73
74
  - `/settings/applications` - Application list view
74
75
  - `/settings/application/:name` - Individual application details
75
76
  - `/settings/entitypermissions` - Entity permission management
77
+ - `/settings/sqllogging` - SQL logging configuration and session management
76
78
 
77
79
  **Example**:
78
80
  ```typescript
@@ -206,6 +208,87 @@ Manages entity associations with applications.
206
208
  </mj-application-entities-grid>
207
209
  ```
208
210
 
211
+ ### SqlLoggingComponent
212
+
213
+ Provides comprehensive SQL logging management for debugging and migration generation.
214
+
215
+ **Selector**: `mj-sql-logging`
216
+
217
+ **Features**:
218
+ - Real-time SQL logging session management
219
+ - Owner-level access control (requires `Type = 'Owner'`)
220
+ - Session configuration with filtering options
221
+ - Live session monitoring with statement counts
222
+ - Multiple concurrent session support
223
+ - Auto-refresh capabilities
224
+ - Integration with MemberJunction's GraphQL API
225
+
226
+ **Key Capabilities**:
227
+ - **Session Creation**: Start new SQL logging sessions with custom options
228
+ - **User Filtering**: Capture SQL statements from specific users only
229
+ - **Format Options**: Standard SQL logs or migration-ready files
230
+ - **Real-time Monitoring**: View active sessions and their progress
231
+ - **Batch Operations**: Stop individual sessions or all sessions at once
232
+ - **Auto-cleanup**: Sessions automatically expire and clean up empty files
233
+
234
+ **Security Requirements**:
235
+ - User must have `Type = 'Owner'` in the Users table
236
+ - SQL logging must be enabled in server configuration
237
+ - Valid authentication required for all operations
238
+
239
+ **Example Usage**:
240
+ ```html
241
+ <!-- Include in settings navigation -->
242
+ <mj-sql-logging></mj-sql-logging>
243
+ ```
244
+
245
+ **Session Configuration Options**:
246
+ ```typescript
247
+ interface SessionOptions {
248
+ fileName?: string; // Custom log file name
249
+ sessionName?: string; // Human-readable session name
250
+ filterToCurrentUser?: boolean; // Filter to current user's SQL only
251
+ formatAsMigration?: boolean; // Format as migration file
252
+ prettyPrint?: boolean; // Format SQL with indentation
253
+ statementTypes?: 'queries' | 'mutations' | 'both'; // SQL types to capture
254
+ }
255
+ ```
256
+
257
+ **GraphQL Integration**:
258
+ ```typescript
259
+ // The component automatically handles GraphQL operations:
260
+ // - sqlLoggingConfig: Get current configuration
261
+ // - activeSqlLoggingSessions: List active sessions
262
+ // - startSqlLogging: Create new session
263
+ // - stopSqlLogging: Stop specific session
264
+ // - stopAllSqlLogging: Stop all sessions
265
+ ```
266
+
267
+ **UI Features**:
268
+ - **Dashboard-style interface** with modern AI dashboard styling
269
+ - **Status indicators** showing configuration state and active sessions
270
+ - **Interactive session cards** with duration, statement counts, and controls
271
+ - **Dialog-based session creation** with comprehensive options
272
+ - **Auto-refresh toggle** for real-time session monitoring
273
+ - **Responsive layout** optimized for desktop use
274
+
275
+ **Access Control**:
276
+ - Non-Owner users see access denied message with permission refresh option
277
+ - Disabled state shown when SQL logging not enabled in server config
278
+ - Clear instructions provided for enabling SQL logging
279
+
280
+ **Error Handling**:
281
+ - Comprehensive error messages for common issues
282
+ - Graceful handling of permission and configuration problems
283
+ - User-friendly notifications for all operations
284
+ - Debug logging for troubleshooting
285
+
286
+ **Integration Notes**:
287
+ - Requires MJServer with SqlLoggingConfigResolver
288
+ - Works with SQLServerDataProvider logging capabilities
289
+ - Follows MemberJunction's security and styling patterns
290
+ - Compatible with modern Angular control flow syntax (`@if`, `@for`)
291
+
209
292
  ## User Management Features
210
293
 
211
294
  ### User Activation/Deactivation
@@ -269,7 +352,8 @@ public options = [
269
352
  { label: 'Users', value: SettingsItem.Users },
270
353
  { label: 'Roles', value: SettingsItem.Roles },
271
354
  { label: 'Applications', value: SettingsItem.Applications },
272
- { label: 'Entity Permissions', value: SettingsItem.EntityPermissions }
355
+ { label: 'Entity Permissions', value: SettingsItem.EntityPermissions },
356
+ { label: 'SQL Logging', value: SettingsItem.SqlLogging }
273
357
  ];
274
358
  ```
275
359
 
@@ -302,6 +386,7 @@ This package depends on several MemberJunction and third-party packages:
302
386
  - `@memberjunction/ng-user-view-grid`: User view grid component
303
387
  - `@memberjunction/ng-simple-record-list`: Record list component
304
388
  - `@memberjunction/ng-tabstrip`: Tab navigation component
389
+ - `@memberjunction/graphql-dataprovider`: GraphQL operations for SQL logging
305
390
 
306
391
  ### Kendo UI Dependencies
307
392
  - `@progress/kendo-angular-dropdowns`: Dropdown components
@@ -310,6 +395,9 @@ This package depends on several MemberJunction and third-party packages:
310
395
  - `@progress/kendo-angular-dialog`: Dialog components
311
396
  - `@progress/kendo-angular-layout`: Layout utilities
312
397
  - `@progress/kendo-angular-indicators`: Loading indicators
398
+ - `@progress/kendo-angular-inputs`: Form input components
399
+ - `@progress/kendo-angular-label`: Label components
400
+ - `@progress/kendo-angular-dialog`: Modal dialogs for session configuration
313
401
 
314
402
  ### Angular Dependencies (Peer)
315
403
  - `@angular/common`: ^18.0.2
@@ -0,0 +1,59 @@
1
+ import { OnInit, OnDestroy } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { ApplicationEntity, ApplicationEntityEntity } from '@memberjunction/core-entities';
4
+ import * as i0 from "@angular/core";
5
+ interface AppStats {
6
+ totalApplications: number;
7
+ activeApplications: number;
8
+ totalEntities: number;
9
+ publicEntities: number;
10
+ }
11
+ interface FilterOptions {
12
+ status: 'all' | 'active' | 'inactive';
13
+ search: string;
14
+ }
15
+ export declare class ApplicationManagementComponent implements OnInit, OnDestroy {
16
+ applications: ApplicationEntity[];
17
+ filteredApplications: ApplicationEntity[];
18
+ selectedApp: ApplicationEntity | null;
19
+ isLoading: boolean;
20
+ error: string | null;
21
+ appEntities: Map<string, ApplicationEntityEntity[]>;
22
+ stats: AppStats;
23
+ filters$: BehaviorSubject<FilterOptions>;
24
+ showCreateDialog: boolean;
25
+ showEditDialog: boolean;
26
+ showDeleteConfirm: boolean;
27
+ expandedAppId: string | null;
28
+ private destroy$;
29
+ private metadata;
30
+ constructor();
31
+ ngOnInit(): void;
32
+ ngOnDestroy(): void;
33
+ loadInitialData(): Promise<void>;
34
+ private loadApplications;
35
+ private loadApplicationEntities;
36
+ private processApplicationEntities;
37
+ private setupFilterSubscription;
38
+ private applyFilters;
39
+ private calculateStats;
40
+ onSearchChange(event: Event): void;
41
+ onStatusFilterChange(status: 'all' | 'active' | 'inactive'): void;
42
+ updateFilter(partial: Partial<FilterOptions>): void;
43
+ toggleAppExpansion(appId: string): void;
44
+ isAppExpanded(appId: string): boolean;
45
+ getAppEntities(appId: string): ApplicationEntityEntity[];
46
+ getEntityInfo(entityId: string): any;
47
+ createNewApplication(): void;
48
+ editApplication(app: ApplicationEntity): void;
49
+ confirmDeleteApplication(app: ApplicationEntity): void;
50
+ deleteApplication(): Promise<void>;
51
+ getAppIcon(app: ApplicationEntity): string;
52
+ getAppStatusClass(app: ApplicationEntity): string;
53
+ getAppStatusLabel(app: ApplicationEntity): string;
54
+ refreshData(): void;
55
+ static ɵfac: i0.ɵɵFactoryDeclaration<ApplicationManagementComponent, never>;
56
+ static ɵcmp: i0.ɵɵComponentDeclaration<ApplicationManagementComponent, "mj-application-management", never, {}, {}, never, never, true, never>;
57
+ }
58
+ export {};
59
+ //# sourceMappingURL=application-management.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application-management.component.d.ts","sourceRoot":"","sources":["../../../src/lib/application-management/application-management.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG7D,OAAO,EAAW,eAAe,EAAE,MAAM,MAAM,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;;AAG3F,UAAU,QAAQ;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,aAAa;IACrB,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAWa,8BAA+B,YAAW,MAAM,EAAE,SAAS;IAE/D,YAAY,EAAE,iBAAiB,EAAE,CAAM;IACvC,oBAAoB,EAAE,iBAAiB,EAAE,CAAM;IAC/C,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAC7C,SAAS,UAAS;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG5B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAAC,CAAa;IAGhE,KAAK,EAAE,QAAQ,CAKpB;IAGK,QAAQ,iCAGZ;IAGI,gBAAgB,UAAS;IACzB,cAAc,UAAS;IACvB,iBAAiB,UAAS;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE3C,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,QAAQ,CAAkB;;IAIlC,QAAQ,IAAI,IAAI;IAKhB,WAAW,IAAI,IAAI;IAKN,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;YAwB/B,gBAAgB;YAWhB,uBAAuB;IAWrC,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,cAAc;IAoBf,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAKlC,oBAAoB,CAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,IAAI;IAIjE,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAOnD,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIvC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIrC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,uBAAuB,EAAE;IAIxD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG;IAIpC,oBAAoB,IAAI,IAAI;IAK5B,eAAe,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI;IAK7C,wBAAwB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI;IAKhD,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAaxC,UAAU,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM;IAK1C,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM;IAKjD,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM;IAKjD,WAAW,IAAI,IAAI;yCA1Of,8BAA8B;2CAA9B,8BAA8B;CA6O1C"}