1
1
<!-- Parsec Cloud (https://parsec.cloud ) Copyright (c) BUSL-1.1 2016-present Scille SAS -->
2
2
3
3
<template>
4
- <div>
5
- <file-drop-zone
6
- ref="fileDropZoneRef"
7
- :current-path="currentPath"
8
- @files-added="$emit('filesAdded', $event)"
9
- :show-drop-message="true"
10
- :is-reader="ownRole === WorkspaceRole.Reader"
11
- @drop-as-reader="$emit('dropAsReader')"
4
+ <file-drop-zone
5
+ ref="fileDropZoneRef"
6
+ :current-path="currentPath"
7
+ @files-added="$emit('filesAdded', $event)"
8
+ :show-drop-message="true"
9
+ :is-reader="ownRole === WorkspaceRole.Reader"
10
+ @drop-as-reader="$emit('dropAsReader')"
11
+ >
12
+ <div
13
+ class="scroll"
14
+ @contextmenu="onContextMenu"
12
15
>
13
- <div
14
- class="scroll"
15
- @contextmenu="onContextMenu"
16
- >
17
- <ion-list class="list">
18
- <ion-list-header
19
- class="folder-list-header"
20
- lines="full"
21
- >
22
- <ion-label class="folder-list-header__label ion-text-nowrap label-selected">
23
- <ms-checkbox
24
- @change="selectAll"
25
- :checked="allSelected"
26
- :indeterminate="someSelected && !allSelected"
27
- />
28
- </ion-label>
29
- <ion-label class="folder-list-header__label cell-title ion-text-nowrap label-name">
30
- {{ $msTranslate('FoldersPage.listDisplayTitles.name') }}
31
- </ion-label>
32
- <ion-label
33
- class="folder-list-header__label cell-title ion-text-nowrap label-updatedBy"
34
- v-show="false"
35
- >
36
- {{ $msTranslate('FoldersPage.listDisplayTitles.updatedBy') }}
37
- </ion-label>
38
- <ion-label class="folder-list-header__label cell-title ion-text-nowrap label-lastUpdate">
39
- {{ $msTranslate('FoldersPage.listDisplayTitles.lastUpdate') }}
40
- </ion-label>
41
- <ion-label class="folder-list-header__label cell-title ion-text-nowrap label-size">
42
- {{ $msTranslate('FoldersPage.listDisplayTitles.size') }}
43
- </ion-label>
44
- <ion-label class="folder-list-header__label cell-title ion-text-nowrap label-space" />
45
- </ion-list-header>
46
- <div>
47
- <file-list-item
48
- v-for="folder in folders.getEntries()"
49
- :key="folder.id"
50
- :entry="folder"
51
- :show-checkbox="someSelected"
52
- @click="$emit('click', folder, $event)"
53
- @menu-click="(event, entry, onFinished) => $emit('menuClick', event, entry, onFinished)"
54
- @selected-change="onSelectedChange"
55
- @files-added="onFilesAdded"
56
- :is-workspace-reader="ownRole === WorkspaceRole.Reader"
57
- @drop-as-reader="$emit('dropAsReader')"
58
- />
59
- <file-list-item
60
- v-for="file in files.getEntries()"
61
- :key="file.id"
62
- :entry="file"
63
- :show-checkbox="someSelected"
64
- @click="$emit('click', file, $event)"
65
- @menu-click="(event, entry, onFinished) => $emit('menuClick', event, entry, onFinished)"
66
- @selected-change="onSelectedChange"
67
- @files-added="onFilesAdded"
68
- @drop-as-reader="$emit('dropAsReader')"
16
+ <ion-list class="list">
17
+ <ion-list-header
18
+ class="folder-list-header"
19
+ lines="full"
20
+ v-if="isLargeDisplay"
21
+ >
22
+ <ion-label class="folder-list-header__label ion-text-nowrap label-selected">
23
+ <ms-checkbox
24
+ @change="selectAll"
25
+ :checked="allSelected"
26
+ :indeterminate="someSelected && !allSelected"
69
27
/>
70
- <file-list-item-processing
71
- v-for="op in operationsInProgress"
72
- :key="op.data.id"
73
- :data="op.data"
74
- :progress="op.progress"
75
- />
76
- </div>
77
- </ion-list>
78
- </div>
79
- </file-drop-zone>
80
- </div>
28
+ </ion-label>
29
+ <ion-label class="folder-list-header__label cell-title ion-text-nowrap label-name">
30
+ {{ $msTranslate('FoldersPage.listDisplayTitles.name') }}
31
+ </ion-label>
32
+ <ion-label
33
+ class="folder-list-header__label cell-title ion-text-nowrap label-updatedBy"
34
+ v-show="false"
35
+ >
36
+ {{ $msTranslate('FoldersPage.listDisplayTitles.updatedBy') }}
37
+ </ion-label>
38
+ <ion-label class="folder-list-header__label cell-title ion-text-nowrap label-lastUpdate">
39
+ {{ $msTranslate('FoldersPage.listDisplayTitles.lastUpdate') }}
40
+ </ion-label>
41
+ <ion-label class="folder-list-header__label cell-title ion-text-nowrap label-size">
42
+ {{ $msTranslate('FoldersPage.listDisplayTitles.size') }}
43
+ </ion-label>
44
+ <ion-label class="folder-list-header__label cell-title ion-text-nowrap label-space" />
45
+ </ion-list-header>
46
+ <div>
47
+ <file-list-item
48
+ v-for="folder in folders.getEntries()"
49
+ :key="folder.id"
50
+ :entry="folder"
51
+ :show-checkbox="someSelected"
52
+ @click="$emit('click', folder, $event)"
53
+ @menu-click="(event, entry, onFinished) => $emit('menuClick', event, entry, onFinished)"
54
+ @selected-change="onSelectedChange"
55
+ @files-added="onFilesAdded"
56
+ :is-workspace-reader="ownRole === WorkspaceRole.Reader"
57
+ @drop-as-reader="$emit('dropAsReader')"
58
+ />
59
+ <file-list-item
60
+ v-for="file in files.getEntries()"
61
+ :key="file.id"
62
+ :entry="file"
63
+ :show-checkbox="someSelected"
64
+ @click="$emit('click', file, $event)"
65
+ @menu-click="(event, entry, onFinished) => $emit('menuClick', event, entry, onFinished)"
66
+ @selected-change="onSelectedChange"
67
+ @files-added="onFilesAdded"
68
+ @drop-as-reader="$emit('dropAsReader')"
69
+ />
70
+ <file-list-item-processing
71
+ v-for="op in operationsInProgress"
72
+ :key="op.data.id"
73
+ :data="op.data"
74
+ :progress="op.progress"
75
+ />
76
+ </div>
77
+ </ion-list>
78
+ </div>
79
+ </file-drop-zone>
81
80
</template>
82
81
83
82
<script setup lang="ts">
@@ -89,8 +88,9 @@ import { FileImportTuple } from '@/components/files/utils';
89
88
import { FsPath, WorkspaceRole } from '@/parsec';
90
89
import { IonLabel, IonList, IonListHeader } from '@ionic/vue';
91
90
import { computed, ref } from 'vue';
92
- import { MsCheckbox } from 'megashark-lib';
91
+ import { MsCheckbox, useWindowSize } from 'megashark-lib';
93
92
93
+ const { isLargeDisplay } = useWindowSize();
94
94
const props = defineProps<{
95
95
operationsInProgress: Array<FileOperationProgress>;
96
96
files: EntryCollection<FileModel>;
0 commit comments