From 5bf1a9d717aa9289c490a0e0dc6a028bf2f996c9 Mon Sep 17 00:00:00 2001 From: Luc Didry Date: Fri, 29 Dec 2023 07:30:15 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20=E2=80=94=20Use=20template=20lit?= =?UTF-8?q?erals=20in=20js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG | 1 + themes/default/templates/partial/common.js.ep | 79 +-- .../default/templates/partial/gallery.js.ep | 42 +- themes/default/templates/partial/lutim.js.ep | 335 ++++++------ .../default/templates/partial/myfiles.js.ep | 93 ++-- .../templates/layouts/default.html.ep | 2 + .../korrigan/templates/partial/korrigan.js.ep | 131 +++++ themes/korrigan/templates/partial/lutim.js.ep | 486 ------------------ 8 files changed, 419 insertions(+), 750 deletions(-) create mode 100644 themes/korrigan/templates/partial/korrigan.js.ep delete mode 100644 themes/korrigan/templates/partial/lutim.js.ep diff --git a/CHANGELOG b/CHANGELOG index 56a895b..896d67e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -3,6 +3,7 @@ Revision history for Lutim 0.16.0 ????-??-?? - ⬆️ UUpdate jQuery - 💥 BREAKING CHANGE: no more twitter cards + - 🎨 — Use template literals in js 0.15.0 2023-12-19 - ✨ — Add --nuke option to image command diff --git a/themes/default/templates/partial/common.js.ep b/themes/default/templates/partial/common.js.ep index e21946f..799dd3a 100644 --- a/themes/default/templates/partial/common.js.ep +++ b/themes/default/templates/partial/common.js.ep @@ -9,14 +9,14 @@ function addToShortHash(short) { window.short_hash[short] = 1; if (Object.keys(window.short_hash).length > 0) { $('#gallery-url').removeClass('hidden'); - $('#gallery-url-input').val(window.gallery_url+Object.keys(window.short_hash).join(',')); - $('#gallery-url-link').attr('href', window.gallery_url+Object.keys(window.short_hash).join(',')); + $('#gallery-url-input').val(`${window.gallery_url}${Object.keys(window.short_hash).join(',')}`); + $('#gallery-url-link').attr('href', `${window.gallery_url}${Object.keys(window.short_hash).join(',')}`); } } function rmFromShortHash(short) { delete window.short_hash[short]; - $('#gallery-url-input').val(window.gallery_url+Object.keys(window.short_hash).join(',')); - $('#gallery-url-link').attr('href', window.gallery_url+Object.keys(window.short_hash).join(',')); + $('#gallery-url-input').val(`${window.gallery_url}${Object.keys(window.short_hash).join(',')}`); + $('#gallery-url-link').attr('href', `${window.gallery_url}${Object.keys(window.short_hash).join(',')}`); if (Object.keys(window.short_hash).length === 0) { $('#gallery-url').addClass('hidden'); } @@ -25,14 +25,14 @@ function addToZipHash(short) { window.zip_hash[short] = 1; if (Object.keys(window.zip_hash).length > 0) { $('#zip-url').removeClass('hidden'); - $('#zip-url-input').val(window.zip_url+Object.keys(window.zip_hash).join('&i=')); - $('#zip-url-link').attr('href', window.zip_url+Object.keys(window.zip_hash).join('&i=')); + $('#zip-url-input').val(`${window.zip_url}${Object.keys(window.zip_hash).join('&i=')}`); + $('#zip-url-link').attr('href', `${window.zip_url}${Object.keys(window.zip_hash).join('&i=')}`); } } function rmFromZipHash(short) { delete window.zip_hash[short]; - $('#zip-url-input').val(window.zip_url+Object.keys(window.zip_hash).join('&i=')); - $('#zip-url-link').attr('href', window.zip_url+Object.keys(window.zip_hash).join('&i=')); + $('#zip-url-input').val(`${window.zip_url}${Object.keys(window.zip_hash).join('&i=')}`); + $('#zip-url-link').attr('href', `${window.zip_url}${Object.keys(window.zip_hash).join('&i=')}`); if (Object.keys(window.zip_hash).length === 0) { $('#zip-url').addClass('hidden'); } @@ -41,14 +41,14 @@ function addToRandomHash(short) { window.random_hash[short] = 1; if (Object.keys(window.random_hash).length > 0) { $('#random-url').removeClass('hidden'); - $('#random-url-input').val(window.random_url+Object.keys(window.random_hash).join('&i=')); - $('#random-url-link').attr('href', window.random_url+Object.keys(window.random_hash).join('&i=')); + $('#random-url-input').val(`${window.random_url}${Object.keys(window.random_hash).join('&i=')}`); + $('#random-url-link').attr('href', `${window.random_url}${Object.keys(window.random_hash).join('&i=')}`); } } function rmFromRandomHash(short) { delete window.random_hash[short]; - $('#random-url-input').val(window.random_url+Object.keys(window.random_hash).join('&i=')); - $('#random-url-link').attr('href', window.random_url+Object.keys(window.random_hash).join('&i=')); + $('#random-url-input').val(`${window.random_url}${Object.keys(window.random_hash).join('&i=')}`); + $('#random-url-link').attr('href', `${window.random_url}${Object.keys(window.random_hash).join('&i=')}`); if (Object.keys(window.random_hash).length === 0) { $('#random-url').addClass('hidden'); } @@ -85,10 +85,10 @@ function copyLink(e) { e.preventDefault(); var successful = copyText($(this).prop('href')); var msg = successful ? 'successful' : 'unsuccessful'; - console.debug('Copying text command was ' + msg); + console.debug(`Copying text command was ${msg}`); if (!successful) { badToast('<%= l('Unable to copy to clipboard') %>'); - throw new Error('Copying text command was ' + msg); + throw new Error(`Copying text command was ${msg}`); } else { goodToast('<%= l('Copied to clipboard') %>'); } @@ -105,10 +105,10 @@ function copyToClipboard(el) { try { var successful = copyInput(el); var msg = successful ? 'successful' : 'unsuccessful'; - console.debug('Copying text command was ' + msg); + console.debug(`Copying text command was ${msg}`); if (!successful) { badToast('<%= l('Unable to copy to clipboard') %>'); - throw new Error('Copying text command was ' + msg); + throw new Error(`Copying text command was ${msg}`); } else { goodToast('<%= l('Copied to clipboard') %>'); } @@ -126,9 +126,9 @@ function copyAllToClipboard(e) { try { var successful = copyText(text.join("\n")); var msg = successful ? 'successful' : 'unsuccessful'; - console.debug('Copying text command was ' + msg); + console.debug(`Copying text command was ${msg}`); if (!successful) { - throw new Error('Copying text command was ' + msg); + throw new Error(`Copying text command was ${msg}`); } } catch (err) { prompt('<%= l('Hit Ctrl+C, then Enter to copy the short link') %>', text.join(" ")); @@ -144,14 +144,14 @@ function delImage(e) { var short = $(this).attr('data-short'); var token = $(this).attr('data-token'); $.ajax({ - url: '<%= url_for('/') %>d/'+short+'/'+token, + url: `<%= url_for('/') %>d/${short}/${token}`, method: 'GET', data: { _format: 'json' }, success: function(data) { if (data.success) { - $('#alert-'+short).remove(); + $(`#alert-${short}`).remove(); evaluateCopyAll(); delItem(short); goodToast('<%= l('Image deleted') %>'); @@ -168,30 +168,33 @@ function delImage(e) { function link(url, dl, token, modify, only_url) { if (token !== undefined) { if (modify !== undefined && modify === true) { - return '<%== url_for('/m/')->to_abs() %>'+url+'/'+token; + return `<%== url_for('/m/')->to_abs() %>${url}/${token}`; } - var link = '<%== url_for('/')->to_abs() %>d/'+url+'/'+token; + var link = `<%== url_for('/')->to_abs() %>d/${url}/${token}`; if (only_url !== undefined && only_url === true) { return link; } - return [ - '', - '
', - '
', - '', - ' ', - '', - '
', - '', - '', - '', - '', - '
' - ].join(''); + return ` +
+
+ + + +
+ + + + +
`; } else if (dl !== '') { - url = url+'?'+dl; + url = `${url}?${dl}`; } - return '<%== prefix() %>'+url; + return `<%== prefix() %>${url}`; } function badToast(msg) { diff --git a/themes/default/templates/partial/gallery.js.ep b/themes/default/templates/partial/gallery.js.ep index d39b2b9..6ac9ded 100644 --- a/themes/default/templates/partial/gallery.js.ep +++ b/themes/default/templates/partial/gallery.js.ep @@ -193,7 +193,7 @@ var initPhotoSwipeFromDOM = function(gallerySelector) { var galleryElements = document.querySelectorAll( gallerySelector ); for(var i = 0, l = galleryElements.length; i < l; i++) { - galleryElements[i].setAttribute('data-pswp-uid', i+1); + galleryElements[i].setAttribute('data-pswp-uid', i + 1); galleryElements[i].onclick = onThumbnailsClick; } @@ -205,25 +205,19 @@ var initPhotoSwipeFromDOM = function(gallerySelector) { }; function addAlert(e) { - $('#infos-msg').append([ - '
', - '', - '<%= l('Something bad happened') %>
', - cleanName(e, false), - '
' - ].join('')); + $('#infos-msg').append(`
+ + <%= l('Something bad happened') %>
+ ${cleanName(e, false)} +
`); } function appendToGallery(url, width, height) { - $('.gallery').append( - [ - '
', - ' ', - ' ', - ' ', - '
' - ].join('') - ); + $('.gallery').append(`
+ + + +
`); } function nextOrInitGallery(keys) { @@ -238,21 +232,21 @@ function addElement(keys) { element = keys.shift(); if (!element.match('xcf')) { $.ajax({ - url: '<%= url_for('about_img') %>'+element, + url: `<%= url_for('about_img') %>${element}`, method: 'GET', dataType: 'json', success: function(data, textStatus, jqXHR) { if (data.success) { if (data.data.width && data.data.height) { - appendToGallery(absUrl+element, data.data.width, data.data.height); + appendToGallery(`${absUrl}${element}`, data.data.width, data.data.height); nextOrInitGallery(keys); } else { var img = new Image(); img.onload = function(){ - appendToGallery(absUrl+element, img.width, img.height); + appendToGallery(`${absUrl}${element}`, img.width, img.height); nextOrInitGallery(keys); } - img.src = absUrl+element; + img.src = `${absUrl}${element}`; } } else { addAlert(data.msg); @@ -269,14 +263,14 @@ function addElement(keys) { $(document).ready(function() { var key = window.location.hash.substring(1); // Get key // First, strip everything after the equal sign (=) which signals end of base64 string. - i = key.indexOf('='); if (i>-1) { key = key.substring(0,i+1); } + i = key.indexOf('='); if (i>-1) { key = key.substring(0, i + 1); } // If the equal sign was not present, some parameters may remain: - i = key.indexOf('&'); if (i>-1) { key = key.substring(0,i); } + i = key.indexOf('&'); if (i>-1) { key = key.substring(0, i); } var keys = key.split(','); $('#img-nb').append('

<%= l('There is XXXX image(s) in the gallery') %>

'.replace('XXXX', keys.length)); - $('#download-all').attr('href', $('#download-all').attr('href')+keys.join('&i=')); + $('#download-all').attr('href', $('#download-all').attr('href') + keys.join('&i=')); addElement(keys); }); diff --git a/themes/default/templates/partial/lutim.js.ep b/themes/default/templates/partial/lutim.js.ep index f4f37c1..4488845 100644 --- a/themes/default/templates/partial/lutim.js.ep +++ b/themes/default/templates/partial/lutim.js.ep @@ -19,13 +19,13 @@ function modifyImage(e) { modify(url, short); } function modify(url, short) { - var limit = $('#day-'+short).val(); - var del_at_view = ($('#first-view-'+short).prop('checked')) ? 1 : 0; + var limit = $(`#day-${short}`).val(); + var del_at_view = ($(`#first-view-${short}`).prop('checked')) ? 1 : 0; $.ajax({ url : url, type : 'POST', data : { - 'image_url' : '<%== url_for('/')->to_abs() %>'+short, + 'image_url' : `<%== url_for('/')->to_abs() %>${short}`, 'format' : 'json', 'delete-day' : limit, 'first-view' : del_at_view @@ -43,134 +43,131 @@ function modify(url, short) { function buildMessage(success, msg) { if(success) { var s_url = link([msg.short, '.', msg.ext].join(''), ''); - var thumb = (msg.thumb !== null) ? [ - '
', - '', - '', cleanName(msg.filename, true), ' thumbnail', - '', - '
' - ].join('') : '' - return [ - '
', - '', - '
', thumb, - '
', - '

', - '', - msg.filename, - '', - '

', - '
', - '
', - '', - '
', - '
', - '', - '', - '', - '
', - '', - '', - '', - '', - '
', - '
', - '
', - '', - '
', - '
', - '', - '
', - '', - '', - '', - '', - '
', - '
', - '
', - '', - '
', - '
', - '', - '', - '', - '
', - '', - '', - '', - '', - '
', - '
', - '
', - '', - '
', - '
', - '', - '', - '', - '
', - '', - '', - '', - '', - '
', - '
', - '
', - '
', - '', link(msg.real_short, '', msg.token), '', - '
', - '
', - '
', - '
', - '
', - '
', - '
', - '
', - ' + + + +
+
+
+ +
+
+ +
+ + + + +
+
+
+ +
+
+ + + +
+ + + + +
+
+
+ +
+
+ + + +
+ + + + +
+
+
+
+ ${link(msg.real_short, '', msg.token)} +
+
+ +
+ +
+
+
+  ', - '
', - '', - '
 ', - '', - '<%= l('Let\'s go!') %>', - '', - '
', - '
', - '
', - '' - ].join(''); +   +
+ +
  + + <%= l('Let\'s go!') %> + + + + + ` } else { - return [ - '
', - '', - '<%= l('Something bad happened') %>
', - cleanName(msg.filename, false), - '
', - cleanName(msg.msg, false), - '
' - ].join(''); + return `
+ + <%= l('Something bad happened') %>
+ ${cleanName(msg.filename, false)} +
+ ${cleanName(msg.msg, false)} +
`; } } function bindddz(firstview, deleteday) { @@ -180,51 +177,52 @@ function bindddz(firstview, deleteday) { allowedTypes: 'image/*', maxFileSize: <%= config('max_file_size') %>, onNewFile: function(id, file){ - $('.messages').append([ - '
', - cleanName(file.name), '
', - '
', - '
', - ' 0%', - '
', - '
', - '
' - ].join('')); + $('.messages').append(`
+ ${cleanName(file.name)}
+
+
+ 0% +
+
+
`); }, onUploadProgress: function(id, percent){ - var percentStr = ' '+percent+'%'; - $('#'+id).prop('aria-valuenow', percent); - $('#'+id).css('width', percent+'%'); - $('#'+id+'-text').html(percentStr); + var percentStr = ` ${percent}%`; + $(`#${id}`).prop('aria-valuenow', percent); + $(`#${id}`).css('width', `${percent}%`); + $(`#${id}-text`).html(percentStr); }, onUploadSuccess: function(id, data){ data.msg.filename = cleanName(data.msg.filename); - $('#'+id+'-div').remove(); + $(`#${id}-div`).remove(); if ($('#copy-all').length === 0 && data.success) { - $('.messages').prepend([ - '
', - '', - '<%= l('Copy all view links to clipboard') %>', - '', - '
' - ].join('')); + $('.messages').prepend(`
+ + <%= l('Copy all view links to clipboard') %> + +
`); } $('.messages').append(buildMessage(data.success, data.msg)); - $('#del-'+data.msg.real_short).on('click', function(e) { + $(`#del-${data.msg.real_short}`).on('click', function(e) { e.preventDefault(); - rmFromShortHash(data.msg.short+'.'+data.msg.ext) + rmFromShortHash(`${data.msg.short}.${data.msg.ext}`); rmFromZipHash(data.msg.short); rmFromRandomHash(data.msg.short); }); - $('#del-'+data.msg.real_short).on('click', delImage); + $(`#del-${data.msg.real_short}`).on('click', delImage); if (data.success) { - addToShortHash(data.msg.short+'.'+data.msg.ext); + addToShortHash(`${data.msg.short}.${data.msg.ext}`); addToZipHash(data.msg.short); addToRandomHash(data.msg.short); $('.close').unbind('click', evaluateCopyAll); $('.close').on('click', evaluateCopyAll); - $('input[type=\'text\']').unbind("click", selectInput); - $('input[type=\'text\']').on("click", selectInput); + $('input[type="text"]').unbind("click", selectInput); + $('input[type="text"]').on("click", selectInput); $('.copy-all-to-clipboard-link').unbind('click', copyAllToClipboard); $('.copy-all-to-clipboard-link').on('click', copyAllToClipboard); $('.modify-image').unbind('click', modifyImage); @@ -264,19 +262,17 @@ function upload_url(e) { $('.messages').append(buildMessage(data.success, data.msg)); if (data.success) { if ($('#copy-all').length === 0) { - $('.messages').prepend([ - '
', - '', - '<%= l('Copy all view links to clipboard') %>', - '', - '
' - ].join('')); + $('.messages').prepend(`
+ + <%= l('Copy all view links to clipboard') %> + +
`); } $('#lutim-file-url').val(''); - addToShortHash(data.msg.short+'.'+data.msg.ext); + addToShortHash(`${data.msg.short}.${data.msg.ext}`); addToZipHash(data.msg.short); addToRandomHash(data.msg.short); - $('#del-'+data.msg.real_short).on('click', delImage); + $(`#del-${data.msg.real_short}`).on('click', delImage); $('.close').unbind('click', evaluateCopyAll); $('.close').on('click', evaluateCopyAll); addItem(data.msg); @@ -308,15 +304,18 @@ function fileUpload(file) { fd.append('crypt', ($('#crypt').prop('checked')) ? 1 : 0); fd.append('delete-day', ($('#delete-day').val())); - $('.messages').append([ - '
', cleanName(file.name), '
', - '
', - '
', - ' 0%', - '
', - '
', - '
' - ].join('')); + $('.messages').append(`
${cleanName(file.name)}
+
+
+ 0% +
+
+
`); // Ajax Submit $.ajax({ url: '<%== url_for('/') %>', @@ -338,9 +337,9 @@ function fileUpload(file) { percent = Math.ceil(position / total * 100); } - var percentStr = ' '+percent+'%'; + var percentStr = ` ${percent}%`; $('#1').prop('aria-valuenow', percent); - $('#1').css('width', percent+'%'); + $('#1').css('width', `${percent}%`); $('#1-text').html(percentStr); }, false); } @@ -350,13 +349,11 @@ function fileUpload(file) { success: function (data, message, xhr){ $('#1-div').remove(); if ($('#copy-all').length === 0 && data.success) { - $('.messages').prepend([ - '
', - '', - '<%= l('Copy all view links to clipboard') %>', - '', - '
' - ].join('')); + $('.messages').prepend(`
+ + <%= l('Copy all view links to clipboard') %> + +
`); } data.msg.filename = cleanName(data.msg.filename); $('.messages').append(buildMessage(data.success, data.msg)); diff --git a/themes/default/templates/partial/myfiles.js.ep b/themes/default/templates/partial/myfiles.js.ep index 7fd99c1..5299853 100644 --- a/themes/default/templates/partial/myfiles.js.ep +++ b/themes/default/templates/partial/myfiles.js.ep @@ -57,7 +57,7 @@ function onCheck(e) { var short = $(this).data('short'); var ext = $(this).data('ext'); if ($(this).is(':checked')) { - addToShortHash(short+'.'+ext); + addToShortHash(`${short}.${ext}`); addToZipHash(short); addToRandomHash(short); if (!$('#check-all').is(':checked') && isAllChecked()) { @@ -67,7 +67,7 @@ function onCheck(e) { if ($('#check-all').is(':checked')) { $('#check-all').prop('checked', false); } - rmFromShortHash(short+'.'+ext); + rmFromShortHash(`${short}.${ext}`); rmFromZipHash(short); rmFromRandomHash(short); } @@ -118,10 +118,10 @@ function modifyDelay() { success: function(data) { updateItem(short, parseInt(limit), del_at_view); var newLimit = (parseInt(limit, 10) === 0) ? '<%= l('No limit') %>' : moment.unix(limit * 86400 + created_at).locale(window.navigator.language).format('LLLL'); - $('#limit-'+short).html(newLimit); - $('#del_at_view-'+short).html(delView(del_at_view)); - $('#edit-'+short).data('moddelay', limit); - $('#edit-'+short).data('modfirstview', del_at_view); + $(`#limit-${short}`).html(newLimit); + $(`#del_at_view-${short}`).html(delView(del_at_view)); + $(`#edit-${short}`).data('moddelay', limit); + $(`#edit-${short}`).data('modfirstview', del_at_view); goodToast(data.msg); }, error: function() { @@ -157,35 +157,62 @@ function populateFilesTable() { $('#myfiles').empty(); files.forEach(function(element, index, array) { var real_short = element.real_short; - var vlink = link(element.short+'.'+element.ext, ''); + var vlink = link(`${element.short}.${element.ext}`, ''); var dlink = link(real_short, 'dl', element.token, false, true); var limit = (element.limit === 0) ? '<%= l('No limit') %>' : moment.unix(element.limit * 86400 + element.created_at).locale(window.navigator.language).format('LLLL'); var created_at = moment.unix(element.created_at).locale(window.navigator.language).format('LLLL'); var name = element.filename.replace(//g, '>'); - var tr = [ - '', - '', - '', name, '', - '', - '', - ' ', - '', - '', - '', delView(element.del_at_view), '', - '', created_at, '', - '', - '', limit, '', - ' ', - '', - '', - '', - '', - '' - ].join(''); + var tr = `', + + + + + + ${name} + + +   + + + + + ${delView(element.del_at_view)} + ${created_at} + + ${limit} +   + + + + + + + + + `; $('#myfiles').append(tr); - $('#del-'+real_short).on('click', delImage); - $('#edit-'+real_short).on('click', editImage); + $(`#del-${real_short}`).on('click', delImage); + $(`#edit-${real_short}`).on('click', editImage); $.ajax({ url : '<%== url_for('counter') %>', @@ -197,17 +224,17 @@ function populateFilesTable() { success: function(data) { if (data.success) { if (data.enabled) { - $('#count-'+real_short).text(data.counter); + $(`#count-${real_short}`).text(data.counter); } else { delItem(real_short); - $('#alert-'+real_short).remove(); + $(`#alert-${real_short}`).remove(); } } else { - badToast(element.filename+' '+data.msg); + badToast(`${element.filename} ${data.msg}`); } }, error: function() { - badToast(element.filename+'<%= l(': Error while trying to get the counter.') %>'); + badToast(`${element.filename}<%= l(': Error while trying to get the counter.') %>`); } }); }); diff --git a/themes/korrigan/templates/layouts/default.html.ep b/themes/korrigan/templates/layouts/default.html.ep index efe5471..058d168 100644 --- a/themes/korrigan/templates/layouts/default.html.ep +++ b/themes/korrigan/templates/layouts/default.html.ep @@ -78,6 +78,7 @@ % } % if (current_route 'index') { %= javascript '/partial/lutim.js' + %= javascript '/partial/korrigan.js' % } % if (current_route 'gallery') { %= javascript '/js/photoswipe.min.js' @@ -86,6 +87,7 @@ %= javascript '/js/FileSaver.min.js' %= javascript '/partial/gallery.js' %= javascript '/partial/lutim.js' + %= javascript '/partial/korrigan.js' % } % if (current_route 'myfiles') { %= javascript '/js/moment-with-locales.min.js' diff --git a/themes/korrigan/templates/partial/korrigan.js.ep b/themes/korrigan/templates/partial/korrigan.js.ep new file mode 100644 index 0000000..41625da --- /dev/null +++ b/themes/korrigan/templates/partial/korrigan.js.ep @@ -0,0 +1,131 @@ +% # vim:set sw=4 ts=4 sts=4 ft=javascript expandtab: +function buildMessage(success, msg) { + if(success) { + var s_url = link([msg.short, '.', msg.ext].join(''), ''); + var thumb = (msg.thumb !== null) ? `
+ + ${cleanName(msg.filename, true)} thumbnail + +
` : ''; + return `
+ +
${thumb} +
+

+ + ${msg.filename} + +

+
+
+ +
+
+ + + +
+ + + + +
+
+
+ +
+
+ +
+ + + + +
+
+
+ +
+
+ + + +
+ + + + +
+
+
+ +
+
+ + + +
+ + + + +
+
+
+
+ ${link(msg.real_short, '', msg.token)} +
+
+
+
+
+
+
+
+   +
+ +
  + + <%= l('Let\'s go!') %> + +
+
+
+
` + } else { + return `
+ + <%= l('Something bad happened') %>
+ ${cleanName(msg.filename, false)} +
+ ${cleanName(msg.msg, false)} +
`; + } +} diff --git a/themes/korrigan/templates/partial/lutim.js.ep b/themes/korrigan/templates/partial/lutim.js.ep deleted file mode 100644 index f474833..0000000 --- a/themes/korrigan/templates/partial/lutim.js.ep +++ /dev/null @@ -1,486 +0,0 @@ -% # vim:set sw=4 ts=4 sts=4 ft=javascript expandtab: -function selectInput() { - $(this).select(); -} -function cleanName(name, empty) { - if (typeof(name) === 'undefined') { - return name; - } - if (empty !== undefined && empty !== null && empty) { - return name.replace(/&(l|g)t;/g, '').replace(/"/g, '\''); - } else { - return name.replace(//g, '>'); - } -} -function modifyImage(e) { - e.preventDefault(); - var url = $(this).data('modlink'); - var short = $(this).data('modshort'); - modify(url, short); -} -function modify(url, short) { - var limit = $('#day-'+short).val(); - var del_at_view = ($('#first-view-'+short).prop('checked')) ? 1 : 0; - $.ajax({ - url : url, - type : 'POST', - data : { - 'image_url' : '<%== url_for('/')->to_abs() %>'+short, - 'format' : 'json', - 'delete-day' : limit, - 'first-view' : del_at_view - }, - success: function(data) { - updateItem(short, limit, del_at_view); - goodToast(data.msg); - }, - error: function() { - badToast('<%= l('Error while trying to modify the image.') %>'); - } - }); -} - -function buildMessage(success, msg) { - if(success) { - var s_url = link([msg.short, '.', msg.ext].join(''), ''); - var thumb = (msg.thumb !== null) ? [ - '
', - '', - '', cleanName(msg.filename, true), ' thumbnail', - '', - '
' - ].join('') : '' - return [ - '
', - '', - '
', thumb, - '
', - '

', - '', - msg.filename, - '', - '

', - '
', - '
', - '', - '
', - '
', - '', - '', - '', - '
', - '', - '', - '', - '', - '
', - '
', - '
', - '', - '
', - '
', - '', - '
', - '', - '', - '', - '', - '
', - '
', - '
', - '', - '
', - '
', - '', - '', - '', - '
', - '', - '', - '', - '', - '
', - '
', - '
', - '', - '
', - '
', - '', - '', - '', - '
', - '', - '', - '', - '', - '
', - '
', - '
', - '
', - '', link(msg.real_short, '', msg.token), '', - '
', - '
', - '
', - '
', - '
', - '
', - '
', - '
', - ' ', - '
', - '', - '
 ', - '', - '<%= l('Let\'s go!') %>', - '', - '
', - '
', - '
', - '
' - ].join(''); - } else { - return [ - '
', - '', - '<%= l('Something bad happened') %>
', - cleanName(msg.filename, false), - '
', - cleanName(msg.msg, false), - '
' - ].join(''); - } -} -function bindddz(firstview, deleteday) { - $('#drag-and-drop-zone').dmUploader({ - url: '<%== url_for('/') %>', - dataType: 'json', - allowedTypes: 'image/*', - maxFileSize: <%= config('max_file_size') %>, - onNewFile: function(id, file){ - $('.messages').append([ - '
', - cleanName(file.name), '
', - '
', - '
', - ' 0%', - '
', - '
', - '
' - ].join('')); - }, - onUploadProgress: function(id, percent){ - var percentStr = ' '+percent+'%'; - $('#'+id).prop('aria-valuenow', percent); - $('#'+id).css('width', percent+'%'); - $('#'+id+'-text').html(percentStr); - }, - onUploadSuccess: function(id, data){ - data.msg.filename = cleanName(data.msg.filename); - $('#'+id+'-div').remove(); - if ($('#copy-all').length === 0 && data.success) { - $('.messages').prepend([ - '
', - '', - '<%= l('Copy all view links to clipboard') %>', - '', - '
' - ].join('')); - } - $('.messages').append(buildMessage(data.success, data.msg)); - $('#del-'+data.msg.real_short).on('click', function(e) { - e.preventDefault(); - rmFromShortHash(data.msg.short+'.'+data.msg.ext) - rmFromZipHash(data.msg.short); - rmFromRandomHash(data.msg.short); - }); - $('#del-'+data.msg.real_short).on('click', delImage); - if (data.success) { - addToShortHash(data.msg.short+'.'+data.msg.ext); - addToZipHash(data.msg.short); - addToRandomHash(data.msg.short); - $('.close').unbind('click', evaluateCopyAll); - $('.close').on('click', evaluateCopyAll); - $('input[type=\'text\']').unbind("click", selectInput); - $('input[type=\'text\']').on("click", selectInput); - $('.copy-all-to-clipboard-link').unbind('click', copyAllToClipboard); - $('.copy-all-to-clipboard-link').on('click', copyAllToClipboard); - $('.modify-image').unbind('click', modifyImage); - $('.modify-image').on('click', modifyImage); - $('.copy-to-clipboard-link').unbind('click', clickOnCopyLink); - $('.copy-to-clipboard-link').on('click', clickOnCopyLink); - addItem(data.msg); - } - }, - onUploadError: function(id, message){ - $('.messages').append(buildMessage(false, '')); - }, - onFileSizeError: function(file){ - $('.messages').append(buildMessage(false, { filename: file.name, msg: '<%= l('The file exceed the size limit (%1)', config('max_file_size')) %>'})); - } - }); -} - -function upload_url(e) { - e.preventDefault(); - var val = $('#lutim-file-url').val(); - if (val !== undefined && val !== '') { - $('#lutim-file-url').prop('disabled', 'disabled'); - $('.hidden-spin').css('display', 'block'); - $.ajax({ - url : '<%== url_for('/') %>', - type : 'POST', - data : { - 'lutim-file-url' : val, - 'format' : 'json', - 'first-view' : ($('#first-view').prop('checked')) ? 1 : 0, - 'crypt' : ($('#crypt').prop('checked')) ? 1 : 0, - 'delete-day' : $('#delete-day').val() - }, - success: function(data) { - data.msg.filename = cleanName(data.msg.filename); - $('.messages').append(buildMessage(data.success, data.msg)); - if (data.success) { - if ($('#copy-all').length === 0) { - $('.messages').prepend([ - '
', - '', - '<%= l('Copy all view links to clipboard') %>', - '', - '
' - ].join('')); - } - $('#lutim-file-url').val(''); - addToShortHash(data.msg.short+'.'+data.msg.ext); - addToZipHash(data.msg.short); - addToRandomHash(data.msg.short); - $('#del-'+data.msg.real_short).on('click', delImage); - $('.close').unbind('click', evaluateCopyAll); - $('.close').on('click', evaluateCopyAll); - addItem(data.msg); - } - }, - error: function() { - $('.messages').append(buildMessage(false, '')); - }, - complete: function() { - $('#lutim-file-url').prop('disabled', ''); - $('.hidden-spin').css('display', 'none'); - $('.copy-all-to-clipboard-link').unbind('click', copyAllToClipboard); - $('.copy-all-to-clipboard-link').on('click', copyAllToClipboard); - $('.modify-image').unbind('click', modifyImage); - $('.modify-image').on('click', modifyImage); - $('.copy-to-clipboard-link').unbind('click', clickOnCopyLink); - $('.copy-to-clipboard-link').on('click', clickOnCopyLink); - } - }); - } -} - -function fileUpload(file) { - var fd = new FormData(); - fd.append('file', file); - - fd.append('format', 'json'); - fd.append('first-view', ($('#first-view').prop('checked')) ? 1 : 0); - fd.append('crypt', ($('#crypt').prop('checked')) ? 1 : 0); - fd.append('delete-day', ($('#delete-day').val())); - - $('.messages').append([ - '
', cleanName(file.name), '
', - '
', - '
', - ' 0%', - '
', - '
', - '
' - ].join('')); - // Ajax Submit - $.ajax({ - url: '<%== url_for('/') %>', - type: 'POST', - dataType: 'json', - data: fd, - cache: false, - contentType: false, - processData: false, - forceSync: false, - xhr: function(){ - var xhrobj = $.ajaxSettings.xhr(); - if(xhrobj.upload){ - xhrobj.upload.addEventListener('progress', function(event) { - var percent = 0; - var position = event.loaded || event.position; - var total = event.total || e.totalSize; - if(event.lengthComputable){ - percent = Math.ceil(position / total * 100); - } - - var percentStr = ' '+percent+'%'; - $('#1').prop('aria-valuenow', percent); - $('#1').css('width', percent+'%'); - $('#1-text').html(percentStr); - }, false); - } - - return xhrobj; - }, - success: function (data, message, xhr){ - $('#1-div').remove(); - if ($('#copy-all').length === 0 && data.success) { - $('.messages').prepend([ - '
', - '', - '<%= l('Copy all view links to clipboard') %>', - '', - '
' - ].join('')); - } - data.msg.filename = cleanName(data.msg.filename); - $('.messages').append(buildMessage(data.success, data.msg)); - if (data.success) { - $('.close').unbind('click', evaluateCopyAll); - $('.close').on('click', evaluateCopyAll); - addItem(data.msg); - } - }, - error: function (xhr, status, errMsg){ - $('.messages').append(buildMessage(false, '')); - }, - complete: function () { - $('.copy-all-to-clipboard-link').unbind('click', copyAllToClipboard); - $('.copy-all-to-clipboard-link').on('click', copyAllToClipboard); - $('.modify-image').unbind('click', modifyImage); - $('.modify-image').on('click', modifyImage); - $('.copy-to-clipboard-link').unbind('click', clickOnCopyLink); - $('.copy-to-clipboard-link').on('click', clickOnCopyLink); - } - }); -} - -function initPaste() { - /* - actually FF and Chrome doesn't handle paste events the same way... - for ff we need to create a editable div and register an event to it. - When user paste, the image is "really" pasted in the div. Then, we need to iterate throught - the div childs to get images. Previsouly FF didn't have the paste event so it was esay to figure on wich browser we were. - But firefox now have a paste event so I test it... - - on Chrome the file object is directlyt in the clipboard. - */ - var b = 'FF'; - try { - //FF - var cbe = new ClipboardEvent('hop'); - } catch(hop) { - //under webkkit Clipboard doesn't have arguments... - b = 'WK' - } - if (b === 'FF') { - var pasteDiv = document.createElement('div'); - pasteDiv.addEventListener('paste', onPasteFF); - pasteDiv.setAttribute('class', 'pasteZone'); - pasteDiv.setAttribute('contenteditable', true); - - document.getElementsByTagName('body')[0].appendChild(pasteDiv); - pasteDiv.focus(); - - document.addEventListener('click', function(event) { - var t = $(event.target); - - switch (t[0].nodeName.toUpperCase()) { - case 'A': - case 'BUTTON': - case 'INPUT': - case 'SELECT': - case 'SPAN': - case 'LABEL': - break; - default: - if (t[0].parentNode.nodeName.toUpperCase() !== 'SELECT') { - pasteDiv.focus(); - } - } - }); - } else { - document.addEventListener('paste', onPaste); - } -} - -function waitforpastedata(elem, savedcontent) { - if (elem.childNodes && elem.childNodes.length > 0) { - processpaste(elem, savedcontent); - } else { - var that = { - e: elem, - s: savedcontent - }; - that.callself = function () { - waitforpastedata(that.e, that.s); - } - setTimeout(that.callself, 20); - } -} - -function processpaste(elem, savedcontent) { - var pasteZone = document.getElementsByClassName('pasteZone')[0]; - var f = new Image(); - - f.onload = function(){ - var canvas = document.createElement('canvas'); - canvas.width = f.width; - canvas.height = f.height; - - var ctx = canvas.getContext('2d'); - ctx.drawImage(f, 0, 0, canvas.width, canvas.height); - - canvas.toBlob(function(blob) { - var url = window.URL.createObjectURL(blob); - fileUpload(blob); - }); - } - - f.src = pasteZone.childNodes[0].src; - - pasteZone.innerHTML = ''; -} - -function onPasteFF(e) { - var pasteZone = document.getElementsByClassName('pasteZone')[0]; - waitforpastedata(pasteZone, 'savedcontent'); -} - -function onPaste(e) { - var items = e.clipboardData.items; - for(var i = 0; i < items.length; i++) { - var item = items[i]; - if (/image/.test(item.type)) { - var file = item.getAsFile(); - fileUpload(file); - } else { - //not image.. - } - } -}