@firestitch/system 18.0.34 → 18.0.37
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/app/modules/system/components/process/process.component.d.ts +4 -5
- package/app/modules/system/components/processes/processes.component.d.ts +4 -4
- package/app/modules/system/interfaces/process.d.ts +0 -2
- package/esm2022/app/consts/log-types.const.mjs +2 -1
- package/esm2022/app/modules/query-logs/components/index.mjs +1 -1
- package/esm2022/app/modules/system/components/api-log/index.mjs +1 -1
- package/esm2022/app/modules/system/components/api-logs/api-logs.component.mjs +3 -3
- package/esm2022/app/modules/system/components/api-logs/index.mjs +1 -1
- package/esm2022/app/modules/system/components/cron/index.mjs +1 -1
- package/esm2022/app/modules/system/components/cron-log/index.mjs +1 -1
- package/esm2022/app/modules/system/components/crons/index.mjs +1 -1
- package/esm2022/app/modules/system/components/dashboard/index.mjs +1 -1
- package/esm2022/app/modules/system/components/info/index.mjs +1 -1
- package/esm2022/app/modules/system/components/info/info.component.mjs +3 -3
- package/esm2022/app/modules/system/components/process/index.mjs +1 -1
- package/esm2022/app/modules/system/components/process/process.component.mjs +37 -58
- package/esm2022/app/modules/system/components/processes/index.mjs +1 -1
- package/esm2022/app/modules/system/components/processes/processes.component.mjs +47 -53
- package/esm2022/app/modules/system/components/server-logs/components/server-log/server-log.component.mjs +3 -3
- package/esm2022/app/modules/system/components/server-logs/index.mjs +1 -1
- package/esm2022/app/modules/system/components/server-logs/server-logs.component.mjs +24 -3
- package/esm2022/app/modules/system/components/settings/index.mjs +1 -1
- package/esm2022/app/modules/system/components/upgrade-logs/index.mjs +1 -1
- package/esm2022/app/modules/system/components/upgrade-logs/upgrade-logs.component.mjs +3 -3
- package/esm2022/app/modules/system/consts/api-log-states.const.mjs +1 -1
- package/esm2022/app/modules/system/consts/process-states.const.mjs +1 -1
- package/esm2022/app/modules/system/consts/setting-interface-types.const.mjs +1 -1
- package/esm2022/app/modules/system/enums/api-log-state.enum.mjs +1 -1
- package/esm2022/app/modules/system/enums/index.mjs +1 -1
- package/esm2022/app/modules/system/enums/process-state.enum.mjs +1 -1
- package/esm2022/app/modules/system/enums/setting-interface-type.enum.mjs +1 -1
- package/esm2022/app/modules/system/helpers/index-name-value.mjs +1 -1
- package/esm2022/app/modules/system/injectors/system-config.injector.mjs +1 -1
- package/esm2022/app/modules/system/interfaces/dashboard-action.mjs +1 -1
- package/esm2022/app/modules/system/interfaces/process-action.mjs +1 -1
- package/esm2022/app/modules/system/interfaces/process.mjs +1 -1
- package/esm2022/app/modules/system/interfaces/system-config.mjs +1 -1
- package/fesm2022/firestitch-system.mjs +76 -81
- package/fesm2022/firestitch-system.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -13,4 +13,4 @@ export var SettingInterfaceType;
|
|
|
13
13
|
SettingInterfaceType["None"] = "N";
|
|
14
14
|
SettingInterfaceType["Color"] = "C";
|
|
15
15
|
})(SettingInterfaceType || (SettingInterfaceType = {}));
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1pbnRlcmZhY2UtdHlwZS5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3N5c3RlbS9lbnVtcy9zZXR0aW5nLWludGVyZmFjZS10eXBlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksb0JBYVg7QUFiRCxXQUFZLG9CQUFvQjtJQUM5Qix5Q0FBaUIsQ0FBQTtJQUNqQixzQ0FBYyxDQUFBO0lBQ2Qsc0NBQWMsQ0FBQTtJQUNkLG9DQUFZLENBQUE7SUFDWiw0Q0FBb0IsQ0FBQTtJQUNwQixrQ0FBVSxDQUFBO0lBQ1Ysa0NBQVUsQ0FBQTtJQUNWLG9DQUFZLENBQUE7SUFDWixzQ0FBYyxDQUFBO0lBQ2Qsa0NBQVUsQ0FBQTtJQUNWLGtDQUFVLENBQUE7SUFDVixtQ0FBVyxDQUFBO0FBQ2IsQ0FBQyxFQWJXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFhL0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBTZXR0aW5nSW50ZXJmYWNlVHlwZSB7XHJcbiAgUmFkaW9CdXR0b24gPSAnUicsXHJcbiAgSW5wdXRCb3ggPSAnSScsXHJcbiAgVGV4dGFyZWEgPSAnVCcsXHJcbiAgU2VsZWN0ID0gJ0QnLFxyXG4gIFNlbGVjdE11bHRpcGxlID0gJ1cnLFxyXG4gIERhdGUgPSAnQScsXHJcbiAgRmlsZSA9ICdGJyxcclxuICBTdGF0aWMgPSAnUycsXHJcbiAgUGFzc3dvcmQgPSAnUCcsXHJcbiAgVGltZSA9ICdNJyxcclxuICBOb25lID0gJ04nLFxyXG4gIENvbG9yID0gJ0MnLFxyXG59XHJcbiJdfQ==
|
|
@@ -5,4 +5,4 @@ export function indexNameValue(arry) {
|
|
|
5
5
|
});
|
|
6
6
|
return obj;
|
|
7
7
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtbmFtZS12YWx1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vaGVscGVycy9pbmRleC1uYW1lLXZhbHVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBSTtJQUNqQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2xCLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5leHBvcnQgZnVuY3Rpb24gaW5kZXhOYW1lVmFsdWUoYXJyeSkge1xyXG4gIGNvbnN0IG9iaiA9IHt9O1xyXG4gIGFycnkuZm9yRWFjaChpdGVtID0+IHtcclxuICAgIG9ialtpdGVtLnZhbHVlXSA9IGl0ZW0ubmFtZTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIG9iajtcclxufVxyXG4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
export const FS_SYSTEM_CONFIG = new InjectionToken('fs-system-config');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLWNvbmZpZy5pbmplY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vaW5qZWN0b3JzL3N5c3RlbS1jb25maWcuaW5qZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBUSxrQkFBa0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBjb25zdCBGU19TWVNURU1fQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPGFueVtdPignZnMtc3lzdGVtLWNvbmZpZycpO1xyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vaW50ZXJmYWNlcy9kYXNoYm9hcmQtYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIERhc2hib2FyZEFjdGlvbiB7XHJcbiAgbGFiZWw6IHN0cmluZyxcclxuICBjbGljazogRnVuY3Rpb24sXHJcbiAgbWVudT86IGJvb2xlYW5cclxufVxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc3lzdGVtL2ludGVyZmFjZXMvcHJvY2Vzcy1hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc0FjdGlvbiB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBjbGljaz86IChkYXRhPykgPT4gdm9pZDtcclxuICBjb21wb25lbnQ/OiBhbnk7XHJcbiAgbWVudT86IGJvb2xlYW47XHJcbn1cclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vaW50ZXJmYWNlcy9wcm9jZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFByb2Nlc3Mge1xuICBjcmVhdGVEYXRlPzogYW55O1xuICBjcmVhdGVkVGltZT86IERhdGU7XG4gIGRhdGE/OiBhbnk7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBkdXJhdGlvbj86IGFueTtcbiAgZW5kRGF0ZT86IGFueTtcbiAgZW5kVGltZT86IERhdGU7XG4gIGZpbGVuYW1lPzogc3RyaW5nO1xuICBmaWxlcz86IGFueTtcbiAgZ3VpZD86IHN0cmluZztcbiAgbG9nPzogc3RyaW5nO1xuICBtZXNzYWdlPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBub3RpZnk/OiBzdHJpbmc7XG4gIHBlcmNlbnQ/OiBudW1iZXI7XG4gIHBpZD86IHN0cmluZztcbiAgcHJldHR5TmFtZT86IGFueTtcbiAgaWQ/OiBudW1iZXI7XG4gIHByb2Nlc3NTdGF0ZT86IGFueTtcbiAgc3RhcnREYXRlPzogYW55O1xuICBzdGFydFRpbWU/OiBEYXRlO1xuICBzdGF0ZT86IHN0cmluZztcbiAgc3RhdHM/OiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vaW50ZXJmYWNlcy9zeXN0ZW0tY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEZzU3lzdGVtQ29uZmlnIHtcclxuXHJcbn1cclxuIl19
|
|
@@ -255,7 +255,7 @@ class ApiLogsComponent {
|
|
|
255
255
|
};
|
|
256
256
|
}
|
|
257
257
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ApiLogsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
258
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ApiLogsComponent, isStandalone: true, selector: "fs-system-api-logs", inputs: { loadApiLogs: "loadApiLogs" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<fs-list [config]=\"config\">\n <fs-list-column>\n <ng-template fs-list-header>Name</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <a href=\"javascript:;\" (click)=\"open(row)\">\n {{row.type || 'Unknown'}}\n @if (row.direction=='outgoing') {\n <mat-icon class=\"direction\">arrow_upward</mat-icon>\n }\n @if (row.direction=='incoming') {\n <mat-icon class=\"direction\">arrow_downward</mat-icon>\n }\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Status</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{apiLogStates[row.state]}}\n @if (row.code) {\n <span class=\"code\" [ngClass]=\"{'success': row.code
|
|
258
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ApiLogsComponent, isStandalone: true, selector: "fs-system-api-logs", inputs: { loadApiLogs: "loadApiLogs" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<fs-list [config]=\"config\">\n <fs-list-column>\n <ng-template fs-list-header>Name</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <a href=\"javascript:;\" (click)=\"open(row)\">\n {{row.type || 'Unknown'}}\n @if (row.direction=='outgoing') {\n <mat-icon class=\"direction\">arrow_upward</mat-icon>\n }\n @if (row.direction=='incoming') {\n <mat-icon class=\"direction\">arrow_downward</mat-icon>\n }\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Status</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{apiLogStates[row.state]}}\n @if (row.code) {\n <span class=\"code\" [ngClass]=\"{'success': row.code==200,'error': row.code!=200 }\">[{{row.code}}]</span>\n }\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Message</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{row.message}}\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Date</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\n <div>@if (row.length) {\n <small>Duration: {{ row.length | fsDateDuration }}</small>\n }</div>\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [".code.success{color:green}.code.error{color:red}.direction{font-size:14px;height:14px;line-height:14px;width:14px}\n"], dependencies: [{ kind: "ngmodule", type: FsListModule }, { kind: "component", type: i1$1.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { kind: "directive", type: i1$1.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customizable", "sortable", "sortableDefault", "sortableDirection", "direction", "align", "width", "class"] }, { kind: "directive", type: i1$1.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { kind: "directive", type: i1$1.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FsDateModule }, { kind: "pipe", type: i4.FsDateDurationPipe, name: "fsDateDuration" }, { kind: "component", type: i4.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
259
259
|
}
|
|
260
260
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ApiLogsComponent, decorators: [{
|
|
261
261
|
type: Component,
|
|
@@ -264,7 +264,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
264
264
|
MatIcon,
|
|
265
265
|
NgClass,
|
|
266
266
|
FsDateModule,
|
|
267
|
-
], template: "<fs-list [config]=\"config\">\n <fs-list-column>\n <ng-template fs-list-header>Name</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <a href=\"javascript:;\" (click)=\"open(row)\">\n {{row.type || 'Unknown'}}\n @if (row.direction=='outgoing') {\n <mat-icon class=\"direction\">arrow_upward</mat-icon>\n }\n @if (row.direction=='incoming') {\n <mat-icon class=\"direction\">arrow_downward</mat-icon>\n }\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Status</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{apiLogStates[row.state]}}\n @if (row.code) {\n <span class=\"code\" [ngClass]=\"{'success': row.code
|
|
267
|
+
], template: "<fs-list [config]=\"config\">\n <fs-list-column>\n <ng-template fs-list-header>Name</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <a href=\"javascript:;\" (click)=\"open(row)\">\n {{row.type || 'Unknown'}}\n @if (row.direction=='outgoing') {\n <mat-icon class=\"direction\">arrow_upward</mat-icon>\n }\n @if (row.direction=='incoming') {\n <mat-icon class=\"direction\">arrow_downward</mat-icon>\n }\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Status</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{apiLogStates[row.state]}}\n @if (row.code) {\n <span class=\"code\" [ngClass]=\"{'success': row.code==200,'error': row.code!=200 }\">[{{row.code}}]</span>\n }\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Message</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{row.message}}\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Date</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\n <div>@if (row.length) {\n <small>Duration: {{ row.length | fsDateDuration }}</small>\n }</div>\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [".code.success{color:green}.code.error{color:red}.direction{font-size:14px;height:14px;line-height:14px;width:14px}\n"] }]
|
|
268
268
|
}], propDecorators: { list: [{
|
|
269
269
|
type: ViewChild,
|
|
270
270
|
args: [FsListComponent, { static: true }]
|
|
@@ -943,11 +943,11 @@ class InfoComponent {
|
|
|
943
943
|
});
|
|
944
944
|
}
|
|
945
945
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: InfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
946
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: InfoComponent, isStandalone: true, selector: "fs-system-info", inputs: { load: "load" }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }], ngImport: i0, template: "<iframe #iframe></iframe>\n", styles: ["iframe{width:100%;border:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
946
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: InfoComponent, isStandalone: true, selector: "fs-system-info", inputs: { load: "load" }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }], ngImport: i0, template: "<iframe #iframe></iframe>\r\n", styles: ["iframe{width:100%;border:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
947
947
|
}
|
|
948
948
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: InfoComponent, decorators: [{
|
|
949
949
|
type: Component,
|
|
950
|
-
args: [{ selector: 'fs-system-info', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<iframe #iframe></iframe>\n", styles: ["iframe{width:100%;border:0}\n"] }]
|
|
950
|
+
args: [{ selector: 'fs-system-info', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<iframe #iframe></iframe>\r\n", styles: ["iframe{width:100%;border:0}\n"] }]
|
|
951
951
|
}], propDecorators: { iframe: [{
|
|
952
952
|
type: ViewChild,
|
|
953
953
|
args: ['iframe']
|
|
@@ -1007,12 +1007,14 @@ class ProcessComponent {
|
|
|
1007
1007
|
_destroy$ = new Subject();
|
|
1008
1008
|
_processData = inject(ProcessData);
|
|
1009
1009
|
ngOnInit() {
|
|
1010
|
-
this.load$()
|
|
1010
|
+
this.load$()
|
|
1011
|
+
.subscribe(() => {
|
|
1011
1012
|
this.runningRefresh();
|
|
1012
1013
|
});
|
|
1013
1014
|
}
|
|
1014
1015
|
load$() {
|
|
1015
|
-
return this._processData.get(this.data.process.id)
|
|
1016
|
+
return this._processData.get(this.data.process.id)
|
|
1017
|
+
.pipe(tap((process) => {
|
|
1016
1018
|
this.process = process;
|
|
1017
1019
|
this._cdRef.markForCheck();
|
|
1018
1020
|
}));
|
|
@@ -1023,22 +1025,21 @@ class ProcessComponent {
|
|
|
1023
1025
|
.subscribe();
|
|
1024
1026
|
}
|
|
1025
1027
|
kill() {
|
|
1026
|
-
this._prompt
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
template: "Are you sure you would like to kill the process?",
|
|
1028
|
+
this._prompt.confirm({
|
|
1029
|
+
title: 'Kill process',
|
|
1030
|
+
template: 'Are you sure you would like to kill the process?',
|
|
1030
1031
|
})
|
|
1031
1032
|
.pipe(switchMap(() => this._processData.kill(this.data.process)), switchMap(() => this.load$()))
|
|
1032
1033
|
.subscribe(() => {
|
|
1033
|
-
this._message.success(
|
|
1034
|
+
this._message.success('Killed process');
|
|
1034
1035
|
});
|
|
1035
1036
|
}
|
|
1036
1037
|
run() {
|
|
1037
|
-
this._process
|
|
1038
|
+
this._process
|
|
1039
|
+
.run(`Run ${this.process.name}`, this._api
|
|
1038
1040
|
.stream(RequestMethod.Post, `processes/${this.process.id}/run`)
|
|
1039
1041
|
.pipe(tap((event) => {
|
|
1040
|
-
if (event instanceof StreamEventData &&
|
|
1041
|
-
event.type === StreamEventType.Sent) {
|
|
1042
|
+
if (event instanceof StreamEventData && event.type === StreamEventType.Sent) {
|
|
1042
1043
|
this.process.state = ProcessState.Running;
|
|
1043
1044
|
this._cdRef.markForCheck();
|
|
1044
1045
|
}
|
|
@@ -1047,42 +1048,20 @@ class ProcessComponent {
|
|
|
1047
1048
|
}), filter((data) => !!data)));
|
|
1048
1049
|
}
|
|
1049
1050
|
queue() {
|
|
1050
|
-
this._message.success(
|
|
1051
|
-
this._processData
|
|
1052
|
-
.queue(this.data.process)
|
|
1051
|
+
this._message.success('Running process');
|
|
1052
|
+
this._processData.queue(this.data.process)
|
|
1053
1053
|
.pipe(switchMap(() => this.load$()))
|
|
1054
1054
|
.subscribe();
|
|
1055
1055
|
}
|
|
1056
1056
|
download() {
|
|
1057
1057
|
this._processData.download(this.data.process);
|
|
1058
1058
|
}
|
|
1059
|
-
get formattedProcessData() {
|
|
1060
|
-
const d = this.process?.data;
|
|
1061
|
-
if (d === null || d === undefined) {
|
|
1062
|
-
return null;
|
|
1063
|
-
}
|
|
1064
|
-
let value = d;
|
|
1065
|
-
if (typeof d === "string") {
|
|
1066
|
-
try {
|
|
1067
|
-
value = JSON.parse(d);
|
|
1068
|
-
}
|
|
1069
|
-
catch {
|
|
1070
|
-
return d;
|
|
1071
|
-
}
|
|
1072
|
-
}
|
|
1073
|
-
try {
|
|
1074
|
-
return JSON.stringify(value, null, 2);
|
|
1075
|
-
}
|
|
1076
|
-
catch {
|
|
1077
|
-
return String(value);
|
|
1078
|
-
}
|
|
1079
|
-
}
|
|
1080
1059
|
ngOnDestroy() {
|
|
1081
1060
|
this._destroy$.next(null);
|
|
1082
1061
|
this._destroy$.complete();
|
|
1083
1062
|
}
|
|
1084
1063
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProcessComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1085
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ProcessComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<fs-dialog *fsSkeleton=\"process\">\n <div mat-dialog-title>\n Process\n </div>\n <mat-dialog-content>\n <div class=\"column\">\n <div class=\"fs-row.gap-lg.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Name\n </fs-label>\n {{ process.prettyName }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n
|
|
1064
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ProcessComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<fs-dialog *fsSkeleton=\"process\">\n <div mat-dialog-title>\n Process\n </div>\n <mat-dialog-content>\n <div class=\"column\">\n <div class=\"fs-row.gap-lg.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Name\n </fs-label>\n {{ process.prettyName }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Status\n </fs-label>\n <div\n class=\"status\"\n [ngClass]=\"{ 'running': process.state === ProcessState.Running }\">\n {{ ProcessStates[process.state] }}\n @if (process.state === ProcessState.Running) {\n <mat-progress-spinner\n [diameter]=\"20\"\n [mode]=\"'indeterminate'\">\n </mat-progress-spinner>\n }\n </div>\n </fs-label-field>\n @if (process.notify) {\n <fs-label-field>\n <fs-label>\n Notification Email\n </fs-label>\n {{ process.notify }}\n </fs-label-field>\n }\n <fs-label-field>\n <fs-label>\n Process ID\n </fs-label>\n {{ process.pid || 'None' }}\n @if (process.pid) {\n <div class=\"small\">\n {{ ProcessProcessStates[process.processState] || 'Unknown' }}\n </div>\n }\n </fs-label-field>\n @if (process.createDate) {\n <fs-label-field>\n <fs-label>\n Create Date\n </fs-label>\n {{ process.createDate | fsDateFormat: 'date-time' }}\n </fs-label-field>\n }\n @if (process.startDate) {\n <fs-label-field>\n <fs-label>\n Start Date\n </fs-label>\n {{ process.startDate | fsDateFormat: 'date-time' }}\n </fs-label-field>\n }\n @if (process.endDate) {\n <fs-label-field>\n <fs-label>\n Complete Date\n </fs-label>\n {{ process.endDate | fsDateFormat: 'date-time' }}\n </fs-label-field>\n }\n @if (process.duration) {\n <fs-label-field>\n <fs-label>\n Duration\n </fs-label>\n {{ process.duration | fsDateDuration: {hours: true, minutes: true, seconds: true} }}\n </fs-label-field>\n }\n </div>\n @if (process.message) {\n <fs-label-field>\n <fs-label>\n Message\n </fs-label>\n {{ process.message }}\n </fs-label-field>\n }\n @if (process.log) {\n <fs-label-field>\n <fs-label>\n Log\n </fs-label>\n <div class=\"log\">\n {{ process.log }}\n </div>\n </fs-label-field>\n }\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n [mat-dialog-close]=\"true\"\n color=\"primary\">\n Close\n </button>\n @if (process.state === ProcessState.Running) {\n <button\n mat-button\n (click)=\"kill()\">\n Kill\n </button>\n }\n @if (process.state !== ProcessState.Running) {\n <button\n mat-button\n (click)=\"run()\">\n Run\n </button>\n }\n @if ((\n process.state !== ProcessState.Running &&\n process.state !== ProcessState.Queued\n )) {\n <button\n mat-button\n (click)=\"queue()\">\n Queue\n </button>\n }\n @if (process.filename) {\n <button\n mat-button\n (click)=\"download()\">\n Download\n </button>\n }\n </mat-dialog-actions>\n</fs-dialog>", styles: [".log{white-space:pre-line;font-family:monospace;font-size:95%;line-height:130%}.status{display:flex}.status.running{margin-right:28px}.status.running mat-progress-spinner{position:absolute;right:0}\n"], dependencies: [{ kind: "ngmodule", type: FsSkeletonModule }, { kind: "directive", type: i1.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { kind: "ngmodule", type: FsDialogModule }, { kind: "component", type: i2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: FsLabelModule }, { kind: "component", type: i3.FsLabelComponent, selector: "fs-label" }, { kind: "component", type: i3.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["appearance", "showOutline", "disabled", "focused", "hoverable", "padless"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "ngmodule", type: FsDateModule }, { kind: "pipe", type: i4.FsDateDurationPipe, name: "fsDateDuration" }, { kind: "pipe", type: i4.FsDateFormatPipe, name: "fsDateFormat" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1086
1065
|
}
|
|
1087
1066
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProcessComponent, decorators: [{
|
|
1088
1067
|
type: Component,
|
|
@@ -1099,7 +1078,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
1099
1078
|
MatButton,
|
|
1100
1079
|
MatDialogClose,
|
|
1101
1080
|
FsDateModule,
|
|
1102
|
-
], template: "<fs-dialog *fsSkeleton=\"process\">\n <div mat-dialog-title>\n Process\n </div>\n <mat-dialog-content>\n <div class=\"column\">\n <div class=\"fs-row.gap-lg.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Name\n </fs-label>\n {{ process.prettyName }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n
|
|
1081
|
+
], template: "<fs-dialog *fsSkeleton=\"process\">\n <div mat-dialog-title>\n Process\n </div>\n <mat-dialog-content>\n <div class=\"column\">\n <div class=\"fs-row.gap-lg.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Name\n </fs-label>\n {{ process.prettyName }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Status\n </fs-label>\n <div\n class=\"status\"\n [ngClass]=\"{ 'running': process.state === ProcessState.Running }\">\n {{ ProcessStates[process.state] }}\n @if (process.state === ProcessState.Running) {\n <mat-progress-spinner\n [diameter]=\"20\"\n [mode]=\"'indeterminate'\">\n </mat-progress-spinner>\n }\n </div>\n </fs-label-field>\n @if (process.notify) {\n <fs-label-field>\n <fs-label>\n Notification Email\n </fs-label>\n {{ process.notify }}\n </fs-label-field>\n }\n <fs-label-field>\n <fs-label>\n Process ID\n </fs-label>\n {{ process.pid || 'None' }}\n @if (process.pid) {\n <div class=\"small\">\n {{ ProcessProcessStates[process.processState] || 'Unknown' }}\n </div>\n }\n </fs-label-field>\n @if (process.createDate) {\n <fs-label-field>\n <fs-label>\n Create Date\n </fs-label>\n {{ process.createDate | fsDateFormat: 'date-time' }}\n </fs-label-field>\n }\n @if (process.startDate) {\n <fs-label-field>\n <fs-label>\n Start Date\n </fs-label>\n {{ process.startDate | fsDateFormat: 'date-time' }}\n </fs-label-field>\n }\n @if (process.endDate) {\n <fs-label-field>\n <fs-label>\n Complete Date\n </fs-label>\n {{ process.endDate | fsDateFormat: 'date-time' }}\n </fs-label-field>\n }\n @if (process.duration) {\n <fs-label-field>\n <fs-label>\n Duration\n </fs-label>\n {{ process.duration | fsDateDuration: {hours: true, minutes: true, seconds: true} }}\n </fs-label-field>\n }\n </div>\n @if (process.message) {\n <fs-label-field>\n <fs-label>\n Message\n </fs-label>\n {{ process.message }}\n </fs-label-field>\n }\n @if (process.log) {\n <fs-label-field>\n <fs-label>\n Log\n </fs-label>\n <div class=\"log\">\n {{ process.log }}\n </div>\n </fs-label-field>\n }\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n [mat-dialog-close]=\"true\"\n color=\"primary\">\n Close\n </button>\n @if (process.state === ProcessState.Running) {\n <button\n mat-button\n (click)=\"kill()\">\n Kill\n </button>\n }\n @if (process.state !== ProcessState.Running) {\n <button\n mat-button\n (click)=\"run()\">\n Run\n </button>\n }\n @if ((\n process.state !== ProcessState.Running &&\n process.state !== ProcessState.Queued\n )) {\n <button\n mat-button\n (click)=\"queue()\">\n Queue\n </button>\n }\n @if (process.filename) {\n <button\n mat-button\n (click)=\"download()\">\n Download\n </button>\n }\n </mat-dialog-actions>\n</fs-dialog>", styles: [".log{white-space:pre-line;font-family:monospace;font-size:95%;line-height:130%}.status{display:flex}.status.running{margin-right:28px}.status.running mat-progress-spinner{position:absolute;right:0}\n"] }]
|
|
1103
1082
|
}] });
|
|
1104
1083
|
|
|
1105
1084
|
class ProcessesComponent {
|
|
@@ -1126,7 +1105,7 @@ class ProcessesComponent {
|
|
|
1126
1105
|
data: {
|
|
1127
1106
|
process,
|
|
1128
1107
|
},
|
|
1129
|
-
width:
|
|
1108
|
+
width: '85%',
|
|
1130
1109
|
})
|
|
1131
1110
|
.afterClosed()
|
|
1132
1111
|
.pipe(takeUntil(this._destroy$))
|
|
@@ -1146,34 +1125,36 @@ class ProcessesComponent {
|
|
|
1146
1125
|
actions: [],
|
|
1147
1126
|
rowActions: [
|
|
1148
1127
|
{
|
|
1149
|
-
label:
|
|
1128
|
+
label: 'Queue',
|
|
1150
1129
|
show: (process) => {
|
|
1151
|
-
return
|
|
1152
|
-
process.state !== ProcessState.Queued
|
|
1130
|
+
return process.state !== ProcessState.Running &&
|
|
1131
|
+
process.state !== ProcessState.Queued;
|
|
1153
1132
|
},
|
|
1154
1133
|
click: (data) => {
|
|
1155
|
-
this._processData.queue(data)
|
|
1134
|
+
this._processData.queue(data)
|
|
1135
|
+
.subscribe(() => {
|
|
1156
1136
|
this.reload();
|
|
1157
|
-
this._message.success(
|
|
1137
|
+
this._message.success('Queued process');
|
|
1158
1138
|
});
|
|
1159
1139
|
},
|
|
1160
1140
|
},
|
|
1161
1141
|
{
|
|
1162
|
-
label:
|
|
1142
|
+
label: 'Run',
|
|
1163
1143
|
show: (data) => {
|
|
1164
1144
|
return data.state !== ProcessState.Running;
|
|
1165
1145
|
},
|
|
1166
1146
|
click: (process) => {
|
|
1167
|
-
this._process
|
|
1147
|
+
this._process
|
|
1148
|
+
.run(`Run ${process.name}`, this._api
|
|
1168
1149
|
.stream(RequestMethod.Post, `processes/${process.id}/run`)
|
|
1169
1150
|
.pipe(tap((event) => {
|
|
1170
|
-
if (event instanceof StreamEventData &&
|
|
1171
|
-
event.type === StreamEventType.Sent) {
|
|
1151
|
+
if (event instanceof StreamEventData && event.type === StreamEventType.Sent) {
|
|
1172
1152
|
process = {
|
|
1173
1153
|
...process,
|
|
1174
1154
|
state: ProcessState.Running,
|
|
1175
1155
|
};
|
|
1176
|
-
this.list
|
|
1156
|
+
this.list
|
|
1157
|
+
.updateData(process, (row) => {
|
|
1177
1158
|
return process.id === row.id;
|
|
1178
1159
|
});
|
|
1179
1160
|
}
|
|
@@ -1185,24 +1166,26 @@ class ProcessesComponent {
|
|
|
1185
1166
|
},
|
|
1186
1167
|
},
|
|
1187
1168
|
{
|
|
1188
|
-
label:
|
|
1169
|
+
label: 'Kill',
|
|
1189
1170
|
show: (data) => {
|
|
1190
1171
|
return !!data.pid;
|
|
1191
1172
|
},
|
|
1192
1173
|
click: (data) => {
|
|
1193
|
-
this._message.info(
|
|
1194
|
-
this._processData.kill(data)
|
|
1174
|
+
this._message.info('Killing process...');
|
|
1175
|
+
this._processData.kill(data)
|
|
1176
|
+
.subscribe(() => {
|
|
1195
1177
|
this.reload();
|
|
1196
|
-
this._message.success(
|
|
1178
|
+
this._message.success('Killed process');
|
|
1197
1179
|
});
|
|
1198
1180
|
},
|
|
1199
1181
|
},
|
|
1200
1182
|
{
|
|
1201
|
-
label:
|
|
1183
|
+
label: 'Delete',
|
|
1202
1184
|
click: (data) => {
|
|
1203
|
-
this._processData.delete(data)
|
|
1185
|
+
this._processData.delete(data)
|
|
1186
|
+
.subscribe(() => {
|
|
1204
1187
|
this.reload();
|
|
1205
|
-
this._message.success(
|
|
1188
|
+
this._message.success('Deleted process');
|
|
1206
1189
|
});
|
|
1207
1190
|
},
|
|
1208
1191
|
},
|
|
@@ -1210,28 +1193,19 @@ class ProcessesComponent {
|
|
|
1210
1193
|
filters: [
|
|
1211
1194
|
{
|
|
1212
1195
|
type: ItemType.Keyword,
|
|
1213
|
-
name:
|
|
1214
|
-
label:
|
|
1196
|
+
name: 'keyword',
|
|
1197
|
+
label: 'Search',
|
|
1215
1198
|
},
|
|
1216
1199
|
{
|
|
1217
1200
|
type: ItemType.Select,
|
|
1218
|
-
name:
|
|
1219
|
-
label:
|
|
1201
|
+
name: 'state',
|
|
1202
|
+
label: 'Status',
|
|
1220
1203
|
values: ProcessStates,
|
|
1221
1204
|
},
|
|
1222
|
-
{
|
|
1223
|
-
name: "createDate",
|
|
1224
|
-
type: ItemType.DateRange,
|
|
1225
|
-
label: ["From Date", "To Date"],
|
|
1226
|
-
},
|
|
1227
1205
|
],
|
|
1228
1206
|
fetch: (query) => {
|
|
1229
|
-
return this._processData
|
|
1230
|
-
.
|
|
1231
|
-
.pipe(map((response) => ({
|
|
1232
|
-
data: response.processes,
|
|
1233
|
-
paging: response.paging,
|
|
1234
|
-
})));
|
|
1207
|
+
return this._processData.gets(query, { key: null })
|
|
1208
|
+
.pipe(map((response) => ({ data: response.processes, paging: response.paging })));
|
|
1235
1209
|
},
|
|
1236
1210
|
};
|
|
1237
1211
|
this.actions.forEach((action) => {
|
|
@@ -1244,9 +1218,8 @@ class ProcessesComponent {
|
|
|
1244
1218
|
action.click(data);
|
|
1245
1219
|
}
|
|
1246
1220
|
if (action.component) {
|
|
1247
|
-
this._dialog
|
|
1248
|
-
|
|
1249
|
-
width: "800px",
|
|
1221
|
+
this._dialog.open(action.component, {
|
|
1222
|
+
width: '800px',
|
|
1250
1223
|
})
|
|
1251
1224
|
.afterClosed()
|
|
1252
1225
|
.pipe(takeUntil(this._destroy$))
|
|
@@ -1263,7 +1236,7 @@ class ProcessesComponent {
|
|
|
1263
1236
|
}
|
|
1264
1237
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProcessesComponent, decorators: [{
|
|
1265
1238
|
type: Component,
|
|
1266
|
-
args: [{ selector:
|
|
1239
|
+
args: [{ selector: 'fs-system-processes', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FsListModule, FsDateModule], template: "<fs-list [config]=\"config\">\n <fs-list-column>\n <ng-template fs-list-header>\n Name\n </ng-template>\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <a (click)=\"open(row)\">\n {{ row.name }}\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>\n Status\n </ng-template>\n <ng-template\n fs-list-cell\n let-row=\"row\">\n {{ ProcessStates[row.state] }}\n <small>\n @if (row.state===ProcessState.Running && row.percent) {\n <div>\n Complete: {{ row.percent }}%\n </div>\n }\n @if (row.state===ProcessState.Completed && row.filename) {\n <div>\n <a\n href=\"javascript:;\"\n (click)=\"download(row)\">\n {{ row.filename }}\n </a>\n </div>\n }\n @if (row.pid) {\n <div>\n PID: {{ row.pid }}\n </div>\n }\n @if (row.state===ProcessState.Running && row.notify) {\n <div>\n Notify: {{ row.notify }}\n </div>\n }\n </small>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>\n Duration\n </ng-template>\n <ng-template\n fs-list-cell\n let-row=\"row\">\n {{ row.duration | fsDateDuration: {hours: true, minutes: true, seconds: true} }}\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>\n Message\n </ng-template>\n <ng-template\n fs-list-cell\n let-row=\"row\">\n {{ row.message }}\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>\n Completed\n </ng-template>\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <fs-date-ago [date]=\"row.endDate\"></fs-date-ago>\n </ng-template>\n </fs-list-column>\n</fs-list>" }]
|
|
1267
1240
|
}], propDecorators: { list: [{
|
|
1268
1241
|
type: ViewChild,
|
|
1269
1242
|
args: [FsListComponent]
|
|
@@ -1272,6 +1245,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
1272
1245
|
}] } });
|
|
1273
1246
|
|
|
1274
1247
|
const LogTypes = [
|
|
1248
|
+
{ value: '0', name: 'Debug' }, // LoggerModel::LEVEL_DEBUG
|
|
1275
1249
|
{ value: '1', name: 'Fatal Error' }, // E_ERROR
|
|
1276
1250
|
{ value: '2', name: 'Warning' }, // E_WARNING
|
|
1277
1251
|
{ value: '4', name: 'Parse Error' }, // E_PARSE
|
|
@@ -1311,7 +1285,7 @@ class ServerLogComponent {
|
|
|
1311
1285
|
}
|
|
1312
1286
|
}
|
|
1313
1287
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ServerLogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1314
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ServerLogComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<fs-dialog *fsSkeleton=\"log\">\n <div mat-dialog-title>\n Log\n </div>\n <mat-dialog-content>\n <div class=\"fs-row.gap-lg.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Error Type\n </fs-label>\n {{ log.type }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Message\n </fs-label>\n {{ log.message }}\n </fs-label-field>\n @if (log.url) {\n <fs-label-field>\n <fs-label>\n URL\n </fs-label>\n {{ log.url }}\n </fs-label-field>\n }\n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n {{ log.createDate|fsDateFormat: 'full-date-time' }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n File\n </fs-label>\n {{ log.file }} @ {{ log.line }}\n </fs-label-field>\n </div>\n <fs-label-field>\n <fs-label>\n
|
|
1288
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ServerLogComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<fs-dialog *fsSkeleton=\"log\">\n <div mat-dialog-title>\n Log\n </div>\n <mat-dialog-content>\n <div class=\"fs-row.column-gap-lg.row-gap-sm.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Error Type\n </fs-label>\n {{ log.type }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Message\n </fs-label>\n {{ log.message }}\n </fs-label-field>\n @if (log.url) {\n <fs-label-field>\n <fs-label>\n URL\n </fs-label>\n {{ log.url }}\n </fs-label-field>\n }\n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n {{ log.createDate|fsDateFormat: 'full-date-time' }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n File\n </fs-label>\n {{ log.file }} @ {{ log.line }}\n </fs-label-field>\n </div>\n @if (log.data) {\n <fs-label-field>\n <fs-label>\n Data\n </fs-label>\n <pre>\n {{ log.data|json }}\n </pre>\n </fs-label-field>\n }\n <fs-label-field>\n <fs-label>\n Backtrace\n </fs-label>\n <pre>\n {{ log.backtrace|json }}\n </pre>\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n $_SERVER\n </fs-label>\n <pre>\n {{ log.server|json }}\n </pre>\n </fs-label-field>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n [mat-dialog-close]=\"true\"\n color=\"primary\">\n Done\n </button>\n </mat-dialog-actions>\n</fs-dialog>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$2.JsonPipe, name: "json" }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: FsLabelModule }, { kind: "component", type: i3.FsLabelComponent, selector: "fs-label" }, { kind: "component", type: i3.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["appearance", "showOutline", "disabled", "focused", "hoverable", "padless"] }, { kind: "ngmodule", type: FsBadgeModule }, { kind: "ngmodule", type: FsDateModule }, { kind: "pipe", type: i4.FsDateFormatPipe, name: "fsDateFormat" }, { kind: "ngmodule", type: FsSkeletonModule }, { kind: "directive", type: i1.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { kind: "ngmodule", type: FsDialogModule }, { kind: "component", type: i2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1315
1289
|
}
|
|
1316
1290
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ServerLogComponent, decorators: [{
|
|
1317
1291
|
type: Component,
|
|
@@ -1328,7 +1302,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
1328
1302
|
FsDateModule,
|
|
1329
1303
|
FsSkeletonModule,
|
|
1330
1304
|
FsDialogModule,
|
|
1331
|
-
], template: "<fs-dialog *fsSkeleton=\"log\">\n <div mat-dialog-title>\n Log\n </div>\n <mat-dialog-content>\n <div class=\"fs-row.gap-lg.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Error Type\n </fs-label>\n {{ log.type }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Message\n </fs-label>\n {{ log.message }}\n </fs-label-field>\n @if (log.url) {\n <fs-label-field>\n <fs-label>\n URL\n </fs-label>\n {{ log.url }}\n </fs-label-field>\n }\n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n {{ log.createDate|fsDateFormat: 'full-date-time' }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n File\n </fs-label>\n {{ log.file }} @ {{ log.line }}\n </fs-label-field>\n </div>\n <fs-label-field>\n <fs-label>\n
|
|
1305
|
+
], template: "<fs-dialog *fsSkeleton=\"log\">\n <div mat-dialog-title>\n Log\n </div>\n <mat-dialog-content>\n <div class=\"fs-row.column-gap-lg.row-gap-sm.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Error Type\n </fs-label>\n {{ log.type }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Message\n </fs-label>\n {{ log.message }}\n </fs-label-field>\n @if (log.url) {\n <fs-label-field>\n <fs-label>\n URL\n </fs-label>\n {{ log.url }}\n </fs-label-field>\n }\n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n {{ log.createDate|fsDateFormat: 'full-date-time' }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n File\n </fs-label>\n {{ log.file }} @ {{ log.line }}\n </fs-label-field>\n </div>\n @if (log.data) {\n <fs-label-field>\n <fs-label>\n Data\n </fs-label>\n <pre>\n {{ log.data|json }}\n </pre>\n </fs-label-field>\n }\n <fs-label-field>\n <fs-label>\n Backtrace\n </fs-label>\n <pre>\n {{ log.backtrace|json }}\n </pre>\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n $_SERVER\n </fs-label>\n <pre>\n {{ log.server|json }}\n </pre>\n </fs-label-field>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n [mat-dialog-close]=\"true\"\n color=\"primary\">\n Done\n </button>\n </mat-dialog-actions>\n</fs-dialog>" }]
|
|
1332
1306
|
}] });
|
|
1333
1307
|
|
|
1334
1308
|
class ServerLogsComponent {
|
|
@@ -1387,6 +1361,27 @@ class ServerLogsComponent {
|
|
|
1387
1361
|
name: 'keyword',
|
|
1388
1362
|
label: 'Search',
|
|
1389
1363
|
},
|
|
1364
|
+
{
|
|
1365
|
+
type: ItemType.DateRange,
|
|
1366
|
+
name: 'createDate',
|
|
1367
|
+
label: ['From Date', 'To Date'],
|
|
1368
|
+
},
|
|
1369
|
+
{
|
|
1370
|
+
type: ItemType.Select,
|
|
1371
|
+
name: 'types',
|
|
1372
|
+
label: 'Type',
|
|
1373
|
+
multiple: true,
|
|
1374
|
+
values: LogTypes,
|
|
1375
|
+
},
|
|
1376
|
+
{
|
|
1377
|
+
type: ItemType.Select,
|
|
1378
|
+
name: 'acknowledged',
|
|
1379
|
+
label: 'Acknowledged',
|
|
1380
|
+
values: [
|
|
1381
|
+
{ name: 'Acknowledged', value: '1' },
|
|
1382
|
+
{ name: 'Unacknowledged', value: '0' },
|
|
1383
|
+
],
|
|
1384
|
+
},
|
|
1390
1385
|
],
|
|
1391
1386
|
fetch: (query) => {
|
|
1392
1387
|
return this._api
|
|
@@ -1594,11 +1589,11 @@ class UpgradeLogsComponent {
|
|
|
1594
1589
|
};
|
|
1595
1590
|
}
|
|
1596
1591
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: UpgradeLogsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1597
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: UpgradeLogsComponent, isStandalone: true, selector: "fs-system-upgrade-logs", inputs: { loadUpgradeLogs: "loadUpgradeLogs" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<fs-list [config]=\"config\">\n <fs-list-column>\n <ng-template fs-list-header>Name</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{row.name}}\n </ng-template>\n </fs-list-column>\n\n <fs-list-column>\n <ng-template fs-list-header>Function</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{row.function}}()\n </ng-template>\n </fs-list-column>\n\n <fs-list-column>\n <ng-template fs-list-header>Date</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FsListModule }, { kind: "component", type: i1$1.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { kind: "directive", type: i1$1.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customizable", "sortable", "sortableDefault", "sortableDirection", "direction", "align", "width", "class"] }, { kind: "directive", type: i1$1.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { kind: "directive", type: i1$1.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { kind: "ngmodule", type: FsDateModule }, { kind: "component", type: i4.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1592
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: UpgradeLogsComponent, isStandalone: true, selector: "fs-system-upgrade-logs", inputs: { loadUpgradeLogs: "loadUpgradeLogs" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<fs-list [config]=\"config\">\r\n <fs-list-column>\r\n <ng-template fs-list-header>Name</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{row.name}}\r\n </ng-template>\r\n </fs-list-column>\r\n\r\n <fs-list-column>\r\n <ng-template fs-list-header>Function</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{row.function}}()\r\n </ng-template>\r\n </fs-list-column>\r\n\r\n <fs-list-column>\r\n <ng-template fs-list-header>Date</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\r\n </ng-template>\r\n </fs-list-column>\r\n</fs-list>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FsListModule }, { kind: "component", type: i1$1.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { kind: "directive", type: i1$1.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customizable", "sortable", "sortableDefault", "sortableDirection", "direction", "align", "width", "class"] }, { kind: "directive", type: i1$1.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { kind: "directive", type: i1$1.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { kind: "ngmodule", type: FsDateModule }, { kind: "component", type: i4.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1598
1593
|
}
|
|
1599
1594
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: UpgradeLogsComponent, decorators: [{
|
|
1600
1595
|
type: Component,
|
|
1601
|
-
args: [{ selector: 'fs-system-upgrade-logs', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FsListModule, FsDateModule], template: "<fs-list [config]=\"config\">\n <fs-list-column>\n <ng-template fs-list-header>Name</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{row.name}}\n </ng-template>\n </fs-list-column>\n\n <fs-list-column>\n <ng-template fs-list-header>Function</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{row.function}}()\n </ng-template>\n </fs-list-column>\n\n <fs-list-column>\n <ng-template fs-list-header>Date</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\n </ng-template>\n </fs-list-column>\n</fs-list>\n" }]
|
|
1596
|
+
args: [{ selector: 'fs-system-upgrade-logs', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FsListModule, FsDateModule], template: "<fs-list [config]=\"config\">\r\n <fs-list-column>\r\n <ng-template fs-list-header>Name</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{row.name}}\r\n </ng-template>\r\n </fs-list-column>\r\n\r\n <fs-list-column>\r\n <ng-template fs-list-header>Function</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{row.function}}()\r\n </ng-template>\r\n </fs-list-column>\r\n\r\n <fs-list-column>\r\n <ng-template fs-list-header>Date</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\r\n </ng-template>\r\n </fs-list-column>\r\n</fs-list>\r\n" }]
|
|
1602
1597
|
}], propDecorators: { list: [{
|
|
1603
1598
|
type: ViewChild,
|
|
1604
1599
|
args: [FsListComponent, { static: true }]
|