diff options
author | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2017-11-19 16:37:37 +0100 |
---|---|---|
committer | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2017-11-23 13:32:09 +0100 |
commit | dcfd7bf7fffb6b7c946011870f1ae8a292937ddd (patch) | |
tree | 12d0605086aa0830bad5eaf7d0479ef505379fe5 | |
parent | 106d932e8fe3adbaec1e3d74b28cc0ebbc154823 (diff) | |
download | nextcloud-server-dcfd7bf7fffb6b7c946011870f1ae8a292937ddd.tar.gz nextcloud-server-dcfd7bf7fffb6b7c946011870f1ae8a292937ddd.zip |
fix avatars in file rows of outgoing shares
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
-rw-r--r-- | apps/files_sharing/js/share.js | 4 | ||||
-rw-r--r-- | apps/files_sharing/js/sharedfilelist.js | 4 | ||||
-rw-r--r-- | core/js/share.js | 21 |
3 files changed, 20 insertions, 9 deletions
diff --git a/apps/files_sharing/js/share.js b/apps/files_sharing/js/share.js index 5cd04ece446..dbfce6e83b5 100644 --- a/apps/files_sharing/js/share.js +++ b/apps/files_sharing/js/share.js @@ -53,6 +53,7 @@ } if (fileData.recipientsDisplayName) { tr.attr('data-share-recipients', fileData.recipientsDisplayName); + tr.attr('data-share-recipient-data', JSON.stringify(fileData.recipientData)); } if (fileData.shareTypes) { tr.attr('data-share-types', fileData.shareTypes.join(',')); @@ -67,8 +68,7 @@ fileInfo.shareOwner = $el.attr('data-share-owner') || undefined; if( $el.attr('data-share-types')){ - var shareTypes = $el.attr('data-share-types').split(','); - fileInfo.shareTypes = shareTypes; + fileInfo.shareTypes = $el.attr('data-share-types').split(','); } if( $el.attr('data-expiration')){ diff --git a/apps/files_sharing/js/sharedfilelist.js b/apps/files_sharing/js/sharedfilelist.js index b11b302c6c2..b32ee97f716 100644 --- a/apps/files_sharing/js/sharedfilelist.js +++ b/apps/files_sharing/js/sharedfilelist.js @@ -307,6 +307,7 @@ else { if (share.share_type !== OC.Share.SHARE_TYPE_LINK) { file.share.targetDisplayName = share.share_with_displayname; + file.share.targetShareWithId = share.share_with; } file.name = OC.basename(share.path); file.path = OC.dirname(share.path); @@ -325,12 +326,14 @@ .reduce(function(memo, file) { var data = memo[file.id]; var recipient = file.share.targetDisplayName; + var recipientId = file.share.targetShareWithId; if (!data) { data = memo[file.id] = file; data.shares = [file.share]; // using a hash to make them unique, // this is only a list to be displayed data.recipients = {}; + data.recipientData = {}; // share types data.shareTypes = {}; // counter is cheaper than calling _.keys().length @@ -351,6 +354,7 @@ // only store the first ones, they will be the only ones // displayed data.recipients[recipient] = true; + data.recipientData[recipientId] = recipient; } data.recipientsCount++; } diff --git a/core/js/share.js b/core/js/share.js index 25d59b46fb4..44f4f12f833 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -197,6 +197,12 @@ OC.Share = _.extend(OC.Share || {}, { delete OC.Share.statuses[itemSource]; } }, + _formatRegularShare: function(shareWith, shareWithDisplayName, message) { + // display avatar of the user + var avatar = '<span class="avatar" data-username="' + escapeHTML(shareWith) + '" title="' + message + " " + escapeHTML(shareWithDisplayName) + '"></span>'; + var hidden = '<span class="hidden-visually">' + message + ' ' + escapeHTML(shareWithDisplayName) + '</span> '; + return avatar + hidden; + }, /** * Format a remote address * @@ -207,7 +213,7 @@ OC.Share = _.extend(OC.Share || {}, { var parts = this._REMOTE_OWNER_REGEXP.exec(remoteAddress); if (!parts) { // display avatar of the user - var avatar = '<span class="avatar" data-userName="' + escapeHTML(remoteAddress) + '" title="' + message + " " + escapeHTML(remoteAddress) + '"></span>'; + var avatar = '<span class="avatar" data-username="' + escapeHTML(remoteAddress) + '" title="' + message + " " + escapeHTML(remoteAddress) + '"></span>'; var hidden = '<span class="hidden-visually">' + message + ' ' + escapeHTML(remoteAddress) + '</span> '; return avatar + hidden; } @@ -243,9 +249,8 @@ OC.Share = _.extend(OC.Share || {}, { */ _formatShareList: function(recipients) { var _parent = this; - return $.map(recipients, function(recipient) { - recipient = _parent._formatRemoteShare(recipient, t('core', 'Shared with')); - return recipient; + return $.map(recipients, function(shareWithDisplayName, shareWith) { + return _parent._formatRegularShare(shareWith, shareWithDisplayName, t('core', 'Shared with')); }); }, /** @@ -291,7 +296,7 @@ OC.Share = _.extend(OC.Share || {}, { } // update share action text / icon if (hasShares || owner) { - recipients = $tr.attr('data-share-recipients'); + recipients = $tr.data('share-recipient-data'); action.addClass('shared-style'); avatars = '<span>' + t('core', 'Shared') + '</span>'; @@ -300,13 +305,15 @@ OC.Share = _.extend(OC.Share || {}, { message = t('core', 'Shared by'); avatars = this._formatRemoteShare(owner, message); } else if (recipients) { - avatars = this._formatShareList(recipients.split(', ')).join(''); + avatars = this._formatShareList(recipients); } action.html(avatars).prepend(icon); if (owner || recipients) { var avatarElement = action.find('.avatar'); - avatarElement.avatar(avatarElement.data('username'), 32); + avatarElement.each(function () { + $(this).avatar($(this).data('username'), 32); + }); action.find('.icon-shared + span').tooltip({placement: 'top'}); } |