@alepha/ui 0.18.1 → 0.18.2
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/dist/admin/{AdminApiKeys-C-6_Q-lH.js → AdminApiKeys-BJhIwfD6.js} +17 -38
- package/dist/admin/AdminApiKeys-BJhIwfD6.js.map +1 -0
- package/dist/admin/{AdminAudits-Bgbf04hO.js → AdminAudits-DzD_4cDt.js} +23 -19
- package/dist/admin/AdminAudits-DzD_4cDt.js.map +1 -0
- package/dist/admin/AdminDashboard-C92tIc6x.js +67 -0
- package/dist/admin/AdminDashboard-C92tIc6x.js.map +1 -0
- package/dist/admin/{AdminFiles-B9a7G3cY.js → AdminFiles-DLpfhBkf.js} +3 -7
- package/dist/admin/AdminFiles-DLpfhBkf.js.map +1 -0
- package/dist/admin/{AdminJobDashboard-DaTwf5OY.js → AdminJobDashboard-KIOkeMgE.js} +2 -2
- package/dist/admin/{AdminJobDashboard-DaTwf5OY.js.map → AdminJobDashboard-KIOkeMgE.js.map} +1 -1
- package/dist/admin/{AdminJobExecutions-B9cek5dl.js → AdminJobExecutions-D0Yo_PU0.js} +24 -36
- package/dist/admin/AdminJobExecutions-D0Yo_PU0.js.map +1 -0
- package/dist/admin/{AdminJobRegistry-DFgV3oqx.js → AdminJobRegistry-PFajqaGK.js} +10 -18
- package/dist/admin/AdminJobRegistry-PFajqaGK.js.map +1 -0
- package/dist/admin/AdminLayout-B1DXZHDn.js +61 -0
- package/dist/admin/AdminLayout-B1DXZHDn.js.map +1 -0
- package/dist/admin/{AdminParameters-DHw9ATgl.js → AdminParameters-BspPeqp_.js} +2 -2
- package/dist/admin/{AdminParameters-DHw9ATgl.js.map → AdminParameters-BspPeqp_.js.map} +1 -1
- package/dist/admin/{AdminSessions-BhGJPI3z.js → AdminSessions-BnH5CZQl.js} +48 -53
- package/dist/admin/AdminSessions-BnH5CZQl.js.map +1 -0
- package/dist/admin/{AdminUserLayout-BdC4Te8m.js → AdminUserLayout-DUbC6-BI.js} +2 -2
- package/dist/admin/{AdminUserLayout-BdC4Te8m.js.map → AdminUserLayout-DUbC6-BI.js.map} +1 -1
- package/dist/admin/{AdminUserProfile-DAt23fqY.js → AdminUserProfile-DuTUnjdG.js} +3 -3
- package/dist/admin/{AdminUserProfile-DAt23fqY.js.map → AdminUserProfile-DuTUnjdG.js.map} +1 -1
- package/dist/admin/{AdminUserSessions-1uzcx02z.js → AdminUserSessions-DvZdAGpL.js} +33 -35
- package/dist/admin/AdminUserSessions-DvZdAGpL.js.map +1 -0
- package/dist/admin/AdminUsers-CR9z0g_5.js +206 -0
- package/dist/admin/AdminUsers-CR9z0g_5.js.map +1 -0
- package/dist/admin/{AuthLayout-DFJvCvzw.js → AuthLayout-DsUfp9RG.js} +2 -2
- package/dist/admin/{AuthLayout-DFJvCvzw.js.map → AuthLayout-DsUfp9RG.js.map} +1 -1
- package/dist/admin/{IconGoogle-CSQLPYwX.js → IconGoogle-Ch1m3Uzl.js} +1 -1
- package/dist/admin/{IconGoogle-CSQLPYwX.js.map → IconGoogle-Ch1m3Uzl.js.map} +1 -1
- package/dist/admin/{Login-BGheURrg.js → Login-DHbYJKwg.js} +3 -3
- package/dist/{auth/Login-Denw_UGy.js.map → admin/Login-DHbYJKwg.js.map} +1 -1
- package/dist/{auth/Profile-BMX_Ar_s.js → admin/Profile-B2EcIDB9.js} +2 -2
- package/dist/{auth/Profile-BMX_Ar_s.js.map → admin/Profile-B2EcIDB9.js.map} +1 -1
- package/dist/admin/{Register-Cs10l8vX.js → Register-Z3fxRbUF.js} +3 -3
- package/dist/{demo/Register-a70LPgs2.js.map → admin/Register-Z3fxRbUF.js.map} +1 -1
- package/dist/admin/{ResetPassword-BwDdfkGH.js → ResetPassword-_Y1qTTKh.js} +2 -2
- package/dist/admin/{ResetPassword-BwDdfkGH.js.map → ResetPassword-_Y1qTTKh.js.map} +1 -1
- package/dist/admin/{VerifyEmail-DfXHAiQl.js → VerifyEmail-Bg22bwcC.js} +2 -2
- package/dist/admin/{VerifyEmail-DfXHAiQl.js.map → VerifyEmail-Bg22bwcC.js.map} +1 -1
- package/dist/admin/{core-2xoLiT0o.js → core-BVO_TQxb.js} +1474 -233
- package/dist/admin/core-BVO_TQxb.js.map +1 -0
- package/dist/admin/index.d.ts +29 -4
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +448 -69
- package/dist/admin/index.js.map +1 -1
- package/dist/auth/{AuthLayout-CAE1pX9s.js → AuthLayout-C161NeF6.js} +2 -2
- package/dist/auth/{AuthLayout-CAE1pX9s.js.map → AuthLayout-C161NeF6.js.map} +1 -1
- package/dist/auth/{Login-Denw_UGy.js → Login-C7jIqf00.js} +2 -2
- package/dist/{admin/Login-BGheURrg.js.map → auth/Login-C7jIqf00.js.map} +1 -1
- package/dist/{admin/Profile-B-c9pCPf.js → auth/Profile-BMpXJ0oi.js} +2 -2
- package/dist/{demo/Profile-CWqti7FB.js.map → auth/Profile-BMpXJ0oi.js.map} +1 -1
- package/dist/auth/{Register-6hi_cpfF.js → Register-2gx8qll-.js} +2 -2
- package/dist/auth/{Register-6hi_cpfF.js.map → Register-2gx8qll-.js.map} +1 -1
- package/dist/{demo/ResetPassword-DWN0lzr5.js → auth/ResetPassword-DBxt9hKk.js} +2 -2
- package/dist/auth/{ResetPassword-CqfTk1FI.js.map → ResetPassword-DBxt9hKk.js.map} +1 -1
- package/dist/{demo/VerifyEmail-DZWL72K4.js → auth/VerifyEmail-Z80Ubajk.js} +2 -2
- package/dist/auth/{VerifyEmail-nWiSTMjF.js.map → VerifyEmail-Z80Ubajk.js.map} +1 -1
- package/dist/auth/{core-niW0sFLv.js → core-DyfeVr5c.js} +1002 -38
- package/dist/auth/core-DyfeVr5c.js.map +1 -0
- package/dist/auth/index.d.ts +12 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +12 -13
- package/dist/auth/index.js.map +1 -1
- package/dist/core/index.d.ts +95 -14
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1473 -232
- package/dist/core/index.js.map +1 -1
- package/dist/demo/{AuthLayout-jLa0aKsI.js → AuthLayout-DN-ClJQk.js} +2 -2
- package/dist/demo/{AuthLayout-jLa0aKsI.js.map → AuthLayout-DN-ClJQk.js.map} +1 -1
- package/dist/demo/{DemoButton-BmaWZVwf.js → DemoButton-CGUyR9eM.js} +3 -3
- package/dist/demo/{DemoButton-BmaWZVwf.js.map → DemoButton-CGUyR9eM.js.map} +1 -1
- package/dist/demo/{DemoDataTable-Z9xyV221.js → DemoDataTable-QFG-xXSx.js} +15 -19
- package/dist/demo/DemoDataTable-QFG-xXSx.js.map +1 -0
- package/dist/demo/{DemoDialog-4ItHLf9t.js → DemoDialog-DW8QEvD1.js} +2 -2
- package/dist/demo/{DemoDialog-4ItHLf9t.js.map → DemoDialog-DW8QEvD1.js.map} +1 -1
- package/dist/demo/{DemoFlex-EtVq8QfX.js → DemoFlex-CAhLUanT.js} +3 -3
- package/dist/demo/{DemoFlex-EtVq8QfX.js.map → DemoFlex-CAhLUanT.js.map} +1 -1
- package/dist/demo/{DemoHeading-BS-vGfkI.js → DemoHeading-yIFmNjHB.js} +3 -3
- package/dist/demo/{DemoHeading-BS-vGfkI.js.map → DemoHeading-yIFmNjHB.js.map} +1 -1
- package/dist/demo/{DemoHome-Clbn8AmS.js → DemoHome-BSGuBHus.js} +2 -2
- package/dist/demo/{DemoHome-Clbn8AmS.js.map → DemoHome-BSGuBHus.js.map} +1 -1
- package/dist/demo/{DemoJsonViewer-DkIX_ky2.js → DemoJsonViewer-DsA2IpgV.js} +3 -3
- package/dist/demo/{DemoJsonViewer-DkIX_ky2.js.map → DemoJsonViewer-DsA2IpgV.js.map} +1 -1
- package/dist/demo/{DemoLayout-C56xb5EE.js → DemoLayout-Cy6xjn6P.js} +2 -2
- package/dist/demo/{DemoLayout-C56xb5EE.js.map → DemoLayout-Cy6xjn6P.js.map} +1 -1
- package/dist/demo/{DemoLogin-BZwpicOS.js → DemoLogin-vqxgTu4P.js} +8 -8
- package/dist/demo/{DemoLogin-BZwpicOS.js.map → DemoLogin-vqxgTu4P.js.map} +1 -1
- package/dist/demo/{DemoRegister-C7_qc4MJ.js → DemoRegister-YHPvPg77.js} +8 -8
- package/dist/demo/{DemoRegister-C7_qc4MJ.js.map → DemoRegister-YHPvPg77.js.map} +1 -1
- package/dist/demo/{DemoResetPassword-BI1Ct4Dw.js → DemoResetPassword-mOW18Zlm.js} +8 -8
- package/dist/demo/{DemoResetPassword-BI1Ct4Dw.js.map → DemoResetPassword-mOW18Zlm.js.map} +1 -1
- package/dist/demo/{DemoSidebar-CcBo4ltC.js → DemoSidebar-od7aLjP_.js} +3 -3
- package/dist/demo/{DemoSidebar-CcBo4ltC.js.map → DemoSidebar-od7aLjP_.js.map} +1 -1
- package/dist/demo/{DemoText-CzXuUn3g.js → DemoText-DU3JeRS0.js} +3 -3
- package/dist/demo/{DemoText-CzXuUn3g.js.map → DemoText-DU3JeRS0.js.map} +1 -1
- package/dist/demo/{DemoToast-BgHDhWrX.js → DemoToast-CUJEiPRa.js} +2 -2
- package/dist/demo/{DemoToast-BgHDhWrX.js.map → DemoToast-CUJEiPRa.js.map} +1 -1
- package/dist/demo/{DemoTypeForm-DDzWoMSV.js → DemoTypeForm-C1dNkahD.js} +3 -3
- package/dist/demo/{DemoTypeForm-DDzWoMSV.js.map → DemoTypeForm-C1dNkahD.js.map} +1 -1
- package/dist/demo/{DemoVerifyEmail-C_Irdnov.js → DemoVerifyEmail-D9EcXZ38.js} +8 -8
- package/dist/demo/{DemoVerifyEmail-C_Irdnov.js.map → DemoVerifyEmail-D9EcXZ38.js.map} +1 -1
- package/dist/demo/{Login-hSOU3jZc.js → Login-CoYf_P_F.js} +2 -2
- package/dist/demo/{Login-hSOU3jZc.js.map → Login-CoYf_P_F.js.map} +1 -1
- package/dist/demo/{Profile-CWqti7FB.js → Profile-BE_Y3co2.js} +2 -2
- package/dist/{admin/Profile-B-c9pCPf.js.map → demo/Profile-BE_Y3co2.js.map} +1 -1
- package/dist/demo/{Register-a70LPgs2.js → Register-fXHmBpr3.js} +2 -2
- package/dist/{admin/Register-Cs10l8vX.js.map → demo/Register-fXHmBpr3.js.map} +1 -1
- package/dist/{auth/ResetPassword-CqfTk1FI.js → demo/ResetPassword-CAPj8MO3.js} +2 -2
- package/dist/demo/{ResetPassword-DWN0lzr5.js.map → ResetPassword-CAPj8MO3.js.map} +1 -1
- package/dist/demo/{Showcase-Dq3MISpd.js → Showcase-BtEU0pY9.js} +2 -2
- package/dist/demo/{Showcase-Dq3MISpd.js.map → Showcase-BtEU0pY9.js.map} +1 -1
- package/dist/{auth/VerifyEmail-nWiSTMjF.js → demo/VerifyEmail-DFmdCdYs.js} +2 -2
- package/dist/demo/{VerifyEmail-DZWL72K4.js.map → VerifyEmail-DFmdCdYs.js.map} +1 -1
- package/dist/demo/{auth-d6n3xbug.js → auth-Djd7SKiw.js} +8 -8
- package/dist/demo/{auth-d6n3xbug.js.map → auth-Djd7SKiw.js.map} +1 -1
- package/dist/demo/{core-RCUw1Q-a.js → core-B7LNjM78.js} +1484 -226
- package/dist/demo/core-B7LNjM78.js.map +1 -0
- package/dist/demo/index.js +17 -17
- package/package.json +3 -3
- package/src/admin/{AdminRouter.ts → AdminRouter.tsx} +128 -19
- package/src/admin/components/AdminDashboard.tsx +52 -0
- package/src/admin/components/AdminLayout.tsx +32 -40
- package/src/admin/components/audits/AdminAudits.tsx +22 -16
- package/src/admin/components/files/AdminFiles.tsx +1 -6
- package/src/admin/components/jobs/AdminJobExecutions.tsx +33 -39
- package/src/admin/components/jobs/AdminJobRegistry.tsx +9 -18
- package/src/admin/components/keys/AdminApiKeys.tsx +23 -41
- package/src/admin/components/sessions/AdminSessions.tsx +71 -71
- package/src/admin/components/users/AdminUserSessions.tsx +33 -31
- package/src/admin/components/users/AdminUsers.tsx +184 -72
- package/src/admin/index.ts +2 -2
- package/src/admin/primitives/$uiAdmin.ts +1 -1
- package/src/auth/components/buttons/UserButton.tsx +1 -3
- package/src/core/atoms/alephaSidebarAtom.ts +1 -1
- package/src/core/atoms/alephaThemeListAtom.ts +14 -1
- package/src/core/atoms/alephaThemeOverridesAtom.ts +17 -0
- package/src/core/atoms/themes/editorial.ts +184 -0
- package/src/core/atoms/themes/monochrome.ts +197 -0
- package/src/core/atoms/themes/rosePine.ts +208 -0
- package/src/core/atoms/themes/softBrutalism.ts +221 -0
- package/src/core/atoms/themes/terminal.ts +186 -0
- package/src/core/components/Flex.tsx +91 -1
- package/src/core/components/Text.tsx +1 -1
- package/src/core/components/buttons/ActionButton.tsx +15 -19
- package/src/core/components/buttons/DarkModeButton.tsx +3 -3
- package/src/core/components/buttons/LanguageButton.tsx +1 -1
- package/src/core/components/buttons/OmnibarButton.tsx +1 -2
- package/src/core/components/buttons/ThemeButton.tsx +40 -11
- package/src/core/components/buttons/ThemeExpertModal.tsx +184 -0
- package/src/core/components/buttons/ToggleSidebarButton.tsx +1 -2
- package/src/core/components/layout/AppBar.tsx +10 -0
- package/src/core/components/layout/DashboardShell.tsx +10 -7
- package/src/core/components/layout/Sidebar.tsx +60 -52
- package/src/core/constants/ui.ts +5 -5
- package/src/core/hooks/useTheme.ts +26 -3
- package/src/core/index.ts +6 -1
- package/src/core/interfaces/AlephaTheme.ts +2 -0
- package/src/core/providers/ThemeProvider.ts +108 -8
- package/src/core/services/DialogService.tsx +24 -3
- package/src/core/styles.css +26 -23
- package/src/core/table/components/DataTable.tsx +167 -137
- package/src/core/table/components/DataTableFilters.tsx +1 -6
- package/src/core/table/components/DataTablePagination.tsx +51 -28
- package/src/core/table/components/DataTableToolbar.tsx +9 -4
- package/src/core/table/index.ts +1 -0
- package/src/core/table/interfaces/types.ts +13 -9
- package/src/demo/components/core/DemoDataTable.tsx +15 -19
- package/dist/admin/AdminApiKeys-C-6_Q-lH.js.map +0 -1
- package/dist/admin/AdminAudits-Bgbf04hO.js.map +0 -1
- package/dist/admin/AdminFiles-B9a7G3cY.js.map +0 -1
- package/dist/admin/AdminJobExecutions-B9cek5dl.js.map +0 -1
- package/dist/admin/AdminJobRegistry-DFgV3oqx.js.map +0 -1
- package/dist/admin/AdminLayout-DHsvWxVB.js +0 -70
- package/dist/admin/AdminLayout-DHsvWxVB.js.map +0 -1
- package/dist/admin/AdminSessions-BhGJPI3z.js.map +0 -1
- package/dist/admin/AdminUserSessions-1uzcx02z.js.map +0 -1
- package/dist/admin/AdminUsers-C85c3eiQ.js +0 -121
- package/dist/admin/AdminUsers-C85c3eiQ.js.map +0 -1
- package/dist/admin/auth-Dr0Cf8I7.js +0 -319
- package/dist/admin/auth-Dr0Cf8I7.js.map +0 -1
- package/dist/admin/core-2xoLiT0o.js.map +0 -1
- package/dist/auth/core-niW0sFLv.js.map +0 -1
- package/dist/demo/DemoDataTable-Z9xyV221.js.map +0 -1
- package/dist/demo/core-RCUw1Q-a.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DataTable, Flex, Text } from "@alepha/ui";
|
|
2
2
|
import { Badge, Tooltip } from "@mantine/core";
|
|
3
|
-
import {
|
|
3
|
+
import { IconUser } from "@tabler/icons-react";
|
|
4
4
|
import { type Page, t } from "alepha";
|
|
5
5
|
import type { AdminAuditController, AuditEntity } from "alepha/api/audits";
|
|
6
6
|
import { useClient } from "alepha/react";
|
|
@@ -29,10 +29,11 @@ const AdminAudits = (props: AdminAuditsProps) => {
|
|
|
29
29
|
});
|
|
30
30
|
|
|
31
31
|
return (
|
|
32
|
-
<Flex flex={1} direction="column">
|
|
32
|
+
<Flex p="md" flex={1} direction="column">
|
|
33
33
|
<DataTable<AuditEntity, typeof filters>
|
|
34
34
|
submitOnInit
|
|
35
35
|
defaultSize={20}
|
|
36
|
+
defaultFilters={["search", "severity"]}
|
|
36
37
|
typeFormProps={{
|
|
37
38
|
skipSubmitButton: true,
|
|
38
39
|
columns: 4,
|
|
@@ -40,9 +41,8 @@ const AdminAudits = (props: AdminAuditsProps) => {
|
|
|
40
41
|
tableProps={{
|
|
41
42
|
horizontalSpacing: "xs",
|
|
42
43
|
verticalSpacing: "xs",
|
|
43
|
-
striped: false,
|
|
44
|
-
highlightOnHover: true,
|
|
45
44
|
}}
|
|
45
|
+
onFilterChange={(_key, _value, form) => form.submit()}
|
|
46
46
|
filters={filters}
|
|
47
47
|
tableTrProps={(item) => ({
|
|
48
48
|
style: {
|
|
@@ -69,7 +69,6 @@ const AdminAudits = (props: AdminAuditsProps) => {
|
|
|
69
69
|
columns={{
|
|
70
70
|
type: {
|
|
71
71
|
label: "Type",
|
|
72
|
-
fit: true,
|
|
73
72
|
value: (item) => (
|
|
74
73
|
<Badge size="sm" variant="default">
|
|
75
74
|
{item.type}
|
|
@@ -78,7 +77,6 @@ const AdminAudits = (props: AdminAuditsProps) => {
|
|
|
78
77
|
},
|
|
79
78
|
action: {
|
|
80
79
|
label: "Action",
|
|
81
|
-
fit: true,
|
|
82
80
|
value: (item) => (
|
|
83
81
|
<Badge size="sm" variant="default">
|
|
84
82
|
{item.action}
|
|
@@ -87,16 +85,24 @@ const AdminAudits = (props: AdminAuditsProps) => {
|
|
|
87
85
|
},
|
|
88
86
|
severity: {
|
|
89
87
|
label: "Severity",
|
|
90
|
-
fit: true,
|
|
91
88
|
value: (item) => (
|
|
92
|
-
<
|
|
89
|
+
<Badge
|
|
90
|
+
size="sm"
|
|
91
|
+
variant="light"
|
|
92
|
+
color={
|
|
93
|
+
item.severity === "critical"
|
|
94
|
+
? "red"
|
|
95
|
+
: item.severity === "warning"
|
|
96
|
+
? "yellow"
|
|
97
|
+
: "gray"
|
|
98
|
+
}
|
|
99
|
+
>
|
|
93
100
|
{item.severity}
|
|
94
|
-
</
|
|
101
|
+
</Badge>
|
|
95
102
|
),
|
|
96
103
|
},
|
|
97
104
|
user: {
|
|
98
105
|
label: "User",
|
|
99
|
-
fit: true,
|
|
100
106
|
value: (item) =>
|
|
101
107
|
item.userId ? (
|
|
102
108
|
<Tooltip
|
|
@@ -132,7 +138,6 @@ const AdminAudits = (props: AdminAuditsProps) => {
|
|
|
132
138
|
},
|
|
133
139
|
resource: {
|
|
134
140
|
label: "Resource",
|
|
135
|
-
fit: true,
|
|
136
141
|
value: (item) =>
|
|
137
142
|
item.resourceType ? (
|
|
138
143
|
<Tooltip label={`${item.resourceType}: ${item.resourceId}`}>
|
|
@@ -148,19 +153,21 @@ const AdminAudits = (props: AdminAuditsProps) => {
|
|
|
148
153
|
},
|
|
149
154
|
success: {
|
|
150
155
|
label: "Status",
|
|
151
|
-
fit: true,
|
|
152
156
|
value: (item) =>
|
|
153
157
|
item.success ? (
|
|
154
|
-
<
|
|
158
|
+
<Badge size="sm" variant="light" color="green">
|
|
159
|
+
OK
|
|
160
|
+
</Badge>
|
|
155
161
|
) : (
|
|
156
162
|
<Tooltip label={item.errorMessage || "Failed"}>
|
|
157
|
-
<
|
|
163
|
+
<Badge size="sm" variant="light" color="red">
|
|
164
|
+
Failed
|
|
165
|
+
</Badge>
|
|
158
166
|
</Tooltip>
|
|
159
167
|
),
|
|
160
168
|
},
|
|
161
169
|
ipAddress: {
|
|
162
170
|
label: "IP",
|
|
163
|
-
fit: true,
|
|
164
171
|
value: (item) => (
|
|
165
172
|
<Text size="xs" c="dimmed" ff="monospace">
|
|
166
173
|
{item.ipAddress || "-"}
|
|
@@ -169,7 +176,6 @@ const AdminAudits = (props: AdminAuditsProps) => {
|
|
|
169
176
|
},
|
|
170
177
|
createdAt: {
|
|
171
178
|
label: "Time",
|
|
172
|
-
fit: true,
|
|
173
179
|
value: (item) => (
|
|
174
180
|
<Tooltip label={l(item.createdAt, { date: "medium" })}>
|
|
175
181
|
<Text size="xs" c="dimmed">
|
|
@@ -28,7 +28,7 @@ const AdminFiles = () => {
|
|
|
28
28
|
};
|
|
29
29
|
|
|
30
30
|
return (
|
|
31
|
-
<Flex flex={1} direction={"column"}>
|
|
31
|
+
<Flex p="md" flex={1} direction={"column"}>
|
|
32
32
|
<DataTable<FileEntity, typeof filters>
|
|
33
33
|
submitOnInit
|
|
34
34
|
defaultSize={10}
|
|
@@ -64,7 +64,6 @@ const AdminFiles = () => {
|
|
|
64
64
|
},
|
|
65
65
|
bucket: {
|
|
66
66
|
label: "Bucket",
|
|
67
|
-
fit: true,
|
|
68
67
|
value: (item) => (
|
|
69
68
|
<Text size="xs" ff="monospace">
|
|
70
69
|
{item.bucket}
|
|
@@ -73,7 +72,6 @@ const AdminFiles = () => {
|
|
|
73
72
|
},
|
|
74
73
|
mimeType: {
|
|
75
74
|
label: "Type",
|
|
76
|
-
fit: true,
|
|
77
75
|
value: (item) => (
|
|
78
76
|
<Text size="xs" c="dimmed">
|
|
79
77
|
{item.mimeType}
|
|
@@ -82,7 +80,6 @@ const AdminFiles = () => {
|
|
|
82
80
|
},
|
|
83
81
|
size: {
|
|
84
82
|
label: "Size",
|
|
85
|
-
fit: true,
|
|
86
83
|
value: (item) => (
|
|
87
84
|
<Text size="xs" c="dimmed">
|
|
88
85
|
{formatFileSize(item.size)}
|
|
@@ -91,7 +88,6 @@ const AdminFiles = () => {
|
|
|
91
88
|
},
|
|
92
89
|
creatorName: {
|
|
93
90
|
label: "Creator",
|
|
94
|
-
fit: true,
|
|
95
91
|
value: (item) => (
|
|
96
92
|
<Text size="xs" c="dimmed">
|
|
97
93
|
{item.creatorName || "-"}
|
|
@@ -100,7 +96,6 @@ const AdminFiles = () => {
|
|
|
100
96
|
},
|
|
101
97
|
createdAt: {
|
|
102
98
|
label: "Created",
|
|
103
|
-
fit: true,
|
|
104
99
|
value: (item) => (
|
|
105
100
|
<Text size="xs" c="dimmed">
|
|
106
101
|
{l(item.createdAt, { date: "fromNow" })}
|
|
@@ -109,7 +109,7 @@ const AdminJobExecutions = () => {
|
|
|
109
109
|
);
|
|
110
110
|
|
|
111
111
|
return (
|
|
112
|
-
<Flex flex={1} direction="column" gap="md">
|
|
112
|
+
<Flex p="md" flex={1} direction="column" gap="md">
|
|
113
113
|
<DataTable<JobExecutionResource, typeof executionFilters>
|
|
114
114
|
key={`executions-${refreshKey}`}
|
|
115
115
|
submitOnInit
|
|
@@ -121,13 +121,8 @@ const AdminJobExecutions = () => {
|
|
|
121
121
|
tableProps={{
|
|
122
122
|
horizontalSpacing: "sm",
|
|
123
123
|
verticalSpacing: "sm",
|
|
124
|
-
highlightOnHover: true,
|
|
125
|
-
}}
|
|
126
|
-
onFilterChange={(key, _value, form) => {
|
|
127
|
-
if (key === "job" || key === "status" || key === "priority") {
|
|
128
|
-
return form.submit();
|
|
129
|
-
}
|
|
130
124
|
}}
|
|
125
|
+
onFilterChange={(_key, _value, form) => form.submit()}
|
|
131
126
|
filters={executionFilters}
|
|
132
127
|
defaultFilters={["job", "status"]}
|
|
133
128
|
items={async (filters) => {
|
|
@@ -141,12 +136,23 @@ const AdminJobExecutions = () => {
|
|
|
141
136
|
columns={{
|
|
142
137
|
status: {
|
|
143
138
|
label: "Status",
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
139
|
+
value: (item) => {
|
|
140
|
+
const color =
|
|
141
|
+
item.status === "completed"
|
|
142
|
+
? "green"
|
|
143
|
+
: item.status === "running"
|
|
144
|
+
? "blue"
|
|
145
|
+
: item.status === "failed" || item.status === "dead"
|
|
146
|
+
? "red"
|
|
147
|
+
: item.status === "cancelled"
|
|
148
|
+
? "yellow"
|
|
149
|
+
: "gray";
|
|
150
|
+
return (
|
|
151
|
+
<Badge size="sm" variant="light" color={color}>
|
|
152
|
+
{item.status}
|
|
153
|
+
</Badge>
|
|
154
|
+
);
|
|
155
|
+
},
|
|
150
156
|
},
|
|
151
157
|
jobName: {
|
|
152
158
|
label: "Job",
|
|
@@ -158,7 +164,6 @@ const AdminJobExecutions = () => {
|
|
|
158
164
|
},
|
|
159
165
|
priority: {
|
|
160
166
|
label: "Priority",
|
|
161
|
-
fit: true,
|
|
162
167
|
value: (item) => (
|
|
163
168
|
<Text size="xs" c="dimmed">
|
|
164
169
|
{PRIORITY_LABELS[item.priority] ?? item.priority}
|
|
@@ -167,7 +172,6 @@ const AdminJobExecutions = () => {
|
|
|
167
172
|
},
|
|
168
173
|
attempt: {
|
|
169
174
|
label: "Attempt",
|
|
170
|
-
fit: true,
|
|
171
175
|
value: (item) => (
|
|
172
176
|
<Text size="sm" ff="monospace">
|
|
173
177
|
{item.attempt}/{item.maxAttempts}
|
|
@@ -176,7 +180,6 @@ const AdminJobExecutions = () => {
|
|
|
176
180
|
},
|
|
177
181
|
triggeredByName: {
|
|
178
182
|
label: "Trigger",
|
|
179
|
-
fit: true,
|
|
180
183
|
defaultHidden: true,
|
|
181
184
|
value: (item) => (
|
|
182
185
|
<Text size="xs" c="dimmed">
|
|
@@ -186,7 +189,6 @@ const AdminJobExecutions = () => {
|
|
|
186
189
|
},
|
|
187
190
|
createdAt: {
|
|
188
191
|
label: "Created",
|
|
189
|
-
fit: true,
|
|
190
192
|
defaultHidden: true,
|
|
191
193
|
value: (item) => (
|
|
192
194
|
<Text size="xs" c="dimmed">
|
|
@@ -196,7 +198,6 @@ const AdminJobExecutions = () => {
|
|
|
196
198
|
},
|
|
197
199
|
startedAt: {
|
|
198
200
|
label: "Started",
|
|
199
|
-
fit: true,
|
|
200
201
|
value: (item) => (
|
|
201
202
|
<Text size="xs" c="dimmed">
|
|
202
203
|
{item.startedAt
|
|
@@ -207,7 +208,6 @@ const AdminJobExecutions = () => {
|
|
|
207
208
|
},
|
|
208
209
|
duration: {
|
|
209
210
|
label: "Duration",
|
|
210
|
-
fit: true,
|
|
211
211
|
value: (item) => (
|
|
212
212
|
<Text size="xs" c="dimmed" ff="monospace">
|
|
213
213
|
{item.startedAt &&
|
|
@@ -228,7 +228,6 @@ const AdminJobExecutions = () => {
|
|
|
228
228
|
},
|
|
229
229
|
key: {
|
|
230
230
|
label: "Key",
|
|
231
|
-
fit: true,
|
|
232
231
|
defaultHidden: true,
|
|
233
232
|
value: (item) => (
|
|
234
233
|
<Text size="xs" c="dimmed" ff="monospace">
|
|
@@ -238,7 +237,6 @@ const AdminJobExecutions = () => {
|
|
|
238
237
|
},
|
|
239
238
|
workerId: {
|
|
240
239
|
label: "Worker",
|
|
241
|
-
fit: true,
|
|
242
240
|
defaultHidden: true,
|
|
243
241
|
value: (item) => (
|
|
244
242
|
<Text size="xs" c="dimmed" ff="monospace">
|
|
@@ -246,25 +244,21 @@ const AdminJobExecutions = () => {
|
|
|
246
244
|
</Text>
|
|
247
245
|
),
|
|
248
246
|
},
|
|
249
|
-
actions: {
|
|
250
|
-
label: "",
|
|
251
|
-
fit: true,
|
|
252
|
-
actions: (item) => [
|
|
253
|
-
{
|
|
254
|
-
tooltip: "Retry",
|
|
255
|
-
icon: IconRefresh,
|
|
256
|
-
onClick: () => handleRetry(item.id),
|
|
257
|
-
visible: item.can?.retry,
|
|
258
|
-
},
|
|
259
|
-
{
|
|
260
|
-
tooltip: "Cancel",
|
|
261
|
-
icon: IconCircleX,
|
|
262
|
-
onClick: () => handleCancel(item.id),
|
|
263
|
-
visible: item.can?.cancel,
|
|
264
|
-
},
|
|
265
|
-
],
|
|
266
|
-
},
|
|
267
247
|
}}
|
|
248
|
+
rowActions={(item) => [
|
|
249
|
+
{
|
|
250
|
+
label: "Retry",
|
|
251
|
+
icon: IconRefresh,
|
|
252
|
+
onClick: () => handleRetry(item.id),
|
|
253
|
+
visible: item.can?.retry,
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
label: "Cancel",
|
|
257
|
+
icon: IconCircleX,
|
|
258
|
+
onClick: () => handleCancel(item.id),
|
|
259
|
+
visible: item.can?.cancel,
|
|
260
|
+
},
|
|
261
|
+
]}
|
|
268
262
|
panel={{
|
|
269
263
|
can: (item) => Boolean(item.error || item.key || item.workerId),
|
|
270
264
|
render: (item) => (
|
|
@@ -88,7 +88,7 @@ const AdminJobRegistry = () => {
|
|
|
88
88
|
);
|
|
89
89
|
|
|
90
90
|
return (
|
|
91
|
-
<Flex flex={1} direction="column" gap="md">
|
|
91
|
+
<Flex p="md" flex={1} direction="column" gap="md">
|
|
92
92
|
<DataTable<JobRegistration, typeof registryFilters>
|
|
93
93
|
key={`registry-${refreshKey}`}
|
|
94
94
|
submitOnInit
|
|
@@ -99,7 +99,6 @@ const AdminJobRegistry = () => {
|
|
|
99
99
|
tableProps={{
|
|
100
100
|
horizontalSpacing: "sm",
|
|
101
101
|
verticalSpacing: "sm",
|
|
102
|
-
highlightOnHover: true,
|
|
103
102
|
}}
|
|
104
103
|
onFilterChange={(_key, _value, form) => form.submit()}
|
|
105
104
|
filters={registryFilters}
|
|
@@ -121,7 +120,6 @@ const AdminJobRegistry = () => {
|
|
|
121
120
|
},
|
|
122
121
|
type: {
|
|
123
122
|
label: "Type",
|
|
124
|
-
fit: true,
|
|
125
123
|
value: (item) => (
|
|
126
124
|
<Badge size="sm" variant="default">
|
|
127
125
|
{item.type}
|
|
@@ -130,7 +128,6 @@ const AdminJobRegistry = () => {
|
|
|
130
128
|
},
|
|
131
129
|
priority: {
|
|
132
130
|
label: "Priority",
|
|
133
|
-
fit: true,
|
|
134
131
|
value: (item) => (
|
|
135
132
|
<Text size="sm" tt="capitalize">
|
|
136
133
|
{item.priority}
|
|
@@ -139,7 +136,6 @@ const AdminJobRegistry = () => {
|
|
|
139
136
|
},
|
|
140
137
|
concurrency: {
|
|
141
138
|
label: "Concurrency",
|
|
142
|
-
fit: true,
|
|
143
139
|
value: (item) => (
|
|
144
140
|
<Text size="sm" ff="monospace">
|
|
145
141
|
{item.concurrency}
|
|
@@ -148,7 +144,6 @@ const AdminJobRegistry = () => {
|
|
|
148
144
|
},
|
|
149
145
|
queue: {
|
|
150
146
|
label: "Queue",
|
|
151
|
-
fit: true,
|
|
152
147
|
value: (item) => {
|
|
153
148
|
const q = queueMap.get(item.name);
|
|
154
149
|
if (
|
|
@@ -187,19 +182,15 @@ const AdminJobRegistry = () => {
|
|
|
187
182
|
);
|
|
188
183
|
},
|
|
189
184
|
},
|
|
190
|
-
actions: {
|
|
191
|
-
label: "",
|
|
192
|
-
fit: true,
|
|
193
|
-
actions: (item) => [
|
|
194
|
-
{
|
|
195
|
-
tooltip: "Trigger",
|
|
196
|
-
color: "blue",
|
|
197
|
-
icon: IconPlayerPlay,
|
|
198
|
-
onClick: () => handleTriggerJob(item.name),
|
|
199
|
-
},
|
|
200
|
-
],
|
|
201
|
-
},
|
|
202
185
|
}}
|
|
186
|
+
rowActions={(item) => [
|
|
187
|
+
{
|
|
188
|
+
label: "Trigger",
|
|
189
|
+
color: "blue",
|
|
190
|
+
icon: IconPlayerPlay,
|
|
191
|
+
onClick: () => handleTriggerJob(item.name),
|
|
192
|
+
},
|
|
193
|
+
]}
|
|
203
194
|
panel={(item) => {
|
|
204
195
|
const cron = cronMap.get(item.name);
|
|
205
196
|
const failure = failureMap.get(item.name);
|
|
@@ -146,7 +146,7 @@ const AdminApiKeys = () => {
|
|
|
146
146
|
}, []);
|
|
147
147
|
|
|
148
148
|
return (
|
|
149
|
-
<Flex flex={1} direction="column" gap="md">
|
|
149
|
+
<Flex p="md" flex={1} direction="column" gap="md">
|
|
150
150
|
<StatCards
|
|
151
151
|
items={[
|
|
152
152
|
{ label: "Total Keys", value: stats.total, icon: IconKey },
|
|
@@ -167,13 +167,8 @@ const AdminApiKeys = () => {
|
|
|
167
167
|
tableProps={{
|
|
168
168
|
horizontalSpacing: "sm",
|
|
169
169
|
verticalSpacing: "sm",
|
|
170
|
-
highlightOnHover: true,
|
|
171
|
-
}}
|
|
172
|
-
onFilterChange={(key, _value, form) => {
|
|
173
|
-
if (key === "userId" || key === "includeRevoked") {
|
|
174
|
-
return form.submit();
|
|
175
|
-
}
|
|
176
170
|
}}
|
|
171
|
+
onFilterChange={(_key, _value, form) => form.submit()}
|
|
177
172
|
filters={filters}
|
|
178
173
|
tableTrProps={(item) => {
|
|
179
174
|
const status = getKeyStatus(item);
|
|
@@ -218,7 +213,6 @@ const AdminApiKeys = () => {
|
|
|
218
213
|
},
|
|
219
214
|
token: {
|
|
220
215
|
label: "Key",
|
|
221
|
-
fit: true,
|
|
222
216
|
value: (item) => (
|
|
223
217
|
<Flex gap={4}>
|
|
224
218
|
<Code
|
|
@@ -240,12 +234,21 @@ const AdminApiKeys = () => {
|
|
|
240
234
|
},
|
|
241
235
|
status: {
|
|
242
236
|
label: "Status",
|
|
243
|
-
fit: true,
|
|
244
237
|
value: (item) => {
|
|
245
238
|
const status = getKeyStatus(item);
|
|
246
239
|
return (
|
|
247
|
-
<Badge
|
|
248
|
-
|
|
240
|
+
<Badge
|
|
241
|
+
size="sm"
|
|
242
|
+
variant="light"
|
|
243
|
+
color={
|
|
244
|
+
status === "active"
|
|
245
|
+
? "green"
|
|
246
|
+
: status === "expired"
|
|
247
|
+
? "yellow"
|
|
248
|
+
: "red"
|
|
249
|
+
}
|
|
250
|
+
>
|
|
251
|
+
{status}
|
|
249
252
|
</Badge>
|
|
250
253
|
);
|
|
251
254
|
},
|
|
@@ -277,7 +280,6 @@ const AdminApiKeys = () => {
|
|
|
277
280
|
},
|
|
278
281
|
usage: {
|
|
279
282
|
label: "Usage",
|
|
280
|
-
fit: true,
|
|
281
283
|
value: (item) => (
|
|
282
284
|
<Flex direction="column" gap={2}>
|
|
283
285
|
<Text size="xs" ff="monospace" fw={500}>
|
|
@@ -307,7 +309,6 @@ const AdminApiKeys = () => {
|
|
|
307
309
|
},
|
|
308
310
|
userId: {
|
|
309
311
|
label: "Owner",
|
|
310
|
-
fit: true,
|
|
311
312
|
value: (item) => (
|
|
312
313
|
<ActionButton
|
|
313
314
|
variant="subtle"
|
|
@@ -325,7 +326,6 @@ const AdminApiKeys = () => {
|
|
|
325
326
|
},
|
|
326
327
|
createdAt: {
|
|
327
328
|
label: "Created",
|
|
328
|
-
fit: true,
|
|
329
329
|
value: (item) => (
|
|
330
330
|
<Text size="xs" c="dimmed">
|
|
331
331
|
{l(item.createdAt, { date: "fromNow" })}
|
|
@@ -334,7 +334,6 @@ const AdminApiKeys = () => {
|
|
|
334
334
|
},
|
|
335
335
|
expiresAt: {
|
|
336
336
|
label: "Expires",
|
|
337
|
-
fit: true,
|
|
338
337
|
value: (item) => {
|
|
339
338
|
if (!item.expiresAt) {
|
|
340
339
|
return (
|
|
@@ -351,33 +350,16 @@ const AdminApiKeys = () => {
|
|
|
351
350
|
);
|
|
352
351
|
},
|
|
353
352
|
},
|
|
354
|
-
actions: {
|
|
355
|
-
label: "",
|
|
356
|
-
fit: true,
|
|
357
|
-
value: (item) => {
|
|
358
|
-
const status = getKeyStatus(item);
|
|
359
|
-
if (status === "revoked") {
|
|
360
|
-
return (
|
|
361
|
-
<Tooltip label="Already revoked">
|
|
362
|
-
<IconCheck size={14} color="var(--mantine-color-dimmed)" />
|
|
363
|
-
</Tooltip>
|
|
364
|
-
);
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
return (
|
|
368
|
-
<Tooltip label="Revoke key">
|
|
369
|
-
<ActionButton
|
|
370
|
-
size="xs"
|
|
371
|
-
variant="subtle"
|
|
372
|
-
onClick={() => handleRevoke(item)}
|
|
373
|
-
>
|
|
374
|
-
<IconTrash size={14} />
|
|
375
|
-
</ActionButton>
|
|
376
|
-
</Tooltip>
|
|
377
|
-
);
|
|
378
|
-
},
|
|
379
|
-
},
|
|
380
353
|
}}
|
|
354
|
+
rowActions={(item) => [
|
|
355
|
+
{
|
|
356
|
+
label: "Revoke key",
|
|
357
|
+
icon: IconTrash,
|
|
358
|
+
color: "red",
|
|
359
|
+
onClick: () => handleRevoke(item),
|
|
360
|
+
visible: getKeyStatus(item) === "active",
|
|
361
|
+
},
|
|
362
|
+
]}
|
|
381
363
|
/>
|
|
382
364
|
</Flex>
|
|
383
365
|
);
|