diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2014-04-11 00:04:58 +0200 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2014-04-11 00:04:58 +0200 |
commit | dcca5f7bdd224f9fdd773d2a9ff8ac6f3199823a (patch) | |
tree | 500ea4b5a57400fd84d0d428da9e8f2a997451fb /core | |
parent | d229856fc50bf09abb4679fcea3c06c7effd4dde (diff) | |
parent | 0b4d87961926d69e5f95b2a6477edb804d726b78 (diff) | |
download | nextcloud-server-dcca5f7bdd224f9fdd773d2a9ff8ac6f3199823a.tar.gz nextcloud-server-dcca5f7bdd224f9fdd773d2a9ff8ac6f3199823a.zip |
Merge pull request #5857 from owncloud/type-ahead-share-by-mail-master
introduce auto completion on share email - integrated with the contactsm...
Diffstat (limited to 'core')
-rw-r--r-- | core/ajax/share.php | 28 | ||||
-rw-r--r-- | core/js/share.js | 20 |
2 files changed, 48 insertions, 0 deletions
diff --git a/core/ajax/share.php b/core/ajax/share.php index e667d9b5faa..2b41bd8a5da 100644 --- a/core/ajax/share.php +++ b/core/ajax/share.php @@ -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'); diff --git a/core/js/share.js b/core/js/share.js index ef71cc7999a..5cabc614563 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -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>'; |