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