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) ? [
- ''
- ].join('') : ''
- return [
- '`
} 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)}
+
+
`);
},
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([
- ''
- ].join(''));
+ $('.messages').prepend(``);
}
$('.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([
- ''
- ].join(''));
+ $('.messages').prepend(``);
}
$('#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)}
+
+
`);
// 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([
- ''
- ].join(''));
+ $('.messages').prepend(``);
}
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) ? `` : '';
+ return ``
+ } 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) ? [
- ''
- ].join('') : ''
- return [
- '',
- '
',
- '
', thumb,
- '
',
- '
',
- '
',
- '
',
- '
',
- '
',
- '
'
- ].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([
- ''
- ].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([
- ''
- ].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([
- ''
- ].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..
- }
- }
-}