refactor(files): Update `@nextcloud/files` to v3.5.0

* Removed now duplicated code

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
pull/45929/head
Ferdinand Thiessen 5 months ago
parent 475edf24c2
commit a83f276352
No known key found for this signature in database
GPG Key ID: 45FAE7268762B400
  1. 3
      apps/files/src/actions/moveOrCopyAction.ts
  2. 2
      apps/files/src/actions/openFolderAction.ts
  3. 2
      apps/files/src/components/BreadCrumbs.vue
  4. 2
      apps/files/src/components/DragAndDropPreview.vue
  5. 6
      apps/files/src/components/FileEntryMixin.ts
  6. 2
      apps/files/src/components/NewNodeDialog.vue
  7. 9
      apps/files/src/utils/davUtils.js
  8. 35
      apps/files/src/utils/fileUtils.ts
  9. 4
      apps/files/src/views/FilesList.vue
  10. 35
      package-lock.json
  11. 2
      package.json

@ -10,7 +10,7 @@ import type { MoveCopyResult } from './moveOrCopyActionUtils'
import { isAxiosError } from '@nextcloud/axios'
import { FilePickerClosed, getFilePickerBuilder, showError } from '@nextcloud/dialogs'
import { emit } from '@nextcloud/event-bus'
import { Permission, FileAction, FileType, NodeStatus, davGetClient, davRootPath, davResultToNode, davGetDefaultPropfind } from '@nextcloud/files'
import { FileAction, FileType, NodeStatus, davGetClient, davRootPath, davResultToNode, davGetDefaultPropfind, getUniqueName } from '@nextcloud/files'
import { translate as t } from '@nextcloud/l10n'
import { openConflictPicker, hasConflict } from '@nextcloud/upload'
import { basename, join } from 'path'
@ -22,7 +22,6 @@ import FolderMoveSvg from '@mdi/svg/svg/folder-move.svg?raw'
import { MoveCopyAction, canCopy, canMove, getQueue } from './moveOrCopyActionUtils'
import { getContents } from '../services/Files'
import logger from '../logger'
import { getUniqueName } from '../utils/fileUtils'
/**
* Return the action that is possible for the given nodes

@ -10,7 +10,7 @@ export const action = new FileAction({
id: 'open-folder',
displayName(files: Node[]) {
// Only works on single node
const displayName = files[0].attributes.displayName || files[0].basename
const displayName = files[0].attributes.displayname || files[0].basename
return t('files', 'Open folder {displayName}', { displayName })
},
iconSvgInline: () => FolderSvg,

@ -160,7 +160,7 @@ export default defineComponent({
const source: FileSource | undefined = this.getFileSourceFromPath(path)
const node: Node | undefined = source ? this.getNodeFromSource(source) : undefined
return node?.attributes?.displayName || basename(path)
return node?.attributes?.displayname || basename(path)
},
onClick(to) {

@ -62,7 +62,7 @@ export default Vue.extend({
summary(): string {
if (this.isSingleNode) {
const node = this.nodes[0]
return node.attributes?.displayName || node.basename
return node.attributes?.displayname || node.basename
}
return getSummaryFor(this.nodes)

@ -71,14 +71,14 @@ export default defineComponent({
},
extension() {
if (this.source.attributes?.displayName) {
return extname(this.source.attributes.displayName)
if (this.source.attributes?.displayname) {
return extname(this.source.attributes.displayname)
}
return this.source.extension || ''
},
displayName() {
const ext = this.extension
const name = String(this.source.attributes.displayName
const name = String(this.source.attributes.displayname
|| this.source.basename)
// Strip extension from name if defined

@ -30,7 +30,7 @@ import type { PropType } from 'vue'
import { defineComponent } from 'vue'
import { translate as t } from '@nextcloud/l10n'
import { getUniqueName } from '../utils/fileUtils'
import { getUniqueName } from '@nextcloud/files'
import NcButton from '@nextcloud/vue/dist/Components/NcButton.js'
import NcDialog from '@nextcloud/vue/dist/Components/NcDialog.js'

@ -3,17 +3,8 @@
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { generateRemoteUrl } from '@nextcloud/router'
import { getCurrentUser } from '@nextcloud/auth'
export const getRootPath = function() {
if (getCurrentUser()) {
return generateRemoteUrl(`dav/files/${getCurrentUser().uid}`)
} else {
return generateRemoteUrl('webdav').replace('/remote.php', '/public.php')
}
}
export const isPublic = function() {
return !getCurrentUser()
}

@ -2,44 +2,9 @@
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { basename, extname } from 'path'
import { FileType, type Node } from '@nextcloud/files'
import { translate as t, translatePlural as n } from '@nextcloud/l10n'
// TODO: move to @nextcloud/files
/**
* Create an unique file name
* @param name The initial name to use
* @param otherNames Other names that are already used
* @param options Optional parameters for tuning the behavior
* @param options.suffix A function that takes an index and returns a suffix to add to the file name, defaults to '(index)'
* @param options.ignoreFileExtension Set to true to ignore the file extension when adding the suffix (when getting a unique directory name)
* @return Either the initial name, if unique, or the name with the suffix so that the name is unique
*/
export const getUniqueName = (
name: string,
otherNames: string[],
options: {
suffix?: (i: number) => string,
ignoreFileExtension?: boolean,
} = {},
): string => {
const opts = {
suffix: (n: number) => `(${n})`,
ignoreFileExtension: false,
...options,
}
let newName = name
let i = 1
while (otherNames.includes(newName)) {
const ext = opts.ignoreFileExtension ? '' : extname(name)
const base = basename(name, ext)
newName = `${base} ${opts.suffix(i++)}${ext}`
}
return newName
}
/**
* Extract dir and name from file path
*

@ -284,8 +284,8 @@ export default defineComponent({
...(this.userConfig.sort_folders_first ? [v => v.type !== 'folder'] : []),
// 3: Use sorting mode if NOT basename (to be able to use displayName too)
...(this.sortingMode !== 'basename' ? [v => v[this.sortingMode]] : []),
// 4: Use displayName if available, fallback to name
v => v.attributes?.displayName || v.basename,
// 4: Use displayname if available, fallback to name
v => v.attributes?.displayname || v.basename,
// 5: Finally, use basename if all previous sorting methods failed
v => v.basename,
]

35
package-lock.json generated

@ -20,7 +20,7 @@
"@nextcloud/capabilities": "^1.0.4",
"@nextcloud/dialogs": "^5.3.1",
"@nextcloud/event-bus": "^3.3.1",
"@nextcloud/files": "^3.4.1",
"@nextcloud/files": "^3.5.1",
"@nextcloud/initial-state": "^2.0.0",
"@nextcloud/l10n": "^2.1.0",
"@nextcloud/logger": "^3.0.2",
@ -4423,17 +4423,19 @@
}
},
"node_modules/@nextcloud/files": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-3.4.1.tgz",
"integrity": "sha512-0riNodzy/epHRpjIR0uuibzu+WO5GEjYqc9HjifR7fGb4Umi7cNykX7vR5o6BoEg64eYEHau0I4wBUtX/vRssQ==",
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-3.5.1.tgz",
"integrity": "sha512-GkVWUgkBSVt27Carmp/DbnDiqHq03w3VQWt8xszacp/IQSB9G+8/KCvi8zxldac2q7lQ8NpHlB/Bqy8o+OOc0A==",
"dependencies": {
"@nextcloud/auth": "^2.3.0",
"@nextcloud/l10n": "^3.1.0",
"@nextcloud/logger": "^3.0.2",
"@nextcloud/paths": "^2.1.0",
"@nextcloud/router": "^3.0.1",
"@nextcloud/sharing": "^0.2.1",
"cancelable-promise": "^4.3.1",
"is-svg": "^5.0.1",
"typescript-event-target": "^1.1.1",
"webdav": "^5.6.0"
},
"engines": {
@ -4459,13 +4461,25 @@
"npm": "^10.0.0"
}
},
"node_modules/@nextcloud/files/node_modules/@nextcloud/sharing": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/@nextcloud/sharing/-/sharing-0.2.2.tgz",
"integrity": "sha512-ui0ZoVazroA+cF4+homhFSFAddd/P4uRYMfG3rw3QR8o6igrVFe0f0l21kYtUwXU0oC0K4v3k8j93zCTfz6v3g==",
"dependencies": {
"@nextcloud/initial-state": "^2.2.0"
},
"engines": {
"node": "^20.0.0",
"npm": "^10.0.0"
}
},
"node_modules/@nextcloud/initial-state": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@nextcloud/initial-state/-/initial-state-2.1.0.tgz",
"integrity": "sha512-b92X/GvUPGQJpUQwauyG3D3dHsWowViVLnTtFPSMUc0rXtvYR5CvhkqJRfPC7O7W4VC7+V3q+FWeA+mQWMxN2Q==",
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@nextcloud/initial-state/-/initial-state-2.2.0.tgz",
"integrity": "sha512-cDW98L5KGGgpS8pzd+05304/p80cyu8U2xSDQGa+kGPTpUFmCbv2qnO5WrwwGTauyjYijCal2bmw82VddSH+Pg==",
"engines": {
"node": "^20.0.0",
"npm": "^9.0.0"
"npm": "^10.0.0"
}
},
"node_modules/@nextcloud/l10n": {
@ -26802,6 +26816,11 @@
"node": ">=14.17"
}
},
"node_modules/typescript-event-target": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/typescript-event-target/-/typescript-event-target-1.1.1.tgz",
"integrity": "sha512-dFSOFBKV6uwaloBCCUhxlD3Pr/P1a/tJdcmPrTXCHlEFD3faj0mztjcGn6VBAhQ0/Bdy8K3VWrrqwbt/ffsYsg=="
},
"node_modules/ua-parser-js": {
"version": "0.7.37",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz",

@ -48,7 +48,7 @@
"@nextcloud/capabilities": "^1.0.4",
"@nextcloud/dialogs": "^5.3.1",
"@nextcloud/event-bus": "^3.3.1",
"@nextcloud/files": "^3.4.1",
"@nextcloud/files": "^3.5.1",
"@nextcloud/initial-state": "^2.0.0",
"@nextcloud/l10n": "^2.1.0",
"@nextcloud/logger": "^3.0.2",

Loading…
Cancel
Save