@conduction/nextcloud-vue 2.120.0 → 2.121.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/CnIndexPage/CnIndexPage.vue2.js +53 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +546 -523
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/useNamedSource.js +9 -0
- package/dist/esm/components/CnIndexPage/useNamedSource.js.map +1 -1
- package/dist/esm/components/CnReadinessChecklist/CnReadinessChecklist.vue.js +9 -0
- package/dist/esm/components/CnReadinessChecklist/CnReadinessChecklist.vue.js.map +1 -0
- package/dist/esm/components/CnReadinessChecklist/CnReadinessChecklist.vue2.js +214 -0
- package/dist/esm/components/CnReadinessChecklist/CnReadinessChecklist.vue2.js.map +1 -0
- package/dist/esm/components/CnReadinessChecklist/CnReadinessChecklist.vue3.js +125 -0
- package/dist/esm/components/CnReadinessChecklist/CnReadinessChecklist.vue3.js.map +1 -0
- package/dist/esm/components/CnSchemaRulesWidget/CnSchemaRulesWidget.vue.js +9 -0
- package/dist/esm/components/CnSchemaRulesWidget/CnSchemaRulesWidget.vue.js.map +1 -0
- package/dist/esm/components/CnSchemaRulesWidget/CnSchemaRulesWidget.vue2.js +163 -0
- package/dist/esm/components/CnSchemaRulesWidget/CnSchemaRulesWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnSchemaRulesWidget/CnSchemaRulesWidget.vue3.js +131 -0
- package/dist/esm/components/CnSchemaRulesWidget/CnSchemaRulesWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnSchemaRulesWidget/schemaRules.js +127 -0
- package/dist/esm/components/CnSchemaRulesWidget/schemaRules.js.map +1 -0
- package/dist/esm/components/CnSearchIndexStatus/CnSearchIndexStatus.vue.js +9 -0
- package/dist/esm/components/CnSearchIndexStatus/CnSearchIndexStatus.vue.js.map +1 -0
- package/dist/esm/components/CnSearchIndexStatus/CnSearchIndexStatus.vue2.js +82 -0
- package/dist/esm/components/CnSearchIndexStatus/CnSearchIndexStatus.vue2.js.map +1 -0
- package/dist/esm/components/CnSearchIndexStatus/CnSearchIndexStatus.vue3.js +61 -0
- package/dist/esm/components/CnSearchIndexStatus/CnSearchIndexStatus.vue3.js.map +1 -0
- package/dist/esm/components/CnSearchIndexStatus/searchIndexStatus.js +60 -0
- package/dist/esm/components/CnSearchIndexStatus/searchIndexStatus.js.map +1 -0
- package/dist/esm/components/CnShippedConfigurationSection/CnShippedConfigurationSection.vue.js +10 -0
- package/dist/esm/components/CnShippedConfigurationSection/CnShippedConfigurationSection.vue.js.map +1 -0
- package/dist/esm/components/CnShippedConfigurationSection/CnShippedConfigurationSection.vue2.js +226 -0
- package/dist/esm/components/CnShippedConfigurationSection/CnShippedConfigurationSection.vue2.js.map +1 -0
- package/dist/esm/components/CnShippedConfigurationSection/CnShippedConfigurationSection.vue3.js +126 -0
- package/dist/esm/components/CnShippedConfigurationSection/CnShippedConfigurationSection.vue3.js.map +1 -0
- package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +42 -32
- package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
- package/dist/esm/composables/indexSources.js +116 -16
- package/dist/esm/composables/indexSources.js.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/l10n/en.json.js +42 -1
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +42 -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 +147 -0
- package/dist/esm/utils/libraryWidgetKeys.js +1 -0
- package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
- package/dist/nextcloud-vue.cjs.js +14135 -12578
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +147 -0
- package/l10n/en.json +42 -1
- package/l10n/nl.json +42 -1
- package/package.json +1 -1
- package/src/components/CnIndexPage/CnIndexPage.vue +74 -3
- package/src/components/CnIndexPage/useNamedSource.js +9 -0
- package/src/components/CnReadinessChecklist/CnReadinessChecklist.vue +335 -0
- package/src/components/CnReadinessChecklist/index.js +9 -0
- package/src/components/CnSchemaRulesWidget/CnSchemaRulesWidget.vue +300 -0
- package/src/components/CnSchemaRulesWidget/index.js +10 -0
- package/src/components/CnSchemaRulesWidget/schemaRules.js +123 -0
- package/src/components/CnSearchIndexStatus/CnSearchIndexStatus.vue +160 -0
- package/src/components/CnSearchIndexStatus/index.js +10 -0
- package/src/components/CnSearchIndexStatus/searchIndexStatus.js +56 -0
- package/src/components/CnShippedConfigurationSection/CnShippedConfigurationSection.vue +328 -0
- package/src/components/CnShippedConfigurationSection/index.js +9 -0
- package/src/components/CnWidgetGrid/registerDashboardWidgets.js +10 -0
- package/src/components/index.js +4 -0
- package/src/composables/indexSources.js +116 -16
- package/src/css/index-page.css +7 -0
- package/src/index.js +4 -0
- package/src/utils/libraryWidgetKeys.js +1 -0
|
@@ -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: 47024571 bytes
|
|
4
|
+
sha256: c36fab8af124cf6644868934dabda4dada23b502e7bb27dd1b562d5fa62506d6
|
package/dist/nextcloud-vue.css
CHANGED
|
@@ -7092,6 +7092,13 @@ a.cn-kpi-card--board * {
|
|
|
7092
7092
|
color: var(--color-text-maxcontrast);
|
|
7093
7093
|
}
|
|
7094
7094
|
|
|
7095
|
+
/* A note the named source read off its answer, above the rows. */
|
|
7096
|
+
.cn-index-page__source-note {
|
|
7097
|
+
margin: 0 0 8px;
|
|
7098
|
+
color: var(--color-text-maxcontrast);
|
|
7099
|
+
font-size: 0.9em;
|
|
7100
|
+
}
|
|
7101
|
+
|
|
7095
7102
|
.cn-index-page__scope-heading {
|
|
7096
7103
|
display: flex;
|
|
7097
7104
|
flex-direction: column;
|
|
@@ -25769,6 +25776,46 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
|
|
|
25769
25776
|
}
|
|
25770
25777
|
|
|
25771
25778
|
|
|
25779
|
+
.cn-schema-rules__hint[data-v-1d1c1c13] {
|
|
25780
|
+
font-size: 12px;
|
|
25781
|
+
color: var(--color-text-maxcontrast);
|
|
25782
|
+
margin: 4px 0 12px;
|
|
25783
|
+
}
|
|
25784
|
+
.cn-schema-rules__table[data-v-1d1c1c13] {
|
|
25785
|
+
width: 100%;
|
|
25786
|
+
border-collapse: collapse;
|
|
25787
|
+
}
|
|
25788
|
+
.cn-schema-rules__table th[data-v-1d1c1c13],
|
|
25789
|
+
.cn-schema-rules__table td[data-v-1d1c1c13] {
|
|
25790
|
+
text-align: start;
|
|
25791
|
+
padding: 6px 8px;
|
|
25792
|
+
border-bottom: 1px solid var(--color-border);
|
|
25793
|
+
}
|
|
25794
|
+
.cn-schema-rules__trial[data-v-1d1c1c13] {
|
|
25795
|
+
margin-top: 16px;
|
|
25796
|
+
border-top: 1px solid var(--color-border);
|
|
25797
|
+
padding-top: 12px;
|
|
25798
|
+
}
|
|
25799
|
+
.cn-schema-rules__trace[data-v-1d1c1c13] {
|
|
25800
|
+
margin-top: 8px;
|
|
25801
|
+
padding: 8px 12px;
|
|
25802
|
+
border-radius: var(--border-radius-large, 8px);
|
|
25803
|
+
background-color: var(--color-background-hover);
|
|
25804
|
+
}
|
|
25805
|
+
.cn-schema-rules__trace p[data-v-1d1c1c13] {
|
|
25806
|
+
margin: 0;
|
|
25807
|
+
}
|
|
25808
|
+
.cn-schema-rules__verdict[data-v-1d1c1c13] {
|
|
25809
|
+
font-weight: bold;
|
|
25810
|
+
}
|
|
25811
|
+
.cn-schema-rules__error[data-v-1d1c1c13] {
|
|
25812
|
+
color: var(--color-error-text);
|
|
25813
|
+
}
|
|
25814
|
+
.cn-schema-rules__empty[data-v-1d1c1c13] {
|
|
25815
|
+
color: var(--color-text-maxcontrast);
|
|
25816
|
+
}
|
|
25817
|
+
|
|
25818
|
+
|
|
25772
25819
|
.cn-stacked-bar[data-v-29628f56] {
|
|
25773
25820
|
display: flex;
|
|
25774
25821
|
flex-direction: column;
|
|
@@ -51565,6 +51612,106 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
|
|
|
51565
51612
|
}
|
|
51566
51613
|
|
|
51567
51614
|
|
|
51615
|
+
.cn-shipped-configuration__intro[data-v-fd515054],
|
|
51616
|
+
.cn-shipped-configuration__muted[data-v-fd515054] {
|
|
51617
|
+
color: var(--color-text-maxcontrast);
|
|
51618
|
+
}
|
|
51619
|
+
.cn-shipped-configuration__picker[data-v-fd515054] {
|
|
51620
|
+
max-width: 320px;
|
|
51621
|
+
}
|
|
51622
|
+
.cn-shipped-configuration__table[data-v-fd515054] {
|
|
51623
|
+
width: 100%;
|
|
51624
|
+
border-collapse: collapse;
|
|
51625
|
+
margin-top: 12px;
|
|
51626
|
+
/* Nextcloud sets `table { white-space: nowrap }`; a cell here can be a sentence. */
|
|
51627
|
+
white-space: normal;
|
|
51628
|
+
}
|
|
51629
|
+
.cn-shipped-configuration__table th[data-v-fd515054],
|
|
51630
|
+
.cn-shipped-configuration__table td[data-v-fd515054] {
|
|
51631
|
+
padding: 6px 8px;
|
|
51632
|
+
border-bottom: 1px solid var(--color-border);
|
|
51633
|
+
text-align: start;
|
|
51634
|
+
}
|
|
51635
|
+
|
|
51636
|
+
|
|
51637
|
+
/* Label above value, and the label wraps: Nextcloud's settings stylesheet gives a `dt` a fixed width. */
|
|
51638
|
+
.cn-search-index-status__figures[data-v-52b442a4] {
|
|
51639
|
+
display: grid;
|
|
51640
|
+
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
|
|
51641
|
+
gap: 16px 24px;
|
|
51642
|
+
margin-block: 0 12px;
|
|
51643
|
+
}
|
|
51644
|
+
.cn-search-index-status__figures > div[data-v-52b442a4] {
|
|
51645
|
+
display: flex;
|
|
51646
|
+
flex-direction: column;
|
|
51647
|
+
gap: 2px;
|
|
51648
|
+
min-width: 0;
|
|
51649
|
+
}
|
|
51650
|
+
.cn-search-index-status__figures dt[data-v-52b442a4] {
|
|
51651
|
+
display: block;
|
|
51652
|
+
float: none;
|
|
51653
|
+
width: auto;
|
|
51654
|
+
margin: 0;
|
|
51655
|
+
padding: 0;
|
|
51656
|
+
text-align: start;
|
|
51657
|
+
white-space: normal;
|
|
51658
|
+
overflow-wrap: anywhere;
|
|
51659
|
+
color: var(--color-text-maxcontrast);
|
|
51660
|
+
}
|
|
51661
|
+
.cn-search-index-status__figures dd[data-v-52b442a4] {
|
|
51662
|
+
font-weight: bold;
|
|
51663
|
+
margin: 0;
|
|
51664
|
+
overflow-wrap: anywhere;
|
|
51665
|
+
}
|
|
51666
|
+
|
|
51667
|
+
|
|
51668
|
+
.cn-readiness-checklist__description[data-v-4e10a556],
|
|
51669
|
+
.cn-readiness-checklist__empty[data-v-4e10a556] {
|
|
51670
|
+
color: var(--color-text-maxcontrast);
|
|
51671
|
+
margin: 0 0 12px;
|
|
51672
|
+
}
|
|
51673
|
+
.cn-readiness-checklist__group-title[data-v-4e10a556] {
|
|
51674
|
+
margin: 12px 0 4px;
|
|
51675
|
+
}
|
|
51676
|
+
.cn-readiness-checklist__list[data-v-4e10a556] {
|
|
51677
|
+
list-style: none;
|
|
51678
|
+
margin: 0;
|
|
51679
|
+
padding: 0;
|
|
51680
|
+
}
|
|
51681
|
+
.cn-readiness-checklist__item[data-v-4e10a556] {
|
|
51682
|
+
display: flex;
|
|
51683
|
+
gap: calc(var(--default-grid-baseline, 4px) * 3);
|
|
51684
|
+
padding-block: calc(var(--default-grid-baseline, 4px) * 2);
|
|
51685
|
+
border-block-end: 1px solid var(--color-border);
|
|
51686
|
+
}
|
|
51687
|
+
.cn-readiness-checklist__state[data-v-4e10a556] {
|
|
51688
|
+
flex: 0 0 auto;
|
|
51689
|
+
min-width: 6em;
|
|
51690
|
+
font-weight: bold;
|
|
51691
|
+
}
|
|
51692
|
+
.cn-readiness-checklist__state--met[data-v-4e10a556] {
|
|
51693
|
+
color: var(--color-success-text, var(--color-success));
|
|
51694
|
+
}
|
|
51695
|
+
.cn-readiness-checklist__state--unmet[data-v-4e10a556] {
|
|
51696
|
+
color: var(--color-error-text, var(--color-error));
|
|
51697
|
+
}
|
|
51698
|
+
.cn-readiness-checklist__state--unknown[data-v-4e10a556] {
|
|
51699
|
+
color: var(--color-text-maxcontrast);
|
|
51700
|
+
}
|
|
51701
|
+
.cn-readiness-checklist__body[data-v-4e10a556] {
|
|
51702
|
+
display: flex;
|
|
51703
|
+
flex-direction: column;
|
|
51704
|
+
gap: 2px;
|
|
51705
|
+
min-width: 0;
|
|
51706
|
+
}
|
|
51707
|
+
.cn-readiness-checklist__explanation[data-v-4e10a556] {
|
|
51708
|
+
color: var(--color-text-maxcontrast);
|
|
51709
|
+
}
|
|
51710
|
+
.cn-readiness-checklist__failure[data-v-4e10a556] {
|
|
51711
|
+
color: var(--color-error-text, var(--color-error));
|
|
51712
|
+
}
|
|
51713
|
+
|
|
51714
|
+
|
|
51568
51715
|
.cn-ai-agent-picker {
|
|
51569
51716
|
width: 100%;
|
|
51570
51717
|
}
|
package/l10n/en.json
CHANGED
|
@@ -2178,7 +2178,48 @@
|
|
|
2178
2178
|
"When": "When",
|
|
2179
2179
|
"Who": "Who",
|
|
2180
2180
|
"Message": "Message",
|
|
2181
|
-
"That change could not be saved.": "That change could not be saved."
|
|
2181
|
+
"That change could not be saved.": "That change could not be saved.",
|
|
2182
|
+
"You may not read this list.": "You may not read this list.",
|
|
2183
|
+
"Shipped set": "Shipped set",
|
|
2184
|
+
"Newer version": "Newer version",
|
|
2185
|
+
"The register holds {count} of these. None came from a shipped set, so there is no shipped version to compare with.": "The register holds {count} of these. None came from a shipped set, so there is no shipped version to compare with.",
|
|
2186
|
+
"Nothing has been seeded yet.": "Nothing has been seeded yet.",
|
|
2187
|
+
"Could not read the shipped configuration.": "Could not read the shipped configuration.",
|
|
2188
|
+
"Shipped, unchanged": "Shipped, unchanged",
|
|
2189
|
+
"Shipped, changed here": "Shipped, changed here",
|
|
2190
|
+
"Shipped, removed here": "Shipped, removed here",
|
|
2191
|
+
"Yours": "Yours",
|
|
2192
|
+
"Take {version} and lose your change": "Take {version} and lose your change",
|
|
2193
|
+
"Take {version}": "Take {version}",
|
|
2194
|
+
"The newer version was taken.": "The newer version was taken.",
|
|
2195
|
+
"The newer version was not taken.": "The newer version was not taken.",
|
|
2196
|
+
"Tables in scope": "Tables in scope",
|
|
2197
|
+
"Indexes on them": "Indexes on them",
|
|
2198
|
+
"Rebuild without locking": "Rebuild without locking",
|
|
2199
|
+
"Run {command} status on the server for the same figures, and {command} rebuild --apply after a schema change.": "Run {command} status on the server for the same figures, and {command} rebuild --apply after a schema change.",
|
|
2200
|
+
"Never": "Never",
|
|
2201
|
+
"No, a rebuild locks the table it is on": "No, a rebuild locks the table it is on",
|
|
2202
|
+
"Rules on this schema": "Rules on this schema",
|
|
2203
|
+
"Everything the platform checks when an object is saved, in the order it checks it.": "Everything the platform checks when an object is saved, in the order it checks it.",
|
|
2204
|
+
"Nothing is checked on this schema yet.": "Nothing is checked on this schema yet.",
|
|
2205
|
+
"Try": "Try",
|
|
2206
|
+
"Try it": "Try it",
|
|
2207
|
+
"Object to try a rule against": "Object to try a rule against",
|
|
2208
|
+
"Paste an object id": "Paste an object id",
|
|
2209
|
+
"A trial writes nothing. It reads the object as it stands and says what the rule would have decided.": "A trial writes nothing. It reads the object as it stands and says what the rule would have decided.",
|
|
2210
|
+
"It read {operand} and found {value}.": "It read {operand} and found {value}.",
|
|
2211
|
+
"nothing": "nothing",
|
|
2212
|
+
"The rule fired.": "The rule fired.",
|
|
2213
|
+
"The rule did not match this object.": "The rule did not match this object.",
|
|
2214
|
+
"The rule refused the save.": "The rule refused the save.",
|
|
2215
|
+
"The rule could not be evaluated.": "The rule could not be evaluated.",
|
|
2216
|
+
"Only an administrator can read the rules of this schema.": "Only an administrator can read the rules of this schema.",
|
|
2217
|
+
"The rules could not be read. Ask an administrator.": "The rules could not be read. Ask an administrator.",
|
|
2218
|
+
"That object could not be read.": "That object could not be read.",
|
|
2219
|
+
"Nothing to check.": "Nothing to check.",
|
|
2220
|
+
"This could not be read: {reason}": "This could not be read: {reason}",
|
|
2221
|
+
"Still open": "Still open",
|
|
2222
|
+
"The checklist could not be read.": "The checklist could not be read."
|
|
2182
2223
|
},
|
|
2183
2224
|
"plurals": {
|
|
2184
2225
|
"{count} member": [
|
package/l10n/nl.json
CHANGED
|
@@ -2428,7 +2428,48 @@
|
|
|
2428
2428
|
"When": "Wanneer",
|
|
2429
2429
|
"Who": "Wie",
|
|
2430
2430
|
"Message": "Bericht",
|
|
2431
|
-
"That change could not be saved.": "Die wijziging kon niet worden opgeslagen."
|
|
2431
|
+
"That change could not be saved.": "Die wijziging kon niet worden opgeslagen.",
|
|
2432
|
+
"You may not read this list.": "Je mag deze lijst niet lezen.",
|
|
2433
|
+
"Shipped set": "Meegeleverde set",
|
|
2434
|
+
"Newer version": "Nieuwere versie",
|
|
2435
|
+
"The register holds {count} of these. None came from a shipped set, so there is no shipped version to compare with.": "Het register bevat er {count}. Geen ervan kwam uit een meegeleverde set, dus er is geen meegeleverde versie om mee te vergelijken.",
|
|
2436
|
+
"Nothing has been seeded yet.": "Er is nog niets geplaatst.",
|
|
2437
|
+
"Could not read the shipped configuration.": "De meegeleverde configuratie kon niet worden gelezen.",
|
|
2438
|
+
"Shipped, unchanged": "Meegeleverd, ongewijzigd",
|
|
2439
|
+
"Shipped, changed here": "Meegeleverd, hier gewijzigd",
|
|
2440
|
+
"Shipped, removed here": "Meegeleverd, hier verwijderd",
|
|
2441
|
+
"Yours": "Van jezelf",
|
|
2442
|
+
"Take {version} and lose your change": "Neem {version} en verlies je wijziging",
|
|
2443
|
+
"Take {version}": "Neem {version}",
|
|
2444
|
+
"The newer version was taken.": "De nieuwere versie is overgenomen.",
|
|
2445
|
+
"The newer version was not taken.": "De nieuwere versie is niet overgenomen.",
|
|
2446
|
+
"Tables in scope": "Tabellen in bereik",
|
|
2447
|
+
"Indexes on them": "Indexen daarop",
|
|
2448
|
+
"Rebuild without locking": "Herbouwen zonder vergrendelen",
|
|
2449
|
+
"Run {command} status on the server for the same figures, and {command} rebuild --apply after a schema change.": "Draai {command} status op de server voor dezelfde cijfers, en {command} rebuild --apply na een schemawijziging.",
|
|
2450
|
+
"Never": "Nooit",
|
|
2451
|
+
"No, a rebuild locks the table it is on": "Nee, een herbouw vergrendelt de tabel waar hij op staat",
|
|
2452
|
+
"Rules on this schema": "Regels op dit schema",
|
|
2453
|
+
"Everything the platform checks when an object is saved, in the order it checks it.": "Alles wat het platform controleert als een object wordt opgeslagen, in de volgorde waarin het dat doet.",
|
|
2454
|
+
"Nothing is checked on this schema yet.": "Op dit schema wordt nog niets gecontroleerd.",
|
|
2455
|
+
"Try": "Proberen",
|
|
2456
|
+
"Try it": "Probeer het",
|
|
2457
|
+
"Object to try a rule against": "Object om een regel op te proberen",
|
|
2458
|
+
"Paste an object id": "Plak een object-id",
|
|
2459
|
+
"A trial writes nothing. It reads the object as it stands and says what the rule would have decided.": "Een proef schrijft niets. Hij leest het object zoals het nu is en zegt wat de regel zou hebben besloten.",
|
|
2460
|
+
"It read {operand} and found {value}.": "Hij las {operand} en vond {value}.",
|
|
2461
|
+
"nothing": "niets",
|
|
2462
|
+
"The rule fired.": "De regel is afgegaan.",
|
|
2463
|
+
"The rule did not match this object.": "De regel paste niet op dit object.",
|
|
2464
|
+
"The rule refused the save.": "De regel weigerde het opslaan.",
|
|
2465
|
+
"The rule could not be evaluated.": "De regel kon niet worden beoordeeld.",
|
|
2466
|
+
"Only an administrator can read the rules of this schema.": "Alleen een beheerder kan de regels van dit schema lezen.",
|
|
2467
|
+
"The rules could not be read. Ask an administrator.": "De regels konden niet worden gelezen. Vraag het een beheerder.",
|
|
2468
|
+
"That object could not be read.": "Dat object kon niet worden gelezen.",
|
|
2469
|
+
"Nothing to check.": "Er is niets te controleren.",
|
|
2470
|
+
"This could not be read: {reason}": "Dit kon niet worden gelezen: {reason}",
|
|
2471
|
+
"Still open": "Nog open",
|
|
2472
|
+
"The checklist could not be read.": "De lijst kon niet worden gelezen."
|
|
2432
2473
|
},
|
|
2433
2474
|
"plurals": {
|
|
2434
2475
|
"{count} member": [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@conduction/nextcloud-vue",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.121.0",
|
|
4
4
|
"description": "Shared Vue component library for Conduction Nextcloud apps — complements @nextcloud/vue with higher-level components, OpenRegister integration, and NL Design System support",
|
|
5
5
|
"homepage": "https://github.com/ConductionNL/nextcloud-vue#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -210,7 +210,7 @@
|
|
|
210
210
|
:mapLabel="mapLabel"
|
|
211
211
|
:mapIcon="mapIcon"
|
|
212
212
|
:listIcon="listIcon"
|
|
213
|
-
:showSearch="search !== false && (inlineSearch || isBoardLook)"
|
|
213
|
+
:showSearch="search !== false && (inlineSearch || isBoardLook) && !sourceRefusal"
|
|
214
214
|
:searchPlacement="searchPlacement"
|
|
215
215
|
:searchValue="effectiveSearchValue"
|
|
216
216
|
:searchPlaceholder="presented('searchPlaceholder') ? cnTranslate(presented('searchPlaceholder')) : presented('searchPlaceholder')"
|
|
@@ -745,12 +745,31 @@
|
|
|
745
745
|
<span v-if="scopeHeading.subtitle" class="cn-index-page__scope-subtitle" data-testid="cn-index-page-scope-subtitle">{{ scopeHeading.subtitle }}</span>
|
|
746
746
|
</div>
|
|
747
747
|
|
|
748
|
+
<!-- A note the named source read off its answer ("Filters run in
|
|
749
|
+
this order: ..."). -->
|
|
750
|
+
<p v-if="sourceNote && !sourceRefusal"
|
|
751
|
+
class="cn-index-page__source-note"
|
|
752
|
+
data-testid="cn-index-page-source-note">
|
|
753
|
+
{{ sourceNote }}
|
|
754
|
+
</p>
|
|
755
|
+
|
|
748
756
|
<!-- Loading state — initial fetch only; a background refresh keeps the table visible -->
|
|
749
757
|
<div v-if="showInitialLoader" class="cn-index-page__loading">
|
|
750
758
|
<!-- name gives NcLoadingIcon a non-empty aria-label (WCAG role-img-alt); empty name ships an unlabeled role="img" -->
|
|
751
759
|
<NcLoadingIcon :size="32" :name="loadingText" />
|
|
752
760
|
</div>
|
|
753
761
|
|
|
762
|
+
<!-- The named source's server refused this reader: its sentence
|
|
763
|
+
instead of the rows, never an empty list. -->
|
|
764
|
+
<div v-else-if="sourceRefusal"
|
|
765
|
+
class="cn-index-page__source-refusal"
|
|
766
|
+
role="status"
|
|
767
|
+
data-testid="cn-index-page-source-refusal">
|
|
768
|
+
<NcNoteCard type="error">
|
|
769
|
+
{{ sourceRefusal }}
|
|
770
|
+
</NcNoteCard>
|
|
771
|
+
</div>
|
|
772
|
+
|
|
754
773
|
<!-- A search the server refused for its grammar: the term with the
|
|
755
774
|
character it stopped at, the server's reason, and what to do. -->
|
|
756
775
|
<div v-else-if="searchRefusal"
|
|
@@ -774,7 +793,7 @@
|
|
|
774
793
|
</div>
|
|
775
794
|
|
|
776
795
|
<!-- Error state: the latest self-fetch failed (e.g. a search term the server rejects) -->
|
|
777
|
-
<div v-else-if="selfFetchFailed"
|
|
796
|
+
<div v-else-if="selfFetchFailed || sourceFailed"
|
|
778
797
|
class="cn-index-page__empty"
|
|
779
798
|
role="status"
|
|
780
799
|
data-testid="cn-index-page-fetch-error">
|
|
@@ -4107,6 +4126,8 @@ export default {
|
|
|
4107
4126
|
const namedPageSize = Number(props.sourceConfig && props.sourceConfig.limit) > 0 ? Number(props.sourceConfig.limit) : 20
|
|
4108
4127
|
const namedPaging = ref({ page: 1, limit: namedPageSize })
|
|
4109
4128
|
const namedActiveFilters = ref(namedFiltersFromRoute(getCurrentInstance(), props))
|
|
4129
|
+
// The search term on a named source that searches (`searchParam`).
|
|
4130
|
+
const namedSearchTerm = ref('')
|
|
4110
4131
|
|
|
4111
4132
|
const {
|
|
4112
4133
|
isNamedSource,
|
|
@@ -4114,7 +4135,7 @@ export default {
|
|
|
4114
4135
|
namedRows,
|
|
4115
4136
|
namedLoading,
|
|
4116
4137
|
namedQuickFilters,
|
|
4117
|
-
} = useNamedSource(props, { activeQuickFilterIndex, activeFilters: namedActiveFilters, paging: namedPaging })
|
|
4138
|
+
} = useNamedSource(props, { activeQuickFilterIndex, activeFilters: namedActiveFilters, paging: namedPaging, searchTerm: namedSearchTerm })
|
|
4118
4139
|
|
|
4119
4140
|
return {
|
|
4120
4141
|
isBoard: isBoardLook,
|
|
@@ -4127,6 +4148,7 @@ export default {
|
|
|
4127
4148
|
namedQuickFilters,
|
|
4128
4149
|
namedActiveFilters,
|
|
4129
4150
|
namedPaging,
|
|
4151
|
+
namedSearchTerm,
|
|
4130
4152
|
contextMenuOpen,
|
|
4131
4153
|
contextMenuRow,
|
|
4132
4154
|
openContextMenu,
|
|
@@ -4536,6 +4558,46 @@ export default {
|
|
|
4536
4558
|
return this.selfFetchFailed ? readSearchRefusal(this.list.error.value, this.effectiveSearchValue) : null
|
|
4537
4559
|
},
|
|
4538
4560
|
|
|
4561
|
+
/**
|
|
4562
|
+
* Whether the named source sends the search term to its server.
|
|
4563
|
+
*
|
|
4564
|
+
* @return {boolean}
|
|
4565
|
+
*/
|
|
4566
|
+
namedSourceSearches() {
|
|
4567
|
+
return this.isNamedSource && !!this.namedSource && typeof this.namedSource.searchParam === 'string' && this.namedSource.searchParam !== ''
|
|
4568
|
+
},
|
|
4569
|
+
|
|
4570
|
+
/**
|
|
4571
|
+
* The sentence the named source's server refused this reader with, or ''.
|
|
4572
|
+
* While it holds the page shows it instead of the rows, the search and
|
|
4573
|
+
* the tabs: a list nobody may read is not an empty list.
|
|
4574
|
+
*
|
|
4575
|
+
* @return {string}
|
|
4576
|
+
* @spec openspec/changes/index-endpoint-source-states/specs/index-page/spec.md
|
|
4577
|
+
*/
|
|
4578
|
+
sourceRefusal() {
|
|
4579
|
+
return this.isNamedSource && this.namedSource && typeof this.namedSource.refusal === 'function' ? (this.namedSource.refusal() || '') : ''
|
|
4580
|
+
},
|
|
4581
|
+
|
|
4582
|
+
/**
|
|
4583
|
+
* Whether the named source's last load failed (not refused).
|
|
4584
|
+
*
|
|
4585
|
+
* @return {boolean}
|
|
4586
|
+
*/
|
|
4587
|
+
sourceFailed() {
|
|
4588
|
+
return this.isNamedSource && !!this.namedSource && typeof this.namedSource.failed === 'function' && this.namedSource.failed() === true
|
|
4589
|
+
},
|
|
4590
|
+
|
|
4591
|
+
/**
|
|
4592
|
+
* The note the named source read off its last answer, or ''.
|
|
4593
|
+
*
|
|
4594
|
+
* @return {string}
|
|
4595
|
+
* @spec openspec/changes/index-endpoint-source-states/specs/index-page/spec.md
|
|
4596
|
+
*/
|
|
4597
|
+
sourceNote() {
|
|
4598
|
+
return this.isNamedSource && this.namedSource && typeof this.namedSource.note === 'function' ? (this.namedSource.note() || '') : ''
|
|
4599
|
+
},
|
|
4600
|
+
|
|
4539
4601
|
/** @return {string} What to do after a refused search. */
|
|
4540
4602
|
searchRefusalHintText() {
|
|
4541
4603
|
if (this.searchRefusalHint) {
|
|
@@ -5821,6 +5883,9 @@ export default {
|
|
|
5821
5883
|
},
|
|
5822
5884
|
|
|
5823
5885
|
tabStripEntries() {
|
|
5886
|
+
if (this.sourceRefusal) {
|
|
5887
|
+
return []
|
|
5888
|
+
}
|
|
5824
5889
|
if (this.lensTabs.length > 0) {
|
|
5825
5890
|
return this.lensTabs
|
|
5826
5891
|
}
|
|
@@ -6921,6 +6986,9 @@ export default {
|
|
|
6921
6986
|
|
|
6922
6987
|
/** Search term / visible columns / active facet filters for the embedded sidebar. */
|
|
6923
6988
|
effectiveSearchValue() {
|
|
6989
|
+
if (this.namedSourceSearches) {
|
|
6990
|
+
return this.namedSearchTerm || ''
|
|
6991
|
+
}
|
|
6924
6992
|
return this.isSelfFetchMode ? (this.list.searchTerm.value || '') : (this.searchValue || '')
|
|
6925
6993
|
},
|
|
6926
6994
|
|
|
@@ -9691,6 +9759,9 @@ export default {
|
|
|
9691
9759
|
* @return {void}
|
|
9692
9760
|
*/
|
|
9693
9761
|
onSearchEvent(value) {
|
|
9762
|
+
if (this.namedSourceSearches) {
|
|
9763
|
+
this.namedSearchTerm = value || ''
|
|
9764
|
+
}
|
|
9694
9765
|
if (this.isSelfFetchMode && typeof this.list.onSearch === 'function') {
|
|
9695
9766
|
this.list.onSearch(value)
|
|
9696
9767
|
this.persistViewStateToRoute(this.currentViewState())
|
|
@@ -59,6 +59,9 @@ import { searchFieldParams } from '../../utils/searchFieldParams.js'
|
|
|
59
59
|
* chosen values, `{ fieldKey: values }`. Mapped through the source's
|
|
60
60
|
* `searchFields` declaration into loader arguments and merged into every
|
|
61
61
|
* load, so a manifest page's sidebar narrows the SERVER's query.
|
|
62
|
+
* @param {import('vue').Ref<string>} [options.searchTerm] The page's search
|
|
63
|
+
* term. A source that names a `searchParam` gets it as that argument, so the
|
|
64
|
+
* server searches; a new term reloads from the first page.
|
|
62
65
|
*
|
|
63
66
|
* @return {object} { isNamedSource, namedSource, namedRows, namedLoading, namedQuickFilters }
|
|
64
67
|
*/
|
|
@@ -106,6 +109,7 @@ export function useNamedSource(props, options = {}) {
|
|
|
106
109
|
const tabs = manifestTabs || sourceTabs
|
|
107
110
|
const activeIndex = options.activeQuickFilterIndex || null
|
|
108
111
|
const activeFilters = options.activeFilters || null
|
|
112
|
+
const searchTerm = (typeof source.searchParam === 'string' && source.searchParam !== '') ? (options.searchTerm || null) : null
|
|
109
113
|
// A source that pages (`pages: true`) gets the page as `limit` and
|
|
110
114
|
// `offset`, from the pager the page draws for it.
|
|
111
115
|
const paging = source.pages === true ? (options.paging || null) : null
|
|
@@ -169,6 +173,7 @@ export function useNamedSource(props, options = {}) {
|
|
|
169
173
|
activeFilters ? activeFilters.value : null,
|
|
170
174
|
props.entitySource,
|
|
171
175
|
),
|
|
176
|
+
...(searchTerm && searchTerm.value ? { [source.searchParam]: searchTerm.value } : {}),
|
|
172
177
|
...(paging ? { limit: paging.value.limit, offset: (paging.value.page - 1) * paging.value.limit } : {}),
|
|
173
178
|
},
|
|
174
179
|
tokenCtx(),
|
|
@@ -218,6 +223,10 @@ export function useNamedSource(props, options = {}) {
|
|
|
218
223
|
watch(activeFilters, reloadFromFirstPage, { deep: true })
|
|
219
224
|
}
|
|
220
225
|
|
|
226
|
+
if (searchTerm) {
|
|
227
|
+
watch(searchTerm, reloadFromFirstPage)
|
|
228
|
+
}
|
|
229
|
+
|
|
221
230
|
// A new page, or a new page size, is a new request. A new tab or filter
|
|
222
231
|
// first returns to page 1, which reloads through here.
|
|
223
232
|
if (paging) {
|