1616 - along with this program. If not, see <http://www.gnu.org/licenses/>.
1717 -->
1818<template >
19- <div >
20- <NcListItem class="version"
21- :name =" versionLabel "
22- :force-display-actions =" true "
23- data-files-versions-version
24- @click =" click " >
25- <template #icon >
26- <div v-if =" !(loadPreview || previewLoaded)" class =" version__image" />
27- <img v-else-if =" (isCurrent || version.hasPreview) && !previewErrored"
28- :src =" version.previewUrl"
29- alt =" "
30- decoding =" async"
31- fetchpriority =" low"
32- loading =" lazy"
33- class =" version__image"
34- @load =" previewLoaded = true"
35- @error =" previewErrored = true" >
36- <div v-else
37- class =" version__image" >
38- <ImageOffOutline :size =" 20 " />
39- </div >
40- </template >
41- <template #subname >
42- <div class =" version__info" >
43- <span :title =" formattedDate" >{{ version.mtime | humanDateFromNow }}</span >
44- <!-- Separate dot to improve alignement -->
45- <span class =" version__info__size" >•</span >
46- <span class =" version__info__size" >{{ version.size | humanReadableSize }}</span >
47- </div >
48- </template >
49- <template #actions >
50- <NcActionButton v-if =" enableLabeling "
51- :close-after-click =" true "
52- @click =" openVersionLabelModal " >
53- <template #icon >
54- <Pencil :size =" 22 " />
55- </template >
56- {{ version.label === '' ? t('files_versions', 'Name this version') : t('files_versions', 'Edit version name') }}
57- </NcActionButton >
58- <NcActionButton v-if =" ! isCurrent && canView && canCompare "
59- :close-after-click =" true "
60- @click =" compareVersion " >
61- <template #icon >
62- <FileCompare :size =" 22 " />
63- </template >
64- {{ t('files_versions', 'Compare to current version') }}
65- </NcActionButton >
66- <NcActionButton v-if =" ! isCurrent "
67- :close-after-click =" true "
68- @click =" restoreVersion " >
69- <template #icon >
70- <BackupRestore :size =" 22 " />
71- </template >
72- {{ t('files_versions', 'Restore version') }}
73- </NcActionButton >
74- <NcActionLink :href =" downloadURL "
75- :close-after-click =" true "
76- :download =" downloadURL " >
77- <template #icon >
78- <Download :size =" 22 " />
79- </template >
80- {{ t('files_versions', 'Download version') }}
81- </NcActionLink >
82- <NcActionButton v-if =" ! isCurrent && enableDeletion "
83- :close-after-click =" true "
84- @click =" deleteVersion " >
85- <template #icon >
86- <Delete :size =" 22 " />
87- </template >
88- {{ t('files_versions', 'Delete version') }}
89- </NcActionButton >
90- </template >
91- </NcListItem >
92- <NcModal v-if =" showVersionLabelForm "
93- :title =" t (' files_versions' , ' Name this version' )"
94- @close =" showVersionLabelForm = false " >
95- <form class =" version-label-modal"
96- @submit.prevent =" setVersionLabel(formVersionLabelValue)" >
97- <label >
98- <div class =" version-label-modal__title" >{{ t('files_versions', 'Version name') }}</div >
99- <NcTextField ref="labelInput"
100- :value .sync =" formVersionLabelValue "
101- :placeholder =" t (' files_versions' , ' Version name' )"
102- :label-outside =" true " />
103- </label >
104-
105- <div class =" version-label-modal__info" >
106- {{ t('files_versions', 'Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.') }}
107- </div >
108-
109- <div class =" version-label-modal__actions" >
110- <NcButton :disabled =" formVersionLabelValue .trim ().length === 0 " @click =" setVersionLabel (' ' )" >
111- {{ t('files_versions', 'Remove version name') }}
112- </NcButton >
113- <NcButton type="primary" native-type="submit">
114- <template #icon >
115- <Check />
116- </template >
117- {{ t('files_versions', 'Save version name') }}
118- </NcButton >
119- </div >
120- </form >
121- </NcModal >
122- </div >
19+ <NcListItem class="version"
20+ :name =" versionLabel "
21+ :force-display-actions =" true "
22+ data-files-versions-version
23+ @click =" click " >
24+ <template #icon >
25+ <div v-if =" !(loadPreview || previewLoaded)" class =" version__image" />
26+ <img v-else-if =" (isCurrent || version.hasPreview) && !previewErrored"
27+ :src =" version.previewUrl"
28+ alt =" "
29+ decoding =" async"
30+ fetchpriority =" low"
31+ loading =" lazy"
32+ class =" version__image"
33+ @load =" previewLoaded = true"
34+ @error =" previewErrored = true" >
35+ <div v-else
36+ class =" version__image" >
37+ <ImageOffOutline :size =" 20 " />
38+ </div >
39+ </template >
40+ <template #subname >
41+ <div class =" version__info" >
42+ <span :title =" formattedDate" >{{ version.mtime | humanDateFromNow }}</span >
43+ <!-- Separate dot to improve alignement -->
44+ <span class =" version__info__size" >•</span >
45+ <span class =" version__info__size" >{{ version.size | humanReadableSize }}</span >
46+ </div >
47+ </template >
48+ <template #actions >
49+ <NcActionButton v-if =" enableLabeling "
50+ :close-after-click =" true "
51+ @click =" labelUpdate " >
52+ <template #icon >
53+ <Pencil :size =" 22 " />
54+ </template >
55+ {{ version.label === '' ? t('files_versions', 'Name this version') : t('files_versions', 'Edit version name') }}
56+ </NcActionButton >
57+ <NcActionButton v-if =" ! isCurrent && canView && canCompare "
58+ :close-after-click =" true "
59+ @click =" compareVersion " >
60+ <template #icon >
61+ <FileCompare :size =" 22 " />
62+ </template >
63+ {{ t('files_versions', 'Compare to current version') }}
64+ </NcActionButton >
65+ <NcActionButton v-if =" ! isCurrent "
66+ :close-after-click =" true "
67+ @click =" restoreVersion " >
68+ <template #icon >
69+ <BackupRestore :size =" 22 " />
70+ </template >
71+ {{ t('files_versions', 'Restore version') }}
72+ </NcActionButton >
73+ <NcActionLink :href =" downloadURL "
74+ :close-after-click =" true "
75+ :download =" downloadURL " >
76+ <template #icon >
77+ <Download :size =" 22 " />
78+ </template >
79+ {{ t('files_versions', 'Download version') }}
80+ </NcActionLink >
81+ <NcActionButton v-if =" ! isCurrent && enableDeletion "
82+ :close-after-click =" true "
83+ @click =" deleteVersion " >
84+ <template #icon >
85+ <Delete :size =" 22 " />
86+ </template >
87+ {{ t('files_versions', 'Delete version') }}
88+ </NcActionButton >
89+ </template >
90+ </NcListItem >
12391</template >
12492
12593<script >
12694import BackupRestore from ' vue-material-design-icons/BackupRestore.vue'
12795import Download from ' vue-material-design-icons/Download.vue'
12896import FileCompare from ' vue-material-design-icons/FileCompare.vue'
12997import Pencil from ' vue-material-design-icons/Pencil.vue'
130- import Check from ' vue-material-design-icons/Check.vue'
13198import Delete from ' vue-material-design-icons/Delete.vue'
13299import ImageOffOutline from ' vue-material-design-icons/ImageOffOutline.vue'
133100import NcActionButton from ' @nextcloud/vue/dist/Components/NcActionButton.js'
134101import NcActionLink from ' @nextcloud/vue/dist/Components/NcActionLink.js'
135102import NcListItem from ' @nextcloud/vue/dist/Components/NcListItem.js'
136- import NcModal from ' @nextcloud/vue/dist/Components/NcModal.js'
137- import NcButton from ' @nextcloud/vue/dist/Components/NcButton.js'
138- import NcTextField from ' @nextcloud/vue/dist/Components/NcTextField.js'
139103import Tooltip from ' @nextcloud/vue/dist/Directives/Tooltip.js'
140104import moment from ' @nextcloud/moment'
141105import { translate as t } from ' @nextcloud/l10n'
@@ -149,14 +113,10 @@ export default {
149113 NcActionLink,
150114 NcActionButton,
151115 NcListItem,
152- NcModal,
153- NcButton,
154- NcTextField,
155116 BackupRestore,
156117 Download,
157118 FileCompare,
158119 Pencil,
159- Check,
160120 Delete,
161121 ImageOffOutline,
162122 },
@@ -214,8 +174,6 @@ export default {
214174 return {
215175 previewLoaded: false ,
216176 previewErrored: false ,
217- showVersionLabelForm: false ,
218- formVersionLabelValue: this .version .label ,
219177 capabilities: loadState (' core' , ' capabilities' , { files: { version_labeling: false , version_deletion: false } }),
220178 }
221179 },
@@ -268,23 +226,14 @@ export default {
268226 },
269227 },
270228 methods: {
271- openVersionLabelModal () {
272- this .showVersionLabelForm = true
273- this .$nextTick (() => {
274- this .$refs .labelInput .$el .getElementsByTagName (' input' )[0 ].focus ()
275- })
229+ labelUpdate () {
230+ this .$emit (' label-update-request' )
276231 },
277232
278233 restoreVersion () {
279234 this .$emit (' restore' , this .version )
280235 },
281236
282- setVersionLabel (label ) {
283- this .formVersionLabelValue = label
284- this .showVersionLabelForm = false
285- this .$emit (' label-update' , this .version , label)
286- },
287-
288237 deleteVersion () {
289238 this .$emit (' delete' , this .version )
290239 },
@@ -337,28 +286,4 @@ export default {
337286 color: var (-- color- text- light);
338287 }
339288}
340-
341- .version - label- modal {
342- display: flex;
343- justify- content: space- between;
344- flex- direction: column;
345- height: 250px ;
346- padding: 16px ;
347-
348- & __title {
349- margin- bottom: 12px ;
350- font- weight: 600 ;
351- }
352-
353- & __info {
354- margin- top: 12px ;
355- color: var (-- color- text- maxcontrast);
356- }
357-
358- & __actions {
359- display: flex;
360- justify- content: space- between;
361- margin- top: 64px ;
362- }
363- }
364289< / style>
0 commit comments