@conduction/nextcloud-vue 2.138.0 → 2.139.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/esm/components/CnChartWidget/CnChartWidget.vue.js +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue.js +1 -1
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue.js +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +99 -4
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +2 -2
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue2.js +2 -0
- package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue3.js +13 -2
- package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue.js +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js.map +1 -1
- package/dist/esm/composables/indexSources.js +43 -4
- package/dist/esm/composables/indexSources.js.map +1 -1
- package/dist/esm/l10n/en.json.js +3 -1
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +3 -1
- package/dist/esm/l10n/nl.json.js.map +1 -1
- package/dist/esm/library-style.js +1 -1
- package/dist/esm/nextcloud-vue.css +340 -238
- package/dist/nextcloud-vue.cjs.js +166 -19
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +340 -238
- package/l10n/en.json +3 -1
- package/l10n/nl.json +3 -1
- package/package.json +1 -1
- package/src/components/CnChartWidget/CnChartWidget.vue +4 -0
- package/src/components/CnFactsWidget/CnFactsWidget.vue +6 -4
- package/src/components/CnFilesBrowser/CnFilesBrowser.vue +11 -0
- package/src/components/CnIndexPage/CnIndexPage.vue +101 -6
- package/src/components/CnIndexSidebar/CnIndexSidebar.vue +10 -2
- package/src/components/CnObjectListWidget/CnObjectListWidget.vue +1 -1
- package/src/composables/indexSources.js +43 -4
- package/src/css/dialog.css +18 -0
- package/src/css/look-board-detail.css +24 -0
- package/src/css/look-board-index.css +21 -0
- package/src/css/look-board.css +21 -0
|
@@ -3602,7 +3602,9 @@ var translations$s = {
|
|
|
3602
3602
|
"Search a person or group": "Search a person or group",
|
|
3603
3603
|
"Now: by {order}.": "Now: by {order}.",
|
|
3604
3604
|
"You save the order along with a view.": "You save the order along with a view.",
|
|
3605
|
-
me: "me"
|
|
3605
|
+
me: "me",
|
|
3606
|
+
"Open profile": "Open profile",
|
|
3607
|
+
"Link a contact from your address book.": "Link a contact from your address book."
|
|
3606
3608
|
};
|
|
3607
3609
|
var plurals$1 = {
|
|
3608
3610
|
"{count} member": [
|
|
@@ -6612,7 +6614,9 @@ var translations$c = {
|
|
|
6612
6614
|
"Search a person or group": "Zoek een persoon of groep",
|
|
6613
6615
|
"Now: by {order}.": "Nu: op {order}.",
|
|
6614
6616
|
"You save the order along with a view.": "De sortering bewaart u mee in een weergave.",
|
|
6615
|
-
me: "ik"
|
|
6617
|
+
me: "ik",
|
|
6618
|
+
"Open profile": "Profiel openen",
|
|
6619
|
+
"Link a contact from your address book.": "Koppel een contact uit je adresboek."
|
|
6616
6620
|
};
|
|
6617
6621
|
var plurals = {
|
|
6618
6622
|
"{count} member": [
|
|
@@ -26871,7 +26875,7 @@ function render$8y(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
26871
26875
|
}
|
|
26872
26876
|
|
|
26873
26877
|
script$8z.render = render$8y;
|
|
26874
|
-
script$8z.__scopeId = "data-v-
|
|
26878
|
+
script$8z.__scopeId = "data-v-56aabaf0";
|
|
26875
26879
|
const __sfc_main$8t = script$8z;
|
|
26876
26880
|
|
|
26877
26881
|
/**
|
|
@@ -119711,7 +119715,7 @@ function render$70(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
119711
119715
|
}
|
|
119712
119716
|
|
|
119713
119717
|
script$71.render = render$70;
|
|
119714
|
-
script$71.__scopeId = "data-v-
|
|
119718
|
+
script$71.__scopeId = "data-v-ad907164";
|
|
119715
119719
|
const __sfc_main$6X = script$71;
|
|
119716
119720
|
|
|
119717
119721
|
/**
|
|
@@ -142039,7 +142043,7 @@ function fillRowTemplate(template, row) {
|
|
|
142039
142043
|
* and its count (DqZoekresultaten).
|
|
142040
142044
|
*
|
|
142041
142045
|
* `sourceConfig.kinds` lists what is searched:
|
|
142042
|
-
* `{ id, label, register, schema, titleField?, subtitleField?, subtitleTemplate?, statusField?, statusResolve?, linkedField?, linkedTemplate?, href?, limit? }`
|
|
142046
|
+
* `{ id, label, register, schema, titleField?, subtitleField?, subtitleTemplate?, statusField?, statusResolve?, linkedField?, linkedTemplate?, linkedUser?, href?, limit? }`
|
|
142043
142047
|
* for objects (OpenRegister's `_search`, so the reader sees what they may
|
|
142044
142048
|
* read), or `{ id, label, files: true, limit? }` for the reader's files
|
|
142045
142049
|
* (Nextcloud's unified search). The term is `sourceConfig.term`, else the
|
|
@@ -142055,6 +142059,8 @@ function fillRowTemplate(template, row) {
|
|
|
142055
142059
|
* column, drawn when a kind declares one; `sourceConfig.linkedLabel` names it.
|
|
142056
142060
|
* `subtitleTemplate` ("Case {identifier}", translated) fills the line under a
|
|
142057
142061
|
* result, else `subtitleField`.
|
|
142062
|
+
* `linkedUser: true` reads that value as a user id and shows the user's
|
|
142063
|
+
* display name. `sourceConfig.columnWidths` sets a width per column key.
|
|
142058
142064
|
* The page's title and count line can name the term as `{term}`, and the
|
|
142059
142065
|
* count is the active kind's total. Kind, link and status are filterable.
|
|
142060
142066
|
*
|
|
@@ -142064,6 +142070,23 @@ function fillRowTemplate(template, row) {
|
|
|
142064
142070
|
* @return {object} The source adapter.
|
|
142065
142071
|
* @spec openspec/changes/index-search-source/specs/index-page/spec.md#requirement-an-index-page-can-search-several-schemas-and-files
|
|
142066
142072
|
*/
|
|
142073
|
+
/**
|
|
142074
|
+
* Columns with the widths a page names per column key
|
|
142075
|
+
* (`sourceConfig.columnWidths`, `{ title: '250px' }`); a column it does not
|
|
142076
|
+
* name keeps none.
|
|
142077
|
+
*
|
|
142078
|
+
* @param {Array<object>} columns The columns.
|
|
142079
|
+
* @param {object|undefined} widths The widths by key.
|
|
142080
|
+
* @return {Array<object>} The columns.
|
|
142081
|
+
* @spec openspec/changes/search-linked-user-and-widths/specs/search-linked-user-and-widths/spec.md
|
|
142082
|
+
*/
|
|
142083
|
+
function withColumnWidths(columns, widths) {
|
|
142084
|
+
if (!widths || typeof widths !== 'object') {
|
|
142085
|
+
return columns
|
|
142086
|
+
}
|
|
142087
|
+
return columns.map((col) => (typeof widths[col.key] === 'string' && widths[col.key] !== '' ? { ...col, width: widths[col.key] } : col))
|
|
142088
|
+
}
|
|
142089
|
+
|
|
142067
142090
|
function searchSource(config = {}, context = {}) {
|
|
142068
142091
|
const translate = typeof context.translate === 'function' ? context.translate : (text) => text;
|
|
142069
142092
|
const kinds = (Array.isArray(config && config.kinds) ? config.kinds : [])
|
|
@@ -142159,12 +142182,20 @@ function searchSource(config = {}, context = {}) {
|
|
|
142159
142182
|
return kind.subtitleField ? String(readPath$8(object, kind.subtitleField) ?? '') : ''
|
|
142160
142183
|
};
|
|
142161
142184
|
|
|
142185
|
+
// `linkedUser`: the Linked cell holds a user id; name the user instead.
|
|
142186
|
+
const linkedUserNames = async (kind, objects) => {
|
|
142187
|
+
const ids = [...new Set(objects.map((object) => linkedOf(kind, object)).filter((id) => id !== ''))];
|
|
142188
|
+
const options = await Promise.all(ids.map((id) => resolveNextcloudUser(id).catch(() => null)));
|
|
142189
|
+
return new Map(ids.map((id, index) => [id, (options[index] && options[index].label) || id]))
|
|
142190
|
+
};
|
|
142191
|
+
|
|
142162
142192
|
const searchObjects = async (axios, kind, term) => {
|
|
142163
142193
|
const url = router.generateUrl('/apps/openregister/api/objects/{register}/{schema}', { register: kind.register, schema: kind.schema });
|
|
142164
142194
|
const res = await axios.get(url, { params: { _search: term, _limit: kind.limit || 20 } });
|
|
142165
142195
|
const body = (res && res.data) || {};
|
|
142166
142196
|
const results = Array.isArray(body.results) ? body.results : (Array.isArray(body) ? body : []);
|
|
142167
142197
|
const labels = kind.statusResolve && kind.statusField ? await statusLabels(kind) : null;
|
|
142198
|
+
const userNames = kind.linkedUser === true ? await linkedUserNames(kind, results) : null;
|
|
142168
142199
|
return {
|
|
142169
142200
|
total: typeof body.total === 'number' ? body.total : results.length,
|
|
142170
142201
|
rows: results.map((object) => {
|
|
@@ -142181,7 +142212,7 @@ function searchSource(config = {}, context = {}) {
|
|
|
142181
142212
|
title: String(readPath$8(object, kind.titleField || 'title') ?? object.name ?? id ?? ''),
|
|
142182
142213
|
subtitle: subtitleOf(kind, object),
|
|
142183
142214
|
status,
|
|
142184
|
-
linked: linkedOf(kind, object),
|
|
142215
|
+
linked: userNames ? (userNames.get(linkedOf(kind, object)) || linkedOf(kind, object)) : linkedOf(kind, object),
|
|
142185
142216
|
href: kind.href ? router.generateUrl(fillRowTemplate(kind.href, { ...object, id })) : '',
|
|
142186
142217
|
object,
|
|
142187
142218
|
}
|
|
@@ -142289,7 +142320,7 @@ function searchSource(config = {}, context = {}) {
|
|
|
142289
142320
|
*/
|
|
142290
142321
|
loading: () => state.loading,
|
|
142291
142322
|
|
|
142292
|
-
columns: [
|
|
142323
|
+
columns: withColumnWidths([
|
|
142293
142324
|
{ key: 'title', label: l10n.translate('nextcloud-vue', 'Result'), secondary: 'subtitle', sortable: true },
|
|
142294
142325
|
// `kindAsText`: what one row is, as plain text ("Zaak", "Lantaarnpaal",
|
|
142295
142326
|
// DqZoekresultaten), instead of the plural kind as a pill.
|
|
@@ -142304,7 +142335,7 @@ function searchSource(config = {}, context = {}) {
|
|
|
142304
142335
|
widgetProps: { colorMap: (config && config.statusColorMap) || {} },
|
|
142305
142336
|
sortable: true,
|
|
142306
142337
|
},
|
|
142307
|
-
],
|
|
142338
|
+
], config && config.columnWidths),
|
|
142308
142339
|
|
|
142309
142340
|
/**
|
|
142310
142341
|
* Every column header carries a filter button (DqZoekresultaten); the
|
|
@@ -142554,6 +142585,15 @@ function usersSource() {
|
|
|
142554
142585
|
/** A filter button on every head (DqAfdelingen); the members read are narrowed here. */
|
|
142555
142586
|
headerFilters: true,
|
|
142556
142587
|
|
|
142588
|
+
/**
|
|
142589
|
+
* A member's row menu (DqAfdelingen): their Nextcloud profile, and an
|
|
142590
|
+
* e-mail when they have an address. Both are links.
|
|
142591
|
+
*/
|
|
142592
|
+
rowActions: [
|
|
142593
|
+
{ id: 'open-profile', label: l10n.translate('nextcloud-vue', 'Open profile'), icon: AccountOutline, href: (row) => router.generateUrl(`/u/${encodeURIComponent(row.id)}`) },
|
|
142594
|
+
{ id: 'send-email', label: l10n.translate('nextcloud-vue', 'Send email'), icon: EmailOutline, href: (row) => `mailto:${row.email}`, visible: (row) => Boolean(row && row.email) },
|
|
142595
|
+
],
|
|
142596
|
+
|
|
142557
142597
|
showAdd: false,
|
|
142558
142598
|
}
|
|
142559
142599
|
}
|
|
@@ -157062,7 +157102,7 @@ var script$6b = {
|
|
|
157062
157102
|
// `secondary` (a second, muted line under the cell) rides
|
|
157063
157103
|
// along too: the table draws it, and dropping it here took the
|
|
157064
157104
|
// list rows' second line away (zuiddrecht-pixel-gaps-3).
|
|
157065
|
-
for (const k of ['format', 'widget', 'widgetProps', 'formatter', 'align', 'width', 'type', 'enum', 'enumLabels', 'sortable', 'secondary', 'colorMap', 'grow']) {
|
|
157105
|
+
for (const k of ['format', 'widget', 'widgetProps', 'formatter', 'align', 'width', 'type', 'enum', 'enumLabels', 'sortable', 'secondary', 'colorMap', 'grow', 'cellClass']) {
|
|
157066
157106
|
if (c[k] !== undefined) {
|
|
157067
157107
|
out[k] = c[k];
|
|
157068
157108
|
}
|
|
@@ -159612,7 +159652,7 @@ function render$6a(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
159612
159652
|
}
|
|
159613
159653
|
|
|
159614
159654
|
script$6b.render = render$6a;
|
|
159615
|
-
script$6b.__scopeId = "data-v-
|
|
159655
|
+
script$6b.__scopeId = "data-v-3a0165c8";
|
|
159616
159656
|
const __sfc_main$65 = script$6b;
|
|
159617
159657
|
|
|
159618
159658
|
const DEFAULT_CONTENT$s = Object.freeze({
|
|
@@ -238189,7 +238229,7 @@ function render$47(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
238189
238229
|
}
|
|
238190
238230
|
|
|
238191
238231
|
script$48.render = render$47;
|
|
238192
|
-
script$48.__scopeId = "data-v-
|
|
238232
|
+
script$48.__scopeId = "data-v-4fd0d81c";
|
|
238193
238233
|
const __sfc_main$48 = script$48;
|
|
238194
238234
|
|
|
238195
238235
|
/**
|
|
@@ -344082,6 +344122,7 @@ var script$2d = {
|
|
|
344082
344122
|
Pin,
|
|
344083
344123
|
PinOutline,
|
|
344084
344124
|
InformationOutline,
|
|
344125
|
+
Magnify,
|
|
344085
344126
|
},
|
|
344086
344127
|
|
|
344087
344128
|
inject: {
|
|
@@ -345170,6 +345211,7 @@ const _hoisted_29$a = { class: "cn-index-sidebar__section" };
|
|
|
345170
345211
|
function render$2c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
345171
345212
|
const _component_CnIcon = vue$1.resolveComponent("CnIcon");
|
|
345172
345213
|
const _component_FilterOutline = vue$1.resolveComponent("FilterOutline");
|
|
345214
|
+
const _component_Magnify = vue$1.resolveComponent("Magnify");
|
|
345173
345215
|
const _component_NcTextField = vue$1.resolveComponent("NcTextField");
|
|
345174
345216
|
const _component_NcSelect = vue$1.resolveComponent("NcSelect");
|
|
345175
345217
|
const _component_ArrowUp = vue$1.resolveComponent("ArrowUp");
|
|
@@ -345226,9 +345268,19 @@ function render$2c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
345226
345268
|
vue$1.createVNode(_component_NcTextField, {
|
|
345227
345269
|
modelValue: $props.searchValue || '',
|
|
345228
345270
|
placeholder: $props.searchPlaceholder,
|
|
345229
|
-
label: $props.searchLabel,
|
|
345271
|
+
label: $options.isBoardLook ? $props.searchPlaceholder : $props.searchLabel,
|
|
345230
345272
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = $event => (_ctx.$emit('search', $event)))
|
|
345231
|
-
},
|
|
345273
|
+
}, vue$1.createSlots({ _: 2 /* DYNAMIC */ }, [
|
|
345274
|
+
($options.isBoardLook)
|
|
345275
|
+
? {
|
|
345276
|
+
name: "icon",
|
|
345277
|
+
fn: vue$1.withCtx(() => [
|
|
345278
|
+
vue$1.createVNode(_component_Magnify, { size: 18 })
|
|
345279
|
+
]),
|
|
345280
|
+
key: "0"
|
|
345281
|
+
}
|
|
345282
|
+
: undefined
|
|
345283
|
+
]), 1032 /* PROPS, DYNAMIC_SLOTS */, ["modelValue", "placeholder", "label"])
|
|
345232
345284
|
]),
|
|
345233
345285
|
($props.sortOptions.length > 0)
|
|
345234
345286
|
? (vue$1.openBlock(), vue$1.createElementBlock("div", _hoisted_5$1z, [
|
|
@@ -351852,6 +351904,21 @@ var script$20 = {
|
|
|
351852
351904
|
default: '',
|
|
351853
351905
|
},
|
|
351854
351906
|
|
|
351907
|
+
/**
|
|
351908
|
+
* Board look: the count line while a saved view is applied (manifest
|
|
351909
|
+
* `config.savedViewCountText`), a template as `countText` that may name
|
|
351910
|
+
* the view's conditions as `{view}`: its description, else its filters
|
|
351911
|
+
* in words (DqFilterInMenu "3 van 48 lopende zaken · termijn binnen 7
|
|
351912
|
+
* dagen, van mij · gesorteerd op termijn"). A view's own `countText`
|
|
351913
|
+
* override and a scope's come first.
|
|
351914
|
+
*
|
|
351915
|
+
* @spec openspec/changes/applied-view-lights-its-lens/specs/applied-view-lights-its-lens/spec.md
|
|
351916
|
+
*/
|
|
351917
|
+
savedViewCountText: {
|
|
351918
|
+
type: String,
|
|
351919
|
+
default: '',
|
|
351920
|
+
},
|
|
351921
|
+
|
|
351855
351922
|
/**
|
|
351856
351923
|
* Board look: a count line per view (manifest `config.countTextByView`),
|
|
351857
351924
|
* `{ table?, cards?, list?, board?, map? }`, each a template as
|
|
@@ -354192,6 +354259,8 @@ var script$20 = {
|
|
|
354192
354259
|
savedViewCounts: null,
|
|
354193
354260
|
// The id (or slug) of the saved view that is applied; its chip shows selected under the board look.
|
|
354194
354261
|
appliedSavedViewId: '',
|
|
354262
|
+
/** Whether the reader picked a lens chip after the applied view (then their chip shows). */
|
|
354263
|
+
lensChosenByHand: false,
|
|
354195
354264
|
// The sort option the applied view's `overrides.sortOption` selected, so leaving the view can undo it.
|
|
354196
354265
|
viewSortOption: '',
|
|
354197
354266
|
// The applied view's filters as one comparable key, so the address keeps naming the view until they change.
|
|
@@ -356031,13 +356100,53 @@ var script$20 = {
|
|
|
356031
356100
|
* @spec openspec/changes/working-list-row-actions/specs/index-page/spec.md
|
|
356032
356101
|
*/
|
|
356033
356102
|
/**
|
|
356034
|
-
* The chip
|
|
356035
|
-
*
|
|
356036
|
-
*
|
|
356103
|
+
* The lens chip an applied saved view narrows within: the non-default
|
|
356104
|
+
* tab whose every condition the view's own conditions (its filters
|
|
356105
|
+
* over its locked filters, tokens as written) hold, the most specific
|
|
356106
|
+
* first (DqFilterInMenu: "Termijn deze week" lit for the view of that
|
|
356107
|
+
* name). Null without an applied view or a fitting tab.
|
|
356108
|
+
*
|
|
356109
|
+
* @return {number|null} The tab index.
|
|
356110
|
+
* @spec openspec/changes/applied-view-lights-its-lens/specs/applied-view-lights-its-lens/spec.md
|
|
356111
|
+
*/
|
|
356112
|
+
appliedViewLensIndex() {
|
|
356113
|
+
const view = this.appliedSavedView;
|
|
356114
|
+
const tabs = Array.isArray(this.tabStripEntries) ? this.tabStripEntries : [];
|
|
356115
|
+
if (!view || tabs.length === 0) {
|
|
356116
|
+
return null
|
|
356117
|
+
}
|
|
356118
|
+
const query = view.query && typeof view.query === 'object' ? view.query : {};
|
|
356119
|
+
const locked = query.overrides && typeof query.overrides.lockedFilters === 'object' ? query.overrides.lockedFilters : {};
|
|
356120
|
+
const conditions = { ...(locked || {}), ...(query.filters || view.filters || {}) };
|
|
356121
|
+
const same = (a, b) => JSON.stringify(Array.isArray(a) ? a.map(String) : String(a)) === JSON.stringify(Array.isArray(b) ? b.map(String) : String(b));
|
|
356122
|
+
let best = null;
|
|
356123
|
+
let bestSize = 0;
|
|
356124
|
+
tabs.forEach((tab, index) => {
|
|
356125
|
+
const filter = tab && tab.filter && typeof tab.filter === 'object' ? tab.filter : {};
|
|
356126
|
+
const keys = Object.keys(filter);
|
|
356127
|
+
if (tab.default === true || keys.length === 0 || keys.length <= bestSize) {
|
|
356128
|
+
return
|
|
356129
|
+
}
|
|
356130
|
+
if (keys.every((key) => Object.hasOwn(conditions, key) && same(conditions[key], filter[key]))) {
|
|
356131
|
+
best = index;
|
|
356132
|
+
bestSize = keys.length;
|
|
356133
|
+
}
|
|
356134
|
+
});
|
|
356135
|
+
return best
|
|
356136
|
+
},
|
|
356137
|
+
|
|
356138
|
+
/**
|
|
356139
|
+
* The chip the strip lights: the lens an applied saved view narrows
|
|
356140
|
+
* within (until the reader picks a chip), else the active tab, else
|
|
356141
|
+
* the default tab of tabs that arrived after setup
|
|
356142
|
+
* (`quickFiltersFrom`), which is the one the fetch applies.
|
|
356037
356143
|
*
|
|
356038
356144
|
* @return {number|null} The tab index, or null without tabs.
|
|
356039
356145
|
*/
|
|
356040
356146
|
shownQuickFilterIndex() {
|
|
356147
|
+
if (!this.quickFilterMultiple && !this.lensChosenByHand && this.appliedViewLensIndex !== null) {
|
|
356148
|
+
return this.appliedViewLensIndex
|
|
356149
|
+
}
|
|
356041
356150
|
if (this.activeQuickFilterIndex !== null && this.activeQuickFilterIndex !== undefined) {
|
|
356042
356151
|
return this.activeQuickFilterIndex
|
|
356043
356152
|
}
|
|
@@ -358427,6 +358536,11 @@ var script$20 = {
|
|
|
358427
358536
|
* @return {string}
|
|
358428
358537
|
*/
|
|
358429
358538
|
presentedCountText() {
|
|
358539
|
+
const viewLine = this.savedViewCountText;
|
|
358540
|
+
const view = this.appliedSavedView;
|
|
358541
|
+
if (view && typeof viewLine === 'string' && viewLine !== '' && this.activeScopePresentation.countText === undefined && !savedViewOverrides(view)?.countText) {
|
|
358542
|
+
return viewLine
|
|
358543
|
+
}
|
|
358430
358544
|
if (this.activeScopePresentation.countText === undefined) {
|
|
358431
358545
|
const byView = this.countTextByView;
|
|
358432
358546
|
const own = byView && typeof byView === 'object' ? byView[this.currentViewMode] : undefined;
|
|
@@ -358437,6 +358551,23 @@ var script$20 = {
|
|
|
358437
358551
|
return this.presented('countText')
|
|
358438
358552
|
},
|
|
358439
358553
|
|
|
358554
|
+
/**
|
|
358555
|
+
* The applied saved view's conditions for the count line's `{view}`:
|
|
358556
|
+
* its description, else its filters in words, starting lower case.
|
|
358557
|
+
*
|
|
358558
|
+
* @return {string}
|
|
358559
|
+
* @spec openspec/changes/applied-view-lights-its-lens/specs/applied-view-lights-its-lens/spec.md
|
|
358560
|
+
*/
|
|
358561
|
+
appliedViewConditionsText() {
|
|
358562
|
+
const view = this.appliedSavedView;
|
|
358563
|
+
if (!view) {
|
|
358564
|
+
return ''
|
|
358565
|
+
}
|
|
358566
|
+
const own = typeof view.description === 'string' ? view.description.trim() : '';
|
|
358567
|
+
const text = own !== '' ? own : String(this.viewFilterSummary(view) || '');
|
|
358568
|
+
return text.charAt(0).toLowerCase() + text.slice(1)
|
|
358569
|
+
},
|
|
358570
|
+
|
|
358440
358571
|
headerDescriptionBase() {
|
|
358441
358572
|
const total = this.effectivePagination?.total;
|
|
358442
358573
|
// Board look: the count line is a template over the rows on this page
|
|
@@ -358460,6 +358591,7 @@ var script$20 = {
|
|
|
358460
358591
|
.replace('{shown}', String(shown))
|
|
358461
358592
|
.replace('{total}', String(total))
|
|
358462
358593
|
.replace(/\{term\}/g, this.sourceTerm)
|
|
358594
|
+
.replace(/\{view\}/g, this.appliedViewConditionsText)
|
|
358463
358595
|
}
|
|
358464
358596
|
return this.countLine(this.countSubtitle, total, shown)
|
|
358465
358597
|
}
|
|
@@ -358525,6 +358657,17 @@ var script$20 = {
|
|
|
358525
358657
|
return !!this.resolvedSidebar.enabled && this.resolvedSidebar.show !== false
|
|
358526
358658
|
},
|
|
358527
358659
|
|
|
358660
|
+
/**
|
|
358661
|
+
* Whether the page's side panel is open now; the board look then lays
|
|
358662
|
+
* the header out narrower (DqZakenSorteren).
|
|
358663
|
+
*
|
|
358664
|
+
* @spec openspec/changes/board-header-buttons-under-title-beside-side-panel/specs/board-header-buttons-under-title-beside-side-panel/spec.md#requirement-the-header-buttons-sit-under-the-title-while-the-side-panel-is-open
|
|
358665
|
+
* @return {boolean}
|
|
358666
|
+
*/
|
|
358667
|
+
sidebarPanelOpen() {
|
|
358668
|
+
return Boolean(this.sidebarOpen && this.hasSidebar)
|
|
358669
|
+
},
|
|
358670
|
+
|
|
358528
358671
|
/**
|
|
358529
358672
|
* Whether the board toolbar draws the Filter button as a menu: the
|
|
358530
358673
|
* board look, `filterMenu` on, something to filter by, and no filter
|
|
@@ -358567,7 +358710,9 @@ var script$20 = {
|
|
|
358567
358710
|
|
|
358568
358711
|
/** Search props forwarded to the embedded CnIndexSidebar (defaults applied per CnIndexSidebar). */
|
|
358569
358712
|
sidebarSearchProps() {
|
|
358570
|
-
|
|
358713
|
+
// The page's own search hint, unless `sidebar.search` names one.
|
|
358714
|
+
const own = this.shownSearchPlaceholder ? { searchPlaceholder: this.shownSearchPlaceholder } : {};
|
|
358715
|
+
return { ...own, ...((this.sidebar && this.sidebar.search) || {}) }
|
|
358571
358716
|
},
|
|
358572
358717
|
|
|
358573
358718
|
/**
|
|
@@ -360390,6 +360535,7 @@ var script$20 = {
|
|
|
360390
360535
|
// `activeQuickFilterIndex` is a setup-returned ref; the
|
|
360391
360536
|
// Vue 2 ref-unwrap proxy makes plain assignment work.
|
|
360392
360537
|
this.activeQuickFilterIndex = index;
|
|
360538
|
+
this.lensChosenByHand = true;
|
|
360393
360539
|
this.$emit('quick-filter-change', index);
|
|
360394
360540
|
},
|
|
360395
360541
|
|
|
@@ -362825,6 +362971,7 @@ var script$20 = {
|
|
|
362825
362971
|
*/
|
|
362826
362972
|
onApplySavedView(view, { keepSavedViewKey = false } = {}) {
|
|
362827
362973
|
this.appliedSavedViewId = view && (view.id || view.slug) ? String(view.id || view.slug) : '';
|
|
362974
|
+
this.lensChosenByHand = false;
|
|
362828
362975
|
const state = extractViewState(view);
|
|
362829
362976
|
// A view's filters may carry tokens (`@me`, `@myTeam`): resolved here,
|
|
362830
362977
|
// and an optional one that answers nothing (no team) is dropped. A
|
|
@@ -363977,7 +364124,7 @@ function render$1$(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
363977
364124
|
const _component_CnIndexSidebar = vue$1.resolveComponent("CnIndexSidebar");
|
|
363978
364125
|
|
|
363979
364126
|
return (vue$1.openBlock(), vue$1.createElementBlock("div", {
|
|
363980
|
-
class: vue$1.normalizeClass(["cn-index-page", [$setup.lookClass, { 'cn-index-page--with-side-panel': $options.hasSidePanel, 'cn-index-page--quick-filters-toolbar': $options.effectiveQuickFilterPlacement === 'toolbar' }]]),
|
|
364127
|
+
class: vue$1.normalizeClass(["cn-index-page", [$setup.lookClass, { 'cn-index-page--with-side-panel': $options.hasSidePanel, 'cn-index-page--sidebar-open': $options.sidebarPanelOpen, 'cn-index-page--quick-filters-toolbar': $options.effectiveQuickFilterPlacement === 'toolbar' }]]),
|
|
363981
364128
|
"data-testid": "cn-index-page",
|
|
363982
364129
|
onKeydown: _cache[34] || (_cache[34] = (...args) => ($options.onListKeydown && $options.onListKeydown(...args)))
|
|
363983
364130
|
}, [
|
|
@@ -364217,7 +364364,7 @@ function render$1$(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
364217
364364
|
maxVisible: $props.quickFilterMaxVisible,
|
|
364218
364365
|
fit: false,
|
|
364219
364366
|
multiple: $props.quickFilterMultiple,
|
|
364220
|
-
activeIndex: $
|
|
364367
|
+
activeIndex: $options.shownQuickFilterIndex,
|
|
364221
364368
|
selectedIndices: $setup.selectedQuickFilterIndices,
|
|
364222
364369
|
counts: $options.effectiveTabCounts,
|
|
364223
364370
|
"onUpdate:activeIndex": $options.onQuickFilterChange,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
[diffend] Oversized file quarantined before diffing.
|
|
2
2
|
name: package/dist/nextcloud-vue.cjs.js.map
|
|
3
|
-
size:
|
|
4
|
-
sha256:
|
|
3
|
+
size: 49713304 bytes
|
|
4
|
+
sha256: 11b16e882d36de50a0f2029b3f7863890871773691a226d0806b5ff5bc23c6c1
|