|
Luc Didry |
d94c2b |
// vim:set sw=4 ts=4 sts=4 ft=javascript expandtab:
|
|
Luc Didry |
691516 |
// Add item to localStorage
|
|
Luc Didry |
691516 |
function addItem(item) {
|
|
Luc Didry |
691516 |
var files = localStorage.getItem('files');
|
|
Luc Didry |
691516 |
if (files === null) {
|
|
Luc Didry |
691516 |
files = new Array();
|
|
Luc Didry |
691516 |
} else {
|
|
Luc Didry |
691516 |
files = JSON.parse(files);
|
|
Luc Didry |
691516 |
}
|
|
Luc Didry |
691516 |
files.push(item);
|
|
Luc Didry |
691516 |
localStorage.setItem('files', JSON.stringify(files));
|
|
Luc Didry |
691516 |
}
|
|
Luc Didry |
691516 |
|
|
Luc Didry |
60e157 |
function delItem(name) {
|
|
Luc Didry |
60e157 |
var files = localStorage.getItem('files');
|
|
Luc Didry |
60e157 |
if (files === null) {
|
|
Luc Didry |
60e157 |
files = new Array();
|
|
Luc Didry |
60e157 |
} else {
|
|
Luc Didry |
60e157 |
files = JSON.parse(files);
|
|
Luc Didry |
60e157 |
}
|
|
Luc Didry |
60e157 |
var i;
|
|
Luc Didry |
60e157 |
for (i = 0; i < files.length; i++) {
|
|
Luc Didry |
60e157 |
if (files[i].short === name) {
|
|
Luc Didry |
60e157 |
files.splice(i, 1);
|
|
Luc Didry |
60e157 |
}
|
|
Luc Didry |
60e157 |
}
|
|
Luc Didry |
60e157 |
localStorage.setItem('files', JSON.stringify(files));
|
|
Luc Didry |
60e157 |
}
|
|
Luc Didry |
60e157 |
|
|
Luc Didry |
691516 |
function itemExists(name) {
|
|
Luc Didry |
691516 |
var files = localStorage.getItem('files');
|
|
Luc Didry |
691516 |
if (files === null) {
|
|
Luc Didry |
691516 |
return false;
|
|
Luc Didry |
691516 |
} else {
|
|
Luc Didry |
691516 |
files = JSON.parse(files);
|
|
Luc Didry |
691516 |
var i;
|
|
Luc Didry |
691516 |
for (i = 0; i < files.length; i++) {
|
|
Luc Didry |
691516 |
if (files[i].short === name) {
|
|
Luc Didry |
691516 |
return true;
|
|
Luc Didry |
691516 |
}
|
|
Luc Didry |
691516 |
}
|
|
Luc Didry |
691516 |
return false;
|
|
Luc Didry |
691516 |
}
|
|
Luc Didry |
691516 |
}
|
|
Luc Didry |
691516 |
|
|
Luc Didry |
60e157 |
function purgeExpired() {
|
|
Luc Didry |
60e157 |
var files = JSON.parse(localStorage.getItem('files'));
|
|
Luc Didry |
60e157 |
|
|
Luc Didry |
60e157 |
files.forEach(function(element, index, array) {
|
|
Luc Didry |
d3222b |
$.ajax({
|
|
Luc Didry |
d3222b |
url: counterURL,
|
|
Luc Didry |
d3222b |
method: 'POST',
|
|
Luc Didry |
d3222b |
dataType: 'json',
|
|
Luc Didry |
d3222b |
data: {
|
|
Luc Didry |
d3222b |
short: element.short,
|
|
Luc Didry |
d3222b |
token: element.token
|
|
Luc Didry |
d3222b |
},
|
|
Luc Didry |
d3222b |
success: function(data, textStatus, jqXHR) {
|
|
Luc Didry |
60e157 |
if (data.success) {
|
|
Luc Didry |
60e157 |
if (data.deleted) {
|
|
Luc Didry |
d3222b |
$('#count-'+data.short).parent().remove();
|
|
Luc Didry |
60e157 |
delItem(data.short);
|
|
Luc Didry |
60e157 |
}
|
|
Luc Didry |
60e157 |
}
|
|
Luc Didry |
60e157 |
}
|
|
Luc Didry |
d3222b |
});
|
|
Luc Didry |
60e157 |
});
|
|
Luc Didry |
60e157 |
}
|
|
Luc Didry |
60e157 |
|
|
Luc Didry |
691516 |
function exportStorage() {
|
|
Luc Didry |
d3222b |
var a = $('');
|
|
Luc Didry |
d3222b |
a.hide();
|
|
Luc Didry |
d3222b |
$('body').append(a);
|
|
Luc Didry |
691516 |
|
|
Luc Didry |
691516 |
var storageData = [localStorage.getItem('files')];
|
|
Luc Didry |
d9412f |
var exportFile = new Blob(storageData, {type : 'application/json'});
|
|
Luc Didry |
691516 |
var url = window.URL.createObjectURL(exportFile);
|
|
Luc Didry |
691516 |
|
|
Luc Didry |
d3222b |
a.attr('href', url);
|
|
Luc Didry |
d3222b |
a.attr('download', 'data.json');
|
|
Luc Didry |
d3222b |
$('#data-json')[0].click();
|
|
Luc Didry |
d3222b |
$('#data-json').remove();
|
|
Luc Didry |
691516 |
}
|
|
Luc Didry |
691516 |
|
|
Luc Didry |
691516 |
function importStorage(f) {
|
|
Luc Didry |
691516 |
var reader = new FileReader();
|
|
Luc Didry |
691516 |
reader.addEventListener("loadend", function() {
|
|
Luc Didry |
691516 |
try {
|
|
Luc Didry |
691516 |
var newFiles = JSON.parse(String.fromCharCode.apply(null, new Uint8Array(reader.result)));
|
|
Luc Didry |
691516 |
var i;
|
|
Luc Didry |
691516 |
var hasImported = 0;
|
|
Luc Didry |
691516 |
for (i = 0; i < newFiles.length; i++) {
|
|
Luc Didry |
691516 |
var item = newFiles[i];
|
|
Luc Didry |
691516 |
if (!itemExists(item.short)) {
|
|
Luc Didry |
691516 |
addItem(item);
|
|
Luc Didry |
691516 |
hasImported++;
|
|
Luc Didry |
691516 |
}
|
|
Luc Didry |
691516 |
}
|
|
Luc Didry |
691516 |
populateFilesTable();
|
|
Luc Didry |
691516 |
|
|
Luc Didry |
d3222b |
Materialize.toast(i18n.importProcessed);
|
|
Luc Didry |
691516 |
} catch(err) {
|
|
Luc Didry |
691516 |
alert(err);
|
|
Luc Didry |
691516 |
}
|
|
Luc Didry |
691516 |
});
|
|
Luc Didry |
691516 |
reader.readAsArrayBuffer(f[0]);
|
|
Luc Didry |
691516 |
}
|
|
Luc Didry |
691516 |
|
|
Luc Didry |
55b0a3 |
function delFile() {
|
|
Luc Didry |
55b0a3 |
var dlink = $(this).attr('data-dlink');
|
|
Luc Didry |
55b0a3 |
var short = $(this).attr('data-short');
|
|
Luc Didry |
55b0a3 |
$.ajax({
|
|
Luc Didry |
55b0a3 |
url: dlink,
|
|
Luc Didry |
55b0a3 |
method: 'GET',
|
|
Luc Didry |
55b0a3 |
data: {
|
|
Luc Didry |
55b0a3 |
format: 'json'
|
|
Luc Didry |
55b0a3 |
},
|
|
Luc Didry |
55b0a3 |
success: function(data) {
|
|
Luc Didry |
55b0a3 |
if (data.success) {
|
|
Luc Didry |
55b0a3 |
$('#row-'+short).remove();
|
|
Luc Didry |
55b0a3 |
delItem(short);
|
|
Luc Didry |
55b0a3 |
} else {
|
|
Luc Didry |
55b0a3 |
alert(data.msg);
|
|
Luc Didry |
55b0a3 |
}
|
|
Luc Didry |
55b0a3 |
},
|
|
Luc Didry |
55b0a3 |
error: function() {
|
|
Luc Didry |
55b0a3 |
},
|
|
Luc Didry |
55b0a3 |
complete: function() {
|
|
Luc Didry |
55b0a3 |
}
|
|
Luc Didry |
55b0a3 |
});
|
|
Luc Didry |
55b0a3 |
}
|
|
Luc Didry |
55b0a3 |
|
|
Luc Didry |
81d73c |
function evaluateMassDelete() {
|
|
Luc Didry |
81d73c |
if ($('input[data-checked="data-checked"]').length > 0) {
|
|
Luc Didry |
81d73c |
$('#mass-delete').removeAttr('disabled');
|
|
Luc Didry |
81d73c |
$('#mass-delete').removeClass('disabled');
|
|
Luc Didry |
81d73c |
} else {
|
|
Luc Didry |
81d73c |
$('#mass-delete').attr('disabled');
|
|
Luc Didry |
81d73c |
$('#mass-delete').addClass('disabled');
|
|
Luc Didry |
81d73c |
}
|
|
Luc Didry |
81d73c |
}
|
|
Luc Didry |
81d73c |
|
|
Luc Didry |
81d73c |
function massDelete() {
|
|
Luc Didry |
81d73c |
$('input[data-checked="data-checked"]').each(delFile);
|
|
Luc Didry |
81d73c |
}
|
|
Luc Didry |
81d73c |
|
|
Luc Didry |
60e157 |
function populateFilesTable() {
|
|
Luc Didry |
d3222b |
$('#myfiles').empty();
|
|
Luc Didry |
691516 |
|
|
Luc Didry |
60e157 |
var files = JSON.parse(localStorage.getItem('files'));
|
|
Luc Didry |
691516 |
files.sort(function(a, b) {
|
|
Luc Didry |
691516 |
if (a.created_at < b.created_at) {
|
|
Luc Didry |
691516 |
return -1;
|
|
Luc Didry |
691516 |
} else if (a.created_at > b.created_at) {
|
|
Luc Didry |
691516 |
return 1;
|
|
Luc Didry |
691516 |
} else {
|
|
Luc Didry |
691516 |
return 0
|
|
Luc Didry |
691516 |
}
|
|
Luc Didry |
691516 |
});
|
|
Luc Didry |
60e157 |
files.forEach(function(element, index, array) {
|
|
Luc Didry |
d3222b |
var del_view = (element.del_at_first_view) ? '' : '';
|
|
Luc Didry |
60e157 |
var dlink = baseURL+'d/'+element.short+'/'+element.token;
|
|
Luc Didry |
60e157 |
var limit = (element.delay === 0) ? i18n.noExpiration : moment.unix(element.delay * 86400 + element.created_at).locale(window.navigator.language).format('LLLL');
|
|
Luc Didry |
60e157 |
var created_at = moment.unix(element.created_at).locale(window.navigator.language).format('LLLL');
|
|
Luc Didry |
60e157 |
|
|
Luc Didry |
55b0a3 |
var tr = $('');
|
|
Luc Didry |
81d73c |
tr.html([ '',
|
|
Luc Didry |
81d73c |
'<input type="checkbox" id="check-', element.short,'" data-short="', element.short, '" data-dlink="', dlink, '" data-checked="">',
|
|
Luc Didry |
81d73c |
'<label for="check-', element.short,'"></label>',
|
|
Luc Didry |
81d73c |
'',
|
|
Luc Didry |
81d73c |
'',
|
|
Luc Didry |
d94c2b |
escapeHtml(element.name),
|
|
Luc Didry |
d3222b |
'',
|
|
Luc Didry |
d3222b |
'',
|
|
Luc Didry |
d3222b |
'',
|
|
Luc Didry |
d3222b |
'',
|
|
Luc Didry |
d3222b |
'',
|
|
Luc Didry |
d3222b |
'',
|
|
Luc Didry |
d3222b |
'',
|
|
Luc Didry |
d3222b |
del_view,
|
|
Luc Didry |
d3222b |
'',
|
|
Luc Didry |
d3222b |
'',
|
|
Luc Didry |
d3222b |
created_at,
|
|
Luc Didry |
d3222b |
'',
|
|
Luc Didry |
d3222b |
'',
|
|
Luc Didry |
d3222b |
limit,
|
|
Luc Didry |
d3222b |
'',
|
|
Luc Didry |
d3222b |
'',
|
|
Luc Didry |
55b0a3 |
'',
|
|
Ilker Kulgu |
50982d |
'',
|
|
Ilker Kulgu |
50982d |
'',
|
|
Ilker Kulgu |
50982d |
'',
|
|
Luc Didry |
d3222b |
''].join(''));
|
|
Luc Didry |
d3222b |
$('#myfiles').append(tr);
|
|
Luc Didry |
55b0a3 |
$('#del-'+element.short).on('click', delFile);
|
|
Luc Didry |
81d73c |
$('label[for="check-'+element.short+'"').on('click', function(){
|
|
Luc Didry |
81d73c |
if ($('#check-'+element.short).attr('data-checked') && $('#check-'+element.short).attr('data-checked') === 'data-checked') {
|
|
Luc Didry |
81d73c |
$('#check-'+element.short).attr('data-checked', null);
|
|
Luc Didry |
81d73c |
} else {
|
|
Luc Didry |
81d73c |
$('#check-'+element.short).attr('data-checked', 'data-checked');
|
|
Luc Didry |
81d73c |
}
|
|
Luc Didry |
81d73c |
evaluateMassDelete();
|
|
Luc Didry |
81d73c |
});
|
|
Luc Didry |
60e157 |
|
|
Luc Didry |
d3222b |
$.ajax({
|
|
Luc Didry |
d3222b |
url: counterURL,
|
|
Luc Didry |
d3222b |
method: 'POST',
|
|
Luc Didry |
d3222b |
dataType: 'json',
|
|
Luc Didry |
d3222b |
data: {
|
|
Luc Didry |
d3222b |
short: element.short,
|
|
Luc Didry |
d3222b |
token: element.token
|
|
Luc Didry |
d3222b |
},
|
|
Luc Didry |
d3222b |
success: function(data, textStatus, jqXHR) {
|
|
Luc Didry |
60e157 |
if (data.success) {
|
|
Luc Didry |
d3222b |
$('#count-'+data.short).html(data.counter);
|
|
Luc Didry |
990729 |
if (data.deleted) {
|
|
Luc Didry |
d3222b |
$('#count-'+data.short).parent().addClass('purple lighten-4');
|
|
Luc Didry |
990729 |
}
|
|
Luc Didry |
60e157 |
} else {
|
|
Luc Didry |
60e157 |
alert(data.msg);
|
|
Luc Didry |
d3222b |
$('#count-'+data.short).parent().remove();
|
|
Luc Didry |
60e157 |
if (data.missing) {
|
|
Luc Didry |
60e157 |
delItem(data.short);
|
|
Luc Didry |
60e157 |
}
|
|
Luc Didry |
60e157 |
}
|
|
Luc Didry |
60e157 |
}
|
|
Luc Didry |
d3222b |
});
|
|
Luc Didry |
60e157 |
});
|
|
Luc Didry |
60e157 |
}
|