diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2012-12-12 04:54:51 -0800 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2012-12-12 04:54:51 -0800 |
commit | 8b4aad73c7f96608e495e5e912c059406ee1da49 (patch) | |
tree | 7fcb7304f111a5344adc3126c6b052016a57aafd /core | |
parent | 72fe339c102975ee693e1ced005ca6d3f865389d (diff) | |
parent | c938a4f791182d86045a45bcffda37c1b6e651f8 (diff) | |
download | nextcloud-server-8b4aad73c7f96608e495e5e912c059406ee1da49.tar.gz nextcloud-server-8b4aad73c7f96608e495e5e912c059406ee1da49.zip |
Merge pull request #810 from owncloud/send-share-link-by-email
restoring feature to send sharing link via email
Diffstat (limited to 'core')
-rw-r--r-- | core/ajax/share.php | 36 | ||||
-rw-r--r-- | core/css/share.css | 14 | ||||
-rw-r--r-- | core/js/share.js | 42 |
3 files changed, 86 insertions, 6 deletions
diff --git a/core/ajax/share.php b/core/ajax/share.php index 41832a3c659..12206e0fd79 100644 --- a/core/ajax/share.php +++ b/core/ajax/share.php @@ -69,6 +69,42 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo ($return) ? OC_JSON::success() : OC_JSON::error(); } break; + case 'email': + // read post variables + $user = OCP\USER::getUser(); + $type = $_POST['itemType']; + $link = $_POST['link']; + $file = $_POST['file']; + $to_address = $_POST['toaddress']; + + // enable l10n support + $l = OC_L10N::get('core'); + + // setup the email + $subject = (string)$l->t('User %s shared a file with you', $user); + if ($type === 'dir') + $subject = (string)$l->t('User %s shared a folder with you', $user); + + $text = (string)$l->t('User %s shared the file "%s" with you. It is available for download here: %s', array($user, $file, $link)); + if ($type === 'dir') + $text = (string)$l->t('User %s shared the folder "%s" with you. It is available for download here: %s', array($user, $file, $link)); + + // handle localhost installations + $server_host = OCP\Util::getServerHost(); + if ($server_host === 'localhost') + $server_host = "example.com"; + + $default_from = 'sharing-noreply@' . $server_host; + $from_address = OCP\Config::getUserValue($user, 'settings', 'email', $default_from ); + + // send it out now + try { + OCP\Util::sendMail($to_address, $to_address, $subject, $text, $from_address, $user); + OCP\JSON::success(); + } catch (Exception $exception) { + OCP\JSON::error(array('data' => array('message' => $exception->getMessage()))); + } + break; } } else if (isset($_GET['fetch'])) { switch ($_GET['fetch']) { diff --git a/core/css/share.css b/core/css/share.css index 5aca731356a..e806d25982e 100644 --- a/core/css/share.css +++ b/core/css/share.css @@ -50,11 +50,17 @@ padding-top:.5em; } - #dropdown input[type="text"],#dropdown input[type="password"] { - width:90%; - } +#dropdown input[type="text"],#dropdown input[type="password"] { + width:90%; +} + +#dropdown form { + font-size: 100%; + margin-left: 0; + margin-right: 0; +} - #linkText,#linkPass,#expiration { +#linkText,#linkPass,#expiration { display:none; } diff --git a/core/js/share.js b/core/js/share.js index 475abb58bff..df5ebf008b4 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -168,6 +168,10 @@ OC.Share={ html += '<input id="linkPassText" type="password" placeholder="'+t('core', 'Password')+'" />'; html += '</div>'; html += '</div>'; + html += '<form id="emailPrivateLink" >'; + html += '<input id="email" style="display:none; width:65%;" value="" placeholder="'+t('core', 'Email link to person')+'" type="text" />'; + html += '<input id="emailButton" style="display:none; float:right;" type="submit" value="'+t('core', 'Send')+'" />'; + html += '</form>'; } html += '<div id="expiration">'; html += '<input type="checkbox" name="expirationCheckbox" id="expirationCheckbox" value="1" /><label for="expirationCheckbox">'+t('core', 'Set expiration date')+'</label>'; @@ -349,13 +353,17 @@ OC.Share={ $('#linkPassText').attr('placeholder', t('core', 'Password protected')); } $('#expiration').show(); + $('#emailPrivateLink #email').show(); + $('#emailPrivateLink #emailButton').show(); }, hideLink:function() { $('#linkText').hide('blind'); $('#showPassword').hide(); $('#linkPass').hide(); - }, - dirname:function(path) { + $('#emailPrivateLink #email').hide(); + $('#emailPrivateLink #emailButton').hide(); + }, + dirname:function(path) { return path.replace(/\\/g,'/').replace(/\/[^\/]*$/, ''); }, showExpirationDate:function(date) { @@ -547,4 +555,34 @@ $(document).ready(function() { }); }); + + $('#emailPrivateLink').live('submit', function(event) { + event.preventDefault(); + var link = $('#linkText').val(); + var itemType = $('#dropdown').data('item-type'); + var itemSource = $('#dropdown').data('item-source'); + var file = $('tr').filterAttr('data-id', String(itemSource)).data('file'); + var email = $('#email').val(); + if (email != '') { + $('#email').attr('disabled', "disabled"); + $('#email').val(t('core', 'Sending ...')); + $('#emailButton').attr('disabled', "disabled"); + + $.post(OC.filePath('core', 'ajax', 'share.php'), { action: 'email', toaddress: email, link: link, itemType: itemType, itemSource: itemSource, file: file}, + function(result) { + $('#email').attr('disabled', "false"); + $('#emailButton').attr('disabled', "false"); + if (result && result.status == 'success') { + $('#email').css('font-weight', 'bold'); + $('#email').animate({ fontWeight: 'normal' }, 2000, function() { + $(this).val(''); + }).val(t('core','Email sent')); + } else { + OC.dialogs.alert(result.data.message, t('core', 'Error while sharing')); + } + }); + } + }); + + }); |