From 62e82b8224ebb341301826c998198f38446bc6ae Mon Sep 17 00:00:00 2001 From: Luc Didry Date: Wed, 9 Sep 2015 21:04:24 +0200 Subject: [PATCH] Put javascript in a partial template --- templates/index.html.ep | 241 +--------------------------------- templates/partial/lutim.js.ep | 241 ++++++++++++++++++++++++++++++++++ 2 files changed, 242 insertions(+), 240 deletions(-) create mode 100644 templates/partial/lutim.js.ep diff --git a/templates/index.html.ep b/templates/index.html.ep index 45d0624..85c7024 100644 --- a/templates/index.html.ep +++ b/templates/index.html.ep @@ -131,243 +131,4 @@ -%= javascript begin - function link(url, dl, token, modify) { - if (token !== undefined) { - if (modify !== undefined && modify === true) { - return '<%== url_for('/m/')->to_abs() %>'+url+'/'+token; - } else { - url = 'd/'+url+'/'+token; - } - } else if (dl !== '') { - url = url+'?'+dl; - } - return '<%== url_for('/')->to_abs() %>'+url+''; - } - function share(url) { - console.log(url); - new MozActivity({ - name: "share", - data: { - type: "url", - number: 1, - url: url - } - }); - } - function tw_url(url) { - var btn = '   '; - if (navigator.mozSetMessageHandler !== undefined) { - btn = btn+'   '; - } - return btn - } - function modify(url, short) { - $.ajax({ - url : url, - type : "POST", - data : { - 'image_url' : '<%== url_for('/')->to_abs() %>'+short, - 'format' : 'json', - 'first-view' : ($("#first-view-"+short).prop('checked')) ? 1 : 0, - 'delete-day' : $("#day-"+short).val() - }, - success: function(data) { - alert(data.msg); - }, - error: function() { - alert('<%= l('Error while trying to modify the image.') %>'); - } - }); - } - function build_message(success, msg) { - if(success) { - var thumb = (msg.thumb !== null) ? ''+msg.filename+' thumbnail' : '' - return '
' - +thumb - +'
' - +msg.filename - +'' - +tw_url(msg.short) - +'
  •  ' - +link(msg.short, '') - +'
  •  ' - +link(msg.short, 'dl') - +'
  •  ' - +link(msg.short, 't') - +'
  •  ' - +link(msg.real_short, '', msg.token) - +'
 
' - +'
 ' - +'<%= l('Let\'s go!') %>
' - +'
'; - } else { - return '
<%= l('Something bad happened') %>
' - +msg.filename - +"
" - +msg.msg - +'
'; - } - } - function bindddz(firstview, deleteday) { - $('#drag-and-drop-zone').dmUploader({ - url: '<%== url_for('/') %>', - dataType: 'json', - allowedTypes: 'image/*', - maxFileSize: <%= $max_file_size %>, - onNewFile: function(id, file){ - $(".messages").append('
'+file.name+'
0%
'); - }, - onUploadProgress: function(id, percent){ - var percentStr = ' '+percent+'%'; - $('#'+id).prop('aria-valuenow', percent); - $('#'+id).prop('style', 'width: '+percent+'%;'); - $('#'+id+'-text').html(percentStr); - }, - onUploadSuccess: function(id, data){ - $('#'+id+'-div').remove(); - $(".messages").append(build_message(data.success, data.msg)); - }, - onUploadError: function(id, message){ - $(".messages").append(build_message(false, '')); - }, - onFileSizeError: function(file){ - $(".messages").append(build_message(false, { filename: file.name, msg: '<%= l('The file exceed the size limit (%1)', $max_file_size) %>'})); - } - }); - } - - function upload_url() { - var val = $("#lutim-file-url").val(); - if (val !== undefined && val !== "") { - $("#lutim-file-url").prop('disabled', 'disabled'); - $(".hidden-spin").css('display', 'block'); - console.log(val); - $.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) { - $(".messages").append(build_message(data.success, data.msg)); - if (data.success) { - $("#lutim-file-url").val(''); - } - }, - error: function() { - $(".messages").append(build_message(false, '')); - }, - complete: function() { - $("#lutim-file-url").prop('disabled', ''); - $(".hidden-spin").css('display', 'none'); - } - }); - } else { - console.log("fhdsjnf"); - } - } - - 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('
'+file.name+'
0%
'); - // 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').prop('style', 'width: '+percent+'%;'); - $('#1-text').html(percentStr); - }, false); - } - - return xhrobj; - }, - success: function (data, message, xhr){ - $('#1-div').remove(); - $(".messages").append(build_message(data.success, data.msg)); - }, - error: function (xhr, status, errMsg){ - $(".messages").append(build_message(false, '')); - }, - }); - } - window.onload = function() { - if (navigator.mozSetMessageHandler !== undefined) { - navigator.mozSetMessageHandler('activity', function handler(activityRequest) { - var activityName = activityRequest.source.name; - if (activityName == 'share') { - activity = activityRequest; - blob = activity.source.data.blobs[0]; - fileUpload(blob); - } - }); - } - }; - $('document').ready(function() { - var firstview = ($("#first-view").prop('checked')) ? 1 : 0; - var deleteday = ($("#delete-day").prop('checked')) ? 1 : 0; - - bindddz(firstview, deleteday); - - $("#file-url-button").on("click", upload_url); - $('#lutim-file-url').keydown( function(e) { - var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0; - if(key == 13) { - e.preventDefault(); - upload_url(); - } - }); - }); -% end +%= include 'partial/lutim', format => 'js', d => \%d diff --git a/templates/partial/lutim.js.ep b/templates/partial/lutim.js.ep new file mode 100644 index 0000000..cb4e4d9 --- /dev/null +++ b/templates/partial/lutim.js.ep @@ -0,0 +1,241 @@ +% # vim:set sw=4 ts=4 sts=4 ft=javascript expandtab: +%= javascript begin + function link(url, dl, token, modify) { + if (token !== undefined) { + if (modify !== undefined && modify === true) { + return '<%== url_for('/m/')->to_abs() %>'+url+'/'+token; + } else { + url = 'd/'+url+'/'+token; + } + } else if (dl !== '') { + url = url+'?'+dl; + } + return '<%== url_for('/')->to_abs() %>'+url+''; + } + function share(url) { + console.log(url); + new MozActivity({ + name: "share", + data: { + type: "url", + number: 1, + url: url + } + }); + } + function tw_url(url) { + var btn = '   '; + if (navigator.mozSetMessageHandler !== undefined) { + btn = btn+'   '; + } + return btn + } + function modify(url, short) { + $.ajax({ + url : url, + type : "POST", + data : { + 'image_url' : '<%== url_for('/')->to_abs() %>'+short, + 'format' : 'json', + 'first-view' : ($("#first-view-"+short).prop('checked')) ? 1 : 0, + 'delete-day' : $("#day-"+short).val() + }, + success: function(data) { + alert(data.msg); + }, + error: function() { + alert('<%= l('Error while trying to modify the image.') %>'); + } + }); + } + function build_message(success, msg) { + if(success) { + var thumb = (msg.thumb !== null) ? ''+msg.filename+' thumbnail' : '' + return '
' + +thumb + +'
' + +msg.filename + +'' + +tw_url(msg.short) + +'
  •  ' + +link(msg.short, '') + +'
  •  ' + +link(msg.short, 'dl') + +'
  •  ' + +link(msg.short, 't') + +'
  •  ' + +link(msg.real_short, '', msg.token) + +'
 
