Web sharing uses sharee endpoint

This commit is contained in:
Roeland Jago Douma 2015-12-23 10:16:57 +01:00
parent 45c41e2b2c
commit fa7996aa8a
1 changed files with 75 additions and 15 deletions

View File

@ -117,22 +117,82 @@
var $loading = this.$el.find('.shareWithLoading');
$loading.removeClass('hidden');
$loading.addClass('inlineblock');
$.get(OC.filePath('core', 'ajax', 'share.php'), {
fetch: 'getShareWith',
search: search.term.trim(),
limit: 200,
itemShares: OC.Share.itemShares,
itemType: view.model.get('itemType')
}, function (result) {
$loading.addClass('hidden');
$loading.removeClass('inlineblock');
if (result.status == 'success' && result.data.length > 0) {
$('.shareWithField').autocomplete("option", "autoFocus", true);
response(result.data);
} else {
response();
$.get(
OC.linkToOCS('apps/files_sharing/api/v1') + 'sharees',
{
format: 'json',
search: search.term.trim(),
perPage: 200,
itemType: view.model.get('itemType')
},
function (result) {
$loading.addClass('hidden');
$loading.removeClass('inlineblock');
if (result.ocs.meta.statuscode == 100) {
var users = [].concat(result.ocs.data.exact.users).concat(result.ocs.data.users);
var groups = result.ocs.data.exact.groups.concat(result.ocs.data.groups);
var remotes = result.ocs.data.exact.remotes.concat(result.ocs.data.remotes);
var usersLength;
var groupsLength;
var remotesLength;
var i, j;
//Filter out the current user
usersLength = users.length;
for (i = 0 ; i < usersLength; i++) {
if (users[i].value.shareWith === OC.currentUser) {
users.splice(i, 1);
break;
}
}
// Filter out the owner of the share
var shares = view.model.get('shares');
var sharesLength = shares.length;
// Now filter out all sharees that are already shared with
for (i = 0; i < sharesLength; i++) {
var share = shares[i];
if (share.share_type === OC.Share.SHARE_TYPE_USER) {
usersLength = users.length;
for (j = 0; j < usersLength; j++) {
if (users[j].value.shareWith === share.share_with) {
users.splice(j, 1);
break;
}
}
} else if (share.share_type === OC.Share.SHARE_TYPE_GROUP) {
groupsLength = groups.length;
for (j = 0; j < groupsLength; j++) {
if (groups[j].value.shareWith === share.share_with) {
groups.splice(j, 1);
break;
}
}
} else if (share.share_type === OC.Share.SHARE_TYPE_REMOTE) {
remotesLength = remotes.length;
for (j = 0; j < remotesLength; j++) {
if (remotes[j].value.shareWith === share.share_with) {
remotes.splice(j, 1);
break;
}
}
}
}
var suggestions = users.concat(groups).concat(remotes);
$('.shareWithField').autocomplete("option", "autoFocus", true);
response(suggestions);
} else {
response();
}
}
}).fail(function () {
).fail(function() {
$loading.addClass('hidden');
$loading.removeClass('inlineblock');
OC.Notification.show(t('core', 'An error occured. Please try again'));