@plutonhq/core-frontend 0.1.32 → 0.1.33

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.
Files changed (126) hide show
  1. package/dist-lib/@types/plans.d.ts +4 -0
  2. package/dist-lib/@types/plans.d.ts.map +1 -1
  3. package/dist-lib/components/Plan/AddPlan/AddPlan.d.ts.map +1 -1
  4. package/dist-lib/components/Plan/AddPlan/AddPlan.js +29 -24
  5. package/dist-lib/components/Plan/AddPlan/AddPlan.js.map +1 -1
  6. package/dist-lib/components/Plan/BackupProgress/BackupProgress.js +34 -33
  7. package/dist-lib/components/Plan/BackupProgress/BackupProgress.js.map +1 -1
  8. package/dist-lib/components/Plan/FilterPlans/FilterPlans.d.ts +9 -0
  9. package/dist-lib/components/Plan/FilterPlans/FilterPlans.d.ts.map +1 -0
  10. package/dist-lib/components/Plan/FilterPlans/FilterPlans.js +117 -0
  11. package/dist-lib/components/Plan/FilterPlans/FilterPlans.js.map +1 -0
  12. package/dist-lib/components/Plan/FilterPlans/FilterPlans.module.scss.js +20 -0
  13. package/dist-lib/components/Plan/FilterPlans/FilterPlans.module.scss.js.map +1 -0
  14. package/dist-lib/components/Plan/PlanForm/PlanForm.d.ts +4 -2
  15. package/dist-lib/components/Plan/PlanForm/PlanForm.d.ts.map +1 -1
  16. package/dist-lib/components/Plan/PlanForm/PlanForm.js +33 -29
  17. package/dist-lib/components/Plan/PlanForm/PlanForm.js.map +1 -1
  18. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.d.ts +2 -1
  19. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.d.ts.map +1 -1
  20. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.js +85 -57
  21. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.js.map +1 -1
  22. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.module.scss.js +11 -9
  23. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.module.scss.js.map +1 -1
  24. package/dist-lib/components/Plan/PlanItems/PlanItem.js +1 -1
  25. package/dist-lib/components/Plan/PlanItems/PlanItem.js.map +1 -1
  26. package/dist-lib/components/Plan/PlanRepair/PlanRepair.d.ts +9 -0
  27. package/dist-lib/components/Plan/PlanRepair/PlanRepair.d.ts.map +1 -0
  28. package/dist-lib/components/Plan/PlanRepair/PlanRepair.js +262 -0
  29. package/dist-lib/components/Plan/PlanRepair/PlanRepair.js.map +1 -0
  30. package/dist-lib/components/Plan/PlanRepair/PlanRepair.module.scss.js +14 -0
  31. package/dist-lib/components/Plan/PlanRepair/PlanRepair.module.scss.js.map +1 -0
  32. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.d.ts +4 -2
  33. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.d.ts.map +1 -1
  34. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.js +24 -22
  35. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.js.map +1 -1
  36. package/dist-lib/components/Plan/PlanSettings/PlanGeneralSettings.d.ts +4 -2
  37. package/dist-lib/components/Plan/PlanSettings/PlanGeneralSettings.d.ts.map +1 -1
  38. package/dist-lib/components/Plan/PlanSettings/PlanGeneralSettings.js +39 -28
  39. package/dist-lib/components/Plan/PlanSettings/PlanGeneralSettings.js.map +1 -1
  40. package/dist-lib/components/Plan/PlanSettings/PlanSettings.module.scss.js +66 -64
  41. package/dist-lib/components/Plan/PlanSettings/PlanSettings.module.scss.js.map +1 -1
  42. package/dist-lib/components/Plan/PlanSizeChart/PlanSizeChart.d.ts +7 -0
  43. package/dist-lib/components/Plan/PlanSizeChart/PlanSizeChart.d.ts.map +1 -0
  44. package/dist-lib/components/Plan/PlanSizeChart/PlanSizeChart.js +116 -0
  45. package/dist-lib/components/Plan/PlanSizeChart/PlanSizeChart.js.map +1 -0
  46. package/dist-lib/components/Plan/PlanSizeChart/PlanSizeChart.module.scss.js +20 -0
  47. package/dist-lib/components/Plan/PlanSizeChart/PlanSizeChart.module.scss.js.map +1 -0
  48. package/dist-lib/components/Plan/PlanStats/PlanStats.d.ts.map +1 -1
  49. package/dist-lib/components/Plan/PlanStats/PlanStats.js +29 -30
  50. package/dist-lib/components/Plan/PlanStats/PlanStats.js.map +1 -1
  51. package/dist-lib/components/Plan/PlanStats/PlanStats.module.scss.js +16 -14
  52. package/dist-lib/components/Plan/PlanStats/PlanStats.module.scss.js.map +1 -1
  53. package/dist-lib/components/common/Icon/Icon.d.ts.map +1 -1
  54. package/dist-lib/components/common/Icon/Icon.js +395 -378
  55. package/dist-lib/components/common/Icon/Icon.js.map +1 -1
  56. package/dist-lib/components/common/SortItems/SortItems.d.ts +2 -1
  57. package/dist-lib/components/common/SortItems/SortItems.d.ts.map +1 -1
  58. package/dist-lib/components/common/SortItems/SortItems.js +14 -14
  59. package/dist-lib/components/common/SortItems/SortItems.js.map +1 -1
  60. package/dist-lib/components/common/SortItems/SortItems.module.scss.js +1 -1
  61. package/dist-lib/components/common/form/MultiSelect/MultiSelect.module.scss.js +16 -16
  62. package/dist-lib/components/index.d.ts +2 -0
  63. package/dist-lib/components/index.d.ts.map +1 -1
  64. package/dist-lib/components.js +199 -195
  65. package/dist-lib/components.js.map +1 -1
  66. package/dist-lib/hooks/usePlanSingleActions.d.ts.map +1 -1
  67. package/dist-lib/hooks/usePlanSingleActions.js +22 -19
  68. package/dist-lib/hooks/usePlanSingleActions.js.map +1 -1
  69. package/dist-lib/node_modules/.pnpm/@kurkle_color@0.3.4/node_modules/@kurkle/color/dist/color.esm.js +449 -0
  70. package/dist-lib/node_modules/.pnpm/@kurkle_color@0.3.4/node_modules/@kurkle/color/dist/color.esm.js.map +1 -0
  71. package/dist-lib/node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/chart.js +5219 -0
  72. package/dist-lib/node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/chart.js.map +1 -0
  73. package/dist-lib/node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/chunks/helpers.dataset.js +1691 -0
  74. package/dist-lib/node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/chunks/helpers.dataset.js.map +1 -0
  75. package/dist-lib/node_modules/.pnpm/react-chartjs-2@5.3.1_chart.js@4.5.1_react@18.3.1/node_modules/react-chartjs-2/dist/index.js +93 -0
  76. package/dist-lib/node_modules/.pnpm/react-chartjs-2@5.3.1_chart.js@4.5.1_react@18.3.1/node_modules/react-chartjs-2/dist/index.js.map +1 -0
  77. package/dist-lib/routes/Login/Login.d.ts.map +1 -1
  78. package/dist-lib/routes/Login/Login.js +45 -36
  79. package/dist-lib/routes/Login/Login.js.map +1 -1
  80. package/dist-lib/routes/PlanSingle/PlanSingle.d.ts.map +1 -1
  81. package/dist-lib/routes/PlanSingle/PlanSingle.js +131 -118
  82. package/dist-lib/routes/PlanSingle/PlanSingle.js.map +1 -1
  83. package/dist-lib/routes/Plans/Plans.d.ts.map +1 -1
  84. package/dist-lib/routes/Plans/Plans.js +77 -51
  85. package/dist-lib/routes/Plans/Plans.js.map +1 -1
  86. package/dist-lib/services/plans.d.ts +33 -5
  87. package/dist-lib/services/plans.d.ts.map +1 -1
  88. package/dist-lib/services/plans.js +92 -67
  89. package/dist-lib/services/plans.js.map +1 -1
  90. package/dist-lib/services.js +93 -91
  91. package/dist-lib/styles/core-frontend.css +1 -1
  92. package/dist-lib/utils/helpers.d.ts +2 -0
  93. package/dist-lib/utils/helpers.d.ts.map +1 -1
  94. package/dist-lib/utils/helpers.js +68 -42
  95. package/dist-lib/utils/helpers.js.map +1 -1
  96. package/dist-lib/utils.js +36 -34
  97. package/package.json +3 -1
  98. package/src/@types/plans.ts +5 -0
  99. package/src/components/Plan/AddPlan/AddPlan.tsx +22 -16
  100. package/src/components/Plan/BackupProgress/BackupProgress.tsx +1 -1
  101. package/src/components/Plan/FilterPlans/FilterPlans.module.scss +65 -0
  102. package/src/components/Plan/FilterPlans/FilterPlans.tsx +126 -0
  103. package/src/components/Plan/PlanForm/PlanForm.tsx +7 -1
  104. package/src/components/Plan/PlanIntegrity/PlanIntegrity.module.scss +19 -0
  105. package/src/components/Plan/PlanIntegrity/PlanIntegrity.tsx +40 -3
  106. package/src/components/Plan/PlanItems/PlanItem.tsx +1 -1
  107. package/src/components/Plan/PlanRepair/PlanRepair.module.scss +53 -0
  108. package/src/components/Plan/PlanRepair/PlanRepair.tsx +243 -0
  109. package/src/components/Plan/PlanSettings/PlanAdvancedSettings.tsx +6 -2
  110. package/src/components/Plan/PlanSettings/PlanGeneralSettings.tsx +14 -2
  111. package/src/components/Plan/PlanSettings/PlanSettings.module.scss +8 -0
  112. package/src/components/Plan/PlanSizeChart/PlanSizeChart.module.scss +76 -0
  113. package/src/components/Plan/PlanSizeChart/PlanSizeChart.tsx +163 -0
  114. package/src/components/Plan/PlanStats/PlanStats.module.scss +16 -2
  115. package/src/components/Plan/PlanStats/PlanStats.tsx +8 -11
  116. package/src/components/common/Icon/Icon.tsx +21 -0
  117. package/src/components/common/SortItems/SortItems.module.scss +3 -2
  118. package/src/components/common/SortItems/SortItems.tsx +6 -3
  119. package/src/components/common/form/MultiSelect/MultiSelect.module.scss +1 -0
  120. package/src/components/index.ts +2 -0
  121. package/src/hooks/usePlanSingleActions.tsx +26 -23
  122. package/src/routes/Login/Login.tsx +8 -2
  123. package/src/routes/PlanSingle/PlanSingle.tsx +17 -0
  124. package/src/routes/Plans/Plans.tsx +70 -35
  125. package/src/services/plans.ts +40 -4
  126. package/src/utils/helpers.ts +25 -0