' + +'
 ' + +'<%= l('Let\'s go!') %>
' + +'
'; + } else { + return '
<%= l('Something bad happened') %>
' + +msg.filename + +"
" + +msg.msg + +'
'; + } + } + function bindddz(firstview, deleteday) { + $('#drag-and-drop-zone').dmUploader({ + url: '<%== url_for('/') %>', + dataType: 'json', + allowedTypes: 'image/*', + maxFileSize: <%= $max_file_size %>, + onNewFile: function(id, file){ + $(".messages").append('
'+file.name+'
0%
'); + }, + onUploadProgress: function(id, percent){ + var percentStr = ' '+percent+'%'; + $('#'+id).prop('aria-valuenow', percent); + $('#'+id).prop('style', 'width: '+percent+'%;'); + $('#'+id+'-text').html(percentStr); + }, + onUploadSuccess: function(id, data){ + $('#'+id+'-div').remove(); + $(".messages").append(build_message(data.success, data.msg)); + }, + onUploadError: function(id, message){ + $(".messages").append(build_message(false, '')); + }, + onFileSizeError: function(file){ + $(".messages").append(build_message(false, { filename: file.name, msg: '<%= l('The file exceed the size limit (%1)', $max_file_size) %>'})); + } + }); + } + + function upload_url() { + var val = $("#lutim-file-url").val(); + if (val !== undefined && val !== "") { + $("#lutim-file-url").prop('disabled', 'disabled'); + $(".hidden-spin").css('display', 'block'); + console.log(val); + $.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) { + $(".messages").append(build_message(data.success, data.msg)); + if (data.success) { + $("#lutim-file-url").val(''); + } + }, + error: function() { + $(".messages").append(build_message(false, '')); + }, + complete: function() { + $("#lutim-file-url").prop('disabled', ''); + $(".hidden-spin").css('display', 'none'); + } + }); + } else { + console.log("fhdsjnf"); + } + } + + 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('
'+file.name+'
0%
'); + // 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').prop('style', 'width: '+percent+'%;'); + $('#1-text').html(percentStr); + }, false); + } + + return xhrobj; + }, + success: function (data, message, xhr){ + $('#1-div').remove(); + $(".messages").append(build_message(data.success, data.msg)); + }, + error: function (xhr, status, errMsg){ + $(".messages").append(build_message(false, '')); + }, + }); + } + window.onload = function() { + if (navigator.mozSetMessageHandler !== undefined) { + navigator.mozSetMessageHandler('activity', function handler(activityRequest) { + var activityName = activityRequest.source.name; + if (activityName == 'share') { + activity = activityRequest; + blob = activity.source.data.blobs[0]; + fileUpload(blob); + } + }); + } + }; + $('document').ready(function() { + var firstview = ($("#first-view").prop('checked')) ? 1 : 0; + var deleteday = ($("#delete-day").prop('checked')) ? 1 : 0; + + bindddz(firstview, deleteday); + + $("#file-url-button").on("click", upload_url); + $('#lutim-file-url').keydown( function(e) { + var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0; + if(key == 13) { + e.preventDefault(); + upload_url(); + } + }); + }); +% end