@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.
- package/README.md +89 -1
- package/dist/lib/application-management/application-management.component.d.ts +59 -0
- package/dist/lib/application-management/application-management.component.d.ts.map +1 -0
- package/dist/lib/application-management/application-management.component.js +540 -0
- package/dist/lib/application-management/application-management.component.js.map +1 -0
- package/dist/lib/entity-permissions/entity-permissions.component.d.ts +71 -0
- package/dist/lib/entity-permissions/entity-permissions.component.d.ts.map +1 -0
- package/dist/lib/entity-permissions/entity-permissions.component.js +667 -0
- package/dist/lib/entity-permissions/entity-permissions.component.js.map +1 -0
- package/dist/lib/module.d.ts +19 -23
- package/dist/lib/module.d.ts.map +1 -1
- package/dist/lib/module.js +13 -38
- package/dist/lib/module.js.map +1 -1
- package/dist/lib/role-management/role-management.component.d.ts +56 -0
- package/dist/lib/role-management/role-management.component.d.ts.map +1 -0
- package/dist/lib/role-management/role-management.component.js +464 -0
- package/dist/lib/role-management/role-management.component.js.map +1 -0
- package/dist/lib/settings/settings.component.d.ts +42 -51
- package/dist/lib/settings/settings.component.d.ts.map +1 -1
- package/dist/lib/settings/settings.component.js +432 -198
- package/dist/lib/settings/settings.component.js.map +1 -1
- package/dist/lib/shared/components/settings-card/settings-card.component.d.ts +27 -0
- package/dist/lib/shared/components/settings-card/settings-card.component.d.ts.map +1 -0
- package/dist/lib/shared/components/settings-card/settings-card.component.js +167 -0
- package/dist/lib/shared/components/settings-card/settings-card.component.js.map +1 -0
- package/dist/lib/shared/settings-card.component.d.ts +11 -0
- package/dist/lib/shared/settings-card.component.d.ts.map +1 -0
- package/dist/lib/shared/settings-card.component.js +73 -0
- package/dist/lib/shared/settings-card.component.js.map +1 -0
- package/dist/lib/shared/shared-settings.module.d.ts +9 -0
- package/dist/lib/shared/shared-settings.module.d.ts.map +1 -0
- package/dist/lib/shared/shared-settings.module.js +25 -0
- package/dist/lib/shared/shared-settings.module.js.map +1 -0
- package/dist/lib/sql-logging/sql-logging.component.d.ts +176 -0
- package/dist/lib/sql-logging/sql-logging.component.d.ts.map +1 -0
- package/dist/lib/sql-logging/sql-logging.component.js +946 -0
- package/dist/lib/sql-logging/sql-logging.component.js.map +1 -0
- package/dist/lib/user-management/user-management.component.d.ts +65 -0
- package/dist/lib/user-management/user-management.component.d.ts.map +1 -0
- package/dist/lib/user-management/user-management.component.js +643 -0
- package/dist/lib/user-management/user-management.component.js.map +1 -0
- package/dist/public-api.d.ts +1 -5
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +1 -5
- package/dist/public-api.js.map +1 -1
- package/package.json +13 -13
- package/dist/lib/application-entities-grid/application-entities-grid.component.d.ts +0 -50
- package/dist/lib/application-entities-grid/application-entities-grid.component.d.ts.map +0 -1
- package/dist/lib/application-entities-grid/application-entities-grid.component.js +0 -342
- package/dist/lib/application-entities-grid/application-entities-grid.component.js.map +0 -1
- package/dist/lib/single-application/single-application.component.d.ts +0 -22
- package/dist/lib/single-application/single-application.component.d.ts.map +0 -1
- package/dist/lib/single-application/single-application.component.js +0 -130
- package/dist/lib/single-application/single-application.component.js.map +0 -1
- package/dist/lib/single-role/single-role.component.d.ts +0 -36
- package/dist/lib/single-role/single-role.component.d.ts.map +0 -1
- package/dist/lib/single-role/single-role.component.js +0 -188
- package/dist/lib/single-role/single-role.component.js.map +0 -1
- package/dist/lib/single-user/single-user.component.d.ts +0 -24
- package/dist/lib/single-user/single-user.component.d.ts.map +0 -1
- package/dist/lib/single-user/single-user.component.js +0 -176
- package/dist/lib/single-user/single-user.component.js.map +0 -1
- package/dist/lib/user-roles-grid/user-roles-grid.component.d.ts +0 -42
- package/dist/lib/user-roles-grid/user-roles-grid.component.d.ts.map +0 -1
- package/dist/lib/user-roles-grid/user-roles-grid.component.js +0 -326
- 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"}
|