@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,91 +1,117 @@
1
- import { jsxs as c, jsx as o, Fragment as A } from "react/jsx-runtime";
2
- import { useState as p, useEffect as C, useMemo as _ } from "react";
3
- import d from "./Plans.module.scss.js";
4
- import k from "../../components/common/PageHeader/PageHeader.js";
5
- import v from "../../components/Plan/PlanItems/PlanItem.js";
6
- import w from "../../components/Plan/AddPlan/AddPlan.js";
7
- import I from "../../components/common/TagsFilter/TagsFilter.js";
8
- import L from "../../components/common/SearchItems/SearchItems.js";
9
- import N from "../../components/common/SortItems/SortItems.js";
10
- import { useGetPlans as D } from "../../services/plans.js";
11
- import { useComponentOverride as T } from "../../context/ComponentOverrideContext.js";
12
- import F from "../../components/common/ItemsLayout/ItemsLayout.js";
1
+ import { jsxs as m, jsx as o, Fragment as I } from "react/jsx-runtime";
2
+ import { useState as h, useEffect as A } from "react";
3
+ import p from "./Plans.module.scss.js";
4
+ import F from "../../components/common/PageHeader/PageHeader.js";
5
+ import z from "../../components/Plan/PlanItems/PlanItem.js";
6
+ import C from "../../components/Plan/AddPlan/AddPlan.js";
7
+ import w from "../../components/common/SearchItems/SearchItems.js";
8
+ import L from "../../components/common/SortItems/SortItems.js";
9
+ import { useGetPlans as N } from "../../services/plans.js";
10
+ import { useComponentOverride as q } from "../../context/ComponentOverrideContext.js";
11
+ import D from "../../components/common/ItemsLayout/ItemsLayout.js";
13
12
  import x from "../../components/Skeleton/SkeletonItems.js";
