@cundi/refine-xaf 1.0.4 → 1.0.6
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 +41 -1
- package/dist/index.d.mts +140 -1
- package/dist/index.d.ts +140 -1
- package/dist/index.js +761 -201
- package/dist/index.mjs +707 -141
- package/package.json +3 -1
package/dist/index.js
CHANGED
|
@@ -36,9 +36,11 @@ __export(index_exports, {
|
|
|
36
36
|
ApplicationUserEdit: () => ApplicationUserEdit,
|
|
37
37
|
ApplicationUserList: () => ApplicationUserList,
|
|
38
38
|
AuthCallback: () => AuthCallback,
|
|
39
|
+
BackgroundJobList: () => BackgroundJobList,
|
|
39
40
|
Base64Upload: () => Base64Upload,
|
|
40
41
|
ColorModeContext: () => ColorModeContext,
|
|
41
42
|
ColorModeContextProvider: () => ColorModeContextProvider,
|
|
43
|
+
DrawioEditor: () => DrawioEditor,
|
|
42
44
|
Header: () => Header,
|
|
43
45
|
HttpError: () => HttpError,
|
|
44
46
|
KeycloakLoginPage: () => KeycloakLoginPage,
|
|
@@ -73,13 +75,13 @@ var TOKEN_KEY = "refine-auth";
|
|
|
73
75
|
var MAX_RETRIES = 3;
|
|
74
76
|
var BASE_RETRY_DELAY = 1e3;
|
|
75
77
|
var HttpError = class _HttpError extends Error {
|
|
76
|
-
constructor(statusCode,
|
|
77
|
-
super(
|
|
78
|
+
constructor(statusCode, message3, body) {
|
|
79
|
+
super(message3);
|
|
78
80
|
__publicField(this, "statusCode");
|
|
79
81
|
__publicField(this, "message");
|
|
80
82
|
__publicField(this, "body");
|
|
81
83
|
this.statusCode = statusCode;
|
|
82
|
-
this.message =
|
|
84
|
+
this.message = message3;
|
|
83
85
|
this.body = body;
|
|
84
86
|
Object.setPrototypeOf(this, _HttpError.prototype);
|
|
85
87
|
}
|
|
@@ -619,7 +621,7 @@ var parseFilter = (filter) => {
|
|
|
619
621
|
// src/dataProvider.ts
|
|
620
622
|
var dataProvider = (apiUrl) => ({
|
|
621
623
|
getList: async ({ resource, pagination, sorters, filters }) => {
|
|
622
|
-
const url = new URL(`${apiUrl}/${resource}
|
|
624
|
+
const url = new URL(`${apiUrl}/${resource}`, window.location.origin);
|
|
623
625
|
if (pagination) {
|
|
624
626
|
const { current, pageSize } = pagination;
|
|
625
627
|
if (current && pageSize) {
|
|
@@ -647,7 +649,7 @@ var dataProvider = (apiUrl) => ({
|
|
|
647
649
|
};
|
|
648
650
|
},
|
|
649
651
|
getOne: async ({ resource, id, meta }) => {
|
|
650
|
-
const url = new URL(`${apiUrl}/${resource}(${id})
|
|
652
|
+
const url = new URL(`${apiUrl}/${resource}(${id})`, window.location.origin);
|
|
651
653
|
if (meta?.expand) {
|
|
652
654
|
const expand = meta.expand.map((item) => item.field ?? item).join(",");
|
|
653
655
|
if (expand) {
|
|
@@ -660,7 +662,8 @@ var dataProvider = (apiUrl) => ({
|
|
|
660
662
|
return { data: { ...data, id: data.Oid } };
|
|
661
663
|
},
|
|
662
664
|
create: async ({ resource, variables }) => {
|
|
663
|
-
const
|
|
665
|
+
const url = new URL(`${apiUrl}/${resource}`, window.location.origin);
|
|
666
|
+
const response = await httpClient(url.toString(), {
|
|
664
667
|
method: "POST",
|
|
665
668
|
body: JSON.stringify(variables)
|
|
666
669
|
});
|
|
@@ -669,7 +672,8 @@ var dataProvider = (apiUrl) => ({
|
|
|
669
672
|
return { data };
|
|
670
673
|
},
|
|
671
674
|
update: async ({ resource, id, variables }) => {
|
|
672
|
-
const
|
|
675
|
+
const url = new URL(`${apiUrl}/${resource}(${id})`, window.location.origin);
|
|
676
|
+
const response = await httpClient(url.toString(), {
|
|
673
677
|
method: "PATCH",
|
|
674
678
|
body: JSON.stringify(variables)
|
|
675
679
|
});
|
|
@@ -680,14 +684,15 @@ var dataProvider = (apiUrl) => ({
|
|
|
680
684
|
return { data };
|
|
681
685
|
},
|
|
682
686
|
deleteOne: async ({ resource, id }) => {
|
|
683
|
-
|
|
687
|
+
const url = new URL(`${apiUrl}/${resource}(${id})`, window.location.origin);
|
|
688
|
+
await httpClient(url.toString(), {
|
|
684
689
|
method: "DELETE"
|
|
685
690
|
});
|
|
686
691
|
return { data: { id } };
|
|
687
692
|
},
|
|
688
693
|
getApiUrl: () => apiUrl,
|
|
689
694
|
getMany: async ({ resource, ids }) => {
|
|
690
|
-
const url = new URL(`${apiUrl}/${resource}
|
|
695
|
+
const url = new URL(`${apiUrl}/${resource}`, window.location.origin);
|
|
691
696
|
const filter = ids.map((id) => {
|
|
692
697
|
const isGuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(id.toString());
|
|
693
698
|
return `Oid eq ${isGuid ? id : `'${id}'`}`;
|
|
@@ -712,7 +717,10 @@ var dataProvider = (apiUrl) => ({
|
|
|
712
717
|
throw new Error("Not implemented");
|
|
713
718
|
},
|
|
714
719
|
custom: async ({ url, method, filters, sorters, payload, query, headers }) => {
|
|
715
|
-
let requestUrl = new URL(
|
|
720
|
+
let requestUrl = new URL(
|
|
721
|
+
url.startsWith("http") ? url : `${apiUrl}${url}`,
|
|
722
|
+
window.location.origin
|
|
723
|
+
);
|
|
716
724
|
if (filters) {
|
|
717
725
|
const filterString = generateFilterString(filters);
|
|
718
726
|
if (filterString) {
|
|
@@ -862,6 +870,9 @@ var en = {
|
|
|
862
870
|
math: "Math (LaTeX)",
|
|
863
871
|
youtube: "YouTube",
|
|
864
872
|
enterYoutubeUrl: "Enter YouTube URL"
|
|
873
|
+
},
|
|
874
|
+
drawioEditor: {
|
|
875
|
+
loading: "Loading diagram editor..."
|
|
865
876
|
}
|
|
866
877
|
},
|
|
867
878
|
common: {
|
|
@@ -877,9 +888,61 @@ var en = {
|
|
|
877
888
|
dashboard: "Dashboard",
|
|
878
889
|
dataTypeExamples: "Data Type Examples",
|
|
879
890
|
tiptapExamples: "Tiptap Examples",
|
|
891
|
+
drawioExamples: "Drawio Examples",
|
|
880
892
|
users: "Users",
|
|
881
893
|
roles: "Roles",
|
|
882
|
-
settings: "Settings"
|
|
894
|
+
settings: "Settings",
|
|
895
|
+
backgroundJobs: "Background Jobs"
|
|
896
|
+
},
|
|
897
|
+
backgroundJobs: {
|
|
898
|
+
title: "Background Jobs",
|
|
899
|
+
tabs: {
|
|
900
|
+
recurring: "Recurring",
|
|
901
|
+
succeeded: "Succeeded",
|
|
902
|
+
failed: "Failed",
|
|
903
|
+
processing: "Processing"
|
|
904
|
+
},
|
|
905
|
+
columns: {
|
|
906
|
+
id: "ID",
|
|
907
|
+
jobId: "Job ID",
|
|
908
|
+
jobName: "Job Name",
|
|
909
|
+
cron: "Cron",
|
|
910
|
+
queue: "Queue",
|
|
911
|
+
nextExecution: "Next Execution",
|
|
912
|
+
lastState: "Last State",
|
|
913
|
+
succeededAt: "Succeeded At",
|
|
914
|
+
failedAt: "Failed At",
|
|
915
|
+
startedAt: "Started At",
|
|
916
|
+
duration: "Duration (ms)",
|
|
917
|
+
exception: "Exception",
|
|
918
|
+
serverId: "Server ID",
|
|
919
|
+
actions: "Actions"
|
|
920
|
+
},
|
|
921
|
+
status: {
|
|
922
|
+
succeeded: "Succeeded",
|
|
923
|
+
failed: "Failed",
|
|
924
|
+
processing: "Processing",
|
|
925
|
+
scheduled: "Scheduled",
|
|
926
|
+
unknown: "Unknown"
|
|
927
|
+
},
|
|
928
|
+
actions: {
|
|
929
|
+
trigger: "Trigger Now",
|
|
930
|
+
delete: "Delete",
|
|
931
|
+
triggerSuccess: "Job triggered successfully",
|
|
932
|
+
deleteSuccess: "Job deleted successfully",
|
|
933
|
+
triggerError: "Failed to trigger job",
|
|
934
|
+
deleteError: "Failed to delete job"
|
|
935
|
+
},
|
|
936
|
+
drawer: {
|
|
937
|
+
title: "Job Details",
|
|
938
|
+
jobName: "Job Name",
|
|
939
|
+
createdAt: "Created At",
|
|
940
|
+
history: "History",
|
|
941
|
+
state: "State",
|
|
942
|
+
reason: "Reason",
|
|
943
|
+
data: "Data",
|
|
944
|
+
noData: "No Data"
|
|
945
|
+
}
|
|
883
946
|
}
|
|
884
947
|
};
|
|
885
948
|
var zhTW = {
|
|
@@ -957,6 +1020,9 @@ var zhTW = {
|
|
|
957
1020
|
math: "\u6578\u5B78\u516C\u5F0F (LaTeX)",
|
|
958
1021
|
youtube: "YouTube \u5F71\u7247",
|
|
959
1022
|
enterYoutubeUrl: "\u8F38\u5165 YouTube \u7DB2\u5740"
|
|
1023
|
+
},
|
|
1024
|
+
drawioEditor: {
|
|
1025
|
+
loading: "\u8F09\u5165\u5716\u8868\u7DE8\u8F2F\u5668\u4E2D..."
|
|
960
1026
|
}
|
|
961
1027
|
},
|
|
962
1028
|
common: {
|
|
@@ -972,9 +1038,61 @@ var zhTW = {
|
|
|
972
1038
|
dashboard: "\u5100\u8868\u677F",
|
|
973
1039
|
dataTypeExamples: "\u8CC7\u6599\u985E\u578B\u7BC4\u4F8B",
|
|
974
1040
|
tiptapExamples: "Tiptap \u7BC4\u4F8B",
|
|
1041
|
+
drawioExamples: "Drawio \u7BC4\u4F8B",
|
|
975
1042
|
users: "\u4F7F\u7528\u8005",
|
|
976
1043
|
roles: "\u89D2\u8272",
|
|
977
|
-
settings: "\u8A2D\u5B9A"
|
|
1044
|
+
settings: "\u8A2D\u5B9A",
|
|
1045
|
+
backgroundJobs: "\u80CC\u666F\u6392\u7A0B"
|
|
1046
|
+
},
|
|
1047
|
+
backgroundJobs: {
|
|
1048
|
+
title: "\u80CC\u666F\u6392\u7A0B",
|
|
1049
|
+
tabs: {
|
|
1050
|
+
recurring: "\u9031\u671F\u6027\u4EFB\u52D9",
|
|
1051
|
+
succeeded: "\u6210\u529F",
|
|
1052
|
+
failed: "\u5931\u6557",
|
|
1053
|
+
processing: "\u57F7\u884C\u4E2D"
|
|
1054
|
+
},
|
|
1055
|
+
columns: {
|
|
1056
|
+
id: "ID",
|
|
1057
|
+
jobId: "\u4EFB\u52D9 ID",
|
|
1058
|
+
jobName: "\u4EFB\u52D9\u540D\u7A31",
|
|
1059
|
+
cron: "\u6392\u7A0B\u8868\u9054\u5F0F",
|
|
1060
|
+
queue: "\u4F47\u5217",
|
|
1061
|
+
nextExecution: "\u4E0B\u6B21\u57F7\u884C",
|
|
1062
|
+
lastState: "\u6700\u5F8C\u72C0\u614B",
|
|
1063
|
+
succeededAt: "\u6210\u529F\u6642\u9593",
|
|
1064
|
+
failedAt: "\u5931\u6557\u6642\u9593",
|
|
1065
|
+
startedAt: "\u958B\u59CB\u6642\u9593",
|
|
1066
|
+
duration: "\u8017\u6642 (\u6BEB\u79D2)",
|
|
1067
|
+
exception: "\u4F8B\u5916",
|
|
1068
|
+
serverId: "\u4F3A\u670D\u5668 ID",
|
|
1069
|
+
actions: "\u64CD\u4F5C"
|
|
1070
|
+
},
|
|
1071
|
+
status: {
|
|
1072
|
+
succeeded: "\u6210\u529F",
|
|
1073
|
+
failed: "\u5931\u6557",
|
|
1074
|
+
processing: "\u57F7\u884C\u4E2D",
|
|
1075
|
+
scheduled: "\u5DF2\u6392\u7A0B",
|
|
1076
|
+
unknown: "\u672A\u77E5"
|
|
1077
|
+
},
|
|
1078
|
+
actions: {
|
|
1079
|
+
trigger: "\u7ACB\u5373\u57F7\u884C",
|
|
1080
|
+
delete: "\u522A\u9664",
|
|
1081
|
+
triggerSuccess: "\u4EFB\u52D9\u5DF2\u6210\u529F\u89F8\u767C",
|
|
1082
|
+
deleteSuccess: "\u4EFB\u52D9\u5DF2\u6210\u529F\u522A\u9664",
|
|
1083
|
+
triggerError: "\u89F8\u767C\u4EFB\u52D9\u5931\u6557",
|
|
1084
|
+
deleteError: "\u522A\u9664\u4EFB\u52D9\u5931\u6557"
|
|
1085
|
+
},
|
|
1086
|
+
drawer: {
|
|
1087
|
+
title: "\u4EFB\u52D9\u8A73\u60C5",
|
|
1088
|
+
jobName: "\u4EFB\u52D9\u540D\u7A31",
|
|
1089
|
+
createdAt: "\u5EFA\u7ACB\u6642\u9593",
|
|
1090
|
+
history: "\u6B77\u53F2\u7D00\u9304",
|
|
1091
|
+
state: "\u72C0\u614B",
|
|
1092
|
+
reason: "\u539F\u56E0",
|
|
1093
|
+
data: "\u8CC7\u6599",
|
|
1094
|
+
noData: "\u7121\u8CC7\u6599"
|
|
1095
|
+
}
|
|
978
1096
|
}
|
|
979
1097
|
};
|
|
980
1098
|
var refineXafTranslations = {
|
|
@@ -5233,8 +5351,8 @@ var StepResult = class _StepResult {
|
|
|
5233
5351
|
/**
|
|
5234
5352
|
Create a failed step result.
|
|
5235
5353
|
*/
|
|
5236
|
-
static fail(
|
|
5237
|
-
return new _StepResult(null,
|
|
5354
|
+
static fail(message3) {
|
|
5355
|
+
return new _StepResult(null, message3);
|
|
5238
5356
|
}
|
|
5239
5357
|
/**
|
|
5240
5358
|
Call [`Node.replace`](https://prosemirror.net/docs/ref/#model.Node.replace) with the given
|
|
@@ -6446,8 +6564,8 @@ var DocAttrStep = class _DocAttrStep extends Step {
|
|
|
6446
6564
|
Step.jsonID("docAttr", DocAttrStep);
|
|
6447
6565
|
var TransformError = class extends Error {
|
|
6448
6566
|
};
|
|
6449
|
-
TransformError = function TransformError2(
|
|
6450
|
-
let err = Error.call(this,
|
|
6567
|
+
TransformError = function TransformError2(message3) {
|
|
6568
|
+
let err = Error.call(this, message3);
|
|
6451
6569
|
err.__proto__ = TransformError2.prototype;
|
|
6452
6570
|
return err;
|
|
6453
6571
|
};
|
|
@@ -19140,25 +19258,124 @@ var TiptapEditor = ({ value, onChange, disabled }) => {
|
|
|
19140
19258
|
);
|
|
19141
19259
|
};
|
|
19142
19260
|
|
|
19143
|
-
// src/
|
|
19261
|
+
// src/components/DrawioEditor.tsx
|
|
19144
19262
|
var import_react8 = __toESM(require("react"));
|
|
19145
|
-
var
|
|
19263
|
+
var import_react_i18next6 = require("react-i18next");
|
|
19264
|
+
var import_react_drawio = require("react-drawio");
|
|
19146
19265
|
var import_lib7 = require("antd/lib");
|
|
19266
|
+
var mapLanguageToDrawio = (lang) => {
|
|
19267
|
+
const langMap = {
|
|
19268
|
+
"zh-TW": "zh-tw",
|
|
19269
|
+
"zh-CN": "zh",
|
|
19270
|
+
"zh": "zh",
|
|
19271
|
+
"en": "en",
|
|
19272
|
+
"ja": "ja",
|
|
19273
|
+
"ko": "ko",
|
|
19274
|
+
"de": "de",
|
|
19275
|
+
"fr": "fr",
|
|
19276
|
+
"es": "es",
|
|
19277
|
+
"pt": "pt",
|
|
19278
|
+
"ru": "ru"
|
|
19279
|
+
};
|
|
19280
|
+
return langMap[lang] || lang.toLowerCase();
|
|
19281
|
+
};
|
|
19282
|
+
var DrawioEditor = ({
|
|
19283
|
+
value,
|
|
19284
|
+
onChange,
|
|
19285
|
+
disabled = false,
|
|
19286
|
+
height = 500,
|
|
19287
|
+
autosave = true
|
|
19288
|
+
}) => {
|
|
19289
|
+
const { token } = import_lib7.theme.useToken();
|
|
19290
|
+
const { t, i18n } = (0, import_react_i18next6.useTranslation)();
|
|
19291
|
+
const drawioRef = (0, import_react8.useRef)(null);
|
|
19292
|
+
const [isLoading, setIsLoading] = (0, import_react8.useState)(true);
|
|
19293
|
+
const drawioLang = (0, import_react8.useMemo)(() => mapLanguageToDrawio(i18n.language), [i18n.language]);
|
|
19294
|
+
const handleSave = (data) => {
|
|
19295
|
+
if (onChange && data.xml) {
|
|
19296
|
+
onChange(data.xml);
|
|
19297
|
+
}
|
|
19298
|
+
};
|
|
19299
|
+
const handleAutoSave = (data) => {
|
|
19300
|
+
if (onChange && data.xml) {
|
|
19301
|
+
onChange(data.xml);
|
|
19302
|
+
}
|
|
19303
|
+
};
|
|
19304
|
+
const handleLoad = () => {
|
|
19305
|
+
setIsLoading(false);
|
|
19306
|
+
};
|
|
19307
|
+
return /* @__PURE__ */ import_react8.default.createElement(
|
|
19308
|
+
"div",
|
|
19309
|
+
{
|
|
19310
|
+
style: {
|
|
19311
|
+
border: `1px solid ${token.colorBorder}`,
|
|
19312
|
+
borderRadius: token.borderRadiusLG,
|
|
19313
|
+
overflow: "hidden",
|
|
19314
|
+
backgroundColor: token.colorBgContainer,
|
|
19315
|
+
position: "relative",
|
|
19316
|
+
height: typeof height === "number" ? `${height}px` : height
|
|
19317
|
+
}
|
|
19318
|
+
},
|
|
19319
|
+
isLoading && /* @__PURE__ */ import_react8.default.createElement(
|
|
19320
|
+
"div",
|
|
19321
|
+
{
|
|
19322
|
+
style: {
|
|
19323
|
+
position: "absolute",
|
|
19324
|
+
top: 0,
|
|
19325
|
+
left: 0,
|
|
19326
|
+
right: 0,
|
|
19327
|
+
bottom: 0,
|
|
19328
|
+
display: "flex",
|
|
19329
|
+
alignItems: "center",
|
|
19330
|
+
justifyContent: "center",
|
|
19331
|
+
backgroundColor: token.colorBgContainer,
|
|
19332
|
+
zIndex: 10
|
|
19333
|
+
}
|
|
19334
|
+
},
|
|
19335
|
+
/* @__PURE__ */ import_react8.default.createElement(import_lib7.Spin, { tip: t("components.drawioEditor.loading", "Loading diagram editor...") })
|
|
19336
|
+
),
|
|
19337
|
+
/* @__PURE__ */ import_react8.default.createElement(
|
|
19338
|
+
import_react_drawio.DrawIoEmbed,
|
|
19339
|
+
{
|
|
19340
|
+
ref: drawioRef,
|
|
19341
|
+
xml: value,
|
|
19342
|
+
autosave: autosave && !disabled,
|
|
19343
|
+
urlParameters: {
|
|
19344
|
+
ui: "kennedy",
|
|
19345
|
+
spin: true,
|
|
19346
|
+
libraries: true,
|
|
19347
|
+
saveAndExit: false,
|
|
19348
|
+
noSaveBtn: disabled,
|
|
19349
|
+
noExitBtn: true,
|
|
19350
|
+
lang: drawioLang
|
|
19351
|
+
},
|
|
19352
|
+
onLoad: handleLoad,
|
|
19353
|
+
onSave: handleSave,
|
|
19354
|
+
onAutoSave: handleAutoSave
|
|
19355
|
+
}
|
|
19356
|
+
)
|
|
19357
|
+
);
|
|
19358
|
+
};
|
|
19359
|
+
|
|
19360
|
+
// src/pages/login/index.tsx
|
|
19361
|
+
var import_react9 = __toESM(require("react"));
|
|
19362
|
+
var import_core18 = require("@refinedev/core");
|
|
19363
|
+
var import_lib8 = require("antd/lib");
|
|
19147
19364
|
var import_antd4 = require("@refinedev/antd");
|
|
19148
19365
|
var import_react_router = require("react-router");
|
|
19149
|
-
var { Title, Link } =
|
|
19366
|
+
var { Title, Link } = import_lib8.Typography;
|
|
19150
19367
|
var LoginPage = () => {
|
|
19151
|
-
const [form] =
|
|
19368
|
+
const [form] = import_lib8.Form.useForm();
|
|
19152
19369
|
const { mutate: login, isPending } = (0, import_core18.useLogin)();
|
|
19153
19370
|
const isLoading = isPending;
|
|
19154
19371
|
const translate = (0, import_core18.useTranslate)();
|
|
19155
|
-
const { token } =
|
|
19372
|
+
const { token } = import_lib8.theme.useToken();
|
|
19156
19373
|
const navigate = (0, import_react_router.useNavigate)();
|
|
19157
19374
|
const onFinish = async (values) => {
|
|
19158
19375
|
login(values);
|
|
19159
19376
|
};
|
|
19160
|
-
return /* @__PURE__ */
|
|
19161
|
-
|
|
19377
|
+
return /* @__PURE__ */ import_react9.default.createElement(
|
|
19378
|
+
import_lib8.Layout,
|
|
19162
19379
|
{
|
|
19163
19380
|
style: {
|
|
19164
19381
|
height: "100vh",
|
|
@@ -19167,15 +19384,15 @@ var LoginPage = () => {
|
|
|
19167
19384
|
backgroundColor: token.colorBgContainer
|
|
19168
19385
|
}
|
|
19169
19386
|
},
|
|
19170
|
-
/* @__PURE__ */
|
|
19387
|
+
/* @__PURE__ */ import_react9.default.createElement("div", { style: { marginBottom: "24px" } }, /* @__PURE__ */ import_react9.default.createElement(
|
|
19171
19388
|
import_antd4.ThemedTitle,
|
|
19172
19389
|
{
|
|
19173
19390
|
collapsed: false,
|
|
19174
19391
|
wrapperStyles: { fontSize: "22px", justifyContent: "center" }
|
|
19175
19392
|
}
|
|
19176
19393
|
)),
|
|
19177
|
-
/* @__PURE__ */
|
|
19178
|
-
|
|
19394
|
+
/* @__PURE__ */ import_react9.default.createElement(
|
|
19395
|
+
import_lib8.Card,
|
|
19179
19396
|
{
|
|
19180
19397
|
style: {
|
|
19181
19398
|
width: "100%",
|
|
@@ -19184,9 +19401,9 @@ var LoginPage = () => {
|
|
|
19184
19401
|
boxShadow: "0 4px 24px -4px rgba(0, 0, 0, 0.1)"
|
|
19185
19402
|
}
|
|
19186
19403
|
},
|
|
19187
|
-
/* @__PURE__ */
|
|
19188
|
-
/* @__PURE__ */
|
|
19189
|
-
|
|
19404
|
+
/* @__PURE__ */ import_react9.default.createElement("div", { style: { textAlign: "center", marginBottom: "32px" } }, /* @__PURE__ */ import_react9.default.createElement(Title, { level: 3, style: { color: token.colorPrimary, margin: 0 } }, translate("pages.login.title", "Sign in to your account")), /* @__PURE__ */ import_react9.default.createElement(import_lib8.Typography.Text, { type: "secondary", style: { fontSize: "14px", marginTop: "8px", display: "block" } }, "Log in using a local account")),
|
|
19405
|
+
/* @__PURE__ */ import_react9.default.createElement(
|
|
19406
|
+
import_lib8.Form,
|
|
19190
19407
|
{
|
|
19191
19408
|
layout: "vertical",
|
|
19192
19409
|
form,
|
|
@@ -19195,8 +19412,8 @@ var LoginPage = () => {
|
|
|
19195
19412
|
remember: false
|
|
19196
19413
|
}
|
|
19197
19414
|
},
|
|
19198
|
-
/* @__PURE__ */
|
|
19199
|
-
|
|
19415
|
+
/* @__PURE__ */ import_react9.default.createElement(
|
|
19416
|
+
import_lib8.Form.Item,
|
|
19200
19417
|
{
|
|
19201
19418
|
label: translate("pages.login.fields.username", "Username"),
|
|
19202
19419
|
name: "username",
|
|
@@ -19210,10 +19427,10 @@ var LoginPage = () => {
|
|
|
19210
19427
|
}
|
|
19211
19428
|
]
|
|
19212
19429
|
},
|
|
19213
|
-
/* @__PURE__ */
|
|
19430
|
+
/* @__PURE__ */ import_react9.default.createElement(import_lib8.Input, { size: "large", placeholder: "Username" })
|
|
19214
19431
|
),
|
|
19215
|
-
/* @__PURE__ */
|
|
19216
|
-
|
|
19432
|
+
/* @__PURE__ */ import_react9.default.createElement(
|
|
19433
|
+
import_lib8.Form.Item,
|
|
19217
19434
|
{
|
|
19218
19435
|
label: translate("pages.login.fields.password", "Password"),
|
|
19219
19436
|
name: "password",
|
|
@@ -19227,9 +19444,9 @@ var LoginPage = () => {
|
|
|
19227
19444
|
}
|
|
19228
19445
|
]
|
|
19229
19446
|
},
|
|
19230
|
-
/* @__PURE__ */
|
|
19447
|
+
/* @__PURE__ */ import_react9.default.createElement(import_lib8.Input.Password, { size: "large", placeholder: "Password" })
|
|
19231
19448
|
),
|
|
19232
|
-
/* @__PURE__ */
|
|
19449
|
+
/* @__PURE__ */ import_react9.default.createElement(
|
|
19233
19450
|
"div",
|
|
19234
19451
|
{
|
|
19235
19452
|
style: {
|
|
@@ -19238,8 +19455,8 @@ var LoginPage = () => {
|
|
|
19238
19455
|
marginBottom: "24px"
|
|
19239
19456
|
}
|
|
19240
19457
|
},
|
|
19241
|
-
/* @__PURE__ */
|
|
19242
|
-
/* @__PURE__ */
|
|
19458
|
+
/* @__PURE__ */ import_react9.default.createElement(import_lib8.Form.Item, { name: "remember", valuePropName: "checked", noStyle: true }, /* @__PURE__ */ import_react9.default.createElement(import_lib8.Checkbox, null, translate("pages.login.buttons.rememberMe", "Remember me"))),
|
|
19459
|
+
/* @__PURE__ */ import_react9.default.createElement(
|
|
19243
19460
|
Link,
|
|
19244
19461
|
{
|
|
19245
19462
|
onClick: () => {
|
|
@@ -19249,8 +19466,8 @@ var LoginPage = () => {
|
|
|
19249
19466
|
translate("pages.login.buttons.forgotPassword", "Forgot password?")
|
|
19250
19467
|
)
|
|
19251
19468
|
),
|
|
19252
|
-
/* @__PURE__ */
|
|
19253
|
-
|
|
19469
|
+
/* @__PURE__ */ import_react9.default.createElement(import_lib8.Form.Item, null, /* @__PURE__ */ import_react9.default.createElement(
|
|
19470
|
+
import_lib8.Button,
|
|
19254
19471
|
{
|
|
19255
19472
|
type: "primary",
|
|
19256
19473
|
htmlType: "submit",
|
|
@@ -19260,9 +19477,9 @@ var LoginPage = () => {
|
|
|
19260
19477
|
},
|
|
19261
19478
|
translate("pages.login.signin", "Sign in")
|
|
19262
19479
|
)),
|
|
19263
|
-
/* @__PURE__ */
|
|
19264
|
-
/* @__PURE__ */
|
|
19265
|
-
|
|
19480
|
+
/* @__PURE__ */ import_react9.default.createElement(import_lib8.Divider, { plain: true }, "or"),
|
|
19481
|
+
/* @__PURE__ */ import_react9.default.createElement(
|
|
19482
|
+
import_lib8.Button,
|
|
19266
19483
|
{
|
|
19267
19484
|
block: true,
|
|
19268
19485
|
size: "large",
|
|
@@ -19276,23 +19493,23 @@ var LoginPage = () => {
|
|
|
19276
19493
|
};
|
|
19277
19494
|
|
|
19278
19495
|
// src/pages/login/keycloak.tsx
|
|
19279
|
-
var
|
|
19496
|
+
var import_react10 = __toESM(require("react"));
|
|
19280
19497
|
var import_core19 = require("@refinedev/core");
|
|
19281
|
-
var
|
|
19498
|
+
var import_lib9 = require("antd/lib");
|
|
19282
19499
|
var import_antd5 = require("@refinedev/antd");
|
|
19283
19500
|
var import_react_router2 = require("react-router");
|
|
19284
|
-
var { Title: Title2 } =
|
|
19501
|
+
var { Title: Title2 } = import_lib9.Typography;
|
|
19285
19502
|
var KeycloakLoginPage = () => {
|
|
19286
19503
|
const { mutate: login, isPending } = (0, import_core19.useLogin)();
|
|
19287
19504
|
const isLoading = isPending;
|
|
19288
19505
|
const translate = (0, import_core19.useTranslate)();
|
|
19289
|
-
const { token } =
|
|
19506
|
+
const { token } = import_lib9.theme.useToken();
|
|
19290
19507
|
const navigate = (0, import_react_router2.useNavigate)();
|
|
19291
19508
|
const handleKeycloakLogin = () => {
|
|
19292
19509
|
login({ provider: "keycloak" });
|
|
19293
19510
|
};
|
|
19294
|
-
return /* @__PURE__ */
|
|
19295
|
-
|
|
19511
|
+
return /* @__PURE__ */ import_react10.default.createElement(
|
|
19512
|
+
import_lib9.Layout,
|
|
19296
19513
|
{
|
|
19297
19514
|
style: {
|
|
19298
19515
|
height: "100vh",
|
|
@@ -19301,15 +19518,15 @@ var KeycloakLoginPage = () => {
|
|
|
19301
19518
|
backgroundColor: token.colorBgContainer
|
|
19302
19519
|
}
|
|
19303
19520
|
},
|
|
19304
|
-
/* @__PURE__ */
|
|
19521
|
+
/* @__PURE__ */ import_react10.default.createElement("div", { style: { marginBottom: "24px" } }, /* @__PURE__ */ import_react10.default.createElement(
|
|
19305
19522
|
import_antd5.ThemedTitle,
|
|
19306
19523
|
{
|
|
19307
19524
|
collapsed: false,
|
|
19308
19525
|
wrapperStyles: { fontSize: "22px", justifyContent: "center" }
|
|
19309
19526
|
}
|
|
19310
19527
|
)),
|
|
19311
|
-
/* @__PURE__ */
|
|
19312
|
-
|
|
19528
|
+
/* @__PURE__ */ import_react10.default.createElement(
|
|
19529
|
+
import_lib9.Card,
|
|
19313
19530
|
{
|
|
19314
19531
|
style: {
|
|
19315
19532
|
width: "100%",
|
|
@@ -19318,9 +19535,9 @@ var KeycloakLoginPage = () => {
|
|
|
19318
19535
|
boxShadow: "0 4px 24px -4px rgba(0, 0, 0, 0.1)"
|
|
19319
19536
|
}
|
|
19320
19537
|
},
|
|
19321
|
-
/* @__PURE__ */
|
|
19322
|
-
/* @__PURE__ */
|
|
19323
|
-
|
|
19538
|
+
/* @__PURE__ */ import_react10.default.createElement("div", { style: { textAlign: "center", marginBottom: "32px" } }, /* @__PURE__ */ import_react10.default.createElement(Title2, { level: 3, style: { color: token.colorPrimary, margin: 0 } }, translate("pages.login.title", "Sign in to your account")), /* @__PURE__ */ import_react10.default.createElement(import_lib9.Typography.Text, { type: "secondary", style: { fontSize: "14px", marginTop: "8px", display: "block" } }, "Choose your authentication method")),
|
|
19539
|
+
/* @__PURE__ */ import_react10.default.createElement(
|
|
19540
|
+
import_lib9.Button,
|
|
19324
19541
|
{
|
|
19325
19542
|
type: "primary",
|
|
19326
19543
|
block: true,
|
|
@@ -19331,9 +19548,9 @@ var KeycloakLoginPage = () => {
|
|
|
19331
19548
|
},
|
|
19332
19549
|
"Sign in with Keycloak"
|
|
19333
19550
|
),
|
|
19334
|
-
/* @__PURE__ */
|
|
19335
|
-
/* @__PURE__ */
|
|
19336
|
-
|
|
19551
|
+
/* @__PURE__ */ import_react10.default.createElement(import_lib9.Divider, { plain: true }, "or"),
|
|
19552
|
+
/* @__PURE__ */ import_react10.default.createElement(
|
|
19553
|
+
import_lib9.Button,
|
|
19337
19554
|
{
|
|
19338
19555
|
block: true,
|
|
19339
19556
|
size: "large",
|
|
@@ -19346,15 +19563,15 @@ var KeycloakLoginPage = () => {
|
|
|
19346
19563
|
};
|
|
19347
19564
|
|
|
19348
19565
|
// src/pages/auth/AuthCallback.tsx
|
|
19349
|
-
var
|
|
19566
|
+
var import_react11 = __toESM(require("react"));
|
|
19350
19567
|
var import_core20 = require("@refinedev/core");
|
|
19351
19568
|
var import_antd6 = require("antd");
|
|
19352
19569
|
var AuthCallback = () => {
|
|
19353
19570
|
const { mutate: login } = (0, import_core20.useLogin)();
|
|
19354
|
-
const [error, setError] = (0,
|
|
19355
|
-
const [processing, setProcessing] = (0,
|
|
19356
|
-
const hasProcessed = (0,
|
|
19357
|
-
(0,
|
|
19571
|
+
const [error, setError] = (0, import_react11.useState)(null);
|
|
19572
|
+
const [processing, setProcessing] = (0, import_react11.useState)(false);
|
|
19573
|
+
const hasProcessed = (0, import_react11.useRef)(false);
|
|
19574
|
+
(0, import_react11.useEffect)(() => {
|
|
19358
19575
|
if (hasProcessed.current || processing) {
|
|
19359
19576
|
return;
|
|
19360
19577
|
}
|
|
@@ -19397,13 +19614,13 @@ var AuthCallback = () => {
|
|
|
19397
19614
|
handleCallback();
|
|
19398
19615
|
}, [login, processing]);
|
|
19399
19616
|
if (error) {
|
|
19400
|
-
return /* @__PURE__ */
|
|
19617
|
+
return /* @__PURE__ */ import_react11.default.createElement(
|
|
19401
19618
|
import_antd6.Result,
|
|
19402
19619
|
{
|
|
19403
19620
|
status: "error",
|
|
19404
19621
|
title: "Authentication Failed",
|
|
19405
19622
|
subTitle: error,
|
|
19406
|
-
extra: /* @__PURE__ */
|
|
19623
|
+
extra: /* @__PURE__ */ import_react11.default.createElement(
|
|
19407
19624
|
"button",
|
|
19408
19625
|
{
|
|
19409
19626
|
onClick: () => window.location.href = "/login",
|
|
@@ -19421,7 +19638,7 @@ var AuthCallback = () => {
|
|
|
19421
19638
|
}
|
|
19422
19639
|
);
|
|
19423
19640
|
}
|
|
19424
|
-
return /* @__PURE__ */
|
|
19641
|
+
return /* @__PURE__ */ import_react11.default.createElement(
|
|
19425
19642
|
"div",
|
|
19426
19643
|
{
|
|
19427
19644
|
style: {
|
|
@@ -19433,23 +19650,23 @@ var AuthCallback = () => {
|
|
|
19433
19650
|
gap: "16px"
|
|
19434
19651
|
}
|
|
19435
19652
|
},
|
|
19436
|
-
/* @__PURE__ */
|
|
19437
|
-
/* @__PURE__ */
|
|
19653
|
+
/* @__PURE__ */ import_react11.default.createElement(import_antd6.Spin, { size: "large" }),
|
|
19654
|
+
/* @__PURE__ */ import_react11.default.createElement("p", null, "Completing authentication...")
|
|
19438
19655
|
);
|
|
19439
19656
|
};
|
|
19440
19657
|
|
|
19441
19658
|
// src/pages/application-users/list.tsx
|
|
19442
|
-
var
|
|
19659
|
+
var import_react12 = __toESM(require("react"));
|
|
19443
19660
|
var import_core21 = require("@refinedev/core");
|
|
19444
19661
|
var import_antd7 = require("@refinedev/antd");
|
|
19445
|
-
var
|
|
19662
|
+
var import_lib10 = require("antd/lib");
|
|
19446
19663
|
var import_icons5 = require("@ant-design/icons");
|
|
19447
19664
|
var ApplicationUserList = () => {
|
|
19448
|
-
const [isModalOpen, setIsModalOpen] = (0,
|
|
19449
|
-
const [selectedUser, setSelectedUser] = (0,
|
|
19450
|
-
const [form] =
|
|
19665
|
+
const [isModalOpen, setIsModalOpen] = (0, import_react12.useState)(false);
|
|
19666
|
+
const [selectedUser, setSelectedUser] = (0, import_react12.useState)(null);
|
|
19667
|
+
const [form] = import_lib10.Form.useForm();
|
|
19451
19668
|
const { open } = (0, import_core21.useNotification)();
|
|
19452
|
-
const [isLoading, setIsLoading] = (0,
|
|
19669
|
+
const [isLoading, setIsLoading] = (0, import_react12.useState)(false);
|
|
19453
19670
|
const handleResetPasswordClick = (user) => {
|
|
19454
19671
|
setSelectedUser(user);
|
|
19455
19672
|
setIsModalOpen(true);
|
|
@@ -19479,21 +19696,21 @@ var ApplicationUserList = () => {
|
|
|
19479
19696
|
setIsLoading(false);
|
|
19480
19697
|
}
|
|
19481
19698
|
};
|
|
19482
|
-
return /* @__PURE__ */
|
|
19699
|
+
return /* @__PURE__ */ import_react12.default.createElement(import_react12.default.Fragment, null, /* @__PURE__ */ import_react12.default.createElement(
|
|
19483
19700
|
SmartList,
|
|
19484
19701
|
{
|
|
19485
19702
|
searchFields: ["UserName", "DisplayName", "Email"]
|
|
19486
19703
|
},
|
|
19487
|
-
/* @__PURE__ */
|
|
19488
|
-
|
|
19704
|
+
/* @__PURE__ */ import_react12.default.createElement(
|
|
19705
|
+
import_lib10.Table.Column,
|
|
19489
19706
|
{
|
|
19490
19707
|
dataIndex: "Photo",
|
|
19491
19708
|
title: "Photo",
|
|
19492
|
-
render: (value) => value ? /* @__PURE__ */
|
|
19709
|
+
render: (value) => value ? /* @__PURE__ */ import_react12.default.createElement("img", { src: `data:image/png;base64,${value}`, alt: "User", style: { height: 40, width: 40, objectFit: "cover", borderRadius: "50%" } }) : "-"
|
|
19493
19710
|
}
|
|
19494
19711
|
),
|
|
19495
|
-
/* @__PURE__ */
|
|
19496
|
-
|
|
19712
|
+
/* @__PURE__ */ import_react12.default.createElement(
|
|
19713
|
+
import_lib10.Table.Column,
|
|
19497
19714
|
{
|
|
19498
19715
|
dataIndex: "DisplayName",
|
|
19499
19716
|
title: "Display Name",
|
|
@@ -19502,8 +19719,8 @@ var ApplicationUserList = () => {
|
|
|
19502
19719
|
defaultVisible: true
|
|
19503
19720
|
}
|
|
19504
19721
|
),
|
|
19505
|
-
/* @__PURE__ */
|
|
19506
|
-
|
|
19722
|
+
/* @__PURE__ */ import_react12.default.createElement(
|
|
19723
|
+
import_lib10.Table.Column,
|
|
19507
19724
|
{
|
|
19508
19725
|
dataIndex: "UserName",
|
|
19509
19726
|
title: "User Name",
|
|
@@ -19511,47 +19728,47 @@ var ApplicationUserList = () => {
|
|
|
19511
19728
|
defaultVisible: true
|
|
19512
19729
|
}
|
|
19513
19730
|
),
|
|
19514
|
-
/* @__PURE__ */
|
|
19515
|
-
|
|
19731
|
+
/* @__PURE__ */ import_react12.default.createElement(
|
|
19732
|
+
import_lib10.Table.Column,
|
|
19516
19733
|
{
|
|
19517
19734
|
dataIndex: "Email",
|
|
19518
19735
|
title: "Email",
|
|
19519
19736
|
sorter: true
|
|
19520
19737
|
}
|
|
19521
19738
|
),
|
|
19522
|
-
/* @__PURE__ */
|
|
19523
|
-
|
|
19739
|
+
/* @__PURE__ */ import_react12.default.createElement(
|
|
19740
|
+
import_lib10.Table.Column,
|
|
19524
19741
|
{
|
|
19525
19742
|
dataIndex: "IsActive",
|
|
19526
19743
|
title: "Active",
|
|
19527
|
-
render: (value) => /* @__PURE__ */
|
|
19744
|
+
render: (value) => /* @__PURE__ */ import_react12.default.createElement(import_lib10.Checkbox, { checked: value, disabled: true }),
|
|
19528
19745
|
sorter: true
|
|
19529
19746
|
}
|
|
19530
19747
|
),
|
|
19531
|
-
/* @__PURE__ */
|
|
19532
|
-
|
|
19748
|
+
/* @__PURE__ */ import_react12.default.createElement(
|
|
19749
|
+
import_lib10.Table.Column,
|
|
19533
19750
|
{
|
|
19534
19751
|
dataIndex: "AccessFailedCount",
|
|
19535
19752
|
title: "Access Failed Count"
|
|
19536
19753
|
}
|
|
19537
19754
|
),
|
|
19538
|
-
/* @__PURE__ */
|
|
19539
|
-
|
|
19755
|
+
/* @__PURE__ */ import_react12.default.createElement(
|
|
19756
|
+
import_lib10.Table.Column,
|
|
19540
19757
|
{
|
|
19541
19758
|
title: "Actions",
|
|
19542
19759
|
dataIndex: "actions",
|
|
19543
|
-
render: (_, record) => /* @__PURE__ */
|
|
19544
|
-
|
|
19760
|
+
render: (_, record) => /* @__PURE__ */ import_react12.default.createElement(import_lib10.Space, null, /* @__PURE__ */ import_react12.default.createElement(import_lib10.Tooltip, { title: "Reset Password" }, /* @__PURE__ */ import_react12.default.createElement(
|
|
19761
|
+
import_lib10.Button,
|
|
19545
19762
|
{
|
|
19546
19763
|
size: "small",
|
|
19547
|
-
icon: /* @__PURE__ */
|
|
19764
|
+
icon: /* @__PURE__ */ import_react12.default.createElement(import_icons5.KeyOutlined, null),
|
|
19548
19765
|
onClick: () => handleResetPasswordClick(record)
|
|
19549
19766
|
}
|
|
19550
|
-
)), /* @__PURE__ */
|
|
19767
|
+
)), /* @__PURE__ */ import_react12.default.createElement(import_antd7.EditButton, { hideText: true, size: "small", recordItemId: record.Oid }), /* @__PURE__ */ import_react12.default.createElement(import_antd7.DeleteButton, { hideText: true, size: "small", recordItemId: record.Oid }))
|
|
19551
19768
|
}
|
|
19552
19769
|
)
|
|
19553
|
-
), /* @__PURE__ */
|
|
19554
|
-
|
|
19770
|
+
), /* @__PURE__ */ import_react12.default.createElement(
|
|
19771
|
+
import_lib10.Modal,
|
|
19555
19772
|
{
|
|
19556
19773
|
title: `Reset Password for ${selectedUser?.DisplayName || selectedUser?.UserName}`,
|
|
19557
19774
|
open: isModalOpen,
|
|
@@ -19559,27 +19776,27 @@ var ApplicationUserList = () => {
|
|
|
19559
19776
|
onOk: () => form.submit(),
|
|
19560
19777
|
confirmLoading: isLoading
|
|
19561
19778
|
},
|
|
19562
|
-
/* @__PURE__ */
|
|
19563
|
-
|
|
19779
|
+
/* @__PURE__ */ import_react12.default.createElement(import_lib10.Form, { form, onFinish: handleResetPasswordSubmit, layout: "vertical" }, /* @__PURE__ */ import_react12.default.createElement("div", { style: { display: "flex", gap: 8, alignItems: "flex-end" } }, /* @__PURE__ */ import_react12.default.createElement(
|
|
19780
|
+
import_lib10.Form.Item,
|
|
19564
19781
|
{
|
|
19565
19782
|
name: "password",
|
|
19566
19783
|
label: "New Password",
|
|
19567
19784
|
style: { flex: 1, marginBottom: 0 },
|
|
19568
19785
|
rules: [{ required: true, message: "Please input the new password!" }]
|
|
19569
19786
|
},
|
|
19570
|
-
/* @__PURE__ */
|
|
19571
|
-
), /* @__PURE__ */
|
|
19787
|
+
/* @__PURE__ */ import_react12.default.createElement(import_lib10.Input.Password, { placeholder: "Enter new password" })
|
|
19788
|
+
), /* @__PURE__ */ import_react12.default.createElement(import_lib10.Tooltip, { title: "Generate Complex Password" }, /* @__PURE__ */ import_react12.default.createElement(import_lib10.Button, { icon: /* @__PURE__ */ import_react12.default.createElement(import_icons5.ThunderboltOutlined, null), onClick: handleGeneratePassword }))))
|
|
19572
19789
|
));
|
|
19573
19790
|
};
|
|
19574
19791
|
|
|
19575
19792
|
// src/pages/application-users/create.tsx
|
|
19576
|
-
var
|
|
19793
|
+
var import_react13 = __toESM(require("react"));
|
|
19577
19794
|
var import_antd8 = require("@refinedev/antd");
|
|
19578
|
-
var
|
|
19795
|
+
var import_lib11 = require("antd/lib");
|
|
19579
19796
|
var ApplicationUserCreate = () => {
|
|
19580
19797
|
const { formProps, saveButtonProps } = (0, import_antd8.useForm)();
|
|
19581
|
-
return /* @__PURE__ */
|
|
19582
|
-
|
|
19798
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_antd8.Create, { saveButtonProps }, /* @__PURE__ */ import_react13.default.createElement(import_lib11.Form, { ...formProps, layout: "vertical" }, /* @__PURE__ */ import_react13.default.createElement(
|
|
19799
|
+
import_lib11.Form.Item,
|
|
19583
19800
|
{
|
|
19584
19801
|
label: "User Name",
|
|
19585
19802
|
name: "UserName",
|
|
@@ -19589,16 +19806,16 @@ var ApplicationUserCreate = () => {
|
|
|
19589
19806
|
}
|
|
19590
19807
|
]
|
|
19591
19808
|
},
|
|
19592
|
-
/* @__PURE__ */
|
|
19593
|
-
), /* @__PURE__ */
|
|
19594
|
-
|
|
19809
|
+
/* @__PURE__ */ import_react13.default.createElement(import_lib11.Input, null)
|
|
19810
|
+
), /* @__PURE__ */ import_react13.default.createElement(
|
|
19811
|
+
import_lib11.Form.Item,
|
|
19595
19812
|
{
|
|
19596
19813
|
label: "Display Name",
|
|
19597
19814
|
name: "DisplayName"
|
|
19598
19815
|
},
|
|
19599
|
-
/* @__PURE__ */
|
|
19600
|
-
), /* @__PURE__ */
|
|
19601
|
-
|
|
19816
|
+
/* @__PURE__ */ import_react13.default.createElement(import_lib11.Input, null)
|
|
19817
|
+
), /* @__PURE__ */ import_react13.default.createElement(
|
|
19818
|
+
import_lib11.Form.Item,
|
|
19602
19819
|
{
|
|
19603
19820
|
label: "Email",
|
|
19604
19821
|
name: "Email",
|
|
@@ -19608,32 +19825,32 @@ var ApplicationUserCreate = () => {
|
|
|
19608
19825
|
}
|
|
19609
19826
|
]
|
|
19610
19827
|
},
|
|
19611
|
-
/* @__PURE__ */
|
|
19612
|
-
), /* @__PURE__ */
|
|
19613
|
-
|
|
19828
|
+
/* @__PURE__ */ import_react13.default.createElement(import_lib11.Input, null)
|
|
19829
|
+
), /* @__PURE__ */ import_react13.default.createElement(
|
|
19830
|
+
import_lib11.Form.Item,
|
|
19614
19831
|
{
|
|
19615
19832
|
label: "Is Active",
|
|
19616
19833
|
name: "IsActive",
|
|
19617
19834
|
valuePropName: "checked",
|
|
19618
19835
|
initialValue: true
|
|
19619
19836
|
},
|
|
19620
|
-
/* @__PURE__ */
|
|
19621
|
-
), /* @__PURE__ */
|
|
19622
|
-
|
|
19837
|
+
/* @__PURE__ */ import_react13.default.createElement(import_lib11.Checkbox, null, "Active")
|
|
19838
|
+
), /* @__PURE__ */ import_react13.default.createElement(
|
|
19839
|
+
import_lib11.Form.Item,
|
|
19623
19840
|
{
|
|
19624
19841
|
label: "Photo",
|
|
19625
19842
|
name: "Photo"
|
|
19626
19843
|
},
|
|
19627
|
-
/* @__PURE__ */
|
|
19844
|
+
/* @__PURE__ */ import_react13.default.createElement(Base64Upload, null)
|
|
19628
19845
|
)));
|
|
19629
19846
|
};
|
|
19630
19847
|
|
|
19631
19848
|
// src/pages/application-users/edit.tsx
|
|
19632
|
-
var
|
|
19849
|
+
var import_react14 = __toESM(require("react"));
|
|
19633
19850
|
var import_antd9 = require("@refinedev/antd");
|
|
19634
|
-
var
|
|
19851
|
+
var import_lib12 = require("antd/lib");
|
|
19635
19852
|
var ApplicationUserEdit = () => {
|
|
19636
|
-
const { message:
|
|
19853
|
+
const { message: message3 } = import_lib12.App.useApp();
|
|
19637
19854
|
const { formProps, saveButtonProps, id, form } = (0, import_antd9.useForm)({
|
|
19638
19855
|
meta: {
|
|
19639
19856
|
expand: ["Roles"]
|
|
@@ -19654,12 +19871,12 @@ var ApplicationUserEdit = () => {
|
|
|
19654
19871
|
})
|
|
19655
19872
|
});
|
|
19656
19873
|
if (response.ok) {
|
|
19657
|
-
|
|
19874
|
+
message3.success("Roles updated successfully");
|
|
19658
19875
|
} else {
|
|
19659
|
-
|
|
19876
|
+
message3.error("Failed to update roles");
|
|
19660
19877
|
}
|
|
19661
19878
|
} catch (e) {
|
|
19662
|
-
|
|
19879
|
+
message3.error("Error updating roles");
|
|
19663
19880
|
}
|
|
19664
19881
|
}
|
|
19665
19882
|
});
|
|
@@ -19672,8 +19889,8 @@ var ApplicationUserEdit = () => {
|
|
|
19672
19889
|
const { Roles, ...userValues } = values;
|
|
19673
19890
|
formProps.onFinish?.(userValues);
|
|
19674
19891
|
};
|
|
19675
|
-
return /* @__PURE__ */
|
|
19676
|
-
|
|
19892
|
+
return /* @__PURE__ */ import_react14.default.createElement(import_antd9.Edit, { saveButtonProps }, /* @__PURE__ */ import_react14.default.createElement(import_lib12.Form, { ...formProps, layout: "vertical", onFinish: handleOnFinish }, /* @__PURE__ */ import_react14.default.createElement(
|
|
19893
|
+
import_lib12.Form.Item,
|
|
19677
19894
|
{
|
|
19678
19895
|
label: "User Name",
|
|
19679
19896
|
name: "UserName",
|
|
@@ -19683,16 +19900,16 @@ var ApplicationUserEdit = () => {
|
|
|
19683
19900
|
}
|
|
19684
19901
|
]
|
|
19685
19902
|
},
|
|
19686
|
-
/* @__PURE__ */
|
|
19687
|
-
), /* @__PURE__ */
|
|
19688
|
-
|
|
19903
|
+
/* @__PURE__ */ import_react14.default.createElement(import_lib12.Input, null)
|
|
19904
|
+
), /* @__PURE__ */ import_react14.default.createElement(
|
|
19905
|
+
import_lib12.Form.Item,
|
|
19689
19906
|
{
|
|
19690
19907
|
label: "Display Name",
|
|
19691
19908
|
name: "DisplayName"
|
|
19692
19909
|
},
|
|
19693
|
-
/* @__PURE__ */
|
|
19694
|
-
), /* @__PURE__ */
|
|
19695
|
-
|
|
19910
|
+
/* @__PURE__ */ import_react14.default.createElement(import_lib12.Input, null)
|
|
19911
|
+
), /* @__PURE__ */ import_react14.default.createElement(
|
|
19912
|
+
import_lib12.Form.Item,
|
|
19696
19913
|
{
|
|
19697
19914
|
label: "Email",
|
|
19698
19915
|
name: "Email",
|
|
@@ -19702,17 +19919,17 @@ var ApplicationUserEdit = () => {
|
|
|
19702
19919
|
}
|
|
19703
19920
|
]
|
|
19704
19921
|
},
|
|
19705
|
-
/* @__PURE__ */
|
|
19706
|
-
), /* @__PURE__ */
|
|
19707
|
-
|
|
19922
|
+
/* @__PURE__ */ import_react14.default.createElement(import_lib12.Input, null)
|
|
19923
|
+
), /* @__PURE__ */ import_react14.default.createElement(
|
|
19924
|
+
import_lib12.Form.Item,
|
|
19708
19925
|
{
|
|
19709
19926
|
label: "Is Active",
|
|
19710
19927
|
name: "IsActive",
|
|
19711
19928
|
valuePropName: "checked"
|
|
19712
19929
|
},
|
|
19713
|
-
/* @__PURE__ */
|
|
19714
|
-
), /* @__PURE__ */
|
|
19715
|
-
|
|
19930
|
+
/* @__PURE__ */ import_react14.default.createElement(import_lib12.Checkbox, null, "Active")
|
|
19931
|
+
), /* @__PURE__ */ import_react14.default.createElement(
|
|
19932
|
+
import_lib12.Form.Item,
|
|
19716
19933
|
{
|
|
19717
19934
|
label: "Roles",
|
|
19718
19935
|
name: "Roles",
|
|
@@ -19730,50 +19947,50 @@ var ApplicationUserEdit = () => {
|
|
|
19730
19947
|
return { value: [] };
|
|
19731
19948
|
}
|
|
19732
19949
|
},
|
|
19733
|
-
/* @__PURE__ */
|
|
19734
|
-
), /* @__PURE__ */
|
|
19735
|
-
|
|
19950
|
+
/* @__PURE__ */ import_react14.default.createElement(import_lib12.Select, { ...roleSelectProps, mode: "multiple" })
|
|
19951
|
+
), /* @__PURE__ */ import_react14.default.createElement(
|
|
19952
|
+
import_lib12.Form.Item,
|
|
19736
19953
|
{
|
|
19737
19954
|
label: "Photo",
|
|
19738
19955
|
name: "Photo"
|
|
19739
19956
|
},
|
|
19740
|
-
/* @__PURE__ */
|
|
19957
|
+
/* @__PURE__ */ import_react14.default.createElement(Base64Upload, null)
|
|
19741
19958
|
)));
|
|
19742
19959
|
};
|
|
19743
19960
|
|
|
19744
19961
|
// src/pages/roles/list.tsx
|
|
19745
|
-
var
|
|
19962
|
+
var import_react15 = __toESM(require("react"));
|
|
19746
19963
|
var import_antd10 = require("@refinedev/antd");
|
|
19747
|
-
var
|
|
19964
|
+
var import_lib13 = require("antd/lib");
|
|
19748
19965
|
var RoleList = () => {
|
|
19749
19966
|
const { tableProps } = (0, import_antd10.useTable)({
|
|
19750
19967
|
syncWithLocation: true
|
|
19751
19968
|
});
|
|
19752
|
-
return /* @__PURE__ */
|
|
19753
|
-
|
|
19969
|
+
return /* @__PURE__ */ import_react15.default.createElement(import_antd10.List, null, /* @__PURE__ */ import_react15.default.createElement(import_lib13.Table, { ...tableProps, rowKey: "Oid" }, /* @__PURE__ */ import_react15.default.createElement(import_lib13.Table.Column, { dataIndex: "Name", title: "Name" }), /* @__PURE__ */ import_react15.default.createElement(
|
|
19970
|
+
import_lib13.Table.Column,
|
|
19754
19971
|
{
|
|
19755
19972
|
dataIndex: "IsAdministrative",
|
|
19756
19973
|
title: "Is Administrative",
|
|
19757
|
-
render: (value) => /* @__PURE__ */
|
|
19974
|
+
render: (value) => /* @__PURE__ */ import_react15.default.createElement(import_lib13.Checkbox, { checked: value, disabled: true })
|
|
19758
19975
|
}
|
|
19759
|
-
), /* @__PURE__ */
|
|
19760
|
-
|
|
19976
|
+
), /* @__PURE__ */ import_react15.default.createElement(import_lib13.Table.Column, { dataIndex: "PermissionPolicy", title: "Permission Policy" }), /* @__PURE__ */ import_react15.default.createElement(
|
|
19977
|
+
import_lib13.Table.Column,
|
|
19761
19978
|
{
|
|
19762
19979
|
title: "Actions",
|
|
19763
19980
|
dataIndex: "actions",
|
|
19764
|
-
render: (_, record) => /* @__PURE__ */
|
|
19981
|
+
render: (_, record) => /* @__PURE__ */ import_react15.default.createElement(import_lib13.Space, null, /* @__PURE__ */ import_react15.default.createElement(import_antd10.EditButton, { hideText: true, size: "small", recordItemId: record.Oid }), /* @__PURE__ */ import_react15.default.createElement(import_antd10.DeleteButton, { hideText: true, size: "small", recordItemId: record.Oid }))
|
|
19765
19982
|
}
|
|
19766
19983
|
)));
|
|
19767
19984
|
};
|
|
19768
19985
|
|
|
19769
19986
|
// src/pages/roles/create.tsx
|
|
19770
|
-
var
|
|
19987
|
+
var import_react17 = __toESM(require("react"));
|
|
19771
19988
|
var import_antd12 = require("@refinedev/antd");
|
|
19772
|
-
var
|
|
19989
|
+
var import_lib15 = require("antd/lib");
|
|
19773
19990
|
|
|
19774
19991
|
// src/pages/roles/TypePermissionList.tsx
|
|
19775
|
-
var
|
|
19776
|
-
var
|
|
19992
|
+
var import_react16 = __toESM(require("react"));
|
|
19993
|
+
var import_lib14 = require("antd/lib");
|
|
19777
19994
|
var import_antd11 = require("@refinedev/antd");
|
|
19778
19995
|
|
|
19779
19996
|
// src/hooks/useModelTypes.ts
|
|
@@ -19801,8 +20018,8 @@ var useModelTypes = () => {
|
|
|
19801
20018
|
};
|
|
19802
20019
|
|
|
19803
20020
|
// src/pages/roles/TypePermissionList.tsx
|
|
19804
|
-
var PermissionSelect = (props) => /* @__PURE__ */
|
|
19805
|
-
|
|
20021
|
+
var PermissionSelect = (props) => /* @__PURE__ */ import_react16.default.createElement(
|
|
20022
|
+
import_lib14.Select,
|
|
19806
20023
|
{
|
|
19807
20024
|
...props,
|
|
19808
20025
|
allowClear: true,
|
|
@@ -19813,22 +20030,22 @@ var PermissionSelect = (props) => /* @__PURE__ */ import_react15.default.createE
|
|
|
19813
20030
|
}
|
|
19814
20031
|
);
|
|
19815
20032
|
var TypePermissionFormFields = ({ typeOptions }) => {
|
|
19816
|
-
return /* @__PURE__ */
|
|
19817
|
-
|
|
20033
|
+
return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement(
|
|
20034
|
+
import_lib14.Form.Item,
|
|
19818
20035
|
{
|
|
19819
20036
|
label: "Target Type",
|
|
19820
20037
|
name: "TargetTypeFullName",
|
|
19821
20038
|
rules: [{ required: true }]
|
|
19822
20039
|
},
|
|
19823
|
-
/* @__PURE__ */
|
|
19824
|
-
|
|
20040
|
+
/* @__PURE__ */ import_react16.default.createElement(
|
|
20041
|
+
import_lib14.Select,
|
|
19825
20042
|
{
|
|
19826
20043
|
showSearch: true,
|
|
19827
20044
|
options: typeOptions,
|
|
19828
20045
|
filterOption: (input, option) => (option?.label ?? "").toLowerCase().includes(input.toLowerCase())
|
|
19829
20046
|
}
|
|
19830
20047
|
)
|
|
19831
|
-
), /* @__PURE__ */
|
|
20048
|
+
), /* @__PURE__ */ import_react16.default.createElement(import_lib14.Form.Item, { label: "Read State", name: "ReadState" }, /* @__PURE__ */ import_react16.default.createElement(PermissionSelect, null)), /* @__PURE__ */ import_react16.default.createElement(import_lib14.Form.Item, { label: "Write State", name: "WriteState" }, /* @__PURE__ */ import_react16.default.createElement(PermissionSelect, null)), /* @__PURE__ */ import_react16.default.createElement(import_lib14.Form.Item, { label: "Create State", name: "CreateState" }, /* @__PURE__ */ import_react16.default.createElement(PermissionSelect, null)), /* @__PURE__ */ import_react16.default.createElement(import_lib14.Form.Item, { label: "Delete State", name: "DeleteState" }, /* @__PURE__ */ import_react16.default.createElement(PermissionSelect, null)));
|
|
19832
20049
|
};
|
|
19833
20050
|
var TypePermissionList = ({ masterId }) => {
|
|
19834
20051
|
const { data: modelTypes } = useModelTypes();
|
|
@@ -19848,17 +20065,17 @@ var TypePermissionList = ({ masterId }) => {
|
|
|
19848
20065
|
mode: "off"
|
|
19849
20066
|
}
|
|
19850
20067
|
});
|
|
19851
|
-
const typeOptions =
|
|
19852
|
-
const FormFieldsWrapper =
|
|
19853
|
-
return ({ mode }) => /* @__PURE__ */
|
|
20068
|
+
const typeOptions = import_react16.default.useMemo(() => modelTypes?.filter((t) => t.IsCreatable && !t.IsDeprecated).map((t) => ({ label: t.Caption, value: t.Name })) || [], [modelTypes]);
|
|
20069
|
+
const FormFieldsWrapper = import_react16.default.useMemo(() => {
|
|
20070
|
+
return ({ mode }) => /* @__PURE__ */ import_react16.default.createElement(TypePermissionFormFields, { typeOptions });
|
|
19854
20071
|
}, [typeOptions]);
|
|
19855
|
-
const dataSource =
|
|
20072
|
+
const dataSource = import_react16.default.useMemo(() => {
|
|
19856
20073
|
return (tableProps.dataSource || []).map((p) => ({
|
|
19857
20074
|
...p,
|
|
19858
20075
|
TargetType: p.TargetType || p.TargetTypeFullName || ""
|
|
19859
20076
|
}));
|
|
19860
20077
|
}, [tableProps.dataSource]);
|
|
19861
|
-
return /* @__PURE__ */
|
|
20078
|
+
return /* @__PURE__ */ import_react16.default.createElement(
|
|
19862
20079
|
RelatedList,
|
|
19863
20080
|
{
|
|
19864
20081
|
resource: "PermissionPolicyTypePermissionObject",
|
|
@@ -19869,30 +20086,30 @@ var TypePermissionList = ({ masterId }) => {
|
|
|
19869
20086
|
modalTitle: "Type Permission",
|
|
19870
20087
|
FormFields: FormFieldsWrapper
|
|
19871
20088
|
},
|
|
19872
|
-
/* @__PURE__ */
|
|
19873
|
-
|
|
20089
|
+
/* @__PURE__ */ import_react16.default.createElement(
|
|
20090
|
+
import_lib14.Table.Column,
|
|
19874
20091
|
{
|
|
19875
20092
|
dataIndex: "TargetType",
|
|
19876
20093
|
title: "Target Type",
|
|
19877
20094
|
render: (value) => typeOptions.find((t) => t.value === value)?.label || value
|
|
19878
20095
|
}
|
|
19879
20096
|
),
|
|
19880
|
-
/* @__PURE__ */
|
|
19881
|
-
/* @__PURE__ */
|
|
19882
|
-
/* @__PURE__ */
|
|
19883
|
-
/* @__PURE__ */
|
|
20097
|
+
/* @__PURE__ */ import_react16.default.createElement(import_lib14.Table.Column, { dataIndex: "ReadState", title: "Read" }),
|
|
20098
|
+
/* @__PURE__ */ import_react16.default.createElement(import_lib14.Table.Column, { dataIndex: "WriteState", title: "Write" }),
|
|
20099
|
+
/* @__PURE__ */ import_react16.default.createElement(import_lib14.Table.Column, { dataIndex: "CreateState", title: "Create" }),
|
|
20100
|
+
/* @__PURE__ */ import_react16.default.createElement(import_lib14.Table.Column, { dataIndex: "DeleteState", title: "Delete" })
|
|
19884
20101
|
);
|
|
19885
20102
|
};
|
|
19886
20103
|
|
|
19887
20104
|
// src/pages/roles/create.tsx
|
|
19888
20105
|
var RoleCreate = () => {
|
|
19889
|
-
const [form] =
|
|
20106
|
+
const [form] = import_lib15.Form.useForm();
|
|
19890
20107
|
const { formProps, saveButtonProps } = (0, import_antd12.useForm)();
|
|
19891
20108
|
const handleSave = () => {
|
|
19892
20109
|
form.submit();
|
|
19893
20110
|
};
|
|
19894
|
-
return /* @__PURE__ */
|
|
19895
|
-
|
|
20111
|
+
return /* @__PURE__ */ import_react17.default.createElement(import_antd12.Create, { saveButtonProps: { ...saveButtonProps, onClick: handleSave } }, /* @__PURE__ */ import_react17.default.createElement(
|
|
20112
|
+
import_lib15.Form,
|
|
19896
20113
|
{
|
|
19897
20114
|
...formProps,
|
|
19898
20115
|
form,
|
|
@@ -19901,34 +20118,34 @@ var RoleCreate = () => {
|
|
|
19901
20118
|
return formProps.onFinish && formProps.onFinish(values);
|
|
19902
20119
|
}
|
|
19903
20120
|
},
|
|
19904
|
-
/* @__PURE__ */
|
|
19905
|
-
|
|
20121
|
+
/* @__PURE__ */ import_react17.default.createElement(
|
|
20122
|
+
import_lib15.Form.Item,
|
|
19906
20123
|
{
|
|
19907
20124
|
label: "Name",
|
|
19908
20125
|
name: "Name",
|
|
19909
20126
|
rules: [{ required: true }]
|
|
19910
20127
|
},
|
|
19911
|
-
/* @__PURE__ */
|
|
20128
|
+
/* @__PURE__ */ import_react17.default.createElement(import_lib15.Input, null)
|
|
19912
20129
|
),
|
|
19913
|
-
/* @__PURE__ */
|
|
19914
|
-
|
|
20130
|
+
/* @__PURE__ */ import_react17.default.createElement(
|
|
20131
|
+
import_lib15.Form.Item,
|
|
19915
20132
|
{
|
|
19916
20133
|
label: "Is Administrative",
|
|
19917
20134
|
name: "IsAdministrative",
|
|
19918
20135
|
valuePropName: "checked"
|
|
19919
20136
|
},
|
|
19920
|
-
/* @__PURE__ */
|
|
20137
|
+
/* @__PURE__ */ import_react17.default.createElement(import_lib15.Checkbox, null, "Is Administrative")
|
|
19921
20138
|
),
|
|
19922
|
-
/* @__PURE__ */
|
|
19923
|
-
|
|
20139
|
+
/* @__PURE__ */ import_react17.default.createElement(
|
|
20140
|
+
import_lib15.Form.Item,
|
|
19924
20141
|
{
|
|
19925
20142
|
label: "Permission Policy",
|
|
19926
20143
|
name: "PermissionPolicy",
|
|
19927
20144
|
initialValue: "DenyAllByDefault" /* DenyAllByDefault */,
|
|
19928
20145
|
rules: [{ required: true }]
|
|
19929
20146
|
},
|
|
19930
|
-
/* @__PURE__ */
|
|
19931
|
-
|
|
20147
|
+
/* @__PURE__ */ import_react17.default.createElement(
|
|
20148
|
+
import_lib15.Select,
|
|
19932
20149
|
{
|
|
19933
20150
|
options: [
|
|
19934
20151
|
{ label: "Deny All By Default", value: "DenyAllByDefault" /* DenyAllByDefault */ },
|
|
@@ -19938,21 +20155,21 @@ var RoleCreate = () => {
|
|
|
19938
20155
|
}
|
|
19939
20156
|
)
|
|
19940
20157
|
),
|
|
19941
|
-
/* @__PURE__ */
|
|
20158
|
+
/* @__PURE__ */ import_react17.default.createElement(TypePermissionList, null)
|
|
19942
20159
|
));
|
|
19943
20160
|
};
|
|
19944
20161
|
|
|
19945
20162
|
// src/pages/roles/edit.tsx
|
|
19946
|
-
var
|
|
20163
|
+
var import_react18 = __toESM(require("react"));
|
|
19947
20164
|
var import_antd13 = require("@refinedev/antd");
|
|
19948
|
-
var
|
|
20165
|
+
var import_lib16 = require("antd/lib");
|
|
19949
20166
|
var RoleEdit = () => {
|
|
19950
20167
|
const { formProps, saveButtonProps, id } = (0, import_antd13.useForm)();
|
|
19951
20168
|
const handleSave = () => {
|
|
19952
20169
|
formProps.form?.submit();
|
|
19953
20170
|
};
|
|
19954
|
-
return /* @__PURE__ */
|
|
19955
|
-
|
|
20171
|
+
return /* @__PURE__ */ import_react18.default.createElement(import_antd13.Edit, { saveButtonProps: { ...saveButtonProps, onClick: handleSave } }, /* @__PURE__ */ import_react18.default.createElement(
|
|
20172
|
+
import_lib16.Form,
|
|
19956
20173
|
{
|
|
19957
20174
|
...formProps,
|
|
19958
20175
|
layout: "vertical",
|
|
@@ -19961,33 +20178,33 @@ var RoleEdit = () => {
|
|
|
19961
20178
|
return formProps.onFinish && formProps.onFinish(rest);
|
|
19962
20179
|
}
|
|
19963
20180
|
},
|
|
19964
|
-
/* @__PURE__ */
|
|
19965
|
-
|
|
20181
|
+
/* @__PURE__ */ import_react18.default.createElement(
|
|
20182
|
+
import_lib16.Form.Item,
|
|
19966
20183
|
{
|
|
19967
20184
|
label: "Name",
|
|
19968
20185
|
name: "Name",
|
|
19969
20186
|
rules: [{ required: true }]
|
|
19970
20187
|
},
|
|
19971
|
-
/* @__PURE__ */
|
|
20188
|
+
/* @__PURE__ */ import_react18.default.createElement(import_lib16.Input, null)
|
|
19972
20189
|
),
|
|
19973
|
-
/* @__PURE__ */
|
|
19974
|
-
|
|
20190
|
+
/* @__PURE__ */ import_react18.default.createElement(
|
|
20191
|
+
import_lib16.Form.Item,
|
|
19975
20192
|
{
|
|
19976
20193
|
label: "Is Administrative",
|
|
19977
20194
|
name: "IsAdministrative",
|
|
19978
20195
|
valuePropName: "checked"
|
|
19979
20196
|
},
|
|
19980
|
-
/* @__PURE__ */
|
|
20197
|
+
/* @__PURE__ */ import_react18.default.createElement(import_lib16.Checkbox, null, "Is Administrative")
|
|
19981
20198
|
),
|
|
19982
|
-
/* @__PURE__ */
|
|
19983
|
-
|
|
20199
|
+
/* @__PURE__ */ import_react18.default.createElement(
|
|
20200
|
+
import_lib16.Form.Item,
|
|
19984
20201
|
{
|
|
19985
20202
|
label: "Permission Policy",
|
|
19986
20203
|
name: "PermissionPolicy",
|
|
19987
20204
|
rules: [{ required: true }]
|
|
19988
20205
|
},
|
|
19989
|
-
/* @__PURE__ */
|
|
19990
|
-
|
|
20206
|
+
/* @__PURE__ */ import_react18.default.createElement(
|
|
20207
|
+
import_lib16.Select,
|
|
19991
20208
|
{
|
|
19992
20209
|
options: [
|
|
19993
20210
|
{ label: "Deny All By Default", value: "DenyAllByDefault" /* DenyAllByDefault */ },
|
|
@@ -19997,7 +20214,7 @@ var RoleEdit = () => {
|
|
|
19997
20214
|
}
|
|
19998
20215
|
)
|
|
19999
20216
|
),
|
|
20000
|
-
/* @__PURE__ */
|
|
20217
|
+
/* @__PURE__ */ import_react18.default.createElement(
|
|
20001
20218
|
TypePermissionList,
|
|
20002
20219
|
{
|
|
20003
20220
|
masterId: id?.toString()
|
|
@@ -20005,15 +20222,358 @@ var RoleEdit = () => {
|
|
|
20005
20222
|
)
|
|
20006
20223
|
));
|
|
20007
20224
|
};
|
|
20225
|
+
|
|
20226
|
+
// src/pages/background-jobs/list.tsx
|
|
20227
|
+
var import_react19 = __toESM(require("react"));
|
|
20228
|
+
var import_core22 = require("@refinedev/core");
|
|
20229
|
+
var import_antd14 = require("@refinedev/antd");
|
|
20230
|
+
var import_antd15 = require("antd");
|
|
20231
|
+
var import_icons6 = require("@ant-design/icons");
|
|
20232
|
+
var BackgroundJobList = ({
|
|
20233
|
+
title,
|
|
20234
|
+
apiUrl: customApiUrl
|
|
20235
|
+
}) => {
|
|
20236
|
+
const t = (0, import_core22.useTranslate)();
|
|
20237
|
+
const defaultApiUrl = (0, import_core22.useApiUrl)();
|
|
20238
|
+
const apiUrl = customApiUrl || defaultApiUrl?.replace("/odata", "");
|
|
20239
|
+
const [refreshKey, setRefreshKey] = (0, import_react19.useState)(0);
|
|
20240
|
+
const [activeTab, setActiveTab] = (0, import_react19.useState)("recurring");
|
|
20241
|
+
const [loading, setLoading] = (0, import_react19.useState)(false);
|
|
20242
|
+
const [recurringJobs, setRecurringJobs] = (0, import_react19.useState)([]);
|
|
20243
|
+
const [succeededResult, setSucceededResult] = (0, import_react19.useState)(null);
|
|
20244
|
+
const [failedResult, setFailedResult] = (0, import_react19.useState)(null);
|
|
20245
|
+
const [processingResult, setProcessingResult] = (0, import_react19.useState)(null);
|
|
20246
|
+
const [drawerVisible, setDrawerVisible] = (0, import_react19.useState)(false);
|
|
20247
|
+
const [jobDetails, setJobDetails] = (0, import_react19.useState)(null);
|
|
20248
|
+
const [detailLoading, setDetailLoading] = (0, import_react19.useState)(false);
|
|
20249
|
+
const fetchData = (0, import_react19.useCallback)(async () => {
|
|
20250
|
+
setLoading(true);
|
|
20251
|
+
const token = localStorage.getItem("refine-auth") || localStorage.getItem("access_token");
|
|
20252
|
+
const headers = token ? { "Authorization": `Bearer ${token}` } : {};
|
|
20253
|
+
try {
|
|
20254
|
+
const [recurringRes, succeededRes, failedRes, processingRes] = await Promise.all([
|
|
20255
|
+
fetch(`${apiUrl}/hangfire/recurring`, { headers }),
|
|
20256
|
+
fetch(`${apiUrl}/hangfire/jobs/succeeded`, { headers }),
|
|
20257
|
+
fetch(`${apiUrl}/hangfire/jobs/failed`, { headers }),
|
|
20258
|
+
fetch(`${apiUrl}/hangfire/jobs/processing`, { headers })
|
|
20259
|
+
]);
|
|
20260
|
+
if (recurringRes.ok) {
|
|
20261
|
+
const data = await recurringRes.json();
|
|
20262
|
+
setRecurringJobs(data.value || data || []);
|
|
20263
|
+
}
|
|
20264
|
+
if (succeededRes.ok) {
|
|
20265
|
+
setSucceededResult(await succeededRes.json());
|
|
20266
|
+
}
|
|
20267
|
+
if (failedRes.ok) {
|
|
20268
|
+
setFailedResult(await failedRes.json());
|
|
20269
|
+
}
|
|
20270
|
+
if (processingRes.ok) {
|
|
20271
|
+
setProcessingResult(await processingRes.json());
|
|
20272
|
+
}
|
|
20273
|
+
} catch (error) {
|
|
20274
|
+
console.error("Failed to fetch Hangfire data:", error);
|
|
20275
|
+
} finally {
|
|
20276
|
+
setLoading(false);
|
|
20277
|
+
}
|
|
20278
|
+
}, [apiUrl]);
|
|
20279
|
+
(0, import_react19.useEffect)(() => {
|
|
20280
|
+
fetchData();
|
|
20281
|
+
}, [fetchData, refreshKey]);
|
|
20282
|
+
const handleRefresh = () => {
|
|
20283
|
+
setRefreshKey((prev) => prev + 1);
|
|
20284
|
+
};
|
|
20285
|
+
const handleTrigger = async (jobId) => {
|
|
20286
|
+
try {
|
|
20287
|
+
const token = localStorage.getItem("refine-auth") || localStorage.getItem("access_token");
|
|
20288
|
+
const headers = token ? { "Authorization": `Bearer ${token}` } : {};
|
|
20289
|
+
const response = await fetch(`${apiUrl}/hangfire/trigger/${jobId}`, {
|
|
20290
|
+
method: "POST",
|
|
20291
|
+
headers
|
|
20292
|
+
});
|
|
20293
|
+
if (response.ok) {
|
|
20294
|
+
import_antd15.message.success(t("backgroundJobs.actions.triggerSuccess"));
|
|
20295
|
+
handleRefresh();
|
|
20296
|
+
} else {
|
|
20297
|
+
import_antd15.message.error(t("backgroundJobs.actions.triggerError"));
|
|
20298
|
+
}
|
|
20299
|
+
} catch {
|
|
20300
|
+
import_antd15.message.error(t("backgroundJobs.actions.triggerError"));
|
|
20301
|
+
}
|
|
20302
|
+
};
|
|
20303
|
+
const handleDelete = async (jobId) => {
|
|
20304
|
+
try {
|
|
20305
|
+
const token = localStorage.getItem("refine-auth") || localStorage.getItem("access_token");
|
|
20306
|
+
const headers = token ? { "Authorization": `Bearer ${token}` } : {};
|
|
20307
|
+
const response = await fetch(`${apiUrl}/hangfire/recurring/${jobId}`, {
|
|
20308
|
+
method: "DELETE",
|
|
20309
|
+
headers
|
|
20310
|
+
});
|
|
20311
|
+
if (response.ok) {
|
|
20312
|
+
import_antd15.message.success(t("backgroundJobs.actions.deleteSuccess"));
|
|
20313
|
+
handleRefresh();
|
|
20314
|
+
} else {
|
|
20315
|
+
import_antd15.message.error(t("backgroundJobs.actions.deleteError"));
|
|
20316
|
+
}
|
|
20317
|
+
} catch {
|
|
20318
|
+
import_antd15.message.error(t("backgroundJobs.actions.deleteError"));
|
|
20319
|
+
}
|
|
20320
|
+
};
|
|
20321
|
+
const showDetails = async (jobId) => {
|
|
20322
|
+
setDrawerVisible(true);
|
|
20323
|
+
setDetailLoading(true);
|
|
20324
|
+
setJobDetails(null);
|
|
20325
|
+
try {
|
|
20326
|
+
const token = localStorage.getItem("refine-auth") || localStorage.getItem("access_token");
|
|
20327
|
+
const headers = token ? { "Authorization": `Bearer ${token}` } : {};
|
|
20328
|
+
const res = await fetch(`${apiUrl}/hangfire/jobs/${jobId}`, { headers });
|
|
20329
|
+
if (res.ok) {
|
|
20330
|
+
const data = await res.json();
|
|
20331
|
+
setJobDetails(data);
|
|
20332
|
+
} else {
|
|
20333
|
+
import_antd15.message.error("Failed to load details");
|
|
20334
|
+
}
|
|
20335
|
+
} catch {
|
|
20336
|
+
import_antd15.message.error("Failed to load details");
|
|
20337
|
+
} finally {
|
|
20338
|
+
setDetailLoading(false);
|
|
20339
|
+
}
|
|
20340
|
+
};
|
|
20341
|
+
const closeDrawer = () => {
|
|
20342
|
+
setDrawerVisible(false);
|
|
20343
|
+
setJobDetails(null);
|
|
20344
|
+
};
|
|
20345
|
+
const getStateTag = (state) => {
|
|
20346
|
+
if (!state) return /* @__PURE__ */ import_react19.default.createElement(import_antd15.Tag, null, t("backgroundJobs.status.unknown"));
|
|
20347
|
+
switch (state.toLowerCase()) {
|
|
20348
|
+
case "succeeded":
|
|
20349
|
+
return /* @__PURE__ */ import_react19.default.createElement(import_antd15.Tag, { icon: /* @__PURE__ */ import_react19.default.createElement(import_icons6.CheckCircleOutlined, null), color: "success" }, t("backgroundJobs.status.succeeded"));
|
|
20350
|
+
case "failed":
|
|
20351
|
+
return /* @__PURE__ */ import_react19.default.createElement(import_antd15.Tag, { icon: /* @__PURE__ */ import_react19.default.createElement(import_icons6.CloseCircleOutlined, null), color: "error" }, t("backgroundJobs.status.failed"));
|
|
20352
|
+
case "processing":
|
|
20353
|
+
return /* @__PURE__ */ import_react19.default.createElement(import_antd15.Tag, { icon: /* @__PURE__ */ import_react19.default.createElement(import_icons6.SyncOutlined, { spin: true }), color: "processing" }, t("backgroundJobs.status.processing"));
|
|
20354
|
+
case "scheduled":
|
|
20355
|
+
return /* @__PURE__ */ import_react19.default.createElement(import_antd15.Tag, { icon: /* @__PURE__ */ import_react19.default.createElement(import_icons6.ClockCircleOutlined, null), color: "warning" }, t("backgroundJobs.status.scheduled"));
|
|
20356
|
+
default:
|
|
20357
|
+
return /* @__PURE__ */ import_react19.default.createElement(import_antd15.Tag, null, state);
|
|
20358
|
+
}
|
|
20359
|
+
};
|
|
20360
|
+
const recurringColumns = [
|
|
20361
|
+
{ title: t("backgroundJobs.columns.id"), dataIndex: "Id", key: "Id" },
|
|
20362
|
+
{
|
|
20363
|
+
title: t("backgroundJobs.columns.cron"),
|
|
20364
|
+
dataIndex: "Cron",
|
|
20365
|
+
key: "Cron",
|
|
20366
|
+
render: (cron) => /* @__PURE__ */ import_react19.default.createElement(import_antd15.Tag, { color: "blue" }, cron)
|
|
20367
|
+
},
|
|
20368
|
+
{ title: t("backgroundJobs.columns.queue"), dataIndex: "Queue", key: "Queue" },
|
|
20369
|
+
{
|
|
20370
|
+
title: t("backgroundJobs.columns.nextExecution"),
|
|
20371
|
+
dataIndex: "NextExecution",
|
|
20372
|
+
key: "NextExecution",
|
|
20373
|
+
render: (date) => date ? new Date(date).toLocaleString() : "-"
|
|
20374
|
+
},
|
|
20375
|
+
{
|
|
20376
|
+
title: t("backgroundJobs.columns.lastState"),
|
|
20377
|
+
dataIndex: "LastJobState",
|
|
20378
|
+
key: "LastJobState",
|
|
20379
|
+
render: (state) => getStateTag(state)
|
|
20380
|
+
},
|
|
20381
|
+
{
|
|
20382
|
+
title: t("backgroundJobs.columns.actions"),
|
|
20383
|
+
key: "actions",
|
|
20384
|
+
render: (_, record) => /* @__PURE__ */ import_react19.default.createElement(import_antd15.Space, null, /* @__PURE__ */ import_react19.default.createElement(import_antd15.Tooltip, { title: t("backgroundJobs.actions.trigger") }, /* @__PURE__ */ import_react19.default.createElement(
|
|
20385
|
+
import_antd15.Button,
|
|
20386
|
+
{
|
|
20387
|
+
type: "primary",
|
|
20388
|
+
icon: /* @__PURE__ */ import_react19.default.createElement(import_icons6.PlayCircleOutlined, null),
|
|
20389
|
+
size: "small",
|
|
20390
|
+
onClick: () => handleTrigger(record.Id)
|
|
20391
|
+
}
|
|
20392
|
+
)), /* @__PURE__ */ import_react19.default.createElement(import_antd15.Tooltip, { title: t("backgroundJobs.actions.delete") }, /* @__PURE__ */ import_react19.default.createElement(
|
|
20393
|
+
import_antd15.Button,
|
|
20394
|
+
{
|
|
20395
|
+
danger: true,
|
|
20396
|
+
icon: /* @__PURE__ */ import_react19.default.createElement(import_icons6.DeleteOutlined, null),
|
|
20397
|
+
size: "small",
|
|
20398
|
+
onClick: () => handleDelete(record.Id)
|
|
20399
|
+
}
|
|
20400
|
+
)))
|
|
20401
|
+
}
|
|
20402
|
+
];
|
|
20403
|
+
const succeededColumns = [
|
|
20404
|
+
{
|
|
20405
|
+
title: t("backgroundJobs.columns.jobId"),
|
|
20406
|
+
dataIndex: "JobId",
|
|
20407
|
+
key: "JobId",
|
|
20408
|
+
render: (text) => /* @__PURE__ */ import_react19.default.createElement("a", { onClick: () => showDetails(text) }, text)
|
|
20409
|
+
},
|
|
20410
|
+
{ title: t("backgroundJobs.columns.jobName"), dataIndex: "JobName", key: "JobName" },
|
|
20411
|
+
{
|
|
20412
|
+
title: t("backgroundJobs.columns.succeededAt"),
|
|
20413
|
+
dataIndex: "SucceededAt",
|
|
20414
|
+
key: "SucceededAt",
|
|
20415
|
+
render: (date) => date ? new Date(date).toLocaleString() : "-"
|
|
20416
|
+
},
|
|
20417
|
+
{ title: t("backgroundJobs.columns.duration"), dataIndex: "TotalDuration", key: "TotalDuration" }
|
|
20418
|
+
];
|
|
20419
|
+
const failedColumns = [
|
|
20420
|
+
{
|
|
20421
|
+
title: t("backgroundJobs.columns.jobId"),
|
|
20422
|
+
dataIndex: "JobId",
|
|
20423
|
+
key: "JobId",
|
|
20424
|
+
render: (text) => /* @__PURE__ */ import_react19.default.createElement("a", { onClick: () => showDetails(text) }, text)
|
|
20425
|
+
},
|
|
20426
|
+
{ title: t("backgroundJobs.columns.jobName"), dataIndex: "JobName", key: "JobName" },
|
|
20427
|
+
{
|
|
20428
|
+
title: t("backgroundJobs.columns.failedAt"),
|
|
20429
|
+
dataIndex: "FailedAt",
|
|
20430
|
+
key: "FailedAt",
|
|
20431
|
+
render: (date) => date ? new Date(date).toLocaleString() : "-"
|
|
20432
|
+
},
|
|
20433
|
+
{
|
|
20434
|
+
title: t("backgroundJobs.columns.exception"),
|
|
20435
|
+
dataIndex: "ExceptionMessage",
|
|
20436
|
+
key: "ExceptionMessage",
|
|
20437
|
+
render: (msg) => /* @__PURE__ */ import_react19.default.createElement(import_antd15.Tooltip, { title: msg }, /* @__PURE__ */ import_react19.default.createElement("span", null, msg?.substring(0, 50), msg && msg.length > 50 ? "..." : ""))
|
|
20438
|
+
}
|
|
20439
|
+
];
|
|
20440
|
+
const processingColumns = [
|
|
20441
|
+
{
|
|
20442
|
+
title: t("backgroundJobs.columns.jobId"),
|
|
20443
|
+
dataIndex: "JobId",
|
|
20444
|
+
key: "JobId",
|
|
20445
|
+
render: (text) => /* @__PURE__ */ import_react19.default.createElement("a", { onClick: () => showDetails(text) }, text)
|
|
20446
|
+
},
|
|
20447
|
+
{ title: t("backgroundJobs.columns.jobName"), dataIndex: "JobName", key: "JobName" },
|
|
20448
|
+
{
|
|
20449
|
+
title: t("backgroundJobs.columns.startedAt"),
|
|
20450
|
+
dataIndex: "StartedAt",
|
|
20451
|
+
key: "StartedAt",
|
|
20452
|
+
render: (date) => date ? new Date(date).toLocaleString() : "-"
|
|
20453
|
+
},
|
|
20454
|
+
{ title: t("backgroundJobs.columns.serverId"), dataIndex: "ServerId", key: "ServerId" }
|
|
20455
|
+
];
|
|
20456
|
+
const items = [
|
|
20457
|
+
{
|
|
20458
|
+
key: "recurring",
|
|
20459
|
+
label: `${t("backgroundJobs.tabs.recurring")} (${recurringJobs.length})`,
|
|
20460
|
+
children: /* @__PURE__ */ import_react19.default.createElement(
|
|
20461
|
+
import_antd15.Table,
|
|
20462
|
+
{
|
|
20463
|
+
dataSource: recurringJobs,
|
|
20464
|
+
columns: recurringColumns,
|
|
20465
|
+
rowKey: "Id",
|
|
20466
|
+
loading,
|
|
20467
|
+
pagination: false
|
|
20468
|
+
}
|
|
20469
|
+
)
|
|
20470
|
+
},
|
|
20471
|
+
{
|
|
20472
|
+
key: "succeeded",
|
|
20473
|
+
label: /* @__PURE__ */ import_react19.default.createElement("span", null, /* @__PURE__ */ import_react19.default.createElement(import_icons6.CheckCircleOutlined, { style: { color: "#52c41a" } }), " ", t("backgroundJobs.tabs.succeeded"), " (", succeededResult?.Total || 0, ")"),
|
|
20474
|
+
children: /* @__PURE__ */ import_react19.default.createElement(
|
|
20475
|
+
import_antd15.Table,
|
|
20476
|
+
{
|
|
20477
|
+
dataSource: succeededResult?.Jobs || [],
|
|
20478
|
+
columns: succeededColumns,
|
|
20479
|
+
rowKey: "JobId",
|
|
20480
|
+
loading,
|
|
20481
|
+
pagination: { pageSize: 10 }
|
|
20482
|
+
}
|
|
20483
|
+
)
|
|
20484
|
+
},
|
|
20485
|
+
{
|
|
20486
|
+
key: "failed",
|
|
20487
|
+
label: /* @__PURE__ */ import_react19.default.createElement("span", null, /* @__PURE__ */ import_react19.default.createElement(import_icons6.CloseCircleOutlined, { style: { color: "#ff4d4f" } }), " ", t("backgroundJobs.tabs.failed"), " (", failedResult?.Total || 0, ")"),
|
|
20488
|
+
children: /* @__PURE__ */ import_react19.default.createElement(
|
|
20489
|
+
import_antd15.Table,
|
|
20490
|
+
{
|
|
20491
|
+
dataSource: failedResult?.Jobs || [],
|
|
20492
|
+
columns: failedColumns,
|
|
20493
|
+
rowKey: "JobId",
|
|
20494
|
+
loading,
|
|
20495
|
+
pagination: { pageSize: 10 }
|
|
20496
|
+
}
|
|
20497
|
+
)
|
|
20498
|
+
},
|
|
20499
|
+
{
|
|
20500
|
+
key: "processing",
|
|
20501
|
+
label: /* @__PURE__ */ import_react19.default.createElement("span", null, /* @__PURE__ */ import_react19.default.createElement(import_icons6.SyncOutlined, { spin: true, style: { color: "#1890ff" } }), " ", t("backgroundJobs.tabs.processing"), " (", processingResult?.Total || 0, ")"),
|
|
20502
|
+
children: /* @__PURE__ */ import_react19.default.createElement(
|
|
20503
|
+
import_antd15.Table,
|
|
20504
|
+
{
|
|
20505
|
+
dataSource: processingResult?.Jobs || [],
|
|
20506
|
+
columns: processingColumns,
|
|
20507
|
+
rowKey: "JobId",
|
|
20508
|
+
loading,
|
|
20509
|
+
pagination: false
|
|
20510
|
+
}
|
|
20511
|
+
)
|
|
20512
|
+
}
|
|
20513
|
+
];
|
|
20514
|
+
return /* @__PURE__ */ import_react19.default.createElement(
|
|
20515
|
+
import_antd14.List,
|
|
20516
|
+
{
|
|
20517
|
+
title: title || t("backgroundJobs.title"),
|
|
20518
|
+
headerButtons: /* @__PURE__ */ import_react19.default.createElement(import_antd15.Button, { icon: /* @__PURE__ */ import_react19.default.createElement(import_icons6.ReloadOutlined, null), onClick: handleRefresh, loading }, t("buttons.refresh"))
|
|
20519
|
+
},
|
|
20520
|
+
/* @__PURE__ */ import_react19.default.createElement(import_antd15.Row, { gutter: 16, style: { marginBottom: 16 } }, /* @__PURE__ */ import_react19.default.createElement(import_antd15.Col, { span: 6 }, /* @__PURE__ */ import_react19.default.createElement(import_antd15.Card, null, /* @__PURE__ */ import_react19.default.createElement(
|
|
20521
|
+
import_antd15.Statistic,
|
|
20522
|
+
{
|
|
20523
|
+
title: t("backgroundJobs.tabs.recurring"),
|
|
20524
|
+
value: recurringJobs.length,
|
|
20525
|
+
prefix: /* @__PURE__ */ import_react19.default.createElement(import_icons6.ClockCircleOutlined, null)
|
|
20526
|
+
}
|
|
20527
|
+
))), /* @__PURE__ */ import_react19.default.createElement(import_antd15.Col, { span: 6 }, /* @__PURE__ */ import_react19.default.createElement(import_antd15.Card, null, /* @__PURE__ */ import_react19.default.createElement(
|
|
20528
|
+
import_antd15.Statistic,
|
|
20529
|
+
{
|
|
20530
|
+
title: t("backgroundJobs.tabs.succeeded"),
|
|
20531
|
+
value: succeededResult?.Total || 0,
|
|
20532
|
+
valueStyle: { color: "#3f8600" },
|
|
20533
|
+
prefix: /* @__PURE__ */ import_react19.default.createElement(import_icons6.CheckCircleOutlined, null)
|
|
20534
|
+
}
|
|
20535
|
+
))), /* @__PURE__ */ import_react19.default.createElement(import_antd15.Col, { span: 6 }, /* @__PURE__ */ import_react19.default.createElement(import_antd15.Card, null, /* @__PURE__ */ import_react19.default.createElement(
|
|
20536
|
+
import_antd15.Statistic,
|
|
20537
|
+
{
|
|
20538
|
+
title: t("backgroundJobs.tabs.failed"),
|
|
20539
|
+
value: failedResult?.Total || 0,
|
|
20540
|
+
valueStyle: { color: "#cf1322" },
|
|
20541
|
+
prefix: /* @__PURE__ */ import_react19.default.createElement(import_icons6.CloseCircleOutlined, null)
|
|
20542
|
+
}
|
|
20543
|
+
))), /* @__PURE__ */ import_react19.default.createElement(import_antd15.Col, { span: 6 }, /* @__PURE__ */ import_react19.default.createElement(import_antd15.Card, null, /* @__PURE__ */ import_react19.default.createElement(
|
|
20544
|
+
import_antd15.Statistic,
|
|
20545
|
+
{
|
|
20546
|
+
title: t("backgroundJobs.tabs.processing"),
|
|
20547
|
+
value: processingResult?.Total || 0,
|
|
20548
|
+
valueStyle: { color: "#1890ff" },
|
|
20549
|
+
prefix: /* @__PURE__ */ import_react19.default.createElement(import_icons6.SyncOutlined, null)
|
|
20550
|
+
}
|
|
20551
|
+
)))),
|
|
20552
|
+
/* @__PURE__ */ import_react19.default.createElement(import_antd15.Tabs, { activeKey: activeTab, onChange: setActiveTab, items }),
|
|
20553
|
+
/* @__PURE__ */ import_react19.default.createElement(
|
|
20554
|
+
import_antd15.Drawer,
|
|
20555
|
+
{
|
|
20556
|
+
title: t("backgroundJobs.drawer.title"),
|
|
20557
|
+
placement: "right",
|
|
20558
|
+
onClose: closeDrawer,
|
|
20559
|
+
open: drawerVisible,
|
|
20560
|
+
width: 600
|
|
20561
|
+
},
|
|
20562
|
+
detailLoading ? /* @__PURE__ */ import_react19.default.createElement(import_antd15.Skeleton, { active: true }) : jobDetails ? /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement(import_antd15.Descriptions, { column: 1, bordered: true, size: "small" }, /* @__PURE__ */ import_react19.default.createElement(import_antd15.Descriptions.Item, { label: t("backgroundJobs.drawer.jobName") }, jobDetails.JobName), /* @__PURE__ */ import_react19.default.createElement(import_antd15.Descriptions.Item, { label: t("backgroundJobs.drawer.createdAt") }, jobDetails.CreatedAt ? new Date(jobDetails.CreatedAt).toLocaleString() : "-")), /* @__PURE__ */ import_react19.default.createElement("div", { style: { marginTop: 24 } }, /* @__PURE__ */ import_react19.default.createElement("h3", null, t("backgroundJobs.drawer.history")), /* @__PURE__ */ import_react19.default.createElement(import_antd15.Timeline, { mode: "left" }, jobDetails.History.map((h, i) => /* @__PURE__ */ import_react19.default.createElement(import_antd15.Timeline.Item, { key: i, color: h.StateName === "Succeeded" ? "green" : h.StateName === "Failed" ? "red" : "blue" }, /* @__PURE__ */ import_react19.default.createElement("p", null, /* @__PURE__ */ import_react19.default.createElement("strong", null, h.StateName), " - ", new Date(h.CreatedAt).toLocaleString()), h.Reason && /* @__PURE__ */ import_react19.default.createElement("p", null, t("backgroundJobs.drawer.reason"), ": ", h.Reason), h.Data && Object.keys(h.Data).length > 0 && /* @__PURE__ */ import_react19.default.createElement("div", { style: { background: "#f5f5f5", padding: 8, borderRadius: 4, overflowX: "auto", marginTop: 8 } }, /* @__PURE__ */ import_react19.default.createElement("pre", { style: { margin: 0, fontSize: 12 } }, JSON.stringify(h.Data, null, 2)))))))) : /* @__PURE__ */ import_react19.default.createElement("div", null, t("backgroundJobs.drawer.noData"))
|
|
20563
|
+
)
|
|
20564
|
+
);
|
|
20565
|
+
};
|
|
20008
20566
|
// Annotate the CommonJS export names for ESM import in node:
|
|
20009
20567
|
0 && (module.exports = {
|
|
20010
20568
|
ApplicationUserCreate,
|
|
20011
20569
|
ApplicationUserEdit,
|
|
20012
20570
|
ApplicationUserList,
|
|
20013
20571
|
AuthCallback,
|
|
20572
|
+
BackgroundJobList,
|
|
20014
20573
|
Base64Upload,
|
|
20015
20574
|
ColorModeContext,
|
|
20016
20575
|
ColorModeContextProvider,
|
|
20576
|
+
DrawioEditor,
|
|
20017
20577
|
Header,
|
|
20018
20578
|
HttpError,
|
|
20019
20579
|
KeycloakLoginPage,
|