Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Extend pending shares list to include remote shares
And adjust the accept/decline actions to use the right endpoint for
remote shares.

Signed-off-by: Vincent Petry <[email protected]>
  • Loading branch information
PVince81 committed Aug 10, 2021
commit df835ed3502ac1c283abffe00f35b150ecbefe9c
13 changes: 11 additions & 2 deletions apps/files_sharing/js/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,11 @@ OCA.Sharing.App = {
type: OCA.Files.FileActions.TYPE_INLINE,
actionHandler(fileName, context) {
const shareId = context.$file.data('shareId')
$.post(OC.linkToOCS('apps/files_sharing/api/v1/shares/pending', 2) + shareId)
let shareBase = 'shares/pending'
if (context.$file.attr('data-remote-id')) {
shareBase = 'remote_shares/pending'
}
$.post(OC.linkToOCS('apps/files_sharing/api/v1/' + shareBase, 2) + shareId)
.success(function(result) {
context.fileList.remove(context.fileInfoModel.attributes.name)
}).fail(function() {
Expand All @@ -313,8 +317,13 @@ OCA.Sharing.App = {
type: OCA.Files.FileActions.TYPE_INLINE,
actionHandler(fileName, context) {
const shareId = context.$file.data('shareId')
let shareBase = 'shares'
if (context.$file.attr('data-remote-id')) {
shareBase = 'remote_shares/pending'
}

$.ajax({
url: OC.linkToOCS('apps/files_sharing/api/v1/shares', 2) + shareId,
url: OC.linkToOCS('apps/files_sharing/api/v1/' + shareBase, 2) + shareId,
type: 'DELETE',
}).success(function(result) {
context.fileList.remove(context.fileInfoModel.attributes.name)
Expand Down
35 changes: 34 additions & 1 deletion apps/files_sharing/js/sharedfilelist.js
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,18 @@
}
}

var pendingRemoteShares = {
url: OC.linkToOCS('apps/files_sharing/api/v1/remote_shares', 2) + 'pending',
/* jshint camelcase: false */
data: {
format: 'json'
},
type: 'GET',
beforeSend: function(xhr) {
xhr.setRequestHeader('OCS-APIREQUEST', 'true')
}
}

var shares = {
url: OC.linkToOCS('apps/files_sharing/api/v1') + 'shares',
/* jshint camelcase: false */
Expand Down Expand Up @@ -245,6 +257,7 @@
promises.push($.ajax(deletedShares))
} else if (this._showPending) {
promises.push($.ajax(pendingShares))
promises.push($.ajax(pendingRemoteShares))
} else {
promises.push($.ajax(shares))

Expand Down Expand Up @@ -292,7 +305,12 @@
}

if (additionalShares && additionalShares.ocs && additionalShares.ocs.data) {
files = files.concat(this._makeFilesFromShares(additionalShares.ocs.data, !this._sharedWithUser))
if (this._showPending) {
// in this case the second callback is about pending remote shares
files = files.concat(this._makeFilesFromRemoteShares(additionalShares.ocs.data))
} else {
files = files.concat(this._makeFilesFromShares(additionalShares.ocs.data, !this._sharedWithUser))
}
}

this.setFiles(files)
Expand All @@ -317,6 +335,21 @@
tags: share.tags || []
}

if (share.remote_id) {
// remote share
if (share.accepted !== '1') {
file.name = OC.basename(share.name)
file.path = '/'
}
file.remoteId = share.remote_id
file.shareOwnerId = share.owner
}

if (!file.type) {
// pending shares usually have no type, so default to showing a directory icon
file.mimetype = 'httpd/unix-directory'
}

file.shares = [{
id: share.id,
type: OC.Share.SHARE_TYPE_REMOTE
Expand Down
3 changes: 3 additions & 0 deletions apps/files_sharing/src/share.js
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,9 @@ import escapeHTML from 'escape-html'
if (fileData.shareTypes) {
tr.attr('data-share-types', fileData.shareTypes.join(','))
}
if (fileData.remoteId) {
tr.attr('data-remote-id', fileData.remoteId)
}
return tr
}

Expand Down