14
- const J = () => {
15
- const [f, m] = p(!1), [t, s] = p([]), [n, h] = p(() => localStorage.getItem("plans_layout") === "grid" ? "grid" : "list"), { data: r, isLoading: u } = D(), i = (r == null ? void 0 : r.result) || [], g = T("AddPlan", w);
16
- C(() => {
17
- r != null && r.result && s(r.result);
18
- }, [r]), console.log("plans :", t);
19
- const P = _(() => {
20
- const e = [];
21
- return t && t.length > 0 && t.forEach((a) => {
22
- a.tags.forEach((l) => {
23
- e.includes(l) || e.push(l);
24
- });
25
- }), e;
26
- }, [t]), b = (e) => {
27
- s(e ? i.filter((a) => a.tags.includes(e)) : i);
28
- }, S = (e) => {
29
- s(e ? i.filter((a) => a.title.toLowerCase().includes(e.toLowerCase())) : i);
30
- }, y = (e) => {
13
+ import { getIntervalMinutes as g } from "../../utils/helpers.js";
14
+ import O from "../../components/Plan/FilterPlans/FilterPlans.js";
15
+ const Q = () => {
16
+ const [v, f] = h(!1), [c, l] = h([]), [d, P] = h(() => localStorage.getItem("plans_layout") === "grid" ? "grid" : "list"), { data: n, isLoading: _ } = N(), i = (n == null ? void 0 : n.result) || [], S = q("AddPlan", C);
17
+ A(() => {
18
+ if (n != null && n.result) {
19
+ l(n.result);
20
+ const e = localStorage.getItem("plans_sort"), r = localStorage.getItem("plans_filter"), t = r ? JSON.parse(r) : null;
21
+ t && b(t, n.result), e && u(e, n.result);
22
+ }
23
+ }, [n]);
24
+ const y = (e) => {
25
+ l(e ? i.filter((r) => r.title.toLowerCase().includes(e.toLowerCase())) : i);
26
+ }, u = (e, r) => {
27
+ const t = r && r.length > 0 ? r : c;
31
28
  switch (e) {
32
29
  case "title_asc":
33
- s([...t].sort((a, l) => a.title.localeCompare(l.title)));
30
+ l([...t].sort((a, s) => a.title.localeCompare(s.title)));
34
31
  break;
35
32
  case "title_desc":
36
- s([...t].sort((a, l) => l.title.localeCompare(a.title)));
33
+ l([...t].sort((a, s) => s.title.localeCompare(a.title)));
37
34
  break;
38
35
  case "created_asc":
39
- s([...t].sort((a, l) => Date.parse(a.createdAt) - Date.parse(l.createdAt)));
36
+ l([...t].sort((a, s) => Date.parse(a.createdAt) - Date.parse(s.createdAt)));
40
37
  break;
41
38
  case "created_desc":
42
- s([...t].sort((a, l) => Date.parse(l.createdAt) - Date.parse(a.createdAt)));
39
+ l([...t].sort((a, s) => Date.parse(s.createdAt) - Date.parse(a.createdAt)));
40
+ break;
41
+ case "size_asc":
42
+ l([...t].sort((a, s) => a.stats.size - s.stats.size));
43
+ break;
44
+ case "size_desc":
45
+ l([...t].sort((a, s) => s.stats.size - a.stats.size));
46
+ break;
47
+ case "run_frequency_asc":
48
+ l([...t].sort((a, s) => g(a.settings.interval) - g(s.settings.interval)));
49
+ break;
50
+ case "run_frequency_desc":
51
+ l([...t].sort((a, s) => g(s.settings.interval) - g(a.settings.interval)));
43
52
  break;
44
53
  case "":
45
- s([...t]);
54
+ l([...i]);
46
55
  break;
47
56
  }
57
+ }, b = (e, r) => {
58
+ if (e) {
59
+ let t = r && r.length > 0 ? r : c;
60
+ e.devices.length > 0 && (t = t.filter((s) => e.devices.includes(s.device.id))), e.methods.length > 0 && (t = t.filter((s) => e.methods.includes(s.method))), e.storages.length > 0 && (t = t.filter((s) => e.storages.includes(s.storage.id))), e.tags.length > 0 && (t = t.filter((s) => s.tags.some((k) => e.tags.includes(k)))), l(t);
61
+ const a = localStorage.getItem("plans_sort");
62
+ a && u(a, t);
63
+ } else {
64
+ l(i);
65
+ const t = localStorage.getItem("plans_sort");
66
+ t && u(t, i);
67
+ return;
68
+ }
48
69
  };
49
- return /* @__PURE__ */ c("div", { className: d.plans, children: [
70
+ return /* @__PURE__ */ m("div", { className: p.plans, children: [
50
71
  /* @__PURE__ */ o(
51
- k,
72
+ F,
52
73
  {
53
74
  title: "Backup Plans",
54
75
  icon: "plans",
55
76
  buttonTitle: "+ New",
56
- buttonAction: () => m(!0),
57
- rightSection: /* @__PURE__ */ c(A, { children: [
58
- /* @__PURE__ */ o(I, { tags: P, onSelect: b }),
59
- /* @__PURE__ */ o(L, { onSearch: (e) => S(e), itemName: "Plans" }),
77
+ buttonAction: () => f(!0),
78
+ rightSection: /* @__PURE__ */ m(I, { children: [
79
+ /* @__PURE__ */ o(w, { onSearch: (e) => y(e), itemName: "Plans" }),
60
80
  /* @__PURE__ */ o(
61
- N,
81
+ L,
62
82
  {
83
+ id: "plans_sort",
63
84
  options: [
64
85
  { label: "Title (A to Z)", value: "title_asc" },
65
86
  { label: "Title (Z to A)", value: "title_desc" },
87
+ { label: "Size (Smallest First)", value: "size_asc" },
88
+ { label: "Size (Largest First)", value: "size_desc" },
66
89
  { label: "Date Created (Oldest First)", value: "created_asc" },
67
- { label: "Date Created (Newest First)", value: "created_desc" }
90
+ { label: "Date Created (Newest First)", value: "created_desc" },
91
+ { label: "Run Frequency (Shortest First)", value: "run_frequency_asc" },
92
+ { label: "Run Frequency (Longest First)", value: "run_frequency_desc" }
68
93
  ],
69
- onSort: (e) => y(e)
94
+ onSort: (e) => u(e)
70
95
  }
71
96
  ),
72
- /* @__PURE__ */ o(F, { onChange: (e) => h(e), type: "plans", value: n })
97
+ /* @__PURE__ */ o(O, { plans: i, onUpdate: (e) => b(e) }),
98
+ /* @__PURE__ */ o(D, { onChange: (e) => P(e), type: "plans", value: d })
73
99
  ] })
74
100
  }
75
101
  ),
76
- /* @__PURE__ */ c("div", { className: ` ${d.planItems} ${n === "grid" ? d.plansGrid : d.plansListView}`, children: [
77
- t.length > 0 && t.map((e) => /* @__PURE__ */ o(v, { plan: e, layout: n }, e.id)),
78
- t.length === 0 && !u && /* @__PURE__ */ o("div", { className: "empty_container", children: /* @__PURE__ */ c("p", { children: [
102
+ /* @__PURE__ */ m("div", { className: ` ${p.planItems} ${d === "grid" ? p.plansGrid : p.plansListView}`, children: [
103
+ c.length > 0 && c.map((e) => /* @__PURE__ */ o(z, { plan: e, layout: d }, e.id)),
104
+ c.length === 0 && !_ && /* @__PURE__ */ o("div", { className: "empty_container", children: /* @__PURE__ */ m("p", { children: [
79
105
  "No Plans Created Yet. ",
80
- /* @__PURE__ */ o("button", { onClick: () => m(!0), children: "+ Add a Plan" }),
106
+ /* @__PURE__ */ o("button", { onClick: () => f(!0), children: "+ Add a Plan" }),
81
107
  " to backup your content."
82
108
  ] }) })
83
109
  ] }),
84
- u && /* @__PURE__ */ o(x, { type: "plan", layout: n, count: 6 }),
85
- f && /* @__PURE__ */ o(g, { close: () => m(!1) })
110
+ _ && /* @__PURE__ */ o(x, { type: "plan", layout: d, count: 6 }),
111
+ v && /* @__PURE__ */ o(S, { close: () => f(!1) })
86
112
  ] });
87
113
  };
88
114
  export {
89
- J as default
115
+ Q as default
90
116
  };
91
117
  //# sourceMappingURL=Plans.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Plans.js","sources":["../../../src/routes/Plans/Plans.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react';\r\nimport classes from './Plans.module.scss';\r\nimport PageHeader from '../../components/common/PageHeader/PageHeader';\r\nimport PlanItem from '../../components/Plan/PlanItems/PlanItem';\r\nimport AddPlan from '../../components/Plan/AddPlan/AddPlan';\r\nimport TagsFilter from '../../components/common/TagsFilter/TagsFilter';\r\nimport SearchItems from '../../components/common/SearchItems/SearchItems';\r\nimport SortItems from '../../components/common/SortItems/SortItems';\r\nimport { useGetPlans } from '../../services/plans';\r\nimport { Plan } from '../../@types/plans';\r\nimport { useComponentOverride } from '../../context/ComponentOverrideContext';\r\nimport ItemsLayout from '../../components/common/ItemsLayout/ItemsLayout';\r\nimport SkeletonItems from '../../components/Skeleton/SkeletonItems';\r\n\r\nconst Plans = () => {\r\n const [showSidePanel, setShowSidePanel] = useState(false);\r\n const [plans, setPlans] = useState<Plan[]>([]);\r\n const [plansLayout, setPlansLayout] = useState<'list' | 'grid'>(() => (localStorage.getItem('plans_layout') === 'grid' ? 'grid' : 'list'));\r\n const { data, isLoading } = useGetPlans();\r\n // const data = { result: [] };\r\n // const isLoading = true;\r\n\r\n const fetchedPlans: Plan[] = data?.result || [];\r\n\r\n const AddPlanModal = useComponentOverride('AddPlan', AddPlan);\r\n\r\n useEffect(() => {\r\n if (data?.result) {\r\n setPlans(data.result);\r\n }\r\n }, [data]);\r\n\r\n console.log('plans :', plans);\r\n\r\n const allTags = useMemo(() => {\r\n const tags: string[] = [];\r\n if (plans && plans.length > 0) {\r\n plans.forEach((plan) => {\r\n plan.tags.forEach((tag) => {\r\n if (!tags.includes(tag)) {\r\n tags.push(tag);\r\n }\r\n });\r\n });\r\n }\r\n\r\n return tags;\r\n }, [plans]);\r\n\r\n const filterByTags = (tag: string) => {\r\n if (tag) {\r\n setPlans(fetchedPlans.filter((p) => p.tags.includes(tag)));\r\n } else {\r\n setPlans(fetchedPlans);\r\n }\r\n };\r\n\r\n const searchPlans = (term: string) => {\r\n if (term) {\r\n setPlans(fetchedPlans.filter((p) => p.title.toLowerCase().includes(term.toLowerCase())));\r\n } else {\r\n setPlans(fetchedPlans);\r\n }\r\n };\r\n\r\n const sortPlans = (sortBy: string) => {\r\n switch (sortBy) {\r\n case 'title_asc':\r\n setPlans([...plans].sort((a, b) => a.title.localeCompare(b.title)));\r\n break;\r\n case 'title_desc':\r\n setPlans([...plans].sort((a, b) => b.title.localeCompare(a.title)));\r\n break;\r\n case 'created_asc':\r\n setPlans([...plans].sort((a, b) => Date.parse(a.createdAt) - Date.parse(b.createdAt)));\r\n break;\r\n case 'created_desc':\r\n setPlans([...plans].sort((a, b) => Date.parse(b.createdAt) - Date.parse(a.createdAt)));\r\n break;\r\n case '':\r\n setPlans([...plans]);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n return (\r\n <div className={classes.plans}>\r\n <PageHeader\r\n title=\"Backup Plans\"\r\n icon=\"plans\"\r\n buttonTitle=\"+ New\"\r\n buttonAction={() => setShowSidePanel(true)}\r\n rightSection={\r\n <>\r\n <TagsFilter tags={allTags} onSelect={filterByTags} />\r\n <SearchItems onSearch={(term) => searchPlans(term)} itemName=\"Plans\" />\r\n <SortItems\r\n options={[\r\n { label: 'Title (A to Z)', value: 'title_asc' },\r\n { label: 'Title (Z to A)', value: 'title_desc' },\r\n { label: 'Date Created (Oldest First)', value: 'created_asc' },\r\n { label: 'Date Created (Newest First)', value: 'created_desc' },\r\n ]}\r\n onSort={(sortBy) => sortPlans(sortBy)}\r\n />\r\n <ItemsLayout onChange={(value) => setPlansLayout(value)} type=\"plans\" value={plansLayout} />\r\n </>\r\n }\r\n />\r\n <div className={` ${classes.planItems} ${plansLayout === 'grid' ? classes.plansGrid : classes.plansListView}`}>\r\n {plans.length > 0 && plans.map((plan) => <PlanItem key={plan.id} plan={plan} layout={plansLayout} />)}\r\n {plans.length === 0 && !isLoading && (\r\n <div className=\"empty_container\">\r\n <p>\r\n No Plans Created Yet. <button onClick={() => setShowSidePanel(true)}>+ Add a Plan</button> to backup your content.\r\n </p>\r\n </div>\r\n )}\r\n </div>\r\n {isLoading && <SkeletonItems type=\"plan\" layout={plansLayout} count={6} />}\r\n {showSidePanel && <AddPlanModal close={() => setShowSidePanel(false)} />}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Plans;\r\n"],"names":["Plans","showSidePanel","setShowSidePanel","useState","plans","setPlans","plansLayout","setPlansLayout","data","isLoading","useGetPlans","fetchedPlans","AddPlanModal","useComponentOverride","AddPlan","useEffect","allTags","useMemo","tags","plan","tag","filterByTags","p","searchPlans","term","sortPlans","sortBy","b","jsxs","classes","jsx","PageHeader","Fragment","TagsFilter","SearchItems","SortItems","ItemsLayout","value","PlanItem","SkeletonItems"],"mappings":"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"}
1
+ {"version":3,"file":"Plans.js","sources":["../../../src/routes/Plans/Plans.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\r\nimport classes from './Plans.module.scss';\r\nimport PageHeader from '../../components/common/PageHeader/PageHeader';\r\nimport PlanItem from '../../components/Plan/PlanItems/PlanItem';\r\nimport AddPlan from '../../components/Plan/AddPlan/AddPlan';\r\nimport SearchItems from '../../components/common/SearchItems/SearchItems';\r\nimport SortItems from '../../components/common/SortItems/SortItems';\r\nimport { useGetPlans } from '../../services/plans';\r\nimport { Plan } from '../../@types/plans';\r\nimport { useComponentOverride } from '../../context/ComponentOverrideContext';\r\nimport ItemsLayout from '../../components/common/ItemsLayout/ItemsLayout';\r\nimport SkeletonItems from '../../components/Skeleton/SkeletonItems';\r\nimport { getIntervalMinutes } from '../../utils';\r\nimport FilterPlans, { PlanFilterTypes } from '../../components/Plan/FilterPlans/FilterPlans';\r\n\r\nconst Plans = () => {\r\n const [showSidePanel, setShowSidePanel] = useState(false);\r\n const [plans, setPlans] = useState<Plan[]>([]);\r\n const [plansLayout, setPlansLayout] = useState<'list' | 'grid'>(() => (localStorage.getItem('plans_layout') === 'grid' ? 'grid' : 'list'));\r\n const { data, isLoading } = useGetPlans();\r\n\r\n const fetchedPlans: Plan[] = data?.result || [];\r\n\r\n const AddPlanModal = useComponentOverride('AddPlan', AddPlan);\r\n\r\n useEffect(() => {\r\n if (data?.result) {\r\n setPlans(data.result);\r\n const sortSetting = localStorage.getItem('plans_sort');\r\n const filterSettingsRaw = localStorage.getItem('plans_filter');\r\n const filterSettings = filterSettingsRaw ? JSON.parse(filterSettingsRaw) : null;\r\n if (filterSettings) {\r\n applyFilters(filterSettings, data.result);\r\n }\r\n if (sortSetting) {\r\n sortPlans(sortSetting, data.result);\r\n }\r\n }\r\n }, [data]);\r\n\r\n // console.log('plans :', plans);\r\n\r\n const searchPlans = (term: string) => {\r\n if (term) {\r\n setPlans(fetchedPlans.filter((p) => p.title.toLowerCase().includes(term.toLowerCase())));\r\n } else {\r\n setPlans(fetchedPlans);\r\n }\r\n };\r\n\r\n const sortPlans = (sortBy: string, plansToSort?: Plan[]) => {\r\n const thePlans = plansToSort && plansToSort.length > 0 ? plansToSort : plans;\r\n switch (sortBy) {\r\n case 'title_asc':\r\n setPlans([...thePlans].sort((a, b) => a.title.localeCompare(b.title)));\r\n break;\r\n case 'title_desc':\r\n setPlans([...thePlans].sort((a, b) => b.title.localeCompare(a.title)));\r\n break;\r\n case 'created_asc':\r\n setPlans([...thePlans].sort((a, b) => Date.parse(a.createdAt) - Date.parse(b.createdAt)));\r\n break;\r\n case 'created_desc':\r\n setPlans([...thePlans].sort((a, b) => Date.parse(b.createdAt) - Date.parse(a.createdAt)));\r\n break;\r\n case 'size_asc':\r\n setPlans([...thePlans].sort((a, b) => a.stats.size - b.stats.size));\r\n break;\r\n case 'size_desc':\r\n setPlans([...thePlans].sort((a, b) => b.stats.size - a.stats.size));\r\n break;\r\n case 'run_frequency_asc':\r\n setPlans([...thePlans].sort((a, b) => getIntervalMinutes(a.settings.interval) - getIntervalMinutes(b.settings.interval)));\r\n break;\r\n case 'run_frequency_desc':\r\n setPlans([...thePlans].sort((a, b) => getIntervalMinutes(b.settings.interval) - getIntervalMinutes(a.settings.interval)));\r\n break;\r\n case '':\r\n setPlans([...fetchedPlans]);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const applyFilters = (filter: Record<PlanFilterTypes, string[]> | null, plansToSort?: Plan[]) => {\r\n if (!filter) {\r\n setPlans(fetchedPlans);\r\n const sortSetting = localStorage.getItem('plans_sort');\r\n if (sortSetting) {\r\n sortPlans(sortSetting, fetchedPlans);\r\n }\r\n return;\r\n } else {\r\n let filteredPlans = plansToSort && plansToSort.length > 0 ? plansToSort : plans;\r\n\r\n if (filter.devices.length > 0) {\r\n filteredPlans = filteredPlans.filter((plan) => filter.devices.includes(plan.device.id));\r\n }\r\n if (filter.methods.length > 0) {\r\n filteredPlans = filteredPlans.filter((plan) => filter.methods.includes(plan.method));\r\n }\r\n if (filter.storages.length > 0) {\r\n filteredPlans = filteredPlans.filter((plan) => filter.storages.includes(plan.storage.id));\r\n }\r\n if (filter.tags.length > 0) {\r\n filteredPlans = filteredPlans.filter((plan) => plan.tags.some((tag) => filter.tags.includes(tag)));\r\n }\r\n\r\n setPlans(filteredPlans);\r\n const sortSetting = localStorage.getItem('plans_sort');\r\n if (sortSetting) {\r\n sortPlans(sortSetting, filteredPlans);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <div className={classes.plans}>\r\n <PageHeader\r\n title=\"Backup Plans\"\r\n icon=\"plans\"\r\n buttonTitle=\"+ New\"\r\n buttonAction={() => setShowSidePanel(true)}\r\n rightSection={\r\n <>\r\n <SearchItems onSearch={(term) => searchPlans(term)} itemName=\"Plans\" />\r\n <SortItems\r\n id={'plans_sort'}\r\n options={[\r\n { label: 'Title (A to Z)', value: 'title_asc' },\r\n { label: 'Title (Z to A)', value: 'title_desc' },\r\n { label: 'Size (Smallest First)', value: 'size_asc' },\r\n { label: 'Size (Largest First)', value: 'size_desc' },\r\n { label: 'Date Created (Oldest First)', value: 'created_asc' },\r\n { label: 'Date Created (Newest First)', value: 'created_desc' },\r\n { label: 'Run Frequency (Shortest First)', value: 'run_frequency_asc' },\r\n { label: 'Run Frequency (Longest First)', value: 'run_frequency_desc' },\r\n ]}\r\n onSort={(sortBy) => sortPlans(sortBy)}\r\n />\r\n <FilterPlans plans={fetchedPlans} onUpdate={(filterSettings) => applyFilters(filterSettings)} />\r\n <ItemsLayout onChange={(value) => setPlansLayout(value)} type=\"plans\" value={plansLayout} />\r\n </>\r\n }\r\n />\r\n <div className={` ${classes.planItems} ${plansLayout === 'grid' ? classes.plansGrid : classes.plansListView}`}>\r\n {plans.length > 0 && plans.map((plan) => <PlanItem key={plan.id} plan={plan} layout={plansLayout} />)}\r\n {plans.length === 0 && !isLoading && (\r\n <div className=\"empty_container\">\r\n <p>\r\n No Plans Created Yet. <button onClick={() => setShowSidePanel(true)}>+ Add a Plan</button> to backup your content.\r\n </p>\r\n </div>\r\n )}\r\n </div>\r\n {isLoading && <SkeletonItems type=\"plan\" layout={plansLayout} count={6} />}\r\n {showSidePanel && <AddPlanModal close={() => setShowSidePanel(false)} />}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Plans;\r\n"],"names":["Plans","showSidePanel","setShowSidePanel","useState","plans","setPlans","plansLayout","setPlansLayout","data","isLoading","useGetPlans","fetchedPlans","AddPlanModal","useComponentOverride","AddPlan","useEffect","sortSetting","filterSettingsRaw","filterSettings","applyFilters","sortPlans","searchPlans","term","p","sortBy","plansToSort","thePlans","b","getIntervalMinutes","filter","filteredPlans","plan","tag","jsxs","classes","jsx","PageHeader","Fragment","SearchItems","SortItems","FilterPlans","ItemsLayout","value","PlanItem","SkeletonItems"],"mappings":"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"}
@@ -1,4 +1,9 @@
1
- import { NewPlanSettings, Plan, PlanNotification } from '../@types/plans';
1
+ import { NewPlanSettings, Plan, PlanAddRunSettings, PlanNotification } from '../@types/plans';
2
+ type BackupRunConfig = {
3
+ skipDryRun?: boolean;
4
+ skipPrune?: boolean;
5
+ ignoreErrors?: boolean;
6
+ };
2
7
  export declare function getAllPlans(): Promise<any>;
3
8
  export declare function useGetPlans(): import("@tanstack/react-query").UseQueryResult<any, Error>;
4
9
  export declare function getSinglePlan(id: string): Promise<any>;
@@ -7,8 +12,14 @@ export declare function getPlanLogs(planId: string): Promise<any>;
7
12
  export declare function useGetPlanLogs(planId: string): import("@tanstack/react-query").UseQueryResult<any, Error>;
8
13
  export declare function downloadPlanLogs(id: string): Promise<void>;
9
14
  export declare function useGetDownloadLogs(): import("@tanstack/react-query").UseMutationResult<void, Error, string, unknown>;
10
- export declare function createPlan(newPlan: NewPlanSettings): Promise<any>;
11
- export declare function useCreatePlan(): import("@tanstack/react-query").UseMutationResult<any, Error, NewPlanSettings, unknown>;
15
+ export declare function createPlan({ newPlan, runSettings }: {
16
+ newPlan: NewPlanSettings;
17
+ runSettings: PlanAddRunSettings;
18
+ }): Promise<any>;
19
+ export declare function useCreatePlan(): import("@tanstack/react-query").UseMutationResult<any, Error, {
20
+ newPlan: NewPlanSettings;
21
+ runSettings: PlanAddRunSettings;
22
+ }, unknown>;
12
23
  export declare function updatePlan(updatePayload: {
13
24
  id: string;
14
25
  data: Partial<Plan>;
@@ -25,8 +36,14 @@ export declare function useDeletePlan(): import("@tanstack/react-query").UseMuta
25
36
  id: string;
26
37
  removeRemoteData: boolean;
27
38
  }, unknown>;
28
- export declare function performBackup(id: string): Promise<any>;
29
- export declare function usePerformBackup(): import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
39
+ export declare function performBackup({ id, runConfig }: {
40
+ id: string;
41
+ runConfig?: BackupRunConfig;
42
+ }): Promise<any>;
43
+ export declare function usePerformBackup(): import("@tanstack/react-query").UseMutationResult<any, Error, {
44
+ id: string;
45
+ runConfig?: BackupRunConfig;
46
+ }, unknown>;
30
47
  export declare function pausePlan(id: string): Promise<any>;
31
48
  export declare function usePausePlan(): import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
32
49
  export declare function resumePlan(id: string): Promise<any>;
@@ -60,6 +77,16 @@ export declare function checkPlanIntegrity({ planId }: {
60
77
  export declare function useCheckPlanIntegrity(): import("@tanstack/react-query").UseMutationResult<any, Error, {
61
78
  planId: string;
62
79
  }, unknown>;
80
+ export declare function repairBackupPlan({ planId, type, replicationId }: {
81
+ planId: string;
82
+ type: string;
83
+ replicationId?: string;
84
+ }): Promise<any>;
85
+ export declare function useRepairBackupPlan(): import("@tanstack/react-query").UseMutationResult<any, Error, {
86
+ planId: string;
87
+ type: string;
88
+ replicationId?: string;
89
+ }, unknown>;
63
90
  export declare function sendTestNotificationRequest(payload: {
64
91
  planId: string;
65
92
  notificationCase: string;
@@ -72,4 +99,5 @@ export declare function useTestNotification(): import("@tanstack/react-query").U
72
99
  notificationChannel: "webhook" | "slack" | "discord";
73
100
  channelSettings: PlanNotification["webhook"] | PlanNotification["slack"] | PlanNotification["discord"];
74
101
  }, unknown>;
102
+ export {};
75
103
  //# sourceMappingURL=plans.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/services/plans.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/services/plans.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ async function m() {
10
10
  throw new Error(t.error);
11
11
  return t;
12
12
  }
13
- function U() {
13
+ function B() {
14
14
  return f({
15
15
  queryKey: ["plans"],
16
16
  queryFn: () => m(),
@@ -31,7 +31,7 @@ async function P(n) {
31
31
  }
32
32
  return o;
33
33
  }
34
- function B(n) {
34
+ function D(n) {
35
35
  return f({
36
36
  queryKey: ["plan", n],
37
37
  queryFn: () => P(n),
@@ -40,7 +40,7 @@ function B(n) {
40
40
  staleTime: 0
41
41
  });
42
42
  }
43
- async function j(n) {
43
+ async function E(n) {
44
44
  const e = new URL(`${a}/plans/${n}/logs`), t = await fetch(e.toString(), {
45
45
  method: "GET",
46
46
  credentials: "include"
@@ -51,16 +51,16 @@ async function j(n) {
51
51
  }
52
52
  return o;
53
53
  }
54
- function D(n) {
54
+ function H(n) {
55
55
  return f({
56
56
  queryKey: ["planLogs", n],
57
- queryFn: () => j(n),
57
+ queryFn: () => E(n),
58
58
  refetchOnMount: !0,
59
59
  retry: !1
60
60
  });
61
61
  }
62
- async function E(n) {
63
- var w, y;
62
+ async function S(n) {
63
+ var y, w;
64
64
  const e = await fetch(`${a}/plans/${n}/logs/download`, {
65
65
  method: "GET",
66
66
  credentials: "include"
@@ -70,7 +70,7 @@ async function E(n) {
70
70
  const l = await e.json();
71
71
  throw new Error(l.error);
72
72
  }
73
- const t = ((w = e.headers.get("content-disposition")) == null ? void 0 : w.split("filename=")[1]) || `plan-${n}.log`, o = (y = e.body) == null ? void 0 : y.getReader(), s = new ReadableStream({
73
+ const t = ((y = e.headers.get("content-disposition")) == null ? void 0 : y.split("filename=")[1]) || `plan-${n}.log`, o = (w = e.body) == null ? void 0 : w.getReader(), s = new ReadableStream({
74
74
  async start(l) {
75
75
  for (; ; ) {
76
76
  const { done: h, value: g } = await o.read();
@@ -82,9 +82,9 @@ async function E(n) {
82
82
  }), d = await new Response(s).blob(), p = window.URL.createObjectURL(d), i = document.createElement("a");
83
83
  i.href = p, i.download = t, document.body.appendChild(i), i.click(), i.remove(), window.URL.revokeObjectURL(p);
84
84
  }
85
- function H() {
85
+ function G() {
86
86
  return r({
87
- mutationFn: E,
87
+ mutationFn: S,
88
88
  onSuccess: (n) => {
89
89
  console.log("# Logs Downloaded! :", n);
90
90
  },
@@ -93,29 +93,29 @@ function H() {
93
93
  }
94
94
  });
95
95
  }
96
- async function S(n) {
97
- const e = new Headers({ "Content-Type": "application/json", Accept: "application/json" });
96
+ async function j({ newPlan: n, runSettings: e }) {
97
+ const t = new Headers({ "Content-Type": "application/json", Accept: "application/json" });
98
98
  console.log("newPlan :", n);
99
- const o = await (await fetch(`${a}/plans`, {
99
+ const s = await (await fetch(`${a}/plans`, {
100
100
  method: "POST",
101
101
  credentials: "include",
102
- headers: e,
103
- body: JSON.stringify(n)
102
+ headers: t,
103
+ body: JSON.stringify({ plan: n, runSettings: e })
104
104
  })).json();
105
- if (!o.success)
106
- throw new Error(o.error || o.result);
107
- return o;
105
+ if (!s.success)
106
+ throw new Error(s.error || s.result);
107
+ return s;
108
108
  }
109
- function G() {
109
+ function N() {
110
110
  const n = c();
111
111
  return r({
112
- mutationFn: S,
112
+ mutationFn: j,
113
113
  onSuccess: (e) => {
114
114
  console.log("# Plan Created! :", e), n.invalidateQueries({ queryKey: ["plans"] });
115
115
  }
116
116
  });
117
117
  }
118
- async function q(n) {
118
+ async function $(n) {
119
119
  const e = new Headers({ "Content-Type": "application/json", Accept: "application/json" });
120
120
  console.log("newPlan :", n);
121
121
  const o = await (await fetch(`${a}/plans/${n.id}`, {
@@ -128,10 +128,10 @@ async function q(n) {
128
128
  throw new Error(o.error);
129
129
  return o;
130
130
  }
131
- function N() {
131
+ function I() {
132
132
  const n = c();
133
133
  return r({
134
- mutationFn: q,
134
+ mutationFn: $,
135
135
  onSuccess: (e) => {
136
136
  var o;
137
137
  console.log("# Plan Updated! :", e);
@@ -150,7 +150,7 @@ async function k({ id: n, removeRemoteData: e }) {
150
150
  throw new Error(s.error);
151
151
  return s;
152
152
  }
153
- function I() {
153
+ function J() {
154
154
  const n = c();
155
155
  return r({
156
156
  mutationFn: k,
@@ -159,20 +159,21 @@ function I() {
159
159
  }
160
160
  });
161
161
  }
162
- async function $(n) {
163
- const e = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), o = await (await fetch(`${a}/plans/${n}/action/backup`, {
162
+ async function q({ id: n, runConfig: e }) {
163
+ const t = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), s = await (await fetch(`${a}/plans/${n}/action/backup`, {
164
164
  method: "POST",
165
165
  credentials: "include",
166
- headers: e
166
+ headers: t,
167
+ body: JSON.stringify({ runConfig: e })
167
168
  })).json();
168
- if (!o.success)
169
- throw new Error(o.error);
170
- return o;
169
+ if (!s.success)
170
+ throw new Error(s.error);
171
+ return s;
171
172
  }
172
- function J() {
173
+ function M() {
173
174
  const n = c();
174
175
  return r({
175
- mutationFn: $,
176
+ mutationFn: q,
176
177
  onSuccess: (e, t) => {
177
178
  console.log("# Backup Started! :", e, t), n.invalidateQueries({ queryKey: ["plan", t] }), n.invalidateQueries({ queryKey: ["plans"] });
178
179
  }
@@ -188,7 +189,7 @@ async function T(n) {
188
189
  throw new Error(o.error);
189
190
  return o;
190
191
  }
191
- function M() {
192
+ function x() {
192
193
  const n = c();
193
194
  return r({
194
195
  mutationFn: T,
@@ -207,7 +208,7 @@ async function v(n) {
207
208
  throw new Error(o.error);
208
209
  return o;
209
210
  }
210
- function x() {
211
+ function _() {
211
212
  const n = c();
212
213
  return r({
213
214
  mutationFn: v,
@@ -226,7 +227,7 @@ async function C(n) {
226
227
  throw new Error(o.error);
227
228
  return o;
228
229
  }
229
- function _() {
230
+ function z() {
230
231
  const n = c();
231
232
  return r({
232
233
  mutationFn: C,
@@ -248,7 +249,7 @@ async function R(n) {
248
249
  throw new Error(o.error);
249
250
  return o;
250
251
  }
251
- function z() {
252
+ function V() {
252
253
  const n = c();
253
254
  return r({
254
255
  mutationFn: R,
@@ -271,7 +272,7 @@ async function O(n, e = "backup") {
271
272
  throw new Error(s.error);
272
273
  return s;
273
274
  }
274
- function V() {
275
+ function W() {
275
276
  return r({
276
277
  // queryKey: ['planActiveBackups-' + planId],
277
278
  mutationFn: ({ planId: n, type: e }) => O(n, e)
@@ -295,7 +296,7 @@ async function K({
295
296
  throw new Error(i.error);
296
297
  return i;
297
298
  }
298
- function W() {
299
+ function X() {
299
300
  const n = c();
300
301
  return r({
301
302
  mutationFn: K,
@@ -307,7 +308,7 @@ function W() {
307
308
  }
308
309
  });
309
310
  }
310
- async function L({ planId: n }) {
311
+ async function F({ planId: n }) {
311
312
  const t = await (await fetch(`${a}/plans/${n}/action/checkintegrity`, {
312
313
  method: "POST",
313
314
  credentials: "include"
@@ -317,10 +318,10 @@ async function L({ planId: n }) {
317
318
  throw new Error(t.error);
318
319
  return t;
319
320
  }
320
- function X() {
321
+ function Y() {
321
322
  const n = c();
322
323
  return r({
323
- mutationFn: L,
324
+ mutationFn: F,
324
325
  onSuccess: (e, t) => {
325
326
  n.invalidateQueries({ queryKey: ["plan", t.planId] }), console.log("res :", t, e);
326
327
  },
@@ -329,7 +330,29 @@ function X() {
329
330
  }
330
331
  });
331
332
  }
332
- async function F(n) {
333
+ async function L({ planId: n, type: e, replicationId: t }) {
334
+ const s = await (await fetch(`${a}/plans/${n}/action/repair?type=${e}${t ? `&replicationId=${t}` : ""}`, {
335
+ method: "POST",
336
+ credentials: "include"
337
+ // headers: header,
338
+ })).json();
339
+ if (!s.success)
340
+ throw new Error(s.error);
341
+ return s;
342
+ }
343
+ function Z() {
344
+ const n = c();
345
+ return r({
346
+ mutationFn: L,
347
+ onSuccess: (e, t) => {
348
+ n.invalidateQueries({ queryKey: ["plan", t.planId] }), console.log("res :", t, e);
349
+ },
350
+ onError: (e, t) => {
351
+ console.error("Error repairing backup plan for planId:", t.planId, e);
352
+ }
353
+ });
354
+ }
355
+ async function Q(n) {
333
356
  console.log("payload :", n);
334
357
  const e = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await fetch(`${a}/plans/${n.planId}/action/test-notification`, {
335
358
  method: "POST",
@@ -343,9 +366,9 @@ async function F(n) {
343
366
  }
344
367
  return await t.json();
345
368
  }
346
- function Y() {
369
+ function ee() {
347
370
  return r({
348
- mutationFn: F,
371
+ mutationFn: Q,
349
372
  onSuccess: (n) => {
350
373
  console.log("# Test notification request sent successfully! :", n);
351
374
  },
@@ -356,36 +379,38 @@ function Y() {
356
379
  }
357
380
  export {
358
381
  O as checkActiveBackupsOrRestore,
359
- L as checkPlanIntegrity,
360
- S as createPlan,
382
+ F as checkPlanIntegrity,
383
+ j as createPlan,
361
384
  k as deletePlan,
362
385
  K as deleteReplicationStorage,
363
- E as downloadPlanLogs,
386
+ S as downloadPlanLogs,
364
387
  m as getAllPlans,
365
- j as getPlanLogs,
388
+ E as getPlanLogs,
366
389
  P as getSinglePlan,
367
390
  T as pausePlan,
368
- $ as performBackup,
391
+ q as performBackup,
369
392
  C as prunePlan,
393
+ L as repairBackupPlan,
370
394
  v as resumePlan,
371
- F as sendTestNotificationRequest,
395
+ Q as sendTestNotificationRequest,
372
396
  R as unlockPlan,
373
- q as updatePlan,
374
- V as useCheckActiveBackupsOrRestore,
375
- X as useCheckPlanIntegrity,
376
- G as useCreatePlan,
377
- I as useDeletePlan,
378
- W as useDeleteReplicationStorage,
379
- H as useGetDownloadLogs,
380
- B as useGetPlan,
381
- D as useGetPlanLogs,
382
- U as useGetPlans,
383
- M as usePausePlan,
384
- J as usePerformBackup,
385
- _ as usePrunePlan,
386
- x as useResumePlan,
387
- Y as useTestNotification,
388
- z as useUnlockPlan,
389
- N as useUpdatePlan
397
+ $ as updatePlan,
398
+ W as useCheckActiveBackupsOrRestore,
399
+ Y as useCheckPlanIntegrity,
400
+ N as useCreatePlan,
401
+ J as useDeletePlan,
402
+ X as useDeleteReplicationStorage,
403
+ G as useGetDownloadLogs,
404
+ D as useGetPlan,
405
+ H as useGetPlanLogs,
406
+ B as useGetPlans,
407
+ x as usePausePlan,
408
+ M as usePerformBackup,
409
+ z as usePrunePlan,
410
+ Z as useRepairBackupPlan,
411
+ _ as useResumePlan,
412
+ ee as useTestNotification,
413
+ V as useUnlockPlan,
414
+ I as useUpdatePlan
390
415
  };
391
416
  //# sourceMappingURL=plans.js.map