aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2017-11-19 16:37:37 +0100
committerArthur Schiwon <blizzz@arthur-schiwon.de>2017-11-23 13:32:09 +0100
commitdcfd7bf7fffb6b7c946011870f1ae8a292937ddd (patch)
tree12d0605086aa0830bad5eaf7d0479ef505379fe5
parent106d932e8fe3adbaec1e3d74b28cc0ebbc154823 (diff)
downloadnextcloud-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.js4
-rw-r--r--apps/files_sharing/js/sharedfilelist.js4
-rw-r--r--core/js/share.js21
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'});
}