I appreciate any and all help on this. I am a novice. I am customizing an OwnCloud setup, which has a great setup for sharing a link that the application creates via an internal system, but I need it to open an email in the default email application (such as Outlook) and have the link in the email. I am hoping to customize the code that is already there. There is a share.js file and a share.php file. Here are the excerpts from the share.js:
Option 1 - The form area that action contains the link that I'd like to include in the email:
html += '<label for="linkText" class="hidden-visually">'+t('core', 'Link')+'</label>';
html += '<input id="linkText" type="text" readonly="readonly" />';
html += '<input type="checkbox" name="showPassword" id="showPassword" value="1" style="display:none;" /><label for="showPassword" style="display:none;">'+t('core', 'Password protect')+'</label>';
html += '<div id="linkPass">';
html += '<label for="linkPassText" class="hidden-visually">'+t('core', 'Password')+'</label>';
html += '<input id="linkPassText" type="password" placeholder="'+t('core', 'Choose a password for the public link')+'" />';
html += '<span class="icon-loading-small hidden"></span>';
html += '</div>';
I tried changing it several ways, such as:
html += '<form method="POST" action="mailto:[email protected]?body=Link">';
html += '<label for="linkText" class="hidden-visually">'+t('core', 'Link')+'</label>';
html += '<input id="linkText" type="text" readonly="readonly" />';
html += '<input type="checkbox" name="showPassword" id="showPassword" value="1" style="display:none;" /><label for="showPassword" style="display:none;">'+t('core', 'Password protect')+'</label>';
html += '<div id="linkPass">';
html += '<label for="linkPassText" class="hidden-visually">'+t('core', 'Password')+'</label>';
html += '<input id="linkPassText" type="password" placeholder="'+t('core', 'Choose a password for the public link')+'" />';
html += '<span class="icon-loading-small hidden"></span>';
html += '<br />';
html += '<input type="submit" value="Send Link" />';
html += '</form>';
html += '</div>';
And then I do get an email to open up, but it does not contain the link.
Option 2 - This is the part of the form that sends a message from the application, but I need it to open up an email message that contains the same stuff it would send internally (or at the very least the link):
html += '<form id="emailPrivateLink">';
html += '<input id="email" style="display:none; width:62%;" value="" placeholder="'+t('core', 'Email link to person')+'" type="text" />';
html += '<input id="emailButton" style="display:none;" type="submit" value="Send Email" />';
And the part of the js file that that form references:
$(document).on('submit', '#dropdown #emailPrivateLink', 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();
var expirationDate = '';
if ( $('#expirationCheckbox').is(':checked') === true ) {
expirationDate = $( "#expirationDate" ).val();
}
if (email !='') {
$('#email').prop('disabled', true);
$('#email').val(t('core', 'Sending ...'));
$('#emailButton').prop('disabled', true);
$.post(OC.filePath('core', 'ajax', 'share.php'), { action: 'email', toaddress: email, link: link, itemType: itemType, itemSource: itemSource, file: file, expiration: expirationDate},
function(result) {
$('#email').prop('disabled', false);
$('#emailButton').prop('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'));
Any and all help is GREATLY appreciated.
Sending emails with Javascript