@mediusinc/mng-commons-audit 3.0.0-rc.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 +7 -0
- package/assets/i18n/en.json +27 -0
- package/assets/i18n/sl.json +18 -0
- package/esm2022/index.mjs +3 -0
- package/esm2022/lib/api/models/entityChange.mjs +42 -0
- package/esm2022/lib/api/models/guiEntityModel.mjs +37 -0
- package/esm2022/lib/api/models/guiPropertyModel.mjs +62 -0
- package/esm2022/lib/api/models/guiPropertyType.mjs +24 -0
- package/esm2022/lib/api/models/guiRelationModel.mjs +42 -0
- package/esm2022/lib/api/models/index.mjs +12 -0
- package/esm2022/lib/api/models/revEntityChangeDto.mjs +52 -0
- package/esm2022/lib/api/models/revEntityDto.mjs +42 -0
- package/esm2022/lib/api/models/revEntityWithChangesDto.mjs +37 -0
- package/esm2022/lib/api/models/revEntityWithStateDto.mjs +47 -0
- package/esm2022/lib/api/models/revisionType.mjs +20 -0
- package/esm2022/lib/api/models/revisionTypeEnumDto.mjs +20 -0
- package/esm2022/lib/api/services/audit-entity-revisions-api.service.mjs +47 -0
- package/esm2022/lib/api/services/audit-revisions-api.service.mjs +34 -0
- package/esm2022/lib/audit.routes.mjs +12 -0
- package/esm2022/lib/components/entity-changes-field/entity-changes-field.component.mjs +62 -0
- package/esm2022/lib/components/pages/entity-revisions/audit-entity-revisions-page.component.mjs +43 -0
- package/esm2022/lib/components/pages/entity-revisions/entity-dropdown-page.component.mjs +32 -0
- package/esm2022/lib/components/pages/revisions/audit-revisions-page.component.mjs +75 -0
- package/esm2022/lib/models/entity-changes.model.mjs +8 -0
- package/esm2022/mediusinc-mng-commons-audit.mjs +5 -0
- package/fesm2022/mediusinc-mng-commons-audit.mjs +605 -0
- package/fesm2022/mediusinc-mng-commons-audit.mjs.map +1 -0
- package/index.d.ts +2 -0
- package/lib/api/models/entityChange.d.ts +25 -0
- package/lib/api/models/guiEntityModel.d.ts +20 -0
- package/lib/api/models/guiPropertyModel.d.ts +26 -0
- package/lib/api/models/guiPropertyType.d.ts +9 -0
- package/lib/api/models/guiRelationModel.d.ts +20 -0
- package/lib/api/models/index.d.ts +11 -0
- package/lib/api/models/revEntityChangeDto.d.ts +25 -0
- package/lib/api/models/revEntityDto.d.ts +20 -0
- package/lib/api/models/revEntityWithChangesDto.d.ts +24 -0
- package/lib/api/models/revEntityWithStateDto.d.ts +26 -0
- package/lib/api/models/revisionType.d.ts +5 -0
- package/lib/api/models/revisionTypeEnumDto.d.ts +5 -0
- package/lib/api/services/audit-entity-revisions-api.service.d.ts +14 -0
- package/lib/api/services/audit-revisions-api.service.d.ts +16 -0
- package/lib/audit.routes.d.ts +2 -0
- package/lib/components/entity-changes-field/entity-changes-field.component.d.ts +12 -0
- package/lib/components/pages/entity-revisions/audit-entity-revisions-page.component.d.ts +14 -0
- package/lib/components/pages/entity-revisions/entity-dropdown-page.component.d.ts +12 -0
- package/lib/components/pages/revisions/audit-revisions-page.component.d.ts +14 -0
- package/lib/models/entity-changes.model.d.ts +4 -0
- package/package.json +26 -0
|
@@ -0,0 +1,605 @@
|
|
|
1
|
+
import { AMngGetAllApiService, MngConfigurationService, MngDropdownComponent, AMngTableviewRouteComponent, DynamicTableviewDataProvider, TableviewDynamicDescriptor, TablePaginationModeEnum, MediusQueryParamBuilder, MediusFilterMatchType, ActionDataProviderUtil, MngTableviewComponent, TypeName, ObjectSerializer, TableviewDescriptor, TableviewDataProvider, MediusQueryResult, MngTableviewRouteComponent, RoutesBuilder, RouteBuilder, TableviewRouteBuilder, MngTableComponent } from '@mediusinc/mng-commons';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { inject, Injectable, Component, ChangeDetectionStrategy } from '@angular/core';
|
|
4
|
+
import { map as map$1 } from 'rxjs/operators';
|
|
5
|
+
import { HttpParams, HttpClient } from '@angular/common/http';
|
|
6
|
+
import { map, BehaviorSubject, switchMap, of } from 'rxjs';
|
|
7
|
+
import * as i2 from '@angular/forms';
|
|
8
|
+
import { FormsModule } from '@angular/forms';
|
|
9
|
+
import * as i1 from '@angular/router';
|
|
10
|
+
import { RouterOutlet } from '@angular/router';
|
|
11
|
+
import { NgIf, AsyncPipe, JsonPipe, NgForOf } from '@angular/common';
|
|
12
|
+
import { __decorate } from 'tslib';
|
|
13
|
+
import { FieldType } from '@ngx-formly/core';
|
|
14
|
+
|
|
15
|
+
class MngAuditEntityRevisionsApiService extends AMngGetAllApiService {
|
|
16
|
+
constructor() {
|
|
17
|
+
super({}, {});
|
|
18
|
+
this.configService = inject(MngConfigurationService);
|
|
19
|
+
}
|
|
20
|
+
getModels() {
|
|
21
|
+
const url = this.getUrl('/model');
|
|
22
|
+
return this.http.get(url);
|
|
23
|
+
}
|
|
24
|
+
getAllRevisionsForEntity(revisionEntity, queryParamBody, params, locale) {
|
|
25
|
+
const url = this.getUrl(revisionEntity, this.getGetAllPostPath());
|
|
26
|
+
if (params && locale) {
|
|
27
|
+
params = params.set('lang', locale);
|
|
28
|
+
}
|
|
29
|
+
else if (locale) {
|
|
30
|
+
params = new HttpParams().set('lang', locale);
|
|
31
|
+
}
|
|
32
|
+
return this.http
|
|
33
|
+
.post(url, queryParamBody ? this.serializeQueryParam(queryParamBody) : undefined, {
|
|
34
|
+
withCredentials: true,
|
|
35
|
+
observe: 'body',
|
|
36
|
+
reportProgress: false,
|
|
37
|
+
params: params
|
|
38
|
+
})
|
|
39
|
+
.pipe(map(res => this.deserializeQueryResult(res, this.queryResultType)));
|
|
40
|
+
}
|
|
41
|
+
getServiceBasePath() {
|
|
42
|
+
return 'revision/entity';
|
|
43
|
+
}
|
|
44
|
+
getBasePath() {
|
|
45
|
+
return this.configService.getConfigValue('coreBasePath');
|
|
46
|
+
}
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditEntityRevisionsApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
48
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditEntityRevisionsApiService, providedIn: 'root' }); }
|
|
49
|
+
}
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditEntityRevisionsApiService, decorators: [{
|
|
51
|
+
type: Injectable,
|
|
52
|
+
args: [{
|
|
53
|
+
providedIn: 'root'
|
|
54
|
+
}]
|
|
55
|
+
}], ctorParameters: function () { return []; } });
|
|
56
|
+
|
|
57
|
+
class EntityDropdownPageComponent {
|
|
58
|
+
constructor(router, route) {
|
|
59
|
+
this.router = router;
|
|
60
|
+
this.route = route;
|
|
61
|
+
// this.revisionEntitiesLookupProvider = new LookupDataProvider<string, MngAuditEntityRevisionsApiService>(
|
|
62
|
+
// {} as ClassType<string>,
|
|
63
|
+
// MngAuditEntityRevisionsApiService
|
|
64
|
+
// ).withLookup((qp, service) => (service as MngAuditEntityRevisionsApiService).getModels());
|
|
65
|
+
}
|
|
66
|
+
onRevisionEntityChange() {
|
|
67
|
+
if (this.selectedRevisionEntity) {
|
|
68
|
+
this.router.navigate([this.selectedRevisionEntity], { relativeTo: this.route });
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
this.router.navigate(['/audit/entity-revisions']);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: EntityDropdownPageComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
75
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: EntityDropdownPageComponent, isStandalone: true, selector: "mng-audit-entity-dropdown-component", ngImport: i0, template: "<div class=\"card\">\n <mng-dropdown\n id=\"revisionEntityDropdown\"\n [(ngModel)]=\"selectedRevisionEntity\"\n (valueChange)=\"onRevisionEntityChange()\"\n [dataProvider]=\"revisionEntitiesLookupProvider\"></mng-dropdown>\n</div>\n<router-outlet></router-outlet>\n", dependencies: [{ kind: "component", type: MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "itemsLabelTranslate", "itemsValueProperty", "itemsDisabledProperty", "multiselect", "placeholder", "showClear", "selectFirstItem", "className", "dropdownClassName", "changeValueOnBlur"], outputs: ["valueChange"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
76
|
+
}
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: EntityDropdownPageComponent, decorators: [{
|
|
78
|
+
type: Component,
|
|
79
|
+
args: [{ standalone: true, selector: 'mng-audit-entity-dropdown-component', imports: [MngDropdownComponent, RouterOutlet, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card\">\n <mng-dropdown\n id=\"revisionEntityDropdown\"\n [(ngModel)]=\"selectedRevisionEntity\"\n (valueChange)=\"onRevisionEntityChange()\"\n [dataProvider]=\"revisionEntitiesLookupProvider\"></mng-dropdown>\n</div>\n<router-outlet></router-outlet>\n" }]
|
|
80
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }]; } });
|
|
81
|
+
|
|
82
|
+
class AuditEntityRevisionsPageComponent extends AMngTableviewRouteComponent {
|
|
83
|
+
constructor(dropdownPage, mngAuditEntityRevisionsApiService) {
|
|
84
|
+
super();
|
|
85
|
+
this.dropdownPage = dropdownPage;
|
|
86
|
+
this.mngAuditEntityRevisionsApiService = mngAuditEntityRevisionsApiService;
|
|
87
|
+
this.dropdownPage.selectedRevisionEntity = this.route.snapshot.params['entityClass'];
|
|
88
|
+
}
|
|
89
|
+
createTableviewDataProvider() {
|
|
90
|
+
return new DynamicTableviewDataProvider().withGetAll(qp => this.mngAuditEntityRevisionsApiService.getAllRevisionsForEntity(this.dropdownPage.selectedRevisionEntity, qp));
|
|
91
|
+
}
|
|
92
|
+
createTableviewDescriptor() {
|
|
93
|
+
const descriptor = new TableviewDynamicDescriptor('rev', 'rev', this.dropdownPage.selectedRevisionEntity);
|
|
94
|
+
descriptor.table.withDefaultSort('rev').withColumnsExcluded(['revDate']).withPaginationMode(TablePaginationModeEnum.Pagination);
|
|
95
|
+
return descriptor;
|
|
96
|
+
}
|
|
97
|
+
createActionDescriptors() {
|
|
98
|
+
return [
|
|
99
|
+
this.createActionDescriptorForDetails()
|
|
100
|
+
.withFetchFunction(ctx => {
|
|
101
|
+
const queryParamBuilder = ctx.parameters.queryParam ? MediusQueryParamBuilder.createFromExisting(ctx.parameters.queryParam) : MediusQueryParamBuilder.create();
|
|
102
|
+
queryParamBuilder.withFilter('rev', ctx.parameters.itemId, ctx.parameters.itemId, MediusFilterMatchType.Equals);
|
|
103
|
+
ctx.parameters.withQueryParam(queryParamBuilder.build());
|
|
104
|
+
return ActionDataProviderUtil.runGetAllOrFail(ctx).pipe(map$1(res => (res.pageData ? res.pageData[0] : {})));
|
|
105
|
+
})
|
|
106
|
+
.withEditorTitle('entityRevisionDetails.title', { revEntity: this.dropdownPage.selectedRevisionEntity })
|
|
107
|
+
];
|
|
108
|
+
}
|
|
109
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AuditEntityRevisionsPageComponent, deps: [{ token: EntityDropdownPageComponent }, { token: MngAuditEntityRevisionsApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AuditEntityRevisionsPageComponent, isStandalone: true, selector: "mng-audit-entity-revisions-page", usesInheritance: true, ngImport: i0, template: "<mng-tableview [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview>\n", dependencies: [{ kind: "component", type: MngTableviewComponent, selector: "mng-tableview", inputs: ["descriptor", "dataProvider", "actions"] }] }); }
|
|
111
|
+
}
|
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AuditEntityRevisionsPageComponent, decorators: [{
|
|
113
|
+
type: Component,
|
|
114
|
+
args: [{ standalone: true, selector: 'mng-audit-entity-revisions-page', imports: [MngTableviewComponent], template: "<mng-tableview [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview>\n" }]
|
|
115
|
+
}], ctorParameters: function () { return [{ type: EntityDropdownPageComponent }, { type: MngAuditEntityRevisionsApiService }]; } });
|
|
116
|
+
|
|
117
|
+
var EntityChange_1;
|
|
118
|
+
let EntityChange = class EntityChange {
|
|
119
|
+
static { EntityChange_1 = this; }
|
|
120
|
+
static { this.attributeTypeMap = [
|
|
121
|
+
{
|
|
122
|
+
name: 'revType',
|
|
123
|
+
baseName: 'revType',
|
|
124
|
+
type: 'RevisionType'
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: 'entityOldState',
|
|
128
|
+
baseName: 'entityOldState',
|
|
129
|
+
type: '{ [key: string]: any; }'
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
name: 'entityNewState',
|
|
133
|
+
baseName: 'entityNewState',
|
|
134
|
+
type: '{ [key: string]: any; }'
|
|
135
|
+
}
|
|
136
|
+
]; }
|
|
137
|
+
static getAttributeTypeMap() {
|
|
138
|
+
return EntityChange_1.attributeTypeMap;
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
EntityChange = EntityChange_1 = __decorate([
|
|
142
|
+
TypeName('EntityChange')
|
|
143
|
+
], EntityChange);
|
|
144
|
+
ObjectSerializer.get().registerType(EntityChange);
|
|
145
|
+
|
|
146
|
+
var GuiEntityModel_1;
|
|
147
|
+
let GuiEntityModel = class GuiEntityModel {
|
|
148
|
+
static { GuiEntityModel_1 = this; }
|
|
149
|
+
static { this.attributeTypeMap = [
|
|
150
|
+
{
|
|
151
|
+
name: 'entityName',
|
|
152
|
+
baseName: 'entityName',
|
|
153
|
+
type: 'string'
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
name: 'properties',
|
|
157
|
+
baseName: 'properties',
|
|
158
|
+
type: 'Array<GuiPropertyModel>'
|
|
159
|
+
}
|
|
160
|
+
]; }
|
|
161
|
+
static getAttributeTypeMap() {
|
|
162
|
+
return GuiEntityModel_1.attributeTypeMap;
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
GuiEntityModel = GuiEntityModel_1 = __decorate([
|
|
166
|
+
TypeName('GuiEntityModel')
|
|
167
|
+
], GuiEntityModel);
|
|
168
|
+
ObjectSerializer.get().registerType(GuiEntityModel);
|
|
169
|
+
|
|
170
|
+
var GuiPropertyModel_1;
|
|
171
|
+
let GuiPropertyModel = class GuiPropertyModel {
|
|
172
|
+
static { GuiPropertyModel_1 = this; }
|
|
173
|
+
static { this.attributeTypeMap = [
|
|
174
|
+
{
|
|
175
|
+
name: 'propertyName',
|
|
176
|
+
baseName: 'propertyName',
|
|
177
|
+
type: 'string'
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
name: 'resolvedPropertyName',
|
|
181
|
+
baseName: 'resolvedPropertyName',
|
|
182
|
+
type: 'string'
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
name: 'possibleEnumValues',
|
|
186
|
+
baseName: 'possibleEnumValues',
|
|
187
|
+
type: 'Array<string>'
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
name: 'isId',
|
|
191
|
+
baseName: 'isId',
|
|
192
|
+
type: 'boolean'
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
name: 'propertyType',
|
|
196
|
+
baseName: 'propertyType',
|
|
197
|
+
type: 'GuiPropertyType'
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
name: 'relationModel',
|
|
201
|
+
baseName: 'relationModel',
|
|
202
|
+
type: 'GuiRelationModel'
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
name: 'id',
|
|
206
|
+
baseName: 'id',
|
|
207
|
+
type: 'boolean'
|
|
208
|
+
}
|
|
209
|
+
]; }
|
|
210
|
+
static getAttributeTypeMap() {
|
|
211
|
+
return GuiPropertyModel_1.attributeTypeMap;
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
GuiPropertyModel = GuiPropertyModel_1 = __decorate([
|
|
215
|
+
TypeName('GuiPropertyModel')
|
|
216
|
+
], GuiPropertyModel);
|
|
217
|
+
ObjectSerializer.get().registerType(GuiPropertyModel);
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Medius quarkus sampler
|
|
221
|
+
* Sampler OPENAPI definition
|
|
222
|
+
*
|
|
223
|
+
* The version of the OpenAPI document: 1.0.0
|
|
224
|
+
* Contact: info@medius.si
|
|
225
|
+
*
|
|
226
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
227
|
+
* https://openapi-generator.tech
|
|
228
|
+
* Do not edit the class manually.
|
|
229
|
+
*/
|
|
230
|
+
var GuiPropertyType;
|
|
231
|
+
(function (GuiPropertyType) {
|
|
232
|
+
GuiPropertyType["LocalDate"] = "LOCAL_DATE";
|
|
233
|
+
GuiPropertyType["OffsetDateTime"] = "OFFSET_DATE_TIME";
|
|
234
|
+
GuiPropertyType["String"] = "STRING";
|
|
235
|
+
GuiPropertyType["Number"] = "NUMBER";
|
|
236
|
+
GuiPropertyType["Boolean"] = "BOOLEAN";
|
|
237
|
+
GuiPropertyType["Enum"] = "ENUM";
|
|
238
|
+
GuiPropertyType["Wildcard"] = "WILDCARD";
|
|
239
|
+
})(GuiPropertyType || (GuiPropertyType = {}));
|
|
240
|
+
ObjectSerializer.get().registerEnum(GuiPropertyType, 'GuiPropertyType');
|
|
241
|
+
|
|
242
|
+
var GuiRelationModel_1;
|
|
243
|
+
let GuiRelationModel = class GuiRelationModel {
|
|
244
|
+
static { GuiRelationModel_1 = this; }
|
|
245
|
+
static { this.attributeTypeMap = [
|
|
246
|
+
{
|
|
247
|
+
name: 'idPropertyName',
|
|
248
|
+
baseName: 'idPropertyName',
|
|
249
|
+
type: 'string'
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
name: 'isAudited',
|
|
253
|
+
baseName: 'isAudited',
|
|
254
|
+
type: 'boolean'
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
name: 'audited',
|
|
258
|
+
baseName: 'audited',
|
|
259
|
+
type: 'boolean'
|
|
260
|
+
}
|
|
261
|
+
]; }
|
|
262
|
+
static getAttributeTypeMap() {
|
|
263
|
+
return GuiRelationModel_1.attributeTypeMap;
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
GuiRelationModel = GuiRelationModel_1 = __decorate([
|
|
267
|
+
TypeName('GuiRelationModel')
|
|
268
|
+
], GuiRelationModel);
|
|
269
|
+
ObjectSerializer.get().registerType(GuiRelationModel);
|
|
270
|
+
|
|
271
|
+
var RevEntityChangeDto_1;
|
|
272
|
+
let RevEntityChangeDto = class RevEntityChangeDto {
|
|
273
|
+
static { RevEntityChangeDto_1 = this; }
|
|
274
|
+
static { this.attributeTypeMap = [
|
|
275
|
+
{
|
|
276
|
+
name: 'rev',
|
|
277
|
+
baseName: 'rev',
|
|
278
|
+
type: 'number'
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
name: 'revDate',
|
|
282
|
+
baseName: 'revDate',
|
|
283
|
+
type: 'Date'
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
name: 'revUsername',
|
|
287
|
+
baseName: 'revUsername',
|
|
288
|
+
type: 'string'
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
name: 'revType',
|
|
292
|
+
baseName: 'revType',
|
|
293
|
+
type: 'RevisionTypeEnumDto'
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
name: 'state',
|
|
297
|
+
baseName: 'state',
|
|
298
|
+
type: '{ [key: string]: any; }'
|
|
299
|
+
}
|
|
300
|
+
]; }
|
|
301
|
+
static getAttributeTypeMap() {
|
|
302
|
+
return RevEntityChangeDto_1.attributeTypeMap;
|
|
303
|
+
}
|
|
304
|
+
};
|
|
305
|
+
RevEntityChangeDto = RevEntityChangeDto_1 = __decorate([
|
|
306
|
+
TypeName('RevEntityChangeDto')
|
|
307
|
+
], RevEntityChangeDto);
|
|
308
|
+
ObjectSerializer.get().registerType(RevEntityChangeDto);
|
|
309
|
+
|
|
310
|
+
var RevEntityDto_1;
|
|
311
|
+
let RevEntityDto = class RevEntityDto {
|
|
312
|
+
static { RevEntityDto_1 = this; }
|
|
313
|
+
static { this.attributeTypeMap = [
|
|
314
|
+
{
|
|
315
|
+
name: 'rev',
|
|
316
|
+
baseName: 'rev',
|
|
317
|
+
type: 'number'
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
name: 'revDate',
|
|
321
|
+
baseName: 'revDate',
|
|
322
|
+
type: 'Date'
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
name: 'revUsername',
|
|
326
|
+
baseName: 'revUsername',
|
|
327
|
+
type: 'string'
|
|
328
|
+
}
|
|
329
|
+
]; }
|
|
330
|
+
static getAttributeTypeMap() {
|
|
331
|
+
return RevEntityDto_1.attributeTypeMap;
|
|
332
|
+
}
|
|
333
|
+
};
|
|
334
|
+
RevEntityDto = RevEntityDto_1 = __decorate([
|
|
335
|
+
TypeName('RevEntityDto')
|
|
336
|
+
], RevEntityDto);
|
|
337
|
+
ObjectSerializer.get().registerType(RevEntityDto);
|
|
338
|
+
|
|
339
|
+
var RevEntityWithChangesDto_1;
|
|
340
|
+
let RevEntityWithChangesDto = class RevEntityWithChangesDto {
|
|
341
|
+
static { RevEntityWithChangesDto_1 = this; }
|
|
342
|
+
static { this.attributeTypeMap = [
|
|
343
|
+
{
|
|
344
|
+
name: 'revEntity',
|
|
345
|
+
baseName: 'revEntity',
|
|
346
|
+
type: '{ [key: string]: any; }'
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
name: 'entityNameChangesMap',
|
|
350
|
+
baseName: 'entityNameChangesMap',
|
|
351
|
+
type: '{ [key: string]: Array<EntityChange>; }'
|
|
352
|
+
}
|
|
353
|
+
]; }
|
|
354
|
+
static getAttributeTypeMap() {
|
|
355
|
+
return RevEntityWithChangesDto_1.attributeTypeMap;
|
|
356
|
+
}
|
|
357
|
+
};
|
|
358
|
+
RevEntityWithChangesDto = RevEntityWithChangesDto_1 = __decorate([
|
|
359
|
+
TypeName('RevEntityWithChangesDto')
|
|
360
|
+
], RevEntityWithChangesDto);
|
|
361
|
+
ObjectSerializer.get().registerType(RevEntityWithChangesDto);
|
|
362
|
+
|
|
363
|
+
var RevEntityWithStateDto_1;
|
|
364
|
+
let RevEntityWithStateDto = class RevEntityWithStateDto {
|
|
365
|
+
static { RevEntityWithStateDto_1 = this; }
|
|
366
|
+
static { this.attributeTypeMap = [
|
|
367
|
+
{
|
|
368
|
+
name: 'revEntity',
|
|
369
|
+
baseName: 'revEntity',
|
|
370
|
+
type: '{ [key: string]: any; }'
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
name: 'revType',
|
|
374
|
+
baseName: 'revType',
|
|
375
|
+
type: 'RevisionType'
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
name: 'entityClassName',
|
|
379
|
+
baseName: 'entityClassName',
|
|
380
|
+
type: 'string'
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
name: 'entityState',
|
|
384
|
+
baseName: 'entityState',
|
|
385
|
+
type: '{ [key: string]: any; }'
|
|
386
|
+
}
|
|
387
|
+
]; }
|
|
388
|
+
static getAttributeTypeMap() {
|
|
389
|
+
return RevEntityWithStateDto_1.attributeTypeMap;
|
|
390
|
+
}
|
|
391
|
+
};
|
|
392
|
+
RevEntityWithStateDto = RevEntityWithStateDto_1 = __decorate([
|
|
393
|
+
TypeName('RevEntityWithStateDto')
|
|
394
|
+
], RevEntityWithStateDto);
|
|
395
|
+
ObjectSerializer.get().registerType(RevEntityWithStateDto);
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* Medius quarkus sampler
|
|
399
|
+
* Sampler OPENAPI definition
|
|
400
|
+
*
|
|
401
|
+
* The version of the OpenAPI document: 1.0.0
|
|
402
|
+
* Contact: info@medius.si
|
|
403
|
+
*
|
|
404
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
405
|
+
* https://openapi-generator.tech
|
|
406
|
+
* Do not edit the class manually.
|
|
407
|
+
*/
|
|
408
|
+
var RevisionType;
|
|
409
|
+
(function (RevisionType) {
|
|
410
|
+
RevisionType["Add"] = "ADD";
|
|
411
|
+
RevisionType["Mod"] = "MOD";
|
|
412
|
+
RevisionType["Del"] = "DEL";
|
|
413
|
+
})(RevisionType || (RevisionType = {}));
|
|
414
|
+
ObjectSerializer.get().registerEnum(RevisionType, 'RevisionType');
|
|
415
|
+
|
|
416
|
+
/**
|
|
417
|
+
* Medius quarkus sampler
|
|
418
|
+
* Sampler OPENAPI definition
|
|
419
|
+
*
|
|
420
|
+
* The version of the OpenAPI document: 1.0.0
|
|
421
|
+
* Contact: info@medius.si
|
|
422
|
+
*
|
|
423
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
424
|
+
* https://openapi-generator.tech
|
|
425
|
+
* Do not edit the class manually.
|
|
426
|
+
*/
|
|
427
|
+
var RevisionTypeEnumDto;
|
|
428
|
+
(function (RevisionTypeEnumDto) {
|
|
429
|
+
RevisionTypeEnumDto["Add"] = "ADD";
|
|
430
|
+
RevisionTypeEnumDto["Mod"] = "MOD";
|
|
431
|
+
RevisionTypeEnumDto["Del"] = "DEL";
|
|
432
|
+
})(RevisionTypeEnumDto || (RevisionTypeEnumDto = {}));
|
|
433
|
+
ObjectSerializer.get().registerEnum(RevisionTypeEnumDto, 'RevisionTypeEnumDto');
|
|
434
|
+
|
|
435
|
+
class MngAuditRevisionsApiService {
|
|
436
|
+
constructor() {
|
|
437
|
+
this.http = inject(HttpClient);
|
|
438
|
+
this.configService = inject(MngConfigurationService);
|
|
439
|
+
}
|
|
440
|
+
getRevModel() {
|
|
441
|
+
return this.http.get(`${this.configService.getConfigValue('coreBasePath')}/revision/rev-model`);
|
|
442
|
+
}
|
|
443
|
+
getAuditModel() {
|
|
444
|
+
return this.http.get(`${this.configService.getConfigValue('coreBasePath')}/revision/audit-model`);
|
|
445
|
+
}
|
|
446
|
+
getRevisionList() {
|
|
447
|
+
return this.http.get(`${this.configService.getConfigValue('coreBasePath')}/revision/list?firstResult=0&maxResults=20`);
|
|
448
|
+
}
|
|
449
|
+
getRevisionCount() {
|
|
450
|
+
return this.http.get(`${this.configService.getConfigValue('coreBasePath')}/revision/count`);
|
|
451
|
+
}
|
|
452
|
+
getAllChangesForRevision(revId) {
|
|
453
|
+
return this.http.get(`${this.configService.getConfigValue('coreBasePath')}/revision/changes/${revId}`);
|
|
454
|
+
}
|
|
455
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditRevisionsApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
456
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditRevisionsApiService, providedIn: 'root' }); }
|
|
457
|
+
}
|
|
458
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditRevisionsApiService, decorators: [{
|
|
459
|
+
type: Injectable,
|
|
460
|
+
args: [{
|
|
461
|
+
providedIn: 'root'
|
|
462
|
+
}]
|
|
463
|
+
}] });
|
|
464
|
+
|
|
465
|
+
class MngAuditRevisionsPageComponent extends AMngTableviewRouteComponent {
|
|
466
|
+
constructor() {
|
|
467
|
+
super(...arguments);
|
|
468
|
+
this.descriptorCreated = new BehaviorSubject(false);
|
|
469
|
+
this.auditRevisionApiService = inject(MngAuditRevisionsApiService);
|
|
470
|
+
}
|
|
471
|
+
ngOnInit() {
|
|
472
|
+
this.auditRevisionApiService.getRevModel().subscribe({
|
|
473
|
+
next: revModel => {
|
|
474
|
+
this.revModel = revModel;
|
|
475
|
+
this.descriptor = this.createTableviewDescriptor();
|
|
476
|
+
this.dataProvider = this.createTableviewDataProvider();
|
|
477
|
+
this.descriptorCreated.next(true);
|
|
478
|
+
}
|
|
479
|
+
});
|
|
480
|
+
}
|
|
481
|
+
createTableviewDescriptor() {
|
|
482
|
+
if (this.revModel) {
|
|
483
|
+
const desc = new TableviewDescriptor(ObjectSerializer.get().findType(this.revModel.entityName + 'Dto'));
|
|
484
|
+
for (const property of this.revModel.properties) {
|
|
485
|
+
if (property.propertyType === GuiPropertyType.Enum) {
|
|
486
|
+
desc.addColumn(property.resolvedPropertyName)
|
|
487
|
+
.asEnum(ObjectSerializer.get().findEnum(property.resolvedPropertyName))
|
|
488
|
+
.withFilterLookupEnum(property.possibleEnumValues);
|
|
489
|
+
}
|
|
490
|
+
else if (property.propertyType === GuiPropertyType.Number) {
|
|
491
|
+
desc.addColumn(property.resolvedPropertyName).asNumber();
|
|
492
|
+
}
|
|
493
|
+
else if (property.propertyType === GuiPropertyType.Boolean) {
|
|
494
|
+
desc.addColumn(property.resolvedPropertyName).asBoolean();
|
|
495
|
+
}
|
|
496
|
+
else if (property.propertyType === GuiPropertyType.LocalDate) {
|
|
497
|
+
desc.addColumn(property.resolvedPropertyName).asDate('dd. MMM yyyy');
|
|
498
|
+
}
|
|
499
|
+
else if (property.propertyType === GuiPropertyType.OffsetDateTime) {
|
|
500
|
+
desc.addColumn(property.resolvedPropertyName).asDate('dd. MMM yyyy HH:mm');
|
|
501
|
+
}
|
|
502
|
+
else {
|
|
503
|
+
// string / wildcard
|
|
504
|
+
desc.addColumn(property.resolvedPropertyName);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
return desc;
|
|
508
|
+
}
|
|
509
|
+
return new TableviewDescriptor({});
|
|
510
|
+
}
|
|
511
|
+
createTableviewDataProvider() {
|
|
512
|
+
if (this.revModel) {
|
|
513
|
+
let allDataCount = 0;
|
|
514
|
+
return new TableviewDataProvider(ObjectSerializer.get().findType(this.revModel.entityName + 'Dto'), MngAuditRevisionsApiService).withGetAll((qp, service) => service
|
|
515
|
+
? service.getRevisionCount().pipe(switchMap(revisionsCount => {
|
|
516
|
+
allDataCount = revisionsCount;
|
|
517
|
+
return service.getRevisionList();
|
|
518
|
+
}), map$1(values => MediusQueryResult.fromArray(values, allDataCount)))
|
|
519
|
+
: of(MediusQueryResult.fromArray([], 0)));
|
|
520
|
+
}
|
|
521
|
+
return new TableviewDataProvider({});
|
|
522
|
+
}
|
|
523
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditRevisionsPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
524
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MngAuditRevisionsPageComponent, isStandalone: true, selector: "mng-audit-revisions-page", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"descriptorCreated | async\">\n <mng-tableview-route [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview-route>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: MngTableviewRouteComponent, selector: "mng-tableview-route", inputs: ["descriptor", "dataProvider", "actions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
525
|
+
}
|
|
526
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditRevisionsPageComponent, decorators: [{
|
|
527
|
+
type: Component,
|
|
528
|
+
args: [{ standalone: true, selector: 'mng-audit-revisions-page', imports: [NgIf, MngTableviewComponent, AsyncPipe, MngTableviewComponent, RouterOutlet, JsonPipe, MngTableviewRouteComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"descriptorCreated | async\">\n <mng-tableview-route [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview-route>\n</div>\n" }]
|
|
529
|
+
}] });
|
|
530
|
+
|
|
531
|
+
const auditRouteBuilder = RoutesBuilder.create()
|
|
532
|
+
.addRouteBuilder(RouteBuilder.createRedirect('', 'revisions', 'full'))
|
|
533
|
+
.addRouteBuilder(TableviewRouteBuilder.fromComponent('revisions', MngAuditRevisionsPageComponent).withMenuItem('pi pi-history', 'pages.revisions.title').withTitle('pages.revisions.title'))
|
|
534
|
+
.addRouteBuilder(RouteBuilder.create('entity-revisions', EntityDropdownPageComponent)
|
|
535
|
+
.withMenuItem('pi pi-history', 'pages.entityRevisions.title')
|
|
536
|
+
.withTitle('pages.entityRevisions.title')
|
|
537
|
+
.addChildBuilder(TableviewRouteBuilder.fromComponent(':entityClass', AuditEntityRevisionsPageComponent)));
|
|
538
|
+
|
|
539
|
+
let EntityChanges = class EntityChanges {
|
|
540
|
+
};
|
|
541
|
+
EntityChanges = __decorate([
|
|
542
|
+
TypeName('EntityChanges')
|
|
543
|
+
], EntityChanges);
|
|
544
|
+
|
|
545
|
+
class EntityChangesFieldComponent extends FieldType {
|
|
546
|
+
constructor() {
|
|
547
|
+
super(...arguments);
|
|
548
|
+
this.entityChanges = [];
|
|
549
|
+
}
|
|
550
|
+
ngOnInit() {
|
|
551
|
+
for (const key of Object.keys(this.model['entityChanges'])) {
|
|
552
|
+
const ec = new EntityChanges();
|
|
553
|
+
ec.entityType = key;
|
|
554
|
+
ec.items = [];
|
|
555
|
+
for (const change of this.model['entityChanges'][key]) {
|
|
556
|
+
if (change.revType === RevisionTypeEnumDto.Add) {
|
|
557
|
+
ec.items.push({ revType: change.revType, ...change.newState, color: 'green' });
|
|
558
|
+
}
|
|
559
|
+
else if (change.revType === RevisionTypeEnumDto.Del) {
|
|
560
|
+
ec.items.push({ revType: change.revType, ...change.oldState, color: 'red' });
|
|
561
|
+
}
|
|
562
|
+
else {
|
|
563
|
+
ec.items.push({ revType: change.revType, ...change.oldState, color: 'red' });
|
|
564
|
+
ec.items.push({ revType: change.revType, ...change.newState, color: 'green' });
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
this.entityChanges.push(ec);
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
createDynamicDescriptor(entityChanges) {
|
|
571
|
+
const changedFields = [];
|
|
572
|
+
if (entityChanges.items && entityChanges.items[0].revType === RevisionTypeEnumDto.Mod) {
|
|
573
|
+
for (const key in entityChanges.items[0]) {
|
|
574
|
+
if (entityChanges.items[0][key] !== entityChanges.items[1][key]) {
|
|
575
|
+
changedFields.push(key);
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
const tableDescriptor = new TableviewDynamicDescriptor().table
|
|
580
|
+
.withTitle(entityChanges.entityType ?? '')
|
|
581
|
+
.withColumnsExcluded(['color'])
|
|
582
|
+
.toTableDescriptorFromData(MediusQueryResult.fromArray(entityChanges.items ?? []))
|
|
583
|
+
.withRowClassName(undefined, (_, item) => (item.color === 'green' ? 'audit-row-added' : 'audit-row-deleted'));
|
|
584
|
+
tableDescriptor.columns.forEach(col => {
|
|
585
|
+
col.withSort(false);
|
|
586
|
+
if (changedFields.length > 0 && changedFields.some(val => col.property === val)) {
|
|
587
|
+
col.withClassName('audit-cell');
|
|
588
|
+
}
|
|
589
|
+
});
|
|
590
|
+
return tableDescriptor;
|
|
591
|
+
}
|
|
592
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: EntityChangesFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
593
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: EntityChangesFieldComponent, isStandalone: true, selector: "mng-entity-changes-field", usesInheritance: true, ngImport: i0, template: "<mng-table *ngFor=\"let ec of entityChanges\" [items]=\"ec.items\" [descriptor]=\"createDynamicDescriptor(ec)\"></mng-table>\n", styles: ["::ng-deep tr.audit-row-deleted{background:hsla(3,100%,60%,.1)!important}::ng-deep tr.audit-row-deleted .audit-cell{background:hsla(3,90%,63%,.3)!important}::ng-deep tr.audit-row-added{background-color:#1bc5621a!important}::ng-deep tr.audit-row-added .audit-cell{background:hsla(145,76%,44%,.3)!important}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "queryResult", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "actions", "isColumnClickable", "viewContainer", "captionComponent", "columnActionComponent", "columnActionMinWidth", "globalFilterFields"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnActionComponentInstance"] }] }); }
|
|
594
|
+
}
|
|
595
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: EntityChangesFieldComponent, decorators: [{
|
|
596
|
+
type: Component,
|
|
597
|
+
args: [{ standalone: true, selector: 'mng-entity-changes-field', imports: [NgForOf, MngTableComponent], template: "<mng-table *ngFor=\"let ec of entityChanges\" [items]=\"ec.items\" [descriptor]=\"createDynamicDescriptor(ec)\"></mng-table>\n", styles: ["::ng-deep tr.audit-row-deleted{background:hsla(3,100%,60%,.1)!important}::ng-deep tr.audit-row-deleted .audit-cell{background:hsla(3,90%,63%,.3)!important}::ng-deep tr.audit-row-added{background-color:#1bc5621a!important}::ng-deep tr.audit-row-added .audit-cell{background:hsla(145,76%,44%,.3)!important}\n"] }]
|
|
598
|
+
}] });
|
|
599
|
+
|
|
600
|
+
/**
|
|
601
|
+
* Generated bundle index. Do not edit.
|
|
602
|
+
*/
|
|
603
|
+
|
|
604
|
+
export { EntityChangesFieldComponent, auditRouteBuilder };
|
|
605
|
+
//# sourceMappingURL=mediusinc-mng-commons-audit.mjs.map
|