aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files
diff options
context:
space:
mode:
authorChristopher Ng <chrng8@gmail.com>2024-01-18 14:25:53 -0800
committerFerdinand Thiessen <opensource@fthiessen.de>2024-01-21 01:13:56 +0100
commitfad87c58a74ccb95460b7e1e3e3c8df0d55ee8a7 (patch)
treee47dd15c190d33f2c0d79003c516daef5c585de8 /apps/files
parent3c6fc685617a33e3183b0c1612d72513964bb585 (diff)
downloadnextcloud-server-fad87c58a74ccb95460b7e1e3e3c8df0d55ee8a7.tar.gz
nextcloud-server-fad87c58a74ccb95460b7e1e3e3c8df0d55ee8a7.zip
fix(files): Fix checkbox state semantics
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Diffstat (limited to 'apps/files')
-rw-r--r--apps/files/src/components/FileEntry.vue6
-rw-r--r--apps/files/src/components/FileEntry/FileEntryCheckbox.vue20
-rw-r--r--apps/files/src/components/FileEntryGrid.vue6
-rw-r--r--apps/files/src/components/FilesListTableHeader.vue8
4 files changed, 23 insertions, 17 deletions
diff --git a/apps/files/src/components/FileEntry.vue b/apps/files/src/components/FileEntry.vue
index de598657ac7..8b4c7b71ef9 100644
--- a/apps/files/src/components/FileEntry.vue
+++ b/apps/files/src/components/FileEntry.vue
@@ -32,10 +32,10 @@
<span v-if="source.attributes.failed" class="files-list__row--failed" />
<!-- Checkbox -->
- <FileEntryCheckbox :display-name="displayName"
- :fileid="fileid"
+ <FileEntryCheckbox :fileid="fileid"
:is-loading="isLoading"
- :nodes="nodes" />
+ :nodes="nodes"
+ :source="source" />
<!-- Link to file -->
<td class="files-list__row-name" data-cy-files-list-row-name>
diff --git a/apps/files/src/components/FileEntry/FileEntryCheckbox.vue b/apps/files/src/components/FileEntry/FileEntryCheckbox.vue
index ff88b461737..bb851ed1e0e 100644
--- a/apps/files/src/components/FileEntry/FileEntryCheckbox.vue
+++ b/apps/files/src/components/FileEntry/FileEntryCheckbox.vue
@@ -24,14 +24,14 @@
@keyup.esc.exact="resetSelection">
<NcLoadingIcon v-if="isLoading" />
<NcCheckboxRadioSwitch v-else
- :aria-label="t('files', 'Select the row for {displayName}', { displayName })"
+ :aria-label="ariaLabel"
:checked="isSelected"
@update:checked="onSelectionChange" />
</td>
</template>
<script lang="ts">
-import { Node } from '@nextcloud/files'
+import { Node, FileType } from '@nextcloud/files'
import { translate as t } from '@nextcloud/l10n'
import Vue, { PropType } from 'vue'
@@ -51,10 +51,6 @@ export default Vue.extend({
},
props: {
- displayName: {
- type: String,
- required: true,
- },
fileid: {
type: String,
required: true,
@@ -67,6 +63,10 @@ export default Vue.extend({
type: Array as PropType<Node[]>,
required: true,
},
+ source: {
+ type: Object as PropType<Node>,
+ required: true,
+ },
},
setup() {
@@ -88,6 +88,14 @@ export default Vue.extend({
index() {
return this.nodes.findIndex((node: Node) => node.fileid === parseInt(this.fileid))
},
+ isFile() {
+ return this.source.type === FileType.File
+ },
+ ariaLabel() {
+ return this.isFile
+ ? t('files', 'Toggle selection for file "{displayName}"', { displayName: this.source.basename })
+ : t('files', 'Toggle selection for folder "{displayName}"', { displayName: this.source.basename })
+ },
},
methods: {
diff --git a/apps/files/src/components/FileEntryGrid.vue b/apps/files/src/components/FileEntryGrid.vue
index a43f9c98b75..99fd45813ed 100644
--- a/apps/files/src/components/FileEntryGrid.vue
+++ b/apps/files/src/components/FileEntryGrid.vue
@@ -37,10 +37,10 @@
<span v-if="source.attributes.failed" class="files-list__row--failed" />
<!-- Checkbox -->
- <FileEntryCheckbox :display-name="displayName"
- :fileid="fileid"
+ <FileEntryCheckbox :fileid="fileid"
:is-loading="isLoading"
- :nodes="nodes" />
+ :nodes="nodes"
+ :source="source" />
<!-- Link to file -->
<td class="files-list__row-name" data-cy-files-list-row-name>
diff --git a/apps/files/src/components/FilesListTableHeader.vue b/apps/files/src/components/FilesListTableHeader.vue
index c679b2068c1..148ce3bc4e5 100644
--- a/apps/files/src/components/FilesListTableHeader.vue
+++ b/apps/files/src/components/FilesListTableHeader.vue
@@ -71,7 +71,7 @@
</template>
<script lang="ts">
-import { translate } from '@nextcloud/l10n'
+import { translate as t } from '@nextcloud/l10n'
import NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'
import Vue from 'vue'
@@ -142,9 +142,7 @@ export default Vue.extend({
},
selectAllBind() {
- const label = this.isNoneSelected || this.isSomeSelected
- ? this.t('files', 'Select all')
- : this.t('files', 'Unselect all')
+ const label = t('files', 'Toggle selection for all files and folders')
return {
'aria-label': label,
checked: this.isAllSelected,
@@ -203,7 +201,7 @@ export default Vue.extend({
this.selectionStore.reset()
},
- t: translate,
+ t,
},
})
</script>