diff options
author | Thomas Mueller <thomas.mueller@tmit.eu> | 2012-12-10 18:41:08 +0100 |
---|---|---|
committer | Thomas Mueller <thomas.mueller@tmit.eu> | 2012-12-10 18:41:08 +0100 |
commit | 45074d5023d408f4f81bc45380ce68b1008f9414 (patch) | |
tree | b9d32d1b211e4c30d522deb3af7af49b58a6cb5f | |
parent | 9a3a83e16a5a65229ffeebafe739fffd524499bc (diff) | |
download | nextcloud-server-45074d5023d408f4f81bc45380ce68b1008f9414.tar.gz nextcloud-server-45074d5023d408f4f81bc45380ce68b1008f9414.zip |
restoring feature to send sharing link via email
-rw-r--r-- | apps/files_sharing/ajax/email.php | 39 | ||||
-rw-r--r-- | apps/files_sharing/js/share.js | 24 | ||||
-rw-r--r-- | core/css/share.css | 14 | ||||
-rw-r--r-- | core/js/share.js | 12 |
4 files changed, 82 insertions, 7 deletions
diff --git a/apps/files_sharing/ajax/email.php b/apps/files_sharing/ajax/email.php new file mode 100644 index 00000000000..4ed4eef723a --- /dev/null +++ b/apps/files_sharing/ajax/email.php @@ -0,0 +1,39 @@ +<?php +OCP\JSON::checkLoggedIn(); +OCP\JSON::callCheck(); +OCP\JSON::checkAppEnabled('files_sharing'); + +// read post variables +$user = OCP\USER::getUser(); +$type = $_POST['type']; +$link = $_POST['link']; +$file = $_POST['file']; +$to_address = $_POST['toaddress']; + +// enable l10n support +$l = OC_L10N::get('files_sharing'); + +// 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()))); +} diff --git a/apps/files_sharing/js/share.js b/apps/files_sharing/js/share.js index 7eb086712f4..a83252867a9 100644 --- a/apps/files_sharing/js/share.js +++ b/apps/files_sharing/js/share.js @@ -33,6 +33,28 @@ $(document).ready(function() { }); OC.Share.loadIcons('file'); } - + + $('#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 != '') { + $.post(OC.filePath('files_sharing', 'ajax', 'email.php'), { toaddress: email, link: link, type: itemType, file: file }, function(result) { + if (result && result.status == 'success') { + $('#email').css('font-weight', 'bold'); + $('#email').animate({ fontWeight: 'normal' }, 2000, function() { + $(this).val(''); + }).val('Email sent'); + } else { + OC.dialogs.alert(result.data.message, 'Error while sharing'); + } + }); + } + }); + });
\ No newline at end of file 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..962983e2f35 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;" 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) { |