12
12
:label =" $gettext('Password')"
13
13
class =" oc-mt-s"
14
14
/>
15
+
16
+ <div class =" oc-flex oc-flex-middle oc-mt-m" >
17
+ <oc-icon class =" oc-mr-s" :name =" selectedTypeIcon" fill-type =" line" />
18
+ <link-role-dropdown
19
+ id =" input-folder-permissions"
20
+ v-model =" formData.selectedType"
21
+ :available-link-type-options =" availableLinkTypes"
22
+ />
23
+ </div >
24
+
15
25
<input type =" submit" class =" oc-hidden" />
16
26
</form >
17
27
</template >
18
28
19
29
<script lang="ts" setup>
20
- import { useMessages , useResourcesStore , useSpacesStore } from ' @ownclouders/web-pkg'
30
+ import {
31
+ LinkRoleDropdown ,
32
+ useLinkTypes ,
33
+ useMessages ,
34
+ useResourcesStore ,
35
+ useSpacesStore
36
+ } from ' @ownclouders/web-pkg'
21
37
import { computed , reactive , unref , watch } from ' vue'
22
38
import { useGettext } from ' vue3-gettext'
23
39
import { useCreateFileHandler } from ' ../composables/useCreateFileHandler'
@@ -32,13 +48,17 @@ const { showErrorMessage } = useMessages()
32
48
const { createFileHandler } = useCreateFileHandler ()
33
49
const { currentFolder } = useResourcesStore ()
34
50
const { currentSpace } = useSpacesStore ()
51
+ const { defaultLinkType, getAvailableLinkTypes, getLinkRoleByType } = useLinkTypes ()
35
52
36
53
const formData = reactive ({
37
54
folderName: ' ' ,
38
- password: ' '
55
+ password: ' ' ,
56
+ selectedType: unref (defaultLinkType )
39
57
})
40
58
41
59
const isFormValid = computed (() => formData .folderName !== ' ' && formData .password !== ' ' )
60
+ const availableLinkTypes = computed (() => getAvailableLinkTypes ({ isFolder: true }))
61
+ const selectedTypeIcon = computed (() => getLinkRoleByType (formData .selectedType ).icon )
42
62
43
63
const onConfirm = async () => {
44
64
if (! unref (isFormValid )) {
@@ -50,7 +70,8 @@ const onConfirm = async () => {
50
70
fileName: formData .folderName ,
51
71
currentFolder: unref (currentFolder ),
52
72
space: unref (currentSpace ),
53
- password: formData .password
73
+ password: formData .password ,
74
+ type: formData .selectedType
54
75
})
55
76
} catch (error ) {
56
77
console .error (error )
0 commit comments