Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Petry <vincent@nextcloud.com>2021-07-01 18:26:00 +0300
committerVincent Petry <vincent@nextcloud.com>2021-07-27 13:19:18 +0300
commit53aafff972d14e09732f61809079e39d08a9cb3b (patch)
treedfe05ce2d0ed68c53d9b2b28450bba724c49727f /apps/files_sharing
parent702bced2b7db60f05a217ddb673360e85b3c3153 (diff)
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 <vincent@nextcloud.com>
Diffstat (limited to 'apps/files_sharing')
-rw-r--r--apps/files_sharing/js/app.js13
-rw-r--r--apps/files_sharing/js/sharedfilelist.js35
-rw-r--r--apps/files_sharing/src/share.js3
3 files changed, 48 insertions, 3 deletions
diff --git a/apps/files_sharing/js/app.js b/apps/files_sharing/js/app.js
index 442d5bbeafe..6af8224baf4 100644
--- a/apps/files_sharing/js/app.js
+++ b/apps/files_sharing/js/app.js
@@ -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/{shareId}', { 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 + '/{shareId}', { shareBase, shareId }))
.success(function(result) {
context.fileList.remove(context.fileInfoModel.attributes.name)
}).fail(function() {
@@ -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/{shareId}', { shareId }),
+ url: OC.linkToOCS('apps/files_sharing/api/v1/' + shareBase + '/{shareId}', { shareId }),
type: 'DELETE',
}).success(function(result) {
context.fileList.remove(context.fileInfoModel.attributes.name)
diff --git a/apps/files_sharing/js/sharedfilelist.js b/apps/files_sharing/js/sharedfilelist.js
index 972b849bdb1..1f467f549d7 100644
--- a/apps/files_sharing/js/sharedfilelist.js
+++ b/apps/files_sharing/js/sharedfilelist.js
@@ -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 */
@@ -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))
@@ -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)
@@ -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
diff --git a/apps/files_sharing/src/share.js b/apps/files_sharing/src/share.js
index 385d42eaaea..ab41db7e8cd 100644
--- a/apps/files_sharing/src/share.js
+++ b/apps/files_sharing/src/share.js
@@ -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
}