Luc Didry c2e926
% # vim:set sts=4 sw=4 ts=4 ft=javascript expandtab:
Luc Didry c2e926
function findItem(name) {
Luc Didry 8d85cd
    var files = localStorage.getItem(window.prefix + 'files');
Luc Didry c2e926
    if (files === null) {
Luc Didry c2e926
        files = new Array();
Luc Didry c2e926
    } else {
Luc Didry c2e926
        files = JSON.parse(files);
Luc Didry c2e926
    }
Luc Didry c2e926
    var i;
Luc Didry c2e926
    for (i = 0; i < files.length; i++) {
Luc Didry c2e926
        if (files[i].short === name) {
Luc Didry c2e926
            return files[i];
Luc Didry c2e926
        }
Luc Didry c2e926
    }
Luc Didry c2e926
}
Luc Didry c2e926
function updateMailtoLink() {
Luc Didry c2e926
    var btn     = document.getElementById('mailto');
Luc Didry c2e926
    var emails  = document.getElementById('emails');
Luc Didry c2e926
    var subject = document.getElementById('subject');
Luc Didry c2e926
    var text    = document.getElementById('body');
Luc Didry c2e926
Luc Didry c2e926
    btn.href = 'mailto:'+encodeURIComponent(emails.value)+'?subject='+encodeURIComponent(subject.value)+'&body='+encodeURIComponent(text.value);
Luc Didry c2e926
}
Luc Didry c2e926
function populateBody() {
Luc Didry c2e926
    var links = [
Luc Didry 377ba0
    % my $ref = ref(stash('links'));
Luc Didry 377ba0
    % if ($ref eq 'ARRAY') {
Luc Didry 377ba0
    %   for my $link (@{stash('links')}) {
Luc Didry c2e926
        '<%= $link %>',
Luc Didry 377ba0
    %   }
Luc Didry 377ba0
    % } else {
Luc Didry 377ba0
        '<%= stash('links') %>',
Luc Didry c2e926
    % }
Luc Didry c2e926
    ];
Luc Didry c2e926
    var text = "<%== l('Hello,\n\nHere\'s some files I want to share with you:\n') %>";
Luc Didry c2e926
    links.forEach(function(name, index, array) {
Luc Didry c2e926
        var item = findItem(name);
Luc Didry c2e926
        if (item !== null && item !== undefined) {
Luc Didry c2e926
            var limit = (item.delay === 0) ? null : moment.unix(item.delay * 86400 + item.created_at).locale(window.navigator.language).format('LLLL');
Luc Didry c2e926
            text = text+'- '+item.name+'<%= l(':') %> '+item.url;
Luc Didry c2e926
            if (limit !== null) {
Luc Didry c2e926
                text = text+"\n  (<%= l('deadline: ') %>"+limit+')';
Luc Didry c2e926
            }
Luc Didry c2e926
            text = text+"\n";
Luc Didry c2e926
        }
Luc Didry c2e926
    });
Luc Didry c2e926
Luc Didry 4271d0
% if (!defined(config('ldap')) && !defined(config('htpasswd'))) {
Luc Didry 43428b
    text  = text+"\n-- \n<%= l('Share your files in total privacy on %1', url_for('/')->to_abs) %>";
Luc Didry 4271d0
% }
Luc Didry c2e926
    tArea = document.getElementById('body').value = text;
Luc Didry c2e926
    updateMailtoLink();
Luc Didry c2e926
}
Luc Didry c2e926
document.addEventListener('DOMContentLoaded', function() {
Luc Didry 25ab7e
% if (stash('populate')) {
Luc Didry c2e926
    populateBody();
Luc Didry c2e926
% }
Luc Didry c2e926
Luc Didry c2e926
    var emails  = document.getElementById('emails');
Luc Didry c2e926
    var subject = document.getElementById('subject');
Luc Didry c2e926
    var text    = document.getElementById('body');
Luc Didry c2e926
    emails.addEventListener('change', updateMailtoLink);
Luc Didry c2e926
    subject.addEventListener('change', updateMailtoLink);
Luc Didry c2e926
    text.addEventListener('change', updateMailtoLink);
Luc Didry c2e926
});