diff --git a/changelog/unreleased/enhancement-add-show-file-extension-switch b/changelog/unreleased/enhancement-add-show-file-extension-switch
new file mode 100644
index 00000000000..8be0a6c570a
--- /dev/null
+++ b/changelog/unreleased/enhancement-add-show-file-extension-switch
@@ -0,0 +1,12 @@
+Enhancement: Add show file extension toggle switch in file list settings
+
+We've added a toggle switch to the file list settings to turn off and on displaying file extension.
+
+If this setting is turned off, the file extension won't be shown anymore in:
+* The name column displayed in the files list
+* The right sidebar
+* The rename modal
+* The new file modal
+
+https://github.com/owncloud/web/pull/6793
+https://github.com/owncloud/web/issues/6730
diff --git a/packages/web-app-files/src/components/AppBar/AppBar.vue b/packages/web-app-files/src/components/AppBar/AppBar.vue
index cfda1b1db8b..a2ee1b37439 100644
--- a/packages/web-app-files/src/components/AppBar/AppBar.vue
+++ b/packages/web-app-files/src/components/AppBar/AppBar.vue
@@ -77,7 +77,7 @@ export default {
},
computed: {
...mapGetters('Files', ['files', 'selectedFiles']),
- ...mapState('Files', ['areHiddenFilesShown']),
+ ...mapState('Files', ['areHiddenFilesShown', 'areFileExtensionsShown']),
pageTitle() {
const title = this.$route.meta.title
@@ -116,10 +116,18 @@ export default {
if (areHiddenFilesShownBoolean !== this.areHiddenFilesShown) {
this.SET_HIDDEN_FILES_VISIBILITY(areHiddenFilesShownBoolean)
}
+
+ // Storage returns a string so we need to convert it into a boolean
+ const areFileExtensionsShown = window.localStorage.getItem('oc_fileExtensionsShown') || 'true'
+ const areFileExtensionsShownBoolean = areFileExtensionsShown === 'true'
+
+ if (areFileExtensionsShownBoolean !== this.areFileExtensionsShown) {
+ this.SET_FILE_EXTENSIONS_VISIBILITY(areFileExtensionsShownBoolean)
+ }
},
methods: {
- ...mapMutations('Files', ['SET_HIDDEN_FILES_VISIBILITY'])
+ ...mapMutations('Files', ['SET_HIDDEN_FILES_VISIBILITY', 'SET_FILE_EXTENSIONS_VISIBILITY'])
}
}
diff --git a/packages/web-app-files/src/components/AppBar/CreateAndUpload.vue b/packages/web-app-files/src/components/AppBar/CreateAndUpload.vue
index 5b6fcfcdc9e..579396c4543 100644
--- a/packages/web-app-files/src/components/AppBar/CreateAndUpload.vue
+++ b/packages/web-app-files/src/components/AppBar/CreateAndUpload.vue
@@ -123,7 +123,7 @@
diff --git a/packages/web-app-files/src/components/FilesList/ResourceTable.vue b/packages/web-app-files/src/components/FilesList/ResourceTable.vue
index 3e546abe6df..c5679358a05 100644
--- a/packages/web-app-files/src/components/FilesList/ResourceTable.vue
+++ b/packages/web-app-files/src/components/FilesList/ResourceTable.vue
@@ -52,6 +52,7 @@
:is-path-displayed="arePathsDisplayed"
:parent-folder-name-default="defaultParentFolderName"
:is-thumbnail-displayed="areThumbnailsDisplayed"
+ :is-extension-displayed="areFileExtensionsShown"
:is-resource-clickable="isResourceClickable(item.id)"
:folder-link="folderLink(item)"
:parent-folder-link="parentFolderLink(item)"
@@ -165,7 +166,7 @@