@synopackageland/sdk 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/i18n/authorization/de.json +1 -1
- package/dist/i18n/authorization/ja.json +1 -1
- package/dist/i18n/authorization/ko.json +1 -1
- package/dist/i18n/delegate/de.json +1 -0
- package/dist/i18n/delegate/en.json +1 -0
- package/dist/i18n/delegate/es.json +1 -0
- package/dist/i18n/delegate/fr.json +1 -0
- package/dist/i18n/delegate/it.json +1 -0
- package/dist/i18n/delegate/ja.json +1 -0
- package/dist/i18n/delegate/ko.json +1 -0
- package/dist/i18n/delegate/zh-CN.json +1 -0
- package/dist/i18n/delegate/zh-TW.json +1 -0
- package/dist/index.js +1972 -1964
- package/dist/src/delegate/copy.d.ts +2 -0
- package/dist/src/delegate/long-running.d.ts +1 -1
- package/dist/src/i18n.d.ts +3 -2
- package/dist/src/protocol/v1.d.ts +1 -7
- package/dist/vue.js +813 -806
- package/package.json +1 -1
- package/spec/protocol/v1/errors.json +0 -8
package/dist/vue.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { shellCopy as Oe, nasCopy as oe, nasErrorCopy as we, format as ve, saveCopy as Ce, saveError as be, createNasProvider as $e, identityCopy as
|
|
2
|
-
import { activePage as
|
|
3
|
-
import { inject as He, ref as
|
|
4
|
-
import { AppLayout as Xe, PageContent as Ge, PageHeader as Qe, AppSidebar as
|
|
1
|
+
import { shellCopy as Oe, nasCopy as oe, nasErrorCopy as we, format as ve, saveCopy as Ce, saveError as be, createNasProvider as $e, identityCopy as Re, backgroundCopy as qe, createBackgroundPickerProvider as Le, backgroundErrorCopy as Be, requestKey as _e, delegateCopy as xe, errorCopy as Fe, scopedPicker as Ne, authorizationCopy as Me } from "./index.js";
|
|
2
|
+
import { activePage as mt, authorizationCatalogs as bt, backgroundCatalogs as kt, catalogs as _t, createBackgroundSaveFacade as gt, createFileTransfers as ht, decodeResponse as wt, delegateCatalogs as Ct, encodeRequest as $t, identityCatalogs as xt, nasCatalogs as St, protocolCodes as zt, protocolOps as Vt, protocolSchemas as Pt, saveCatalogs as Ut, shellCatalogs as Dt, shellPages as At, uiLocale as Et, uiLocales as Tt } from "./index.js";
|
|
3
|
+
import { inject as He, ref as p, onBeforeUnmount as se, defineComponent as ae, computed as N, openBlock as t, createBlock as g, unref as e, withCtx as s, createVNode as b, renderSlot as ke, createElementVNode as _, onMounted as ie, createElementBlock as C, toDisplayString as l, createTextVNode as f, createCommentVNode as m, Fragment as j, renderList as te, watch as Se, withModifiers as ce, onUnmounted as ze, nextTick as Ke, resolveDynamicComponent as Je } from "vue";
|
|
4
|
+
import { AppLayout as Xe, PageContent as Ge, PageHeader as Qe, AppSidebar as Ye, Button as z, FilePicker as We, Callout as Q, TreeView as Ze, DataGrid as je, Dialog as Ve, SettingsSection as de, Link as Pe, Form as pe, FormItem as ne, Input as re, FormActions as fe, Select as Ue, Checkbox as ea, Surface as aa } from "@synopackageland/ui";
|
|
5
5
|
import { Timer as la, Info as ta, Folder as ge, File as na, TriangleAlert as sa, ShieldCheck as he } from "@lucide/vue";
|
|
6
6
|
const ua = /* @__PURE__ */ Symbol("executor-setup");
|
|
7
7
|
function ia() {
|
|
@@ -17,100 +17,100 @@ function ia() {
|
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
|
-
function
|
|
21
|
-
const
|
|
20
|
+
function nt(y) {
|
|
21
|
+
const D = p(!1), a = p(!1), $ = p(), u = p("");
|
|
22
22
|
let r = !1, n = 0, i, o;
|
|
23
|
-
function
|
|
23
|
+
function h() {
|
|
24
24
|
clearTimeout(i), clearTimeout(o);
|
|
25
25
|
}
|
|
26
|
-
function
|
|
27
|
-
n++,
|
|
26
|
+
function v(P = "") {
|
|
27
|
+
n++, h(), $.value = void 0, u.value = P;
|
|
28
28
|
}
|
|
29
|
-
function
|
|
29
|
+
function w(P) {
|
|
30
30
|
if (r) return;
|
|
31
|
-
const
|
|
32
|
-
if (!Number.isFinite(
|
|
33
|
-
|
|
31
|
+
const q = Date.parse(P.expiresAt) - Date.now();
|
|
32
|
+
if (!Number.isFinite(q) || q <= 0) {
|
|
33
|
+
v("expired");
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
|
-
|
|
37
|
-
const
|
|
36
|
+
h(), $.value = P, u.value = "", i = setTimeout(() => v("expired"), q);
|
|
37
|
+
const Y = n;
|
|
38
38
|
o = setTimeout(async () => {
|
|
39
39
|
try {
|
|
40
|
-
const X = await
|
|
41
|
-
!r && n ===
|
|
40
|
+
const X = await y.call("identity.session");
|
|
41
|
+
!r && n === Y && w(X);
|
|
42
42
|
} catch {
|
|
43
|
-
!r && n ===
|
|
43
|
+
!r && n === Y && v("expired");
|
|
44
44
|
}
|
|
45
|
-
}, Math.min(6e4,
|
|
45
|
+
}, Math.min(6e4, q));
|
|
46
46
|
}
|
|
47
|
-
async function
|
|
47
|
+
async function U() {
|
|
48
48
|
try {
|
|
49
|
-
const
|
|
49
|
+
const P = await y.call("identity.status");
|
|
50
50
|
if (r) return;
|
|
51
|
-
if (
|
|
51
|
+
if (D.value = P.enabled === !0, D.value)
|
|
52
52
|
try {
|
|
53
|
-
|
|
53
|
+
w(await y.call("identity.session", { bootstrap: !0 }));
|
|
54
54
|
} catch {
|
|
55
|
-
r ||
|
|
55
|
+
r || v();
|
|
56
56
|
}
|
|
57
|
-
} catch (
|
|
58
|
-
const
|
|
59
|
-
|
|
57
|
+
} catch (P) {
|
|
58
|
+
const q = P?.code;
|
|
59
|
+
D.value = !["unknown_method", "admin_required", "app_privilege_denied", "session_required"].includes(q || ""), D.value && (u.value = "unavailable");
|
|
60
60
|
} finally {
|
|
61
61
|
r || (a.value = !0);
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
async function
|
|
65
|
-
const
|
|
64
|
+
async function c(P, q) {
|
|
65
|
+
const Y = n;
|
|
66
66
|
try {
|
|
67
|
-
const X = await
|
|
68
|
-
if (r ||
|
|
67
|
+
const X = await y.call(P, q);
|
|
68
|
+
if (r || D.value && Y !== n) throw { code: "session_required" };
|
|
69
69
|
return X;
|
|
70
70
|
} catch (X) {
|
|
71
71
|
const F = X?.code;
|
|
72
|
-
throw !r &&
|
|
72
|
+
throw !r && Y === n && D.value && ["session_required", "session_revalidation_required"].includes(F || "") && v(F === "session_revalidation_required" ? "revalidate" : "expired"), X;
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
|
-
async function
|
|
76
|
-
const X = await
|
|
77
|
-
r || (n++,
|
|
75
|
+
async function V(P, q, Y) {
|
|
76
|
+
const X = await y.call("identity.login", { account: P, password: q, otp: Y });
|
|
77
|
+
r || (n++, w(X));
|
|
78
78
|
}
|
|
79
79
|
async function S() {
|
|
80
|
-
const
|
|
81
|
-
r || (n++,
|
|
80
|
+
const P = await y.call("identity.session", { bootstrap: !0 });
|
|
81
|
+
r || (n++, w(P));
|
|
82
82
|
}
|
|
83
|
-
async function
|
|
84
|
-
await
|
|
83
|
+
async function E() {
|
|
84
|
+
await y.call("identity.logout"), r || v();
|
|
85
85
|
}
|
|
86
86
|
function H() {
|
|
87
|
-
r = !0,
|
|
87
|
+
r = !0, v();
|
|
88
88
|
}
|
|
89
|
-
return { enabled:
|
|
89
|
+
return { enabled: D, ready: a, subject: $, notice: u, start: U, call: c, login: V, bootstrap: S, logout: E, dispose: H };
|
|
90
90
|
}
|
|
91
91
|
function oa() {
|
|
92
|
-
const
|
|
92
|
+
const y = p(!1), D = p();
|
|
93
93
|
let a = !1, $ = 0, u;
|
|
94
94
|
function r() {
|
|
95
|
-
$++, u?.abort(), u = void 0,
|
|
95
|
+
$++, u?.abort(), u = void 0, y.value = !1, D.value = void 0;
|
|
96
96
|
}
|
|
97
97
|
async function n(i) {
|
|
98
|
-
if (a ||
|
|
99
|
-
const o = ++$,
|
|
100
|
-
u =
|
|
98
|
+
if (a || y.value) return;
|
|
99
|
+
const o = ++$, h = new AbortController();
|
|
100
|
+
u = h, y.value = !0, D.value = void 0;
|
|
101
101
|
try {
|
|
102
|
-
const
|
|
103
|
-
return !a && o === $ ?
|
|
104
|
-
} catch (
|
|
105
|
-
!a && o === $ && (
|
|
102
|
+
const v = await i(h.signal);
|
|
103
|
+
return !a && o === $ ? v : void 0;
|
|
104
|
+
} catch (v) {
|
|
105
|
+
!a && o === $ && (D.value = v);
|
|
106
106
|
return;
|
|
107
107
|
} finally {
|
|
108
|
-
!a && o === $ && (
|
|
108
|
+
!a && o === $ && (y.value = !1, u = void 0);
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
return se(() => {
|
|
112
112
|
a = !0, r();
|
|
113
|
-
}), { busy:
|
|
113
|
+
}), { busy: y, error: D, run: n, cancel: r };
|
|
114
114
|
}
|
|
115
115
|
const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
116
116
|
__name: "AppShell",
|
|
@@ -121,20 +121,20 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
121
121
|
description: {}
|
|
122
122
|
},
|
|
123
123
|
emits: ["update:modelValue"],
|
|
124
|
-
setup(
|
|
125
|
-
const a =
|
|
124
|
+
setup(y, { emit: D }) {
|
|
125
|
+
const a = y, $ = D, u = N(() => Oe(a.locale)), r = { status: ta, background: la }, n = N(() => [{
|
|
126
126
|
items: a.pages.map((o) => ({ key: o, label: u.value[o], icon: r[o] }))
|
|
127
127
|
}]), i = N(() => u.value[a.modelValue] ?? u.value.status);
|
|
128
|
-
return (o,
|
|
128
|
+
return (o, h) => (t(), g(e(Xe), {
|
|
129
129
|
class: "app-shell",
|
|
130
130
|
"min-height": "0",
|
|
131
131
|
"wide-layout": "window"
|
|
132
132
|
}, {
|
|
133
133
|
sidebar: s(() => [
|
|
134
|
-
b(e(
|
|
135
|
-
"model-value":
|
|
134
|
+
b(e(Ye), {
|
|
135
|
+
"model-value": y.modelValue,
|
|
136
136
|
groups: n.value,
|
|
137
|
-
"onUpdate:modelValue":
|
|
137
|
+
"onUpdate:modelValue": h[0] || (h[0] = (v) => $("update:modelValue", v))
|
|
138
138
|
}, null, 8, ["model-value", "groups"])
|
|
139
139
|
]),
|
|
140
140
|
default: s(() => [
|
|
@@ -142,14 +142,14 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
142
142
|
default: s(() => [
|
|
143
143
|
b(e(Qe), {
|
|
144
144
|
title: i.value,
|
|
145
|
-
description:
|
|
145
|
+
description: y.description
|
|
146
146
|
}, {
|
|
147
147
|
actions: s(() => [
|
|
148
148
|
ke(o.$slots, "actions", {}, void 0, !0)
|
|
149
149
|
]),
|
|
150
150
|
_: 3
|
|
151
151
|
}, 8, ["title", "description"]),
|
|
152
|
-
|
|
152
|
+
_("div", ra, [
|
|
153
153
|
ke(o.$slots, "default", {}, void 0, !0)
|
|
154
154
|
])
|
|
155
155
|
]),
|
|
@@ -159,12 +159,12 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
159
159
|
_: 3
|
|
160
160
|
}));
|
|
161
161
|
}
|
|
162
|
-
}), ue = (
|
|
163
|
-
const a =
|
|
164
|
-
for (const [$, u] of
|
|
162
|
+
}), ue = (y, D) => {
|
|
163
|
+
const a = y.__vccOpts || y;
|
|
164
|
+
for (const [$, u] of D)
|
|
165
165
|
a[$] = u;
|
|
166
166
|
return a;
|
|
167
|
-
},
|
|
167
|
+
}, st = /* @__PURE__ */ ue(da, [["__scopeId", "data-v-05f63ca5"]]), va = ["aria-busy", "aria-label"], ca = ["aria-label"], pa = {
|
|
168
168
|
key: 0,
|
|
169
169
|
class: "file-toolbar"
|
|
170
170
|
}, fa = {
|
|
@@ -189,17 +189,17 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
189
189
|
transfers: { type: Boolean, default: !1 }
|
|
190
190
|
},
|
|
191
191
|
emits: ["selected"],
|
|
192
|
-
setup(
|
|
193
|
-
const a =
|
|
194
|
-
let
|
|
195
|
-
async function
|
|
196
|
-
const
|
|
197
|
-
!
|
|
192
|
+
setup(y, { emit: D }) {
|
|
193
|
+
const a = y, $ = D, u = N(() => oe(a.locale)), r = oa(), { busy: n, error: i } = r, o = p([]), h = p([]), v = p([]), w = p(), U = p(), c = p([]), V = p(), S = p({ key: "name", direction: "asc" }), E = p(0), H = p([]), P = p(!1);
|
|
194
|
+
let q = new AbortController();
|
|
195
|
+
async function Y() {
|
|
196
|
+
const d = w.value;
|
|
197
|
+
!d || d.isDir || !a.provider.download || await r.run(async (k) => (await a.provider.info(d.path, k), a.provider.download(d.path), !0));
|
|
198
198
|
}
|
|
199
199
|
async function X() {
|
|
200
|
-
const
|
|
201
|
-
if (!
|
|
202
|
-
|
|
200
|
+
const d = v.value.at(-1)?.path, k = H.value[0];
|
|
201
|
+
if (!d || !k || !a.provider.upload) return;
|
|
202
|
+
P.value = !1, await r.run(async (G) => (await a.provider.upload(d, k, G), !0)) && (H.value = [], await R(v.value), P.value = !0);
|
|
203
203
|
}
|
|
204
204
|
const F = N(() => [
|
|
205
205
|
{ key: "name", label: u.value.nameColumn, sortable: !0 },
|
|
@@ -207,64 +207,64 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
207
207
|
{ key: "bytes", label: u.value.sizeColumn, align: "right", sortable: !0 },
|
|
208
208
|
{ key: "selection", label: u.value.selectAction }
|
|
209
209
|
]);
|
|
210
|
-
function L(
|
|
211
|
-
return { id:
|
|
210
|
+
function L(d) {
|
|
211
|
+
return { id: d.path, label: d.name, icon: ge, data: d };
|
|
212
212
|
}
|
|
213
|
-
function J(
|
|
214
|
-
|
|
213
|
+
function J(d) {
|
|
214
|
+
w.value = d, $("selected", d?.path);
|
|
215
215
|
}
|
|
216
|
-
function K(
|
|
217
|
-
for (const G of
|
|
216
|
+
function K(d, k, x = []) {
|
|
217
|
+
for (const G of d) {
|
|
218
218
|
const Z = [...x, G.data];
|
|
219
|
-
if (G.id ===
|
|
220
|
-
const ee = K(G.children ?? [],
|
|
219
|
+
if (G.id === k) return Z;
|
|
220
|
+
const ee = K(G.children ?? [], k, Z);
|
|
221
221
|
if (ee) return ee;
|
|
222
222
|
}
|
|
223
223
|
}
|
|
224
|
-
async function
|
|
225
|
-
const
|
|
224
|
+
async function W(d) {
|
|
225
|
+
const k = E.value, x = q.signal;
|
|
226
226
|
try {
|
|
227
227
|
const G = [];
|
|
228
228
|
let Z = 0;
|
|
229
229
|
for (; Z !== void 0; ) {
|
|
230
|
-
const ee = await a.provider.list(
|
|
231
|
-
if (x.aborted ||
|
|
230
|
+
const ee = await a.provider.list(d.id, { offset: Z, sortBy: "name", sortDirection: "ASC" }, x);
|
|
231
|
+
if (x.aborted || k !== E.value) return;
|
|
232
232
|
G.push(...ee.entries.filter((me) => me.isDir).map(L)), Z = ee.nextOffset;
|
|
233
233
|
}
|
|
234
234
|
return G;
|
|
235
235
|
} catch (G) {
|
|
236
|
-
!x.aborted &&
|
|
236
|
+
!x.aborted && k === E.value && (i.value = G, J());
|
|
237
237
|
return;
|
|
238
238
|
}
|
|
239
239
|
}
|
|
240
|
-
async function
|
|
240
|
+
async function R(d, k = !1) {
|
|
241
241
|
if (n.value) return;
|
|
242
|
-
J(), o.value =
|
|
243
|
-
const x =
|
|
244
|
-
|
|
242
|
+
J(), o.value = k ? o.value : [], U.value = k ? U.value : void 0;
|
|
243
|
+
const x = k ? U.value ?? 0 : 0, G = d.at(-1)?.path;
|
|
244
|
+
v.value = d;
|
|
245
245
|
const Z = await r.run((ee) => G ? a.provider.list(G, { offset: x, sortBy: S.value.key, sortDirection: S.value.direction === "asc" ? "ASC" : "DESC" }, ee) : a.provider.shares(x, ee));
|
|
246
|
-
Z && (o.value =
|
|
246
|
+
Z && (o.value = k ? [...o.value, ...Z.entries] : Z.entries, U.value = Z.nextOffset, G || (h.value = o.value.filter((ee) => ee.isDir).map(L)));
|
|
247
247
|
}
|
|
248
|
-
function O(
|
|
249
|
-
|
|
248
|
+
function O(d) {
|
|
249
|
+
R([...v.value, d]);
|
|
250
250
|
}
|
|
251
|
-
function T(
|
|
252
|
-
S.value = { key:
|
|
251
|
+
function T(d) {
|
|
252
|
+
S.value = { key: d?.key === "bytes" ? "size" : "name", direction: d?.direction ?? "asc" }, R(v.value);
|
|
253
253
|
}
|
|
254
254
|
function M() {
|
|
255
|
-
n.value || (
|
|
255
|
+
n.value || (E.value++, q.abort(), q = new AbortController(), h.value = [], c.value = [], V.value = void 0, R([]));
|
|
256
256
|
}
|
|
257
257
|
return ie(() => {
|
|
258
|
-
|
|
258
|
+
R([]);
|
|
259
259
|
}), se(() => {
|
|
260
|
-
|
|
261
|
-
}), (
|
|
260
|
+
E.value++, q.abort();
|
|
261
|
+
}), (d, k) => (t(), C("section", {
|
|
262
262
|
class: "file-browser",
|
|
263
263
|
"aria-busy": e(n),
|
|
264
264
|
"aria-label": u.value.title
|
|
265
265
|
}, [
|
|
266
|
-
|
|
267
|
-
|
|
266
|
+
_("p", null, l(u.value.ownPermissions), 1),
|
|
267
|
+
_("nav", {
|
|
268
268
|
class: "file-toolbar",
|
|
269
269
|
"aria-label": u.value.directoryKind
|
|
270
270
|
}, [
|
|
@@ -274,53 +274,53 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
274
274
|
onClick: M
|
|
275
275
|
}, {
|
|
276
276
|
default: s(() => [
|
|
277
|
-
|
|
277
|
+
f(l(u.value.refresh), 1)
|
|
278
278
|
]),
|
|
279
279
|
_: 1
|
|
280
280
|
}, 8, ["disabled"]),
|
|
281
|
-
|
|
281
|
+
v.value.length ? (t(), g(e(z), {
|
|
282
282
|
key: 0,
|
|
283
283
|
variant: "secondary",
|
|
284
284
|
disabled: e(n),
|
|
285
|
-
onClick:
|
|
285
|
+
onClick: k[0] || (k[0] = (x) => R(v.value.slice(0, -1)))
|
|
286
286
|
}, {
|
|
287
287
|
default: s(() => [
|
|
288
|
-
|
|
288
|
+
f(l(u.value.back), 1)
|
|
289
289
|
]),
|
|
290
290
|
_: 1
|
|
291
|
-
}, 8, ["disabled"])) :
|
|
291
|
+
}, 8, ["disabled"])) : m("", !0),
|
|
292
292
|
b(e(z), {
|
|
293
293
|
variant: "secondary",
|
|
294
294
|
disabled: e(n),
|
|
295
|
-
onClick:
|
|
295
|
+
onClick: k[1] || (k[1] = (x) => R([]))
|
|
296
296
|
}, {
|
|
297
297
|
default: s(() => [
|
|
298
|
-
|
|
298
|
+
f(l(u.value.roots), 1)
|
|
299
299
|
]),
|
|
300
300
|
_: 1
|
|
301
301
|
}, 8, ["disabled"]),
|
|
302
|
-
(t(!0), C(j, null, te(
|
|
302
|
+
(t(!0), C(j, null, te(v.value, (x, G) => (t(), g(e(z), {
|
|
303
303
|
key: x.path,
|
|
304
304
|
variant: "secondary",
|
|
305
305
|
disabled: e(n),
|
|
306
|
-
onClick: (Z) =>
|
|
306
|
+
onClick: (Z) => R(v.value.slice(0, G + 1))
|
|
307
307
|
}, {
|
|
308
308
|
default: s(() => [
|
|
309
|
-
|
|
309
|
+
f(l(x.name), 1)
|
|
310
310
|
]),
|
|
311
311
|
_: 2
|
|
312
312
|
}, 1032, ["disabled", "onClick"]))), 128))
|
|
313
313
|
], 8, ca),
|
|
314
|
-
|
|
315
|
-
b(e(
|
|
314
|
+
y.transfers && y.provider.upload && v.value.length ? (t(), C("div", pa, [
|
|
315
|
+
b(e(We), {
|
|
316
316
|
modelValue: H.value,
|
|
317
|
-
"onUpdate:modelValue":
|
|
317
|
+
"onUpdate:modelValue": k[2] || (k[2] = (x) => H.value = x),
|
|
318
318
|
variant: "compact",
|
|
319
319
|
disabled: e(n),
|
|
320
320
|
"max-files": 1,
|
|
321
321
|
"max-size": 16 * 1024 ** 3,
|
|
322
322
|
title: u.value.upload,
|
|
323
|
-
onRejected:
|
|
323
|
+
onRejected: k[3] || (k[3] = (x) => i.value = { code: "upload_size_required" })
|
|
324
324
|
}, null, 8, ["modelValue", "disabled", "title"]),
|
|
325
325
|
b(e(z), {
|
|
326
326
|
variant: "primary",
|
|
@@ -328,53 +328,53 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
328
328
|
onClick: X
|
|
329
329
|
}, {
|
|
330
330
|
default: s(() => [
|
|
331
|
-
|
|
331
|
+
f(l(u.value.upload), 1)
|
|
332
332
|
]),
|
|
333
333
|
_: 1
|
|
334
334
|
}, 8, ["disabled"])
|
|
335
|
-
])) :
|
|
336
|
-
|
|
337
|
-
|
|
335
|
+
])) : m("", !0),
|
|
336
|
+
P.value ? (t(), C("p", fa, l(u.value.uploaded), 1)) : m("", !0),
|
|
337
|
+
y.transfers && y.provider.download && w.value && !w.value.isDir && !e(i) ? (t(), g(e(z), {
|
|
338
338
|
key: 2,
|
|
339
339
|
variant: "secondary",
|
|
340
340
|
disabled: e(n),
|
|
341
|
-
onClick:
|
|
341
|
+
onClick: Y
|
|
342
342
|
}, {
|
|
343
343
|
default: s(() => [
|
|
344
|
-
|
|
344
|
+
f(l(u.value.download), 1)
|
|
345
345
|
]),
|
|
346
346
|
_: 1
|
|
347
|
-
}, 8, ["disabled"])) :
|
|
348
|
-
e(i) ? (t(),
|
|
347
|
+
}, 8, ["disabled"])) : m("", !0),
|
|
348
|
+
e(i) ? (t(), g(e(Q), {
|
|
349
349
|
key: 3,
|
|
350
350
|
tone: "danger"
|
|
351
351
|
}, {
|
|
352
352
|
default: s(() => [
|
|
353
|
-
|
|
353
|
+
_("span", ya, l(e(we)(e(i), u.value)), 1)
|
|
354
354
|
]),
|
|
355
355
|
_: 1
|
|
356
|
-
})) :
|
|
357
|
-
e(n) ? (t(), C("p", ma, l(u.value.loading), 1)) :
|
|
358
|
-
|
|
359
|
-
|
|
356
|
+
})) : m("", !0),
|
|
357
|
+
e(n) ? (t(), C("p", ma, l(u.value.loading), 1)) : m("", !0),
|
|
358
|
+
_("div", ba, [
|
|
359
|
+
_("aside", {
|
|
360
360
|
class: "file-tree",
|
|
361
361
|
"aria-label": u.value.roots
|
|
362
362
|
}, [
|
|
363
|
-
|
|
364
|
-
key:
|
|
365
|
-
modelValue:
|
|
366
|
-
"onUpdate:modelValue":
|
|
367
|
-
nodes:
|
|
368
|
-
"onUpdate:nodes":
|
|
369
|
-
expanded:
|
|
370
|
-
"onUpdate:expanded":
|
|
371
|
-
"load-children":
|
|
363
|
+
h.value.length ? (t(), g(e(Ze), {
|
|
364
|
+
key: E.value,
|
|
365
|
+
modelValue: V.value,
|
|
366
|
+
"onUpdate:modelValue": k[4] || (k[4] = (x) => V.value = x),
|
|
367
|
+
nodes: h.value,
|
|
368
|
+
"onUpdate:nodes": k[5] || (k[5] = (x) => h.value = x),
|
|
369
|
+
expanded: c.value,
|
|
370
|
+
"onUpdate:expanded": k[6] || (k[6] = (x) => c.value = x),
|
|
371
|
+
"load-children": W,
|
|
372
372
|
"expand-label": (x, G) => e(ve)(G ? u.value.collapse : u.value.expand, x.label),
|
|
373
|
-
onSelect:
|
|
374
|
-
}, null, 8, ["modelValue", "nodes", "expanded", "expand-label"])) :
|
|
373
|
+
onSelect: k[7] || (k[7] = (x) => R(K(h.value, x.id) ?? [x.data]))
|
|
374
|
+
}, null, 8, ["modelValue", "nodes", "expanded", "expand-label"])) : m("", !0)
|
|
375
375
|
], 8, ka),
|
|
376
|
-
|
|
377
|
-
e(i) ?
|
|
376
|
+
_("div", _a, [
|
|
377
|
+
e(i) ? m("", !0) : (t(), g(e(je), {
|
|
378
378
|
key: 0,
|
|
379
379
|
columns: F.value,
|
|
380
380
|
rows: o.value.map((x) => ({ ...x, kind: x.isDir ? u.value.directoryKind : u.value.fileKind })),
|
|
@@ -390,7 +390,7 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
390
390
|
"onUpdate:sort": T
|
|
391
391
|
}, {
|
|
392
392
|
"cell-name": s(({ row: x }) => [
|
|
393
|
-
x.isDir ? (t(),
|
|
393
|
+
x.isDir ? (t(), g(e(z), {
|
|
394
394
|
key: 0,
|
|
395
395
|
variant: "secondary",
|
|
396
396
|
disabled: e(n),
|
|
@@ -402,7 +402,7 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
402
402
|
size: 16,
|
|
403
403
|
"aria-hidden": "true"
|
|
404
404
|
}),
|
|
405
|
-
|
|
405
|
+
f(l(x.name), 1)
|
|
406
406
|
]),
|
|
407
407
|
_: 2
|
|
408
408
|
}, 1032, ["disabled", "aria-label", "onClick"])) : (t(), C("span", ga, [
|
|
@@ -410,54 +410,54 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
410
410
|
size: 16,
|
|
411
411
|
"aria-hidden": "true"
|
|
412
412
|
}),
|
|
413
|
-
|
|
413
|
+
f(l(x.name), 1)
|
|
414
414
|
]))
|
|
415
415
|
]),
|
|
416
416
|
"cell-bytes": s(({ row: x }) => [
|
|
417
|
-
|
|
417
|
+
_("span", ha, l(x.isDir ? "—" : x.bytes ?? "—"), 1)
|
|
418
418
|
]),
|
|
419
419
|
"cell-selection": s(({ row: x }) => [
|
|
420
|
-
(
|
|
420
|
+
(y.mode === "folder" ? x.isDir : !x.isDir) ? (t(), g(e(z), {
|
|
421
421
|
key: 0,
|
|
422
422
|
variant: "secondary",
|
|
423
423
|
disabled: e(n),
|
|
424
|
-
"aria-pressed":
|
|
424
|
+
"aria-pressed": w.value?.path === x.path,
|
|
425
425
|
"aria-label": e(ve)(u.value.select, String(x.name)),
|
|
426
426
|
onClick: (G) => J(o.value.find((Z) => Z.path === x.path))
|
|
427
427
|
}, {
|
|
428
428
|
default: s(() => [
|
|
429
|
-
|
|
429
|
+
f(l(u.value.selectAction), 1)
|
|
430
430
|
]),
|
|
431
431
|
_: 1
|
|
432
|
-
}, 8, ["disabled", "aria-pressed", "aria-label", "onClick"])) :
|
|
432
|
+
}, 8, ["disabled", "aria-pressed", "aria-label", "onClick"])) : m("", !0)
|
|
433
433
|
]),
|
|
434
434
|
_: 1
|
|
435
435
|
}, 8, ["columns", "rows", "loading", "loading-text", "sort", "labels"])),
|
|
436
|
-
|
|
436
|
+
U.value !== void 0 && !e(i) ? (t(), g(e(z), {
|
|
437
437
|
key: 1,
|
|
438
438
|
variant: "secondary",
|
|
439
439
|
disabled: e(n),
|
|
440
|
-
onClick:
|
|
440
|
+
onClick: k[8] || (k[8] = (x) => R(v.value, !0))
|
|
441
441
|
}, {
|
|
442
442
|
default: s(() => [
|
|
443
|
-
|
|
443
|
+
f(l(u.value.loadMore), 1)
|
|
444
444
|
]),
|
|
445
445
|
_: 1
|
|
446
|
-
}, 8, ["disabled"])) :
|
|
447
|
-
|
|
446
|
+
}, 8, ["disabled"])) : m("", !0),
|
|
447
|
+
y.mode === "folder" && v.value.length && !e(i) ? (t(), g(e(z), {
|
|
448
448
|
key: 2,
|
|
449
449
|
variant: "secondary",
|
|
450
450
|
disabled: e(n),
|
|
451
|
-
onClick:
|
|
451
|
+
onClick: k[9] || (k[9] = (x) => J(v.value.at(-1)))
|
|
452
452
|
}, {
|
|
453
453
|
default: s(() => [
|
|
454
|
-
|
|
454
|
+
f(l(e(ve)(u.value.select, v.value.at(-1).name)), 1)
|
|
455
455
|
]),
|
|
456
456
|
_: 1
|
|
457
|
-
}, 8, ["disabled"])) :
|
|
457
|
+
}, 8, ["disabled"])) : m("", !0)
|
|
458
458
|
])
|
|
459
459
|
]),
|
|
460
|
-
|
|
460
|
+
w.value && !e(i) ? (t(), C("p", wa, l(e(ve)(u.value.selected, w.value.path)), 1)) : m("", !0)
|
|
461
461
|
], 8, va));
|
|
462
462
|
}
|
|
463
463
|
}), De = /* @__PURE__ */ ue(Ca, [["__scopeId", "data-v-f1aee828"]]), $a = {
|
|
@@ -475,231 +475,238 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
475
475
|
destination: {}
|
|
476
476
|
},
|
|
477
477
|
emits: ["update:open", "selected", "authorized"],
|
|
478
|
-
setup(
|
|
479
|
-
const a =
|
|
480
|
-
let
|
|
478
|
+
setup(y, { emit: D }) {
|
|
479
|
+
const a = y, $ = D, u = p(), r = N(() => oe(a.locale)), n = N(() => Ce(a.locale)), i = p(!1), o = p();
|
|
480
|
+
let h = 0, v = !1;
|
|
481
481
|
Se(() => a.open, () => {
|
|
482
|
-
|
|
482
|
+
h++, u.value = void 0, o.value = void 0;
|
|
483
483
|
}), se(() => {
|
|
484
|
-
|
|
484
|
+
v = !0, h++;
|
|
485
485
|
});
|
|
486
|
-
function
|
|
486
|
+
function w() {
|
|
487
487
|
i.value || (u.value = void 0, $("update:open", !1));
|
|
488
488
|
}
|
|
489
|
-
async function
|
|
490
|
-
const
|
|
491
|
-
if (!(!
|
|
492
|
-
if (!
|
|
493
|
-
$("selected",
|
|
489
|
+
async function U() {
|
|
490
|
+
const c = u.value, V = a.destination, S = h;
|
|
491
|
+
if (!(!c || i.value || !a.open || v || V && a.mode !== "folder")) {
|
|
492
|
+
if (!V) {
|
|
493
|
+
$("selected", c), w();
|
|
494
494
|
return;
|
|
495
495
|
}
|
|
496
496
|
i.value = !0, o.value = void 0;
|
|
497
497
|
try {
|
|
498
|
-
const
|
|
499
|
-
if (
|
|
500
|
-
if (!
|
|
501
|
-
$("authorized",
|
|
502
|
-
} catch (
|
|
503
|
-
!
|
|
498
|
+
const E = await V.selectDestination({ key: V.key, path: c });
|
|
499
|
+
if (v || S !== h) return;
|
|
500
|
+
if (!E || typeof E.id != "string" || !E.id || typeof E.username != "string" || !E.username || E.path !== c || E.key !== V.key || E.lifetime !== "until-revoked") throw { code: "commit-uncertain" };
|
|
501
|
+
$("authorized", E), i.value = !1, w();
|
|
502
|
+
} catch (E) {
|
|
503
|
+
!v && S === h && (o.value = E);
|
|
504
504
|
} finally {
|
|
505
|
-
|
|
505
|
+
v || (i.value = !1);
|
|
506
506
|
}
|
|
507
507
|
}
|
|
508
508
|
}
|
|
509
|
-
return (
|
|
510
|
-
open:
|
|
511
|
-
title:
|
|
512
|
-
description:
|
|
509
|
+
return (c, V) => (t(), g(e(Ve), {
|
|
510
|
+
open: y.open,
|
|
511
|
+
title: y.title ?? (y.mode === "folder" ? r.value.choose : r.value.chooseFile),
|
|
512
|
+
description: y.description ?? r.value.ownPermissions,
|
|
513
513
|
"close-label": r.value.close,
|
|
514
514
|
"show-close": !i.value,
|
|
515
515
|
width: "800px",
|
|
516
|
-
onEscapeKeyDown:
|
|
516
|
+
onEscapeKeyDown: V[1] || (V[1] = (S) => {
|
|
517
517
|
i.value && S.preventDefault();
|
|
518
518
|
}),
|
|
519
|
-
onInteractOutside:
|
|
519
|
+
onInteractOutside: V[2] || (V[2] = (S) => {
|
|
520
520
|
i.value && S.preventDefault();
|
|
521
521
|
}),
|
|
522
|
-
"onUpdate:open":
|
|
523
|
-
S ||
|
|
522
|
+
"onUpdate:open": V[3] || (V[3] = (S) => {
|
|
523
|
+
S || w();
|
|
524
524
|
})
|
|
525
525
|
}, {
|
|
526
526
|
footer: s(() => [
|
|
527
527
|
b(e(z), {
|
|
528
528
|
variant: "secondary",
|
|
529
529
|
disabled: i.value,
|
|
530
|
-
onClick:
|
|
530
|
+
onClick: w
|
|
531
531
|
}, {
|
|
532
532
|
default: s(() => [
|
|
533
|
-
|
|
533
|
+
f(l(r.value.cancel), 1)
|
|
534
534
|
]),
|
|
535
535
|
_: 1
|
|
536
536
|
}, 8, ["disabled"]),
|
|
537
537
|
b(e(z), {
|
|
538
538
|
variant: "primary",
|
|
539
|
-
disabled: !u.value || i.value || !!
|
|
540
|
-
onClick:
|
|
539
|
+
disabled: !u.value || i.value || !!y.destination && y.mode !== "folder",
|
|
540
|
+
onClick: U
|
|
541
541
|
}, {
|
|
542
542
|
default: s(() => [
|
|
543
|
-
|
|
543
|
+
f(l(r.value.confirm), 1)
|
|
544
544
|
]),
|
|
545
545
|
_: 1
|
|
546
546
|
}, 8, ["disabled"])
|
|
547
547
|
]),
|
|
548
548
|
default: s(() => [
|
|
549
|
-
|
|
550
|
-
o.value ? (t(),
|
|
549
|
+
y.destination ? (t(), C("p", $a, l(n.value.selection), 1)) : m("", !0),
|
|
550
|
+
o.value ? (t(), g(e(Q), {
|
|
551
551
|
key: 1,
|
|
552
552
|
tone: "danger",
|
|
553
553
|
role: "alert",
|
|
554
554
|
class: "save-message"
|
|
555
555
|
}, {
|
|
556
556
|
default: s(() => [
|
|
557
|
-
|
|
557
|
+
f(l(e(be)(o.value, n.value)), 1)
|
|
558
558
|
]),
|
|
559
559
|
_: 1
|
|
560
|
-
})) :
|
|
561
|
-
|
|
560
|
+
})) : m("", !0),
|
|
561
|
+
_("div", {
|
|
562
562
|
class: "nas-picker-content",
|
|
563
563
|
"aria-busy": i.value,
|
|
564
564
|
inert: i.value
|
|
565
565
|
}, [
|
|
566
|
-
|
|
566
|
+
y.open ? (t(), g(De, {
|
|
567
567
|
key: 0,
|
|
568
|
-
provider:
|
|
569
|
-
locale:
|
|
570
|
-
mode:
|
|
571
|
-
onSelected:
|
|
572
|
-
}, null, 8, ["provider", "locale", "mode"])) :
|
|
568
|
+
provider: y.provider,
|
|
569
|
+
locale: y.locale,
|
|
570
|
+
mode: y.mode,
|
|
571
|
+
onSelected: V[0] || (V[0] = (S) => u.value = S)
|
|
572
|
+
}, null, 8, ["provider", "locale", "mode"])) : m("", !0)
|
|
573
573
|
], 8, xa)
|
|
574
574
|
]),
|
|
575
575
|
_: 1
|
|
576
576
|
}, 8, ["open", "title", "description", "close-label", "show-close"]));
|
|
577
577
|
}
|
|
578
|
-
}), ye = /* @__PURE__ */ ue(Sa, [["__scopeId", "data-v-535a0e54"]]), za = { role: "alert" }, Va = { class: "files-actions" },
|
|
578
|
+
}), ye = /* @__PURE__ */ ue(Sa, [["__scopeId", "data-v-535a0e54"]]), za = { role: "alert" }, Va = { class: "files-actions" }, Pa = {
|
|
579
579
|
key: 0,
|
|
580
580
|
class: "files-path",
|
|
581
581
|
role: "status"
|
|
582
|
-
},
|
|
582
|
+
}, Ua = /* @__PURE__ */ ae({
|
|
583
583
|
__name: "FilesPage",
|
|
584
584
|
props: {
|
|
585
585
|
ctx: {}
|
|
586
586
|
},
|
|
587
|
-
setup(
|
|
588
|
-
const
|
|
589
|
-
let
|
|
590
|
-
async function
|
|
591
|
-
if (!
|
|
587
|
+
setup(y) {
|
|
588
|
+
const D = y, a = p(), $ = p(!1), u = p("folder"), r = p(!1), n = p(""), i = p(0), o = $e(D.ctx);
|
|
589
|
+
let h = !1, v;
|
|
590
|
+
async function w() {
|
|
591
|
+
if (!h) {
|
|
592
592
|
a.value = void 0, $.value = !1, n.value = "", r.value = !1, i.value++;
|
|
593
593
|
try {
|
|
594
|
-
await
|
|
595
|
-
} catch (
|
|
596
|
-
!
|
|
594
|
+
await D.ctx.call("nas.session.status"), h || ($.value = !0);
|
|
595
|
+
} catch (U) {
|
|
596
|
+
!h && U?.code !== "unknown_method" && (a.value = U);
|
|
597
597
|
}
|
|
598
598
|
}
|
|
599
599
|
}
|
|
600
600
|
return ie(() => {
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
}),
|
|
601
|
+
v = D.ctx.reopen(() => {
|
|
602
|
+
w();
|
|
603
|
+
}), w();
|
|
604
604
|
}), se(() => {
|
|
605
|
-
|
|
606
|
-
}), (
|
|
607
|
-
a.value ? (t(),
|
|
605
|
+
h = !0, v?.(), o.dispose();
|
|
606
|
+
}), (U, c) => (t(), C(j, null, [
|
|
607
|
+
a.value ? (t(), g(e(Q), {
|
|
608
608
|
key: 0,
|
|
609
609
|
tone: "danger"
|
|
610
610
|
}, {
|
|
611
611
|
default: s(() => [
|
|
612
|
-
|
|
612
|
+
_("span", za, l(e(we)(a.value, e(oe)(y.ctx.locale))), 1),
|
|
613
613
|
b(e(z), {
|
|
614
614
|
variant: "secondary",
|
|
615
|
-
onClick:
|
|
615
|
+
onClick: w
|
|
616
616
|
}, {
|
|
617
617
|
default: s(() => [
|
|
618
|
-
|
|
618
|
+
f(l(e(oe)(y.ctx.locale).refresh), 1)
|
|
619
619
|
]),
|
|
620
620
|
_: 1
|
|
621
621
|
})
|
|
622
622
|
]),
|
|
623
623
|
_: 1
|
|
624
|
-
})) :
|
|
625
|
-
$.value ? (t(),
|
|
624
|
+
})) : m("", !0),
|
|
625
|
+
$.value ? (t(), g(e(de), {
|
|
626
626
|
key: 1,
|
|
627
|
-
title: e(oe)(
|
|
627
|
+
title: e(oe)(y.ctx.locale).title,
|
|
628
628
|
collapsible: !1
|
|
629
629
|
}, {
|
|
630
630
|
default: s(() => [
|
|
631
|
-
|
|
631
|
+
_("div", Va, [
|
|
632
632
|
b(e(z), {
|
|
633
633
|
variant: "secondary",
|
|
634
|
-
onClick:
|
|
634
|
+
onClick: c[0] || (c[0] = (V) => {
|
|
635
635
|
u.value = "folder", r.value = !0;
|
|
636
636
|
})
|
|
637
637
|
}, {
|
|
638
638
|
default: s(() => [
|
|
639
|
-
|
|
639
|
+
f(l(e(oe)(y.ctx.locale).choose), 1)
|
|
640
640
|
]),
|
|
641
641
|
_: 1
|
|
642
642
|
}),
|
|
643
643
|
b(e(z), {
|
|
644
644
|
variant: "secondary",
|
|
645
|
-
onClick:
|
|
645
|
+
onClick: c[1] || (c[1] = (V) => {
|
|
646
646
|
u.value = "file", r.value = !0;
|
|
647
647
|
})
|
|
648
648
|
}, {
|
|
649
649
|
default: s(() => [
|
|
650
|
-
|
|
650
|
+
f(l(e(oe)(y.ctx.locale).chooseFile), 1)
|
|
651
651
|
]),
|
|
652
652
|
_: 1
|
|
653
653
|
})
|
|
654
654
|
]),
|
|
655
|
-
n.value ? (t(), C("p",
|
|
656
|
-
(t(),
|
|
655
|
+
n.value ? (t(), C("p", Pa, l(n.value), 1)) : m("", !0),
|
|
656
|
+
(t(), g(De, {
|
|
657
657
|
key: i.value,
|
|
658
658
|
provider: e(o),
|
|
659
|
-
locale:
|
|
659
|
+
locale: y.ctx.locale,
|
|
660
660
|
transfers: ""
|
|
661
661
|
}, null, 8, ["provider", "locale"])),
|
|
662
662
|
b(ye, {
|
|
663
663
|
provider: e(o),
|
|
664
|
-
locale:
|
|
664
|
+
locale: y.ctx.locale,
|
|
665
665
|
mode: u.value,
|
|
666
666
|
open: r.value,
|
|
667
|
-
"onUpdate:open":
|
|
668
|
-
onSelected:
|
|
667
|
+
"onUpdate:open": c[2] || (c[2] = (V) => r.value = V),
|
|
668
|
+
onSelected: c[3] || (c[3] = (V) => n.value = V)
|
|
669
669
|
}, null, 8, ["provider", "locale", "mode", "open"])
|
|
670
670
|
]),
|
|
671
671
|
_: 1
|
|
672
|
-
}, 8, ["title"])) :
|
|
672
|
+
}, 8, ["title"])) : m("", !0)
|
|
673
673
|
], 64));
|
|
674
674
|
}
|
|
675
|
-
}),
|
|
675
|
+
}), ut = /* @__PURE__ */ ue(Ua, [["__scopeId", "data-v-97bc5d15"]]), Da = { key: 0 }, Aa = { key: 0 }, Ea = { key: 3 }, Ta = { role: "alert" }, Ia = 5e3, it = /* @__PURE__ */ ae({
|
|
676
676
|
__name: "PortalSettings",
|
|
677
677
|
props: {
|
|
678
678
|
portal: {}
|
|
679
679
|
},
|
|
680
|
-
setup(
|
|
681
|
-
const
|
|
680
|
+
setup(y) {
|
|
681
|
+
const D = y, a = D.portal.messages, $ = p(), u = p(""), r = p(!1), n = p("");
|
|
682
682
|
let i = !1;
|
|
683
|
-
function o(
|
|
684
|
-
i || ($.value =
|
|
683
|
+
function o(w) {
|
|
684
|
+
i || ($.value = w, u.value = w.alias || w.defaultAlias);
|
|
685
685
|
}
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
686
|
+
const h = /* @__PURE__ */ Symbol("late");
|
|
687
|
+
async function v(w) {
|
|
688
|
+
if (r.value) return;
|
|
689
|
+
r.value = !0, n.value = "";
|
|
690
|
+
const U = w();
|
|
691
|
+
try {
|
|
692
|
+
const c = await Promise.race([U, new Promise((V) => setTimeout(() => V(h), Ia))]);
|
|
693
|
+
if (c !== h) {
|
|
694
|
+
o(c);
|
|
695
|
+
return;
|
|
695
696
|
}
|
|
697
|
+
U.then(o, () => {
|
|
698
|
+
}), o(await D.portal.status());
|
|
699
|
+
} catch (c) {
|
|
700
|
+
i || (n.value = a[c?.code || ""] || a.portal_unavailable);
|
|
701
|
+
} finally {
|
|
702
|
+
i || (r.value = !1);
|
|
696
703
|
}
|
|
697
704
|
}
|
|
698
705
|
return ie(() => {
|
|
699
|
-
|
|
706
|
+
D.portal.status().then(o);
|
|
700
707
|
}), se(() => {
|
|
701
708
|
i = !0;
|
|
702
|
-
}), (
|
|
709
|
+
}), (w, U) => $.value ? (t(), g(e(de), {
|
|
703
710
|
key: 0,
|
|
704
711
|
title: e(a).title,
|
|
705
712
|
collapsible: !1,
|
|
@@ -707,21 +714,21 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
707
714
|
}, {
|
|
708
715
|
default: s(() => [
|
|
709
716
|
$.value.state === "active" ? (t(), C("p", Da, [
|
|
710
|
-
|
|
711
|
-
b(e(
|
|
717
|
+
f(l(e(a).link) + " ", 1),
|
|
718
|
+
b(e(Pe), {
|
|
712
719
|
href: $.value.url,
|
|
713
720
|
external: ""
|
|
714
721
|
}, {
|
|
715
722
|
default: s(() => [
|
|
716
|
-
|
|
723
|
+
f(l($.value.url), 1)
|
|
717
724
|
]),
|
|
718
725
|
_: 1
|
|
719
726
|
}, 8, ["href"])
|
|
720
|
-
])) :
|
|
727
|
+
])) : m("", !0),
|
|
721
728
|
$.value.canManage ? (t(), C(j, { key: 1 }, [
|
|
722
|
-
$.value.state !== "active" ? (t(), C("p", Aa, l(e(a).inactive), 1)) :
|
|
729
|
+
$.value.state !== "active" ? (t(), C("p", Aa, l(e(a).inactive), 1)) : m("", !0),
|
|
723
730
|
b(e(pe), {
|
|
724
|
-
onSubmit:
|
|
731
|
+
onSubmit: U[2] || (U[2] = ce((c) => v(() => y.portal.apply(u.value)), ["prevent"]))
|
|
725
732
|
}, {
|
|
726
733
|
default: s(() => [
|
|
727
734
|
b(e(ne), {
|
|
@@ -732,7 +739,7 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
732
739
|
b(e(re), {
|
|
733
740
|
id: "portal-alias",
|
|
734
741
|
modelValue: u.value,
|
|
735
|
-
"onUpdate:modelValue":
|
|
742
|
+
"onUpdate:modelValue": U[0] || (U[0] = (c) => u.value = c),
|
|
736
743
|
maxlength: "64",
|
|
737
744
|
autocomplete: "off",
|
|
738
745
|
disabled: r.value
|
|
@@ -748,21 +755,21 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
748
755
|
disabled: r.value
|
|
749
756
|
}, {
|
|
750
757
|
default: s(() => [
|
|
751
|
-
|
|
758
|
+
f(l(e(a).apply), 1)
|
|
752
759
|
]),
|
|
753
760
|
_: 1
|
|
754
761
|
}, 8, ["disabled"]),
|
|
755
|
-
$.value.state === "active" ? (t(),
|
|
762
|
+
$.value.state === "active" ? (t(), g(e(z), {
|
|
756
763
|
key: 0,
|
|
757
764
|
variant: "secondary",
|
|
758
765
|
disabled: r.value,
|
|
759
|
-
onClick:
|
|
766
|
+
onClick: U[1] || (U[1] = (c) => v(() => y.portal.disable()))
|
|
760
767
|
}, {
|
|
761
768
|
default: s(() => [
|
|
762
|
-
|
|
769
|
+
f(l(e(a).disable), 1)
|
|
763
770
|
]),
|
|
764
771
|
_: 1
|
|
765
|
-
}, 8, ["disabled"])) :
|
|
772
|
+
}, 8, ["disabled"])) : m("", !0)
|
|
766
773
|
]),
|
|
767
774
|
_: 1
|
|
768
775
|
})
|
|
@@ -771,74 +778,74 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
771
778
|
}),
|
|
772
779
|
b(e(z), {
|
|
773
780
|
variant: "secondary",
|
|
774
|
-
onClick:
|
|
781
|
+
onClick: U[3] || (U[3] = (c) => y.portal.openControlPanel())
|
|
775
782
|
}, {
|
|
776
783
|
default: s(() => [
|
|
777
|
-
|
|
784
|
+
f(l(e(a).advanced), 1)
|
|
778
785
|
]),
|
|
779
786
|
_: 1
|
|
780
787
|
})
|
|
781
|
-
], 64)) : $.value.controlPanel ? (t(),
|
|
788
|
+
], 64)) : $.value.controlPanel ? (t(), g(e(z), {
|
|
782
789
|
key: 2,
|
|
783
790
|
variant: "secondary",
|
|
784
|
-
onClick:
|
|
791
|
+
onClick: U[4] || (U[4] = (c) => y.portal.openControlPanel())
|
|
785
792
|
}, {
|
|
786
793
|
default: s(() => [
|
|
787
|
-
|
|
794
|
+
f(l(e(a).controlPanel), 1)
|
|
788
795
|
]),
|
|
789
796
|
_: 1
|
|
790
|
-
})) : $.value.state !== "active" ? (t(), C("p", Ea, l(e(a).askAdmin), 1)) :
|
|
791
|
-
n.value ? (t(),
|
|
797
|
+
})) : $.value.state !== "active" ? (t(), C("p", Ea, l(e(a).askAdmin), 1)) : m("", !0),
|
|
798
|
+
n.value ? (t(), g(e(Q), {
|
|
792
799
|
key: 4,
|
|
793
800
|
tone: "danger"
|
|
794
801
|
}, {
|
|
795
802
|
default: s(() => [
|
|
796
|
-
|
|
803
|
+
_("span", Ta, l(n.value), 1)
|
|
797
804
|
]),
|
|
798
805
|
_: 1
|
|
799
|
-
})) :
|
|
806
|
+
})) : m("", !0)
|
|
800
807
|
]),
|
|
801
808
|
_: 1
|
|
802
|
-
}, 8, ["title", "aria-busy"])) :
|
|
809
|
+
}, 8, ["title", "aria-busy"])) : m("", !0);
|
|
803
810
|
}
|
|
804
|
-
}),
|
|
811
|
+
}), Oa = ["aria-busy"], Ra = {
|
|
805
812
|
key: 1,
|
|
806
813
|
role: "status"
|
|
807
|
-
}, qa = { role: "alert" },
|
|
814
|
+
}, qa = { role: "alert" }, La = { role: "status" }, Ba = /* @__PURE__ */ ae({
|
|
808
815
|
__name: "LoginPage",
|
|
809
816
|
props: {
|
|
810
817
|
session: {},
|
|
811
818
|
locale: {}
|
|
812
819
|
},
|
|
813
|
-
setup(
|
|
814
|
-
const
|
|
815
|
-
let
|
|
816
|
-
function E
|
|
817
|
-
const H =
|
|
820
|
+
setup(y) {
|
|
821
|
+
const D = y, a = N(() => Re(D.locale)), $ = p(""), u = p(""), r = p(""), n = p(!1), i = p(!1), o = p(""), h = p(), v = N(() => window.location.protocol === "https:");
|
|
822
|
+
let w = !1;
|
|
823
|
+
function U(E) {
|
|
824
|
+
const H = E?.code;
|
|
818
825
|
return a.value.errors[H || ""] || a.value.errors.failed;
|
|
819
826
|
}
|
|
820
|
-
async function
|
|
821
|
-
if (!(i.value || !
|
|
827
|
+
async function c() {
|
|
828
|
+
if (!(i.value || !v.value || !$.value || !u.value || n.value && !r.value)) {
|
|
822
829
|
i.value = !0, o.value = "";
|
|
823
830
|
try {
|
|
824
|
-
await
|
|
825
|
-
} catch (
|
|
826
|
-
if (
|
|
827
|
-
r.value = "",
|
|
831
|
+
await D.session.login($.value, u.value, r.value), u.value = "", r.value = "";
|
|
832
|
+
} catch (E) {
|
|
833
|
+
if (w) return;
|
|
834
|
+
r.value = "", E?.code === "otp_required" ? n.value = !0 : (o.value = U(E), u.value = "", n.value = !1);
|
|
828
835
|
} finally {
|
|
829
|
-
|
|
836
|
+
w || (i.value = !1, n.value && (await Ke(), w || h.value?.querySelector("input")?.focus()));
|
|
830
837
|
}
|
|
831
838
|
}
|
|
832
839
|
}
|
|
833
|
-
async function
|
|
840
|
+
async function V() {
|
|
834
841
|
if (!i.value) {
|
|
835
842
|
i.value = !0, o.value = "";
|
|
836
843
|
try {
|
|
837
|
-
await
|
|
838
|
-
} catch (
|
|
839
|
-
|
|
844
|
+
await D.session.bootstrap();
|
|
845
|
+
} catch (E) {
|
|
846
|
+
w || (o.value = U(E));
|
|
840
847
|
} finally {
|
|
841
|
-
|
|
848
|
+
w || (i.value = !1);
|
|
842
849
|
}
|
|
843
850
|
}
|
|
844
851
|
}
|
|
@@ -846,8 +853,8 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
846
853
|
u.value = "", r.value = "", n.value = !1, o.value = "";
|
|
847
854
|
}
|
|
848
855
|
return ze(() => {
|
|
849
|
-
|
|
850
|
-
}), (
|
|
856
|
+
w = !0, u.value = "", r.value = "";
|
|
857
|
+
}), (E, H) => (t(), C("main", {
|
|
851
858
|
class: "identity-login",
|
|
852
859
|
"aria-busy": i.value
|
|
853
860
|
}, [
|
|
@@ -856,30 +863,30 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
856
863
|
collapsible: !1
|
|
857
864
|
}, {
|
|
858
865
|
default: s(() => [
|
|
859
|
-
|
|
860
|
-
|
|
866
|
+
_("p", null, l(a.value.intro), 1),
|
|
867
|
+
v.value ? m("", !0) : (t(), g(e(Q), {
|
|
861
868
|
key: 0,
|
|
862
869
|
tone: "warning",
|
|
863
870
|
title: a.value.httpsTitle
|
|
864
871
|
}, {
|
|
865
872
|
default: s(() => [
|
|
866
|
-
|
|
873
|
+
f(l(a.value.errors.https_required), 1)
|
|
867
874
|
]),
|
|
868
875
|
_: 1
|
|
869
876
|
}, 8, ["title"])),
|
|
870
|
-
|
|
871
|
-
o.value ? (t(),
|
|
877
|
+
y.session.notice.value ? (t(), C("p", Ra, l(a.value.notices[y.session.notice.value]), 1)) : m("", !0),
|
|
878
|
+
o.value ? (t(), g(e(Q), {
|
|
872
879
|
key: 2,
|
|
873
880
|
tone: "danger",
|
|
874
881
|
title: a.value.failedTitle
|
|
875
882
|
}, {
|
|
876
883
|
default: s(() => [
|
|
877
|
-
|
|
884
|
+
_("span", qa, l(o.value), 1)
|
|
878
885
|
]),
|
|
879
886
|
_: 1
|
|
880
|
-
}, 8, ["title"])) :
|
|
887
|
+
}, 8, ["title"])) : m("", !0),
|
|
881
888
|
b(e(pe), {
|
|
882
|
-
onSubmit: ce(
|
|
889
|
+
onSubmit: ce(c, ["prevent"])
|
|
883
890
|
}, {
|
|
884
891
|
default: s(() => [
|
|
885
892
|
b(e(ne), {
|
|
@@ -888,18 +895,18 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
888
895
|
default: s(() => [
|
|
889
896
|
b(e(re), {
|
|
890
897
|
modelValue: $.value,
|
|
891
|
-
"onUpdate:modelValue": H[0] || (H[0] = (
|
|
898
|
+
"onUpdate:modelValue": H[0] || (H[0] = (P) => $.value = P),
|
|
892
899
|
autocomplete: "username",
|
|
893
|
-
disabled: i.value || n.value || !
|
|
900
|
+
disabled: i.value || n.value || !v.value
|
|
894
901
|
}, null, 8, ["modelValue", "disabled"])
|
|
895
902
|
]),
|
|
896
903
|
_: 1
|
|
897
904
|
}, 8, ["label"]),
|
|
898
905
|
n.value ? (t(), C(j, { key: 1 }, [
|
|
899
|
-
|
|
900
|
-
|
|
906
|
+
_("p", La, l(a.value.otpPrompt), 1),
|
|
907
|
+
_("div", {
|
|
901
908
|
ref_key: "otpField",
|
|
902
|
-
ref:
|
|
909
|
+
ref: h
|
|
903
910
|
}, [
|
|
904
911
|
b(e(ne), {
|
|
905
912
|
label: a.value.otp
|
|
@@ -907,7 +914,7 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
907
914
|
default: s(() => [
|
|
908
915
|
b(e(re), {
|
|
909
916
|
modelValue: r.value,
|
|
910
|
-
"onUpdate:modelValue": H[2] || (H[2] = (
|
|
917
|
+
"onUpdate:modelValue": H[2] || (H[2] = (P) => r.value = P),
|
|
911
918
|
inputmode: "numeric",
|
|
912
919
|
autocomplete: "one-time-code",
|
|
913
920
|
disabled: i.value
|
|
@@ -916,17 +923,17 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
916
923
|
_: 1
|
|
917
924
|
}, 8, ["label"])
|
|
918
925
|
], 512)
|
|
919
|
-
], 64)) : (t(),
|
|
926
|
+
], 64)) : (t(), g(e(ne), {
|
|
920
927
|
key: 0,
|
|
921
928
|
label: a.value.password
|
|
922
929
|
}, {
|
|
923
930
|
default: s(() => [
|
|
924
931
|
b(e(re), {
|
|
925
932
|
modelValue: u.value,
|
|
926
|
-
"onUpdate:modelValue": H[1] || (H[1] = (
|
|
933
|
+
"onUpdate:modelValue": H[1] || (H[1] = (P) => u.value = P),
|
|
927
934
|
type: "password",
|
|
928
935
|
autocomplete: "current-password",
|
|
929
|
-
disabled: i.value || !
|
|
936
|
+
disabled: i.value || !v.value
|
|
930
937
|
}, null, 8, ["modelValue", "disabled"])
|
|
931
938
|
]),
|
|
932
939
|
_: 1
|
|
@@ -936,31 +943,31 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
936
943
|
b(e(z), {
|
|
937
944
|
type: "submit",
|
|
938
945
|
variant: "primary",
|
|
939
|
-
disabled: i.value || !
|
|
946
|
+
disabled: i.value || !v.value || !$.value || !u.value || n.value && !r.value
|
|
940
947
|
}, {
|
|
941
948
|
default: s(() => [
|
|
942
|
-
|
|
949
|
+
f(l(i.value ? a.value.signingIn : n.value ? a.value.verify : a.value.signIn), 1)
|
|
943
950
|
]),
|
|
944
951
|
_: 1
|
|
945
952
|
}, 8, ["disabled"]),
|
|
946
|
-
n.value ? (t(),
|
|
953
|
+
n.value ? (t(), g(e(z), {
|
|
947
954
|
key: 0,
|
|
948
955
|
variant: "secondary",
|
|
949
956
|
disabled: i.value,
|
|
950
957
|
onClick: S
|
|
951
958
|
}, {
|
|
952
959
|
default: s(() => [
|
|
953
|
-
|
|
960
|
+
f(l(a.value.otherAccount), 1)
|
|
954
961
|
]),
|
|
955
962
|
_: 1
|
|
956
|
-
}, 8, ["disabled"])) : (t(),
|
|
963
|
+
}, 8, ["disabled"])) : (t(), g(e(z), {
|
|
957
964
|
key: 1,
|
|
958
965
|
variant: "secondary",
|
|
959
|
-
disabled: i.value || !
|
|
960
|
-
onClick:
|
|
966
|
+
disabled: i.value || !v.value,
|
|
967
|
+
onClick: V
|
|
961
968
|
}, {
|
|
962
969
|
default: s(() => [
|
|
963
|
-
|
|
970
|
+
f(l(a.value.continueDSM), 1)
|
|
964
971
|
]),
|
|
965
972
|
_: 1
|
|
966
973
|
}, 8, ["disabled"]))
|
|
@@ -973,51 +980,51 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
973
980
|
]),
|
|
974
981
|
_: 1
|
|
975
982
|
}, 8, ["title"])
|
|
976
|
-
], 8,
|
|
983
|
+
], 8, Oa));
|
|
977
984
|
}
|
|
978
|
-
}),
|
|
985
|
+
}), ot = /* @__PURE__ */ ue(Ba, [["__scopeId", "data-v-f7afcf5e"]]), Fa = { class: "integration-help" }, Na = { role: "status" }, Ma = { class: "integration-help" }, Ha = { class: "integration-help" }, Ka = { class: "integration-help" }, Ja = { class: "integration-actions" }, Xa = { class: "integration-actions" }, Ga = {
|
|
979
986
|
key: 0,
|
|
980
987
|
role: "status",
|
|
981
988
|
"data-bg-picked": ""
|
|
982
|
-
},
|
|
989
|
+
}, Qa = { class: "integration-actions" }, Ya = { key: 1 }, Wa = {
|
|
983
990
|
key: 2,
|
|
984
991
|
class: "integration-jobs"
|
|
985
|
-
},
|
|
992
|
+
}, Za = ["data-job-state", "data-job-id"], ja = { class: "nas-folder-name" }, el = {
|
|
986
993
|
key: 0,
|
|
987
994
|
class: "integration-help"
|
|
988
|
-
},
|
|
995
|
+
}, al = {
|
|
989
996
|
key: 4,
|
|
990
997
|
class: "integration-help"
|
|
991
|
-
},
|
|
998
|
+
}, ll = ["aria-label"], tl = { class: "integration-help" }, nl = { key: 1 }, sl = {
|
|
992
999
|
key: 2,
|
|
993
1000
|
class: "integration-jobs"
|
|
994
|
-
},
|
|
1001
|
+
}, ul = ["data-schedule-id"], il = { class: "nas-folder-name" }, ol = {
|
|
995
1002
|
key: 0,
|
|
996
1003
|
class: "integration-help"
|
|
997
|
-
},
|
|
1004
|
+
}, rl = {
|
|
998
1005
|
key: 1,
|
|
999
1006
|
class: "integration-help"
|
|
1000
|
-
},
|
|
1007
|
+
}, dl = { class: "integration-help" }, vl = { class: "integration-actions" }, cl = { class: "integration-actions" }, pl = { class: "integration-actions" }, fl = /* @__PURE__ */ ae({
|
|
1001
1008
|
__name: "BackgroundPanel",
|
|
1002
1009
|
props: {
|
|
1003
1010
|
ctx: {}
|
|
1004
1011
|
},
|
|
1005
|
-
setup(
|
|
1006
|
-
const
|
|
1012
|
+
setup(y) {
|
|
1013
|
+
const D = y, a = N(() => qe(D.ctx.locale)), $ = (I, B) => I.replace(/\{(\w+)\}/g, (A, le) => String(B[le] ?? "")), u = p(), r = p([]), n = p(), i = p(!1), o = p(!1), h = p([]), v = p(), w = p(!1), U = p("3600"), c = p(), V = p(), S = p(), E = p(!1), H = p(!1), P = p(), q = p(""), Y = p(""), X = Le(D.ctx);
|
|
1007
1014
|
let F, L = !1;
|
|
1008
1015
|
const J = (I) => !["queued", "running"].includes(I.state);
|
|
1009
1016
|
async function K(I, B) {
|
|
1010
1017
|
try {
|
|
1011
|
-
return await
|
|
1012
|
-
} catch (
|
|
1018
|
+
return await D.ctx.call(I, B);
|
|
1019
|
+
} catch (A) {
|
|
1013
1020
|
if (L) return;
|
|
1014
|
-
|
|
1021
|
+
A?.code === "unsupported" ? (i.value = !0, r.value = [], h.value = [], v.value = void 0, c.value = void 0, V.value = void 0, u.value = void 0, S.value = void 0, P.value = void 0, q.value && URL.revokeObjectURL(q.value), q.value = "") : L || (n.value = A);
|
|
1015
1022
|
return;
|
|
1016
1023
|
}
|
|
1017
1024
|
}
|
|
1018
|
-
async function
|
|
1019
|
-
if (!(L ||
|
|
1020
|
-
|
|
1025
|
+
async function W() {
|
|
1026
|
+
if (!(L || E.value)) {
|
|
1027
|
+
E.value = !0;
|
|
1021
1028
|
try {
|
|
1022
1029
|
const I = await K("bg.status");
|
|
1023
1030
|
if (!I || L) return;
|
|
@@ -1028,23 +1035,23 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
1028
1035
|
i.value = !1, u.value = I;
|
|
1029
1036
|
const B = await K("bg.jobs.list");
|
|
1030
1037
|
B && !L && (r.value = B.jobs ?? []);
|
|
1031
|
-
const
|
|
1032
|
-
|
|
1038
|
+
const A = await K("bg.schedules.list");
|
|
1039
|
+
A && !L && (h.value = A.schedules ?? []), !L && r.value.every(J) && h.value.every((le) => !le.enabled) && F && (clearInterval(F), F = void 0);
|
|
1033
1040
|
} finally {
|
|
1034
|
-
|
|
1041
|
+
E.value = !1;
|
|
1035
1042
|
}
|
|
1036
1043
|
}
|
|
1037
1044
|
}
|
|
1038
|
-
function
|
|
1045
|
+
function R() {
|
|
1039
1046
|
F || (F = setInterval(() => {
|
|
1040
|
-
|
|
1047
|
+
W();
|
|
1041
1048
|
}, 3e3));
|
|
1042
1049
|
}
|
|
1043
1050
|
async function O(I) {
|
|
1044
1051
|
if (!o.value) {
|
|
1045
1052
|
o.value = !0, n.value = void 0;
|
|
1046
1053
|
try {
|
|
1047
|
-
await I(), await
|
|
1054
|
+
await I(), await W(), (h.value.some((B) => B.enabled) || r.value.some((B) => !J(B))) && R();
|
|
1048
1055
|
} finally {
|
|
1049
1056
|
L || (o.value = !1);
|
|
1050
1057
|
}
|
|
@@ -1053,109 +1060,109 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
1053
1060
|
const T = () => O(async () => {
|
|
1054
1061
|
if (!S.value) return;
|
|
1055
1062
|
await K("bg.jobs.purge", { owner: S.value }) && (S.value = void 0);
|
|
1056
|
-
}), M = N(() => [{ value: "3600", label: a.value.hourly }, { value: "86400", label: a.value.daily }, { value: "604800", label: a.value.weekly }]),
|
|
1057
|
-
|
|
1058
|
-
},
|
|
1059
|
-
if (!
|
|
1060
|
-
await K("bg.schedules.create", { key: _e(), jobId:
|
|
1063
|
+
}), M = N(() => [{ value: "3600", label: a.value.hourly }, { value: "86400", label: a.value.daily }, { value: "604800", label: a.value.weekly }]), d = (I) => {
|
|
1064
|
+
v.value = I, w.value = !1, U.value = "3600";
|
|
1065
|
+
}, k = () => O(async () => {
|
|
1066
|
+
if (!v.value || !w.value) return;
|
|
1067
|
+
await K("bg.schedules.create", { key: _e(), jobId: v.value.id, intervalSeconds: Number(U.value), consent: !0 }) && (v.value = void 0);
|
|
1061
1068
|
}), x = (I) => O(() => K("bg.schedules.disable", { id: I })), G = () => O(async () => {
|
|
1062
|
-
if (!
|
|
1063
|
-
await K("bg.schedules.delete", { id:
|
|
1069
|
+
if (!c.value) return;
|
|
1070
|
+
await K("bg.schedules.delete", { id: c.value.id }) && (c.value = void 0);
|
|
1064
1071
|
}), Z = () => O(async () => {
|
|
1065
|
-
if (!
|
|
1066
|
-
await K("bg.schedules.enable", { id:
|
|
1072
|
+
if (!V.value) return;
|
|
1073
|
+
await K("bg.schedules.enable", { id: V.value.id, consent: !0 }) && (V.value = void 0);
|
|
1067
1074
|
}), ee = (I) => {
|
|
1068
1075
|
const B = new Date(I);
|
|
1069
1076
|
return Number.isFinite(B.getTime()) ? B.toLocaleString() : a.value.unknownTime;
|
|
1070
1077
|
}, me = (I) => I.copyRetained && I.state === "succeeded" && !I.scheduleId && I.submitter?.user === u.value?.owner?.user && I.submitter?.uid === u.value?.owner?.uid, Ae = (I) => O(() => K("bg.jobs.cancel", { id: I })), Ee = (I) => {
|
|
1071
1078
|
const B = I.lastIndexOf("/");
|
|
1072
|
-
|
|
1079
|
+
P.value = { folder: I.slice(0, B), relative: I.slice(B + 1) };
|
|
1073
1080
|
}, Te = () => O(async () => {
|
|
1074
|
-
if (!
|
|
1075
|
-
await K("bg.jobs.submit", { key: _e(), ...
|
|
1081
|
+
if (!P.value) return;
|
|
1082
|
+
await K("bg.jobs.submit", { key: _e(), ...P.value }) && (P.value = void 0);
|
|
1076
1083
|
});
|
|
1077
1084
|
async function Ie(I) {
|
|
1078
1085
|
const B = await K("bg.jobs.result", { id: I.id });
|
|
1079
|
-
!B || L || (
|
|
1086
|
+
!B || L || (q.value && URL.revokeObjectURL(q.value), q.value = URL.createObjectURL(new Blob([JSON.stringify(B.result, null, 2)], { type: "application/json" })), Y.value = `${I.name || I.id}.sha256.json`);
|
|
1080
1087
|
}
|
|
1081
1088
|
return ie(() => {
|
|
1082
|
-
|
|
1083
|
-
(
|
|
1089
|
+
W().then(() => {
|
|
1090
|
+
(h.value.some((I) => I.enabled) || r.value.some((I) => !J(I))) && R();
|
|
1084
1091
|
});
|
|
1085
1092
|
}), se(() => {
|
|
1086
|
-
L = !0, X.dispose(), F && clearInterval(F),
|
|
1087
|
-
}), (I, B) => (t(),
|
|
1088
|
-
"aria-busy": o.value ||
|
|
1093
|
+
L = !0, X.dispose(), F && clearInterval(F), q.value && URL.revokeObjectURL(q.value);
|
|
1094
|
+
}), (I, B) => (t(), g(e(de), {
|
|
1095
|
+
"aria-busy": o.value || E.value,
|
|
1089
1096
|
title: a.value.title,
|
|
1090
1097
|
collapsible: !1,
|
|
1091
1098
|
"data-background-panel": ""
|
|
1092
1099
|
}, {
|
|
1093
1100
|
default: s(() => [
|
|
1094
|
-
i.value ? (t(),
|
|
1101
|
+
i.value ? (t(), g(e(Q), {
|
|
1095
1102
|
key: 0,
|
|
1096
1103
|
tone: "warning"
|
|
1097
1104
|
}, {
|
|
1098
1105
|
default: s(() => [
|
|
1099
|
-
|
|
1106
|
+
f(l(a.value.unsupported), 1)
|
|
1100
1107
|
]),
|
|
1101
1108
|
_: 1
|
|
1102
1109
|
})) : (t(), C(j, { key: 1 }, [
|
|
1103
|
-
|
|
1104
|
-
n.value ? (t(),
|
|
1110
|
+
_("p", Fa, l(a.value.help), 1),
|
|
1111
|
+
n.value ? (t(), g(e(Q), {
|
|
1105
1112
|
key: 0,
|
|
1106
1113
|
tone: "danger",
|
|
1107
1114
|
role: "alert"
|
|
1108
1115
|
}, {
|
|
1109
1116
|
default: s(() => [
|
|
1110
|
-
|
|
1117
|
+
f(l(e(Be)(n.value, a.value)), 1)
|
|
1111
1118
|
]),
|
|
1112
1119
|
_: 1
|
|
1113
|
-
})) :
|
|
1120
|
+
})) : m("", !0),
|
|
1114
1121
|
u.value ? (t(), C(j, { key: 1 }, [
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1122
|
+
_("p", Na, l(u.value.worker?.alive ? $(a.value.workerRunning, { user: u.value.worker.username }) : a.value.workerStopped), 1),
|
|
1123
|
+
_("p", Ma, l($(a.value.limits, { size: u.value.limits.maxInputBytes / 1024, queue: u.value.limits.maxQueued, seconds: u.value.limits.jobTimeoutSeconds })), 1),
|
|
1124
|
+
_("p", Ha, l(u.value.admin ? a.value.adminScope : a.value.ownerScope), 1),
|
|
1125
|
+
_("p", Ka, l($(a.value.ownerLimits, { jobs: u.value.limits.maxOwnerPending, size: u.value.limits.maxOwnerBytes / 1024 })), 1),
|
|
1126
|
+
_("div", Ja, [
|
|
1120
1127
|
b(e(z), {
|
|
1121
1128
|
variant: "secondary",
|
|
1122
1129
|
disabled: o.value,
|
|
1123
|
-
onClick:
|
|
1130
|
+
onClick: W
|
|
1124
1131
|
}, {
|
|
1125
1132
|
default: s(() => [
|
|
1126
|
-
|
|
1133
|
+
f(l(a.value.refresh), 1)
|
|
1127
1134
|
]),
|
|
1128
1135
|
_: 1
|
|
1129
1136
|
}, 8, ["disabled"])
|
|
1130
1137
|
]),
|
|
1131
|
-
|
|
1132
|
-
|
|
1138
|
+
_("template", null, [
|
|
1139
|
+
_("div", Xa, [
|
|
1133
1140
|
b(e(z), {
|
|
1134
1141
|
variant: "secondary",
|
|
1135
1142
|
disabled: o.value,
|
|
1136
|
-
onClick: B[0] || (B[0] = (
|
|
1143
|
+
onClick: B[0] || (B[0] = (A) => H.value = !0)
|
|
1137
1144
|
}, {
|
|
1138
1145
|
default: s(() => [
|
|
1139
|
-
|
|
1146
|
+
f(l(a.value.chooseFile), 1)
|
|
1140
1147
|
]),
|
|
1141
1148
|
_: 1
|
|
1142
1149
|
}, 8, ["disabled"]),
|
|
1143
1150
|
b(e(z), {
|
|
1144
1151
|
variant: "primary",
|
|
1145
|
-
disabled: o.value || !
|
|
1152
|
+
disabled: o.value || !P.value,
|
|
1146
1153
|
onClick: Te
|
|
1147
1154
|
}, {
|
|
1148
1155
|
default: s(() => [
|
|
1149
|
-
|
|
1156
|
+
f(l(a.value.submit), 1)
|
|
1150
1157
|
]),
|
|
1151
1158
|
_: 1
|
|
1152
1159
|
}, 8, ["disabled"])
|
|
1153
1160
|
]),
|
|
1154
|
-
|
|
1161
|
+
P.value ? (t(), C("p", Ga, l($(a.value.chosen, { path: `${P.value.folder}/${P.value.relative}` })), 1)) : m("", !0),
|
|
1155
1162
|
b(ye, {
|
|
1156
1163
|
open: H.value,
|
|
1157
|
-
"onUpdate:open": B[1] || (B[1] = (
|
|
1158
|
-
locale:
|
|
1164
|
+
"onUpdate:open": B[1] || (B[1] = (A) => H.value = A),
|
|
1165
|
+
locale: y.ctx.locale,
|
|
1159
1166
|
provider: e(X),
|
|
1160
1167
|
mode: "file",
|
|
1161
1168
|
title: a.value.pickerTitle,
|
|
@@ -1163,113 +1170,113 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
1163
1170
|
onSelected: Ee
|
|
1164
1171
|
}, null, 8, ["open", "locale", "provider", "title", "description"])
|
|
1165
1172
|
]),
|
|
1166
|
-
S.value && u.value.admin ? (t(),
|
|
1173
|
+
S.value && u.value.admin ? (t(), g(e(Q), {
|
|
1167
1174
|
key: 0,
|
|
1168
1175
|
tone: "warning"
|
|
1169
1176
|
}, {
|
|
1170
1177
|
default: s(() => [
|
|
1171
|
-
|
|
1172
|
-
|
|
1178
|
+
_("p", null, l($(a.value.purgeConfirm, { user: S.value.user, uid: S.value.uid })), 1),
|
|
1179
|
+
_("div", Qa, [
|
|
1173
1180
|
b(e(z), {
|
|
1174
1181
|
variant: "secondary",
|
|
1175
1182
|
disabled: o.value,
|
|
1176
1183
|
onClick: T
|
|
1177
1184
|
}, {
|
|
1178
1185
|
default: s(() => [
|
|
1179
|
-
|
|
1186
|
+
f(l(a.value.confirmPurge), 1)
|
|
1180
1187
|
]),
|
|
1181
1188
|
_: 1
|
|
1182
1189
|
}, 8, ["disabled"]),
|
|
1183
1190
|
b(e(z), {
|
|
1184
1191
|
variant: "secondary",
|
|
1185
1192
|
disabled: o.value,
|
|
1186
|
-
onClick: B[2] || (B[2] = (
|
|
1193
|
+
onClick: B[2] || (B[2] = (A) => S.value = void 0)
|
|
1187
1194
|
}, {
|
|
1188
1195
|
default: s(() => [
|
|
1189
|
-
|
|
1196
|
+
f(l(a.value.keepJobs), 1)
|
|
1190
1197
|
]),
|
|
1191
1198
|
_: 1
|
|
1192
1199
|
}, 8, ["disabled"])
|
|
1193
1200
|
])
|
|
1194
1201
|
]),
|
|
1195
1202
|
_: 1
|
|
1196
|
-
})) :
|
|
1203
|
+
})) : m("", !0),
|
|
1197
1204
|
r.value.length ? (t(), C("ul", Wa, [
|
|
1198
|
-
(t(!0), C(j, null, te(r.value, (
|
|
1199
|
-
key:
|
|
1200
|
-
"data-job-state":
|
|
1201
|
-
"data-job-id":
|
|
1205
|
+
(t(!0), C(j, null, te(r.value, (A) => (t(), C("li", {
|
|
1206
|
+
key: A.id,
|
|
1207
|
+
"data-job-state": A.state,
|
|
1208
|
+
"data-job-id": A.id
|
|
1202
1209
|
}, [
|
|
1203
|
-
|
|
1204
|
-
u.value.admin &&
|
|
1205
|
-
u.value.admin &&
|
|
1210
|
+
_("span", ja, l(A.name) + " — " + l(a.value[`state_${A.state}`]), 1),
|
|
1211
|
+
u.value.admin && A.submitter ? (t(), C("span", el, l($(a.value.owner, { user: A.submitter.user, uid: A.submitter.uid })), 1)) : m("", !0),
|
|
1212
|
+
u.value.admin && A.submitter ? (t(), g(e(z), {
|
|
1206
1213
|
key: 1,
|
|
1207
1214
|
variant: "secondary",
|
|
1208
1215
|
disabled: o.value,
|
|
1209
|
-
onClick: (le) => S.value =
|
|
1216
|
+
onClick: (le) => S.value = A.submitter
|
|
1210
1217
|
}, {
|
|
1211
1218
|
default: s(() => [
|
|
1212
|
-
|
|
1219
|
+
f(l(a.value.purgeOwner), 1)
|
|
1213
1220
|
]),
|
|
1214
1221
|
_: 1
|
|
1215
|
-
}, 8, ["disabled", "onClick"])) :
|
|
1216
|
-
J(
|
|
1222
|
+
}, 8, ["disabled", "onClick"])) : m("", !0),
|
|
1223
|
+
J(A) ? m("", !0) : (t(), g(e(z), {
|
|
1217
1224
|
key: 2,
|
|
1218
1225
|
variant: "secondary",
|
|
1219
1226
|
disabled: o.value,
|
|
1220
|
-
onClick: (le) => Ae(
|
|
1227
|
+
onClick: (le) => Ae(A.id)
|
|
1221
1228
|
}, {
|
|
1222
1229
|
default: s(() => [
|
|
1223
|
-
|
|
1230
|
+
f(l(a.value.cancel), 1)
|
|
1224
1231
|
]),
|
|
1225
1232
|
_: 1
|
|
1226
1233
|
}, 8, ["disabled", "onClick"])),
|
|
1227
|
-
me(
|
|
1234
|
+
me(A) ? (t(), g(e(z), {
|
|
1228
1235
|
key: 3,
|
|
1229
1236
|
variant: "secondary",
|
|
1230
1237
|
disabled: o.value,
|
|
1231
|
-
onClick: (le) =>
|
|
1238
|
+
onClick: (le) => d(A)
|
|
1232
1239
|
}, {
|
|
1233
1240
|
default: s(() => [
|
|
1234
|
-
|
|
1241
|
+
f(l(a.value.scheduleCopy), 1)
|
|
1235
1242
|
]),
|
|
1236
1243
|
_: 1
|
|
1237
|
-
}, 8, ["disabled", "onClick"])) :
|
|
1238
|
-
|
|
1239
|
-
|
|
1244
|
+
}, 8, ["disabled", "onClick"])) : m("", !0),
|
|
1245
|
+
A.scheduleId ? (t(), C("span", al, l(a.value.scheduledJob), 1)) : m("", !0),
|
|
1246
|
+
A.state === "succeeded" ? (t(), g(e(z), {
|
|
1240
1247
|
key: 5,
|
|
1241
1248
|
variant: "secondary",
|
|
1242
1249
|
disabled: o.value,
|
|
1243
|
-
onClick: (le) => Ie(
|
|
1250
|
+
onClick: (le) => Ie(A)
|
|
1244
1251
|
}, {
|
|
1245
1252
|
default: s(() => [
|
|
1246
|
-
|
|
1253
|
+
f(l(a.value.result), 1)
|
|
1247
1254
|
]),
|
|
1248
1255
|
_: 1
|
|
1249
|
-
}, 8, ["disabled", "onClick"])) :
|
|
1250
|
-
], 8,
|
|
1251
|
-
])) : (t(), C("p",
|
|
1252
|
-
|
|
1256
|
+
}, 8, ["disabled", "onClick"])) : m("", !0)
|
|
1257
|
+
], 8, Za))), 128))
|
|
1258
|
+
])) : (t(), C("p", Ya, l(a.value.noJobs), 1)),
|
|
1259
|
+
_("section", {
|
|
1253
1260
|
"data-bg-schedules": "",
|
|
1254
1261
|
class: "bg-schedules",
|
|
1255
1262
|
"aria-label": a.value.schedulesTitle
|
|
1256
1263
|
}, [
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1264
|
+
_("h3", null, l(a.value.schedulesTitle), 1),
|
|
1265
|
+
_("p", tl, l(a.value.scheduleHelp), 1),
|
|
1266
|
+
v.value ? (t(), g(e(pe), {
|
|
1260
1267
|
key: 0,
|
|
1261
1268
|
class: "bg-schedule-form",
|
|
1262
|
-
onSubmit: ce(
|
|
1269
|
+
onSubmit: ce(k, ["prevent"])
|
|
1263
1270
|
}, {
|
|
1264
1271
|
default: s(() => [
|
|
1265
|
-
|
|
1272
|
+
_("p", null, l($(a.value.scheduleSource, { name: v.value.name })), 1),
|
|
1266
1273
|
b(e(ne), {
|
|
1267
1274
|
label: a.value.interval
|
|
1268
1275
|
}, {
|
|
1269
1276
|
default: s(() => [
|
|
1270
|
-
b(e(
|
|
1271
|
-
modelValue:
|
|
1272
|
-
"onUpdate:modelValue": B[3] || (B[3] = (
|
|
1277
|
+
b(e(Ue), {
|
|
1278
|
+
modelValue: U.value,
|
|
1279
|
+
"onUpdate:modelValue": B[3] || (B[3] = (A) => U.value = A),
|
|
1273
1280
|
"data-schedule-interval": "",
|
|
1274
1281
|
options: M.value,
|
|
1275
1282
|
disabled: o.value
|
|
@@ -1278,8 +1285,8 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
1278
1285
|
_: 1
|
|
1279
1286
|
}, 8, ["label"]),
|
|
1280
1287
|
b(e(ea), {
|
|
1281
|
-
modelValue:
|
|
1282
|
-
"onUpdate:modelValue": B[4] || (B[4] = (
|
|
1288
|
+
modelValue: w.value,
|
|
1289
|
+
"onUpdate:modelValue": B[4] || (B[4] = (A) => w.value = A),
|
|
1283
1290
|
"data-schedule-consent": "",
|
|
1284
1291
|
disabled: o.value,
|
|
1285
1292
|
label: a.value.scheduleConsent
|
|
@@ -1289,10 +1296,10 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
1289
1296
|
b(e(z), {
|
|
1290
1297
|
type: "submit",
|
|
1291
1298
|
variant: "primary",
|
|
1292
|
-
disabled: o.value || !
|
|
1299
|
+
disabled: o.value || !w.value
|
|
1293
1300
|
}, {
|
|
1294
1301
|
default: s(() => [
|
|
1295
|
-
|
|
1302
|
+
f(l(a.value.createSchedule), 1)
|
|
1296
1303
|
]),
|
|
1297
1304
|
_: 1
|
|
1298
1305
|
}, 8, ["disabled"]),
|
|
@@ -1300,10 +1307,10 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
1300
1307
|
type: "button",
|
|
1301
1308
|
variant: "secondary",
|
|
1302
1309
|
disabled: o.value,
|
|
1303
|
-
onClick: B[5] || (B[5] = (
|
|
1310
|
+
onClick: B[5] || (B[5] = (A) => v.value = void 0)
|
|
1304
1311
|
}, {
|
|
1305
1312
|
default: s(() => [
|
|
1306
|
-
|
|
1313
|
+
f(l(a.value.cancel), 1)
|
|
1307
1314
|
]),
|
|
1308
1315
|
_: 1
|
|
1309
1316
|
}, 8, ["disabled"])
|
|
@@ -1312,148 +1319,148 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
1312
1319
|
})
|
|
1313
1320
|
]),
|
|
1314
1321
|
_: 1
|
|
1315
|
-
})) :
|
|
1316
|
-
|
|
1317
|
-
(t(!0), C(j, null, te(
|
|
1318
|
-
key:
|
|
1319
|
-
"data-schedule-id":
|
|
1322
|
+
})) : m("", !0),
|
|
1323
|
+
h.value.length ? (t(), C("ul", sl, [
|
|
1324
|
+
(t(!0), C(j, null, te(h.value, (A) => (t(), C("li", {
|
|
1325
|
+
key: A.id,
|
|
1326
|
+
"data-schedule-id": A.id
|
|
1320
1327
|
}, [
|
|
1321
|
-
|
|
1322
|
-
u.value.admin ? (t(), C("span",
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1328
|
+
_("span", il, l(A.name) + " — " + l(A.enabled ? a.value.scheduleOn : a.value.scheduleOff), 1),
|
|
1329
|
+
u.value.admin ? (t(), C("span", ol, l($(a.value.owner, { user: A.owner.user, uid: A.owner.uid })), 1)) : m("", !0),
|
|
1330
|
+
A.enabled ? (t(), C("span", rl, l($(a.value.nextRun, { time: ee(A.nextAt) })), 1)) : m("", !0),
|
|
1331
|
+
_("span", dl, l($(a.value.missedRuns, { count: A.missed })), 1),
|
|
1332
|
+
A.reason === "worker-changed" ? (t(), g(e(Q), {
|
|
1326
1333
|
key: 2,
|
|
1327
1334
|
tone: "warning"
|
|
1328
1335
|
}, {
|
|
1329
1336
|
default: s(() => [
|
|
1330
|
-
|
|
1337
|
+
f(l(a.value.revisionChanged), 1)
|
|
1331
1338
|
]),
|
|
1332
1339
|
_: 1
|
|
1333
|
-
})) :
|
|
1340
|
+
})) : A.reason === "input-unavailable" ? (t(), g(e(Q), {
|
|
1334
1341
|
key: 3,
|
|
1335
1342
|
tone: "warning"
|
|
1336
1343
|
}, {
|
|
1337
1344
|
default: s(() => [
|
|
1338
|
-
|
|
1345
|
+
f(l(a.value.errors["input-unavailable"]), 1)
|
|
1339
1346
|
]),
|
|
1340
1347
|
_: 1
|
|
1341
|
-
})) :
|
|
1342
|
-
|
|
1343
|
-
|
|
1348
|
+
})) : m("", !0),
|
|
1349
|
+
_("div", vl, [
|
|
1350
|
+
A.enabled ? (t(), g(e(z), {
|
|
1344
1351
|
key: 0,
|
|
1345
1352
|
variant: "secondary",
|
|
1346
1353
|
disabled: o.value,
|
|
1347
|
-
onClick: (le) => x(
|
|
1354
|
+
onClick: (le) => x(A.id)
|
|
1348
1355
|
}, {
|
|
1349
1356
|
default: s(() => [
|
|
1350
|
-
|
|
1357
|
+
f(l(a.value.disableSchedule), 1)
|
|
1351
1358
|
]),
|
|
1352
1359
|
_: 1
|
|
1353
|
-
}, 8, ["disabled", "onClick"])) : u.value.admin ? (t(),
|
|
1360
|
+
}, 8, ["disabled", "onClick"])) : u.value.admin ? (t(), g(e(z), {
|
|
1354
1361
|
key: 1,
|
|
1355
1362
|
variant: "secondary",
|
|
1356
1363
|
disabled: o.value,
|
|
1357
|
-
onClick: (le) =>
|
|
1364
|
+
onClick: (le) => V.value = A
|
|
1358
1365
|
}, {
|
|
1359
1366
|
default: s(() => [
|
|
1360
|
-
|
|
1367
|
+
f(l(a.value.enableSchedule), 1)
|
|
1361
1368
|
]),
|
|
1362
1369
|
_: 1
|
|
1363
|
-
}, 8, ["disabled", "onClick"])) :
|
|
1370
|
+
}, 8, ["disabled", "onClick"])) : m("", !0),
|
|
1364
1371
|
b(e(z), {
|
|
1365
1372
|
variant: "secondary",
|
|
1366
1373
|
disabled: o.value,
|
|
1367
|
-
onClick: (le) =>
|
|
1374
|
+
onClick: (le) => c.value = A
|
|
1368
1375
|
}, {
|
|
1369
1376
|
default: s(() => [
|
|
1370
|
-
|
|
1377
|
+
f(l(a.value.deleteSchedule), 1)
|
|
1371
1378
|
]),
|
|
1372
1379
|
_: 1
|
|
1373
1380
|
}, 8, ["disabled", "onClick"])
|
|
1374
1381
|
])
|
|
1375
|
-
], 8,
|
|
1376
|
-
])) : (t(), C("p",
|
|
1377
|
-
|
|
1382
|
+
], 8, ul))), 128))
|
|
1383
|
+
])) : (t(), C("p", nl, l(a.value.noSchedules), 1)),
|
|
1384
|
+
c.value ? (t(), g(e(Q), {
|
|
1378
1385
|
key: 3,
|
|
1379
1386
|
tone: "warning"
|
|
1380
1387
|
}, {
|
|
1381
1388
|
default: s(() => [
|
|
1382
|
-
|
|
1383
|
-
|
|
1389
|
+
_("p", null, l($(a.value.deleteScheduleConsent, { name: c.value.name })), 1),
|
|
1390
|
+
_("div", cl, [
|
|
1384
1391
|
b(e(z), {
|
|
1385
1392
|
variant: "danger",
|
|
1386
1393
|
disabled: o.value,
|
|
1387
1394
|
onClick: G
|
|
1388
1395
|
}, {
|
|
1389
1396
|
default: s(() => [
|
|
1390
|
-
|
|
1397
|
+
f(l(a.value.confirmDeleteSchedule), 1)
|
|
1391
1398
|
]),
|
|
1392
1399
|
_: 1
|
|
1393
1400
|
}, 8, ["disabled"]),
|
|
1394
1401
|
b(e(z), {
|
|
1395
1402
|
variant: "secondary",
|
|
1396
1403
|
disabled: o.value,
|
|
1397
|
-
onClick: B[6] || (B[6] = (
|
|
1404
|
+
onClick: B[6] || (B[6] = (A) => c.value = void 0)
|
|
1398
1405
|
}, {
|
|
1399
1406
|
default: s(() => [
|
|
1400
|
-
|
|
1407
|
+
f(l(a.value.cancel), 1)
|
|
1401
1408
|
]),
|
|
1402
1409
|
_: 1
|
|
1403
1410
|
}, 8, ["disabled"])
|
|
1404
1411
|
])
|
|
1405
1412
|
]),
|
|
1406
1413
|
_: 1
|
|
1407
|
-
})) :
|
|
1408
|
-
|
|
1414
|
+
})) : m("", !0),
|
|
1415
|
+
V.value ? (t(), g(e(Q), {
|
|
1409
1416
|
key: 4,
|
|
1410
1417
|
tone: "warning"
|
|
1411
1418
|
}, {
|
|
1412
1419
|
default: s(() => [
|
|
1413
|
-
|
|
1414
|
-
|
|
1420
|
+
_("p", null, l($(a.value.enableScheduleConsent, { name: V.value.name })), 1),
|
|
1421
|
+
_("div", pl, [
|
|
1415
1422
|
b(e(z), {
|
|
1416
1423
|
variant: "primary",
|
|
1417
1424
|
disabled: o.value,
|
|
1418
1425
|
onClick: Z
|
|
1419
1426
|
}, {
|
|
1420
1427
|
default: s(() => [
|
|
1421
|
-
|
|
1428
|
+
f(l(a.value.confirmEnableSchedule), 1)
|
|
1422
1429
|
]),
|
|
1423
1430
|
_: 1
|
|
1424
1431
|
}, 8, ["disabled"]),
|
|
1425
1432
|
b(e(z), {
|
|
1426
1433
|
variant: "secondary",
|
|
1427
1434
|
disabled: o.value,
|
|
1428
|
-
onClick: B[7] || (B[7] = (
|
|
1435
|
+
onClick: B[7] || (B[7] = (A) => V.value = void 0)
|
|
1429
1436
|
}, {
|
|
1430
1437
|
default: s(() => [
|
|
1431
|
-
|
|
1438
|
+
f(l(a.value.cancel), 1)
|
|
1432
1439
|
]),
|
|
1433
1440
|
_: 1
|
|
1434
1441
|
}, 8, ["disabled"])
|
|
1435
1442
|
])
|
|
1436
1443
|
]),
|
|
1437
1444
|
_: 1
|
|
1438
|
-
})) :
|
|
1439
|
-
], 8,
|
|
1440
|
-
|
|
1445
|
+
})) : m("", !0)
|
|
1446
|
+
], 8, ll),
|
|
1447
|
+
q.value ? (t(), g(e(Pe), {
|
|
1441
1448
|
key: 3,
|
|
1442
|
-
href:
|
|
1443
|
-
download:
|
|
1449
|
+
href: q.value,
|
|
1450
|
+
download: Y.value
|
|
1444
1451
|
}, {
|
|
1445
1452
|
default: s(() => [
|
|
1446
|
-
|
|
1453
|
+
f(l(a.value.download), 1)
|
|
1447
1454
|
]),
|
|
1448
1455
|
_: 1
|
|
1449
|
-
}, 8, ["href", "download"])) :
|
|
1450
|
-
], 64)) :
|
|
1456
|
+
}, 8, ["href", "download"])) : m("", !0)
|
|
1457
|
+
], 64)) : m("", !0)
|
|
1451
1458
|
], 64))
|
|
1452
1459
|
]),
|
|
1453
1460
|
_: 1
|
|
1454
1461
|
}, 8, ["aria-busy", "title"]));
|
|
1455
1462
|
}
|
|
1456
|
-
}),
|
|
1463
|
+
}), rt = /* @__PURE__ */ ue(fl, [["__scopeId", "data-v-7954713f"]]), yl = { role: "status" }, ml = { key: 1 }, bl = { key: 2 }, dt = /* @__PURE__ */ ae({
|
|
1457
1464
|
__name: "ExecutorSettings",
|
|
1458
1465
|
props: {
|
|
1459
1466
|
admin: { type: Boolean },
|
|
@@ -1461,112 +1468,112 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
1461
1468
|
ctx: {}
|
|
1462
1469
|
},
|
|
1463
1470
|
emits: ["confirmed"],
|
|
1464
|
-
setup(
|
|
1465
|
-
const a =
|
|
1466
|
-
let
|
|
1467
|
-
async function
|
|
1471
|
+
setup(y, { emit: D }) {
|
|
1472
|
+
const a = y, $ = D, u = ia(), r = N(() => xe(a.locale)), n = p(), i = p(""), o = p(!1), h = p(!1), v = p(), w = p(""), U = p([]), c = N(() => v.value?.scope_mode === "install-selected"), V = N(() => [{ label: r.value.homeScope, value: "home" }, ...U.value]), S = N(() => !c.value || !!w.value && V.value.some((F) => F.value === w.value)), E = N(() => c.value && !v.value?.selection), H = N(() => w.value !== v.value?.selection?.scope);
|
|
1473
|
+
let P = !1;
|
|
1474
|
+
async function q(F) {
|
|
1468
1475
|
const L = F ?? await u.status();
|
|
1469
|
-
if (
|
|
1476
|
+
if (P || (n.value = L, !a.ctx)) return;
|
|
1470
1477
|
const J = await a.ctx.call("delegate.status");
|
|
1471
|
-
if (
|
|
1478
|
+
if (P || (v.value = J, J.scope_mode !== "install-selected")) return;
|
|
1472
1479
|
const K = [];
|
|
1473
|
-
let
|
|
1474
|
-
for (let
|
|
1475
|
-
const O = await a.ctx.call("bg.browse", { offset:
|
|
1476
|
-
if (
|
|
1477
|
-
if (!Array.isArray(O.shares) || !Number.isSafeInteger(O.total) || O.total < 0 || !O.shares.length &&
|
|
1480
|
+
let W = 0;
|
|
1481
|
+
for (let R = 0; R < 128; R++) {
|
|
1482
|
+
const O = await a.ctx.call("bg.browse", { offset: W });
|
|
1483
|
+
if (P) return;
|
|
1484
|
+
if (!Array.isArray(O.shares) || !Number.isSafeInteger(O.total) || O.total < 0 || !O.shares.length && W < O.total) throw { code: "EXECUTOR_PROTOCOL" };
|
|
1478
1485
|
for (const T of O.shares)
|
|
1479
1486
|
T.isdir && T.path === "/" + T.name && !["home", "homes"].includes(T.name.toLowerCase()) && K.push({ label: T.name, value: "shared:" + T.name });
|
|
1480
|
-
if (
|
|
1481
|
-
if (
|
|
1487
|
+
if (W += O.shares.length, W >= O.total) break;
|
|
1488
|
+
if (R === 127) throw { code: "EXECUTOR_PROTOCOL" };
|
|
1482
1489
|
}
|
|
1483
|
-
|
|
1490
|
+
U.value = K, w.value = J.selection?.scope ?? J.preselection ?? "";
|
|
1484
1491
|
}
|
|
1485
|
-
async function
|
|
1492
|
+
async function Y() {
|
|
1486
1493
|
if (!(!a.admin || o.value)) {
|
|
1487
|
-
o.value = !0,
|
|
1494
|
+
o.value = !0, h.value = !1;
|
|
1488
1495
|
try {
|
|
1489
|
-
await
|
|
1496
|
+
await q();
|
|
1490
1497
|
} catch {
|
|
1491
|
-
|
|
1498
|
+
P || (h.value = !0);
|
|
1492
1499
|
} finally {
|
|
1493
|
-
|
|
1500
|
+
P || (o.value = !1);
|
|
1494
1501
|
}
|
|
1495
1502
|
}
|
|
1496
1503
|
}
|
|
1497
1504
|
async function X() {
|
|
1498
|
-
if (!a.admin || o.value || !i.value || !S.value ||
|
|
1499
|
-
o.value = !0,
|
|
1505
|
+
if (!a.admin || o.value || !i.value || !S.value || h.value) return;
|
|
1506
|
+
o.value = !0, h.value = !1;
|
|
1500
1507
|
const F = i.value;
|
|
1501
1508
|
i.value = "";
|
|
1502
1509
|
try {
|
|
1503
|
-
const L =
|
|
1504
|
-
await
|
|
1510
|
+
const L = c.value ? await u.authorize(F, w.value) : await u.authorize(F);
|
|
1511
|
+
await q(L), P || $("confirmed");
|
|
1505
1512
|
} catch {
|
|
1506
|
-
|
|
1513
|
+
P || (h.value = !0);
|
|
1507
1514
|
} finally {
|
|
1508
|
-
|
|
1515
|
+
P || (o.value = !1);
|
|
1509
1516
|
}
|
|
1510
1517
|
}
|
|
1511
1518
|
return ie(() => {
|
|
1512
1519
|
u.subscribe?.((F) => {
|
|
1513
|
-
|
|
1514
|
-
}),
|
|
1520
|
+
P || (n.value = F);
|
|
1521
|
+
}), Y();
|
|
1515
1522
|
}), se(() => {
|
|
1516
|
-
|
|
1517
|
-
}), (F, L) =>
|
|
1523
|
+
P = !0, i.value = "";
|
|
1524
|
+
}), (F, L) => y.admin ? (t(), g(e(de), {
|
|
1518
1525
|
key: 0,
|
|
1519
1526
|
title: r.value.setupTitle,
|
|
1520
1527
|
collapsible: !1,
|
|
1521
1528
|
"aria-busy": o.value
|
|
1522
1529
|
}, {
|
|
1523
1530
|
default: s(() => [
|
|
1524
|
-
|
|
1525
|
-
|
|
1531
|
+
_("p", null, l(r.value.setupHelp), 1),
|
|
1532
|
+
h.value ? (t(), g(e(Q), {
|
|
1526
1533
|
key: 0,
|
|
1527
1534
|
tone: "danger",
|
|
1528
1535
|
role: "alert"
|
|
1529
1536
|
}, {
|
|
1530
1537
|
default: s(() => [
|
|
1531
|
-
|
|
1538
|
+
f(l(r.value.setupError), 1)
|
|
1532
1539
|
]),
|
|
1533
1540
|
_: 1
|
|
1534
|
-
})) :
|
|
1535
|
-
|
|
1536
|
-
n.value?.reason && (n.value.state === "blocked" || n.value.state === "unsupported") ? (t(), C("p",
|
|
1537
|
-
|
|
1538
|
-
|
|
1541
|
+
})) : m("", !0),
|
|
1542
|
+
_("p", yl, l(n.value ? n.value.state === "ready" ? E.value ? r.value.scopeNeeds : r.value.ready : n.value.state === "needs-admin-approval" ? r.value.needs : r.value.blocked : r.value.loading), 1),
|
|
1543
|
+
n.value?.reason && (n.value.state === "blocked" || n.value.state === "unsupported") ? (t(), C("p", ml, l(r.value.details) + ": " + l(n.value.reason), 1)) : m("", !0),
|
|
1544
|
+
v.value?.selection ? (t(), C("p", bl, l(r.value.protectedScope) + ": " + l(v.value.selection.root), 1)) : m("", !0),
|
|
1545
|
+
v.value?.mismatch ? (t(), g(e(Q), {
|
|
1539
1546
|
key: 3,
|
|
1540
1547
|
tone: "warning"
|
|
1541
1548
|
}, {
|
|
1542
1549
|
default: s(() => [
|
|
1543
|
-
|
|
1550
|
+
f(l(r.value.scopeMismatch) + " " + l(r.value.preselection) + ": " + l(v.value.preselection) + " · " + l(r.value.protectedScope) + ": " + l(v.value.selection?.root), 1)
|
|
1544
1551
|
]),
|
|
1545
1552
|
_: 1
|
|
1546
|
-
})) :
|
|
1547
|
-
n.value?.state === "needs-admin-approval" || n.value?.retry ||
|
|
1553
|
+
})) : m("", !0),
|
|
1554
|
+
n.value?.state === "needs-admin-approval" || n.value?.retry || c.value && n.value?.state === "ready" ? (t(), g(e(pe), {
|
|
1548
1555
|
key: 4,
|
|
1549
1556
|
onSubmit: ce(X, ["prevent"])
|
|
1550
1557
|
}, {
|
|
1551
1558
|
default: s(() => [
|
|
1552
|
-
|
|
1553
|
-
|
|
1559
|
+
c.value ? (t(), C(j, { key: 0 }, [
|
|
1560
|
+
_("p", null, l(v.value?.selection ? r.value.scopeChangeHelp : r.value.preselectionHelp), 1),
|
|
1554
1561
|
b(e(ne), {
|
|
1555
1562
|
label: r.value.scopeLabel,
|
|
1556
1563
|
"label-for": "delegate-scope"
|
|
1557
1564
|
}, {
|
|
1558
1565
|
default: s(() => [
|
|
1559
|
-
b(e(
|
|
1566
|
+
b(e(Ue), {
|
|
1560
1567
|
id: "delegate-scope",
|
|
1561
|
-
modelValue:
|
|
1562
|
-
"onUpdate:modelValue": L[0] || (L[0] = (J) =>
|
|
1563
|
-
options:
|
|
1564
|
-
disabled: o.value ||
|
|
1568
|
+
modelValue: w.value,
|
|
1569
|
+
"onUpdate:modelValue": L[0] || (L[0] = (J) => w.value = J),
|
|
1570
|
+
options: V.value,
|
|
1571
|
+
disabled: o.value || h.value
|
|
1565
1572
|
}, null, 8, ["modelValue", "options", "disabled"])
|
|
1566
1573
|
]),
|
|
1567
1574
|
_: 1
|
|
1568
1575
|
}, 8, ["label"])
|
|
1569
|
-
], 64)) :
|
|
1576
|
+
], 64)) : m("", !0),
|
|
1570
1577
|
b(e(ne), {
|
|
1571
1578
|
label: r.value.password,
|
|
1572
1579
|
"label-for": "delegate-password"
|
|
@@ -1578,7 +1585,7 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
1578
1585
|
"onUpdate:modelValue": L[1] || (L[1] = (J) => i.value = J),
|
|
1579
1586
|
type: "password",
|
|
1580
1587
|
autocomplete: "current-password",
|
|
1581
|
-
disabled: o.value ||
|
|
1588
|
+
disabled: o.value || h.value
|
|
1582
1589
|
}, null, 8, ["modelValue", "disabled"])
|
|
1583
1590
|
]),
|
|
1584
1591
|
_: 1
|
|
@@ -1588,10 +1595,10 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
1588
1595
|
b(e(z), {
|
|
1589
1596
|
type: "submit",
|
|
1590
1597
|
variant: "primary",
|
|
1591
|
-
disabled: o.value ||
|
|
1598
|
+
disabled: o.value || h.value || !i.value || !S.value || c.value && !!v.value?.selection && !H.value
|
|
1592
1599
|
}, {
|
|
1593
1600
|
default: s(() => [
|
|
1594
|
-
|
|
1601
|
+
f(l(c.value ? v.value?.selection ? r.value.confirmScope : r.value.confirmShare : r.value.authorize), 1)
|
|
1595
1602
|
]),
|
|
1596
1603
|
_: 1
|
|
1597
1604
|
}, 8, ["disabled"])
|
|
@@ -1600,106 +1607,106 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
1600
1607
|
})
|
|
1601
1608
|
]),
|
|
1602
1609
|
_: 1
|
|
1603
|
-
})) :
|
|
1610
|
+
})) : m("", !0),
|
|
1604
1611
|
b(e(z), {
|
|
1605
1612
|
variant: "secondary",
|
|
1606
1613
|
disabled: o.value,
|
|
1607
|
-
onClick:
|
|
1614
|
+
onClick: Y
|
|
1608
1615
|
}, {
|
|
1609
1616
|
default: s(() => [
|
|
1610
|
-
|
|
1617
|
+
f(l(r.value.refresh), 1)
|
|
1611
1618
|
]),
|
|
1612
1619
|
_: 1
|
|
1613
1620
|
}, 8, ["disabled"])
|
|
1614
1621
|
]),
|
|
1615
1622
|
_: 1
|
|
1616
|
-
}, 8, ["title", "aria-busy"])) :
|
|
1623
|
+
}, 8, ["title", "aria-busy"])) : m("", !0);
|
|
1617
1624
|
}
|
|
1618
|
-
}),
|
|
1625
|
+
}), kl = {
|
|
1619
1626
|
key: 1,
|
|
1620
1627
|
role: "status"
|
|
1621
|
-
},
|
|
1628
|
+
}, _l = {
|
|
1622
1629
|
key: 2,
|
|
1623
1630
|
role: "status"
|
|
1624
|
-
},
|
|
1631
|
+
}, gl = {
|
|
1625
1632
|
key: 0,
|
|
1626
1633
|
role: "status",
|
|
1627
1634
|
class: "destination"
|
|
1628
|
-
},
|
|
1635
|
+
}, hl = { class: "section-heading" }, wl = { key: 3 }, Cl = {
|
|
1629
1636
|
key: 4,
|
|
1630
1637
|
class: "records"
|
|
1631
|
-
},
|
|
1638
|
+
}, $l = ["data-job-state"], xl = ["role"], Sl = { key: 5 }, zl = {
|
|
1632
1639
|
key: 6,
|
|
1633
1640
|
class: "records"
|
|
1634
|
-
},
|
|
1641
|
+
}, Vl = /* @__PURE__ */ ae({
|
|
1635
1642
|
__name: "DelegatePanel",
|
|
1636
1643
|
props: {
|
|
1637
1644
|
ctx: {}
|
|
1638
1645
|
},
|
|
1639
|
-
setup(
|
|
1640
|
-
const
|
|
1641
|
-
let
|
|
1642
|
-
Se([
|
|
1643
|
-
|
|
1646
|
+
setup(y) {
|
|
1647
|
+
const D = y, a = N(() => xe(D.ctx.locale)), $ = $e(D.ctx), u = p(), r = p([]), n = p([]), i = p(!1), o = p(), h = p(""), v = p(!1), w = p(""), U = p(""), c = p("");
|
|
1648
|
+
let V = !1, S, E;
|
|
1649
|
+
Se([U, w, c], () => {
|
|
1650
|
+
E = void 0;
|
|
1644
1651
|
}, { flush: "sync" });
|
|
1645
|
-
const H = (M) => ["queued", "running", "waiting_executor"].includes(M.state),
|
|
1652
|
+
const H = (M) => ["queued", "running", "waiting_executor"].includes(M.state), P = N(() => n.value.some((M) => M.state === "waiting_executor")), q = ["EXECUTOR_UNAVAILABLE", "EXECUTOR_TIMEOUT"], Y = N(() => P.value && q.includes(o.value?.code ?? "")), X = N(() => u.value && u.value.state !== "ready" && !(P.value && u.value.state === "needs-admin-approval" && q.includes(u.value.reason ?? "")));
|
|
1646
1653
|
async function F() {
|
|
1647
|
-
if (
|
|
1648
|
-
const [M,
|
|
1649
|
-
if (!
|
|
1650
|
-
M.status === "fulfilled" && (u.value = M.value),
|
|
1651
|
-
for (const x of [M,
|
|
1654
|
+
if (V) return;
|
|
1655
|
+
const [M, d, k] = await Promise.allSettled([D.ctx.call("delegate.status"), D.ctx.call("delegate.list"), D.ctx.call("delegate.jobs.list")]);
|
|
1656
|
+
if (!V) {
|
|
1657
|
+
M.status === "fulfilled" && (u.value = M.value), d.status === "fulfilled" && (r.value = (d.value.delegations ?? []).filter((x) => !x.revoked)), k.status === "fulfilled" && (n.value = k.value.jobs ?? []);
|
|
1658
|
+
for (const x of [M, d, k]) if (x.status === "rejected") throw x.reason;
|
|
1652
1659
|
}
|
|
1653
1660
|
}
|
|
1654
1661
|
async function L(M) {
|
|
1655
|
-
if (!(i.value ||
|
|
1662
|
+
if (!(i.value || V)) {
|
|
1656
1663
|
i.value = !0, o.value = void 0;
|
|
1657
1664
|
try {
|
|
1658
1665
|
await M();
|
|
1659
|
-
} catch (
|
|
1660
|
-
|
|
1666
|
+
} catch (d) {
|
|
1667
|
+
V || (o.value = d);
|
|
1661
1668
|
} finally {
|
|
1662
|
-
|
|
1669
|
+
V || (i.value = !1);
|
|
1663
1670
|
}
|
|
1664
1671
|
}
|
|
1665
1672
|
}
|
|
1666
1673
|
const J = () => L(F), K = (M) => L(async () => {
|
|
1667
|
-
await
|
|
1668
|
-
}),
|
|
1669
|
-
const
|
|
1670
|
-
|
|
1671
|
-
}),
|
|
1672
|
-
|
|
1674
|
+
await D.ctx.call("delegate.revoke", { delegation_id: M }), await F();
|
|
1675
|
+
}), W = (M) => L(async () => {
|
|
1676
|
+
const d = await D.ctx.call("delegate.jobs.cancel", { id: M });
|
|
1677
|
+
V || (h.value = d.revocation_pending ? a.value.pending : ""), await F();
|
|
1678
|
+
}), R = N(() => u.value?.state === "ready" && !!w.value && !!U.value && !!c.value), O = () => L(async () => {
|
|
1679
|
+
R.value && (await D.ctx.call("delegate.jobs.submit", { key: E ?? (E = crypto.randomUUID()), url: U.value, dest: w.value, name: c.value }), V || (U.value = "", c.value = "", w.value = ""), await F());
|
|
1673
1680
|
}), T = (M) => {
|
|
1674
|
-
const
|
|
1675
|
-
return Number.isNaN(
|
|
1681
|
+
const d = new Date(M);
|
|
1682
|
+
return Number.isNaN(d.getTime()) ? "—" : d.toLocaleString(D.ctx.locale);
|
|
1676
1683
|
};
|
|
1677
1684
|
return ie(() => {
|
|
1678
1685
|
J(), S = setInterval(() => {
|
|
1679
1686
|
n.value.some(H) && J();
|
|
1680
1687
|
}, 3e3);
|
|
1681
1688
|
}), se(() => {
|
|
1682
|
-
|
|
1683
|
-
}), (M,
|
|
1689
|
+
V = !0, S && clearInterval(S), $.dispose();
|
|
1690
|
+
}), (M, d) => (t(), g(e(de), {
|
|
1684
1691
|
title: a.value.title,
|
|
1685
1692
|
collapsible: !1,
|
|
1686
1693
|
"aria-busy": i.value,
|
|
1687
1694
|
class: "delegate-panel"
|
|
1688
1695
|
}, {
|
|
1689
1696
|
default: s(() => [
|
|
1690
|
-
|
|
1691
|
-
o.value && !
|
|
1697
|
+
_("p", null, l(a.value.help), 1),
|
|
1698
|
+
o.value && !Y.value ? (t(), g(e(Q), {
|
|
1692
1699
|
key: 0,
|
|
1693
1700
|
tone: "danger",
|
|
1694
1701
|
role: "alert"
|
|
1695
1702
|
}, {
|
|
1696
1703
|
default: s(() => [
|
|
1697
|
-
|
|
1704
|
+
f(l(e(Fe)(o.value, a.value)), 1)
|
|
1698
1705
|
]),
|
|
1699
1706
|
_: 1
|
|
1700
|
-
})) :
|
|
1701
|
-
|
|
1702
|
-
X.value ? (t(), C("p",
|
|
1707
|
+
})) : m("", !0),
|
|
1708
|
+
h.value ? (t(), C("p", kl, l(h.value), 1)) : m("", !0),
|
|
1709
|
+
X.value ? (t(), C("p", _l, l(u.value?.state === "needs-admin-approval" ? a.value.needs : a.value.blocked), 1)) : m("", !0),
|
|
1703
1710
|
b(e(pe), {
|
|
1704
1711
|
onSubmit: ce(O, ["prevent"])
|
|
1705
1712
|
}, {
|
|
@@ -1711,8 +1718,8 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
1711
1718
|
default: s(() => [
|
|
1712
1719
|
b(e(re), {
|
|
1713
1720
|
id: "delegate-url",
|
|
1714
|
-
modelValue:
|
|
1715
|
-
"onUpdate:modelValue":
|
|
1721
|
+
modelValue: U.value,
|
|
1722
|
+
"onUpdate:modelValue": d[0] || (d[0] = (k) => U.value = k),
|
|
1716
1723
|
type: "url",
|
|
1717
1724
|
disabled: i.value || u.value?.state !== "ready"
|
|
1718
1725
|
}, null, 8, ["modelValue", "disabled"])
|
|
@@ -1726,36 +1733,36 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
1726
1733
|
default: s(() => [
|
|
1727
1734
|
b(e(re), {
|
|
1728
1735
|
id: "delegate-name",
|
|
1729
|
-
modelValue:
|
|
1730
|
-
"onUpdate:modelValue":
|
|
1736
|
+
modelValue: c.value,
|
|
1737
|
+
"onUpdate:modelValue": d[1] || (d[1] = (k) => c.value = k),
|
|
1731
1738
|
"data-file-name": "",
|
|
1732
1739
|
disabled: i.value || u.value?.state !== "ready"
|
|
1733
1740
|
}, null, 8, ["modelValue", "disabled"])
|
|
1734
1741
|
]),
|
|
1735
1742
|
_: 1
|
|
1736
1743
|
}, 8, ["label"]),
|
|
1737
|
-
|
|
1738
|
-
|
|
1744
|
+
_("p", null, l(a.value.size), 1),
|
|
1745
|
+
w.value ? (t(), C("p", gl, l(a.value.destination) + ": " + l(w.value), 1)) : m("", !0),
|
|
1739
1746
|
b(e(fe), null, {
|
|
1740
1747
|
default: s(() => [
|
|
1741
1748
|
b(e(z), {
|
|
1742
1749
|
type: "button",
|
|
1743
1750
|
variant: "secondary",
|
|
1744
1751
|
disabled: i.value || u.value?.state !== "ready",
|
|
1745
|
-
onClick:
|
|
1752
|
+
onClick: d[2] || (d[2] = (k) => v.value = !0)
|
|
1746
1753
|
}, {
|
|
1747
1754
|
default: s(() => [
|
|
1748
|
-
|
|
1755
|
+
f(l(a.value.choose), 1)
|
|
1749
1756
|
]),
|
|
1750
1757
|
_: 1
|
|
1751
1758
|
}, 8, ["disabled"]),
|
|
1752
1759
|
b(e(z), {
|
|
1753
1760
|
type: "submit",
|
|
1754
1761
|
variant: "primary",
|
|
1755
|
-
disabled: i.value || !
|
|
1762
|
+
disabled: i.value || !R.value
|
|
1756
1763
|
}, {
|
|
1757
1764
|
default: s(() => [
|
|
1758
|
-
|
|
1765
|
+
f(l(a.value.submit), 1)
|
|
1759
1766
|
]),
|
|
1760
1767
|
_: 1
|
|
1761
1768
|
}, 8, ["disabled"])
|
|
@@ -1766,63 +1773,63 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
1766
1773
|
_: 1
|
|
1767
1774
|
}),
|
|
1768
1775
|
b(ye, {
|
|
1769
|
-
open:
|
|
1770
|
-
"onUpdate:open":
|
|
1771
|
-
locale:
|
|
1776
|
+
open: v.value,
|
|
1777
|
+
"onUpdate:open": d[3] || (d[3] = (k) => v.value = k),
|
|
1778
|
+
locale: y.ctx.locale,
|
|
1772
1779
|
provider: e($),
|
|
1773
1780
|
mode: "folder",
|
|
1774
|
-
onSelected:
|
|
1781
|
+
onSelected: d[4] || (d[4] = (k) => w.value = k)
|
|
1775
1782
|
}, null, 8, ["open", "locale", "provider"]),
|
|
1776
|
-
|
|
1777
|
-
|
|
1783
|
+
_("div", hl, [
|
|
1784
|
+
_("h3", null, l(a.value.downloads), 1),
|
|
1778
1785
|
b(e(z), {
|
|
1779
1786
|
variant: "secondary",
|
|
1780
1787
|
disabled: i.value,
|
|
1781
1788
|
onClick: J
|
|
1782
1789
|
}, {
|
|
1783
1790
|
default: s(() => [
|
|
1784
|
-
|
|
1791
|
+
f(l(a.value.refresh), 1)
|
|
1785
1792
|
]),
|
|
1786
1793
|
_: 1
|
|
1787
1794
|
}, 8, ["disabled"])
|
|
1788
1795
|
]),
|
|
1789
|
-
!n.value.length && !o.value ? (t(), C("p",
|
|
1790
|
-
(t(!0), C(j, null, te(n.value, (
|
|
1791
|
-
key:
|
|
1792
|
-
"data-job-state":
|
|
1796
|
+
!n.value.length && !o.value ? (t(), C("p", wl, l(a.value.noJobs), 1)) : (t(), C("ul", Cl, [
|
|
1797
|
+
(t(!0), C(j, null, te(n.value, (k) => (t(), C("li", {
|
|
1798
|
+
key: k.id,
|
|
1799
|
+
"data-job-state": k.state
|
|
1793
1800
|
}, [
|
|
1794
|
-
|
|
1795
|
-
role:
|
|
1796
|
-
}, l(
|
|
1797
|
-
H(
|
|
1801
|
+
_("span", {
|
|
1802
|
+
role: k.state === "waiting_executor" ? "status" : void 0
|
|
1803
|
+
}, l(k.name) + " · " + l(a.value[k.state]), 9, xl),
|
|
1804
|
+
H(k) ? (t(), g(e(z), {
|
|
1798
1805
|
key: 0,
|
|
1799
1806
|
variant: "secondary",
|
|
1800
1807
|
disabled: i.value,
|
|
1801
|
-
onClick: (x) =>
|
|
1808
|
+
onClick: (x) => W(k.id)
|
|
1802
1809
|
}, {
|
|
1803
1810
|
default: s(() => [
|
|
1804
|
-
|
|
1811
|
+
f(l(a.value.cancel), 1)
|
|
1805
1812
|
]),
|
|
1806
1813
|
_: 1
|
|
1807
|
-
}, 8, ["disabled", "onClick"])) :
|
|
1808
|
-
], 8,
|
|
1814
|
+
}, 8, ["disabled", "onClick"])) : m("", !0)
|
|
1815
|
+
], 8, $l))), 128))
|
|
1809
1816
|
])),
|
|
1810
|
-
|
|
1811
|
-
!r.value.length && !o.value ? (t(), C("p",
|
|
1812
|
-
(t(!0), C(j, null, te(r.value, (
|
|
1813
|
-
key:
|
|
1817
|
+
_("h3", null, l(a.value.delegations), 1),
|
|
1818
|
+
!r.value.length && !o.value ? (t(), C("p", Sl, l(a.value.noDelegations), 1)) : (t(), C("ul", zl, [
|
|
1819
|
+
(t(!0), C(j, null, te(r.value, (k) => (t(), C("li", {
|
|
1820
|
+
key: k.delegation_id
|
|
1814
1821
|
}, [
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1822
|
+
_("div", null, [
|
|
1823
|
+
_("strong", null, l(k.path), 1),
|
|
1824
|
+
_("p", null, l(a.value.expires) + ": " + l(T(k.expires_at)), 1)
|
|
1818
1825
|
]),
|
|
1819
1826
|
b(e(z), {
|
|
1820
1827
|
variant: "secondary",
|
|
1821
1828
|
disabled: i.value,
|
|
1822
|
-
onClick: (x) => K(
|
|
1829
|
+
onClick: (x) => K(k.delegation_id)
|
|
1823
1830
|
}, {
|
|
1824
1831
|
default: s(() => [
|
|
1825
|
-
|
|
1832
|
+
f(l(a.value.revoke), 1)
|
|
1826
1833
|
]),
|
|
1827
1834
|
_: 1
|
|
1828
1835
|
}, 8, ["disabled", "onClick"])
|
|
@@ -1832,19 +1839,19 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
1832
1839
|
_: 1
|
|
1833
1840
|
}, 8, ["title", "aria-busy"]));
|
|
1834
1841
|
}
|
|
1835
|
-
}),
|
|
1842
|
+
}), vt = /* @__PURE__ */ ue(Vl, [["__scopeId", "data-v-d79ee942"]]), Pl = {
|
|
1836
1843
|
key: 1,
|
|
1837
1844
|
role: "status"
|
|
1838
1845
|
}, Ul = {
|
|
1839
1846
|
key: 2,
|
|
1840
1847
|
role: "status"
|
|
1841
|
-
},
|
|
1848
|
+
}, Dl = { key: 3 }, Al = {
|
|
1842
1849
|
key: 7,
|
|
1843
1850
|
role: "status"
|
|
1844
|
-
},
|
|
1851
|
+
}, El = { class: "save-actions" }, Tl = { key: 8 }, Il = {
|
|
1845
1852
|
key: 10,
|
|
1846
1853
|
class: "save-actions"
|
|
1847
|
-
},
|
|
1854
|
+
}, Ol = { key: 12 }, Rl = { class: "save-records" }, ql = { class: "save-actions" }, Ll = { key: 14 }, Bl = { class: "save-records" }, Fl = ["data-job-id", "data-save-state"], Nl = { key: 0 }, Ml = { key: 3 }, Hl = /* @__PURE__ */ ae({
|
|
1848
1855
|
__name: "BackgroundSavePanel",
|
|
1849
1856
|
props: {
|
|
1850
1857
|
sdk: {},
|
|
@@ -1853,29 +1860,29 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
1853
1860
|
picker: {}
|
|
1854
1861
|
},
|
|
1855
1862
|
emits: ["authorized"],
|
|
1856
|
-
setup(
|
|
1857
|
-
const a =
|
|
1858
|
-
let S = !1,
|
|
1859
|
-
const H = (T) => T.state === "copying" && T.code === "CANCEL_REQUESTED",
|
|
1860
|
-
function
|
|
1861
|
-
i.value = void 0, o.value = [],
|
|
1863
|
+
setup(y, { emit: D }) {
|
|
1864
|
+
const a = y, $ = D, u = p(!1), r = p(""), n = N(() => Ce(a.locale)), i = p(), o = p([]), h = p([]), v = p(!1), w = p(), U = p(""), c = p([]), V = N(() => a.picker && (i.value?.selection ? Ne(a.picker.provider, i.value.selection.root) : i.value?.scopeMode === "install-selected" ? void 0 : a.picker.provider));
|
|
1865
|
+
let S = !1, E;
|
|
1866
|
+
const H = (T) => T.state === "copying" && T.code === "CANCEL_REQUESTED", P = (T) => H(T) ? "canceling" : T.state === "committed" && !T.receipt?.path ? "uncertain" : T.state, q = (T) => ["queued", "copying"].includes(T.state) && !H(T);
|
|
1867
|
+
function Y() {
|
|
1868
|
+
i.value = void 0, o.value = [], h.value = [], c.value = [], u.value = !1;
|
|
1862
1869
|
}
|
|
1863
1870
|
async function X() {
|
|
1864
|
-
const [T, M,
|
|
1871
|
+
const [T, M, d, k] = await Promise.all([a.sdk.status(), a.sdk.list(), a.sdk.operations(), Promise.all((a.picker?.keys ?? []).map((x) => a.sdk.destination(x)))]);
|
|
1865
1872
|
if (!S) {
|
|
1866
|
-
if (!T || typeof T.disabled != "boolean" || !Array.isArray(M) || !Array.isArray(
|
|
1867
|
-
(i.value?.selection?.generation !== T.selection?.generation || i.value?.selection?.scope !== T.selection?.scope) && (u.value = !1), i.value = T, o.value =
|
|
1873
|
+
if (!T || typeof T.disabled != "boolean" || !Array.isArray(M) || !Array.isArray(d)) throw { code: "unavailable" };
|
|
1874
|
+
(i.value?.selection?.generation !== T.selection?.generation || i.value?.selection?.scope !== T.selection?.scope) && (u.value = !1), i.value = T, o.value = k.length ? M.filter((x) => k.some((G) => G.status === "active" && G.destination?.id === x.id)) : M, h.value = d, c.value = k;
|
|
1868
1875
|
}
|
|
1869
1876
|
}
|
|
1870
1877
|
async function F(T) {
|
|
1871
|
-
if (!(S ||
|
|
1872
|
-
|
|
1878
|
+
if (!(S || v.value)) {
|
|
1879
|
+
v.value = !0, w.value = void 0, U.value = "";
|
|
1873
1880
|
try {
|
|
1874
1881
|
await T();
|
|
1875
1882
|
} catch (M) {
|
|
1876
|
-
S || (
|
|
1883
|
+
S || (Y(), w.value = M);
|
|
1877
1884
|
} finally {
|
|
1878
|
-
S || (
|
|
1885
|
+
S || (v.value = !1);
|
|
1879
1886
|
}
|
|
1880
1887
|
}
|
|
1881
1888
|
}
|
|
@@ -1885,289 +1892,289 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
1885
1892
|
}
|
|
1886
1893
|
const K = (T) => F(async () => {
|
|
1887
1894
|
if ((await a.sdk.revoke({ delegation_id: T }))?.revoked !== !0) throw { code: "commit-uncertain" };
|
|
1888
|
-
await X(), S || (
|
|
1889
|
-
}),
|
|
1895
|
+
await X(), S || (U.value = n.value.revoked);
|
|
1896
|
+
}), W = (T) => F(async () => {
|
|
1890
1897
|
await a.sdk.cancel({ delegation_id: T.delegation_id, job_id: T.job_id }), await X();
|
|
1891
|
-
}),
|
|
1898
|
+
}), R = () => F(async () => {
|
|
1892
1899
|
if (!a.admin || !i.value) return;
|
|
1893
1900
|
const T = i.value.disabled;
|
|
1894
1901
|
if ((T ? await a.sdk.enable() : await a.sdk.disable())?.disabled !== !T) throw { code: "commit-uncertain" };
|
|
1895
1902
|
await X();
|
|
1896
1903
|
}), O = (T) => F(async () => {
|
|
1897
|
-
const M = "example-" + Array.from(crypto.getRandomValues(new Uint8Array(16)), (
|
|
1904
|
+
const M = "example-" + Array.from(crypto.getRandomValues(new Uint8Array(16)), (d) => d.toString(16).padStart(2, "0")).join("");
|
|
1898
1905
|
await a.sdk.exportExample({ key: T, job_id: M }), await X();
|
|
1899
1906
|
});
|
|
1900
1907
|
return ie(() => {
|
|
1901
|
-
L(),
|
|
1902
|
-
|
|
1908
|
+
L(), E = setInterval(() => {
|
|
1909
|
+
h.value.some(q) && L();
|
|
1903
1910
|
}, 3e3);
|
|
1904
1911
|
}), se(() => {
|
|
1905
|
-
S = !0,
|
|
1906
|
-
}), (T, M) => (t(),
|
|
1912
|
+
S = !0, E && clearInterval(E);
|
|
1913
|
+
}), (T, M) => (t(), g(e(de), {
|
|
1907
1914
|
title: n.value.title,
|
|
1908
1915
|
collapsible: !1,
|
|
1909
|
-
"aria-busy":
|
|
1916
|
+
"aria-busy": v.value,
|
|
1910
1917
|
class: "background-save-panel"
|
|
1911
1918
|
}, {
|
|
1912
1919
|
default: s(() => [
|
|
1913
|
-
|
|
1914
|
-
|
|
1920
|
+
_("p", null, l(n.value.help), 1),
|
|
1921
|
+
w.value ? (t(), g(e(Q), {
|
|
1915
1922
|
key: 0,
|
|
1916
1923
|
tone: "danger",
|
|
1917
1924
|
role: "alert",
|
|
1918
1925
|
class: "save-message"
|
|
1919
1926
|
}, {
|
|
1920
1927
|
default: s(() => [
|
|
1921
|
-
|
|
1928
|
+
f(l(e(be)(w.value, n.value)), 1)
|
|
1922
1929
|
]),
|
|
1923
1930
|
_: 1
|
|
1924
|
-
})) :
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
i.value?.selection ? (t(), C("p",
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
])) :
|
|
1931
|
-
i.value?.mismatch ? (t(),
|
|
1931
|
+
})) : m("", !0),
|
|
1932
|
+
v.value && !i.value ? (t(), C("p", Pl, l(n.value.loading), 1)) : m("", !0),
|
|
1933
|
+
U.value ? (t(), C("p", Ul, l(U.value), 1)) : m("", !0),
|
|
1934
|
+
i.value?.selection ? (t(), C("p", Dl, [
|
|
1935
|
+
_("strong", null, l(n.value.scope), 1),
|
|
1936
|
+
f(": " + l(i.value.selection.root), 1)
|
|
1937
|
+
])) : m("", !0),
|
|
1938
|
+
i.value?.mismatch ? (t(), g(e(Q), {
|
|
1932
1939
|
key: 4,
|
|
1933
1940
|
tone: "warning"
|
|
1934
1941
|
}, {
|
|
1935
1942
|
default: s(() => [
|
|
1936
|
-
|
|
1943
|
+
f(l(n.value.scopeMismatch) + " " + l(i.value.preselection) + " → " + l(i.value.selection?.root), 1)
|
|
1937
1944
|
]),
|
|
1938
1945
|
_: 1
|
|
1939
|
-
})) :
|
|
1940
|
-
i.value?.scopeMode === "install-selected" && !i.value.selection ? (t(),
|
|
1946
|
+
})) : m("", !0),
|
|
1947
|
+
i.value?.scopeMode === "install-selected" && !i.value.selection ? (t(), g(e(Q), {
|
|
1941
1948
|
key: 5,
|
|
1942
1949
|
tone: "warning"
|
|
1943
1950
|
}, {
|
|
1944
1951
|
default: s(() => [
|
|
1945
|
-
|
|
1952
|
+
f(l(n.value.scopeNeeds), 1)
|
|
1946
1953
|
]),
|
|
1947
1954
|
_: 1
|
|
1948
|
-
})) :
|
|
1949
|
-
i.value?.disabled ? (t(),
|
|
1955
|
+
})) : m("", !0),
|
|
1956
|
+
i.value?.disabled ? (t(), g(e(Q), {
|
|
1950
1957
|
key: 6,
|
|
1951
1958
|
tone: "warning",
|
|
1952
1959
|
role: "status",
|
|
1953
1960
|
class: "save-message"
|
|
1954
1961
|
}, {
|
|
1955
1962
|
default: s(() => [
|
|
1956
|
-
|
|
1963
|
+
f(l(n.value.disabled), 1)
|
|
1957
1964
|
]),
|
|
1958
1965
|
_: 1
|
|
1959
|
-
})) : i.value ? (t(), C("p",
|
|
1960
|
-
|
|
1966
|
+
})) : i.value ? (t(), C("p", Al, l(n.value.enabled), 1)) : m("", !0),
|
|
1967
|
+
_("div", El, [
|
|
1961
1968
|
b(e(z), {
|
|
1962
1969
|
variant: "secondary",
|
|
1963
|
-
disabled:
|
|
1970
|
+
disabled: v.value,
|
|
1964
1971
|
onClick: L
|
|
1965
1972
|
}, {
|
|
1966
1973
|
default: s(() => [
|
|
1967
|
-
|
|
1974
|
+
f(l(n.value.refresh), 1)
|
|
1968
1975
|
]),
|
|
1969
1976
|
_: 1
|
|
1970
1977
|
}, 8, ["disabled"]),
|
|
1971
|
-
|
|
1978
|
+
y.admin && i.value ? (t(), g(e(z), {
|
|
1972
1979
|
key: 0,
|
|
1973
1980
|
variant: i.value.disabled ? "secondary" : "danger",
|
|
1974
|
-
disabled:
|
|
1975
|
-
onClick:
|
|
1981
|
+
disabled: v.value,
|
|
1982
|
+
onClick: R
|
|
1976
1983
|
}, {
|
|
1977
1984
|
default: s(() => [
|
|
1978
|
-
|
|
1985
|
+
f(l(i.value.disabled ? n.value.enable : n.value.disable), 1)
|
|
1979
1986
|
]),
|
|
1980
1987
|
_: 1
|
|
1981
|
-
}, 8, ["variant", "disabled"])) :
|
|
1988
|
+
}, 8, ["variant", "disabled"])) : m("", !0)
|
|
1982
1989
|
]),
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1990
|
+
y.admin && i.value ? (t(), C("p", Tl, l(n.value.disableHelp), 1)) : m("", !0),
|
|
1991
|
+
_("h3", null, l(n.value.delegations), 1),
|
|
1992
|
+
c.value.some((d) => d.status === "reselection-required") ? (t(), g(e(Q), {
|
|
1986
1993
|
key: 9,
|
|
1987
1994
|
tone: "warning"
|
|
1988
1995
|
}, {
|
|
1989
1996
|
default: s(() => [
|
|
1990
|
-
|
|
1997
|
+
f(l(n.value.reselect), 1)
|
|
1991
1998
|
]),
|
|
1992
1999
|
_: 1
|
|
1993
|
-
})) :
|
|
1994
|
-
|
|
1995
|
-
(t(!0), C(j, null, te(
|
|
1996
|
-
key:
|
|
2000
|
+
})) : m("", !0),
|
|
2001
|
+
y.picker ? (t(), C("div", Il, [
|
|
2002
|
+
(t(!0), C(j, null, te(y.picker.keys, (d) => (t(), g(e(z), {
|
|
2003
|
+
key: d,
|
|
1997
2004
|
variant: "secondary",
|
|
1998
|
-
disabled:
|
|
1999
|
-
onClick: (
|
|
2000
|
-
r.value =
|
|
2005
|
+
disabled: v.value || !i.value || i.value.disabled || !V.value,
|
|
2006
|
+
onClick: (k) => {
|
|
2007
|
+
r.value = d, u.value = !0;
|
|
2001
2008
|
}
|
|
2002
2009
|
}, {
|
|
2003
2010
|
default: s(() => [
|
|
2004
|
-
|
|
2011
|
+
f(l(n.value.choose) + " (" + l(d) + ")", 1)
|
|
2005
2012
|
]),
|
|
2006
2013
|
_: 2
|
|
2007
2014
|
}, 1032, ["disabled", "onClick"]))), 128))
|
|
2008
|
-
])) :
|
|
2009
|
-
|
|
2015
|
+
])) : m("", !0),
|
|
2016
|
+
V.value ? (t(), g(ye, {
|
|
2010
2017
|
key: i.value?.selection?.scope,
|
|
2011
2018
|
open: u.value,
|
|
2012
|
-
"onUpdate:open": M[0] || (M[0] = (
|
|
2013
|
-
provider:
|
|
2014
|
-
locale:
|
|
2019
|
+
"onUpdate:open": M[0] || (M[0] = (d) => u.value = d),
|
|
2020
|
+
provider: V.value,
|
|
2021
|
+
locale: y.locale,
|
|
2015
2022
|
mode: "folder",
|
|
2016
|
-
destination: { key: r.value, selectDestination:
|
|
2023
|
+
destination: { key: r.value, selectDestination: y.sdk.selectDestination },
|
|
2017
2024
|
onAuthorized: J
|
|
2018
|
-
}, null, 8, ["open", "provider", "locale", "destination"])) :
|
|
2019
|
-
i.value && !o.value.length ? (t(), C("p",
|
|
2020
|
-
|
|
2021
|
-
(t(!0), C(j, null, te(o.value, (
|
|
2022
|
-
key:
|
|
2025
|
+
}, null, 8, ["open", "provider", "locale", "destination"])) : m("", !0),
|
|
2026
|
+
i.value && !o.value.length ? (t(), C("p", Ol, l(n.value.empty), 1)) : m("", !0),
|
|
2027
|
+
_("ul", Rl, [
|
|
2028
|
+
(t(!0), C(j, null, te(o.value, (d) => (t(), C("li", {
|
|
2029
|
+
key: d.id
|
|
2023
2030
|
}, [
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2031
|
+
_("div", null, [
|
|
2032
|
+
_("strong", null, l(d.path), 1),
|
|
2033
|
+
_("p", null, l(n.value.untilRevoked), 1)
|
|
2027
2034
|
]),
|
|
2028
2035
|
b(e(z), {
|
|
2029
2036
|
variant: "secondary",
|
|
2030
|
-
disabled:
|
|
2031
|
-
onClick: (
|
|
2037
|
+
disabled: v.value,
|
|
2038
|
+
onClick: (k) => K(d.id)
|
|
2032
2039
|
}, {
|
|
2033
2040
|
default: s(() => [
|
|
2034
|
-
|
|
2041
|
+
f(l(n.value.revoke), 1)
|
|
2035
2042
|
]),
|
|
2036
2043
|
_: 1
|
|
2037
2044
|
}, 8, ["disabled", "onClick"])
|
|
2038
2045
|
]))), 128))
|
|
2039
2046
|
]),
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
(t(!0), C(j, null, te(
|
|
2044
|
-
key:
|
|
2047
|
+
c.value.some((d) => d.status === "active") ? (t(), C(j, { key: 13 }, [
|
|
2048
|
+
_("p", null, l(n.value.exampleHelp), 1),
|
|
2049
|
+
_("div", ql, [
|
|
2050
|
+
(t(!0), C(j, null, te(c.value.filter((d) => d.status === "active"), (d) => (t(), g(e(z), {
|
|
2051
|
+
key: d.key,
|
|
2045
2052
|
variant: "secondary",
|
|
2046
|
-
disabled:
|
|
2047
|
-
onClick: (
|
|
2053
|
+
disabled: v.value || i.value?.disabled,
|
|
2054
|
+
onClick: (k) => O(d.key)
|
|
2048
2055
|
}, {
|
|
2049
2056
|
default: s(() => [
|
|
2050
|
-
|
|
2057
|
+
f(l(n.value.example) + " (" + l(d.key) + ")", 1)
|
|
2051
2058
|
]),
|
|
2052
2059
|
_: 2
|
|
2053
2060
|
}, 1032, ["disabled", "onClick"]))), 128))
|
|
2054
2061
|
])
|
|
2055
|
-
], 64)) :
|
|
2056
|
-
|
|
2057
|
-
i.value && !
|
|
2058
|
-
|
|
2059
|
-
(t(!0), C(j, null, te(
|
|
2060
|
-
key:
|
|
2061
|
-
"data-job-id":
|
|
2062
|
-
"data-save-state":
|
|
2062
|
+
], 64)) : m("", !0),
|
|
2063
|
+
_("h3", null, l(n.value.operations), 1),
|
|
2064
|
+
i.value && !h.value.length ? (t(), C("p", Ll, l(n.value.noOperations), 1)) : m("", !0),
|
|
2065
|
+
_("ul", Bl, [
|
|
2066
|
+
(t(!0), C(j, null, te(h.value, (d) => (t(), C("li", {
|
|
2067
|
+
key: d.job_id,
|
|
2068
|
+
"data-job-id": d.job_id,
|
|
2069
|
+
"data-save-state": P(d)
|
|
2063
2070
|
}, [
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2071
|
+
_("div", null, [
|
|
2072
|
+
_("strong", null, l(d.name), 1),
|
|
2073
|
+
_("p", null, l(n.value[P(d)]) + " · " + l(d.job_id), 1),
|
|
2074
|
+
P(d) === "committed" ? (t(), C("p", Nl, l(d.receipt?.path), 1)) : m("", !0),
|
|
2075
|
+
P(d) === "uncertain" ? (t(), g(e(Q), {
|
|
2069
2076
|
key: 1,
|
|
2070
2077
|
tone: "warning",
|
|
2071
2078
|
class: "save-message"
|
|
2072
2079
|
}, {
|
|
2073
2080
|
default: s(() => [
|
|
2074
|
-
|
|
2081
|
+
f(l(n.value.uncertainHelp), 1)
|
|
2075
2082
|
]),
|
|
2076
2083
|
_: 1
|
|
2077
|
-
})) :
|
|
2084
|
+
})) : P(d) === "interrupted" ? (t(), g(e(Q), {
|
|
2078
2085
|
key: 2,
|
|
2079
2086
|
tone: "warning",
|
|
2080
2087
|
class: "save-message"
|
|
2081
2088
|
}, {
|
|
2082
2089
|
default: s(() => [
|
|
2083
|
-
|
|
2090
|
+
f(l(n.value.interruptedHelp), 1)
|
|
2084
2091
|
]),
|
|
2085
2092
|
_: 1
|
|
2086
|
-
})) :
|
|
2087
|
-
|
|
2093
|
+
})) : m("", !0),
|
|
2094
|
+
d.code && !H(d) ? (t(), C("p", Ml, l(e(be)({ code: d.code }, n.value)), 1)) : m("", !0)
|
|
2088
2095
|
]),
|
|
2089
|
-
|
|
2096
|
+
q(d) ? (t(), g(e(z), {
|
|
2090
2097
|
key: 0,
|
|
2091
2098
|
variant: "secondary",
|
|
2092
|
-
disabled:
|
|
2093
|
-
onClick: (
|
|
2099
|
+
disabled: v.value,
|
|
2100
|
+
onClick: (k) => W(d)
|
|
2094
2101
|
}, {
|
|
2095
2102
|
default: s(() => [
|
|
2096
|
-
|
|
2103
|
+
f(l(n.value.cancel), 1)
|
|
2097
2104
|
]),
|
|
2098
2105
|
_: 1
|
|
2099
|
-
}, 8, ["disabled", "onClick"])) :
|
|
2100
|
-
], 8,
|
|
2106
|
+
}, 8, ["disabled", "onClick"])) : m("", !0)
|
|
2107
|
+
], 8, Fl))), 128))
|
|
2101
2108
|
])
|
|
2102
2109
|
]),
|
|
2103
2110
|
_: 1
|
|
2104
2111
|
}, 8, ["title", "aria-busy"]));
|
|
2105
2112
|
}
|
|
2106
|
-
}),
|
|
2113
|
+
}), ct = /* @__PURE__ */ ue(Hl, [["__scopeId", "data-v-c4022c90"]]), Kl = {
|
|
2107
2114
|
class: "authorization-announcement",
|
|
2108
2115
|
role: "status",
|
|
2109
2116
|
"aria-live": "polite",
|
|
2110
2117
|
"aria-atomic": "true"
|
|
2111
|
-
},
|
|
2118
|
+
}, Jl = ["aria-busy", "data-authorization-state"], Xl = {
|
|
2112
2119
|
class: "authorization-icon",
|
|
2113
2120
|
"aria-hidden": "true"
|
|
2114
|
-
},
|
|
2121
|
+
}, Gl = { class: "authorization-title" }, Ql = { class: "authorization-body" }, Yl = { class: "authorization-actions" }, Wl = {
|
|
2115
2122
|
key: 1,
|
|
2116
2123
|
class: "authorization-authorized"
|
|
2117
|
-
},
|
|
2124
|
+
}, Zl = { class: "authorization-ready" }, jl = /* @__PURE__ */ ae({
|
|
2118
2125
|
__name: "AuthorizationGate",
|
|
2119
2126
|
props: {
|
|
2120
2127
|
ctx: {},
|
|
2121
2128
|
name: {}
|
|
2122
2129
|
},
|
|
2123
2130
|
emits: ["ready"],
|
|
2124
|
-
setup(
|
|
2125
|
-
const a =
|
|
2126
|
-
let
|
|
2127
|
-
const
|
|
2128
|
-
async function K(
|
|
2129
|
-
if (n.value ||
|
|
2130
|
-
const
|
|
2131
|
-
r.value =
|
|
2131
|
+
setup(y, { emit: D }) {
|
|
2132
|
+
const a = y, $ = D, u = p(), r = p(), n = p(!1), i = p(!1), o = p(!1);
|
|
2133
|
+
let h = !1, v = 0, w = !1, U;
|
|
2134
|
+
const c = N(() => Me(a.ctx.locale, a.name ?? a.ctx.displayName ?? "")), V = N(() => u.value?.state === "ready"), S = N(() => u.value || r.value), E = N(() => S.value?.state === "authorization_required"), H = N(() => ["helper_untrusted", "cli_untrusted"].includes(S.value?.reason || "")), P = N(() => E.value && !H.value), q = N(() => S.value?.reason === "credential_not_ready" ? "credential" : "unavailable"), Y = N(() => S.value ? E.value ? c.value("title") : S.value.state === "ready" ? c.value("ready") : S.value.state === "not_admin" ? c.value("not_admin.title") : S.value.state === "session_expired" ? c.value("session_expired.title") : c.value(q.value + ".title") : c.value("checking")), X = N(() => E.value ? c.value("purpose") : S.value?.state === "not_admin" ? c.value("not_admin.body") : S.value?.state === "session_expired" ? c.value("session_expired.body") : S.value?.state === "unavailable" ? c.value(q.value + ".body") : c.value("purpose")), F = ["grant_missing", "upgrade_reapproval", "helper_untrusted", "cli_untrusted", "grant_incompatible", "package_identity_changed", "maintenance_task_missing", "maintenance_task_mismatch", "helper_health_rejected", "capability_missing"], L = N(() => F.includes(S.value?.reason || "") ? S.value.reason : "unknown"), J = N(() => H.value ? "next.reinstall" : L.value === "grant_missing" ? "next.install" : L.value === "upgrade_reapproval" || L.value === "grant_incompatible" ? "next.update" : "next.repair");
|
|
2135
|
+
async function K(W) {
|
|
2136
|
+
if (n.value || h) return;
|
|
2137
|
+
const R = ++v;
|
|
2138
|
+
r.value = W === "request" && u.value?.state === "authorization_required" ? u.value : void 0, n.value = !0, i.value = !1, u.value = void 0;
|
|
2132
2139
|
try {
|
|
2133
|
-
const O = await a.ctx.authorization?.[
|
|
2134
|
-
if (
|
|
2140
|
+
const O = await a.ctx.authorization?.[W]();
|
|
2141
|
+
if (h || R !== v) return;
|
|
2135
2142
|
if (!O || O.command !== "authorization" || O.schema_version !== 1 || !["ready", "authorization_required", "not_admin", "session_expired", "unavailable"].includes(O.state) || O.reason === "upgrade_reapproval" && O.state !== "authorization_required") throw Error("invalid status");
|
|
2136
2143
|
u.value = O, O.state === "ready" && $("ready");
|
|
2137
2144
|
} catch (O) {
|
|
2138
|
-
!
|
|
2145
|
+
!h && R === v && (u.value = O.code === "session_required" ? { command: "authorization", schema_version: 1, state: "session_expired", reason: "session_expired" } : r.value || { command: "authorization", schema_version: 1, state: "unavailable", reason: "service_unavailable" }, i.value = !0);
|
|
2139
2146
|
} finally {
|
|
2140
|
-
!
|
|
2147
|
+
!h && R === v && (n.value = !1, r.value = void 0, w && (w = !1, K("status")));
|
|
2141
2148
|
}
|
|
2142
2149
|
}
|
|
2143
2150
|
return ie(() => {
|
|
2144
|
-
|
|
2145
|
-
n.value ?
|
|
2151
|
+
U = a.ctx.reopen(() => {
|
|
2152
|
+
n.value ? w = !0 : K("status");
|
|
2146
2153
|
}), K("status");
|
|
2147
2154
|
}), ze(() => {
|
|
2148
|
-
|
|
2149
|
-
}), (
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2155
|
+
h = !0, v++, typeof U == "function" && U();
|
|
2156
|
+
}), (W, R) => (t(), C(j, null, [
|
|
2157
|
+
_("p", Kl, l(n.value ? c.value("authorizing") : Y.value), 1),
|
|
2158
|
+
V.value ? (t(), C("div", Wl, [
|
|
2159
|
+
_("div", Zl, [
|
|
2153
2160
|
b(e(he), {
|
|
2154
2161
|
size: 16,
|
|
2155
2162
|
"aria-hidden": "true"
|
|
2156
2163
|
}),
|
|
2157
|
-
|
|
2158
|
-
|
|
2164
|
+
_("span", null, l(c.value("ready")), 1),
|
|
2165
|
+
y.ctx.authorization?.canManage?.() ? (t(), g(e(z), {
|
|
2159
2166
|
key: 0,
|
|
2160
2167
|
variant: "secondary",
|
|
2161
2168
|
disabled: n.value,
|
|
2162
|
-
onClick:
|
|
2169
|
+
onClick: R[2] || (R[2] = (O) => o.value = !0)
|
|
2163
2170
|
}, {
|
|
2164
2171
|
default: s(() => [
|
|
2165
|
-
|
|
2172
|
+
f(l(c.value("revoke")), 1)
|
|
2166
2173
|
]),
|
|
2167
2174
|
_: 1
|
|
2168
|
-
}, 8, ["disabled"])) :
|
|
2175
|
+
}, 8, ["disabled"])) : m("", !0)
|
|
2169
2176
|
]),
|
|
2170
|
-
ke(
|
|
2177
|
+
ke(W.$slots, "default", {}, void 0, !0)
|
|
2171
2178
|
])) : (t(), C("div", {
|
|
2172
2179
|
key: 0,
|
|
2173
2180
|
class: "authorization-view",
|
|
@@ -2178,56 +2185,56 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
2178
2185
|
class: "authorization-card",
|
|
2179
2186
|
padding: "lg",
|
|
2180
2187
|
raised: "",
|
|
2181
|
-
"aria-label":
|
|
2188
|
+
"aria-label": Y.value
|
|
2182
2189
|
}, {
|
|
2183
2190
|
default: s(() => [
|
|
2184
|
-
|
|
2185
|
-
(t(),
|
|
2191
|
+
_("span", Xl, [
|
|
2192
|
+
(t(), g(Je(S.value?.state === "unavailable" || S.value?.state === "session_expired" ? e(sa) : e(he)), { class: "authorization-icon-glyph" }))
|
|
2186
2193
|
]),
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
2194
|
+
_("h1", Gl, l(Y.value), 1),
|
|
2195
|
+
_("p", Ql, l(X.value), 1),
|
|
2196
|
+
E.value ? (t(), g(e(Q), {
|
|
2190
2197
|
key: 0,
|
|
2191
2198
|
class: "authorization-status",
|
|
2192
2199
|
tone: ["grant_missing", "upgrade_reapproval"].includes(L.value) ? "info" : "warning",
|
|
2193
|
-
title:
|
|
2200
|
+
title: c.value("reason." + L.value)
|
|
2194
2201
|
}, {
|
|
2195
2202
|
default: s(() => [
|
|
2196
|
-
|
|
2203
|
+
f(l(c.value(J.value)), 1)
|
|
2197
2204
|
]),
|
|
2198
2205
|
_: 1
|
|
2199
|
-
}, 8, ["tone", "title"])) :
|
|
2200
|
-
i.value ? (t(),
|
|
2206
|
+
}, 8, ["tone", "title"])) : m("", !0),
|
|
2207
|
+
i.value ? (t(), g(e(Q), {
|
|
2201
2208
|
key: 1,
|
|
2202
2209
|
class: "authorization-failed",
|
|
2203
2210
|
tone: "warning"
|
|
2204
2211
|
}, {
|
|
2205
2212
|
default: s(() => [
|
|
2206
|
-
|
|
2213
|
+
f(l(c.value("failed")), 1)
|
|
2207
2214
|
]),
|
|
2208
2215
|
_: 1
|
|
2209
|
-
})) :
|
|
2210
|
-
|
|
2211
|
-
|
|
2216
|
+
})) : m("", !0),
|
|
2217
|
+
_("div", Yl, [
|
|
2218
|
+
P.value ? (t(), g(e(z), {
|
|
2212
2219
|
key: 0,
|
|
2213
2220
|
variant: "primary",
|
|
2214
2221
|
loading: n.value,
|
|
2215
2222
|
disabled: n.value,
|
|
2216
|
-
onClick:
|
|
2223
|
+
onClick: R[0] || (R[0] = (O) => K("request"))
|
|
2217
2224
|
}, {
|
|
2218
2225
|
default: s(() => [
|
|
2219
|
-
|
|
2226
|
+
f(l(n.value ? c.value("authorizing") : c.value("authorize")), 1)
|
|
2220
2227
|
]),
|
|
2221
2228
|
_: 1
|
|
2222
|
-
}, 8, ["loading", "disabled"])) : (t(),
|
|
2229
|
+
}, 8, ["loading", "disabled"])) : (t(), g(e(z), {
|
|
2223
2230
|
key: 1,
|
|
2224
2231
|
variant: "primary",
|
|
2225
2232
|
loading: n.value,
|
|
2226
2233
|
disabled: n.value,
|
|
2227
|
-
onClick:
|
|
2234
|
+
onClick: R[1] || (R[1] = (O) => K("status"))
|
|
2228
2235
|
}, {
|
|
2229
2236
|
default: s(() => [
|
|
2230
|
-
|
|
2237
|
+
f(l(n.value ? c.value("checking") : c.value("retry")), 1)
|
|
2231
2238
|
]),
|
|
2232
2239
|
_: 1
|
|
2233
2240
|
}, 8, ["loading", "disabled"]))
|
|
@@ -2235,32 +2242,32 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
2235
2242
|
]),
|
|
2236
2243
|
_: 1
|
|
2237
2244
|
}, 8, ["aria-label"])
|
|
2238
|
-
], 8,
|
|
2245
|
+
], 8, Jl)),
|
|
2239
2246
|
b(e(Ve), {
|
|
2240
2247
|
open: o.value,
|
|
2241
|
-
"onUpdate:open":
|
|
2242
|
-
title:
|
|
2243
|
-
description:
|
|
2248
|
+
"onUpdate:open": R[5] || (R[5] = (O) => o.value = O),
|
|
2249
|
+
title: c.value("revoke.title"),
|
|
2250
|
+
description: c.value("revoke.body")
|
|
2244
2251
|
}, {
|
|
2245
2252
|
footer: s(() => [
|
|
2246
2253
|
b(e(z), {
|
|
2247
2254
|
variant: "secondary",
|
|
2248
|
-
onClick:
|
|
2255
|
+
onClick: R[3] || (R[3] = (O) => o.value = !1)
|
|
2249
2256
|
}, {
|
|
2250
2257
|
default: s(() => [
|
|
2251
|
-
|
|
2258
|
+
f(l(c.value("cancel")), 1)
|
|
2252
2259
|
]),
|
|
2253
2260
|
_: 1
|
|
2254
2261
|
}),
|
|
2255
2262
|
b(e(z), {
|
|
2256
2263
|
variant: "danger",
|
|
2257
2264
|
disabled: n.value,
|
|
2258
|
-
onClick:
|
|
2265
|
+
onClick: R[4] || (R[4] = (O) => {
|
|
2259
2266
|
o.value = !1, K("revoke");
|
|
2260
2267
|
})
|
|
2261
2268
|
}, {
|
|
2262
2269
|
default: s(() => [
|
|
2263
|
-
|
|
2270
|
+
f(l(c.value("revoke")), 1)
|
|
2264
2271
|
]),
|
|
2265
2272
|
_: 1
|
|
2266
2273
|
}, 8, ["disabled"])
|
|
@@ -2269,56 +2276,56 @@ const ra = { class: "app-page-content" }, da = /* @__PURE__ */ ae({
|
|
|
2269
2276
|
}, 8, ["open", "title", "description"])
|
|
2270
2277
|
], 64));
|
|
2271
2278
|
}
|
|
2272
|
-
}),
|
|
2279
|
+
}), pt = /* @__PURE__ */ ue(jl, [["__scopeId", "data-v-c8a34087"]]);
|
|
2273
2280
|
export {
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2281
|
+
st as AppShell,
|
|
2282
|
+
pt as AuthorizationGate,
|
|
2283
|
+
rt as BackgroundPanel,
|
|
2284
|
+
ct as BackgroundSavePanel,
|
|
2285
|
+
vt as DelegatePanel,
|
|
2286
|
+
dt as ExecutorSettings,
|
|
2280
2287
|
ua as ExecutorSetupKey,
|
|
2281
2288
|
De as FileBrowser,
|
|
2282
|
-
|
|
2283
|
-
|
|
2289
|
+
ut as FilesPage,
|
|
2290
|
+
ot as LoginPage,
|
|
2284
2291
|
ye as NasPicker,
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2292
|
+
it as PortalSettings,
|
|
2293
|
+
mt as activePage,
|
|
2294
|
+
bt as authorizationCatalogs,
|
|
2288
2295
|
Me as authorizationCopy,
|
|
2289
|
-
|
|
2290
|
-
|
|
2296
|
+
kt as backgroundCatalogs,
|
|
2297
|
+
qe as backgroundCopy,
|
|
2291
2298
|
Be as backgroundErrorCopy,
|
|
2292
|
-
|
|
2299
|
+
_t as catalogs,
|
|
2293
2300
|
Le as createBackgroundPickerProvider,
|
|
2294
|
-
|
|
2295
|
-
|
|
2301
|
+
gt as createBackgroundSaveFacade,
|
|
2302
|
+
ht as createFileTransfers,
|
|
2296
2303
|
$e as createNasProvider,
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
|
|
2304
|
+
nt as createSession,
|
|
2305
|
+
wt as decodeResponse,
|
|
2306
|
+
Ct as delegateCatalogs,
|
|
2300
2307
|
xe as delegateCopy,
|
|
2301
|
-
|
|
2308
|
+
$t as encodeRequest,
|
|
2302
2309
|
Fe as errorCopy,
|
|
2303
2310
|
ve as format,
|
|
2304
|
-
|
|
2305
|
-
|
|
2306
|
-
|
|
2311
|
+
xt as identityCatalogs,
|
|
2312
|
+
Re as identityCopy,
|
|
2313
|
+
St as nasCatalogs,
|
|
2307
2314
|
oe as nasCopy,
|
|
2308
2315
|
we as nasErrorCopy,
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2316
|
+
zt as protocolCodes,
|
|
2317
|
+
Vt as protocolOps,
|
|
2318
|
+
Pt as protocolSchemas,
|
|
2312
2319
|
_e as requestKey,
|
|
2313
2320
|
Ut as saveCatalogs,
|
|
2314
2321
|
Ce as saveCopy,
|
|
2315
2322
|
be as saveError,
|
|
2316
2323
|
Ne as scopedPicker,
|
|
2317
|
-
|
|
2324
|
+
Dt as shellCatalogs,
|
|
2318
2325
|
Oe as shellCopy,
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2326
|
+
At as shellPages,
|
|
2327
|
+
Et as uiLocale,
|
|
2328
|
+
Tt as uiLocales,
|
|
2322
2329
|
ia as useExecutorSetup,
|
|
2323
2330
|
oa as useNasRequest
|
|
2324
2331
|
};
|