diff options
Diffstat (limited to 'apps/files_sharing/js')
-rw-r--r-- | apps/files_sharing/js/app.js | 13 | ||||
-rw-r--r-- | apps/files_sharing/js/sharedfilelist.js | 35 |
2 files changed, 45 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 |