aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files_sharing/js/share.js5
-rw-r--r--apps/files_sharing/js/sharedfilelist.js5
-rw-r--r--apps/files_sharing/tests/js/shareSpec.js32
-rw-r--r--core/js/share.js7
-rw-r--r--core/js/tests/specs/shareSpec.js132
5 files changed, 144 insertions, 37 deletions
diff --git a/apps/files_sharing/js/share.js b/apps/files_sharing/js/share.js
index a7eefe43dbe..9b794ca2d13 100644
--- a/apps/files_sharing/js/share.js
+++ b/apps/files_sharing/js/share.js
@@ -220,9 +220,14 @@
// note: we only update the data attribute because updateIcon()
if (recipients.length) {
$tr.attr('data-share-recipients', OCA.Sharing.Util.formatRecipients(recipients));
+ var recipientData = _.mapObject(shareModel.get('shares'), function (share) {
+ return {shareWith: share.share_with, shareWithDisplayName: share.share_with_displayname};
+ });
+ $tr.attr('data-share-recipient-data', JSON.stringify(recipientData));
}
else {
$tr.removeAttr('data-share-recipients');
+ $tr.removeAttr('data-share-recipient-data');
}
},
diff --git a/apps/files_sharing/js/sharedfilelist.js b/apps/files_sharing/js/sharedfilelist.js
index c7b872772b3..fb4909e764e 100644
--- a/apps/files_sharing/js/sharedfilelist.js
+++ b/apps/files_sharing/js/sharedfilelist.js
@@ -355,7 +355,10 @@
// only store the first ones, they will be the only ones
// displayed
data.recipients[recipient] = true;
- data.recipientData[recipientId] = recipient;
+ data.recipientData[data.recipientsCount] = {
+ 'shareWith': recipientId,
+ 'shareWithDisplayName': recipient
+ };
}
data.recipientsCount++;
}
diff --git a/apps/files_sharing/tests/js/shareSpec.js b/apps/files_sharing/tests/js/shareSpec.js
index 5b0a78c9c64..1b628f5bb0f 100644
--- a/apps/files_sharing/tests/js/shareSpec.js
+++ b/apps/files_sharing/tests/js/shareSpec.js
@@ -140,6 +140,7 @@ describe('OCA.Sharing.Util tests', function() {
size: 12,
permissions: OC.PERMISSION_ALL,
shareOwner: 'User One',
+ shareOwnerId: 'User One',
etag: 'abc',
shareTypes: []
}]);
@@ -161,6 +162,16 @@ describe('OCA.Sharing.Util tests', function() {
size: 12,
permissions: OC.PERMISSION_ALL,
recipientsDisplayName: 'User One, User Two',
+ recipientData: {
+ 0: {
+ shareWith: 'User One',
+ shareWithDisplayName: 'User One'
+ },
+ 1: {
+ shareWith: 'User Two',
+ shareWithDisplayName: 'User Two'
+ }
+ },
etag: 'abc',
shareTypes: [OC.Share.SHARE_TYPE_USER]
}]);
@@ -264,10 +275,10 @@ describe('OCA.Sharing.Util tests', function() {
// simulate updating shares
shareTab._dialog.model.set({
shares: [
- {share_with_displayname: 'User One'},
- {share_with_displayname: 'User Two'},
- {share_with_displayname: 'Group One'},
- {share_with_displayname: 'Group Two'}
+ {share_with_displayname: 'User One', share_with: 'User One'},
+ {share_with_displayname: 'User Two', share_with: 'User Two'},
+ {share_with_displayname: 'Group One', share_with: 'Group One'},
+ {share_with_displayname: 'Group Two', share_with: 'Group Two'}
]
});
@@ -298,9 +309,9 @@ describe('OCA.Sharing.Util tests', function() {
// simulate updating shares
shareTab._dialog.model.set({
shares: [
- {share_with_displayname: 'User One'},
- {share_with_displayname: 'User Two'},
- {share_with_displayname: 'User Three'}
+ {share_with_displayname: 'User One', share_with: 'User One'},
+ {share_with_displayname: 'User Two', share_with: 'User Two'},
+ {share_with_displayname: 'User Three', share_with: 'User Three'}
]
});
@@ -348,7 +359,8 @@ describe('OCA.Sharing.Util tests', function() {
size: 12,
permissions: OC.PERMISSION_ALL,
etag: 'abc',
- shareOwner: 'User One'
+ shareOwner: 'User One',
+ shareOwnerId: 'User One'
}]);
$action = fileList.$el.find('tbody tr:first .action-share');
$tr = fileList.$el.find('tr:first');
@@ -379,7 +391,9 @@ describe('OCA.Sharing.Util tests', function() {
permissions: OC.PERMISSION_ALL,
etag: 'abc',
shareOwner: 'User One',
- recipients: 'User Two'
+ shareOwnerId: 'User One',
+ recipients: 'User Two',
+ recipientData: {'User Two': 'User Two'}
}]);
$action = fileList.$el.find('tbody tr:first .action-share');
$tr = fileList.$el.find('tr:first');
diff --git a/core/js/share.js b/core/js/share.js
index 86954b2ced2..381c42c5de2 100644
--- a/core/js/share.js
+++ b/core/js/share.js
@@ -240,13 +240,14 @@ OC.Share = _.extend(OC.Share || {}, {
* Loop over all recipients in the list and format them using
* all kind of fancy magic.
*
- * @param {String[]} recipients array of all the recipients
+ * @param {Object} recipients array of all the recipients
* @return {String[]} modified list of recipients
*/
_formatShareList: function(recipients) {
var _parent = this;
- return $.map(recipients, function(shareWithDisplayName, shareWith) {
- return _parent._formatRemoteShare(shareWith, shareWithDisplayName, t('core', 'Shared with'));
+ recipients = _.sortBy(_.toArray(recipients), 'shareWithDisplayName');
+ return $.map(recipients, function(recipient) {
+ return _parent._formatRemoteShare(recipient.shareWith, recipient.shareWithDisplayName, t('core', 'Shared with'));
});
},
/**
diff --git a/core/js/tests/specs/shareSpec.js b/core/js/tests/specs/shareSpec.js
index 19e9a92ca9e..8688705b8e8 100644
--- a/core/js/tests/specs/shareSpec.js
+++ b/core/js/tests/specs/shareSpec.js
@@ -181,64 +181,133 @@ describe('OC.Share tests', function() {
}
it('displays the local share owner as is', function() {
- checkRecipients({'User One': 'User One'}, 'Shared with User One', null);
+ var input = {
+ 0: {
+ shareWith: 'User One',
+ shareWithDisplayName: 'User One'
+ }
+ };
+ checkRecipients(input, 'Shared with User One', null);
});
it('displays the user name part of a remote recipient', function() {
+ var input = {
+ 0: {
+ shareWith: 'User One@someserver.com',
+ shareWithDisplayName: 'User One@someserver.com'
+ }
+ };
checkRecipients(
- {'User One@someserver.com': 'User One@someserver.com'},
+ input,
'User One@…',
'Shared with User One@someserver.com'
);
+
+ input = {
+ 0: {
+ shareWith: 'User One@someserver.com/',
+ shareWithDisplayName: 'User One@someserver.com/'
+ }
+ };
checkRecipients(
- '{User One@someserver.com/: User One@someserver.com/}',
+ input,
'User One@…',
'Shared with User One@someserver.com'
);
+
+ input = {
+ 0: {
+ shareWith: 'User One@someserver.com/root/of/nextcloud',
+ shareWithDisplayName: 'User One@someserver.com/root/of/nextcloud'
+ }
+ };
checkRecipients(
- {'User One@someserver.com/root/of/owncloud': 'User One@someserver.com/root/of/owncloud'},
+ input,
'User One@…',
'Shared with User One@someserver.com'
);
});
it('displays the user name part with domain of a remote share owner', function() {
+ var input = {
+ 0: {
+ shareWith: 'User One@example.com@someserver.com',
+ shareWithDisplayName: 'User One@example.com@someserver.com'
+ }
+ };
checkRecipients(
- {'User One@example.com@someserver.com': 'User One@example.com@someserver.com'},
+ input,
'User One@example.com',
'Shared with User One@example.com@someserver.com'
);
+
+ input = {
+ 0: {
+ shareWith: 'User One@example.com@someserver.com/',
+ shareWithDisplayName: 'User One@example.com@someserver.com/'
+ }
+ };
checkRecipients(
- {'User One@example.com@someserver.com/': 'User One@example.com@someserver.com/'},
+ input,
'User One@example.com',
'Shared with User One@example.com@someserver.com'
);
+
+ input = {
+ 0: {
+ shareWith: 'User One@example.com@someserver.com/root/of/nextcloud',
+ shareWithDisplayName: 'User One@example.com@someserver.com/root/of/nextcloud'
+ }
+ };
checkRecipients(
- {'User One@example.com@someserver.com/root/of/nextcloud': 'User One@example.com@someserver.com/root/of/nextcloud'},
+ input,
'User One@example.com',
'Shared with User One@example.com@someserver.com'
);
});
it('display multiple remote recipients', function() {
- checkRecipients(
- {
- 'One@someserver.com': 'One@someserver.com',
- 'two@otherserver.com': 'two@otherserver.com'
+ var input = {
+ 0: {
+ shareWith: 'One@someserver.com',
+ shareWithDisplayName: 'One@someserver.com'
},
+ 1: {
+ shareWith: 'two@someserver.com',
+ shareWithDisplayName: 'two@someserver.com'
+ }
+ };
+ checkRecipients(
+ input,
'One@… two@…',
['Shared with One@someserver.com', 'Shared with two@otherserver.com']
);
- checkRecipients(
- {
- 'One@someserver.com/': 'One@someserver.com/',
- 'two@otherserver.com': 'two@otherserver.com'
+
+ input = {
+ 0: {
+ shareWith: 'One@someserver.com/',
+ shareWithDisplayName: 'One@someserver.com/'
},
+ 1: {
+ shareWith: 'two@someserver.com',
+ shareWithDisplayName: 'two@someserver.com'
+ }
+ };
+ checkRecipients(
+ input,
'One@… two@…',
['Shared with One@someserver.com', 'Shared with two@otherserver.com']
);
- checkRecipients(
- {
- 'One@someserver.com/root/of/owncloud': 'One@someserver.com/root/of/owncloud',
- 'two@otherserver.com': 'two@otherserver.com'
+
+ input = {
+ 0: {
+ shareWith: 'One@someserver.com/root/of/nextcloud',
+ shareWithDisplayName: 'One@someserver.com/root/of/nextcloud'
},
+ 1: {
+ shareWith: 'two@someserver.com',
+ shareWithDisplayName: 'two@someserver.com'
+ }
+ };
+ checkRecipients(
+ input,
'One@… two@…',
['Shared with One@someserver.com', 'Shared with two@otherserver.com']
);
@@ -246,8 +315,14 @@ describe('OC.Share tests', function() {
it('display mixed recipients', function() {
checkRecipients(
{
- 'One': 'One',
- 'two@otherserver.com': 'two@otherserver.com'
+ 0: {
+ shareWith: 'One',
+ shareWithDisplayName: 'One'
+ },
+ 1: {
+ shareWith: 'two@someserver.com',
+ shareWithDisplayName: 'two@someserver.com'
+ }
},
'Shared with One two@…',
['Shared with two@otherserver.com']
@@ -256,9 +331,18 @@ describe('OC.Share tests', function() {
it('display multiple with divergent displaynames', function() {
checkRecipients(
{
- 'One': 'Yoko Ono',
- 'two@otherserver.com': 'two@otherserver.com',
- 'Three': 'Green, Mina'
+ 0: {
+ shareWith: 'One',
+ shareWithDisplayName: 'Yoko Ono'
+ },
+ 1: {
+ shareWith: 'two@someserver.com',
+ shareWithDisplayName: 'two@someserver.com'
+ },
+ 2: {
+ shareWith: 'Three',
+ shareWithDisplayName: 'Green, Mina'
+ }
},
'Shared with Yoko Ono two@… Shared with Green, Mina',
['Shared with two@otherserver.com']