summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2012-12-12 04:54:51 -0800
committerThomas Müller <thomas.mueller@tmit.eu>2012-12-12 04:54:51 -0800
commit8b4aad73c7f96608e495e5e912c059406ee1da49 (patch)
tree7fcb7304f111a5344adc3126c6b052016a57aafd /core
parent72fe339c102975ee693e1ced005ca6d3f865389d (diff)
parentc938a4f791182d86045a45bcffda37c1b6e651f8 (diff)
downloadnextcloud-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.php36
-rw-r--r--core/css/share.css14
-rw-r--r--core/js/share.js42
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'));
+ }
+ });
+ }
+ });
+
+
});