introduce share by mail, ui part
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
This commit is contained in:
parent
ef467c3195
commit
0a6f02801f
|
@ -404,68 +404,6 @@ class ShareesAPIController extends OCSController {
|
||||||
return $remote;
|
return $remote;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $search
|
|
||||||
*/
|
|
||||||
protected function getEmails($search) {
|
|
||||||
$this->result['emails'] = [];
|
|
||||||
$this->result['exact']['emails'] = [];
|
|
||||||
|
|
||||||
$foundEmail = false;
|
|
||||||
|
|
||||||
// Search in contacts
|
|
||||||
//@todo Pagination missing
|
|
||||||
$addressBookContacts = $this->contactsManager->search($search, ['FN', 'EMAIL']);
|
|
||||||
foreach ($addressBookContacts as $contact) {
|
|
||||||
if (!isset($contact['EMAIL'])) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$emails = $contact['EMAIL'];
|
|
||||||
if (!is_array($emails)) {
|
|
||||||
$emails = [$emails];
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($emails as $email) {
|
|
||||||
if (strtolower($search) === strtolower($contact['FN']) ||
|
|
||||||
strtolower($search) === strtolower($email)
|
|
||||||
) {
|
|
||||||
if (strtolower($search) === strtolower($email)) {
|
|
||||||
$foundEmail = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->result['exact']['emails'][] = [
|
|
||||||
'label' => $contact['FN'],
|
|
||||||
'value' => [
|
|
||||||
'shareType' => Share::SHARE_TYPE_EMAIL,
|
|
||||||
'shareWith' => $email,
|
|
||||||
],
|
|
||||||
];
|
|
||||||
} else if ($this->shareeEnumeration) {
|
|
||||||
$this->result['emails'][] = [
|
|
||||||
'label' => $contact['FN'],
|
|
||||||
'value' => [
|
|
||||||
'shareType' => Share::SHARE_TYPE_EMAIL,
|
|
||||||
'shareWith' => $email,
|
|
||||||
],
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$foundEmail && substr_count($search, '@') >= 1 && $this->offset === 0) {
|
|
||||||
$this->result['exact']['emails'][] = [
|
|
||||||
'label' => $search,
|
|
||||||
'value' => [
|
|
||||||
'shareType' => Share::SHARE_TYPE_EMAIL,
|
|
||||||
'shareWith' => $search,
|
|
||||||
],
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->reachedEndFor[] = 'emails';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @NoAdminRequired
|
* @NoAdminRequired
|
||||||
*
|
*
|
||||||
|
@ -487,17 +425,16 @@ class ShareesAPIController extends OCSController {
|
||||||
|
|
||||||
$shareTypes = [
|
$shareTypes = [
|
||||||
Share::SHARE_TYPE_USER,
|
Share::SHARE_TYPE_USER,
|
||||||
|
Share::SHARE_TYPE_EMAIL,
|
||||||
|
Share::SHARE_TYPE_REMOTE
|
||||||
];
|
];
|
||||||
|
|
||||||
if ($this->shareManager->allowGroupSharing()) {
|
if ($this->shareManager->allowGroupSharing()) {
|
||||||
$shareTypes[] = Share::SHARE_TYPE_GROUP;
|
$shareTypes[] = Share::SHARE_TYPE_GROUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
$shareTypes[] = Share::SHARE_TYPE_EMAIL;
|
if (isset($_GET['shareType']) && is_array($_GET['shareType'])) {
|
||||||
$shareTypes[] = Share::SHARE_TYPE_REMOTE;
|
$shareTypes = array_intersect($shareTypes, $_GET['shareType']);
|
||||||
|
|
||||||
if (is_array($shareType)) {
|
|
||||||
$shareTypes = array_intersect($shareTypes, $shareType);
|
|
||||||
sort($shareTypes);
|
sort($shareTypes);
|
||||||
} else if (is_numeric($shareType)) {
|
} else if (is_numeric($shareType)) {
|
||||||
$shareTypes = array_intersect($shareTypes, [(int) $shareType]);
|
$shareTypes = array_intersect($shareTypes, [(int) $shareType]);
|
||||||
|
@ -583,6 +520,25 @@ class ShareesAPIController extends OCSController {
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* add option to send share by mail
|
||||||
|
*
|
||||||
|
* @param string $search
|
||||||
|
*/
|
||||||
|
protected function getEmail($search) {
|
||||||
|
$this->result['emails'] = [];
|
||||||
|
|
||||||
|
if (substr_count($search, '@') >= 1 && substr_count($search, ' ') === 0 && $this->offset === 0) {
|
||||||
|
$this->result['exact']['emails'][] = [
|
||||||
|
'label' => $search,
|
||||||
|
'value' => [
|
||||||
|
'shareType' => Share::SHARE_TYPE_EMAIL,
|
||||||
|
'shareWith' => $search,
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generates a bunch of pagination links for the current page
|
* Generates a bunch of pagination links for the current page
|
||||||
*
|
*
|
||||||
|
|
|
@ -154,10 +154,12 @@
|
||||||
var users = result.ocs.data.exact.users.concat(result.ocs.data.users);
|
var users = result.ocs.data.exact.users.concat(result.ocs.data.users);
|
||||||
var groups = result.ocs.data.exact.groups.concat(result.ocs.data.groups);
|
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 remotes = result.ocs.data.exact.remotes.concat(result.ocs.data.remotes);
|
||||||
|
var emails = result.ocs.data.exact.emails.concat(result.ocs.data.emails);
|
||||||
|
|
||||||
var usersLength;
|
var usersLength;
|
||||||
var groupsLength;
|
var groupsLength;
|
||||||
var remotesLength;
|
var remotesLength;
|
||||||
|
var emailsLength;
|
||||||
|
|
||||||
var i, j;
|
var i, j;
|
||||||
|
|
||||||
|
@ -212,10 +214,18 @@
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (share.share_type === OC.Share.SHARE_TYPE_EMAIL) {
|
||||||
|
emailsLength = emails.length;
|
||||||
|
for (j = 0; j < emailsLength; j++) {
|
||||||
|
if (emails[j].value.shareWith === share.share_with) {
|
||||||
|
emails.splice(j, 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var suggestions = users.concat(groups).concat(remotes);
|
var suggestions = users.concat(groups).concat(remotes).concat(emails);
|
||||||
|
|
||||||
if (suggestions.length > 0) {
|
if (suggestions.length > 0) {
|
||||||
$('.shareWithField').removeClass('error')
|
$('.shareWithField').removeClass('error')
|
||||||
|
@ -268,6 +278,10 @@
|
||||||
sharee: text
|
sharee: text
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
} else if (item.value.shareType === OC.Share.SHARE_TYPE_EMAIL) {
|
||||||
|
text = t('core', '{sharee} (email)', {
|
||||||
|
sharee: text
|
||||||
|
});
|
||||||
}
|
}
|
||||||
var insert = $("<div class='share-autocomplete-item'/>");
|
var insert = $("<div class='share-autocomplete-item'/>");
|
||||||
var avatar = $("<div class='avatardiv'></div>").appendTo(insert);
|
var avatar = $("<div class='avatardiv'></div>").appendTo(insert);
|
||||||
|
@ -397,7 +411,7 @@
|
||||||
var infoTemplate = this._getRemoteShareInfoTemplate();
|
var infoTemplate = this._getRemoteShareInfoTemplate();
|
||||||
remoteShareInfo = infoTemplate({
|
remoteShareInfo = infoTemplate({
|
||||||
docLink: this.configModel.getFederatedShareDocLink(),
|
docLink: this.configModel.getFederatedShareDocLink(),
|
||||||
tooltip: t('core', 'Share with people on other Nextclouds using the syntax username@example.com/nextcloud')
|
tooltip: t('core', 'Share with people on other servers using the syntax username@example.com/nextcloud')
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -405,16 +419,16 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
_renderSharePlaceholderPart: function () {
|
_renderSharePlaceholderPart: function () {
|
||||||
var sharePlaceholder = t('core', 'Share with users…');
|
var sharePlaceholder = t('core', 'Share with users, or by mail...');
|
||||||
|
|
||||||
if (this.configModel.get('allowGroupSharing')) {
|
if (this.configModel.get('allowGroupSharing')) {
|
||||||
if (this.configModel.get('isRemoteShareAllowed')) {
|
if (this.configModel.get('isRemoteShareAllowed')) {
|
||||||
sharePlaceholder = t('core', 'Share with users, groups or remote users…');
|
sharePlaceholder = t('core', 'Share with users, groups, remote users, or by mail…');
|
||||||
} else {
|
} else {
|
||||||
sharePlaceholder = t('core', 'Share with users or groups…');
|
sharePlaceholder = t('core', 'Share with users, groups or by mail...');
|
||||||
}
|
}
|
||||||
} else if (this.configModel.get('isRemoteShareAllowed')) {
|
} else if (this.configModel.get('isRemoteShareAllowed')) {
|
||||||
sharePlaceholder = t('core', 'Share with users or remote users…');
|
sharePlaceholder = t('core', 'Share with users, remote users or by mail...');
|
||||||
}
|
}
|
||||||
|
|
||||||
return sharePlaceholder;
|
return sharePlaceholder;
|
||||||
|
|
|
@ -29,9 +29,9 @@ class Constants {
|
||||||
const SHARE_TYPE_USER = 0;
|
const SHARE_TYPE_USER = 0;
|
||||||
const SHARE_TYPE_GROUP = 1;
|
const SHARE_TYPE_GROUP = 1;
|
||||||
const SHARE_TYPE_LINK = 3;
|
const SHARE_TYPE_LINK = 3;
|
||||||
const SHARE_TYPE_EMAIL = 4; // ToDo Check if it is still in use otherwise remove it
|
const SHARE_TYPE_EMAIL = 4;
|
||||||
const SHARE_TYPE_CONTACT = 5; // ToDo Check if it is still in use otherwise remove it
|
const SHARE_TYPE_CONTACT = 5; // ToDo Check if it is still in use otherwise remove it
|
||||||
const SHARE_TYPE_REMOTE = 6; // ToDo Check if it is still in use otherwise remove it
|
const SHARE_TYPE_REMOTE = 6;
|
||||||
|
|
||||||
const FORMAT_NONE = -1;
|
const FORMAT_NONE = -1;
|
||||||
const FORMAT_STATUSES = -2;
|
const FORMAT_STATUSES = -2;
|
||||||
|
|
Loading…
Reference in New Issue