Merge pull request #5857 from owncloud/type-ahead-share-by-mail-master

introduce auto completion on share email - integrated with the contactsm...
This commit is contained in:
Thomas Müller 2014-04-11 00:04:58 +02:00
commit dcca5f7bdd
2 changed files with 48 additions and 0 deletions

View File

@ -205,6 +205,34 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
OC_JSON::success(array('data' => array('reshare' => $reshare, 'shares' => $shares)));
}
break;
case 'getShareWithEmail':
$result = array();
if (isset($_GET['search'])) {
$cm = OC::$server->getContactsManager();
if (!is_null($cm) && $cm->isEnabled()) {
$contacts = $cm->search($_GET['search'], array('FN', 'EMAIL'));
foreach ($contacts as $contact) {
if (!isset($contact['EMAIL'])) {
continue;
}
$emails = $contact['EMAIL'];
if (!is_array($emails)) {
$emails = array($emails);
}
foreach($emails as $email) {
$result[] = array(
'id' => $contact['id'],
'email' => $email,
'displayname' => $contact['FN'],
);
}
}
}
}
OC_JSON::success(array('data' => $result));
break;
case 'getShareWith':
if (isset($_GET['search'])) {
$sharePolicy = OC_Appconfig::getValue('core', 'shareapi_share_policy', 'global');

View File

@ -331,6 +331,26 @@ OC.Share={
.append( insert )
.appendTo( ul );
};
$('#email').autocomplete({
minLength: 1,
source: function (search, response) {
$.get(OC.filePath('core', 'ajax', 'share.php'), { fetch: 'getShareWithEmail', search: search.term }, function(result) {
if (result.status == 'success' && result.data.length > 0) {
response(result.data);
}
});
},
select: function( event, item ) {
$('#email').val(item.item.email);
return false;
}
})
.data("ui-autocomplete")._renderItem = function( ul, item ) {
return $( "<li>" )
.append( "<a>" + item.displayname + "<br>" + item.email + "</a>" )
.appendTo( ul );
};
} else {
html += '<input id="shareWith" type="text" placeholder="'+t('core', 'Resharing is not allowed')+'" style="width:90%;" disabled="disabled"/>';
html += '</div>';