@conduction/nextcloud-vue 0.1.0-beta.13 → 0.1.0-beta.14
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/nextcloud-vue.cjs.js +20518 -1290
- package/dist/nextcloud-vue.cjs.js.map +1 -1
- package/dist/nextcloud-vue.css +470 -185
- package/dist/nextcloud-vue.esm.js +20518 -1290
- package/dist/nextcloud-vue.esm.js.map +1 -1
- package/l10n/en.json +255 -2
- package/l10n/nl.json +247 -2
- package/package.json +2 -1
- package/src/components/CnAdvancedFormDialog/CnDataTab.vue +1 -4
- package/src/components/CnContextMenu/CnContextMenu.vue +1 -1
- package/src/components/CnDataTable/CnDataTable.vue +7 -2
- package/src/components/CnInfoWidget/CnInfoWidget.vue +0 -1
- package/src/components/CnObjectDataWidget/CnObjectDataWidget.vue +2 -2
- package/src/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue +2 -2
- package/src/components/CnRowActions/CnRowActions.vue +1 -1
- package/src/components/CnSchemaFormDialog/CnSchemaConfigurationTab.vue +36 -34
- package/src/components/CnSchemaFormDialog/CnSchemaFormDialog.vue +47 -36
- package/src/components/CnSchemaFormDialog/CnSchemaPropertiesTab.vue +29 -22
- package/src/components/CnSchemaFormDialog/CnSchemaPropertyActions.vue +170 -163
- package/src/components/CnSchemaFormDialog/CnSchemaSecurityTab.vue +473 -116
- package/src/components/CnStatsBlock/CnStatsBlock.vue +18 -18
- package/src/components/CnTabbedFormDialog/CnTabbedFormDialog.vue +12 -0
- package/src/components/CnWidgetWrapper/CnWidgetWrapper.vue +7 -7
- package/src/composables/useContextMenu.js +1 -1
- package/src/css/CnSchemaFormDialog.css +258 -2
- package/src/css/dashboard.css +1 -0
- package/src/css/detail-page.css +5 -5
- package/src/css/index.css +1 -0
- package/src/css/patches.css +20 -0
- package/src/store/plugins/search.js +7 -7
|
@@ -1,119 +1,119 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<NcActions>
|
|
3
|
-
<NcActionCaption name="Actions" />
|
|
4
|
-
<NcActionButton :aria-label="'Copy '
|
|
3
|
+
<NcActionCaption :name="t('nextcloud-vue', 'Actions')" />
|
|
4
|
+
<NcActionButton :aria-label="t('nextcloud-vue', 'Copy {key}', { key: propertyKey })" @click="$emit('copy-property', propertyKey)">
|
|
5
5
|
<template #icon>
|
|
6
6
|
<ContentCopy :size="16" />
|
|
7
7
|
</template>
|
|
8
|
-
Copy
|
|
8
|
+
{{ t('nextcloud-vue', 'Copy property') }}
|
|
9
9
|
</NcActionButton>
|
|
10
|
-
<NcActionButton :aria-label="'Delete '
|
|
10
|
+
<NcActionButton :aria-label="t('nextcloud-vue', 'Delete {key}', { key: propertyKey })" @click="$emit('delete-property', propertyKey)">
|
|
11
11
|
<template #icon>
|
|
12
12
|
<TrashCanOutline :size="16" />
|
|
13
13
|
</template>
|
|
14
|
-
Delete
|
|
14
|
+
{{ t('nextcloud-vue', 'Delete property') }}
|
|
15
15
|
</NcActionButton>
|
|
16
16
|
|
|
17
17
|
<NcActionSeparator />
|
|
18
|
-
<NcActionCaption name="General" />
|
|
18
|
+
<NcActionCaption :name="t('nextcloud-vue', 'General')" />
|
|
19
19
|
<NcActionCheckbox
|
|
20
20
|
:checked="isPropertyRequired(schema, propertyKey)"
|
|
21
21
|
@update:checked="updatePropertyRequired(propertyKey, $event)">
|
|
22
|
-
Required
|
|
22
|
+
{{ t('nextcloud-vue', 'Required') }}
|
|
23
23
|
</NcActionCheckbox>
|
|
24
24
|
<NcActionCheckbox
|
|
25
25
|
:checked="property.immutable || false"
|
|
26
26
|
@update:checked="updatePropertySetting(propertyKey, 'immutable', $event)">
|
|
27
|
-
Immutable
|
|
27
|
+
{{ t('nextcloud-vue', 'Immutable') }}
|
|
28
28
|
</NcActionCheckbox>
|
|
29
29
|
<NcActionCheckbox
|
|
30
30
|
:checked="property.deprecated || false"
|
|
31
31
|
@update:checked="updatePropertySetting(propertyKey, 'deprecated', $event)">
|
|
32
|
-
Deprecated
|
|
32
|
+
{{ t('nextcloud-vue', 'Deprecated') }}
|
|
33
33
|
</NcActionCheckbox>
|
|
34
34
|
<NcActionCheckbox
|
|
35
35
|
:checked="property.visible !== false"
|
|
36
36
|
@update:checked="updatePropertySetting(propertyKey, 'visible', $event)">
|
|
37
|
-
Visible to end users
|
|
37
|
+
{{ t('nextcloud-vue', 'Visible to end users') }}
|
|
38
38
|
</NcActionCheckbox>
|
|
39
39
|
<NcActionCheckbox
|
|
40
40
|
:checked="property.hideOnCollection || false"
|
|
41
41
|
@update:checked="updatePropertySetting(propertyKey, 'hideOnCollection', $event)">
|
|
42
|
-
Hide in collection view
|
|
42
|
+
{{ t('nextcloud-vue', 'Hide in collection view') }}
|
|
43
43
|
</NcActionCheckbox>
|
|
44
44
|
<NcActionCheckbox
|
|
45
45
|
:checked="property.hideOnForm || false"
|
|
46
46
|
@update:checked="updatePropertySetting(propertyKey, 'hideOnForm', $event)">
|
|
47
|
-
Hide in form view
|
|
47
|
+
{{ t('nextcloud-vue', 'Hide in form view') }}
|
|
48
48
|
</NcActionCheckbox>
|
|
49
49
|
<NcActionCheckbox
|
|
50
50
|
:checked="isFacetableEnabled(property)"
|
|
51
51
|
@update:checked="toggleFacetable(propertyKey, $event)">
|
|
52
|
-
Facetable
|
|
52
|
+
{{ t('nextcloud-vue', 'Facetable') }}
|
|
53
53
|
</NcActionCheckbox>
|
|
54
54
|
<NcActionCheckbox
|
|
55
55
|
v-if="isFacetableEnabled(property)"
|
|
56
56
|
:checked="getFacetConfig(property).aggregated !== false"
|
|
57
57
|
@update:checked="updateFacetConfigField(propertyKey, property, 'aggregated', $event)">
|
|
58
|
-
Aggregated across schemas
|
|
58
|
+
{{ t('nextcloud-vue', 'Aggregated across schemas') }}
|
|
59
59
|
</NcActionCheckbox>
|
|
60
60
|
<NcActionInput
|
|
61
61
|
v-if="isFacetableEnabled(property)"
|
|
62
62
|
:value="getFacetConfig(property).title || ''"
|
|
63
|
-
label="Facet
|
|
63
|
+
:label="t('nextcloud-vue', 'Facet title')"
|
|
64
64
|
@update:value="updateFacetConfigField(propertyKey, property, 'title', $event)" />
|
|
65
65
|
<NcActionInput
|
|
66
66
|
v-if="isFacetableEnabled(property)"
|
|
67
67
|
:value="getFacetConfig(property).description || ''"
|
|
68
|
-
label="Facet
|
|
68
|
+
:label="t('nextcloud-vue', 'Facet description')"
|
|
69
69
|
@update:value="updateFacetConfigField(propertyKey, property, 'description', $event)" />
|
|
70
70
|
<NcActionInput
|
|
71
71
|
v-if="isFacetableEnabled(property)"
|
|
72
72
|
:value="getFacetConfig(property).order != null ? String(getFacetConfig(property).order) : ''"
|
|
73
73
|
type="number"
|
|
74
|
-
label="Facet
|
|
74
|
+
:label="t('nextcloud-vue', 'Facet order')"
|
|
75
75
|
@update:value="updateFacetConfigField(propertyKey, property, 'order', $event)" />
|
|
76
76
|
|
|
77
77
|
<NcActionSeparator />
|
|
78
|
-
<NcActionCaption name="Properties" />
|
|
78
|
+
<NcActionCaption :name="t('nextcloud-vue', 'Properties')" />
|
|
79
79
|
<NcActionInput
|
|
80
80
|
:value="property.title || ''"
|
|
81
|
-
label="Title"
|
|
81
|
+
:label="t('nextcloud-vue', 'Title')"
|
|
82
82
|
@update:value="updatePropertySetting(propertyKey, 'title', $event)" />
|
|
83
83
|
<NcActionInput
|
|
84
84
|
v-if="getFormatOptionsForType(property.type).length > 0"
|
|
85
85
|
v-model="schema.properties[propertyKey].format"
|
|
86
86
|
type="multiselect"
|
|
87
87
|
:options="getFormatOptionsForType(property.type)"
|
|
88
|
-
input-label="Format"
|
|
89
|
-
label="Format" />
|
|
88
|
+
:input-label="t('nextcloud-vue', 'Format')"
|
|
89
|
+
:label="t('nextcloud-vue', 'Format')" />
|
|
90
90
|
<NcActionInput
|
|
91
91
|
:value="property.description || ''"
|
|
92
|
-
label="Description"
|
|
92
|
+
:label="t('nextcloud-vue', 'Description')"
|
|
93
93
|
@update:value="updatePropertySetting(propertyKey, 'description', $event)" />
|
|
94
94
|
<NcActionInput
|
|
95
95
|
:value="property.example || ''"
|
|
96
|
-
label="Example"
|
|
96
|
+
:label="t('nextcloud-vue', 'Example')"
|
|
97
97
|
@update:value="updatePropertySetting(propertyKey, 'example', $event)" />
|
|
98
98
|
<NcActionInput
|
|
99
99
|
:value="property.order || 0"
|
|
100
100
|
type="number"
|
|
101
|
-
label="Order"
|
|
101
|
+
:label="t('nextcloud-vue', 'Order')"
|
|
102
102
|
@update:value="updatePropertySetting(propertyKey, 'order', Number($event))" />
|
|
103
103
|
|
|
104
104
|
<!-- Const and Enum Configuration -->
|
|
105
105
|
<NcActionSeparator />
|
|
106
|
-
<NcActionCaption name="Value
|
|
106
|
+
<NcActionCaption :name="t('nextcloud-vue', 'Value constraints')" />
|
|
107
107
|
<NcActionInput
|
|
108
108
|
:value="property.const || ''"
|
|
109
|
-
label="Constant"
|
|
109
|
+
:label="t('nextcloud-vue', 'Constant')"
|
|
110
110
|
@update:value="updatePropertySetting(propertyKey, 'const', $event === '' ? undefined : $event)" />
|
|
111
111
|
<template v-if="property.enum && property.enum.length > 0">
|
|
112
|
-
<NcActionCaption :name="'Current
|
|
112
|
+
<NcActionCaption :name="t('nextcloud-vue', 'Current enum values ({count})', { count: property.enum.length })" />
|
|
113
113
|
<NcActionButton
|
|
114
114
|
v-for="(enumValue, index) in property.enum"
|
|
115
115
|
:key="`enum-chip-${index}-${enumValue}`"
|
|
116
|
-
:aria-label="'Remove '
|
|
116
|
+
:aria-label="t('nextcloud-vue', 'Remove {value}', { value: enumValue })"
|
|
117
117
|
class="cn-schema-form__enum-action-chip"
|
|
118
118
|
@click="removeEnumValue(propertyKey, index)">
|
|
119
119
|
<template #icon>
|
|
@@ -124,45 +124,45 @@
|
|
|
124
124
|
</template>
|
|
125
125
|
<NcActionInput
|
|
126
126
|
:value="enumInputValue"
|
|
127
|
-
label="Add
|
|
128
|
-
placeholder="Type value and press Enter"
|
|
127
|
+
:label="t('nextcloud-vue', 'Add enum value')"
|
|
128
|
+
:placeholder="t('nextcloud-vue', 'Type value and press Enter')"
|
|
129
129
|
@update:value="enumInputValue = $event"
|
|
130
130
|
@keydown.enter.prevent="addEnumValueAndClear(propertyKey)" />
|
|
131
131
|
|
|
132
132
|
<!-- Default Value Configuration -->
|
|
133
133
|
<NcActionSeparator />
|
|
134
|
-
<NcActionCaption name="Default
|
|
134
|
+
<NcActionCaption :name="t('nextcloud-vue', 'Default value configuration')" />
|
|
135
135
|
<template v-if="property.type === 'string'">
|
|
136
136
|
<NcActionInput
|
|
137
137
|
:value="property.default || ''"
|
|
138
|
-
label="Default
|
|
138
|
+
:label="t('nextcloud-vue', 'Default value')"
|
|
139
139
|
@update:value="updatePropertySetting(propertyKey, 'default', $event === '' ? undefined : $event)" />
|
|
140
140
|
</template>
|
|
141
141
|
<template v-else-if="property.type === 'number' || property.type === 'integer'">
|
|
142
142
|
<NcActionInput
|
|
143
143
|
:value="property.default || 0"
|
|
144
144
|
type="number"
|
|
145
|
-
label="Default
|
|
145
|
+
:label="t('nextcloud-vue', 'Default value')"
|
|
146
146
|
@update:value="updatePropertySetting(propertyKey, 'default', Number($event))" />
|
|
147
147
|
</template>
|
|
148
148
|
<template v-else-if="property.type === 'boolean'">
|
|
149
149
|
<NcActionCheckbox
|
|
150
150
|
:checked="property.default === true"
|
|
151
151
|
@update:checked="updatePropertySetting(propertyKey, 'default', $event)">
|
|
152
|
-
Default
|
|
152
|
+
{{ t('nextcloud-vue', 'Default value') }}
|
|
153
153
|
</NcActionCheckbox>
|
|
154
154
|
</template>
|
|
155
155
|
<template v-else-if="property.type === 'array' && property.items && property.items.type === 'string'">
|
|
156
156
|
<NcActionInput
|
|
157
157
|
:value="getArrayDefaultAsString(property.default)"
|
|
158
|
-
label="Default
|
|
158
|
+
:label="t('nextcloud-vue', 'Default values (comma separated)')"
|
|
159
159
|
placeholder="value1, value2, value3"
|
|
160
160
|
@update:value="updateArrayDefault(propertyKey, $event)" />
|
|
161
161
|
</template>
|
|
162
162
|
<template v-else-if="property.type === 'object'">
|
|
163
163
|
<NcActionInput
|
|
164
164
|
:value="typeof property.default === 'object' ? JSON.stringify(property.default, null, 2) : (property.default || '{}')"
|
|
165
|
-
label="Default
|
|
165
|
+
:label="t('nextcloud-vue', 'Default value (JSON)')"
|
|
166
166
|
@update:value="updateObjectDefault(propertyKey, $event)" />
|
|
167
167
|
</template>
|
|
168
168
|
|
|
@@ -171,122 +171,115 @@
|
|
|
171
171
|
<NcActionCheckbox
|
|
172
172
|
:checked="property.defaultBehavior === 'falsy'"
|
|
173
173
|
@update:checked="updatePropertySetting(propertyKey, 'defaultBehavior', $event ? 'falsy' : 'false')">
|
|
174
|
-
Apply default for empty values
|
|
174
|
+
{{ t('nextcloud-vue', 'Apply default for empty values') }}
|
|
175
175
|
</NcActionCheckbox>
|
|
176
176
|
<NcActionCaption
|
|
177
177
|
v-if="property.defaultBehavior === 'falsy'"
|
|
178
|
-
name="ℹ️ Default will be applied when value is missing, null, or empty string"
|
|
178
|
+
:name="'ℹ️ ' + t('nextcloud-vue', 'Default will be applied when value is missing, null, or empty string')"
|
|
179
179
|
style="color: var(--color-text-lighter); font-size: 11px;" />
|
|
180
180
|
<NcActionCaption
|
|
181
181
|
v-else
|
|
182
|
-
name="ℹ️ Default will only be applied when value is missing or null"
|
|
182
|
+
:name="'ℹ️ ' + t('nextcloud-vue', 'Default will only be applied when value is missing or null')"
|
|
183
183
|
style="color: var(--color-text-lighter); font-size: 11px;" />
|
|
184
184
|
</template>
|
|
185
185
|
|
|
186
186
|
<!-- Type-specific configurations -->
|
|
187
187
|
<template v-if="property.type === 'string'">
|
|
188
188
|
<NcActionSeparator />
|
|
189
|
-
<NcActionCaption name="String
|
|
189
|
+
<NcActionCaption :name="t('nextcloud-vue', 'String configuration')" />
|
|
190
190
|
<NcActionInput
|
|
191
191
|
:value="property.minLength || 0"
|
|
192
192
|
type="number"
|
|
193
|
-
label="Minimum
|
|
193
|
+
:label="t('nextcloud-vue', 'Minimum length')"
|
|
194
194
|
@update:value="updatePropertySetting(propertyKey, 'minLength', Number($event))" />
|
|
195
195
|
<NcActionInput
|
|
196
196
|
:value="property.maxLength || 0"
|
|
197
197
|
type="number"
|
|
198
|
-
label="Maximum
|
|
198
|
+
:label="t('nextcloud-vue', 'Maximum length')"
|
|
199
199
|
@update:value="updatePropertySetting(propertyKey, 'maxLength', Number($event))" />
|
|
200
200
|
<NcActionInput
|
|
201
201
|
:value="property.pattern || ''"
|
|
202
|
-
label="Pattern (regex)"
|
|
202
|
+
:label="t('nextcloud-vue', 'Pattern (regex)')"
|
|
203
203
|
@update:value="updatePropertySetting(propertyKey, 'pattern', $event)" />
|
|
204
204
|
</template>
|
|
205
205
|
|
|
206
206
|
<template v-if="property.type === 'number' || property.type === 'integer'">
|
|
207
207
|
<NcActionSeparator />
|
|
208
|
-
<NcActionCaption name="Number
|
|
208
|
+
<NcActionCaption :name="t('nextcloud-vue', 'Number configuration')" />
|
|
209
209
|
<NcActionInput
|
|
210
210
|
:value="property.minimum || 0"
|
|
211
211
|
type="number"
|
|
212
|
-
label="Minimum
|
|
212
|
+
:label="t('nextcloud-vue', 'Minimum value')"
|
|
213
213
|
@update:value="updatePropertySetting(propertyKey, 'minimum', Number($event))" />
|
|
214
214
|
<NcActionInput
|
|
215
215
|
:value="property.maximum || 0"
|
|
216
216
|
type="number"
|
|
217
|
-
label="Maximum
|
|
217
|
+
:label="t('nextcloud-vue', 'Maximum value')"
|
|
218
218
|
@update:value="updatePropertySetting(propertyKey, 'maximum', Number($event))" />
|
|
219
219
|
<NcActionInput
|
|
220
220
|
:value="property.multipleOf || 0"
|
|
221
221
|
type="number"
|
|
222
|
-
label="Multiple
|
|
222
|
+
:label="t('nextcloud-vue', 'Multiple of')"
|
|
223
223
|
@update:value="updatePropertySetting(propertyKey, 'multipleOf', Number($event))" />
|
|
224
224
|
<NcActionCheckbox
|
|
225
225
|
:checked="property.exclusiveMin || false"
|
|
226
226
|
@update:checked="updatePropertySetting(propertyKey, 'exclusiveMin', $event)">
|
|
227
|
-
Exclusive
|
|
227
|
+
{{ t('nextcloud-vue', 'Exclusive minimum') }}
|
|
228
228
|
</NcActionCheckbox>
|
|
229
229
|
<NcActionCheckbox
|
|
230
230
|
:checked="property.exclusiveMax || false"
|
|
231
231
|
@update:checked="updatePropertySetting(propertyKey, 'exclusiveMax', $event)">
|
|
232
|
-
Exclusive
|
|
232
|
+
{{ t('nextcloud-vue', 'Exclusive maximum') }}
|
|
233
233
|
</NcActionCheckbox>
|
|
234
234
|
</template>
|
|
235
235
|
|
|
236
236
|
<template v-if="property.type === 'array'">
|
|
237
237
|
<NcActionSeparator />
|
|
238
|
-
<NcActionCaption name="Array
|
|
238
|
+
<NcActionCaption :name="t('nextcloud-vue', 'Array configuration')" />
|
|
239
239
|
<NcActionInput
|
|
240
240
|
v-model="schema.properties[propertyKey].items.type"
|
|
241
241
|
type="multiselect"
|
|
242
|
-
:options="
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
{ id: 'integer', label: 'Integer' },
|
|
246
|
-
{ id: 'object', label: 'Object' },
|
|
247
|
-
{ id: 'boolean', label: 'Boolean' },
|
|
248
|
-
{ id: 'file', label: 'File' }
|
|
249
|
-
]"
|
|
250
|
-
input-label="Array Item Type"
|
|
251
|
-
label="Array Item Type" />
|
|
242
|
+
:options="arrayItemTypeOptions"
|
|
243
|
+
:input-label="t('nextcloud-vue', 'Array item type')"
|
|
244
|
+
:label="t('nextcloud-vue', 'Array item type')" />
|
|
252
245
|
<NcActionInput
|
|
253
246
|
:value="property.minItems || 0"
|
|
254
247
|
type="number"
|
|
255
|
-
label="Minimum
|
|
248
|
+
:label="t('nextcloud-vue', 'Minimum items')"
|
|
256
249
|
@update:value="updatePropertySetting(propertyKey, 'minItems', Number($event))" />
|
|
257
250
|
<NcActionInput
|
|
258
251
|
:value="property.maxItems || 0"
|
|
259
252
|
type="number"
|
|
260
|
-
label="Maximum
|
|
253
|
+
:label="t('nextcloud-vue', 'Maximum items')"
|
|
261
254
|
@update:value="updatePropertySetting(propertyKey, 'maxItems', Number($event))" />
|
|
262
255
|
|
|
263
256
|
<!-- Show object configuration for array items when item type is object -->
|
|
264
257
|
<template v-if="property.items && property.items.type === 'object'">
|
|
265
258
|
<NcActionSeparator />
|
|
266
|
-
<NcActionCaption name="Array
|
|
259
|
+
<NcActionCaption :name="t('nextcloud-vue', 'Array item object configuration')" />
|
|
267
260
|
<NcActionInput
|
|
268
261
|
v-model="schema.properties[propertyKey].items.objectConfiguration.handling"
|
|
269
262
|
type="multiselect"
|
|
270
263
|
:options="objectHandlingOptions"
|
|
271
|
-
input-label="Object
|
|
272
|
-
label="Object
|
|
264
|
+
:input-label="t('nextcloud-vue', 'Object handling')"
|
|
265
|
+
:label="t('nextcloud-vue', 'Object handling')" />
|
|
273
266
|
<NcActionInput
|
|
274
267
|
:value="schema.properties[propertyKey].items.$ref"
|
|
275
268
|
type="multiselect"
|
|
276
269
|
:options="availableSchemas"
|
|
277
|
-
input-label="Schema
|
|
278
|
-
label="Schema
|
|
270
|
+
:input-label="t('nextcloud-vue', 'Schema reference')"
|
|
271
|
+
:label="t('nextcloud-vue', 'Schema reference')"
|
|
279
272
|
@update:value="updateArrayItemSchemaReference(propertyKey, $event)" />
|
|
280
273
|
<NcActionCaption
|
|
281
274
|
v-if="isArrayItemRefInvalid(propertyKey)"
|
|
282
|
-
:name="
|
|
275
|
+
:name="'⚠️ ' + t('nextcloud-vue', 'Invalid schema reference: Expected string, got number ({value}). This will be sent to backend as-is.', { value: schema.properties[propertyKey].items.$ref })"
|
|
283
276
|
style="color: var(--color-error); font-weight: bold;" />
|
|
284
277
|
<NcActionInput
|
|
285
278
|
:value="getArrayItemRegisterValue(propertyKey)"
|
|
286
279
|
type="multiselect"
|
|
287
280
|
:options="availableRegisters"
|
|
288
|
-
input-label="Register"
|
|
289
|
-
label="Register (
|
|
281
|
+
:input-label="t('nextcloud-vue', 'Register')"
|
|
282
|
+
:label="t('nextcloud-vue', 'Register (required when schema is selected)')"
|
|
290
283
|
:required="!!schema.properties[propertyKey].items.$ref"
|
|
291
284
|
:disabled="!schema.properties[propertyKey].items.$ref"
|
|
292
285
|
@update:value="updateArrayItemRegisterReference(propertyKey, $event)" />
|
|
@@ -294,59 +287,59 @@
|
|
|
294
287
|
v-model="schema.properties[propertyKey].items.inversedBy"
|
|
295
288
|
type="multiselect"
|
|
296
289
|
:options="getInversedByOptionsForArrayItems(propertyKey)"
|
|
297
|
-
input-label="Inversed
|
|
298
|
-
label="Inversed
|
|
290
|
+
:input-label="t('nextcloud-vue', 'Inversed by property')"
|
|
291
|
+
:label="t('nextcloud-vue', 'Inversed by')"
|
|
299
292
|
:disabled="!schema.properties[propertyKey].items.$ref"
|
|
300
293
|
@update:value="updateInversedByForArrayItems(propertyKey, $event)" />
|
|
301
294
|
<NcActionInput
|
|
302
295
|
:value="getArrayItemQueryParams(propertyKey)"
|
|
303
|
-
label="Query
|
|
296
|
+
:label="t('nextcloud-vue', 'Query parameters')"
|
|
304
297
|
placeholder="e.g. gemmaType=referentiecomponent&_extend=aanbevolenStandaarden"
|
|
305
298
|
@update:value="updateArrayItemQueryParams(propertyKey, $event)" />
|
|
306
299
|
<NcActionCheckbox
|
|
307
300
|
:checked="property.items.writeBack || false"
|
|
308
301
|
@update:checked="updateArrayItemObjectConfigurationSetting(propertyKey, 'writeBack', $event)">
|
|
309
|
-
Write
|
|
302
|
+
{{ t('nextcloud-vue', 'Write back') }}
|
|
310
303
|
</NcActionCheckbox>
|
|
311
304
|
<NcActionCheckbox
|
|
312
305
|
:checked="property.items.removeAfterWriteBack || false"
|
|
313
306
|
@update:checked="updateArrayItemObjectConfigurationSetting(propertyKey, 'removeAfterWriteBack', $event)">
|
|
314
|
-
Remove
|
|
307
|
+
{{ t('nextcloud-vue', 'Remove after write back') }}
|
|
315
308
|
</NcActionCheckbox>
|
|
316
309
|
<NcActionCheckbox
|
|
317
310
|
:checked="property.items.cascadeDelete || false"
|
|
318
311
|
@update:checked="updateArrayItemObjectConfigurationSetting(propertyKey, 'cascadeDelete', $event)">
|
|
319
|
-
Cascade
|
|
312
|
+
{{ t('nextcloud-vue', 'Cascade delete') }}
|
|
320
313
|
</NcActionCheckbox>
|
|
321
314
|
</template>
|
|
322
315
|
</template>
|
|
323
316
|
|
|
324
317
|
<template v-if="property.type === 'object'">
|
|
325
318
|
<NcActionSeparator />
|
|
326
|
-
<NcActionCaption name="Object
|
|
319
|
+
<NcActionCaption :name="t('nextcloud-vue', 'Object configuration')" />
|
|
327
320
|
<NcActionInput
|
|
328
321
|
v-model="schema.properties[propertyKey].objectConfiguration.handling"
|
|
329
322
|
type="multiselect"
|
|
330
323
|
:options="objectHandlingOptions"
|
|
331
|
-
input-label="Object
|
|
332
|
-
label="Object
|
|
324
|
+
:input-label="t('nextcloud-vue', 'Object handling')"
|
|
325
|
+
:label="t('nextcloud-vue', 'Object handling')" />
|
|
333
326
|
<NcActionInput
|
|
334
327
|
:value="schema.properties[propertyKey].$ref"
|
|
335
328
|
type="multiselect"
|
|
336
329
|
:options="availableSchemas"
|
|
337
|
-
input-label="Schema
|
|
338
|
-
label="Schema
|
|
330
|
+
:input-label="t('nextcloud-vue', 'Schema reference')"
|
|
331
|
+
:label="t('nextcloud-vue', 'Schema reference')"
|
|
339
332
|
@update:value="updateSchemaReference(propertyKey, $event)" />
|
|
340
333
|
<NcActionCaption
|
|
341
334
|
v-if="isRefInvalid(propertyKey)"
|
|
342
|
-
:name="
|
|
335
|
+
:name="'⚠️ ' + t('nextcloud-vue', 'Invalid schema reference: Expected string, got number ({value}). This will be sent to backend as-is.', { value: schema.properties[propertyKey].$ref })"
|
|
343
336
|
style="color: var(--color-error); font-weight: bold;" />
|
|
344
337
|
<NcActionInput
|
|
345
338
|
:value="getRegisterValue(propertyKey)"
|
|
346
339
|
type="multiselect"
|
|
347
340
|
:options="availableRegisters"
|
|
348
|
-
input-label="Register"
|
|
349
|
-
label="Register (
|
|
341
|
+
:input-label="t('nextcloud-vue', 'Register')"
|
|
342
|
+
:label="t('nextcloud-vue', 'Register (required when schema is selected)')"
|
|
350
343
|
:required="!!schema.properties[propertyKey].$ref"
|
|
351
344
|
:disabled="!schema.properties[propertyKey].$ref"
|
|
352
345
|
@update:value="updateRegisterReference(propertyKey, $event)" />
|
|
@@ -354,86 +347,86 @@
|
|
|
354
347
|
v-model="schema.properties[propertyKey].inversedBy"
|
|
355
348
|
type="multiselect"
|
|
356
349
|
:options="getInversedByOptions(propertyKey)"
|
|
357
|
-
input-label="Inversed
|
|
358
|
-
label="Inversed
|
|
350
|
+
:input-label="t('nextcloud-vue', 'Inversed by property')"
|
|
351
|
+
:label="t('nextcloud-vue', 'Inversed by')"
|
|
359
352
|
:disabled="!schema.properties[propertyKey].$ref"
|
|
360
353
|
@update:value="updateInversedBy(propertyKey, $event)" />
|
|
361
354
|
<NcActionInput
|
|
362
355
|
:value="getObjectQueryParams(propertyKey)"
|
|
363
|
-
label="Query
|
|
356
|
+
:label="t('nextcloud-vue', 'Query parameters')"
|
|
364
357
|
placeholder="e.g. gemmaType=referentiecomponent&_extend=aanbevolenStandaarden"
|
|
365
358
|
@update:value="updateObjectQueryParams(propertyKey, $event)" />
|
|
366
359
|
<NcActionCheckbox
|
|
367
360
|
:checked="property.writeBack || false"
|
|
368
361
|
@update:checked="updatePropertySetting(propertyKey, 'writeBack', $event)">
|
|
369
|
-
Write
|
|
362
|
+
{{ t('nextcloud-vue', 'Write back') }}
|
|
370
363
|
</NcActionCheckbox>
|
|
371
364
|
<NcActionCheckbox
|
|
372
365
|
:checked="property.removeAfterWriteBack || false"
|
|
373
366
|
@update:checked="updatePropertySetting(propertyKey, 'removeAfterWriteBack', $event)">
|
|
374
|
-
Remove
|
|
367
|
+
{{ t('nextcloud-vue', 'Remove after write back') }}
|
|
375
368
|
</NcActionCheckbox>
|
|
376
369
|
<NcActionCheckbox
|
|
377
370
|
:checked="property.cascadeDelete || false"
|
|
378
371
|
@update:checked="updatePropertySetting(propertyKey, 'cascadeDelete', $event)">
|
|
379
|
-
Cascade
|
|
372
|
+
{{ t('nextcloud-vue', 'Cascade delete') }}
|
|
380
373
|
</NcActionCheckbox>
|
|
381
374
|
</template>
|
|
382
375
|
|
|
383
376
|
<!-- File Configuration -->
|
|
384
377
|
<template v-if="property.type === 'file' || (property.type === 'array' && property.items && property.items.type === 'file')">
|
|
385
378
|
<NcActionSeparator />
|
|
386
|
-
<NcActionCaption name="File
|
|
379
|
+
<NcActionCaption :name="t('nextcloud-vue', 'File configuration')" />
|
|
387
380
|
<NcActionCheckbox
|
|
388
381
|
:checked="getFilePropertySetting(propertyKey, 'autoPublish')"
|
|
389
382
|
@update:checked="updateFilePropertySetting(propertyKey, 'autoPublish', $event)">
|
|
390
|
-
Auto-
|
|
383
|
+
{{ t('nextcloud-vue', 'Auto-publish files') }}
|
|
391
384
|
</NcActionCheckbox>
|
|
392
385
|
<NcActionCaption
|
|
393
386
|
v-if="getFilePropertySetting(propertyKey, 'autoPublish')"
|
|
394
|
-
name="ℹ️ Files uploaded to this property will be automatically publicly shared"
|
|
387
|
+
:name="'ℹ️ ' + t('nextcloud-vue', 'Files uploaded to this property will be automatically publicly shared')"
|
|
395
388
|
style="color: var(--color-text-lighter); font-size: 11px;" />
|
|
396
389
|
<NcActionInput
|
|
397
390
|
:value="(property.allowedTypes || []).join(', ')"
|
|
398
|
-
label="Allowed MIME
|
|
391
|
+
:label="t('nextcloud-vue', 'Allowed MIME types (comma separated)')"
|
|
399
392
|
placeholder="image/png, image/jpeg, application/pdf"
|
|
400
393
|
@update:value="updateFileProperty(propertyKey, 'allowedTypes', $event)" />
|
|
401
394
|
<NcActionInput
|
|
402
395
|
:value="property.maxSize || ''"
|
|
403
396
|
type="number"
|
|
404
|
-
label="Maximum
|
|
397
|
+
:label="t('nextcloud-vue', 'Maximum file size (bytes)')"
|
|
405
398
|
placeholder="5242880"
|
|
406
399
|
@update:value="updateFileProperty(propertyKey, 'maxSize', $event)" />
|
|
407
400
|
<NcActionInput
|
|
408
401
|
:value="getFilePropertyTags(propertyKey, 'allowedTags')"
|
|
409
402
|
type="multiselect"
|
|
410
403
|
:options="availableTagsOptions"
|
|
411
|
-
input-label="Allowed
|
|
412
|
-
label="Allowed
|
|
404
|
+
:input-label="t('nextcloud-vue', 'Allowed tags')"
|
|
405
|
+
:label="t('nextcloud-vue', 'Allowed tags (select from available tags)')"
|
|
413
406
|
multiple
|
|
414
407
|
@update:value="updateFilePropertyTags(propertyKey, 'allowedTags', $event)" />
|
|
415
408
|
<NcActionInput
|
|
416
409
|
:value="getFilePropertyTags(propertyKey, 'autoTags')"
|
|
417
410
|
type="multiselect"
|
|
418
411
|
:options="availableTagsOptions"
|
|
419
|
-
input-label="Auto
|
|
420
|
-
label="Auto
|
|
412
|
+
:input-label="t('nextcloud-vue', 'Auto tags')"
|
|
413
|
+
:label="t('nextcloud-vue', 'Auto tags (automatically applied to uploaded files)')"
|
|
421
414
|
multiple
|
|
422
415
|
@update:value="updateFilePropertyTags(propertyKey, 'autoTags', $event)" />
|
|
423
416
|
</template>
|
|
424
417
|
|
|
425
418
|
<!-- Property-level Table Configuration -->
|
|
426
419
|
<NcActionSeparator />
|
|
427
|
-
<NcActionCaption name="Table" />
|
|
420
|
+
<NcActionCaption :name="t('nextcloud-vue', 'Table')" />
|
|
428
421
|
<NcActionCheckbox
|
|
429
422
|
:checked="getPropertyTableSetting(propertyKey, 'default')"
|
|
430
423
|
@update:checked="updatePropertyTableSetting(propertyKey, 'default', $event)">
|
|
431
|
-
Default
|
|
424
|
+
{{ t('nextcloud-vue', 'Default') }}
|
|
432
425
|
</NcActionCheckbox>
|
|
433
426
|
|
|
434
427
|
<!-- Property-level Security Configuration -->
|
|
435
428
|
<NcActionSeparator />
|
|
436
|
-
<NcActionCaption name="Property
|
|
429
|
+
<NcActionCaption :name="t('nextcloud-vue', 'Property security')" />
|
|
437
430
|
|
|
438
431
|
<template v-if="!loadingGroups">
|
|
439
432
|
<!-- Current Property Permissions List -->
|
|
@@ -445,20 +438,20 @@
|
|
|
445
438
|
<NcActionButton
|
|
446
439
|
v-if="permission.groupId !== 'admin'"
|
|
447
440
|
:key="`${propertyKey}-perm-remove-${permission.group}`"
|
|
448
|
-
:aria-label="
|
|
441
|
+
:aria-label="t('nextcloud-vue', 'Remove {group} permissions', { group: permission.group })"
|
|
449
442
|
class="cn-schema-form__property-permission-remove-btn"
|
|
450
443
|
@click="removePropertyGroupPermissions(propertyKey, permission.group)">
|
|
451
444
|
<template #icon>
|
|
452
445
|
<Close :size="16" />
|
|
453
446
|
</template>
|
|
454
|
-
Remove {{ permission.group }}
|
|
447
|
+
{{ t('nextcloud-vue', 'Remove {group}', { group: permission.group }) }}
|
|
455
448
|
</NcActionButton>
|
|
456
449
|
</div>
|
|
457
450
|
|
|
458
451
|
<!-- Show inheritance status if no specific permissions -->
|
|
459
452
|
<NcActionCaption
|
|
460
453
|
v-if="!hasPropertyAnyPermissions(propertyKey)"
|
|
461
|
-
name="📄 Inherits schema permissions"
|
|
454
|
+
:name="'📄 ' + t('nextcloud-vue', 'Inherits schema permissions')"
|
|
462
455
|
style="color: var(--color-success); font-size: 11px;" />
|
|
463
456
|
|
|
464
457
|
<!-- Add Permission Interface -->
|
|
@@ -467,31 +460,31 @@
|
|
|
467
460
|
v-model="propertyNewPermissionGroup"
|
|
468
461
|
type="multiselect"
|
|
469
462
|
:options="getAvailableGroupsForProperty()"
|
|
470
|
-
input-label="Group"
|
|
471
|
-
label="Add
|
|
472
|
-
placeholder="Select group..." />
|
|
463
|
+
:input-label="t('nextcloud-vue', 'Group')"
|
|
464
|
+
:label="t('nextcloud-vue', 'Add group permission')"
|
|
465
|
+
:placeholder="t('nextcloud-vue', 'Select group...')" />
|
|
473
466
|
|
|
474
467
|
<template v-if="propertyNewPermissionGroup">
|
|
475
|
-
<NcActionCaption name="Select
|
|
468
|
+
<NcActionCaption :name="t('nextcloud-vue', 'Select permissions:')" />
|
|
476
469
|
<NcActionCheckbox
|
|
477
470
|
:checked="propertyNewPermissionCreate"
|
|
478
471
|
@update:checked="propertyNewPermissionCreate = $event">
|
|
479
|
-
Create (C)
|
|
472
|
+
{{ t('nextcloud-vue', 'Create (C)') }}
|
|
480
473
|
</NcActionCheckbox>
|
|
481
474
|
<NcActionCheckbox
|
|
482
475
|
:checked="propertyNewPermissionRead"
|
|
483
476
|
@update:checked="propertyNewPermissionRead = $event">
|
|
484
|
-
Read (R)
|
|
477
|
+
{{ t('nextcloud-vue', 'Read (R)') }}
|
|
485
478
|
</NcActionCheckbox>
|
|
486
479
|
<NcActionCheckbox
|
|
487
480
|
:checked="propertyNewPermissionUpdate"
|
|
488
481
|
@update:checked="propertyNewPermissionUpdate = $event">
|
|
489
|
-
Update (U)
|
|
482
|
+
{{ t('nextcloud-vue', 'Update (U)') }}
|
|
490
483
|
</NcActionCheckbox>
|
|
491
484
|
<NcActionCheckbox
|
|
492
485
|
:checked="propertyNewPermissionDelete"
|
|
493
486
|
@update:checked="propertyNewPermissionDelete = $event">
|
|
494
|
-
Delete (D)
|
|
487
|
+
{{ t('nextcloud-vue', 'Delete (D)') }}
|
|
495
488
|
</NcActionCheckbox>
|
|
496
489
|
|
|
497
490
|
<NcActionButton
|
|
@@ -500,17 +493,18 @@
|
|
|
500
493
|
<template #icon>
|
|
501
494
|
<Plus :size="16" />
|
|
502
495
|
</template>
|
|
503
|
-
Add
|
|
496
|
+
{{ t('nextcloud-vue', 'Add permission') }}
|
|
504
497
|
</NcActionButton>
|
|
505
498
|
</template>
|
|
506
499
|
</template>
|
|
507
500
|
<template v-else>
|
|
508
|
-
<NcActionCaption name="Loading groups..." />
|
|
501
|
+
<NcActionCaption :name="t('nextcloud-vue', 'Loading groups...')" />
|
|
509
502
|
</template>
|
|
510
503
|
</NcActions>
|
|
511
504
|
</template>
|
|
512
505
|
|
|
513
506
|
<script>
|
|
507
|
+
import { translate as t } from '@nextcloud/l10n'
|
|
514
508
|
import {
|
|
515
509
|
NcActions,
|
|
516
510
|
NcActionButton,
|
|
@@ -583,13 +577,6 @@ export default {
|
|
|
583
577
|
propertyNewPermissionRead: false,
|
|
584
578
|
propertyNewPermissionUpdate: false,
|
|
585
579
|
propertyNewPermissionDelete: false,
|
|
586
|
-
objectHandlingOptions: [
|
|
587
|
-
{ id: 'nested-object', label: 'Nested Object' },
|
|
588
|
-
{ id: 'related-object', label: 'Related Object' },
|
|
589
|
-
{ id: 'nested-schema', label: 'Nested Schema' },
|
|
590
|
-
{ id: 'related-schema', label: 'Related Schema' },
|
|
591
|
-
{ id: 'uri', label: 'URI' },
|
|
592
|
-
],
|
|
593
580
|
}
|
|
594
581
|
},
|
|
595
582
|
computed: {
|
|
@@ -597,8 +584,29 @@ export default {
|
|
|
597
584
|
schema() {
|
|
598
585
|
return this.schemaItem
|
|
599
586
|
},
|
|
587
|
+
objectHandlingOptions() {
|
|
588
|
+
return [
|
|
589
|
+
{ id: 'nested-object', label: t('nextcloud-vue', 'Nested object') },
|
|
590
|
+
{ id: 'related-object', label: t('nextcloud-vue', 'Related object') },
|
|
591
|
+
{ id: 'nested-schema', label: t('nextcloud-vue', 'Nested schema') },
|
|
592
|
+
{ id: 'related-schema', label: t('nextcloud-vue', 'Related schema') },
|
|
593
|
+
{ id: 'uri', label: 'URI' },
|
|
594
|
+
]
|
|
595
|
+
},
|
|
596
|
+
arrayItemTypeOptions() {
|
|
597
|
+
return [
|
|
598
|
+
{ id: 'string', label: t('nextcloud-vue', 'String') },
|
|
599
|
+
{ id: 'number', label: t('nextcloud-vue', 'Number') },
|
|
600
|
+
{ id: 'integer', label: t('nextcloud-vue', 'Integer') },
|
|
601
|
+
{ id: 'object', label: t('nextcloud-vue', 'Object') },
|
|
602
|
+
{ id: 'boolean', label: t('nextcloud-vue', 'Boolean') },
|
|
603
|
+
{ id: 'file', label: t('nextcloud-vue', 'File') },
|
|
604
|
+
]
|
|
605
|
+
},
|
|
600
606
|
},
|
|
601
607
|
methods: {
|
|
608
|
+
t,
|
|
609
|
+
|
|
602
610
|
// --- General helpers ---
|
|
603
611
|
|
|
604
612
|
isPropertyRequired(schema, key) {
|
|
@@ -618,7 +626,6 @@ export default {
|
|
|
618
626
|
|
|
619
627
|
checkPropertiesModified() {
|
|
620
628
|
// Bubble up to parent — the parent's deep watcher handles this
|
|
621
|
-
// This is a no-op placeholder; modifications are detected by the parent's watcher
|
|
622
629
|
},
|
|
623
630
|
|
|
624
631
|
// --- Property setting updates ---
|
|
@@ -715,50 +722,50 @@ export default {
|
|
|
715
722
|
getFormatOptionsForType(type) {
|
|
716
723
|
const formatMap = {
|
|
717
724
|
string: [
|
|
718
|
-
{ id: 'text', label: 'Text' },
|
|
719
|
-
{ id: 'markdown', label: 'Markdown' },
|
|
720
|
-
{ id: 'html', label: 'HTML' },
|
|
721
|
-
{ id: 'date-time', label: 'Date
|
|
722
|
-
{ id: 'date', label: 'Date' },
|
|
723
|
-
{ id: 'time', label: 'Time' },
|
|
724
|
-
{ id: 'duration', label: 'Duration' },
|
|
725
|
-
{ id: 'email', label: 'Email' },
|
|
726
|
-
{ id: 'idn-email', label: 'IDN
|
|
727
|
-
{ id: 'hostname', label: 'Hostname' },
|
|
728
|
-
{ id: 'idn-hostname', label: 'IDN
|
|
725
|
+
{ id: 'text', label: t('nextcloud-vue', 'Text') },
|
|
726
|
+
{ id: 'markdown', label: t('nextcloud-vue', 'Markdown') },
|
|
727
|
+
{ id: 'html', label: t('nextcloud-vue', 'HTML') },
|
|
728
|
+
{ id: 'date-time', label: t('nextcloud-vue', 'Date time') },
|
|
729
|
+
{ id: 'date', label: t('nextcloud-vue', 'Date') },
|
|
730
|
+
{ id: 'time', label: t('nextcloud-vue', 'Time') },
|
|
731
|
+
{ id: 'duration', label: t('nextcloud-vue', 'Duration') },
|
|
732
|
+
{ id: 'email', label: t('nextcloud-vue', 'Email') },
|
|
733
|
+
{ id: 'idn-email', label: t('nextcloud-vue', 'IDN email') },
|
|
734
|
+
{ id: 'hostname', label: t('nextcloud-vue', 'Hostname') },
|
|
735
|
+
{ id: 'idn-hostname', label: t('nextcloud-vue', 'IDN hostname') },
|
|
729
736
|
{ id: 'ipv4', label: 'IPv4' },
|
|
730
737
|
{ id: 'ipv6', label: 'IPv6' },
|
|
731
738
|
{ id: 'uri', label: 'URI' },
|
|
732
|
-
{ id: 'uri-reference', label: 'URI
|
|
739
|
+
{ id: 'uri-reference', label: t('nextcloud-vue', 'URI reference') },
|
|
733
740
|
{ id: 'iri', label: 'IRI' },
|
|
734
|
-
{ id: 'iri-reference', label: 'IRI
|
|
741
|
+
{ id: 'iri-reference', label: t('nextcloud-vue', 'IRI reference') },
|
|
735
742
|
{ id: 'uuid', label: 'UUID' },
|
|
736
|
-
{ id: 'uri-template', label: 'URI
|
|
737
|
-
{ id: 'json-pointer', label: 'JSON
|
|
738
|
-
{ id: 'relative-json-pointer', label: 'Relative JSON
|
|
739
|
-
{ id: 'regex', label: 'Regex' },
|
|
740
|
-
{ id: 'binary', label: 'Binary' },
|
|
741
|
-
{ id: 'byte', label: 'Byte' },
|
|
742
|
-
{ id: 'password', label: 'Password' },
|
|
743
|
+
{ id: 'uri-template', label: t('nextcloud-vue', 'URI template') },
|
|
744
|
+
{ id: 'json-pointer', label: t('nextcloud-vue', 'JSON pointer') },
|
|
745
|
+
{ id: 'relative-json-pointer', label: t('nextcloud-vue', 'Relative JSON pointer') },
|
|
746
|
+
{ id: 'regex', label: t('nextcloud-vue', 'Regex') },
|
|
747
|
+
{ id: 'binary', label: t('nextcloud-vue', 'Binary') },
|
|
748
|
+
{ id: 'byte', label: t('nextcloud-vue', 'Byte') },
|
|
749
|
+
{ id: 'password', label: t('nextcloud-vue', 'Password') },
|
|
743
750
|
{ id: 'rsin', label: 'RSIN' },
|
|
744
751
|
{ id: 'kvk', label: 'KVK' },
|
|
745
752
|
{ id: 'bsn', label: 'BSN' },
|
|
746
753
|
{ id: 'oidn', label: 'OIDN' },
|
|
747
|
-
{ id: 'telephone', label: 'Telephone' },
|
|
748
|
-
{ id: 'accessUrl', label: 'Access URL' },
|
|
749
|
-
{ id: 'shareUrl', label: 'Share URL' },
|
|
750
|
-
{ id: 'downloadUrl', label: 'Download URL' },
|
|
751
|
-
{ id: 'extension', label: 'Extension' },
|
|
752
|
-
{ id: 'filename', label: 'Filename' },
|
|
753
|
-
{ id: 'semver', label: 'Semantic
|
|
754
|
+
{ id: 'telephone', label: t('nextcloud-vue', 'Telephone') },
|
|
755
|
+
{ id: 'accessUrl', label: t('nextcloud-vue', 'Access URL') },
|
|
756
|
+
{ id: 'shareUrl', label: t('nextcloud-vue', 'Share URL') },
|
|
757
|
+
{ id: 'downloadUrl', label: t('nextcloud-vue', 'Download URL') },
|
|
758
|
+
{ id: 'extension', label: t('nextcloud-vue', 'Extension') },
|
|
759
|
+
{ id: 'filename', label: t('nextcloud-vue', 'Filename') },
|
|
760
|
+
{ id: 'semver', label: t('nextcloud-vue', 'Semantic version') },
|
|
754
761
|
{ id: 'url', label: 'URL' },
|
|
755
|
-
{ id: 'color', label: 'Color' },
|
|
756
|
-
{ id: 'color-hex', label: 'Color
|
|
757
|
-
{ id: 'color-hex-alpha', label: 'Color
|
|
758
|
-
{ id: 'color-rgb', label: 'Color RGB' },
|
|
759
|
-
{ id: 'color-rgba', label: 'Color RGBA' },
|
|
760
|
-
{ id: 'color-hsl', label: 'Color HSL' },
|
|
761
|
-
{ id: 'color-hsla', label: 'Color HSLA' },
|
|
762
|
+
{ id: 'color', label: t('nextcloud-vue', 'Color') },
|
|
763
|
+
{ id: 'color-hex', label: t('nextcloud-vue', 'Color hex') },
|
|
764
|
+
{ id: 'color-hex-alpha', label: t('nextcloud-vue', 'Color hex alpha') },
|
|
765
|
+
{ id: 'color-rgb', label: t('nextcloud-vue', 'Color RGB') },
|
|
766
|
+
{ id: 'color-rgba', label: t('nextcloud-vue', 'Color RGBA') },
|
|
767
|
+
{ id: 'color-hsl', label: t('nextcloud-vue', 'Color HSL') },
|
|
768
|
+
{ id: 'color-hsla', label: t('nextcloud-vue', 'Color HSLA') },
|
|
762
769
|
],
|
|
763
770
|
number: [],
|
|
764
771
|
integer: [],
|
|
@@ -1239,9 +1246,9 @@ export default {
|
|
|
1239
1246
|
},
|
|
1240
1247
|
|
|
1241
1248
|
getDisplayGroupName(groupId) {
|
|
1242
|
-
if (groupId === 'public') return 'Public'
|
|
1243
|
-
if (groupId === 'authenticated') return 'Authenticated'
|
|
1244
|
-
if (groupId === 'admin') return 'Admin'
|
|
1249
|
+
if (groupId === 'public') return t('nextcloud-vue', 'Public')
|
|
1250
|
+
if (groupId === 'authenticated') return t('nextcloud-vue', 'Authenticated')
|
|
1251
|
+
if (groupId === 'admin') return t('nextcloud-vue', 'Admin')
|
|
1245
1252
|
|
|
1246
1253
|
const group = this.userGroups.find(g => g.id === groupId)
|
|
1247
1254
|
return group ? (group.displayname || group.id) : groupId
|
|
@@ -1276,7 +1283,7 @@ export default {
|
|
|
1276
1283
|
})
|
|
1277
1284
|
|
|
1278
1285
|
permissionsList.push({
|
|
1279
|
-
group: 'Admin',
|
|
1286
|
+
group: t('nextcloud-vue', 'Admin'),
|
|
1280
1287
|
groupId: 'admin',
|
|
1281
1288
|
rights: 'C,R,U,D',
|
|
1282
1289
|
})
|
|
@@ -1294,8 +1301,8 @@ export default {
|
|
|
1294
1301
|
|
|
1295
1302
|
getAvailableGroupsForProperty() {
|
|
1296
1303
|
return [
|
|
1297
|
-
{ id: 'public', label: 'Public (
|
|
1298
|
-
{ id: 'authenticated', label: 'Authenticated' },
|
|
1304
|
+
{ id: 'public', label: t('nextcloud-vue', 'Public (unauthenticated)') },
|
|
1305
|
+
{ id: 'authenticated', label: t('nextcloud-vue', 'Authenticated') },
|
|
1299
1306
|
...this.sortedUserGroups.map(group => ({
|
|
1300
1307
|
id: group.id,
|
|
1301
1308
|
label: group.displayname || group.id,
|