mirror of
https://github.com/nextcloud/server.git
synced 2026-04-04 00:25:45 -04:00
fix(files_sharing): Sort by correct share attribute ("share with displayname")
There is no `title` attribute, so this causes an exception. Instead sort by the "share with" displayname which will be the user or group the node is shared to. Meaning this will also be the title of the share in the UI. If this is not available or there are multiple for the same, then sort by the custom label. If also this is not set sort by the creation time. Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This commit is contained in:
parent
1907eeea35
commit
dc153f2ada
1 changed files with 16 additions and 13 deletions
|
|
@ -82,11 +82,12 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { CollectionList } from 'nextcloud-vue-collections'
|
||||
import { generateOcsUrl } from '@nextcloud/router'
|
||||
import NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'
|
||||
import axios from '@nextcloud/axios'
|
||||
import { orderBy } from '@nextcloud/files'
|
||||
import { loadState } from '@nextcloud/initial-state'
|
||||
import { generateOcsUrl } from '@nextcloud/router'
|
||||
import { CollectionList } from 'nextcloud-vue-collections'
|
||||
import NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'
|
||||
|
||||
import Config from '../services/ConfigService.ts'
|
||||
import { shareWithTitle } from '../utils/SharedWithMe.js'
|
||||
|
|
@ -260,16 +261,18 @@ export default {
|
|||
*/
|
||||
processShares({ data }) {
|
||||
if (data.ocs && data.ocs.data && data.ocs.data.length > 0) {
|
||||
// create Share objects and sort by title in alphabetical order and then by creation time
|
||||
const shares = data.ocs.data
|
||||
.map(share => new Share(share))
|
||||
.sort((a, b) => {
|
||||
const localCompare = a.title.localeCompare(b.title)
|
||||
if (localCompare !== 0) {
|
||||
return localCompare
|
||||
}
|
||||
return b.createdTime - a.createdTime
|
||||
})
|
||||
const shares = orderBy(
|
||||
data.ocs.data.map(share => new Share(share)),
|
||||
[
|
||||
// First order by the "share with" label
|
||||
(share) => share.shareWithDisplayName,
|
||||
// Then by the label
|
||||
(share) => share.label,
|
||||
// And last resort order by createdTime
|
||||
(share) => share.createdTime,
|
||||
],
|
||||
)
|
||||
|
||||
this.linkShares = shares.filter(share => share.type === this.SHARE_TYPES.SHARE_TYPE_LINK || share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL)
|
||||
this.shares = shares.filter(share => share.type !== this.SHARE_TYPES.SHARE_TYPE_LINK && share.type !== this.SHARE_TYPES.SHARE_TYPE_EMAIL)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue