<?php
/*
* Jirafeau, your web file repository
- * Copyright (C) 2015 Jerome Jutteau <j.jutteau@gmail.com>
+ * Copyright (C) 2015 Jerome Jutteau <jerome@jutteau.fr>
* Copyright (C) 2015 Nicola Spanti (RyDroid) <dev@nicola-spanti.info>
*
* This program is free software: you can redistribute it and/or modify
*/
header('Content-Type: text/javascript');
-
define('JIRAFEAU_ROOT', dirname(__FILE__) . '/../');
require(JIRAFEAU_ROOT . 'lib/settings.php');
require(JIRAFEAU_ROOT . 'lib/functions.php');
require(JIRAFEAU_ROOT . 'lib/lang.php');
?>
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
var web_root = "<?php echo $cfg['web_root']; ?>";
var lang_array = <?php echo json_lang_generator(null); ?>;
// Email link
var filename = document.getElementById('file_select').files[0].name;
- var b = encodeURIComponent("Download file \"" + filename + "\":") + "%0D";
- b += encodeURIComponent(web_root + download_link_href) + "%0D";
+ var b = encodeURIComponent("<?php echo t("DL"); ?> \"" + filename + "\":") + "%0D" + "%0A";
+ b += encodeURIComponent(web_root + download_link_href) + "%0D" + "%0A";
if (false == isEmpty(date))
{
- b += "%0D" + encodeURIComponent("This file will be available until " + date.format('YYYY-MM-DD hh:mm (GMT O)')) + "%0D";
+ b += "%0D" + "%0A" + encodeURIComponent("<?php echo t("VALID_UNTIL"); ?>: " + date.format('YYYY-MM-DD hh:mm (GMT O)')) + "%0D" + "%0A";
document.getElementById('upload_link_email').href = "mailto:?body=" + b + "&subject=" + encodeURIComponent(filename);
}
}
if (time == 'month')
{
- d.setSeconds (d.getSeconds() + 2419200);
+ d.setSeconds (d.getSeconds() + 2592000);
return true;
}
if (time == 'quarter')
{
- d.setSeconds (d.getSeconds() + 7257600);
+ d.setSeconds (d.getSeconds() + 7776000);
return true;
}
if (time == 'year')
{
- d.setSeconds (d.getSeconds() + 29030400);
+ d.setSeconds (d.getSeconds() + 31536000);
return true;
}
return false;
var async_global_max_size = 0;
var async_global_time;
var async_global_transfering = 0;
+var async_global_last_code;
function async_upload_start (max_size, file, time, password, one_time, upload_password)
{
function async_upload_push (code)
{
+ async_global_last_code = code;
if (async_global_transfered == async_global_file.size)
{
hide_upload_progression ();
req.addEventListener ("abort", pop_failure, false);
req.onreadystatechange = function ()
{
- if (req.readyState == 4 && req.status == 200)
+ if (req.readyState == 4)
{
- var res = req.responseText;
+ if (req.status == 200)
+ {
+ var res = req.responseText;
- if (/^Error/.test(res))
+ if (/^Error/.test(res))
+ {
+ pop_failure (res);
+ return;
+ }
+
+ res = res.split ("\n");
+ var code = res[0]
+ async_global_transfered = async_global_transfering;
+ async_upload_push (code);
+ }
+ else
{
- pop_failure (res);
- return;
+ if (req.status == 413) // Request Entity Too Large
+ {
+ // lower async_global_max_size and retry
+ async_global_max_size = parseInt (async_global_max_size * 0.8);
+ }
+ async_upload_push (async_global_last_code);
}
-
- res = res.split ("\n");
- var code = res[0]
- async_global_transfered = async_global_transfering;
- async_upload_push (code);
}
}
req.open ("POST", 'script.php?push_async' , true);
- var chunk_size = parseInt (async_global_max_size * 0.50);
var start = async_global_transfered;
- var end = start + chunk_size;
+ var end = start + async_global_max_size;
if (end >= async_global_file.size)
end = async_global_file.size;
var blob = async_global_file.slice (start, end);
function upload (max_size)
{
+ var one_time_checkbox = document.getElementById('one_time_download');
+ var one_time = one_time_checkbox !== null ? one_time_checkbox.checked : false;
if (check_html5_file_api ()
&& document.getElementById('file_select').files[0].size >= max_size)
{
document.getElementById('file_select').files[0],
document.getElementById('select_time').value,
document.getElementById('input_key').value,
- document.getElementById('one_time_download').checked,
+ one_time,
document.getElementById('upload_password').value
);
}
document.getElementById('file_select').files[0],
document.getElementById('select_time').value,
document.getElementById('input_key').value,
- document.getElementById('one_time_download').checked,
+ one_time,
document.getElementById('upload_password').value
);
}
if (s <= 1000)
{
res = s.toString();
- scale = "Bit/s";
+ scale = "B/s";
}
else if (s < 1000000)
{
res = Math.floor(s/100) / 10;
- scale = "KBit/s";
+ scale = "KB/s";
}
else
{
res = Math.floor(s/100000) / 10;
- scale = "Mbit/s";
+ scale = "MB/s";
}
if (res == 0)
return '';
}
function addCopyListener(button_id, link_id) {
- document.getElementById(button_id)
+ if(document.getElementById(button_id)){
+ document.getElementById(button_id)
.addEventListener("click", function() {
copyLinkToClipboard(link_id);});
+ }
}
+// @license-end