@@ -1,13 +1,13 @@
1
1
  import { jsxs as a, jsx as s } from "react/jsx-runtime";
2
2
  import { useState as p } from "react";
3
3
  import r from "./Login.module.scss.js";
4
- import h from "../../components/common/Logo/Logo.js";
5
- import { APP_NAME as f } from "../../utils/constants.js";
6
- import c from "../../components/common/Icon/Icon.js";
4
+ import f from "../../components/common/Logo/Logo.js";
5
+ import { APP_NAME as h } from "../../utils/constants.js";
6
+ import u from "../../components/common/Icon/Icon.js";
7
7
  import { useLogin as w } from "../../services/users.js";
8
8
  import y from "../../components/App/PageTitle/PageTitle.js";
9
9
  const C = () => {
10
- const [o, i] = p(null), [n, d] = p(""), [t, u] = p(""), l = w(), g = () => {
10
+ const [o, i] = p(null), [n, d] = p(""), [t, g] = p(""), l = w(), c = () => {
11
11
  if (!n || !t) {
12
12
  let e = null;
13
13
  !n && !t && (e = { type: "empty_username_password", msg: "Please Insert Your App Username & Password to login." }), !n && t && (e = { type: "empty_username", msg: "Please Insert Your App Username" }), !t && n && (e = { type: "empty_password", msg: "Please Insert Your App Password" }), i(e), setTimeout(() => {
@@ -30,40 +30,49 @@ const C = () => {
30
30
  return /* @__PURE__ */ a("div", { className: r.loginPage, children: [
31
31
  /* @__PURE__ */ s(y, { title: "Login" }),
32
32
  /* @__PURE__ */ s("div", { className: r.loginLogo, children: /* @__PURE__ */ a("h3", { children: [
33
- /* @__PURE__ */ s(h, { size: 36 }),
33
+ /* @__PURE__ */ s(f, { size: 36 }),
34
34
  " ",
35
- /* @__PURE__ */ s("span", { children: f })
35
+ /* @__PURE__ */ s("span", { children: h })
36
36
  ] }) }),
37
- /* @__PURE__ */ s("div", { className: r.container, children: /* @__PURE__ */ a("div", { className: "loginForm", children: [
38
- /* @__PURE__ */ a("div", { className: r.loginInput, children: [
39
- /* @__PURE__ */ s(c, { type: "user", classes: r.loginInputIcon }),
40
- /* @__PURE__ */ s(
41
- "input",
42
- {
43
- className: `${o && o.type.includes("username") ? "inputError" : ""}`,
44
- type: "text",
45
- value: n,
46
- placeholder: "Username",
47
- onChange: (e) => d(e.target.value)
48
- }
49
- )
50
- ] }),
51
- /* @__PURE__ */ a("div", { className: r.loginInput, children: [
52
- /* @__PURE__ */ s(c, { type: "password", classes: r.loginInputIcon }),
53
- /* @__PURE__ */ s(
54
- "input",
55
- {
56
- className: `${o && o.type.includes("password") ? "inputError" : ""}`,
57
- type: "password",
58
- value: t,
59
- placeholder: "Password",
60
- onChange: (e) => u(e.target.value)
61
- }
62
- )
63
- ] }),
64
- /* @__PURE__ */ s("button", { className: r.loginButton, onClick: g, disabled: l.isPending, children: l.isPending ? "Logging in..." : "Login" }),
65
- o && o.msg && /* @__PURE__ */ s("div", { className: r.loginErrorMsg, children: o.msg })
66
- ] }) })
37
+ /* @__PURE__ */ s("div", { className: r.container, children: /* @__PURE__ */ a(
38
+ "form",
39
+ {
40
+ className: "loginForm",
41
+ onSubmit: (e) => {
42
+ e.preventDefault(), c();
43
+ },
44
+ children: [
45
+ /* @__PURE__ */ a("div", { className: r.loginInput, children: [
46
+ /* @__PURE__ */ s(u, { type: "user", classes: r.loginInputIcon }),
47
+ /* @__PURE__ */ s(
48
+ "input",
49
+ {
50
+ className: `${o && o.type.includes("username") ? "inputError" : ""}`,
51
+ type: "text",
52
+ value: n,
53
+ placeholder: "Username",
54
+ onChange: (e) => d(e.target.value)
55
+ }
56
+ )
57
+ ] }),
58
+ /* @__PURE__ */ a("div", { className: r.loginInput, children: [
59
+ /* @__PURE__ */ s(u, { type: "password", classes: r.loginInputIcon }),
60
+ /* @__PURE__ */ s(
61
+ "input",
62
+ {
63
+ className: `${o && o.type.includes("password") ? "inputError" : ""}`,
64
+ type: "password",
65
+ value: t,
66
+ placeholder: "Password",
67
+ onChange: (e) => g(e.target.value)
68
+ }
69
+ )
70
+ ] }),
71
+ /* @__PURE__ */ s("button", { className: r.loginButton, onClick: c, disabled: l.isPending, children: l.isPending ? "Logging in..." : "Login" }),
72
+ o && o.msg && /* @__PURE__ */ s("div", { className: r.loginErrorMsg, children: o.msg })
73
+ ]
74
+ }
75
+ ) })
67
76
  ] });
68
77
  };
69
78
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"Login.js","sources":["../../../src/routes/Login/Login.tsx"],"sourcesContent":["import { useState } from 'react';\r\nimport classes from './Login.module.scss';\r\nimport Logo from '../../components/common/Logo/Logo';\r\nimport { APP_NAME } from '../../utils/constants';\r\nimport Icon from '../../components/common/Icon/Icon';\r\nimport { useLogin } from '../../services/users';\r\nimport PageTitle from '../../components/App/PageTitle/PageTitle';\r\n\r\nconst Login = () => {\r\n const [error, setError] = useState<LoginError | null>(null);\r\n const [username, setUsername] = useState<string>('');\r\n const [password, setPassword] = useState<string>('');\r\n const loginMutation = useLogin();\r\n\r\n type LoginError = {\r\n type: string;\r\n msg: string;\r\n };\r\n\r\n const handleLogin = () => {\r\n if (!username || !password) {\r\n let loginError: LoginError | null = null;\r\n if (!username && !password) {\r\n loginError = { type: 'empty_username_password', msg: 'Please Insert Your App Username & Password to login.' };\r\n }\r\n if (!username && password) {\r\n loginError = { type: 'empty_username', msg: 'Please Insert Your App Username' };\r\n }\r\n if (!password && username) {\r\n loginError = { type: 'empty_password', msg: 'Please Insert Your App Password' };\r\n }\r\n setError(loginError);\r\n setTimeout(() => {\r\n setError(null);\r\n }, 5000);\r\n return;\r\n }\r\n\r\n loginMutation.mutate(\r\n { username, password },\r\n {\r\n onError: (error: Error) => {\r\n let errorType = '';\r\n if (error.message.toLowerCase().includes('username')) {\r\n errorType = 'incorrect_username';\r\n }\r\n if (error.message.toLowerCase().includes('password')) {\r\n errorType = 'incorrect_password';\r\n }\r\n setError({ type: errorType, msg: error.message });\r\n setTimeout(() => {\r\n setError(null);\r\n }, 5000);\r\n },\r\n },\r\n );\r\n };\r\n\r\n return (\r\n <div className={classes.loginPage}>\r\n <PageTitle title={`Login`} />\r\n <div className={classes.loginLogo}>\r\n <h3>\r\n <Logo size={36} /> <span>{APP_NAME}</span>\r\n </h3>\r\n </div>\r\n <div className={classes.container}>\r\n <div className=\"loginForm\">\r\n <div className={classes.loginInput}>\r\n <Icon type=\"user\" classes={classes.loginInputIcon} />\r\n <input\r\n className={`${error && error.type.includes('username') ? 'inputError' : ''}`}\r\n type=\"text\"\r\n value={username}\r\n placeholder=\"Username\"\r\n onChange={(event) => setUsername(event.target.value)}\r\n />\r\n </div>\r\n <div className={classes.loginInput}>\r\n <Icon type=\"password\" classes={classes.loginInputIcon} />\r\n <input\r\n className={`${error && error.type.includes('password') ? 'inputError' : ''}`}\r\n type=\"password\"\r\n value={password}\r\n placeholder=\"Password\"\r\n onChange={(event) => setPassword(event.target.value)}\r\n />\r\n </div>\r\n <button className={classes.loginButton} onClick={handleLogin} disabled={loginMutation.isPending}>\r\n {loginMutation.isPending ? 'Logging in...' : 'Login'}\r\n </button>\r\n {error && error.msg && <div className={classes.loginErrorMsg}>{error.msg}</div>}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Login;\r\n"],"names":["Login","error","setError","useState","username","setUsername","password","setPassword","loginMutation","useLogin","handleLogin","loginError","errorType","jsxs","classes","jsx","PageTitle","Logo","APP_NAME","Icon","event"],"mappings":"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"}
1
+ {"version":3,"file":"Login.js","sources":["../../../src/routes/Login/Login.tsx"],"sourcesContent":["import { useState } from 'react';\r\nimport classes from './Login.module.scss';\r\nimport Logo from '../../components/common/Logo/Logo';\r\nimport { APP_NAME } from '../../utils/constants';\r\nimport Icon from '../../components/common/Icon/Icon';\r\nimport { useLogin } from '../../services/users';\r\nimport PageTitle from '../../components/App/PageTitle/PageTitle';\r\n\r\nconst Login = () => {\r\n const [error, setError] = useState<LoginError | null>(null);\r\n const [username, setUsername] = useState<string>('');\r\n const [password, setPassword] = useState<string>('');\r\n const loginMutation = useLogin();\r\n\r\n type LoginError = {\r\n type: string;\r\n msg: string;\r\n };\r\n\r\n const handleLogin = () => {\r\n if (!username || !password) {\r\n let loginError: LoginError | null = null;\r\n if (!username && !password) {\r\n loginError = { type: 'empty_username_password', msg: 'Please Insert Your App Username & Password to login.' };\r\n }\r\n if (!username && password) {\r\n loginError = { type: 'empty_username', msg: 'Please Insert Your App Username' };\r\n }\r\n if (!password && username) {\r\n loginError = { type: 'empty_password', msg: 'Please Insert Your App Password' };\r\n }\r\n setError(loginError);\r\n setTimeout(() => {\r\n setError(null);\r\n }, 5000);\r\n return;\r\n }\r\n\r\n loginMutation.mutate(\r\n { username, password },\r\n {\r\n onError: (error: Error) => {\r\n let errorType = '';\r\n if (error.message.toLowerCase().includes('username')) {\r\n errorType = 'incorrect_username';\r\n }\r\n if (error.message.toLowerCase().includes('password')) {\r\n errorType = 'incorrect_password';\r\n }\r\n setError({ type: errorType, msg: error.message });\r\n setTimeout(() => {\r\n setError(null);\r\n }, 5000);\r\n },\r\n },\r\n );\r\n };\r\n\r\n return (\r\n <div className={classes.loginPage}>\r\n <PageTitle title={`Login`} />\r\n <div className={classes.loginLogo}>\r\n <h3>\r\n <Logo size={36} /> <span>{APP_NAME}</span>\r\n </h3>\r\n </div>\r\n <div className={classes.container}>\r\n <form\r\n className=\"loginForm\"\r\n onSubmit={(e) => {\r\n e.preventDefault();\r\n handleLogin();\r\n }}\r\n >\r\n <div className={classes.loginInput}>\r\n <Icon type=\"user\" classes={classes.loginInputIcon} />\r\n <input\r\n className={`${error && error.type.includes('username') ? 'inputError' : ''}`}\r\n type=\"text\"\r\n value={username}\r\n placeholder=\"Username\"\r\n onChange={(event) => setUsername(event.target.value)}\r\n />\r\n </div>\r\n <div className={classes.loginInput}>\r\n <Icon type=\"password\" classes={classes.loginInputIcon} />\r\n <input\r\n className={`${error && error.type.includes('password') ? 'inputError' : ''}`}\r\n type=\"password\"\r\n value={password}\r\n placeholder=\"Password\"\r\n onChange={(event) => setPassword(event.target.value)}\r\n />\r\n </div>\r\n <button className={classes.loginButton} onClick={handleLogin} disabled={loginMutation.isPending}>\r\n {loginMutation.isPending ? 'Logging in...' : 'Login'}\r\n </button>\r\n {error && error.msg && <div className={classes.loginErrorMsg}>{error.msg}</div>}\r\n </form>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Login;\r\n"],"names":["Login","error","setError","useState","username","setUsername","password","setPassword","loginMutation","useLogin","handleLogin","loginError","errorType","jsxs","classes","jsx","PageTitle","Logo","APP_NAME","Icon","event"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlanSingle.d.ts","sourceRoot":"","sources":["../../../src/routes/PlanSingle/PlanSingle.tsx"],"names":[],"mappings":"AAkBA,QAAA,MAAM,UAAU,+CAiMf,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"PlanSingle.d.ts","sourceRoot":"","sources":["../../../src/routes/PlanSingle/PlanSingle.tsx"],"names":[],"mappings":"AAoBA,QAAA,MAAM,UAAU,+CAgNf,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,150 +1,151 @@
1
- import { jsx as e, jsxs as o, Fragment as C } from "react/jsx-runtime";
2
- import { useState as B } from "react";
3
- import { useParams as W, useSearchParams as X } from "react-router";
4
- import Y from "../../components/common/PageHeader/PageHeader.js";
5
- import n from "../../components/common/Icon/Icon.js";
6
- import Z from "../../components/Plan/EditPlan/EditPlan.js";
7
- import _ from "../../components/Plan/PlanLogs/PlanLogs.js";
8
- import { useComponentOverride as ee } from "../../context/ComponentOverrideContext.js";
9
- import te from "../../components/Plan/PlanStats/PlanStats.js";
10
- import { usePlanSingleActions as oe } from "../../hooks/usePlanSingleActions.js";
11
- import t from "./PlanSingle.module.scss.js";
12
- import se from "../../components/common/NotFound/NotFound.js";
13
- import ne from "../../components/Plan/PlanPruneModal/PlanPruneModal.js";
14
- import ae from "../../components/Plan/PlanUnlockModal/PlanUnlockModal.js";
15
- import ie from "../../components/Plan/PlanRemoveModal/PlanRemoveModal.js";
16
- import le from "../../components/Plan/PlanProgress/PlanProgress.js";
17
- import re from "../../components/Plan/PlanBackups/PlanBackups.js";
18
- import ce from "../../components/Plan/PlanIntegrity/PlanIntegrity.js";
19
- const Ie = () => {
20
- var M, N;
21
- const [h, a] = B(!1), [b, d] = B(!1), { id: i } = W(), z = ee("EditPlan", Z), [u] = X(), I = u.get("pendingbackup") === "1", v = u.get("pendingrestore") === "1", {
22
- showDeleteModal: E,
23
- setShowDeleteModal: g,
24
- showEditModal: L,
25
- setShowEditModal: f,
26
- showPruneModal: R,
27
- setShowPruneModal: P,
28
- showLogsModal: U,
29
- setShowLogsModal: k,
30
- showUnlockModal: $,
31
- setShowUnlockModal: y,
32
- plan: s,
33
- isLoading: D,
34
- refetchPlan: O,
35
- activeBackups: T,
36
- activeRestores: x,
37
- lastBackupItem: A,
38
- taskPending: r,
39
- planError: p,
40
- actionInProgress: j,
41
- changeStatus: F,
42
- backupNow: H
43
- } = oe(), V = p == null ? void 0 : p.status;
44
- if (!i || V === 404)
45
- return /* @__PURE__ */ e(se, { name: "Plan", link: "/" });
1
+ import { jsx as e, jsxs as t, Fragment as z } from "react/jsx-runtime";
2
+ import { useState as h } from "react";
3
+ import { useParams as ee, useSearchParams as oe } from "react-router";
4
+ import te from "../../components/common/PageHeader/PageHeader.js";
5
+ import s from "../../components/common/Icon/Icon.js";
6
+ import ne from "../../components/Plan/EditPlan/EditPlan.js";
7
+ import se from "../../components/Plan/PlanLogs/PlanLogs.js";
8
+ import { useComponentOverride as ae } from "../../context/ComponentOverrideContext.js";
9
+ import ie from "../../components/Plan/PlanStats/PlanStats.js";
10
+ import { usePlanSingleActions as le } from "../../hooks/usePlanSingleActions.js";
11
+ import o from "./PlanSingle.module.scss.js";
12
+ import re from "../../components/common/NotFound/NotFound.js";
13
+ import ce from "../../components/Plan/PlanPruneModal/PlanPruneModal.js";
14
+ import pe from "../../components/Plan/PlanUnlockModal/PlanUnlockModal.js";
15
+ import de from "../../components/Plan/PlanRemoveModal/PlanRemoveModal.js";
16
+ import me from "../../components/Plan/PlanProgress/PlanProgress.js";
17
+ import he from "../../components/Plan/PlanBackups/PlanBackups.js";
18
+ import ue from "../../components/Plan/PlanIntegrity/PlanIntegrity.js";
19
+ import ge from "../../components/Plan/PlanRepair/PlanRepair.js";
20
+ const Ue = () => {
21
+ var N, C, B, I;
22
+ const [u, a] = h(!1), [R, r] = h(!1), [g, f] = h(""), { id: i } = ee(), E = ae("EditPlan", ne), [P] = oe(), O = P.get("pendingbackup") === "1", T = P.get("pendingrestore") === "1", {
23
+ showDeleteModal: L,
24
+ setShowDeleteModal: y,
25
+ showEditModal: U,
26
+ setShowEditModal: k,
27
+ showPruneModal: $,
28
+ setShowPruneModal: w,
29
+ showLogsModal: D,
30
+ setShowLogsModal: S,
31
+ showUnlockModal: x,
32
+ setShowUnlockModal: M,
33
+ plan: n,
34
+ isLoading: A,
35
+ refetchPlan: j,
36
+ activeBackups: F,
37
+ activeRestores: H,
38
+ lastBackupItem: V,
39
+ taskPending: c,
40
+ planError: d,
41
+ actionInProgress: q,
42
+ changeStatus: G,
43
+ backupNow: J
44
+ } = le(), K = d == null ? void 0 : d.status;
45
+ if (!i || K === 404)
46
+ return /* @__PURE__ */ e(re, { name: "Plan", link: "/" });
46
47
  {
47
- if (D)
48
- return /* @__PURE__ */ e("div", { className: "loadingScreen", children: /* @__PURE__ */ e(n, { size: 60, type: "loading" }) });
49
- const { isActive: c, method: q, title: S, description: w, verified: m, stats: G, settings: J } = s, K = J.prune, Q = ((M = G.snapshots) == null ? void 0 : M.length) || 0, l = q === "sync";
50
- return /* @__PURE__ */ o("div", { className: t.planSingle, children: [
48
+ if (A)
49
+ return /* @__PURE__ */ e("div", { className: "loadingScreen", children: /* @__PURE__ */ e(s, { size: 60, type: "loading" }) });
50
+ const { isActive: p, method: Q, title: b, description: v, verified: m, stats: W, settings: X } = n, Y = X.prune, Z = ((N = W.snapshots) == null ? void 0 : N.length) || 0, l = Q === "sync";
51
+ return /* @__PURE__ */ t("div", { className: o.planSingle, children: [
51
52
  /* @__PURE__ */ e(
52
- Y,
53
+ te,
53
54
  {
54
- title: /* @__PURE__ */ o(C, { children: [
55
- S,
55
+ title: /* @__PURE__ */ t(z, { children: [
56
+ b,
56
57
  " ",
57
- w && /* @__PURE__ */ e("span", { className: t.planDescription, "data-tooltip-id": "appTooltip", "data-tooltip-content": w, children: /* @__PURE__ */ e(n, { type: "note", size: 13 }) }),
58
- !c && /* @__PURE__ */ o("span", { className: "label warn", children: [
59
- /* @__PURE__ */ e(n, { size: 14, type: "pause", color: "#bf8d20" }),
58
+ v && /* @__PURE__ */ e("span", { className: o.planDescription, "data-tooltip-id": "appTooltip", "data-tooltip-content": v, children: /* @__PURE__ */ e(s, { type: "note", size: 13 }) }),
59
+ !p && /* @__PURE__ */ t("span", { className: "label warn", children: [
60
+ /* @__PURE__ */ e(s, { size: 14, type: "pause", color: "#bf8d20" }),
60
61
  " Paused"
61
62
  ] }),
62
- (m == null ? void 0 : m.hasError) && /* @__PURE__ */ o("span", { className: `label error ${t.planError}`, onClick: () => d(!0), children: [
63
- /* @__PURE__ */ e(n, { size: 14, type: "error-circle-filled", color: "#dd6b6b" }),
63
+ (m == null ? void 0 : m.hasError) && /* @__PURE__ */ t("span", { className: `label error ${o.planError}`, onClick: () => r(!0), children: [
64
+ /* @__PURE__ */ e(s, { size: 14, type: "error-circle-filled", color: "#dd6b6b" }),
64
65
  " Integrity Error"
65
66
  ] })
66
67
  ] }),
67
- pageTitle: S,
68
+ pageTitle: b,
68
69
  icon: "plans",
69
- rightSection: /* @__PURE__ */ e(C, { children: /* @__PURE__ */ o("div", { className: t.planActions, children: [
70
- /* @__PURE__ */ o("button", { className: t.actionBtn, onClick: H, children: [
71
- /* @__PURE__ */ e(n, { size: 14, type: l ? "sync" : "backup" }),
70
+ rightSection: /* @__PURE__ */ e(z, { children: /* @__PURE__ */ t("div", { className: o.planActions, children: [
71
+ /* @__PURE__ */ t("button", { className: o.actionBtn, onClick: J, children: [
72
+ /* @__PURE__ */ e(s, { size: 14, type: l ? "sync" : "backup" }),
72
73
  " ",
73
74
  l ? "Sync" : "Backup",
74
75
  " Now"
75
76
  ] }),
76
- /* @__PURE__ */ o("button", { className: `${t.actionBtn} ${c ? "" : t.actionBtnHighlight}`, onClick: F, children: [
77
- /* @__PURE__ */ e(n, { size: 14, type: c ? "pause" : "resume" }),
77
+ /* @__PURE__ */ t("button", { className: `${o.actionBtn} ${p ? "" : o.actionBtnHighlight}`, onClick: G, children: [
78
+ /* @__PURE__ */ e(s, { size: 14, type: p ? "pause" : "resume" }),
78
79
  " ",
79
- c ? "Pause" : "Resume"
80
+ p ? "Pause" : "Resume"
80
81
  ] }),
81
- /* @__PURE__ */ o("button", { className: t.actionBtn, onClick: () => f(!0), children: [
82
- /* @__PURE__ */ e(n, { size: 14, type: "edit-settings" }),
82
+ /* @__PURE__ */ t("button", { className: o.actionBtn, onClick: () => k(!0), children: [
83
+ /* @__PURE__ */ e(s, { size: 14, type: "edit-settings" }),
83
84
  " Edit"
84
85
  ] }),
85
- /* @__PURE__ */ e("button", { className: `${t.actionBtn} ${t.actionMoreBtn}`, onClick: () => a(!h), children: /* @__PURE__ */ e(n, { size: 14, type: "dots-vertical" }) }),
86
- h && /* @__PURE__ */ o("ul", { className: t.moreOptions, children: [
87
- /* @__PURE__ */ o(
86
+ /* @__PURE__ */ e("button", { className: `${o.actionBtn} ${o.actionMoreBtn}`, onClick: () => a(!u), children: /* @__PURE__ */ e(s, { size: 14, type: "dots-vertical" }) }),
87
+ u && /* @__PURE__ */ t("ul", { className: o.moreOptions, children: [
88
+ /* @__PURE__ */ t(
88
89
  "li",
89
90
  {
90
- className: t.actionBtn,
91
+ className: o.actionBtn,
91
92
  onClick: () => {
92
- P(!0), a(!1);
93
+ w(!0), a(!1);
93
94
  },
94
95
  children: [
95
- /* @__PURE__ */ e(n, { size: 14, type: "prune" }),
96
+ /* @__PURE__ */ e(s, { size: 14, type: "prune" }),
96
97
  " Clean Up"
97
98
  ]
98
99
  }
99
100
  ),
100
- !l && /* @__PURE__ */ o(
101
+ !l && /* @__PURE__ */ t(
101
102
  "li",
102
103
  {
103
- className: t.actionBtn,
104
+ className: o.actionBtn,
104
105
  onClick: () => {
105
- y(!0), a(!1);
106
+ M(!0), a(!1);
106
107
  },
107
108
  children: [
108
- /* @__PURE__ */ e(n, { size: 14, type: "unlock" }),
109
+ /* @__PURE__ */ e(s, { size: 14, type: "unlock" }),
109
110
  " Unlock"
110
111
  ]
111
112
  }
112
113
  ),
113
- /* @__PURE__ */ o(
114
+ /* @__PURE__ */ t(
114
115
  "li",
115
116
  {
116
- className: t.actionBtn,
117
+ className: o.actionBtn,
117
118
  onClick: () => {
118
- d(!0), a(!1);
119
+ r(!0), a(!1);
119
120
  },
120
121
  children: [
121
- /* @__PURE__ */ e(n, { size: 14, type: "integrity" }),
122
+ /* @__PURE__ */ e(s, { size: 14, type: "integrity" }),
122
123
  " Check Integrity"
123
124
  ]
124
125
  }
125
126
  ),
126
- /* @__PURE__ */ o(
127
+ /* @__PURE__ */ t(
127
128
  "li",
128
129
  {
129
- className: t.actionBtn,
130
+ className: o.actionBtn,
130
131
  onClick: () => {
131
- k(!0), a(!1);
132
+ S(!0), a(!1);
132
133
  },
133
134
  children: [
134
- /* @__PURE__ */ e(n, { size: 14, type: "logs" }),
135
+ /* @__PURE__ */ e(s, { size: 14, type: "logs" }),
135
136
  " View Logs"
136
137
  ]
137
138
  }
138
139
  ),
139
- /* @__PURE__ */ o(
140
+ /* @__PURE__ */ t(
140
141
  "li",
141
142
  {
142
- className: t.actionBtn,
143
+ className: o.actionBtn,
143
144
  onClick: () => {
144
- g(!0), a(!1);
145
+ y(!0), a(!1);
145
146
  },
146
147
  children: [
147
- /* @__PURE__ */ e(n, { size: 14, type: "trash" }),
148
+ /* @__PURE__ */ e(s, { size: 14, type: "trash" }),
148
149
  " Remove"
149
150
  ]
150
151
  }
@@ -153,51 +154,63 @@ const Ie = () => {
153
154
  ] }) })
154
155
  }
155
156
  ),
156
- /* @__PURE__ */ o("div", { className: t.planContent, children: [
157
- /* @__PURE__ */ e(te, { plan: s, isSync: l, lastBackupItem: A }),
157
+ /* @__PURE__ */ t("div", { className: o.planContent, children: [
158
+ /* @__PURE__ */ e(ie, { plan: n, isSync: l, lastBackupItem: V }),
158
159
  /* @__PURE__ */ e(
159
- le,
160
+ me,
160
161
  {
161
- plan: s,
162
- isBackupPending: I,
163
- isRestorePending: v,
164
- activeBackups: T,
165
- activeRestores: x,
166
- refetchPlan: O
162
+ plan: n,
163
+ isBackupPending: O,
164
+ isRestorePending: T,
165
+ activeBackups: F,
166
+ activeRestores: H,
167
+ refetchPlan: j
167
168
  }
168
169
  ),
169
- /* @__PURE__ */ e(re, { plan: s })
170
+ /* @__PURE__ */ e(he, { plan: n })
170
171
  ] }),
171
- R && /* @__PURE__ */ e(
172
- ne,
172
+ $ && /* @__PURE__ */ e(
173
+ ce,
173
174
  {
174
175
  planId: i,
175
- method: s.method,
176
- prune: K,
177
- snapshotsCount: Q,
178
- taskPending: r,
179
- close: () => P(!1)
176
+ method: n.method,
177
+ prune: Y,
178
+ snapshotsCount: Z,
179
+ taskPending: c,
180
+ close: () => w(!1)
180
181
  }
181
182
  ),
182
- b && !l && /* @__PURE__ */ e(
183
- ce,
183
+ R && !l && /* @__PURE__ */ e(
184
+ ue,
184
185
  {
185
- planId: s.id,
186
- taskPending: r,
187
- verificationData: s.verified,
188
- storage: s.storage,
189
- replicationStorages: (N = s.settings.replication) != null && N.enabled ? s.settings.replication.storages : [],
190
- onClose: () => d(!1)
186
+ planId: n.id,
187
+ taskPending: c,
188
+ verificationData: n.verified,
189
+ storage: n.storage,
190
+ replicationStorages: (C = n.settings.replication) != null && C.enabled ? n.settings.replication.storages : [],
191
+ onClose: () => r(!1),
192
+ onRepairOpen: (_) => {
193
+ r(!1), f(_);
194
+ }
195
+ }
196
+ ),
197
+ g && !l && /* @__PURE__ */ e(
198
+ ge,
199
+ {
200
+ planId: i,
201
+ errorType: ((I = (B = n.verified) == null ? void 0 : B.result[g]) == null ? void 0 : I.errorType) || "unknown",
202
+ onClose: () => f(""),
203
+ onOpenIntegrity: () => r(!0)
191
204
  }
192
205
  ),
193
- E && /* @__PURE__ */ e(ie, { planId: i, taskPending: r, actionInProgress: j, close: () => g(!1) }),
194
- $ && /* @__PURE__ */ e(ae, { planId: i, taskPending: r, close: () => y(!1) }),
195
- L && /* @__PURE__ */ e(z, { plan: s, close: () => f(!1) }),
196
- U && /* @__PURE__ */ e(_, { planId: i, planMethod: s.method, sourceType: s.sourceType, close: () => k(!1) })
206
+ L && /* @__PURE__ */ e(de, { planId: i, taskPending: c, actionInProgress: q, close: () => y(!1) }),
207
+ x && /* @__PURE__ */ e(pe, { planId: i, taskPending: c, close: () => M(!1) }),
208
+ U && /* @__PURE__ */ e(E, { plan: n, close: () => k(!1) }),
209
+ D && /* @__PURE__ */ e(se, { planId: i, planMethod: n.method, sourceType: n.sourceType, close: () => S(!1) })
197
210
  ] });
198
211
  }
199
212
  };
200
213
  export {
201
- Ie as default
214
+ Ue as default
202
215
  };
203
216
  //# sourceMappingURL=PlanSingle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlanSingle.js","sources":["../../../src/routes/PlanSingle/PlanSingle.tsx"],"sourcesContent":["import { useState } from 'react';\r\nimport { useParams, useSearchParams } from 'react-router';\r\nimport PageHeader from '../../components/common/PageHeader/PageHeader';\r\nimport Icon from '../../components/common/Icon/Icon';\r\nimport EditPlan from '../../components/Plan/EditPlan/EditPlan';\r\nimport PlanLogs from '../../components/Plan/PlanLogs/PlanLogs';\r\nimport { useComponentOverride } from '../../context/ComponentOverrideContext';\r\nimport PlanStats from '../../components/Plan/PlanStats/PlanStats';\r\nimport { usePlanSingleActions } from '../../hooks/usePlanSingleActions';\r\nimport classes from './PlanSingle.module.scss';\r\nimport NotFound from '../../components/common/NotFound/NotFound';\r\nimport PlanPruneModal from '../../components/Plan/PlanPruneModal/PlanPruneModal';\r\nimport PlanUnlockModal from '../../components/Plan/PlanUnlockModal/PlanUnlockModal';\r\nimport PlanRemoveModal from '../../components/Plan/PlanRemoveModal/PlanRemoveModal';\r\nimport PlanProgress from '../../components/Plan/PlanProgress/PlanProgress';\r\nimport PlanBackups from '../../components/Plan/PlanBackups/PlanBackups';\r\nimport PlanIntegrity from '../../components/Plan/PlanIntegrity/PlanIntegrity';\r\n\r\nconst PlanSingle = () => {\r\n const [showMoreOptions, setShowMoreOptions] = useState(false);\r\n const [showIntegrityModal, setShowIntegrityModal] = useState(false);\r\n const { id } = useParams();\r\n\r\n const EditPlanModal = useComponentOverride('EditPlan', EditPlan);\r\n\r\n const [searchParams] = useSearchParams();\r\n const isBackupPending = searchParams.get('pendingbackup') === '1';\r\n const isRestorePending = searchParams.get('pendingrestore') === '1';\r\n\r\n const {\r\n showDeleteModal,\r\n setShowDeleteModal,\r\n showEditModal,\r\n setShowEditModal,\r\n showPruneModal,\r\n setShowPruneModal,\r\n showLogsModal,\r\n setShowLogsModal,\r\n showUnlockModal,\r\n setShowUnlockModal,\r\n\r\n plan,\r\n isLoading,\r\n refetchPlan,\r\n activeBackups,\r\n activeRestores,\r\n lastBackupItem,\r\n taskPending,\r\n planError,\r\n actionInProgress,\r\n changeStatus,\r\n backupNow,\r\n } = usePlanSingleActions();\r\n\r\n // const errorMessage = planError?.message;\r\n const errorStatusCode = (planError as Error & { status?: number })?.status;\r\n if (!id || errorStatusCode === 404) {\r\n return <NotFound name=\"Plan\" link=\"/\" />;\r\n } else {\r\n if (isLoading) {\r\n return (\r\n <div className=\"loadingScreen\">\r\n <Icon size={60} type=\"loading\" />\r\n </div>\r\n );\r\n }\r\n\r\n const { isActive, method, title, description, verified, stats, settings } = plan;\r\n const prune = settings.prune;\r\n const snapshotsCount = stats.snapshots?.length || 0;\r\n const isSync = method === 'sync';\r\n\r\n return (\r\n <div className={classes.planSingle}>\r\n <PageHeader\r\n title={\r\n <>\r\n {title}{' '}\r\n {description && (\r\n <span className={classes.planDescription} data-tooltip-id=\"appTooltip\" data-tooltip-content={description}>\r\n <Icon type=\"note\" size={13} />\r\n </span>\r\n )}\r\n {!isActive && (\r\n <span className=\"label warn\">\r\n <Icon size={14} type={'pause'} color=\"#bf8d20\" /> Paused\r\n </span>\r\n )}\r\n {verified?.hasError && (\r\n <span className={`label error ${classes.planError}`} onClick={() => setShowIntegrityModal(true)}>\r\n <Icon size={14} type={'error-circle-filled'} color=\"#dd6b6b\" /> Integrity Error\r\n </span>\r\n )}\r\n </>\r\n }\r\n pageTitle={title}\r\n icon=\"plans\"\r\n rightSection={\r\n <>\r\n <div className={classes.planActions}>\r\n <button className={classes.actionBtn} onClick={backupNow}>\r\n <Icon size={14} type={isSync ? 'sync' : 'backup'} /> {isSync ? 'Sync' : 'Backup'} Now\r\n </button>\r\n <button className={`${classes.actionBtn} ${!isActive ? classes.actionBtnHighlight : ''}`} onClick={changeStatus}>\r\n <Icon size={14} type={isActive ? 'pause' : 'resume'} /> {isActive ? 'Pause' : 'Resume'}\r\n </button>\r\n <button className={classes.actionBtn} onClick={() => setShowEditModal(true)}>\r\n <Icon size={14} type=\"edit-settings\" /> Edit\r\n </button>\r\n <button className={`${classes.actionBtn} ${classes.actionMoreBtn}`} onClick={() => setShowMoreOptions(!showMoreOptions)}>\r\n <Icon size={14} type=\"dots-vertical\" />\r\n </button>\r\n\r\n {showMoreOptions && (\r\n <ul className={classes.moreOptions}>\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowPruneModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"prune\" /> Clean Up\r\n </li>\r\n {!isSync && (\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowUnlockModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"unlock\" /> Unlock\r\n </li>\r\n )}\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowIntegrityModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"integrity\" /> Check Integrity\r\n </li>\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowLogsModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"logs\" /> View Logs\r\n </li>\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowDeleteModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"trash\" /> Remove\r\n </li>\r\n </ul>\r\n )}\r\n </div>\r\n </>\r\n }\r\n />\r\n <div className={classes.planContent}>\r\n <PlanStats plan={plan} isSync={isSync} lastBackupItem={lastBackupItem} />\r\n <PlanProgress\r\n plan={plan}\r\n isBackupPending={isBackupPending}\r\n isRestorePending={isRestorePending}\r\n activeBackups={activeBackups}\r\n activeRestores={activeRestores}\r\n refetchPlan={refetchPlan}\r\n />\r\n <PlanBackups plan={plan} />\r\n </div>\r\n\r\n {/* Action Modals */}\r\n {showPruneModal && (\r\n <PlanPruneModal\r\n planId={id}\r\n method={plan.method}\r\n prune={prune}\r\n snapshotsCount={snapshotsCount}\r\n taskPending={taskPending}\r\n close={() => setShowPruneModal(false)}\r\n />\r\n )}\r\n {showIntegrityModal && !isSync && (\r\n <PlanIntegrity\r\n planId={plan.id}\r\n taskPending={taskPending}\r\n verificationData={plan.verified}\r\n storage={plan.storage}\r\n replicationStorages={plan.settings.replication?.enabled ? plan.settings.replication.storages : []}\r\n onClose={() => setShowIntegrityModal(false)}\r\n />\r\n )}\r\n {showDeleteModal && (\r\n <PlanRemoveModal planId={id} taskPending={taskPending} actionInProgress={actionInProgress} close={() => setShowDeleteModal(false)} />\r\n )}\r\n {showUnlockModal && <PlanUnlockModal planId={id} taskPending={taskPending} close={() => setShowUnlockModal(false)} />}\r\n {showEditModal && <EditPlanModal plan={plan} close={() => setShowEditModal(false)} />}\r\n {showLogsModal && <PlanLogs planId={id} planMethod={plan.method} sourceType={plan.sourceType} close={() => setShowLogsModal(false)} />}\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nexport default PlanSingle;\r\n"],"names":["PlanSingle","showMoreOptions","setShowMoreOptions","useState","showIntegrityModal","setShowIntegrityModal","id","useParams","EditPlanModal","useComponentOverride","EditPlan","searchParams","useSearchParams","isBackupPending","isRestorePending","showDeleteModal","setShowDeleteModal","showEditModal","setShowEditModal","showPruneModal","setShowPruneModal","showLogsModal","setShowLogsModal","showUnlockModal","setShowUnlockModal","plan","isLoading","refetchPlan","activeBackups","activeRestores","lastBackupItem","taskPending","planError","actionInProgress","changeStatus","backupNow","usePlanSingleActions","errorStatusCode","jsx","NotFound","Icon","isActive","method","title","description","verified","stats","settings","prune","snapshotsCount","_a","isSync","jsxs","classes","PageHeader","Fragment","PlanStats","PlanProgress","PlanBackups","PlanPruneModal","PlanIntegrity","_b","PlanRemoveModal","PlanUnlockModal","PlanLogs"],"mappings":"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"}
1
+ {"version":3,"file":"PlanSingle.js","sources":["../../../src/routes/PlanSingle/PlanSingle.tsx"],"sourcesContent":["import { useState } from 'react';\r\nimport { useParams, useSearchParams } from 'react-router';\r\nimport PageHeader from '../../components/common/PageHeader/PageHeader';\r\nimport Icon from '../../components/common/Icon/Icon';\r\nimport EditPlan from '../../components/Plan/EditPlan/EditPlan';\r\nimport PlanLogs from '../../components/Plan/PlanLogs/PlanLogs';\r\nimport { useComponentOverride } from '../../context/ComponentOverrideContext';\r\nimport PlanStats from '../../components/Plan/PlanStats/PlanStats';\r\nimport { usePlanSingleActions } from '../../hooks/usePlanSingleActions';\r\nimport classes from './PlanSingle.module.scss';\r\nimport NotFound from '../../components/common/NotFound/NotFound';\r\nimport PlanPruneModal from '../../components/Plan/PlanPruneModal/PlanPruneModal';\r\nimport PlanUnlockModal from '../../components/Plan/PlanUnlockModal/PlanUnlockModal';\r\nimport PlanRemoveModal from '../../components/Plan/PlanRemoveModal/PlanRemoveModal';\r\nimport PlanProgress from '../../components/Plan/PlanProgress/PlanProgress';\r\nimport PlanBackups from '../../components/Plan/PlanBackups/PlanBackups';\r\nimport PlanIntegrity from '../../components/Plan/PlanIntegrity/PlanIntegrity';\r\nimport PlanRepair from '../../components/Plan/PlanRepair/PlanRepair';\r\nimport { PlanVerifiedResult } from '../..';\r\n\r\nconst PlanSingle = () => {\r\n const [showMoreOptions, setShowMoreOptions] = useState(false);\r\n const [showIntegrityModal, setShowIntegrityModal] = useState(false);\r\n const [showRepoRepair, setShowRepoRepair] = useState('');\r\n const { id } = useParams();\r\n\r\n const EditPlanModal = useComponentOverride('EditPlan', EditPlan);\r\n\r\n const [searchParams] = useSearchParams();\r\n const isBackupPending = searchParams.get('pendingbackup') === '1';\r\n const isRestorePending = searchParams.get('pendingrestore') === '1';\r\n\r\n const {\r\n showDeleteModal,\r\n setShowDeleteModal,\r\n showEditModal,\r\n setShowEditModal,\r\n showPruneModal,\r\n setShowPruneModal,\r\n showLogsModal,\r\n setShowLogsModal,\r\n showUnlockModal,\r\n setShowUnlockModal,\r\n\r\n plan,\r\n isLoading,\r\n refetchPlan,\r\n activeBackups,\r\n activeRestores,\r\n lastBackupItem,\r\n taskPending,\r\n planError,\r\n actionInProgress,\r\n changeStatus,\r\n backupNow,\r\n } = usePlanSingleActions();\r\n\r\n // const errorMessage = planError?.message;\r\n const errorStatusCode = (planError as Error & { status?: number })?.status;\r\n if (!id || errorStatusCode === 404) {\r\n return <NotFound name=\"Plan\" link=\"/\" />;\r\n } else {\r\n if (isLoading) {\r\n return (\r\n <div className=\"loadingScreen\">\r\n <Icon size={60} type=\"loading\" />\r\n </div>\r\n );\r\n }\r\n\r\n const { isActive, method, title, description, verified, stats, settings } = plan;\r\n const prune = settings.prune;\r\n const snapshotsCount = stats.snapshots?.length || 0;\r\n const isSync = method === 'sync';\r\n\r\n return (\r\n <div className={classes.planSingle}>\r\n <PageHeader\r\n title={\r\n <>\r\n {title}{' '}\r\n {description && (\r\n <span className={classes.planDescription} data-tooltip-id=\"appTooltip\" data-tooltip-content={description}>\r\n <Icon type=\"note\" size={13} />\r\n </span>\r\n )}\r\n {!isActive && (\r\n <span className=\"label warn\">\r\n <Icon size={14} type={'pause'} color=\"#bf8d20\" /> Paused\r\n </span>\r\n )}\r\n {verified?.hasError && (\r\n <span className={`label error ${classes.planError}`} onClick={() => setShowIntegrityModal(true)}>\r\n <Icon size={14} type={'error-circle-filled'} color=\"#dd6b6b\" /> Integrity Error\r\n </span>\r\n )}\r\n </>\r\n }\r\n pageTitle={title}\r\n icon=\"plans\"\r\n rightSection={\r\n <>\r\n <div className={classes.planActions}>\r\n <button className={classes.actionBtn} onClick={backupNow}>\r\n <Icon size={14} type={isSync ? 'sync' : 'backup'} /> {isSync ? 'Sync' : 'Backup'} Now\r\n </button>\r\n <button className={`${classes.actionBtn} ${!isActive ? classes.actionBtnHighlight : ''}`} onClick={changeStatus}>\r\n <Icon size={14} type={isActive ? 'pause' : 'resume'} /> {isActive ? 'Pause' : 'Resume'}\r\n </button>\r\n <button className={classes.actionBtn} onClick={() => setShowEditModal(true)}>\r\n <Icon size={14} type=\"edit-settings\" /> Edit\r\n </button>\r\n <button className={`${classes.actionBtn} ${classes.actionMoreBtn}`} onClick={() => setShowMoreOptions(!showMoreOptions)}>\r\n <Icon size={14} type=\"dots-vertical\" />\r\n </button>\r\n\r\n {showMoreOptions && (\r\n <ul className={classes.moreOptions}>\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowPruneModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"prune\" /> Clean Up\r\n </li>\r\n {!isSync && (\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowUnlockModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"unlock\" /> Unlock\r\n </li>\r\n )}\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowIntegrityModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"integrity\" /> Check Integrity\r\n </li>\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowLogsModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"logs\" /> View Logs\r\n </li>\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowDeleteModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"trash\" /> Remove\r\n </li>\r\n </ul>\r\n )}\r\n </div>\r\n </>\r\n }\r\n />\r\n <div className={classes.planContent}>\r\n <PlanStats plan={plan} isSync={isSync} lastBackupItem={lastBackupItem} />\r\n <PlanProgress\r\n plan={plan}\r\n isBackupPending={isBackupPending}\r\n isRestorePending={isRestorePending}\r\n activeBackups={activeBackups}\r\n activeRestores={activeRestores}\r\n refetchPlan={refetchPlan}\r\n />\r\n <PlanBackups plan={plan} />\r\n </div>\r\n\r\n {/* Action Modals */}\r\n {showPruneModal && (\r\n <PlanPruneModal\r\n planId={id}\r\n method={plan.method}\r\n prune={prune}\r\n snapshotsCount={snapshotsCount}\r\n taskPending={taskPending}\r\n close={() => setShowPruneModal(false)}\r\n />\r\n )}\r\n {showIntegrityModal && !isSync && (\r\n <PlanIntegrity\r\n planId={plan.id}\r\n taskPending={taskPending}\r\n verificationData={plan.verified}\r\n storage={plan.storage}\r\n replicationStorages={plan.settings.replication?.enabled ? plan.settings.replication.storages : []}\r\n onClose={() => setShowIntegrityModal(false)}\r\n onRepairOpen={(replicationId) => {\r\n setShowIntegrityModal(false);\r\n setShowRepoRepair(replicationId);\r\n }}\r\n />\r\n )}\r\n {showRepoRepair && !isSync && (\r\n <PlanRepair\r\n planId={id}\r\n errorType={\r\n (plan.verified?.result[showRepoRepair as keyof typeof plan.verified.result] as PlanVerifiedResult)?.errorType || 'unknown'\r\n }\r\n onClose={() => setShowRepoRepair('')}\r\n onOpenIntegrity={() => setShowIntegrityModal(true)}\r\n />\r\n )}\r\n {showDeleteModal && (\r\n <PlanRemoveModal planId={id} taskPending={taskPending} actionInProgress={actionInProgress} close={() => setShowDeleteModal(false)} />\r\n )}\r\n {showUnlockModal && <PlanUnlockModal planId={id} taskPending={taskPending} close={() => setShowUnlockModal(false)} />}\r\n {showEditModal && <EditPlanModal plan={plan} close={() => setShowEditModal(false)} />}\r\n {showLogsModal && <PlanLogs planId={id} planMethod={plan.method} sourceType={plan.sourceType} close={() => setShowLogsModal(false)} />}\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nexport default PlanSingle;\r\n"],"names":["PlanSingle","showMoreOptions","setShowMoreOptions","useState","showIntegrityModal","setShowIntegrityModal","showRepoRepair","setShowRepoRepair","id","useParams","EditPlanModal","useComponentOverride","EditPlan","searchParams","useSearchParams","isBackupPending","isRestorePending","showDeleteModal","setShowDeleteModal","showEditModal","setShowEditModal","showPruneModal","setShowPruneModal","showLogsModal","setShowLogsModal","showUnlockModal","setShowUnlockModal","plan","isLoading","refetchPlan","activeBackups","activeRestores","lastBackupItem","taskPending","planError","actionInProgress","changeStatus","backupNow","usePlanSingleActions","errorStatusCode","jsx","NotFound","Icon","isActive","method","title","description","verified","stats","settings","prune","snapshotsCount","_a","isSync","jsxs","classes","PageHeader","Fragment","PlanStats","PlanProgress","PlanBackups","PlanPruneModal","PlanIntegrity","_b","replicationId","PlanRepair","_d","_c","PlanRemoveModal","PlanUnlockModal","PlanLogs"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Plans.d.ts","sourceRoot":"","sources":["../../../src/routes/Plans/Plans.tsx"],"names":[],"mappings":"AAcA,QAAA,MAAM,KAAK,+CA+GV,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Plans.d.ts","sourceRoot":"","sources":["../../../src/routes/Plans/Plans.tsx"],"names":[],"mappings":"AAeA,QAAA,MAAM,KAAK,+CAiJV,CAAC;AAEF,eAAe,KAAK,CAAC"}