});
};
+function dateFromUtcString(datestring) {
+ // matches »YYYY-MM-DD hh:mm«
+ var m = datestring.match(/(\d+)-(\d+)-(\d+)\s+(\d+):(\d+)/);
+ return new Date(Date.UTC(+m[1], +m[2] - 1, +m[3], +m[4], +m[5], 0));
+}
+
+function dateFromUtcTimestamp(datetimestamp) {
+ return new Date(parseInt(datetimestamp) * 1000)
+}
+
function dateToUtcString(datelocal) {
return new Date(
datelocal.getUTCFullYear(),
).format();
}
-function show_link (url, reference, delete_code, crypt_key, date)
+function dateToUtcTimestamp(datelocal) {
+ return (Date.UTC(
+ datelocal.getUTCFullYear(),
+ datelocal.getUTCMonth(),
+ datelocal.getUTCDate(),
+ datelocal.getUTCHours(),
+ datelocal.getUTCMinutes(),
+ datelocal.getUTCSeconds()
+ ) / 1000);
+}
+
+function convertAllDatetimeFields() {
+ datefields = document.getElementsByClassName('datetime')
+ for(var i=0; i<datefields.length; i++) {
+ dateUTC = datefields[i].getAttribute('data-datetime');
+ datefields[i].setAttribute('title', dateUTC + ' (GMT)');
+ datefields[i].innerHTML = dateFromUtcString(dateUTC).format('YYYY-MM-DD hh:mm (GMT O)');
+ }
+}
+
+function show_link (reference, delete_code, crypt_key, date)
{
// Upload finished
document.getElementById('uploading').style.display = 'none';
document.title = 'Jirafeau - 100%';
// Download page
- var download_link = url + 'f.php?h=' + reference;
- var download_link_href = url + 'f.php?h=' + reference;
+ var download_link_href = 'f.php?h=' + reference;
if (crypt_key.length > 0)
{
- download_link += '&k=' + crypt_key;
download_link_href += '&k=' + crypt_key;
}
if (!!document.getElementById('upload_finished_download_page'))
{
- document.getElementById('upload_link').innerHTML = download_link;
document.getElementById('upload_link').href = download_link_href;
}
// Email link
var filename = document.getElementById('file_select').files[0].name;
var b = encodeURIComponent("Download file \"" + filename + "\":") + "%0D";
- b += encodeURIComponent(download_link_href) + "%0D";
+ b += encodeURIComponent("<?php echo $cfg['web_root']; ?>" + download_link_href) + "%0D";
if (false == isEmpty(date))
{
- b += "%0D" + encodeURIComponent("This file will be available until " + dateToUtcString(date)) + "%0D";
+ b += "%0D" + encodeURIComponent("This file will be available until " + date.format('YYYY-MM-DD hh:mm (GMT O)')) + "%0D";
document.getElementById('upload_link_email').href = "mailto:?body=" + b + "&subject=" + encodeURIComponent(filename);
}
// Delete link
- var delete_link = url + 'f.php?h=' + reference + '&d=' + delete_code;
- var delete_link_href = url + 'f.php?h=' + reference + '&d=' + delete_code;
- document.getElementById('delete_link').innerHTML = delete_link;
+ var delete_link_href = 'f.php?h=' + reference + '&d=' + delete_code;
document.getElementById('delete_link').href = delete_link_href;
// Validity date
if (isEmpty(date))
{
- document.getElementById('validity').style.display = 'none';
+ document.getElementById('date').style.display = 'none';
}
else {
- document.getElementById('date').innerHTML = '<span class="datetime">'
- + dateToUtcString(date) + ' (GMT)'
+ document.getElementById('date').innerHTML = '<span class="datetime" title="'
+ + dateToUtcString(date) + ' (GMT)">'
+ + date.format('YYYY-MM-DD hh:mm (GMT O)')
+ '</span>';
- document.getElementById('validity').style.display = '';
+ document.getElementById('date').style.display = '';
}
// Preview link (if allowed)
if (!!document.getElementById('preview_link'))
{
document.getElementById('upload_finished_preview').style.display = 'none';
- var preview_link = url + 'f.php?h=' + reference + '&p=1';
- var preview_link_href = url + 'f.php?h=' + reference + '&p=1';
+ var preview_link_href = 'f.php?h=' + reference + '&p=1';
if (crypt_key.length > 0)
{
- preview_link += '&k=' + crypt_key;
preview_link_href += '&k=' + crypt_key;
}
type.indexOf("text") > -1 ||
type.indexOf("video") > -1)
{
- document.getElementById('preview_link').innerHTML = preview_link;
document.getElementById('preview_link').href = preview_link_href;
document.getElementById('upload_finished_preview').style.display = '';
}
}
// Direct download link
- var direct_download_link = url + 'f.php?h=' + reference + '&d=1';
- var direct_download_link_href = url + 'f.php?h=' + reference + '&d=1';
+ var direct_download_link_href = 'f.php?h=' + reference + '&d=1';
if (crypt_key.length > 0)
{
- direct_download_link += '&k=' + crypt_key;
direct_download_link_href += '&k=' + crypt_key;
}
- document.getElementById('direct_link').innerHTML = direct_download_link;
document.getElementById('direct_link').href = direct_download_link_href;
-
// Hide preview and direct download link if password is set
if (document.getElementById('input_key').value.length > 0)
{
}
else
{
- document.getElementById('options').style.display = '';
- document.getElementById('send').style.display = '';
+ // add class to restyle upload form in next step
+ document.getElementById('upload').setAttribute('class', 'file-selected');
+ // display options
+ document.getElementById('options').style.display = 'block';
+ document.getElementById('send').style.display = 'block';
document.getElementById('error_pop').style.display = 'none';
- document.getElementById('file_select').style.left = 'inherit';
- document.getElementById('file_select').style.height = 'inherit';
- document.getElementById('file_select').style.opacity = '1';
+ document.getElementById('send').focus();
}
}
return false;
}
-function classic_upload (url, file, time, password, one_time, upload_password)
+function classic_upload (file, time, password, one_time, upload_password)
{
// Delay time estimation init as we can't have file size
upload_time_estimation_init(0);
expiryDate = localDatetime;
}
- show_link (url, res[0], res[1], res[2], expiryDate);
+ show_link (res[0], res[1], res[2], expiryDate);
}
}
- req.open ("POST", url + 'script.php' , true);
+ req.open ("POST", 'script.php' , true);
var form = new FormData();
form.append ("file", file);
}
var async_global_transfered = 0;
-var async_global_url = '';
var async_global_file;
var async_global_ref = '';
var async_global_max_size = 0;
var async_global_time;
var async_global_transfering = 0;
-function async_upload_start (url, max_size, file, time, password, one_time, upload_password)
+function async_upload_start (max_size, file, time, password, one_time, upload_password)
{
async_global_transfered = 0;
- async_global_url = url;
async_global_file = file;
async_global_max_size = max_size;
async_global_time = time;
async_upload_push (code);
}
}
- req.open ("POST", async_global_url + 'script.php?init_async' , true);
+ req.open ("POST", 'script.php?init_async' , true);
var form = new FormData();
form.append ("filename", async_global_file.name);
async_upload_push (code);
}
}
- req.open ("POST", async_global_url + 'script.php?push_async' , true);
+ req.open ("POST", 'script.php?push_async' , true);
var chunk_size = parseInt (async_global_max_size * 0.50);
var start = async_global_transfered;
expiryDate = localDatetime;
}
- show_link (async_global_url, res[0], res[1], res[2], expiryDate);
+ show_link (res[0], res[1], res[2], expiryDate);
}
}
- req.open ("POST", async_global_url + 'script.php?end_async' , true);
+ req.open ("POST", 'script.php?end_async' , true);
var form = new FormData();
form.append ("ref", async_global_ref);
req.send (form);
}
-function upload (url, max_size)
+function upload (max_size)
{
if (check_html5_file_api ()
&& document.getElementById('file_select').files[0].size >= max_size)
{
- async_upload_start (url,
+ async_upload_start (
max_size,
document.getElementById('file_select').files[0],
document.getElementById('select_time').value,
}
else
{
- classic_upload (url,
+ classic_upload (
document.getElementById('file_select').files[0],
document.getElementById('select_time').value,
document.getElementById('input_key').value,
}
return upload_speed_refresh_limiter_last_value;
}
+
+// document.ready()
+document.addEventListener('DOMContentLoaded', function(event) {
+ // Search for all datetime fields and convert the time to local timezone
+ convertAllDatetimeFields();
+});