@webx-ui/module-blog 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ArticleEditorPage.d.ts +1 -1
- package/dist/index.js +613 -623
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { provide as ct, inject as vt, defineComponent as ee, computed as v, openBlock as p, createElementBlock as G, createVNode as n, unref as e, withCtx as l, createBlock as z, createTextVNode as
|
|
2
|
-
import { useAdmin as
|
|
3
|
-
import { useLocales as Xe, WxFormItem as
|
|
4
|
-
import { useRoute as He, useRouter as Ke, onBeforeRouteLeave as
|
|
5
|
-
import { provideBlocksPreview as
|
|
1
|
+
import { provide as ct, inject as vt, defineComponent as ee, computed as v, openBlock as p, createElementBlock as G, createVNode as n, unref as e, withCtx as l, createBlock as z, createTextVNode as _, toDisplayString as g, createCommentVNode as K, useModel as qe, mergeModels as Me, ref as C, watch as ue, onMounted as Ne, onBeforeUnmount as Je, Fragment as be, createElementVNode as j, renderList as Be, normalizeClass as Pe, useTemplateRef as De, nextTick as Ze, isRef as Ie, withKeys as ze, resolveDynamicComponent as tt, mergeProps as pt, useId as ft, withModifiers as at } from "vue";
|
|
2
|
+
import { useAdmin as se, useTranslate as Q, useDates as mt, useErrorText as ge, WxScreenHead as bt, WxScreen as gt, WxSaveState as ht, WxDate as je, rowMenuWidth as st, WxListScreen as Qe, WxRowMenu as Re, WxFilterChips as yt } from "@webx-ui/module-admin";
|
|
3
|
+
import { useLocales as Xe, WxFormItem as ne, WxText as J, WxAlert as We, WxSelect as _e, localizedValue as wt, confirm as me, WxSkeleton as Ue, WxBadge as ie, WxBreadcrumb as _t, WxBreadcrumbItem as lt, WxButton as Z, WxActionBar as rt, toast as L, WxEmpty as Ge, WxSortableList as Ye, WxAction as Oe, useModal as Ee, WxDialog as Fe, WxInput as Ve, WxSpace as Le, useElementWidth as xt, createModal as Ce, WxTable as ot, WxEntityCard as kt, WxIcon as we, WxTooltip as et, WxHeading as $t, WxTextarea as Tt, WxSwitch as Vt, WxCard as At, WxListDetail as St, WxCheckbox as Wt } from "@webx-ui/core";
|
|
4
|
+
import { useRoute as He, useRouter as Ke, onBeforeRouteLeave as Ct } from "vue-router";
|
|
5
|
+
import { provideBlocksPreview as zt } from "@webx-ui/module-blocks";
|
|
6
6
|
const ut = /* @__PURE__ */ Symbol("wx-article-editor");
|
|
7
|
-
function
|
|
7
|
+
function Rt(f) {
|
|
8
8
|
ct(ut, f);
|
|
9
9
|
}
|
|
10
|
-
function
|
|
10
|
+
function Ae() {
|
|
11
11
|
return vt(ut, null);
|
|
12
12
|
}
|
|
13
|
-
const
|
|
13
|
+
const Ut = {
|
|
14
14
|
module: {
|
|
15
15
|
group: "Blog",
|
|
16
16
|
articles: "Articles",
|
|
@@ -76,10 +76,7 @@ const Rt = {
|
|
|
76
76
|
article: {
|
|
77
77
|
trail: "Where this article sits",
|
|
78
78
|
untitled: "Untitled",
|
|
79
|
-
|
|
80
|
-
"state-saving": "Saving…",
|
|
81
|
-
"state-unsaved": "Not saved yet",
|
|
82
|
-
save: "Save draft",
|
|
79
|
+
save: "Save",
|
|
83
80
|
"save-failed": "The article was not saved.",
|
|
84
81
|
schedule: "Schedule",
|
|
85
82
|
scheduled: "The article is scheduled.",
|
|
@@ -102,11 +99,8 @@ const Rt = {
|
|
|
102
99
|
leave: "Leave",
|
|
103
100
|
"leave-title": "Leave without saving?",
|
|
104
101
|
"leave-text": "The article could not be saved, and what you wrote is not on the server.",
|
|
105
|
-
"live-never": "Never published",
|
|
106
102
|
"live-scheduled": "Goes out :date",
|
|
107
103
|
"live-since": "On the site since :date",
|
|
108
|
-
"live-edited": "edits waiting",
|
|
109
|
-
"live-off": "Off the site",
|
|
110
104
|
address: "Address",
|
|
111
105
|
"no-address": "No address in this language",
|
|
112
106
|
"address-moving": "The address is changing. The old one keeps working and leads to the new one.",
|
|
@@ -231,26 +225,26 @@ const Rt = {
|
|
|
231
225
|
}, it = /* @__PURE__ */ new WeakSet();
|
|
232
226
|
function te() {
|
|
233
227
|
try {
|
|
234
|
-
const { i18n: f } =
|
|
235
|
-
it.has(f) || (f.defaults("webx-blog",
|
|
228
|
+
const { i18n: f } = se();
|
|
229
|
+
it.has(f) || (f.defaults("webx-blog", Ut), it.add(f));
|
|
236
230
|
} catch {
|
|
237
231
|
}
|
|
238
232
|
}
|
|
239
|
-
const
|
|
233
|
+
const qt = { class: "wx-article-address" }, Mt = /* @__PURE__ */ ee({
|
|
240
234
|
name: "WxArticleAddress",
|
|
241
235
|
__name: "ArticleAddress",
|
|
242
236
|
setup(f) {
|
|
243
|
-
const m =
|
|
237
|
+
const m = Ae(), o = Xe();
|
|
244
238
|
te();
|
|
245
239
|
const y = Q("webx-blog"), u = v(() => {
|
|
246
240
|
const s = m?.values.value.slug;
|
|
247
|
-
return typeof s == "string" ? s : s?.[
|
|
241
|
+
return typeof s == "string" ? s : s?.[o.active.value] ?? "";
|
|
248
242
|
}), a = v(() => u.value === "" ? null : `/${[m?.prefix.value ?? "", u.value].filter(Boolean).join("/")}`), t = v(() => {
|
|
249
243
|
const s = m?.article.value?.path;
|
|
250
244
|
return typeof s == "string" && a.value !== null && a.value !== `/${s}`;
|
|
251
245
|
});
|
|
252
|
-
return (s, i) => (p(), G("div",
|
|
253
|
-
n(e(
|
|
246
|
+
return (s, i) => (p(), G("div", qt, [
|
|
247
|
+
n(e(ne), {
|
|
254
248
|
label: e(y)("article.address")
|
|
255
249
|
}, {
|
|
256
250
|
default: l(() => [
|
|
@@ -260,7 +254,7 @@ const Ut = { class: "wx-article-address" }, qt = /* @__PURE__ */ ee({
|
|
|
260
254
|
class: "wx-article-address__value"
|
|
261
255
|
}, {
|
|
262
256
|
default: l(() => [
|
|
263
|
-
|
|
257
|
+
_(g(a.value), 1)
|
|
264
258
|
]),
|
|
265
259
|
_: 1
|
|
266
260
|
})) : (p(), z(e(J), {
|
|
@@ -269,7 +263,7 @@ const Ut = { class: "wx-article-address" }, qt = /* @__PURE__ */ ee({
|
|
|
269
263
|
tone: "muted"
|
|
270
264
|
}, {
|
|
271
265
|
default: l(() => [
|
|
272
|
-
|
|
266
|
+
_(g(e(y)("article.no-address")), 1)
|
|
273
267
|
]),
|
|
274
268
|
_: 1
|
|
275
269
|
}))
|
|
@@ -281,15 +275,15 @@ const Ut = { class: "wx-article-address" }, qt = /* @__PURE__ */ ee({
|
|
|
281
275
|
type: "info",
|
|
282
276
|
variant: "soft",
|
|
283
277
|
description: e(y)("article.address-moving")
|
|
284
|
-
}, null, 8, ["description"])) :
|
|
278
|
+
}, null, 8, ["description"])) : K("", !0)
|
|
285
279
|
]));
|
|
286
280
|
}
|
|
287
|
-
}),
|
|
288
|
-
const
|
|
281
|
+
}), ve = (f, m) => {
|
|
282
|
+
const o = f.__vccOpts || f;
|
|
289
283
|
for (const [y, u] of m)
|
|
290
|
-
|
|
291
|
-
return
|
|
292
|
-
},
|
|
284
|
+
o[y] = u;
|
|
285
|
+
return o;
|
|
286
|
+
}, Nt = /* @__PURE__ */ ve(Mt, [["__scopeId", "data-v-2ee0dcfe"]]), Bt = /* @__PURE__ */ ee({
|
|
293
287
|
name: "WxArticleAuthor",
|
|
294
288
|
__name: "ArticleAuthor",
|
|
295
289
|
props: /* @__PURE__ */ Me({
|
|
@@ -300,7 +294,7 @@ const Ut = { class: "wx-article-address" }, qt = /* @__PURE__ */ ee({
|
|
|
300
294
|
}),
|
|
301
295
|
emits: ["update:modelValue"],
|
|
302
296
|
setup(f) {
|
|
303
|
-
const m = f,
|
|
297
|
+
const m = f, o = qe(f, "modelValue"), y = Ae();
|
|
304
298
|
te();
|
|
305
299
|
const u = Q("webx-blog"), a = v(() => m.disabled || y?.disabled.value === !0), t = v(
|
|
306
300
|
() => (y?.options.value.authors ?? []).map((i) => ({
|
|
@@ -308,9 +302,9 @@ const Ut = { class: "wx-article-address" }, qt = /* @__PURE__ */ ee({
|
|
|
308
302
|
value: i.id
|
|
309
303
|
}))
|
|
310
304
|
), s = v({
|
|
311
|
-
get: () =>
|
|
305
|
+
get: () => o.value,
|
|
312
306
|
set: (i) => {
|
|
313
|
-
|
|
307
|
+
o.value = typeof i == "number" ? i : null;
|
|
314
308
|
}
|
|
315
309
|
});
|
|
316
310
|
return (i, x) => (p(), z(e(_e), {
|
|
@@ -327,7 +321,7 @@ const Ut = { class: "wx-article-address" }, qt = /* @__PURE__ */ ee({
|
|
|
327
321
|
}
|
|
328
322
|
});
|
|
329
323
|
function de(f) {
|
|
330
|
-
const m = `${f.apiPath}/blog/articles`,
|
|
324
|
+
const m = `${f.apiPath}/blog/articles`, o = `${f.apiPath}/blog/rubrics`, y = `${f.apiPath}/blog/tags`, u = (a) => a.data;
|
|
331
325
|
return {
|
|
332
326
|
articles: (a = {}) => {
|
|
333
327
|
const t = new URLSearchParams();
|
|
@@ -351,12 +345,12 @@ function de(f) {
|
|
|
351
345
|
remove: (a) => f.http.delete(`${m}/${a}`).then(() => {
|
|
352
346
|
}),
|
|
353
347
|
restore: (a) => f.http.post(`${m}/${a}/restore`, {}).then(u),
|
|
354
|
-
rubrics: () => f.http.get(
|
|
355
|
-
createRubric: (a) => f.http.post(
|
|
356
|
-
saveRubric: (a, t) => f.http.put(`${
|
|
357
|
-
removeRubric: (a) => f.http.delete(`${
|
|
348
|
+
rubrics: () => f.http.get(o),
|
|
349
|
+
createRubric: (a) => f.http.post(o, a).then(u),
|
|
350
|
+
saveRubric: (a, t) => f.http.put(`${o}/${a}`, t).then(u),
|
|
351
|
+
removeRubric: (a) => f.http.delete(`${o}/${a}`).then(() => {
|
|
358
352
|
}),
|
|
359
|
-
sortRubrics: (a) => f.http.post(`${
|
|
353
|
+
sortRubrics: (a) => f.http.post(`${o}/reorder`, { ids: a }).then(() => {
|
|
360
354
|
}),
|
|
361
355
|
tagsPage: (a = {}) => {
|
|
362
356
|
const t = new URLSearchParams();
|
|
@@ -371,52 +365,50 @@ function de(f) {
|
|
|
371
365
|
mergeTags: (a, t, s) => f.http.post(`${y}/merge`, { ids: a, keep: t, redirect: s }).then(u)
|
|
372
366
|
};
|
|
373
367
|
}
|
|
374
|
-
const
|
|
368
|
+
const Pt = { class: "wx-article-editor__screen" }, Dt = 1200, It = /* @__PURE__ */ ee({
|
|
375
369
|
__name: "ArticleEditorPage",
|
|
376
370
|
props: {
|
|
377
371
|
base: { default: "/blog" }
|
|
378
372
|
},
|
|
379
373
|
setup(f) {
|
|
380
|
-
const m = f,
|
|
374
|
+
const m = f, o = se(), y = de(o), u = He(), a = Ke(), t = Xe(), s = mt();
|
|
381
375
|
te();
|
|
382
|
-
const i = Q("webx-blog"), x = ge(), T = v(() => Number(u.params.id)), c = v(() => `${m.base}/articles`),
|
|
383
|
-
const V =
|
|
384
|
-
return
|
|
376
|
+
const i = Q("webx-blog"), x = ge(), T = v(() => Number(u.params.id)), c = v(() => `${m.base}/articles`), r = C(null), w = C({}), W = C(""), S = C(""), E = C(null), F = C({ rubrics: [], authors: [] }), $ = C([]), U = C(!0), R = C(!1), N = C(!1), A = C({}), I = C(null), H = C(""), P = C(0), q = v(() => o.can("blog.articles.manage")), k = v(() => !q.value || N.value), le = v(() => JSON.stringify(w.value)), O = v(() => H.value !== "" && le.value !== H.value), re = v(() => R.value ? "saving" : O.value ? "unsaved" : "saved"), xe = v(() => {
|
|
377
|
+
const V = w.value.title;
|
|
378
|
+
return wt(V, t.active.value, r.value?.title ?? "");
|
|
385
379
|
}), ce = v(() => {
|
|
386
|
-
const V =
|
|
380
|
+
const V = w.value.published_at;
|
|
387
381
|
return typeof V == "string" && V !== "" ? V : null;
|
|
388
382
|
}), he = v(() => {
|
|
389
383
|
if (ce.value === null) return !1;
|
|
390
384
|
const V = new Date(ce.value.replace(" ", "T"));
|
|
391
385
|
return !Number.isNaN(V.valueOf()) && V.valueOf() > Date.now();
|
|
392
|
-
}),
|
|
393
|
-
const V =
|
|
386
|
+
}), Se = v(() => {
|
|
387
|
+
const V = r.value;
|
|
394
388
|
if (!V) return "";
|
|
395
389
|
const Y = s.short(V.published_at);
|
|
396
390
|
return {
|
|
397
|
-
draft: i("article.live-never"),
|
|
398
391
|
scheduled: i("article.live-scheduled", { date: Y }),
|
|
399
392
|
published: i("article.live-since", { date: Y }),
|
|
400
|
-
modified:
|
|
401
|
-
unpublished: i("article.live-off")
|
|
393
|
+
modified: i("article.live-since", { date: Y })
|
|
402
394
|
}[V.status] ?? "";
|
|
403
395
|
});
|
|
404
|
-
|
|
405
|
-
article:
|
|
406
|
-
values:
|
|
396
|
+
zt({ url: v(() => E.value), reload: P }), Rt({
|
|
397
|
+
article: r,
|
|
398
|
+
values: w,
|
|
407
399
|
options: F,
|
|
408
400
|
related: $,
|
|
409
401
|
prefix: S,
|
|
410
402
|
base: m.base,
|
|
411
403
|
canManage: q.value,
|
|
412
404
|
disabled: k,
|
|
413
|
-
reload: () =>
|
|
414
|
-
save: () =>
|
|
405
|
+
reload: () => pe(!0),
|
|
406
|
+
save: () => M()
|
|
415
407
|
});
|
|
416
408
|
function ke(V) {
|
|
417
|
-
|
|
409
|
+
r.value = V.article, w.value = V.values, W.value = V.revision, S.value = V.prefix, E.value = V.preview_url, F.value = V.options, $.value = V.related, H.value = JSON.stringify(V.values), I.value = null;
|
|
418
410
|
}
|
|
419
|
-
async function
|
|
411
|
+
async function pe(V = !1) {
|
|
420
412
|
V || (U.value = !0);
|
|
421
413
|
try {
|
|
422
414
|
ke(await y.get(T.value));
|
|
@@ -426,95 +418,95 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
426
418
|
U.value = !1;
|
|
427
419
|
}
|
|
428
420
|
}
|
|
429
|
-
let
|
|
430
|
-
function
|
|
431
|
-
!q.value || I.value || !O.value || (clearTimeout(
|
|
432
|
-
|
|
433
|
-
},
|
|
421
|
+
let oe;
|
|
422
|
+
function fe() {
|
|
423
|
+
!q.value || I.value || !O.value || (clearTimeout(oe), oe = setTimeout(() => {
|
|
424
|
+
M();
|
|
425
|
+
}, Dt));
|
|
434
426
|
}
|
|
435
|
-
function
|
|
436
|
-
!q.value || I.value || !O.value || R.value || (clearTimeout(
|
|
427
|
+
function b() {
|
|
428
|
+
!q.value || I.value || !O.value || R.value || (clearTimeout(oe), M());
|
|
437
429
|
}
|
|
438
|
-
async function
|
|
439
|
-
if (!
|
|
440
|
-
clearTimeout(
|
|
441
|
-
const V = le.value, Y =
|
|
430
|
+
async function M() {
|
|
431
|
+
if (!r.value || R.value || !q.value) return;
|
|
432
|
+
clearTimeout(oe);
|
|
433
|
+
const V = le.value, Y = w.value;
|
|
442
434
|
R.value = !0, A.value = {};
|
|
443
435
|
try {
|
|
444
|
-
const ae = await y.save(
|
|
445
|
-
|
|
436
|
+
const ae = await y.save(r.value.id, { values: Y, revision: W.value });
|
|
437
|
+
r.value = ae.article, W.value = ae.revision, S.value = ae.prefix, E.value = ae.preview_url, F.value = ae.options, $.value = ae.related, I.value = null, le.value === V && (H.value = V), P.value += 1;
|
|
446
438
|
} catch (ae) {
|
|
447
|
-
const
|
|
448
|
-
|
|
439
|
+
const Te = ae;
|
|
440
|
+
Te.status === 409 && Te.body?.data ? I.value = Te.body : Te.body?.errors ? (A.value = Te.body.errors, L.danger(i("article.save-failed"))) : L.danger(x(ae));
|
|
449
441
|
} finally {
|
|
450
442
|
R.value = !1;
|
|
451
443
|
}
|
|
452
444
|
}
|
|
453
445
|
async function B() {
|
|
454
|
-
await
|
|
446
|
+
await me({
|
|
455
447
|
title: i("article.conflict-theirs-title"),
|
|
456
448
|
message: i("article.conflict-theirs-text"),
|
|
457
449
|
confirmText: i("article.conflict-theirs"),
|
|
458
450
|
cancelText: i("panel.cancel"),
|
|
459
451
|
tone: "danger"
|
|
460
|
-
}) && await
|
|
452
|
+
}) && await pe(!0);
|
|
461
453
|
}
|
|
462
454
|
async function X() {
|
|
463
455
|
const V = I.value;
|
|
464
|
-
V && (W.value = V.data.revision, I.value = null, await
|
|
456
|
+
V && (W.value = V.data.revision, I.value = null, await M());
|
|
465
457
|
}
|
|
466
458
|
async function ye() {
|
|
467
|
-
if (!(!
|
|
459
|
+
if (!(!r.value || !await me({
|
|
468
460
|
title: i("article.discard-title"),
|
|
469
461
|
message: i("article.discard-text"),
|
|
470
462
|
confirmText: i("article.discard"),
|
|
471
463
|
cancelText: i("panel.cancel"),
|
|
472
464
|
tone: "danger"
|
|
473
465
|
}))) {
|
|
474
|
-
|
|
466
|
+
N.value = !0;
|
|
475
467
|
try {
|
|
476
|
-
ke(await y.discard(
|
|
468
|
+
ke(await y.discard(r.value.id)), L.success(i("article.discarded"));
|
|
477
469
|
} catch (Y) {
|
|
478
470
|
L.danger(x(Y));
|
|
479
471
|
} finally {
|
|
480
|
-
|
|
472
|
+
N.value = !1;
|
|
481
473
|
}
|
|
482
474
|
}
|
|
483
475
|
}
|
|
484
476
|
async function d() {
|
|
485
|
-
const V =
|
|
477
|
+
const V = r.value;
|
|
486
478
|
if (!V) return;
|
|
487
479
|
const Y = V.path === null ? null : `/${V.path}`, ae = ce.value === null ? i("article.publish-now") : s.short(ce.value);
|
|
488
|
-
if (await
|
|
480
|
+
if (await me({
|
|
489
481
|
title: i("article.publish-title", { title: V.title }),
|
|
490
482
|
message: he.value ? i("article.publish-later", { date: ae }) : Y === null ? i("article.publish-nowhere") : i("article.publish-text", { address: Y }),
|
|
491
483
|
confirmText: he.value ? i("article.schedule") : i("panel.publish"),
|
|
492
484
|
cancelText: i("panel.cancel")
|
|
493
|
-
}) && (O.value && await
|
|
494
|
-
|
|
485
|
+
}) && (O.value && await M(), !I.value)) {
|
|
486
|
+
N.value = !0;
|
|
495
487
|
try {
|
|
496
|
-
await y.publish(V.id, ce.value), await
|
|
488
|
+
await y.publish(V.id, ce.value), await pe(!0), L.success(he.value ? i("article.scheduled") : i("panel.published"));
|
|
497
489
|
} catch (dt) {
|
|
498
490
|
L.danger(x(dt));
|
|
499
491
|
} finally {
|
|
500
|
-
|
|
492
|
+
N.value = !1;
|
|
501
493
|
}
|
|
502
494
|
}
|
|
503
495
|
}
|
|
504
496
|
function D() {
|
|
505
|
-
const V =
|
|
497
|
+
const V = r.value?.status;
|
|
506
498
|
return V === "published" ? "success" : V === "modified" ? "warning" : V === "scheduled" ? "primary" : "default";
|
|
507
499
|
}
|
|
508
500
|
function h(V) {
|
|
509
501
|
O.value && V.preventDefault();
|
|
510
502
|
}
|
|
511
|
-
ue(le,
|
|
512
|
-
|
|
503
|
+
ue(le, fe), ue(T, () => {
|
|
504
|
+
pe();
|
|
513
505
|
}), Ne(() => {
|
|
514
|
-
|
|
506
|
+
pe(), window.addEventListener("beforeunload", h);
|
|
515
507
|
}), Je(() => {
|
|
516
|
-
clearTimeout(
|
|
517
|
-
}),
|
|
508
|
+
clearTimeout(oe), window.removeEventListener("beforeunload", h);
|
|
509
|
+
}), Ct(async () => !O.value || !q.value || (await M(), !O.value) ? !0 : await me({
|
|
518
510
|
title: i("article.leave-title"),
|
|
519
511
|
message: i("article.leave-text"),
|
|
520
512
|
confirmText: i("article.leave"),
|
|
@@ -523,34 +515,44 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
523
515
|
}));
|
|
524
516
|
const $e = v(() => {
|
|
525
517
|
const V = [];
|
|
526
|
-
return E.value && V.push({ key: "preview", label: i("article.preview"), icon: "eye", href: E.value }),
|
|
518
|
+
return E.value && V.push({ key: "preview", label: i("article.preview"), icon: "eye", href: E.value }), r.value?.url && r.value.status !== "draft" && V.push({
|
|
527
519
|
key: "site",
|
|
528
520
|
label: i("panel.open-on-site"),
|
|
529
521
|
icon: "link",
|
|
530
|
-
href:
|
|
522
|
+
href: r.value.url
|
|
523
|
+
}), r.value?.status === "modified" && V.push({
|
|
524
|
+
key: "discard",
|
|
525
|
+
label: i("article.discard"),
|
|
526
|
+
icon: "refresh",
|
|
527
|
+
danger: !0,
|
|
528
|
+
menu: !0,
|
|
529
|
+
run: () => {
|
|
530
|
+
ye();
|
|
531
|
+
}
|
|
531
532
|
}), V;
|
|
532
533
|
});
|
|
533
534
|
return (V, Y) => (p(), G("div", {
|
|
534
535
|
class: "wx-article-editor",
|
|
535
|
-
onFocusout:
|
|
536
|
+
onFocusout: b
|
|
536
537
|
}, [
|
|
537
|
-
U.value || !
|
|
538
|
+
U.value || !r.value ? (p(), G(be, { key: 0 }, [
|
|
538
539
|
n(e(Ue), {
|
|
539
540
|
class: "wx-article-editor__ghost",
|
|
540
541
|
title: "",
|
|
541
542
|
rows: 1
|
|
542
543
|
}),
|
|
543
544
|
n(e(Ue), { rows: 8 })
|
|
544
|
-
], 64)) : (p(), G(
|
|
545
|
+
], 64)) : (p(), G(be, { key: 1 }, [
|
|
545
546
|
n(e(bt), {
|
|
546
547
|
divider: "",
|
|
547
548
|
back: c.value,
|
|
548
549
|
"back-label": e(i)("module.articles"),
|
|
549
550
|
title: xe.value || e(i)("article.untitled"),
|
|
551
|
+
subtitle: Se.value,
|
|
550
552
|
actions: $e.value
|
|
551
553
|
}, {
|
|
552
554
|
trail: l(() => [
|
|
553
|
-
n(e(
|
|
555
|
+
n(e(_t), {
|
|
554
556
|
size: "sm",
|
|
555
557
|
label: e(i)("article.trail")
|
|
556
558
|
}, {
|
|
@@ -560,13 +562,13 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
560
562
|
to: c.value
|
|
561
563
|
}, {
|
|
562
564
|
default: l(() => [
|
|
563
|
-
|
|
565
|
+
_(g(e(i)("module.articles")), 1)
|
|
564
566
|
]),
|
|
565
567
|
_: 1
|
|
566
568
|
}, 8, ["to"]),
|
|
567
569
|
n(e(lt), { current: "" }, {
|
|
568
570
|
default: l(() => [
|
|
569
|
-
|
|
571
|
+
_(g(xe.value || e(i)("article.untitled")), 1)
|
|
570
572
|
]),
|
|
571
573
|
_: 1
|
|
572
574
|
})
|
|
@@ -575,18 +577,28 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
575
577
|
}, 8, ["label"])
|
|
576
578
|
]),
|
|
577
579
|
"title-after": l(() => [
|
|
578
|
-
n(e(
|
|
580
|
+
n(e(ie), {
|
|
579
581
|
type: D(),
|
|
580
582
|
dot: ""
|
|
581
583
|
}, {
|
|
582
584
|
default: l(() => [
|
|
583
|
-
|
|
585
|
+
_(g(e(i)(`panel.status-${r.value.status}`)), 1)
|
|
584
586
|
]),
|
|
585
587
|
_: 1
|
|
586
|
-
}, 8, ["type"])
|
|
588
|
+
}, 8, ["type"]),
|
|
589
|
+
r.value.status === "modified" ? (p(), z(e(ie), {
|
|
590
|
+
key: 0,
|
|
591
|
+
type: "primary",
|
|
592
|
+
round: ""
|
|
593
|
+
}, {
|
|
594
|
+
default: l(() => [
|
|
595
|
+
_(g(e(i)("panel.edits")), 1)
|
|
596
|
+
]),
|
|
597
|
+
_: 1
|
|
598
|
+
})) : K("", !0)
|
|
587
599
|
]),
|
|
588
600
|
_: 1
|
|
589
|
-
}, 8, ["back", "back-label", "title", "actions"]),
|
|
601
|
+
}, 8, ["back", "back-label", "title", "subtitle", "actions"]),
|
|
590
602
|
I.value ? (p(), z(e(We), {
|
|
591
603
|
key: 0,
|
|
592
604
|
type: "warning",
|
|
@@ -600,7 +612,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
600
612
|
onClick: B
|
|
601
613
|
}, {
|
|
602
614
|
default: l(() => [
|
|
603
|
-
|
|
615
|
+
_(g(e(i)("article.conflict-theirs")), 1)
|
|
604
616
|
]),
|
|
605
617
|
_: 1
|
|
606
618
|
}),
|
|
@@ -610,17 +622,17 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
610
622
|
onClick: X
|
|
611
623
|
}, {
|
|
612
624
|
default: l(() => [
|
|
613
|
-
|
|
625
|
+
_(g(e(i)("article.conflict-mine")), 1)
|
|
614
626
|
]),
|
|
615
627
|
_: 1
|
|
616
628
|
})
|
|
617
629
|
]),
|
|
618
630
|
_: 1
|
|
619
|
-
}, 8, ["title", "description"])) :
|
|
620
|
-
j("div",
|
|
631
|
+
}, 8, ["title", "description"])) : K("", !0),
|
|
632
|
+
j("div", Pt, [
|
|
621
633
|
n(e(gt), {
|
|
622
|
-
modelValue:
|
|
623
|
-
"onUpdate:modelValue": Y[0] || (Y[0] = (ae) =>
|
|
634
|
+
modelValue: w.value,
|
|
635
|
+
"onUpdate:modelValue": Y[0] || (Y[0] = (ae) => w.value = ae),
|
|
624
636
|
name: "blog.article-form",
|
|
625
637
|
errors: A.value,
|
|
626
638
|
disabled: k.value
|
|
@@ -628,88 +640,66 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
628
640
|
]),
|
|
629
641
|
q.value ? (p(), z(e(rt), { key: 1 }, {
|
|
630
642
|
state: l(() => [
|
|
631
|
-
n(e(
|
|
632
|
-
size: "sm",
|
|
633
|
-
tone: "muted"
|
|
634
|
-
}, {
|
|
635
|
-
default: l(() => [
|
|
636
|
-
w(b(e(i)(`article.state-${se.value}`)), 1),
|
|
637
|
-
Te.value ? (p(), G(ve, { key: 0 }, [
|
|
638
|
-
w(" · " + b(Te.value), 1)
|
|
639
|
-
], 64)) : H("", !0)
|
|
640
|
-
]),
|
|
641
|
-
_: 1
|
|
642
|
-
})
|
|
643
|
+
n(e(ht), { state: re.value }, null, 8, ["state"])
|
|
643
644
|
]),
|
|
644
645
|
default: l(() => [
|
|
645
|
-
o.value.status === "modified" ? (p(), z(e(Z), {
|
|
646
|
-
key: 0,
|
|
647
|
-
variant: "text",
|
|
648
|
-
loading: M.value,
|
|
649
|
-
onClick: ye
|
|
650
|
-
}, {
|
|
651
|
-
default: l(() => [
|
|
652
|
-
w(b(e(i)("article.discard")), 1)
|
|
653
|
-
]),
|
|
654
|
-
_: 1
|
|
655
|
-
}, 8, ["loading"])) : H("", !0),
|
|
656
646
|
n(e(Z), {
|
|
657
647
|
variant: "outline",
|
|
658
648
|
loading: R.value,
|
|
659
649
|
disabled: !O.value,
|
|
660
|
-
onClick:
|
|
650
|
+
onClick: M
|
|
661
651
|
}, {
|
|
662
652
|
default: l(() => [
|
|
663
|
-
|
|
653
|
+
_(g(e(i)("article.save")), 1)
|
|
664
654
|
]),
|
|
665
655
|
_: 1
|
|
666
656
|
}, 8, ["loading", "disabled"]),
|
|
667
657
|
n(e(Z), {
|
|
668
658
|
type: "primary",
|
|
669
|
-
loading:
|
|
670
|
-
disabled:
|
|
659
|
+
loading: N.value,
|
|
660
|
+
disabled: r.value.status === "published" && !O.value,
|
|
671
661
|
onClick: d
|
|
672
662
|
}, {
|
|
673
663
|
default: l(() => [
|
|
674
|
-
|
|
664
|
+
_(g(he.value ? e(i)("article.schedule") : e(i)("panel.publish")), 1)
|
|
675
665
|
]),
|
|
676
666
|
_: 1
|
|
677
667
|
}, 8, ["loading", "disabled"])
|
|
678
668
|
]),
|
|
679
669
|
_: 1
|
|
680
|
-
})) :
|
|
670
|
+
})) : K("", !0)
|
|
681
671
|
], 64))
|
|
682
672
|
], 32));
|
|
683
673
|
}
|
|
684
|
-
}),
|
|
674
|
+
}), Ot = /* @__PURE__ */ ve(It, [["__scopeId", "data-v-5d027fd4"]]), Et = { class: "wx-article-history" }, Ft = { class: "wx-article-history__number" }, Lt = { class: "wx-article-history__who" }, Ht = /* @__PURE__ */ ee({
|
|
685
675
|
name: "WxArticleHistory",
|
|
686
676
|
__name: "ArticleHistory",
|
|
687
677
|
setup(f) {
|
|
688
|
-
const m =
|
|
678
|
+
const m = se(), o = de(m), y = Ae();
|
|
689
679
|
te();
|
|
690
680
|
const u = Q("webx-blog"), a = ge(), t = C(null), s = C(!1), i = v(() => y?.article.value ?? null), x = v(() => m.can("blog.articles.manage")), T = v(
|
|
691
681
|
() => i.value?.status === "published" || i.value?.status === "modified" ? t.value?.[0]?.number ?? null : null
|
|
692
682
|
);
|
|
693
683
|
async function c() {
|
|
694
|
-
const
|
|
695
|
-
if (
|
|
684
|
+
const w = i.value;
|
|
685
|
+
if (w)
|
|
696
686
|
try {
|
|
697
|
-
t.value = await
|
|
687
|
+
t.value = await o.versions(w.id);
|
|
698
688
|
} catch (W) {
|
|
699
689
|
t.value = [], L.danger(a(W));
|
|
700
690
|
}
|
|
701
691
|
}
|
|
702
|
-
async function
|
|
692
|
+
async function r(w) {
|
|
703
693
|
const W = i.value;
|
|
704
|
-
if (!(!W || !await
|
|
705
|
-
title: u("article.restore-title", { number:
|
|
694
|
+
if (!(!W || !await me({
|
|
695
|
+
title: u("article.restore-title", { number: w.number }),
|
|
706
696
|
message: u("article.restore-text"),
|
|
707
697
|
confirmText: u("article.restore-version"),
|
|
708
698
|
cancelText: u("panel.cancel")
|
|
709
699
|
}))) {
|
|
710
700
|
s.value = !0;
|
|
711
701
|
try {
|
|
712
|
-
await
|
|
702
|
+
await o.restoreVersion(W.id, w.number), await y?.reload(), L.success(u("article.restored-version", { number: w.number }));
|
|
713
703
|
} catch (E) {
|
|
714
704
|
L.danger(a(E));
|
|
715
705
|
} finally {
|
|
@@ -723,7 +713,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
723
713
|
c();
|
|
724
714
|
},
|
|
725
715
|
{ immediate: !0 }
|
|
726
|
-
), (
|
|
716
|
+
), (w, W) => (p(), G("div", Et, [
|
|
727
717
|
t.value === null ? (p(), z(e(Ue), {
|
|
728
718
|
key: 0,
|
|
729
719
|
class: "wx-article-history__ghost",
|
|
@@ -731,57 +721,57 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
731
721
|
})) : t.value.length === 0 ? (p(), z(e(Ge), {
|
|
732
722
|
key: 1,
|
|
733
723
|
description: e(u)("article.history-empty")
|
|
734
|
-
}, null, 8, ["description"])) : (p(!0), G(
|
|
724
|
+
}, null, 8, ["description"])) : (p(!0), G(be, { key: 2 }, Be(t.value, (S) => (p(), G("div", {
|
|
735
725
|
key: S.number,
|
|
736
726
|
class: Pe(["wx-article-history__row", { "is-live": S.number === T.value }])
|
|
737
727
|
}, [
|
|
738
|
-
j("code",
|
|
739
|
-
j("div",
|
|
728
|
+
j("code", Ft, g(e(u)("article.version", { number: S.number })), 1),
|
|
729
|
+
j("div", Lt, [
|
|
740
730
|
S.created_at ? (p(), z(e(je), {
|
|
741
731
|
key: 0,
|
|
742
732
|
value: S.created_at,
|
|
743
733
|
size: "md",
|
|
744
734
|
tone: "default"
|
|
745
|
-
}, null, 8, ["value"])) :
|
|
735
|
+
}, null, 8, ["value"])) : K("", !0),
|
|
746
736
|
n(e(J), {
|
|
747
737
|
size: "sm",
|
|
748
738
|
tone: "muted"
|
|
749
739
|
}, {
|
|
750
740
|
default: l(() => [
|
|
751
|
-
|
|
752
|
-
S.comment ? (p(), G(
|
|
753
|
-
|
|
754
|
-
], 64)) :
|
|
741
|
+
_(g(S.author ?? e(u)(`article.source-${S.source}`)) + " ", 1),
|
|
742
|
+
S.comment ? (p(), G(be, { key: 0 }, [
|
|
743
|
+
_(" · " + g(S.comment), 1)
|
|
744
|
+
], 64)) : K("", !0)
|
|
755
745
|
]),
|
|
756
746
|
_: 2
|
|
757
747
|
}, 1024)
|
|
758
748
|
]),
|
|
759
|
-
S.number === T.value ? (p(), z(e(
|
|
749
|
+
S.number === T.value ? (p(), z(e(ie), {
|
|
760
750
|
key: 0,
|
|
761
751
|
type: "success",
|
|
762
752
|
dot: ""
|
|
763
753
|
}, {
|
|
764
754
|
default: l(() => [
|
|
765
|
-
|
|
755
|
+
_(g(e(u)("article.version-live")), 1)
|
|
766
756
|
]),
|
|
767
757
|
_: 1
|
|
768
|
-
})) :
|
|
758
|
+
})) : K("", !0),
|
|
769
759
|
x.value && S.number !== T.value ? (p(), z(e(Z), {
|
|
770
760
|
key: 1,
|
|
771
761
|
size: "sm",
|
|
772
762
|
variant: "outline",
|
|
773
763
|
loading: s.value,
|
|
774
|
-
onClick: (E) =>
|
|
764
|
+
onClick: (E) => r(S)
|
|
775
765
|
}, {
|
|
776
766
|
default: l(() => [
|
|
777
|
-
|
|
767
|
+
_(g(e(u)("article.restore-version")), 1)
|
|
778
768
|
]),
|
|
779
769
|
_: 1
|
|
780
|
-
}, 8, ["loading", "onClick"])) :
|
|
770
|
+
}, 8, ["loading", "onClick"])) : K("", !0)
|
|
781
771
|
], 2))), 128))
|
|
782
772
|
]));
|
|
783
773
|
}
|
|
784
|
-
}),
|
|
774
|
+
}), Kt = /* @__PURE__ */ ve(Ht, [["__scopeId", "data-v-0a997938"]]), jt = { class: "wx-article-related" }, Gt = { class: "wx-article-related__name" }, Jt = 250, Zt = 10, Qt = /* @__PURE__ */ ee({
|
|
785
775
|
name: "WxArticleRelated",
|
|
786
776
|
__name: "ArticleRelated",
|
|
787
777
|
props: /* @__PURE__ */ Me({
|
|
@@ -792,7 +782,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
792
782
|
}),
|
|
793
783
|
emits: ["update:modelValue"],
|
|
794
784
|
setup(f) {
|
|
795
|
-
const m = f,
|
|
785
|
+
const m = f, o = qe(f, "modelValue"), y = se(), u = de(y), a = Ae();
|
|
796
786
|
te();
|
|
797
787
|
const t = Q("webx-blog"), s = ge(), i = v(() => m.disabled || a?.disabled.value === !0), x = C(/* @__PURE__ */ new Map()), T = C([]);
|
|
798
788
|
let c;
|
|
@@ -805,22 +795,22 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
805
795
|
},
|
|
806
796
|
{ immediate: !0, deep: !0 }
|
|
807
797
|
);
|
|
808
|
-
const
|
|
809
|
-
get: () =>
|
|
798
|
+
const r = v({
|
|
799
|
+
get: () => o.value.map(($) => ({ id: $, title: x.value.get($) ?? `#${$}` })),
|
|
810
800
|
set: ($) => {
|
|
811
|
-
|
|
801
|
+
o.value = $.map((U) => U.id);
|
|
812
802
|
}
|
|
813
|
-
}),
|
|
814
|
-
() => T.value.filter(($) => !
|
|
803
|
+
}), w = v(
|
|
804
|
+
() => T.value.filter(($) => !o.value.includes($.id)).map(($) => ({ label: $.title, value: $.id }))
|
|
815
805
|
);
|
|
816
806
|
async function W($) {
|
|
817
807
|
const U = a?.article.value?.id;
|
|
818
808
|
try {
|
|
819
|
-
const R = await u.articles({ q: $, per_page:
|
|
809
|
+
const R = await u.articles({ q: $, per_page: Zt });
|
|
820
810
|
T.value = R.data.filter((A) => A.id !== U).map((A) => ({ id: A.id, title: A.title }));
|
|
821
|
-
const
|
|
822
|
-
for (const A of T.value)
|
|
823
|
-
x.value =
|
|
811
|
+
const N = new Map(x.value);
|
|
812
|
+
for (const A of T.value) N.set(A.id, A.title);
|
|
813
|
+
x.value = N;
|
|
824
814
|
} catch (R) {
|
|
825
815
|
L.danger(s(R));
|
|
826
816
|
}
|
|
@@ -828,13 +818,13 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
828
818
|
function S($) {
|
|
829
819
|
clearTimeout(c), c = setTimeout(() => {
|
|
830
820
|
W($);
|
|
831
|
-
},
|
|
821
|
+
}, Jt);
|
|
832
822
|
}
|
|
833
823
|
function E($) {
|
|
834
|
-
typeof $ != "number" ||
|
|
824
|
+
typeof $ != "number" || o.value.includes($) || (o.value = [...o.value, $]);
|
|
835
825
|
}
|
|
836
826
|
function F($) {
|
|
837
|
-
|
|
827
|
+
o.value = o.value.filter((U) => U !== $);
|
|
838
828
|
}
|
|
839
829
|
return ue(
|
|
840
830
|
() => a?.article.value?.id,
|
|
@@ -842,10 +832,10 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
842
832
|
W("");
|
|
843
833
|
},
|
|
844
834
|
{ immediate: !0 }
|
|
845
|
-
), Je(() => clearTimeout(c)), ($, U) => (p(), G("div",
|
|
835
|
+
), Je(() => clearTimeout(c)), ($, U) => (p(), G("div", jt, [
|
|
846
836
|
n(e(Ye), {
|
|
847
|
-
modelValue:
|
|
848
|
-
"onUpdate:modelValue": U[0] || (U[0] = (R) =>
|
|
837
|
+
modelValue: r.value,
|
|
838
|
+
"onUpdate:modelValue": U[0] || (U[0] = (R) => r.value = R),
|
|
849
839
|
plain: "",
|
|
850
840
|
size: "sm",
|
|
851
841
|
"item-key": "id",
|
|
@@ -855,7 +845,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
855
845
|
"aria-label": e(t)("article.related")
|
|
856
846
|
}, {
|
|
857
847
|
default: l(({ item: R }) => [
|
|
858
|
-
j("span",
|
|
848
|
+
j("span", Gt, g(R.title), 1)
|
|
859
849
|
]),
|
|
860
850
|
actions: l(({ item: R }) => [
|
|
861
851
|
n(e(Oe), {
|
|
@@ -863,14 +853,14 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
863
853
|
size: "sm",
|
|
864
854
|
disabled: i.value,
|
|
865
855
|
title: e(t)("article.related-remove"),
|
|
866
|
-
onClick: (
|
|
856
|
+
onClick: (N) => F(R.id)
|
|
867
857
|
}, null, 8, ["disabled", "title", "onClick"])
|
|
868
858
|
]),
|
|
869
859
|
_: 1
|
|
870
860
|
}, 8, ["modelValue", "disabled", "empty-text", "aria-label"]),
|
|
871
861
|
n(e(_e), {
|
|
872
862
|
"model-value": null,
|
|
873
|
-
options:
|
|
863
|
+
options: w.value,
|
|
874
864
|
placeholder: e(t)("article.related-add"),
|
|
875
865
|
"empty-text": e(t)("article.related-nothing"),
|
|
876
866
|
disabled: i.value,
|
|
@@ -882,7 +872,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
882
872
|
}, null, 8, ["options", "placeholder", "empty-text", "disabled", "aria-label"])
|
|
883
873
|
]));
|
|
884
874
|
}
|
|
885
|
-
}),
|
|
875
|
+
}), Xt = /* @__PURE__ */ ve(Qt, [["__scopeId", "data-v-164e86fe"]]), Yt = { class: "wx-article-rubrics" }, ea = { class: "wx-article-rubrics__name" }, ta = /* @__PURE__ */ ee({
|
|
886
876
|
name: "WxArticleRubrics",
|
|
887
877
|
__name: "ArticleRubrics",
|
|
888
878
|
props: /* @__PURE__ */ Me({
|
|
@@ -893,30 +883,30 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
893
883
|
}),
|
|
894
884
|
emits: ["update:modelValue"],
|
|
895
885
|
setup(f) {
|
|
896
|
-
const m = f,
|
|
886
|
+
const m = f, o = qe(f, "modelValue"), y = Ae();
|
|
897
887
|
te();
|
|
898
888
|
const u = Q("webx-blog"), a = v(() => m.disabled || y?.disabled.value === !0), t = v(() => {
|
|
899
889
|
const c = /* @__PURE__ */ new Map();
|
|
900
|
-
for (const
|
|
890
|
+
for (const r of y?.options.value.rubrics ?? []) c.set(r.id, r.title);
|
|
901
891
|
return c;
|
|
902
892
|
}), s = v({
|
|
903
|
-
get: () =>
|
|
893
|
+
get: () => o.value.map((c) => ({ id: c, title: t.value.get(c) ?? `#${c}` })),
|
|
904
894
|
set: (c) => {
|
|
905
|
-
|
|
895
|
+
o.value = c.map((r) => r.id);
|
|
906
896
|
}
|
|
907
897
|
}), i = v(
|
|
908
|
-
() => (y?.options.value.rubrics ?? []).filter((c) => !
|
|
898
|
+
() => (y?.options.value.rubrics ?? []).filter((c) => !o.value.includes(c.id)).map((c) => ({ label: c.title, value: c.id }))
|
|
909
899
|
);
|
|
910
900
|
function x(c) {
|
|
911
|
-
typeof c != "number" ||
|
|
901
|
+
typeof c != "number" || o.value.includes(c) || (o.value = [...o.value, c]);
|
|
912
902
|
}
|
|
913
903
|
function T(c) {
|
|
914
|
-
|
|
904
|
+
o.value = o.value.filter((r) => r !== c);
|
|
915
905
|
}
|
|
916
|
-
return (c,
|
|
906
|
+
return (c, r) => (p(), G("div", Yt, [
|
|
917
907
|
n(e(Ye), {
|
|
918
908
|
modelValue: s.value,
|
|
919
|
-
"onUpdate:modelValue":
|
|
909
|
+
"onUpdate:modelValue": r[0] || (r[0] = (w) => s.value = w),
|
|
920
910
|
plain: "",
|
|
921
911
|
size: "sm",
|
|
922
912
|
"item-key": "id",
|
|
@@ -925,25 +915,25 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
925
915
|
"empty-text": e(u)("article.rubrics-empty"),
|
|
926
916
|
"aria-label": e(u)("article.rubrics")
|
|
927
917
|
}, {
|
|
928
|
-
default: l(({ item:
|
|
929
|
-
j("span",
|
|
930
|
-
W === 0 ? (p(), z(e(
|
|
918
|
+
default: l(({ item: w, index: W }) => [
|
|
919
|
+
j("span", ea, g(w.title), 1),
|
|
920
|
+
W === 0 ? (p(), z(e(ie), {
|
|
931
921
|
key: 0,
|
|
932
922
|
type: "primary"
|
|
933
923
|
}, {
|
|
934
924
|
default: l(() => [
|
|
935
|
-
|
|
925
|
+
_(g(e(u)("article.rubric-main")), 1)
|
|
936
926
|
]),
|
|
937
927
|
_: 1
|
|
938
|
-
})) :
|
|
928
|
+
})) : K("", !0)
|
|
939
929
|
]),
|
|
940
|
-
actions: l(({ item:
|
|
930
|
+
actions: l(({ item: w }) => [
|
|
941
931
|
n(e(Oe), {
|
|
942
932
|
type: "remove",
|
|
943
933
|
size: "sm",
|
|
944
934
|
disabled: a.value,
|
|
945
935
|
title: e(u)("article.rubric-remove"),
|
|
946
|
-
onClick: (W) => T(
|
|
936
|
+
onClick: (W) => T(w.id)
|
|
947
937
|
}, null, 8, ["disabled", "title", "onClick"])
|
|
948
938
|
]),
|
|
949
939
|
_: 1
|
|
@@ -961,10 +951,10 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
961
951
|
}, null, 8, ["options", "placeholder", "disabled", "empty-text", "aria-label"])
|
|
962
952
|
]));
|
|
963
953
|
}
|
|
964
|
-
}),
|
|
954
|
+
}), aa = /* @__PURE__ */ ve(ta, [["__scopeId", "data-v-db8c5bc8"]]), la = { class: "wx-article-tags" }, ia = {
|
|
965
955
|
key: 0,
|
|
966
956
|
class: "wx-article-tags__chips"
|
|
967
|
-
},
|
|
957
|
+
}, na = { class: "wx-article-tags__pick" }, sa = 250, ra = /* @__PURE__ */ ee({
|
|
968
958
|
name: "WxArticleTags",
|
|
969
959
|
__name: "ArticleTags",
|
|
970
960
|
props: /* @__PURE__ */ Me({
|
|
@@ -975,23 +965,23 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
975
965
|
}),
|
|
976
966
|
emits: ["update:modelValue"],
|
|
977
967
|
setup(f) {
|
|
978
|
-
const m = f,
|
|
968
|
+
const m = f, o = qe(f, "modelValue"), y = se(), u = de(y), a = Ae();
|
|
979
969
|
te();
|
|
980
|
-
const t = Q("webx-blog"), s = ge(), i = v(() => m.disabled || a?.disabled.value === !0), x = C(/* @__PURE__ */ new Map()), T = C([]), c = C(""),
|
|
981
|
-
let
|
|
970
|
+
const t = Q("webx-blog"), s = ge(), i = v(() => m.disabled || a?.disabled.value === !0), x = C(/* @__PURE__ */ new Map()), T = C([]), c = C(""), r = C(!1);
|
|
971
|
+
let w;
|
|
982
972
|
ue(
|
|
983
973
|
() => a?.article.value?.tags,
|
|
984
974
|
(A) => {
|
|
985
975
|
const I = new Map(x.value);
|
|
986
|
-
for (const
|
|
976
|
+
for (const H of A ?? []) I.set(H.id, H.title);
|
|
987
977
|
x.value = I;
|
|
988
978
|
},
|
|
989
979
|
{ immediate: !0, deep: !0 }
|
|
990
980
|
);
|
|
991
981
|
const W = v(
|
|
992
|
-
() =>
|
|
982
|
+
() => o.value.map((A) => ({ id: A, title: x.value.get(A) ?? `#${A}` }))
|
|
993
983
|
), S = v(
|
|
994
|
-
() => T.value.filter((A) => !
|
|
984
|
+
() => T.value.filter((A) => !o.value.includes(A.id)).map((A) => ({
|
|
995
985
|
// The count is part of the label rather than a column: a select draws a line of text, and
|
|
996
986
|
// the number is what the reader is choosing between two near-identical words on.
|
|
997
987
|
label: t("article.tag-option", { title: A.title, count: A.articles_count }),
|
|
@@ -1000,8 +990,8 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1000
990
|
), E = v(() => {
|
|
1001
991
|
const A = c.value.trim();
|
|
1002
992
|
if (A === "") return null;
|
|
1003
|
-
const I = (
|
|
1004
|
-
return T.value.some((
|
|
993
|
+
const I = (H) => H.toLowerCase() === A.toLowerCase();
|
|
994
|
+
return T.value.some((H) => I(H.title)) ? null : A;
|
|
1005
995
|
});
|
|
1006
996
|
async function F() {
|
|
1007
997
|
try {
|
|
@@ -1014,27 +1004,27 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1014
1004
|
}
|
|
1015
1005
|
}
|
|
1016
1006
|
function $(A) {
|
|
1017
|
-
c.value = A, clearTimeout(
|
|
1007
|
+
c.value = A, clearTimeout(w), w = setTimeout(() => {
|
|
1018
1008
|
F();
|
|
1019
|
-
},
|
|
1009
|
+
}, sa);
|
|
1020
1010
|
}
|
|
1021
1011
|
function U(A) {
|
|
1022
|
-
typeof A != "number" ||
|
|
1012
|
+
typeof A != "number" || o.value.includes(A) || (o.value = [...o.value, A], c.value = "");
|
|
1023
1013
|
}
|
|
1024
1014
|
function R(A) {
|
|
1025
|
-
|
|
1015
|
+
o.value = o.value.filter((I) => I !== A);
|
|
1026
1016
|
}
|
|
1027
|
-
async function
|
|
1017
|
+
async function N() {
|
|
1028
1018
|
const A = E.value;
|
|
1029
|
-
if (!(A === null ||
|
|
1030
|
-
|
|
1019
|
+
if (!(A === null || r.value)) {
|
|
1020
|
+
r.value = !0;
|
|
1031
1021
|
try {
|
|
1032
1022
|
const I = await u.createTag({ title: A });
|
|
1033
1023
|
x.value = new Map(x.value).set(I.id, I.title), T.value = [I, ...T.value], U(I.id);
|
|
1034
1024
|
} catch (I) {
|
|
1035
1025
|
L.danger(s(I));
|
|
1036
1026
|
} finally {
|
|
1037
|
-
|
|
1027
|
+
r.value = !1;
|
|
1038
1028
|
}
|
|
1039
1029
|
}
|
|
1040
1030
|
}
|
|
@@ -1044,22 +1034,22 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1044
1034
|
F();
|
|
1045
1035
|
},
|
|
1046
1036
|
{ immediate: !0 }
|
|
1047
|
-
), Je(() => clearTimeout(
|
|
1048
|
-
W.value.length > 0 ? (p(), G("div",
|
|
1049
|
-
(p(!0), G(
|
|
1050
|
-
key:
|
|
1037
|
+
), Je(() => clearTimeout(w)), (A, I) => (p(), G("div", la, [
|
|
1038
|
+
W.value.length > 0 ? (p(), G("div", ia, [
|
|
1039
|
+
(p(!0), G(be, null, Be(W.value, (H) => (p(), z(e(ie), {
|
|
1040
|
+
key: H.id,
|
|
1051
1041
|
type: "default",
|
|
1052
1042
|
class: "wx-article-tags__chip"
|
|
1053
1043
|
}, {
|
|
1054
1044
|
default: l(() => [
|
|
1055
|
-
|
|
1045
|
+
_(g(H.title) + " ", 1),
|
|
1056
1046
|
n(e(Oe), {
|
|
1057
1047
|
icon: "close",
|
|
1058
1048
|
tone: "neutral",
|
|
1059
1049
|
size: "sm",
|
|
1060
1050
|
disabled: i.value,
|
|
1061
1051
|
title: e(t)("article.tag-remove"),
|
|
1062
|
-
onClick: (P) => R(
|
|
1052
|
+
onClick: (P) => R(H.id)
|
|
1063
1053
|
}, null, 8, ["disabled", "title", "onClick"])
|
|
1064
1054
|
]),
|
|
1065
1055
|
_: 2
|
|
@@ -1070,11 +1060,11 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1070
1060
|
tone: "muted"
|
|
1071
1061
|
}, {
|
|
1072
1062
|
default: l(() => [
|
|
1073
|
-
|
|
1063
|
+
_(g(e(t)("article.tags-empty")), 1)
|
|
1074
1064
|
]),
|
|
1075
1065
|
_: 1
|
|
1076
1066
|
})),
|
|
1077
|
-
j("div",
|
|
1067
|
+
j("div", na, [
|
|
1078
1068
|
n(e(_e), {
|
|
1079
1069
|
"model-value": null,
|
|
1080
1070
|
options: S.value,
|
|
@@ -1091,22 +1081,22 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1091
1081
|
key: 0,
|
|
1092
1082
|
variant: "outline",
|
|
1093
1083
|
icon: "plus",
|
|
1094
|
-
loading:
|
|
1084
|
+
loading: r.value,
|
|
1095
1085
|
disabled: i.value,
|
|
1096
|
-
onClick:
|
|
1086
|
+
onClick: N
|
|
1097
1087
|
}, {
|
|
1098
1088
|
default: l(() => [
|
|
1099
|
-
|
|
1089
|
+
_(g(e(t)("article.tag-create", { title: E.value })), 1)
|
|
1100
1090
|
]),
|
|
1101
1091
|
_: 1
|
|
1102
|
-
}, 8, ["loading", "disabled"])) :
|
|
1092
|
+
}, 8, ["loading", "disabled"])) : K("", !0)
|
|
1103
1093
|
])
|
|
1104
1094
|
]));
|
|
1105
1095
|
}
|
|
1106
|
-
}),
|
|
1096
|
+
}), oa = /* @__PURE__ */ ve(ra, [["__scopeId", "data-v-ce095e37"]]), ua = /* @__PURE__ */ ee({
|
|
1107
1097
|
__name: "ArticleCreateDialog",
|
|
1108
1098
|
setup(f) {
|
|
1109
|
-
const { open: m, resolve:
|
|
1099
|
+
const { open: m, resolve: o, dismiss: y } = Ee(), u = se(), a = de(u);
|
|
1110
1100
|
te();
|
|
1111
1101
|
const t = Q("webx-blog"), s = C(""), i = C(!1), x = C({}), T = De("field");
|
|
1112
1102
|
Ne(async () => {
|
|
@@ -1116,17 +1106,17 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1116
1106
|
if (!(s.value.trim() === "" || i.value)) {
|
|
1117
1107
|
i.value = !0, x.value = {};
|
|
1118
1108
|
try {
|
|
1119
|
-
|
|
1120
|
-
} catch (
|
|
1121
|
-
x.value =
|
|
1109
|
+
o(await a.create({ title: s.value.trim() }));
|
|
1110
|
+
} catch (r) {
|
|
1111
|
+
x.value = r.body?.errors ?? {};
|
|
1122
1112
|
} finally {
|
|
1123
1113
|
i.value = !1;
|
|
1124
1114
|
}
|
|
1125
1115
|
}
|
|
1126
1116
|
}
|
|
1127
|
-
return (
|
|
1117
|
+
return (r, w) => (p(), z(e(Fe), {
|
|
1128
1118
|
open: e(m),
|
|
1129
|
-
"onUpdate:open":
|
|
1119
|
+
"onUpdate:open": w[2] || (w[2] = (W) => Ie(m) ? m.value = W : null),
|
|
1130
1120
|
title: e(t)("panel.new-title"),
|
|
1131
1121
|
width: 440
|
|
1132
1122
|
}, {
|
|
@@ -1135,10 +1125,10 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1135
1125
|
default: l(() => [
|
|
1136
1126
|
n(e(Z), {
|
|
1137
1127
|
variant: "outline",
|
|
1138
|
-
onClick:
|
|
1128
|
+
onClick: w[1] || (w[1] = (W) => e(y)())
|
|
1139
1129
|
}, {
|
|
1140
1130
|
default: l(() => [
|
|
1141
|
-
|
|
1131
|
+
_(g(e(t)("panel.cancel")), 1)
|
|
1142
1132
|
]),
|
|
1143
1133
|
_: 1
|
|
1144
1134
|
}),
|
|
@@ -1149,7 +1139,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1149
1139
|
onClick: c
|
|
1150
1140
|
}, {
|
|
1151
1141
|
default: l(() => [
|
|
1152
|
-
|
|
1142
|
+
_(g(e(t)("panel.create")), 1)
|
|
1153
1143
|
]),
|
|
1154
1144
|
_: 1
|
|
1155
1145
|
}, 8, ["loading", "disabled"])
|
|
@@ -1158,7 +1148,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1158
1148
|
})
|
|
1159
1149
|
]),
|
|
1160
1150
|
default: l(() => [
|
|
1161
|
-
n(e(
|
|
1151
|
+
n(e(ne), {
|
|
1162
1152
|
label: e(t)("panel.field-title"),
|
|
1163
1153
|
error: x.value.title?.[0] ?? x.value.slug?.[0],
|
|
1164
1154
|
required: ""
|
|
@@ -1168,9 +1158,9 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1168
1158
|
ref_key: "field",
|
|
1169
1159
|
ref: T
|
|
1170
1160
|
}, [
|
|
1171
|
-
n(e(
|
|
1161
|
+
n(e(Ve), {
|
|
1172
1162
|
modelValue: s.value,
|
|
1173
|
-
"onUpdate:modelValue":
|
|
1163
|
+
"onUpdate:modelValue": w[0] || (w[0] = (W) => s.value = W),
|
|
1174
1164
|
"aria-label": e(t)("panel.field-title"),
|
|
1175
1165
|
onKeyup: ze(c, ["enter"])
|
|
1176
1166
|
}, null, 8, ["modelValue", "aria-label"])
|
|
@@ -1182,16 +1172,16 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1182
1172
|
_: 1
|
|
1183
1173
|
}, 8, ["open", "title"]));
|
|
1184
1174
|
}
|
|
1185
|
-
}),
|
|
1175
|
+
}), da = ["src"], ca = { class: "wx-articles__name" }, va = { class: "wx-articles__name-text" }, pa = { class: "wx-articles__title" }, fa = { class: "wx-articles__address" }, ma = { class: "wx-articles__chips" }, ba = { class: "wx-articles__state" }, nt = 640, ga = /* @__PURE__ */ ee({
|
|
1186
1176
|
__name: "ArticlesPage",
|
|
1187
1177
|
props: {
|
|
1188
1178
|
base: { default: "/blog" }
|
|
1189
1179
|
},
|
|
1190
1180
|
setup(f) {
|
|
1191
|
-
const m = f,
|
|
1181
|
+
const m = f, o = se(), y = de(o), u = He(), a = Ke();
|
|
1192
1182
|
te();
|
|
1193
|
-
const t = Q("webx-blog"), s = Q("webx-admin"), i = ge(), x = De("root"), T =
|
|
1194
|
-
() =>
|
|
1183
|
+
const t = Q("webx-blog"), s = Q("webx-admin"), i = ge(), x = De("root"), T = xt(x), c = C(null), r = C(!0), w = Ce(ua), W = v(() => o.can("blog.articles.manage")), S = v(
|
|
1184
|
+
() => o.state.manifest?.modules.find((d) => d.id === "articles")?.title ?? t("module.articles")
|
|
1195
1185
|
), E = v({
|
|
1196
1186
|
get: () => typeof u.query.view == "string" ? u.query.view : "",
|
|
1197
1187
|
set: (d) => {
|
|
@@ -1217,7 +1207,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1217
1207
|
{ value: "draft", label: t("panel.view-draft") },
|
|
1218
1208
|
{ value: "unpublished", label: t("panel.view-unpublished") },
|
|
1219
1209
|
{ value: "trashed", label: t("panel.bin"), icon: "trash" }
|
|
1220
|
-
]),
|
|
1210
|
+
]), N = v(() => c.value?.filters ?? { rubrics: [], tags: [], authors: [] }), A = v(() => T.value > 0 && T.value < nt), I = v(() => A.value ? [{ key: "card", label: "" }] : [
|
|
1221
1211
|
{ key: "cover", label: "", width: 68 },
|
|
1222
1212
|
/* The one that takes what the others leave, and the only one without a number. */
|
|
1223
1213
|
{ key: "title", label: t("panel.column-title"), minWidth: 220 },
|
|
@@ -1234,20 +1224,20 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1234
1224
|
},
|
|
1235
1225
|
{ key: "status", label: t("panel.column-status"), width: 170 },
|
|
1236
1226
|
{ key: "actions", label: "", width: st, align: "right" }
|
|
1237
|
-
]),
|
|
1238
|
-
const d = [], D =
|
|
1227
|
+
]), H = v(() => $.value.q !== "" ? t("panel.empty-search") : F.value ? t("panel.empty-bin") : t("panel.empty")), P = v(() => {
|
|
1228
|
+
const d = [], D = N.value.rubrics.find((V) => V.id === $.value.rubric);
|
|
1239
1229
|
D && d.push({
|
|
1240
1230
|
key: "rubric",
|
|
1241
1231
|
label: `${t("panel.filter-rubric")}: ${D.title}`,
|
|
1242
1232
|
clear: () => O("rubric", void 0)
|
|
1243
1233
|
});
|
|
1244
|
-
const h =
|
|
1234
|
+
const h = N.value.tags.find((V) => V.id === $.value.tag);
|
|
1245
1235
|
h && d.push({
|
|
1246
1236
|
key: "tag",
|
|
1247
1237
|
label: `${t("panel.filter-tag")}: ${h.title}`,
|
|
1248
1238
|
clear: () => O("tag", void 0)
|
|
1249
1239
|
});
|
|
1250
|
-
const $e =
|
|
1240
|
+
const $e = N.value.authors.find((V) => V.id === $.value.author);
|
|
1251
1241
|
return $e && d.push({
|
|
1252
1242
|
key: "author",
|
|
1253
1243
|
label: `${t("panel.filter-author")}: ${$e.title}`,
|
|
@@ -1266,7 +1256,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1266
1256
|
});
|
|
1267
1257
|
}
|
|
1268
1258
|
async function k(d) {
|
|
1269
|
-
|
|
1259
|
+
r.value = !0;
|
|
1270
1260
|
try {
|
|
1271
1261
|
c.value = await y.articles({
|
|
1272
1262
|
q: d?.search ?? $.value.q,
|
|
@@ -1282,7 +1272,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1282
1272
|
} catch (D) {
|
|
1283
1273
|
L.danger(i(D));
|
|
1284
1274
|
} finally {
|
|
1285
|
-
|
|
1275
|
+
r.value = !1;
|
|
1286
1276
|
}
|
|
1287
1277
|
}
|
|
1288
1278
|
function le(d) {
|
|
@@ -1309,13 +1299,13 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1309
1299
|
k();
|
|
1310
1300
|
}
|
|
1311
1301
|
), k();
|
|
1312
|
-
function
|
|
1302
|
+
function re(d) {
|
|
1313
1303
|
const D = `${m.base}/articles/${d.id}`;
|
|
1314
1304
|
a.resolve(D).matched.length > 0 && a.push({ path: D, query: { ...u.query } });
|
|
1315
1305
|
}
|
|
1316
1306
|
async function xe() {
|
|
1317
|
-
const d = await
|
|
1318
|
-
d && (await k(),
|
|
1307
|
+
const d = await w({});
|
|
1308
|
+
d && (await k(), re(d));
|
|
1319
1309
|
}
|
|
1320
1310
|
function ce(d) {
|
|
1321
1311
|
if (!W.value) return [];
|
|
@@ -1326,12 +1316,12 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1326
1316
|
icon: "refresh",
|
|
1327
1317
|
label: t("panel.restore"),
|
|
1328
1318
|
run: () => {
|
|
1329
|
-
|
|
1319
|
+
oe(d);
|
|
1330
1320
|
}
|
|
1331
1321
|
}
|
|
1332
1322
|
];
|
|
1333
1323
|
const D = [
|
|
1334
|
-
{ key: "open", icon: "edit", label: t("panel.open"), run: () =>
|
|
1324
|
+
{ key: "open", icon: "edit", label: t("panel.open"), run: () => re(d) }
|
|
1335
1325
|
];
|
|
1336
1326
|
return d.url && d.status !== "draft" && D.push({
|
|
1337
1327
|
key: "site",
|
|
@@ -1343,7 +1333,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1343
1333
|
icon: "copy",
|
|
1344
1334
|
label: t("panel.copy-address"),
|
|
1345
1335
|
run: () => {
|
|
1346
|
-
|
|
1336
|
+
b(d);
|
|
1347
1337
|
}
|
|
1348
1338
|
}), D.push({
|
|
1349
1339
|
key: "pin",
|
|
@@ -1358,7 +1348,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1358
1348
|
icon: "eye-off",
|
|
1359
1349
|
label: t("panel.unpublish"),
|
|
1360
1350
|
run: () => {
|
|
1361
|
-
|
|
1351
|
+
Se(d);
|
|
1362
1352
|
}
|
|
1363
1353
|
} : {
|
|
1364
1354
|
key: "publish",
|
|
@@ -1374,35 +1364,35 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1374
1364
|
label: t("panel.delete"),
|
|
1375
1365
|
danger: !0,
|
|
1376
1366
|
run: () => {
|
|
1377
|
-
|
|
1367
|
+
pe(d);
|
|
1378
1368
|
}
|
|
1379
1369
|
}), D;
|
|
1380
1370
|
}
|
|
1381
1371
|
async function he(d) {
|
|
1382
|
-
await
|
|
1372
|
+
await fe(() => y.publish(d.id), t("panel.published"));
|
|
1383
1373
|
}
|
|
1384
|
-
async function
|
|
1385
|
-
await
|
|
1374
|
+
async function Se(d) {
|
|
1375
|
+
await fe(() => y.unpublish(d.id), t("panel.unpublished-done"));
|
|
1386
1376
|
}
|
|
1387
1377
|
async function ke(d, D) {
|
|
1388
|
-
await
|
|
1378
|
+
await fe(
|
|
1389
1379
|
() => y.save(d.id, { values: { pinned: D }, revision: d.revision }),
|
|
1390
1380
|
t(D ? "panel.pinned-done" : "panel.unpinned")
|
|
1391
1381
|
);
|
|
1392
1382
|
}
|
|
1393
|
-
async function
|
|
1394
|
-
await
|
|
1383
|
+
async function pe(d) {
|
|
1384
|
+
await me({
|
|
1395
1385
|
title: t("panel.delete-title", { title: d.title }),
|
|
1396
1386
|
message: t("panel.delete-text"),
|
|
1397
1387
|
confirmText: t("panel.delete"),
|
|
1398
1388
|
cancelText: t("panel.cancel"),
|
|
1399
1389
|
tone: "danger"
|
|
1400
|
-
}) && await
|
|
1390
|
+
}) && await fe(() => y.remove(d.id), t("panel.deleted"));
|
|
1401
1391
|
}
|
|
1402
|
-
async function
|
|
1403
|
-
await
|
|
1392
|
+
async function oe(d) {
|
|
1393
|
+
await fe(() => y.restore(d.id), t("panel.restored"));
|
|
1404
1394
|
}
|
|
1405
|
-
async function
|
|
1395
|
+
async function fe(d, D) {
|
|
1406
1396
|
try {
|
|
1407
1397
|
await d(), L.success(D);
|
|
1408
1398
|
} catch (h) {
|
|
@@ -1411,14 +1401,14 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1411
1401
|
await k();
|
|
1412
1402
|
}
|
|
1413
1403
|
}
|
|
1414
|
-
async function
|
|
1404
|
+
async function b(d) {
|
|
1415
1405
|
if (d.url)
|
|
1416
1406
|
try {
|
|
1417
1407
|
await navigator.clipboard.writeText(d.url), L.success(t("panel.address-copied"));
|
|
1418
1408
|
} catch {
|
|
1419
1409
|
}
|
|
1420
1410
|
}
|
|
1421
|
-
function
|
|
1411
|
+
function M(d) {
|
|
1422
1412
|
return d === "published" || d === "modified" ? "success" : d === "scheduled" ? "warning" : "default";
|
|
1423
1413
|
}
|
|
1424
1414
|
function B(d) {
|
|
@@ -1453,25 +1443,25 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1453
1443
|
clickable: !F.value,
|
|
1454
1444
|
hover: !F.value,
|
|
1455
1445
|
flush: "",
|
|
1456
|
-
loading:
|
|
1446
|
+
loading: r.value,
|
|
1457
1447
|
layout: "fixed",
|
|
1458
1448
|
"cards-below": nt,
|
|
1459
1449
|
"filters-count": P.value.length,
|
|
1460
1450
|
"filters-label": e(s)("filters.title"),
|
|
1461
1451
|
"search-placeholder": e(t)("panel.search"),
|
|
1462
|
-
"empty-text":
|
|
1452
|
+
"empty-text": H.value,
|
|
1463
1453
|
"aria-label": S.value,
|
|
1464
|
-
onRowClick:
|
|
1454
|
+
onRowClick: re,
|
|
1465
1455
|
onStateChange: le
|
|
1466
1456
|
}, {
|
|
1467
1457
|
filters: l(() => [
|
|
1468
|
-
n(e(
|
|
1458
|
+
n(e(ne), {
|
|
1469
1459
|
label: e(t)("panel.filter-rubric")
|
|
1470
1460
|
}, {
|
|
1471
1461
|
default: l(() => [
|
|
1472
1462
|
n(e(_e), {
|
|
1473
1463
|
"model-value": $.value.rubric,
|
|
1474
|
-
options:
|
|
1464
|
+
options: N.value.rubrics.map((h) => ({ value: h.id, label: h.title })),
|
|
1475
1465
|
placeholder: e(t)("panel.any-rubric"),
|
|
1476
1466
|
clearable: "",
|
|
1477
1467
|
size: "sm",
|
|
@@ -1480,13 +1470,13 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1480
1470
|
]),
|
|
1481
1471
|
_: 1
|
|
1482
1472
|
}, 8, ["label"]),
|
|
1483
|
-
n(e(
|
|
1473
|
+
n(e(ne), {
|
|
1484
1474
|
label: e(t)("panel.filter-tag")
|
|
1485
1475
|
}, {
|
|
1486
1476
|
default: l(() => [
|
|
1487
1477
|
n(e(_e), {
|
|
1488
1478
|
"model-value": $.value.tag,
|
|
1489
|
-
options:
|
|
1479
|
+
options: N.value.tags.map((h) => ({ value: h.id, label: h.title })),
|
|
1490
1480
|
placeholder: e(t)("panel.any-tag"),
|
|
1491
1481
|
clearable: "",
|
|
1492
1482
|
filterable: "",
|
|
@@ -1496,13 +1486,13 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1496
1486
|
]),
|
|
1497
1487
|
_: 1
|
|
1498
1488
|
}, 8, ["label"]),
|
|
1499
|
-
n(e(
|
|
1489
|
+
n(e(ne), {
|
|
1500
1490
|
label: e(t)("panel.filter-author")
|
|
1501
1491
|
}, {
|
|
1502
1492
|
default: l(() => [
|
|
1503
1493
|
n(e(_e), {
|
|
1504
1494
|
"model-value": $.value.author,
|
|
1505
|
-
options:
|
|
1495
|
+
options: N.value.authors.map((h) => ({ value: h.id, label: h.title })),
|
|
1506
1496
|
placeholder: e(t)("panel.any-author"),
|
|
1507
1497
|
clearable: "",
|
|
1508
1498
|
size: "sm",
|
|
@@ -1522,13 +1512,13 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1522
1512
|
n(e(we), { name: "close" })
|
|
1523
1513
|
]),
|
|
1524
1514
|
default: l(() => [
|
|
1525
|
-
|
|
1515
|
+
_(" " + g(e(s)("filters.reset")), 1)
|
|
1526
1516
|
]),
|
|
1527
1517
|
_: 1
|
|
1528
|
-
})) :
|
|
1518
|
+
})) : K("", !0)
|
|
1529
1519
|
]),
|
|
1530
1520
|
applied: l(() => [
|
|
1531
|
-
n(e(
|
|
1521
|
+
n(e(yt), { filters: P.value }, null, 8, ["filters"])
|
|
1532
1522
|
]),
|
|
1533
1523
|
"cell-cover": l(({ row: h }) => [
|
|
1534
1524
|
j("span", {
|
|
@@ -1539,7 +1529,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1539
1529
|
src: h.cover.thumb,
|
|
1540
1530
|
alt: "",
|
|
1541
1531
|
loading: "lazy"
|
|
1542
|
-
}, null, 8,
|
|
1532
|
+
}, null, 8, da)) : (p(), z(e(we), {
|
|
1543
1533
|
key: 1,
|
|
1544
1534
|
name: "image",
|
|
1545
1535
|
size: "sm"
|
|
@@ -1547,7 +1537,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1547
1537
|
], 2)
|
|
1548
1538
|
]),
|
|
1549
1539
|
"cell-title": l(({ row: h }) => [
|
|
1550
|
-
j("div",
|
|
1540
|
+
j("div", ca, [
|
|
1551
1541
|
h.pinned ? (p(), z(e(et), {
|
|
1552
1542
|
key: 0,
|
|
1553
1543
|
content: e(t)("panel.pinned")
|
|
@@ -1560,22 +1550,22 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1560
1550
|
})
|
|
1561
1551
|
]),
|
|
1562
1552
|
_: 1
|
|
1563
|
-
}, 8, ["content"])) :
|
|
1564
|
-
j("div",
|
|
1565
|
-
j("span",
|
|
1566
|
-
j("span",
|
|
1553
|
+
}, 8, ["content"])) : K("", !0),
|
|
1554
|
+
j("div", va, [
|
|
1555
|
+
j("span", pa, g(h.title), 1),
|
|
1556
|
+
j("span", fa, g(B(h)), 1)
|
|
1567
1557
|
])
|
|
1568
1558
|
])
|
|
1569
1559
|
]),
|
|
1570
1560
|
"cell-rubrics": l(({ row: h }) => [
|
|
1571
|
-
j("span",
|
|
1572
|
-
(p(!0), G(
|
|
1561
|
+
j("span", ma, [
|
|
1562
|
+
(p(!0), G(be, null, Be(h.rubrics, ($e) => (p(), z(e(ie), {
|
|
1573
1563
|
key: $e.id,
|
|
1574
1564
|
size: "sm",
|
|
1575
1565
|
round: ""
|
|
1576
1566
|
}, {
|
|
1577
1567
|
default: l(() => [
|
|
1578
|
-
|
|
1568
|
+
_(g($e.title), 1)
|
|
1579
1569
|
]),
|
|
1580
1570
|
_: 2
|
|
1581
1571
|
}, 1024))), 128))
|
|
@@ -1588,7 +1578,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1588
1578
|
truncate: ""
|
|
1589
1579
|
}, {
|
|
1590
1580
|
default: l(() => [
|
|
1591
|
-
|
|
1581
|
+
_(g(h.author ? h.author.name : "—"), 1)
|
|
1592
1582
|
]),
|
|
1593
1583
|
_: 2
|
|
1594
1584
|
}, 1024)
|
|
@@ -1604,38 +1594,38 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1604
1594
|
tone: "muted"
|
|
1605
1595
|
}, {
|
|
1606
1596
|
default: l(() => [...D[4] || (D[4] = [
|
|
1607
|
-
|
|
1597
|
+
_("—", -1)
|
|
1608
1598
|
])]),
|
|
1609
1599
|
_: 1
|
|
1610
1600
|
}))
|
|
1611
1601
|
]),
|
|
1612
1602
|
"cell-status": l(({ row: h }) => [
|
|
1613
|
-
j("span",
|
|
1614
|
-
n(e(
|
|
1615
|
-
type:
|
|
1603
|
+
j("span", ba, [
|
|
1604
|
+
n(e(ie), {
|
|
1605
|
+
type: M(h.status),
|
|
1616
1606
|
dot: "",
|
|
1617
1607
|
size: "sm"
|
|
1618
1608
|
}, {
|
|
1619
1609
|
default: l(() => [
|
|
1620
|
-
|
|
1610
|
+
_(g(e(t)(`panel.status-${h.status}`)), 1)
|
|
1621
1611
|
]),
|
|
1622
1612
|
_: 2
|
|
1623
1613
|
}, 1032, ["type"]),
|
|
1624
|
-
h.status === "modified" ? (p(), z(e(
|
|
1614
|
+
h.status === "modified" ? (p(), z(e(ie), {
|
|
1625
1615
|
key: 0,
|
|
1626
1616
|
type: "primary",
|
|
1627
1617
|
size: "sm",
|
|
1628
1618
|
round: ""
|
|
1629
1619
|
}, {
|
|
1630
1620
|
default: l(() => [
|
|
1631
|
-
|
|
1621
|
+
_(g(e(t)("panel.edits")), 1)
|
|
1632
1622
|
]),
|
|
1633
1623
|
_: 1
|
|
1634
|
-
})) :
|
|
1624
|
+
})) : K("", !0)
|
|
1635
1625
|
])
|
|
1636
1626
|
]),
|
|
1637
1627
|
"cell-card": l(({ row: h }) => [
|
|
1638
|
-
n(e(
|
|
1628
|
+
n(e(kt), {
|
|
1639
1629
|
class: "wx-articles__entity",
|
|
1640
1630
|
variant: "plain",
|
|
1641
1631
|
title: h.title,
|
|
@@ -1650,34 +1640,34 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1650
1640
|
class: "wx-articles__pin",
|
|
1651
1641
|
name: "star",
|
|
1652
1642
|
size: "sm"
|
|
1653
|
-
})) :
|
|
1654
|
-
|
|
1643
|
+
})) : K("", !0),
|
|
1644
|
+
_(" " + g(h.title), 1)
|
|
1655
1645
|
]),
|
|
1656
1646
|
meta: l(() => [
|
|
1657
|
-
h.rubrics[0] ? (p(), z(e(
|
|
1647
|
+
h.rubrics[0] ? (p(), z(e(ie), {
|
|
1658
1648
|
key: 0,
|
|
1659
1649
|
size: "sm",
|
|
1660
1650
|
round: ""
|
|
1661
1651
|
}, {
|
|
1662
1652
|
default: l(() => [
|
|
1663
|
-
|
|
1653
|
+
_(g(h.rubrics[0].title), 1)
|
|
1664
1654
|
]),
|
|
1665
1655
|
_: 2
|
|
1666
|
-
}, 1024)) :
|
|
1667
|
-
n(e(
|
|
1668
|
-
type:
|
|
1656
|
+
}, 1024)) : K("", !0),
|
|
1657
|
+
n(e(ie), {
|
|
1658
|
+
type: M(h.status),
|
|
1669
1659
|
dot: "",
|
|
1670
1660
|
size: "sm"
|
|
1671
1661
|
}, {
|
|
1672
1662
|
default: l(() => [
|
|
1673
|
-
|
|
1663
|
+
_(g(e(t)(`panel.status-${h.status}`)), 1)
|
|
1674
1664
|
]),
|
|
1675
1665
|
_: 2
|
|
1676
1666
|
}, 1032, ["type"]),
|
|
1677
1667
|
X(h) ? (p(), z(e(je), {
|
|
1678
1668
|
key: 1,
|
|
1679
1669
|
value: X(h)
|
|
1680
|
-
}, null, 8, ["value"])) :
|
|
1670
|
+
}, null, 8, ["value"])) : K("", !0)
|
|
1681
1671
|
]),
|
|
1682
1672
|
_: 2
|
|
1683
1673
|
}, 1032, ["title", "image", "subtitle"])
|
|
@@ -1701,10 +1691,10 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1701
1691
|
}, 8, ["view", "title", "views", "actions"])
|
|
1702
1692
|
], 512));
|
|
1703
1693
|
}
|
|
1704
|
-
}),
|
|
1694
|
+
}), ha = /* @__PURE__ */ ve(ga, [["__scopeId", "data-v-2d93df26"]]), ya = { class: "wx-rubric-form__head" }, wa = { class: "wx-rubric-form__body" }, _a = { class: "wx-rubric-form__row" }, xa = { class: "wx-rubric-form__row" }, ka = { class: "wx-rubric-form__side" }, $a = {
|
|
1705
1695
|
key: 1,
|
|
1706
1696
|
class: "wx-rubric-form__seo"
|
|
1707
|
-
},
|
|
1697
|
+
}, Ta = { class: "wx-rubric-form__foot" }, Va = /* @__PURE__ */ ee({
|
|
1708
1698
|
__name: "RubricForm",
|
|
1709
1699
|
props: {
|
|
1710
1700
|
rubric: {},
|
|
@@ -1714,11 +1704,11 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1714
1704
|
},
|
|
1715
1705
|
emits: ["back", "saved", "deleted", "articles"],
|
|
1716
1706
|
setup(f, { emit: m }) {
|
|
1717
|
-
const
|
|
1707
|
+
const o = f, y = m, u = se(), a = de(u), t = Xe();
|
|
1718
1708
|
te();
|
|
1719
1709
|
const s = Q("webx-blog"), i = ge(), x = v(() => u.types["wx-media"]?.component), T = v(() => u.types["wx-seo"]?.component), c = v(
|
|
1720
1710
|
() => u.types["wx-seo"]?.bind?.({ id: "seo", type: "wx-seo" }) ?? {}
|
|
1721
|
-
),
|
|
1711
|
+
), r = C(E()), w = C({}), W = C(!1), S = C(!1);
|
|
1722
1712
|
function E() {
|
|
1723
1713
|
return {
|
|
1724
1714
|
title: {},
|
|
@@ -1730,13 +1720,13 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1730
1720
|
};
|
|
1731
1721
|
}
|
|
1732
1722
|
ue(
|
|
1733
|
-
() =>
|
|
1723
|
+
() => o.rubric,
|
|
1734
1724
|
(P) => {
|
|
1735
|
-
if (
|
|
1736
|
-
|
|
1725
|
+
if (w.value = {}, S.value = !1, P === null) {
|
|
1726
|
+
r.value = E();
|
|
1737
1727
|
return;
|
|
1738
1728
|
}
|
|
1739
|
-
|
|
1729
|
+
r.value = {
|
|
1740
1730
|
title: { ...P.title },
|
|
1741
1731
|
slug: { ...P.slug },
|
|
1742
1732
|
lead: { ...P.lead },
|
|
@@ -1748,130 +1738,130 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1748
1738
|
{ immediate: !0 }
|
|
1749
1739
|
);
|
|
1750
1740
|
const F = v(
|
|
1751
|
-
() =>
|
|
1741
|
+
() => r.value.title[t.active.value] || o.rubric?.name || s("rubric.new")
|
|
1752
1742
|
), $ = v(() => {
|
|
1753
|
-
const P =
|
|
1754
|
-
return P === "" ? null : `/${[
|
|
1743
|
+
const P = r.value.slug[t.active.value] ?? "";
|
|
1744
|
+
return P === "" ? null : `/${[o.prefix, P].filter(Boolean).join("/")}`;
|
|
1755
1745
|
}), U = v(() => {
|
|
1756
|
-
const P =
|
|
1746
|
+
const P = o.rubric?.path;
|
|
1757
1747
|
return typeof P == "string" && $.value !== null && $.value !== `/${P}`;
|
|
1758
|
-
}), R = v(() =>
|
|
1759
|
-
function
|
|
1760
|
-
const q = Object.keys(
|
|
1748
|
+
}), R = v(() => o.rubric?.articles_count ?? 0);
|
|
1749
|
+
function N(P) {
|
|
1750
|
+
const q = Object.keys(w.value).find(
|
|
1761
1751
|
(k) => k === P || k.startsWith(`${P}.`)
|
|
1762
1752
|
);
|
|
1763
|
-
return q === void 0 ? void 0 :
|
|
1753
|
+
return q === void 0 ? void 0 : w.value[q]?.[0];
|
|
1764
1754
|
}
|
|
1765
1755
|
function A() {
|
|
1766
1756
|
return {
|
|
1767
|
-
title:
|
|
1768
|
-
slug:
|
|
1769
|
-
lead:
|
|
1770
|
-
cover:
|
|
1771
|
-
is_visible:
|
|
1757
|
+
title: r.value.title,
|
|
1758
|
+
slug: r.value.slug,
|
|
1759
|
+
lead: r.value.lead,
|
|
1760
|
+
cover: r.value.cover === null ? null : { path: r.value.cover.path },
|
|
1761
|
+
is_visible: r.value.is_visible,
|
|
1772
1762
|
// Only when it was opened: a save of the rest of the form must not empty a card nobody
|
|
1773
1763
|
// looked at, and an untouched card is the rules being left in charge (§12).
|
|
1774
|
-
...S.value ? { seo:
|
|
1764
|
+
...S.value ? { seo: r.value.seo } : {}
|
|
1775
1765
|
};
|
|
1776
1766
|
}
|
|
1777
1767
|
async function I() {
|
|
1778
|
-
W.value = !0,
|
|
1768
|
+
W.value = !0, w.value = {};
|
|
1779
1769
|
try {
|
|
1780
|
-
const P =
|
|
1781
|
-
L.success(
|
|
1770
|
+
const P = o.rubric === null ? await a.createRubric(A()) : await a.saveRubric(o.rubric.id, A());
|
|
1771
|
+
L.success(o.rubric === null ? s("rubric.created") : s("rubric.saved")), y("saved", P);
|
|
1782
1772
|
} catch (P) {
|
|
1783
1773
|
const q = P.body;
|
|
1784
|
-
q?.errors && (
|
|
1774
|
+
q?.errors && (w.value = q.errors), L.danger(i(P));
|
|
1785
1775
|
} finally {
|
|
1786
1776
|
W.value = !1;
|
|
1787
1777
|
}
|
|
1788
1778
|
}
|
|
1789
|
-
async function
|
|
1790
|
-
if (!(
|
|
1791
|
-
title: s("rubric.delete-title", { name:
|
|
1779
|
+
async function H() {
|
|
1780
|
+
if (!(o.rubric === null || !await me({
|
|
1781
|
+
title: s("rubric.delete-title", { name: o.rubric.name }),
|
|
1792
1782
|
message: s("rubric.delete-text"),
|
|
1793
1783
|
confirmText: s("rubric.delete"),
|
|
1794
1784
|
cancelText: s("rubric.cancel"),
|
|
1795
1785
|
tone: "danger"
|
|
1796
1786
|
})))
|
|
1797
1787
|
try {
|
|
1798
|
-
await a.removeRubric(
|
|
1788
|
+
await a.removeRubric(o.rubric.id), L.success(s("rubric.deleted")), y("deleted");
|
|
1799
1789
|
} catch (q) {
|
|
1800
1790
|
L.danger(i(q));
|
|
1801
1791
|
}
|
|
1802
1792
|
}
|
|
1803
1793
|
return (P, q) => (p(), G("div", {
|
|
1804
|
-
class: Pe(["wx-rubric-form", { "is-pane":
|
|
1794
|
+
class: Pe(["wx-rubric-form", { "is-pane": o.inline }])
|
|
1805
1795
|
}, [
|
|
1806
|
-
j("div",
|
|
1807
|
-
|
|
1796
|
+
j("div", ya, [
|
|
1797
|
+
o.inline ? K("", !0) : (p(), z(e(Oe), {
|
|
1808
1798
|
key: 0,
|
|
1809
1799
|
icon: "arrow-left",
|
|
1810
1800
|
title: e(s)("rubric.back"),
|
|
1811
1801
|
onClick: q[0] || (q[0] = (k) => y("back"))
|
|
1812
1802
|
}, null, 8, ["title"])),
|
|
1813
|
-
n(e(
|
|
1803
|
+
n(e($t), {
|
|
1814
1804
|
level: 3,
|
|
1815
1805
|
truncate: ""
|
|
1816
1806
|
}, {
|
|
1817
1807
|
default: l(() => [
|
|
1818
|
-
|
|
1808
|
+
_(g(F.value), 1)
|
|
1819
1809
|
]),
|
|
1820
1810
|
_: 1
|
|
1821
1811
|
}),
|
|
1822
|
-
|
|
1812
|
+
o.rubric ? (p(), z(e(J), {
|
|
1823
1813
|
key: 1,
|
|
1824
1814
|
size: "sm",
|
|
1825
1815
|
tone: "muted"
|
|
1826
1816
|
}, {
|
|
1827
1817
|
default: l(() => [
|
|
1828
|
-
|
|
1818
|
+
_(g(e(s)("rubric.articles", { count: R.value })), 1)
|
|
1829
1819
|
]),
|
|
1830
1820
|
_: 1
|
|
1831
|
-
})) :
|
|
1821
|
+
})) : K("", !0),
|
|
1832
1822
|
q[10] || (q[10] = j("span", { class: "wx-rubric-form__spacer" }, null, -1)),
|
|
1833
|
-
|
|
1823
|
+
o.rubric && R.value > 0 ? (p(), z(e(Z), {
|
|
1834
1824
|
key: 2,
|
|
1835
1825
|
variant: "text",
|
|
1836
1826
|
size: "sm",
|
|
1837
|
-
onClick: q[1] || (q[1] = (k) => y("articles",
|
|
1827
|
+
onClick: q[1] || (q[1] = (k) => y("articles", o.rubric))
|
|
1838
1828
|
}, {
|
|
1839
1829
|
default: l(() => [
|
|
1840
|
-
|
|
1830
|
+
_(g(e(s)("rubric.show-articles")), 1)
|
|
1841
1831
|
]),
|
|
1842
1832
|
_: 1
|
|
1843
|
-
})) :
|
|
1833
|
+
})) : K("", !0)
|
|
1844
1834
|
]),
|
|
1845
|
-
j("div",
|
|
1846
|
-
j("div",
|
|
1847
|
-
n(e(
|
|
1835
|
+
j("div", wa, [
|
|
1836
|
+
j("div", _a, [
|
|
1837
|
+
n(e(ne), {
|
|
1848
1838
|
class: "wx-rubric-form__title",
|
|
1849
1839
|
label: e(s)("rubric.field-title"),
|
|
1850
|
-
error:
|
|
1840
|
+
error: N("title"),
|
|
1851
1841
|
required: ""
|
|
1852
1842
|
}, {
|
|
1853
1843
|
default: l(() => [
|
|
1854
|
-
n(e(
|
|
1855
|
-
modelValue:
|
|
1856
|
-
"onUpdate:modelValue": q[2] || (q[2] = (k) =>
|
|
1844
|
+
n(e(Ve), {
|
|
1845
|
+
modelValue: r.value.title,
|
|
1846
|
+
"onUpdate:modelValue": q[2] || (q[2] = (k) => r.value.title = k),
|
|
1857
1847
|
localized: "",
|
|
1858
|
-
disabled:
|
|
1848
|
+
disabled: o.disabled
|
|
1859
1849
|
}, null, 8, ["modelValue", "disabled"])
|
|
1860
1850
|
]),
|
|
1861
1851
|
_: 1
|
|
1862
1852
|
}, 8, ["label", "error"]),
|
|
1863
|
-
n(e(
|
|
1853
|
+
n(e(ne), {
|
|
1864
1854
|
class: "wx-rubric-form__slug",
|
|
1865
1855
|
label: e(s)("rubric.field-slug"),
|
|
1866
|
-
error:
|
|
1856
|
+
error: N("slug"),
|
|
1867
1857
|
help: $.value ?? e(s)("rubric.no-address")
|
|
1868
1858
|
}, {
|
|
1869
1859
|
default: l(() => [
|
|
1870
|
-
n(e(
|
|
1871
|
-
modelValue:
|
|
1872
|
-
"onUpdate:modelValue": q[3] || (q[3] = (k) =>
|
|
1860
|
+
n(e(Ve), {
|
|
1861
|
+
modelValue: r.value.slug,
|
|
1862
|
+
"onUpdate:modelValue": q[3] || (q[3] = (k) => r.value.slug = k),
|
|
1873
1863
|
localized: "",
|
|
1874
|
-
disabled:
|
|
1864
|
+
disabled: o.disabled
|
|
1875
1865
|
}, null, 8, ["modelValue", "disabled"])
|
|
1876
1866
|
]),
|
|
1877
1867
|
_: 1
|
|
@@ -1882,68 +1872,68 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1882
1872
|
type: "info",
|
|
1883
1873
|
variant: "soft",
|
|
1884
1874
|
description: e(s)("rubric.address-moving")
|
|
1885
|
-
}, null, 8, ["description"])) :
|
|
1886
|
-
n(e(
|
|
1875
|
+
}, null, 8, ["description"])) : K("", !0),
|
|
1876
|
+
n(e(ne), {
|
|
1887
1877
|
label: e(s)("rubric.field-lead"),
|
|
1888
1878
|
help: e(s)("rubric.lead-help"),
|
|
1889
1879
|
wide: ""
|
|
1890
1880
|
}, {
|
|
1891
1881
|
default: l(() => [
|
|
1892
|
-
n(e(
|
|
1893
|
-
modelValue:
|
|
1894
|
-
"onUpdate:modelValue": q[4] || (q[4] = (k) =>
|
|
1882
|
+
n(e(Tt), {
|
|
1883
|
+
modelValue: r.value.lead,
|
|
1884
|
+
"onUpdate:modelValue": q[4] || (q[4] = (k) => r.value.lead = k),
|
|
1895
1885
|
localized: "",
|
|
1896
1886
|
rows: 3,
|
|
1897
|
-
disabled:
|
|
1887
|
+
disabled: o.disabled
|
|
1898
1888
|
}, null, 8, ["modelValue", "disabled"])
|
|
1899
1889
|
]),
|
|
1900
1890
|
_: 1
|
|
1901
1891
|
}, 8, ["label", "help"]),
|
|
1902
|
-
j("div",
|
|
1892
|
+
j("div", xa, [
|
|
1903
1893
|
x.value ? (p(), z(tt(x.value), {
|
|
1904
1894
|
key: 0,
|
|
1905
|
-
modelValue:
|
|
1906
|
-
"onUpdate:modelValue": q[5] || (q[5] = (k) =>
|
|
1895
|
+
modelValue: r.value.cover,
|
|
1896
|
+
"onUpdate:modelValue": q[5] || (q[5] = (k) => r.value.cover = k),
|
|
1907
1897
|
class: "wx-rubric-form__cover",
|
|
1908
1898
|
label: e(s)("rubric.field-cover"),
|
|
1909
1899
|
accept: "image",
|
|
1910
1900
|
captions: !1,
|
|
1911
1901
|
aspect: "16/9",
|
|
1912
|
-
disabled:
|
|
1913
|
-
}, null, 8, ["modelValue", "label", "disabled"])) :
|
|
1914
|
-
j("div",
|
|
1915
|
-
n(e(
|
|
1916
|
-
modelValue:
|
|
1917
|
-
"onUpdate:modelValue": q[6] || (q[6] = (k) =>
|
|
1902
|
+
disabled: o.disabled
|
|
1903
|
+
}, null, 8, ["modelValue", "label", "disabled"])) : K("", !0),
|
|
1904
|
+
j("div", ka, [
|
|
1905
|
+
n(e(Vt), {
|
|
1906
|
+
modelValue: r.value.is_visible,
|
|
1907
|
+
"onUpdate:modelValue": q[6] || (q[6] = (k) => r.value.is_visible = k),
|
|
1918
1908
|
label: e(s)("rubric.visible"),
|
|
1919
|
-
disabled:
|
|
1909
|
+
disabled: o.disabled
|
|
1920
1910
|
}, null, 8, ["modelValue", "label", "disabled"]),
|
|
1921
1911
|
n(e(J), {
|
|
1922
1912
|
size: "sm",
|
|
1923
1913
|
tone: "muted"
|
|
1924
1914
|
}, {
|
|
1925
1915
|
default: l(() => [
|
|
1926
|
-
|
|
1916
|
+
_(g(e(s)("rubric.visible-help")), 1)
|
|
1927
1917
|
]),
|
|
1928
1918
|
_: 1
|
|
1929
1919
|
})
|
|
1930
1920
|
])
|
|
1931
1921
|
]),
|
|
1932
|
-
T.value ? (p(), G("div",
|
|
1922
|
+
T.value ? (p(), G("div", $a, [
|
|
1933
1923
|
S.value ? (p(), z(tt(T.value), pt({
|
|
1934
1924
|
key: 1,
|
|
1935
|
-
modelValue:
|
|
1936
|
-
"onUpdate:modelValue": q[8] || (q[8] = (k) =>
|
|
1925
|
+
modelValue: r.value.seo,
|
|
1926
|
+
"onUpdate:modelValue": q[8] || (q[8] = (k) => r.value.seo = k)
|
|
1937
1927
|
}, c.value, {
|
|
1938
1928
|
"structured-data": !1,
|
|
1939
|
-
disabled:
|
|
1940
|
-
}), null, 16, ["modelValue", "disabled"])) : (p(), G(
|
|
1929
|
+
disabled: o.disabled
|
|
1930
|
+
}), null, 16, ["modelValue", "disabled"])) : (p(), G(be, { key: 0 }, [
|
|
1941
1931
|
n(e(J), {
|
|
1942
1932
|
size: "sm",
|
|
1943
1933
|
weight: "medium"
|
|
1944
1934
|
}, {
|
|
1945
1935
|
default: l(() => [
|
|
1946
|
-
|
|
1936
|
+
_(g(e(s)("rubric.seo")), 1)
|
|
1947
1937
|
]),
|
|
1948
1938
|
_: 1
|
|
1949
1939
|
}),
|
|
@@ -1952,37 +1942,37 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1952
1942
|
tone: "muted"
|
|
1953
1943
|
}, {
|
|
1954
1944
|
default: l(() => [
|
|
1955
|
-
|
|
1945
|
+
_(g(e(s)("rubric.seo-help")), 1)
|
|
1956
1946
|
]),
|
|
1957
1947
|
_: 1
|
|
1958
1948
|
}),
|
|
1959
1949
|
n(e(Z), {
|
|
1960
1950
|
variant: "text",
|
|
1961
1951
|
size: "sm",
|
|
1962
|
-
disabled:
|
|
1952
|
+
disabled: o.disabled,
|
|
1963
1953
|
onClick: q[7] || (q[7] = (k) => S.value = !0)
|
|
1964
1954
|
}, {
|
|
1965
1955
|
default: l(() => [
|
|
1966
|
-
|
|
1956
|
+
_(g(e(s)("rubric.seo-override", { name: F.value })), 1)
|
|
1967
1957
|
]),
|
|
1968
1958
|
_: 1
|
|
1969
1959
|
}, 8, ["disabled"])
|
|
1970
1960
|
], 64))
|
|
1971
|
-
])) :
|
|
1961
|
+
])) : K("", !0)
|
|
1972
1962
|
]),
|
|
1973
|
-
j("div",
|
|
1974
|
-
|
|
1963
|
+
j("div", Ta, [
|
|
1964
|
+
o.rubric ? (p(), G(be, { key: 0 }, [
|
|
1975
1965
|
n(e(Z), {
|
|
1976
1966
|
variant: "outline",
|
|
1977
1967
|
type: "danger",
|
|
1978
|
-
disabled:
|
|
1979
|
-
onClick:
|
|
1968
|
+
disabled: o.disabled || R.value > 0,
|
|
1969
|
+
onClick: H
|
|
1980
1970
|
}, {
|
|
1981
1971
|
icon: l(() => [
|
|
1982
1972
|
n(e(we), { name: "trash" })
|
|
1983
1973
|
]),
|
|
1984
1974
|
default: l(() => [
|
|
1985
|
-
|
|
1975
|
+
_(" " + g(e(s)("rubric.delete")), 1)
|
|
1986
1976
|
]),
|
|
1987
1977
|
_: 1
|
|
1988
1978
|
}, 8, ["disabled"]),
|
|
@@ -1992,45 +1982,45 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
1992
1982
|
tone: "muted"
|
|
1993
1983
|
}, {
|
|
1994
1984
|
default: l(() => [
|
|
1995
|
-
|
|
1985
|
+
_(g(e(s)("rubric.delete-blocked")), 1)
|
|
1996
1986
|
]),
|
|
1997
1987
|
_: 1
|
|
1998
|
-
})) :
|
|
1999
|
-
], 64)) :
|
|
1988
|
+
})) : K("", !0)
|
|
1989
|
+
], 64)) : K("", !0),
|
|
2000
1990
|
q[11] || (q[11] = j("span", { class: "wx-rubric-form__spacer" }, null, -1)),
|
|
2001
1991
|
n(e(Z), {
|
|
2002
1992
|
variant: "outline",
|
|
2003
1993
|
onClick: q[9] || (q[9] = (k) => y("back"))
|
|
2004
1994
|
}, {
|
|
2005
1995
|
default: l(() => [
|
|
2006
|
-
|
|
1996
|
+
_(g(e(s)("rubric.cancel")), 1)
|
|
2007
1997
|
]),
|
|
2008
1998
|
_: 1
|
|
2009
1999
|
}),
|
|
2010
2000
|
n(e(Z), {
|
|
2011
2001
|
type: "primary",
|
|
2012
2002
|
loading: W.value,
|
|
2013
|
-
disabled:
|
|
2003
|
+
disabled: o.disabled,
|
|
2014
2004
|
onClick: I
|
|
2015
2005
|
}, {
|
|
2016
2006
|
default: l(() => [
|
|
2017
|
-
|
|
2007
|
+
_(g(e(s)("rubric.save")), 1)
|
|
2018
2008
|
]),
|
|
2019
2009
|
_: 1
|
|
2020
2010
|
}, 8, ["loading", "disabled"])
|
|
2021
2011
|
])
|
|
2022
2012
|
], 2));
|
|
2023
2013
|
}
|
|
2024
|
-
}),
|
|
2014
|
+
}), Aa = /* @__PURE__ */ ve(Va, [["__scopeId", "data-v-ace40cf4"]]), Sa = ["onClick"], Wa = { class: "wx-rubric-row__name" }, Ca = /* @__PURE__ */ ee({
|
|
2025
2015
|
__name: "RubricsPage",
|
|
2026
2016
|
props: {
|
|
2027
2017
|
base: { default: "/blog" }
|
|
2028
2018
|
},
|
|
2029
2019
|
setup(f) {
|
|
2030
|
-
const m = f,
|
|
2020
|
+
const m = f, o = se(), y = de(o), u = He(), a = Ke();
|
|
2031
2021
|
te();
|
|
2032
|
-
const t = Q("webx-blog"), s = ge(), i = C([]), x = C(""), T = C(!0), c = C(!1),
|
|
2033
|
-
() =>
|
|
2022
|
+
const t = Q("webx-blog"), s = ge(), i = C([]), x = C(""), T = C(!0), c = C(!1), r = C(!1), w = v(() => o.can("blog.taxonomy.manage")), W = v(
|
|
2023
|
+
() => o.state.manifest?.modules.find((k) => k.id === "rubrics")?.title ?? t("module.rubrics")
|
|
2034
2024
|
), S = v(() => {
|
|
2035
2025
|
const k = u.query.rubric;
|
|
2036
2026
|
return typeof k == "string" && k !== "" ? Number(k) : null;
|
|
@@ -2050,29 +2040,29 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2050
2040
|
k !== null && (c.value = !0);
|
|
2051
2041
|
});
|
|
2052
2042
|
function $(k) {
|
|
2053
|
-
|
|
2043
|
+
r.value = !1, a.replace({ query: { ...u.query, rubric: String(k.id) } }), c.value = !0;
|
|
2054
2044
|
}
|
|
2055
2045
|
function U() {
|
|
2056
|
-
|
|
2046
|
+
r.value = !0, R(), c.value = !0;
|
|
2057
2047
|
}
|
|
2058
2048
|
function R() {
|
|
2059
2049
|
const k = { ...u.query };
|
|
2060
2050
|
delete k.rubric, a.replace({ query: k });
|
|
2061
2051
|
}
|
|
2062
|
-
async function
|
|
2063
|
-
|
|
2052
|
+
async function N(k) {
|
|
2053
|
+
r.value = !1, await F(), a.replace({ query: { ...u.query, rubric: String(k.id) } });
|
|
2064
2054
|
}
|
|
2065
2055
|
async function A() {
|
|
2066
|
-
|
|
2056
|
+
r.value = !1, R(), c.value = !1, await F();
|
|
2067
2057
|
}
|
|
2068
2058
|
function I() {
|
|
2069
|
-
|
|
2059
|
+
r.value = !1, R(), c.value = !1;
|
|
2070
2060
|
}
|
|
2071
|
-
function
|
|
2061
|
+
function H(k) {
|
|
2072
2062
|
a.push({ path: `${m.base}/articles`, query: { rubric: String(k.id) } });
|
|
2073
2063
|
}
|
|
2074
2064
|
const P = v(
|
|
2075
|
-
() =>
|
|
2065
|
+
() => w.value ? [{ key: "new", label: t("rubric.new"), icon: "plus", primary: !0, run: () => {
|
|
2076
2066
|
U();
|
|
2077
2067
|
} }] : []
|
|
2078
2068
|
);
|
|
@@ -2090,12 +2080,12 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2090
2080
|
fill: ""
|
|
2091
2081
|
}, {
|
|
2092
2082
|
default: l(() => [
|
|
2093
|
-
n(e(
|
|
2083
|
+
n(e(At), {
|
|
2094
2084
|
class: "wx-rubrics",
|
|
2095
2085
|
padding: "none"
|
|
2096
2086
|
}, {
|
|
2097
2087
|
default: l(() => [
|
|
2098
|
-
n(e(
|
|
2088
|
+
n(e(St), {
|
|
2099
2089
|
open: c.value,
|
|
2100
2090
|
"onUpdate:open": le[1] || (le[1] = (O) => c.value = O),
|
|
2101
2091
|
class: "wx-rubrics__panes",
|
|
@@ -2121,7 +2111,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2121
2111
|
size: "sm",
|
|
2122
2112
|
"item-key": "id",
|
|
2123
2113
|
"item-label": (O) => O.name,
|
|
2124
|
-
disabled: !
|
|
2114
|
+
disabled: !w.value,
|
|
2125
2115
|
title: e(t)("rubric.order"),
|
|
2126
2116
|
onMove: q
|
|
2127
2117
|
}, {
|
|
@@ -2129,19 +2119,19 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2129
2119
|
j("button", {
|
|
2130
2120
|
type: "button",
|
|
2131
2121
|
class: Pe(["wx-rubric-row", { "is-current": O.id === S.value, "is-hidden": !O.is_visible }]),
|
|
2132
|
-
onClick: (
|
|
2122
|
+
onClick: (re) => $(O)
|
|
2133
2123
|
}, [
|
|
2134
|
-
j("span",
|
|
2124
|
+
j("span", Wa, [
|
|
2135
2125
|
n(e(J), {
|
|
2136
2126
|
truncate: "",
|
|
2137
2127
|
weight: "medium"
|
|
2138
2128
|
}, {
|
|
2139
2129
|
default: l(() => [
|
|
2140
|
-
|
|
2130
|
+
_(g(O.name), 1)
|
|
2141
2131
|
]),
|
|
2142
2132
|
_: 2
|
|
2143
2133
|
}, 1024),
|
|
2144
|
-
O.is_visible ?
|
|
2134
|
+
O.is_visible ? K("", !0) : (p(), z(e(et), {
|
|
2145
2135
|
key: 0,
|
|
2146
2136
|
content: e(t)("rubric.hidden")
|
|
2147
2137
|
}, {
|
|
@@ -2160,11 +2150,11 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2160
2150
|
truncate: ""
|
|
2161
2151
|
}, {
|
|
2162
2152
|
default: l(() => [
|
|
2163
|
-
|
|
2153
|
+
_(g(O.path === null ? e(t)("rubric.no-address") : `/${O.path}`), 1)
|
|
2164
2154
|
]),
|
|
2165
2155
|
_: 2
|
|
2166
2156
|
}, 1024)
|
|
2167
|
-
], 10,
|
|
2157
|
+
], 10, Sa)
|
|
2168
2158
|
]),
|
|
2169
2159
|
actions: l(({ item: O }) => [
|
|
2170
2160
|
n(e(J), {
|
|
@@ -2173,7 +2163,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2173
2163
|
tone: "muted"
|
|
2174
2164
|
}, {
|
|
2175
2165
|
default: l(() => [
|
|
2176
|
-
|
|
2166
|
+
_(g(O.articles_count), 1)
|
|
2177
2167
|
]),
|
|
2178
2168
|
_: 2
|
|
2179
2169
|
}, 1024)
|
|
@@ -2186,20 +2176,20 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2186
2176
|
description: e(t)("rubric.choose")
|
|
2187
2177
|
}, null, 8, ["description"])
|
|
2188
2178
|
]),
|
|
2189
|
-
detail: l(({ inline: O, back:
|
|
2190
|
-
|
|
2191
|
-
key:
|
|
2192
|
-
rubric:
|
|
2179
|
+
detail: l(({ inline: O, back: re }) => [
|
|
2180
|
+
r.value || E.value ? (p(), z(Aa, {
|
|
2181
|
+
key: r.value ? "new" : String(E.value?.id),
|
|
2182
|
+
rubric: r.value ? null : E.value,
|
|
2193
2183
|
prefix: x.value,
|
|
2194
2184
|
inline: O,
|
|
2195
|
-
disabled: !
|
|
2185
|
+
disabled: !w.value,
|
|
2196
2186
|
onBack: () => {
|
|
2197
|
-
|
|
2187
|
+
re(), I();
|
|
2198
2188
|
},
|
|
2199
|
-
onArticles:
|
|
2200
|
-
onSaved:
|
|
2189
|
+
onArticles: H,
|
|
2190
|
+
onSaved: N,
|
|
2201
2191
|
onDeleted: A
|
|
2202
|
-
}, null, 8, ["rubric", "prefix", "inline", "disabled", "onBack"])) :
|
|
2192
|
+
}, null, 8, ["rubric", "prefix", "inline", "disabled", "onBack"])) : K("", !0)
|
|
2203
2193
|
]),
|
|
2204
2194
|
_: 1
|
|
2205
2195
|
}, 8, ["open", "detail-label"])
|
|
@@ -2210,33 +2200,33 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2210
2200
|
_: 1
|
|
2211
2201
|
}, 8, ["title", "actions"]));
|
|
2212
2202
|
}
|
|
2213
|
-
}),
|
|
2203
|
+
}), za = /* @__PURE__ */ ee({
|
|
2214
2204
|
__name: "TagCreateDialog",
|
|
2215
2205
|
setup(f) {
|
|
2216
|
-
const { open: m, resolve:
|
|
2206
|
+
const { open: m, resolve: o, dismiss: y } = Ee(), u = se(), a = de(u);
|
|
2217
2207
|
te();
|
|
2218
2208
|
const t = Q("webx-blog"), s = C(""), i = C(""), x = C(!1), T = C({}), c = De("field");
|
|
2219
2209
|
Ne(async () => {
|
|
2220
2210
|
await Ze(), c.value?.querySelector("input")?.focus();
|
|
2221
2211
|
});
|
|
2222
|
-
async function
|
|
2212
|
+
async function r() {
|
|
2223
2213
|
if (!(s.value.trim() === "" || x.value)) {
|
|
2224
2214
|
x.value = !0, T.value = {};
|
|
2225
2215
|
try {
|
|
2226
|
-
|
|
2216
|
+
o(
|
|
2227
2217
|
await a.createTag({
|
|
2228
2218
|
title: s.value.trim(),
|
|
2229
2219
|
...i.value.trim() === "" ? {} : { slug: i.value.trim() }
|
|
2230
2220
|
})
|
|
2231
2221
|
);
|
|
2232
|
-
} catch (
|
|
2233
|
-
T.value =
|
|
2222
|
+
} catch (w) {
|
|
2223
|
+
T.value = w.body?.errors ?? {};
|
|
2234
2224
|
} finally {
|
|
2235
2225
|
x.value = !1;
|
|
2236
2226
|
}
|
|
2237
2227
|
}
|
|
2238
2228
|
}
|
|
2239
|
-
return (
|
|
2229
|
+
return (w, W) => (p(), z(e(Fe), {
|
|
2240
2230
|
open: e(m),
|
|
2241
2231
|
"onUpdate:open": W[3] || (W[3] = (S) => Ie(m) ? m.value = S : null),
|
|
2242
2232
|
title: e(t)("tag.new-title"),
|
|
@@ -2250,7 +2240,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2250
2240
|
onClick: W[2] || (W[2] = (S) => e(y)())
|
|
2251
2241
|
}, {
|
|
2252
2242
|
default: l(() => [
|
|
2253
|
-
|
|
2243
|
+
_(g(e(t)("tag.cancel")), 1)
|
|
2254
2244
|
]),
|
|
2255
2245
|
_: 1
|
|
2256
2246
|
}),
|
|
@@ -2258,10 +2248,10 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2258
2248
|
type: "primary",
|
|
2259
2249
|
loading: x.value,
|
|
2260
2250
|
disabled: s.value.trim() === "",
|
|
2261
|
-
onClick:
|
|
2251
|
+
onClick: r
|
|
2262
2252
|
}, {
|
|
2263
2253
|
default: l(() => [
|
|
2264
|
-
|
|
2254
|
+
_(g(e(t)("tag.create")), 1)
|
|
2265
2255
|
]),
|
|
2266
2256
|
_: 1
|
|
2267
2257
|
}, 8, ["loading", "disabled"])
|
|
@@ -2270,7 +2260,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2270
2260
|
})
|
|
2271
2261
|
]),
|
|
2272
2262
|
default: l(() => [
|
|
2273
|
-
n(e(
|
|
2263
|
+
n(e(ne), {
|
|
2274
2264
|
label: e(t)("tag.field-title"),
|
|
2275
2265
|
error: T.value.title?.[0],
|
|
2276
2266
|
required: ""
|
|
@@ -2280,27 +2270,27 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2280
2270
|
ref_key: "field",
|
|
2281
2271
|
ref: c
|
|
2282
2272
|
}, [
|
|
2283
|
-
n(e(
|
|
2273
|
+
n(e(Ve), {
|
|
2284
2274
|
modelValue: s.value,
|
|
2285
2275
|
"onUpdate:modelValue": W[0] || (W[0] = (S) => s.value = S),
|
|
2286
2276
|
"aria-label": e(t)("tag.field-title"),
|
|
2287
|
-
onKeyup: ze(
|
|
2277
|
+
onKeyup: ze(r, ["enter"])
|
|
2288
2278
|
}, null, 8, ["modelValue", "aria-label"])
|
|
2289
2279
|
], 512)
|
|
2290
2280
|
]),
|
|
2291
2281
|
_: 1
|
|
2292
2282
|
}, 8, ["label", "error"]),
|
|
2293
|
-
n(e(
|
|
2283
|
+
n(e(ne), {
|
|
2294
2284
|
label: e(t)("tag.field-slug"),
|
|
2295
2285
|
error: T.value.slug?.[0],
|
|
2296
2286
|
help: e(t)("tag.field-slug-help")
|
|
2297
2287
|
}, {
|
|
2298
2288
|
default: l(() => [
|
|
2299
|
-
n(e(
|
|
2289
|
+
n(e(Ve), {
|
|
2300
2290
|
modelValue: i.value,
|
|
2301
2291
|
"onUpdate:modelValue": W[1] || (W[1] = (S) => i.value = S),
|
|
2302
2292
|
"aria-label": e(t)("tag.field-slug"),
|
|
2303
|
-
onKeyup: ze(
|
|
2293
|
+
onKeyup: ze(r, ["enter"])
|
|
2304
2294
|
}, null, 8, ["modelValue", "aria-label"])
|
|
2305
2295
|
]),
|
|
2306
2296
|
_: 1
|
|
@@ -2309,13 +2299,13 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2309
2299
|
_: 1
|
|
2310
2300
|
}, 8, ["open", "title"]));
|
|
2311
2301
|
}
|
|
2312
|
-
}),
|
|
2302
|
+
}), Ra = ["id"], Ua = /* @__PURE__ */ ee({
|
|
2313
2303
|
__name: "TagRenameDialog",
|
|
2314
2304
|
props: {
|
|
2315
2305
|
name: {}
|
|
2316
2306
|
},
|
|
2317
2307
|
setup(f) {
|
|
2318
|
-
const m = f, { open:
|
|
2308
|
+
const m = f, { open: o, resolve: y, dismiss: u } = Ee();
|
|
2319
2309
|
te();
|
|
2320
2310
|
const a = Q("webx-blog"), t = Q("webx-admin"), s = ft(), i = C(m.name), x = De("field");
|
|
2321
2311
|
Ne(async () => {
|
|
@@ -2331,9 +2321,9 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2331
2321
|
}
|
|
2332
2322
|
y(c);
|
|
2333
2323
|
}
|
|
2334
|
-
return (c,
|
|
2335
|
-
open: e(
|
|
2336
|
-
"onUpdate:open":
|
|
2324
|
+
return (c, r) => (p(), z(e(Fe), {
|
|
2325
|
+
open: e(o),
|
|
2326
|
+
"onUpdate:open": r[2] || (r[2] = (w) => Ie(o) ? o.value = w : null),
|
|
2337
2327
|
title: e(a)("tag.rename"),
|
|
2338
2328
|
width: 420
|
|
2339
2329
|
}, {
|
|
@@ -2342,10 +2332,10 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2342
2332
|
default: l(() => [
|
|
2343
2333
|
n(e(Z), {
|
|
2344
2334
|
variant: "outline",
|
|
2345
|
-
onClick:
|
|
2335
|
+
onClick: r[1] || (r[1] = (w) => e(u)())
|
|
2346
2336
|
}, {
|
|
2347
2337
|
default: l(() => [
|
|
2348
|
-
|
|
2338
|
+
_(g(e(a)("tag.cancel")), 1)
|
|
2349
2339
|
]),
|
|
2350
2340
|
_: 1
|
|
2351
2341
|
}),
|
|
@@ -2356,7 +2346,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2356
2346
|
disabled: i.value.trim() === ""
|
|
2357
2347
|
}, {
|
|
2358
2348
|
default: l(() => [
|
|
2359
|
-
|
|
2349
|
+
_(g(e(t)("editor.save")), 1)
|
|
2360
2350
|
]),
|
|
2361
2351
|
_: 1
|
|
2362
2352
|
}, 8, ["form", "disabled"])
|
|
@@ -2371,41 +2361,41 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2371
2361
|
ref: x,
|
|
2372
2362
|
onSubmit: at(T, ["prevent"])
|
|
2373
2363
|
}, [
|
|
2374
|
-
n(e(
|
|
2364
|
+
n(e(ne), {
|
|
2375
2365
|
label: e(a)("tag.field-title"),
|
|
2376
2366
|
required: ""
|
|
2377
2367
|
}, {
|
|
2378
2368
|
default: l(() => [
|
|
2379
|
-
n(e(
|
|
2369
|
+
n(e(Ve), {
|
|
2380
2370
|
modelValue: i.value,
|
|
2381
|
-
"onUpdate:modelValue":
|
|
2371
|
+
"onUpdate:modelValue": r[0] || (r[0] = (w) => i.value = w),
|
|
2382
2372
|
"aria-label": e(a)("tag.field-title"),
|
|
2383
2373
|
onKeydown: ze(at(T, ["prevent"]), ["enter"])
|
|
2384
2374
|
}, null, 8, ["modelValue", "aria-label", "onKeydown"])
|
|
2385
2375
|
]),
|
|
2386
2376
|
_: 1
|
|
2387
2377
|
}, 8, ["label"])
|
|
2388
|
-
], 40,
|
|
2378
|
+
], 40, Ra)
|
|
2389
2379
|
]),
|
|
2390
2380
|
_: 1
|
|
2391
2381
|
}, 8, ["open", "title"]));
|
|
2392
2382
|
}
|
|
2393
|
-
}),
|
|
2383
|
+
}), qa = { class: "wx-tag-merge" }, Ma = { class: "wx-tag-merge__chips" }, Na = { class: "wx-tag-merge__redirect" }, Ba = /* @__PURE__ */ ee({
|
|
2394
2384
|
__name: "TagMergeDialog",
|
|
2395
2385
|
props: {
|
|
2396
2386
|
tags: {}
|
|
2397
2387
|
},
|
|
2398
2388
|
setup(f) {
|
|
2399
|
-
const m = f, { open:
|
|
2389
|
+
const m = f, { open: o, resolve: y, dismiss: u } = Ee(), a = se(), t = de(a);
|
|
2400
2390
|
te();
|
|
2401
2391
|
const s = Q("webx-blog"), i = ge(), x = C(
|
|
2402
2392
|
[...m.tags].sort((U, R) => R.articles_count - U.articles_count)[0]?.id ?? 0
|
|
2403
|
-
), T = C(!1), c = C(!0),
|
|
2393
|
+
), T = C(!1), c = C(!0), r = C(null), w = v(
|
|
2404
2394
|
() => m.tags.map((U) => ({ value: U.id, label: `${U.title} · ${U.articles_count}` }))
|
|
2405
2395
|
), W = v(() => m.tags.find((U) => U.id === x.value) ?? null), S = v(() => m.tags.filter((U) => U.id !== x.value)), E = v(() => S.value.reduce((U, R) => U + R.articles_count, 0)), F = v(() => S.value.map((U) => U.path).filter(Boolean));
|
|
2406
2396
|
async function $() {
|
|
2407
2397
|
if (!(W.value === null || S.value.length === 0 || T.value)) {
|
|
2408
|
-
T.value = !0,
|
|
2398
|
+
T.value = !0, r.value = null;
|
|
2409
2399
|
try {
|
|
2410
2400
|
y(
|
|
2411
2401
|
await t.mergeTags(
|
|
@@ -2415,15 +2405,15 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2415
2405
|
)
|
|
2416
2406
|
);
|
|
2417
2407
|
} catch (U) {
|
|
2418
|
-
|
|
2408
|
+
r.value = i(U);
|
|
2419
2409
|
} finally {
|
|
2420
2410
|
T.value = !1;
|
|
2421
2411
|
}
|
|
2422
2412
|
}
|
|
2423
2413
|
}
|
|
2424
2414
|
return (U, R) => (p(), z(e(Fe), {
|
|
2425
|
-
open: e(
|
|
2426
|
-
"onUpdate:open": R[3] || (R[3] = (
|
|
2415
|
+
open: e(o),
|
|
2416
|
+
"onUpdate:open": R[3] || (R[3] = (N) => Ie(o) ? o.value = N : null),
|
|
2427
2417
|
title: e(s)("tag.merge-title"),
|
|
2428
2418
|
width: 520
|
|
2429
2419
|
}, {
|
|
@@ -2432,10 +2422,10 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2432
2422
|
default: l(() => [
|
|
2433
2423
|
n(e(Z), {
|
|
2434
2424
|
variant: "outline",
|
|
2435
|
-
onClick: R[2] || (R[2] = (
|
|
2425
|
+
onClick: R[2] || (R[2] = (N) => e(u)())
|
|
2436
2426
|
}, {
|
|
2437
2427
|
default: l(() => [
|
|
2438
|
-
|
|
2428
|
+
_(g(e(s)("tag.cancel")), 1)
|
|
2439
2429
|
]),
|
|
2440
2430
|
_: 1
|
|
2441
2431
|
}),
|
|
@@ -2446,7 +2436,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2446
2436
|
onClick: $
|
|
2447
2437
|
}, {
|
|
2448
2438
|
default: l(() => [
|
|
2449
|
-
|
|
2439
|
+
_(g(e(s)("tag.merge-confirm")), 1)
|
|
2450
2440
|
]),
|
|
2451
2441
|
_: 1
|
|
2452
2442
|
}, 8, ["loading", "disabled"])
|
|
@@ -2455,15 +2445,15 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2455
2445
|
})
|
|
2456
2446
|
]),
|
|
2457
2447
|
default: l(() => [
|
|
2458
|
-
j("div",
|
|
2459
|
-
j("div",
|
|
2460
|
-
(p(!0), G(
|
|
2461
|
-
key:
|
|
2448
|
+
j("div", qa, [
|
|
2449
|
+
j("div", Ma, [
|
|
2450
|
+
(p(!0), G(be, null, Be(S.value, (N) => (p(), z(e(ie), {
|
|
2451
|
+
key: N.id,
|
|
2462
2452
|
size: "sm",
|
|
2463
2453
|
round: ""
|
|
2464
2454
|
}, {
|
|
2465
2455
|
default: l(() => [
|
|
2466
|
-
|
|
2456
|
+
_(g(N.title) + " · " + g(N.articles_count), 1)
|
|
2467
2457
|
]),
|
|
2468
2458
|
_: 2
|
|
2469
2459
|
}, 1024))), 128)),
|
|
@@ -2471,35 +2461,35 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2471
2461
|
name: "arrow-right",
|
|
2472
2462
|
size: "sm"
|
|
2473
2463
|
}),
|
|
2474
|
-
W.value ? (p(), z(e(
|
|
2464
|
+
W.value ? (p(), z(e(ie), {
|
|
2475
2465
|
key: 0,
|
|
2476
2466
|
type: "primary",
|
|
2477
2467
|
size: "sm",
|
|
2478
2468
|
round: ""
|
|
2479
2469
|
}, {
|
|
2480
2470
|
default: l(() => [
|
|
2481
|
-
|
|
2471
|
+
_(g(W.value.title) + " · " + g(W.value.articles_count), 1)
|
|
2482
2472
|
]),
|
|
2483
2473
|
_: 1
|
|
2484
|
-
})) :
|
|
2474
|
+
})) : K("", !0)
|
|
2485
2475
|
]),
|
|
2486
|
-
n(e(
|
|
2476
|
+
n(e(ne), {
|
|
2487
2477
|
label: e(s)("tag.merge-keep")
|
|
2488
2478
|
}, {
|
|
2489
2479
|
default: l(() => [
|
|
2490
2480
|
n(e(_e), {
|
|
2491
2481
|
modelValue: x.value,
|
|
2492
|
-
"onUpdate:modelValue": R[0] || (R[0] = (
|
|
2493
|
-
options:
|
|
2482
|
+
"onUpdate:modelValue": R[0] || (R[0] = (N) => x.value = N),
|
|
2483
|
+
options: w.value,
|
|
2494
2484
|
"aria-label": e(s)("tag.merge-keep")
|
|
2495
2485
|
}, null, 8, ["modelValue", "options", "aria-label"])
|
|
2496
2486
|
]),
|
|
2497
2487
|
_: 1
|
|
2498
2488
|
}, 8, ["label"]),
|
|
2499
|
-
j("div",
|
|
2500
|
-
n(e(
|
|
2489
|
+
j("div", Na, [
|
|
2490
|
+
n(e(Wt), {
|
|
2501
2491
|
modelValue: c.value,
|
|
2502
|
-
"onUpdate:modelValue": R[1] || (R[1] = (
|
|
2492
|
+
"onUpdate:modelValue": R[1] || (R[1] = (N) => c.value = N),
|
|
2503
2493
|
label: e(s)("tag.merge-redirect")
|
|
2504
2494
|
}, null, 8, ["modelValue", "label"]),
|
|
2505
2495
|
n(e(J), {
|
|
@@ -2507,7 +2497,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2507
2497
|
tone: "muted"
|
|
2508
2498
|
}, {
|
|
2509
2499
|
default: l(() => [
|
|
2510
|
-
|
|
2500
|
+
_(g(F.value.length === 0 ? e(s)("tag.merge-redirect-none") : e(s)("tag.merge-redirect-help", { addresses: F.value.join(", ") })), 1)
|
|
2511
2501
|
]),
|
|
2512
2502
|
_: 1
|
|
2513
2503
|
})
|
|
@@ -2521,39 +2511,39 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2521
2511
|
merged: S.value.length
|
|
2522
2512
|
})
|
|
2523
2513
|
}, null, 8, ["description"]),
|
|
2524
|
-
|
|
2514
|
+
r.value ? (p(), z(e(We), {
|
|
2525
2515
|
key: 0,
|
|
2526
2516
|
type: "danger",
|
|
2527
2517
|
variant: "soft",
|
|
2528
|
-
description:
|
|
2529
|
-
}, null, 8, ["description"])) :
|
|
2518
|
+
description: r.value
|
|
2519
|
+
}, null, 8, ["description"])) : K("", !0)
|
|
2530
2520
|
])
|
|
2531
2521
|
]),
|
|
2532
2522
|
_: 1
|
|
2533
2523
|
}, 8, ["open", "title"]));
|
|
2534
2524
|
}
|
|
2535
|
-
}),
|
|
2525
|
+
}), Pa = /* @__PURE__ */ ve(Ba, [["__scopeId", "data-v-aa68b3a8"]]), Da = { class: "wx-tags" }, Ia = /* @__PURE__ */ ee({
|
|
2536
2526
|
__name: "TagsPage",
|
|
2537
2527
|
props: {
|
|
2538
2528
|
base: { default: "/blog" }
|
|
2539
2529
|
},
|
|
2540
2530
|
setup(f) {
|
|
2541
|
-
const m = f,
|
|
2531
|
+
const m = f, o = se(), y = de(o), u = He(), a = Ke();
|
|
2542
2532
|
te();
|
|
2543
|
-
const t = Q("webx-blog"), s = ge(), i = C(null), x = C(!0), T = C([]), c = C(!1),
|
|
2544
|
-
() =>
|
|
2533
|
+
const t = Q("webx-blog"), s = ge(), i = C(null), x = C(!0), T = C([]), c = C(!1), r = Ce(Ua), w = Ce(za), W = Ce(Pa), S = v(() => o.can("blog.taxonomy.manage")), E = v(
|
|
2534
|
+
() => o.state.manifest?.modules.find((b) => b.id === "tags")?.title ?? t("module.tags")
|
|
2545
2535
|
), F = v({
|
|
2546
2536
|
get: () => typeof u.query.view == "string" ? u.query.view : "",
|
|
2547
|
-
set: (
|
|
2537
|
+
set: (b) => {
|
|
2548
2538
|
a.replace({
|
|
2549
|
-
query: { ...u.query, view:
|
|
2539
|
+
query: { ...u.query, view: b === "" ? void 0 : String(b), page: void 0 }
|
|
2550
2540
|
});
|
|
2551
2541
|
}
|
|
2552
2542
|
}), $ = v(() => i.value?.filters ?? { total: 0, empty: 0, noindex: 0 }), U = v(() => [
|
|
2553
2543
|
{ value: "", label: t("tag.view-all"), badge: $.value.total },
|
|
2554
2544
|
{ value: "empty", label: t("tag.view-empty"), badge: $.value.empty },
|
|
2555
2545
|
{ value: "noindex", label: t("tag.view-noindex"), badge: $.value.noindex }
|
|
2556
|
-
]), R = v(() => i.value?.data ?? []),
|
|
2546
|
+
]), R = v(() => i.value?.data ?? []), N = v(() => R.value.filter((b) => T.value.includes(b.id))), A = v(() => [
|
|
2557
2547
|
{ key: "title", label: t("tag.column-title"), minWidth: 150, sortable: !0 },
|
|
2558
2548
|
// The number is what the other columns and the narrowest the title may be add up to without
|
|
2559
2549
|
// this one: below it the address is what does not fit, and a fixed table does not shrink —
|
|
@@ -2573,65 +2563,65 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2573
2563
|
{ key: "indexing", label: t("tag.column-indexing"), width: 230, hideBelow: 560 },
|
|
2574
2564
|
{ key: "actions", label: "", width: st, align: "right" }
|
|
2575
2565
|
]);
|
|
2576
|
-
function I(
|
|
2566
|
+
function I(b) {
|
|
2577
2567
|
return {
|
|
2578
|
-
q:
|
|
2568
|
+
q: b?.search ?? (typeof u.query.q == "string" ? u.query.q : ""),
|
|
2579
2569
|
empty: F.value === "empty",
|
|
2580
2570
|
noindex: F.value === "noindex",
|
|
2581
2571
|
// Only when it is not the default: most used first is what the list is, and a query
|
|
2582
2572
|
// string that repeats the default is a link that outlives a change of mind about it.
|
|
2583
|
-
sort: P(
|
|
2584
|
-
page:
|
|
2585
|
-
per_page:
|
|
2573
|
+
sort: P(b),
|
|
2574
|
+
page: b?.page ?? (Number(u.query.page ?? 1) || 1),
|
|
2575
|
+
per_page: b?.perPage
|
|
2586
2576
|
};
|
|
2587
2577
|
}
|
|
2588
|
-
async function
|
|
2578
|
+
async function H(b) {
|
|
2589
2579
|
x.value = !0;
|
|
2590
2580
|
try {
|
|
2591
|
-
i.value = await y.tagsPage(I(
|
|
2592
|
-
} catch (
|
|
2593
|
-
L.danger(s(
|
|
2581
|
+
i.value = await y.tagsPage(I(b));
|
|
2582
|
+
} catch (M) {
|
|
2583
|
+
L.danger(s(M));
|
|
2594
2584
|
} finally {
|
|
2595
2585
|
x.value = !1;
|
|
2596
2586
|
}
|
|
2597
2587
|
}
|
|
2598
|
-
function P(
|
|
2599
|
-
const
|
|
2600
|
-
if (!
|
|
2601
|
-
const B =
|
|
2588
|
+
function P(b) {
|
|
2589
|
+
const M = b?.sort ?? q();
|
|
2590
|
+
if (!M) return;
|
|
2591
|
+
const B = M.key === "title" ? "name" : "articles", X = `${M.order === "desc" ? "-" : ""}${B}`;
|
|
2602
2592
|
return X === "articles" ? void 0 : X;
|
|
2603
2593
|
}
|
|
2604
2594
|
function q() {
|
|
2605
|
-
const
|
|
2606
|
-
if (
|
|
2607
|
-
const
|
|
2608
|
-
return { key: (
|
|
2595
|
+
const b = typeof u.query.sort == "string" ? u.query.sort : "";
|
|
2596
|
+
if (b === "") return null;
|
|
2597
|
+
const M = b.startsWith("-");
|
|
2598
|
+
return { key: (M ? b.slice(1) : b) === "name" ? "title" : "articles_count", order: M ? "desc" : "asc" };
|
|
2609
2599
|
}
|
|
2610
|
-
function k(
|
|
2611
|
-
const
|
|
2600
|
+
function k(b) {
|
|
2601
|
+
const M = {
|
|
2612
2602
|
...u.query,
|
|
2613
|
-
q:
|
|
2614
|
-
sort: P(
|
|
2615
|
-
page:
|
|
2603
|
+
q: b.search === "" ? void 0 : b.search,
|
|
2604
|
+
sort: P(b),
|
|
2605
|
+
page: b.page === 1 ? void 0 : String(b.page)
|
|
2616
2606
|
};
|
|
2617
|
-
a.replace({ query:
|
|
2607
|
+
a.replace({ query: M }), H(b);
|
|
2618
2608
|
}
|
|
2619
2609
|
ue(F, () => {
|
|
2620
|
-
T.value = [],
|
|
2621
|
-
}),
|
|
2610
|
+
T.value = [], H();
|
|
2611
|
+
}), H();
|
|
2622
2612
|
async function le() {
|
|
2623
|
-
await
|
|
2613
|
+
await w({}) && await H();
|
|
2624
2614
|
}
|
|
2625
|
-
async function O(
|
|
2626
|
-
const
|
|
2627
|
-
|
|
2615
|
+
async function O(b) {
|
|
2616
|
+
const M = await r({ name: b.title });
|
|
2617
|
+
M && await xe(b, { title: M }, t("tag.renamed"));
|
|
2628
2618
|
}
|
|
2629
|
-
async function
|
|
2630
|
-
await xe(
|
|
2619
|
+
async function re(b, M) {
|
|
2620
|
+
await xe(b, { noindex: M }, t(M ? "tag.kept-out" : "tag.indexed"));
|
|
2631
2621
|
}
|
|
2632
|
-
async function xe(
|
|
2622
|
+
async function xe(b, M, B) {
|
|
2633
2623
|
try {
|
|
2634
|
-
const X = await y.saveTag(
|
|
2624
|
+
const X = await y.saveTag(b.id, M);
|
|
2635
2625
|
i.value && (i.value = {
|
|
2636
2626
|
...i.value,
|
|
2637
2627
|
data: i.value.data.map((ye) => ye.id === X.id ? X : ye)
|
|
@@ -2640,16 +2630,16 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2640
2630
|
L.danger(s(X));
|
|
2641
2631
|
}
|
|
2642
2632
|
}
|
|
2643
|
-
async function ce(
|
|
2644
|
-
if (await
|
|
2645
|
-
title: t("tag.delete-title", { title:
|
|
2646
|
-
message:
|
|
2633
|
+
async function ce(b) {
|
|
2634
|
+
if (await me({
|
|
2635
|
+
title: t("tag.delete-title", { title: b.title }),
|
|
2636
|
+
message: b.articles_count > 0 ? t("tag.delete-text-used", { count: b.articles_count }) : t("tag.delete-text"),
|
|
2647
2637
|
confirmText: t("tag.delete"),
|
|
2648
2638
|
cancelText: t("tag.cancel"),
|
|
2649
2639
|
tone: "danger"
|
|
2650
2640
|
}))
|
|
2651
2641
|
try {
|
|
2652
|
-
await y.removeTag(
|
|
2642
|
+
await y.removeTag(b.id), L.success(t("tag.deleted")), T.value = T.value.filter((B) => B !== b.id), await H();
|
|
2653
2643
|
} catch (B) {
|
|
2654
2644
|
L.danger(s(B));
|
|
2655
2645
|
}
|
|
@@ -2661,7 +2651,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2661
2651
|
label: t("tag.index"),
|
|
2662
2652
|
disabled: c.value,
|
|
2663
2653
|
run: () => {
|
|
2664
|
-
|
|
2654
|
+
oe("index");
|
|
2665
2655
|
}
|
|
2666
2656
|
},
|
|
2667
2657
|
{
|
|
@@ -2670,7 +2660,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2670
2660
|
label: t("tag.noindex"),
|
|
2671
2661
|
disabled: c.value,
|
|
2672
2662
|
run: () => {
|
|
2673
|
-
|
|
2663
|
+
oe("noindex");
|
|
2674
2664
|
}
|
|
2675
2665
|
},
|
|
2676
2666
|
{
|
|
@@ -2680,70 +2670,70 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2680
2670
|
danger: !0,
|
|
2681
2671
|
disabled: c.value,
|
|
2682
2672
|
run: () => {
|
|
2683
|
-
|
|
2673
|
+
oe("delete");
|
|
2684
2674
|
}
|
|
2685
2675
|
}
|
|
2686
2676
|
]);
|
|
2687
|
-
function
|
|
2677
|
+
function Se(b) {
|
|
2688
2678
|
if (!S.value) return [];
|
|
2689
|
-
const
|
|
2679
|
+
const M = [
|
|
2690
2680
|
{ key: "rename", icon: "edit", label: t("tag.rename"), run: () => {
|
|
2691
|
-
O(
|
|
2681
|
+
O(b);
|
|
2692
2682
|
} }
|
|
2693
2683
|
];
|
|
2694
|
-
return
|
|
2684
|
+
return b.url && M.push({
|
|
2695
2685
|
key: "site",
|
|
2696
2686
|
icon: "external-link",
|
|
2697
2687
|
label: t("tag.open-on-site"),
|
|
2698
|
-
href:
|
|
2699
|
-
}),
|
|
2688
|
+
href: b.url
|
|
2689
|
+
}), M.push({
|
|
2700
2690
|
key: "articles",
|
|
2701
2691
|
icon: "list",
|
|
2702
2692
|
label: t("tag.show-articles"),
|
|
2703
2693
|
run: () => {
|
|
2704
|
-
a.push({ path: `${m.base}/articles`, query: { tag: String(
|
|
2694
|
+
a.push({ path: `${m.base}/articles`, query: { tag: String(b.id) } });
|
|
2705
2695
|
}
|
|
2706
|
-
}),
|
|
2707
|
-
|
|
2696
|
+
}), M.push(
|
|
2697
|
+
b.noindex ? {
|
|
2708
2698
|
key: "index",
|
|
2709
2699
|
icon: "eye",
|
|
2710
2700
|
label: t("tag.index"),
|
|
2711
2701
|
run: () => {
|
|
2712
|
-
|
|
2702
|
+
re(b, !1);
|
|
2713
2703
|
}
|
|
2714
2704
|
} : {
|
|
2715
2705
|
key: "noindex",
|
|
2716
2706
|
icon: "eye-off",
|
|
2717
2707
|
label: t("tag.noindex"),
|
|
2718
2708
|
run: () => {
|
|
2719
|
-
|
|
2709
|
+
re(b, !0);
|
|
2720
2710
|
}
|
|
2721
2711
|
}
|
|
2722
|
-
),
|
|
2712
|
+
), M.push({
|
|
2723
2713
|
key: "delete",
|
|
2724
2714
|
icon: "trash",
|
|
2725
2715
|
label: t("tag.delete"),
|
|
2726
2716
|
danger: !0,
|
|
2727
2717
|
run: () => {
|
|
2728
|
-
ce(
|
|
2718
|
+
ce(b);
|
|
2729
2719
|
}
|
|
2730
|
-
}),
|
|
2731
|
-
}
|
|
2732
|
-
function ke(
|
|
2733
|
-
return
|
|
2734
|
-
}
|
|
2735
|
-
async function
|
|
2736
|
-
if (
|
|
2737
|
-
const
|
|
2738
|
-
|
|
2739
|
-
}
|
|
2740
|
-
async function
|
|
2741
|
-
const
|
|
2742
|
-
if (!(
|
|
2743
|
-
if (
|
|
2744
|
-
const B =
|
|
2745
|
-
if (!await
|
|
2746
|
-
title: t("tag.delete-many-title", { count:
|
|
2720
|
+
}), M;
|
|
2721
|
+
}
|
|
2722
|
+
function ke(b) {
|
|
2723
|
+
return b === "noindex" ? "muted" : "success";
|
|
2724
|
+
}
|
|
2725
|
+
async function pe() {
|
|
2726
|
+
if (N.value.length < 2) return;
|
|
2727
|
+
const b = await W({ tags: N.value });
|
|
2728
|
+
b && (L.success(t("tag.merged", { tag: b.tag.title, count: b.articles_count })), T.value = [], await H());
|
|
2729
|
+
}
|
|
2730
|
+
async function oe(b) {
|
|
2731
|
+
const M = N.value.map((B) => B.id);
|
|
2732
|
+
if (!(M.length === 0 || c.value)) {
|
|
2733
|
+
if (b === "delete") {
|
|
2734
|
+
const B = N.value.reduce((ye, d) => ye + d.articles_count, 0);
|
|
2735
|
+
if (!await me({
|
|
2736
|
+
title: t("tag.delete-many-title", { count: M.length }),
|
|
2747
2737
|
message: B > 0 ? t("tag.delete-many-text-used", { count: B }) : t("tag.delete-many-text"),
|
|
2748
2738
|
confirmText: t("tag.delete"),
|
|
2749
2739
|
cancelText: t("tag.cancel"),
|
|
@@ -2752,10 +2742,10 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2752
2742
|
}
|
|
2753
2743
|
c.value = !0;
|
|
2754
2744
|
try {
|
|
2755
|
-
const B = await y.massTags(
|
|
2745
|
+
const B = await y.massTags(M, b);
|
|
2756
2746
|
L.success(
|
|
2757
|
-
|
|
2758
|
-
), T.value = [], await
|
|
2747
|
+
b === "delete" ? t("tag.deleted-many", { count: B }) : b === "index" ? t("tag.indexed-many", { count: B }) : t("tag.kept-out-many", { count: B })
|
|
2748
|
+
), T.value = [], await H();
|
|
2759
2749
|
} catch (B) {
|
|
2760
2750
|
L.danger(s(B));
|
|
2761
2751
|
} finally {
|
|
@@ -2763,23 +2753,23 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2763
2753
|
}
|
|
2764
2754
|
}
|
|
2765
2755
|
}
|
|
2766
|
-
const
|
|
2756
|
+
const fe = v(
|
|
2767
2757
|
() => S.value ? [{ key: "new", label: t("tag.new"), icon: "plus", primary: !0, run: () => {
|
|
2768
2758
|
le();
|
|
2769
2759
|
} }] : []
|
|
2770
2760
|
);
|
|
2771
|
-
return (
|
|
2761
|
+
return (b, M) => (p(), G("div", Da, [
|
|
2772
2762
|
n(e(Qe), {
|
|
2773
2763
|
view: F.value,
|
|
2774
|
-
"onUpdate:view":
|
|
2764
|
+
"onUpdate:view": M[1] || (M[1] = (B) => F.value = B),
|
|
2775
2765
|
title: E.value,
|
|
2776
2766
|
views: U.value,
|
|
2777
|
-
actions:
|
|
2767
|
+
actions: fe.value
|
|
2778
2768
|
}, {
|
|
2779
2769
|
default: l(() => [
|
|
2780
2770
|
n(e(ot), {
|
|
2781
2771
|
selected: T.value,
|
|
2782
|
-
"onUpdate:selected":
|
|
2772
|
+
"onUpdate:selected": M[0] || (M[0] = (B) => T.value = B),
|
|
2783
2773
|
data: i.value,
|
|
2784
2774
|
columns: A.value,
|
|
2785
2775
|
"row-key": "id",
|
|
@@ -2798,7 +2788,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2798
2788
|
"cell-title": l(({ row: B }) => [
|
|
2799
2789
|
n(e(J), { truncate: "" }, {
|
|
2800
2790
|
default: l(() => [
|
|
2801
|
-
|
|
2791
|
+
_(g(B.title), 1)
|
|
2802
2792
|
]),
|
|
2803
2793
|
_: 2
|
|
2804
2794
|
}, 1024)
|
|
@@ -2811,7 +2801,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2811
2801
|
truncate: ""
|
|
2812
2802
|
}, {
|
|
2813
2803
|
default: l(() => [
|
|
2814
|
-
|
|
2804
|
+
_(g(B.path ?? e(t)("tag.no-address")), 1)
|
|
2815
2805
|
]),
|
|
2816
2806
|
_: 2
|
|
2817
2807
|
}, 1024)
|
|
@@ -2821,7 +2811,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2821
2811
|
tone: B.articles_count === 0 ? "muted" : "default"
|
|
2822
2812
|
}, {
|
|
2823
2813
|
default: l(() => [
|
|
2824
|
-
|
|
2814
|
+
_(g(B.articles_count), 1)
|
|
2825
2815
|
]),
|
|
2826
2816
|
_: 2
|
|
2827
2817
|
}, 1032, ["tone"])
|
|
@@ -2837,7 +2827,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2837
2827
|
tone: ke(B.indexing)
|
|
2838
2828
|
}, {
|
|
2839
2829
|
default: l(() => [
|
|
2840
|
-
|
|
2830
|
+
_(g(e(t)("tag.indexing-rule")), 1)
|
|
2841
2831
|
]),
|
|
2842
2832
|
_: 1
|
|
2843
2833
|
}, 8, ["tone"])
|
|
@@ -2849,14 +2839,14 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2849
2839
|
tone: ke(B.indexing)
|
|
2850
2840
|
}, {
|
|
2851
2841
|
default: l(() => [
|
|
2852
|
-
|
|
2842
|
+
_(g(e(t)(`tag.indexing-${B.indexing}`)), 1)
|
|
2853
2843
|
]),
|
|
2854
2844
|
_: 2
|
|
2855
2845
|
}, 1032, ["tone"]))
|
|
2856
2846
|
]),
|
|
2857
2847
|
"cell-actions": l(({ row: B }) => [
|
|
2858
2848
|
n(e(Re), {
|
|
2859
|
-
actions:
|
|
2849
|
+
actions: Se(B),
|
|
2860
2850
|
label: B.title
|
|
2861
2851
|
}, null, 8, ["actions", "label"])
|
|
2862
2852
|
]),
|
|
@@ -2865,7 +2855,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2865
2855
|
]),
|
|
2866
2856
|
_: 1
|
|
2867
2857
|
}, 8, ["view", "title", "views", "actions"]),
|
|
2868
|
-
|
|
2858
|
+
N.value.length > 0 ? (p(), z(e(rt), {
|
|
2869
2859
|
key: 0,
|
|
2870
2860
|
class: "wx-tags__bar",
|
|
2871
2861
|
sticky: ""
|
|
@@ -2873,7 +2863,7 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2873
2863
|
state: l(() => [
|
|
2874
2864
|
n(e(J), { weight: "medium" }, {
|
|
2875
2865
|
default: l(() => [
|
|
2876
|
-
|
|
2866
|
+
_(g(e(t)("tag.selected", { count: N.value.length })), 1)
|
|
2877
2867
|
]),
|
|
2878
2868
|
_: 1
|
|
2879
2869
|
})
|
|
@@ -2881,29 +2871,29 @@ const Bt = { class: "wx-article-editor__screen" }, Pt = 1200, Dt = /* @__PURE__
|
|
|
2881
2871
|
default: l(() => [
|
|
2882
2872
|
n(e(Z), {
|
|
2883
2873
|
type: "primary",
|
|
2884
|
-
disabled:
|
|
2885
|
-
onClick:
|
|
2874
|
+
disabled: N.value.length < 2 || c.value,
|
|
2875
|
+
onClick: pe
|
|
2886
2876
|
}, {
|
|
2887
2877
|
icon: l(() => [
|
|
2888
2878
|
n(e(we), { name: "link" })
|
|
2889
2879
|
]),
|
|
2890
2880
|
default: l(() => [
|
|
2891
|
-
|
|
2881
|
+
_(" " + g(e(t)("tag.merge")), 1)
|
|
2892
2882
|
]),
|
|
2893
2883
|
_: 1
|
|
2894
2884
|
}, 8, ["disabled"]),
|
|
2895
2885
|
n(e(Re), {
|
|
2896
2886
|
size: "lg",
|
|
2897
2887
|
actions: he.value,
|
|
2898
|
-
label: e(t)("tag.selected", { count:
|
|
2888
|
+
label: e(t)("tag.selected", { count: N.value.length })
|
|
2899
2889
|
}, null, 8, ["actions", "label"])
|
|
2900
2890
|
]),
|
|
2901
2891
|
_: 1
|
|
2902
|
-
})) :
|
|
2892
|
+
})) : K("", !0)
|
|
2903
2893
|
]));
|
|
2904
2894
|
}
|
|
2905
|
-
}),
|
|
2906
|
-
function
|
|
2895
|
+
}), Oa = /* @__PURE__ */ ve(Ia, [["__scopeId", "data-v-beb86d88"]]);
|
|
2896
|
+
function ja(f = {}) {
|
|
2907
2897
|
const m = f.path ?? "/blog";
|
|
2908
2898
|
return [
|
|
2909
2899
|
{
|
|
@@ -2915,13 +2905,13 @@ function Ka(f = {}) {
|
|
|
2915
2905
|
{
|
|
2916
2906
|
path: `${m}/articles`,
|
|
2917
2907
|
name: "webx.blog.articles",
|
|
2918
|
-
component:
|
|
2908
|
+
component: ha,
|
|
2919
2909
|
props: { base: m }
|
|
2920
2910
|
},
|
|
2921
2911
|
{
|
|
2922
2912
|
path: `${m}/articles/:id(\\d+)`,
|
|
2923
2913
|
name: "webx.blog.articles.edit",
|
|
2924
|
-
component:
|
|
2914
|
+
component: Ot,
|
|
2925
2915
|
props: { base: m }
|
|
2926
2916
|
}
|
|
2927
2917
|
],
|
|
@@ -2936,12 +2926,12 @@ function Ka(f = {}) {
|
|
|
2936
2926
|
* binding.
|
|
2937
2927
|
*/
|
|
2938
2928
|
types: {
|
|
2939
|
-
"wx-article-address": { component:
|
|
2940
|
-
"wx-article-author": { component:
|
|
2941
|
-
"wx-article-rubrics": { component:
|
|
2942
|
-
"wx-article-tags": { component:
|
|
2943
|
-
"wx-article-related": { component:
|
|
2944
|
-
"wx-article-history": { component:
|
|
2929
|
+
"wx-article-address": { component: Nt, kind: "display" },
|
|
2930
|
+
"wx-article-author": { component: Bt, kind: "field" },
|
|
2931
|
+
"wx-article-rubrics": { component: aa, kind: "field" },
|
|
2932
|
+
"wx-article-tags": { component: oa, kind: "field" },
|
|
2933
|
+
"wx-article-related": { component: Xt, kind: "field" },
|
|
2934
|
+
"wx-article-history": { component: Kt, kind: "display" }
|
|
2945
2935
|
}
|
|
2946
2936
|
},
|
|
2947
2937
|
{
|
|
@@ -2951,7 +2941,7 @@ function Ka(f = {}) {
|
|
|
2951
2941
|
{
|
|
2952
2942
|
path: `${m}/rubrics`,
|
|
2953
2943
|
name: "webx.blog.rubrics",
|
|
2954
|
-
component:
|
|
2944
|
+
component: Ca,
|
|
2955
2945
|
props: { base: m }
|
|
2956
2946
|
}
|
|
2957
2947
|
]
|
|
@@ -2963,7 +2953,7 @@ function Ka(f = {}) {
|
|
|
2963
2953
|
{
|
|
2964
2954
|
path: `${m}/tags`,
|
|
2965
2955
|
name: "webx.blog.tags",
|
|
2966
|
-
component:
|
|
2956
|
+
component: Oa,
|
|
2967
2957
|
props: { base: m }
|
|
2968
2958
|
}
|
|
2969
2959
|
]
|
|
@@ -2971,25 +2961,25 @@ function Ka(f = {}) {
|
|
|
2971
2961
|
];
|
|
2972
2962
|
}
|
|
2973
2963
|
export {
|
|
2974
|
-
|
|
2975
|
-
|
|
2976
|
-
|
|
2977
|
-
|
|
2978
|
-
|
|
2979
|
-
|
|
2980
|
-
|
|
2981
|
-
|
|
2982
|
-
|
|
2983
|
-
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
2964
|
+
Nt as WxArticleAddress,
|
|
2965
|
+
Bt as WxArticleAuthorField,
|
|
2966
|
+
ua as WxArticleCreateDialog,
|
|
2967
|
+
Ot as WxArticleEditorPage,
|
|
2968
|
+
Kt as WxArticleHistory,
|
|
2969
|
+
Xt as WxArticleRelated,
|
|
2970
|
+
aa as WxArticleRubrics,
|
|
2971
|
+
oa as WxArticleTags,
|
|
2972
|
+
ha as WxArticlesPage,
|
|
2973
|
+
Aa as WxRubricForm,
|
|
2974
|
+
Ca as WxRubricsPage,
|
|
2975
|
+
za as WxTagCreateDialog,
|
|
2976
|
+
Pa as WxTagMergeDialog,
|
|
2977
|
+
Oa as WxTagsPage,
|
|
2988
2978
|
ut as articleEditorKey,
|
|
2989
|
-
|
|
2990
|
-
|
|
2979
|
+
ja as blog,
|
|
2980
|
+
Ut as blogMessages,
|
|
2991
2981
|
de as createBlogApi,
|
|
2992
|
-
|
|
2993
|
-
|
|
2982
|
+
Rt as provideArticleEditor,
|
|
2983
|
+
Ae as useArticleEditor
|
|
2994
2984
|
};
|
|
2995
2985
|
//# sourceMappingURL=index.js.map
|