}
else
{
- if (req.status == 413) // Request Entity Too Large
- {
- // lower async_global_max_size and retry
- async_global_max_size = Math.max(1, parseInt (async_global_max_size * 0.8));
- }
+ // lower async_global_max_size and retry
+ // This can occurs in several cases:
+ // - Request Entity Too Large (413) due to server bad configuration relative to PHP configuration
+ // - Server Error (500) which can happen when PHP's `max_execution_time` is too low comparared to sent size
+ async_global_max_size = Math.max(1, parseInt (async_global_max_size * 0.5));
async_upload_push (async_global_last_code);
return;
}
// Let's compute the current speed
var d = new Date();
var speed = upload_time_estimation_moving_average_speed;
- if (d.getTime() - upload_time_estimation_transfered_date != 0)
+ if (d.getTime() - upload_time_estimation_transfered_date != 0) {
speed = (total_transfered_size - upload_time_estimation_transfered_size)
/ (d.getTime() - upload_time_estimation_transfered_date);
+ speed = Math.max(0, speed);
+ }
// Let's compute moving average speed on 30 values
var m = (upload_time_estimation_moving_average_speed * 29 + speed) / 30;
// Update global values
function upload_time_estimation_time()
{
// Estimate remaining time
- if (upload_time_estimation_moving_average_speed == 0)
+ if (upload_time_estimation_moving_average_speed <= 0)
return 0;
return (upload_time_estimation_total_size - upload_time_estimation_transfered_size)
/ upload_time_estimation_moving_average_speed;
copyLinkToClipboard(link_id);});
}
}
+
+function set_dark_mode() {
+ let steel_sheet = "<?php echo 'media/' . $cfg['dark_style'] . '/style.css.php'; ?>";
+ let shortcut_icon = "<?php echo 'media/' . $cfg['dark_style'] . '/favicon.ico'; ?>";
+ document.getElementById('stylesheet').href = steel_sheet;
+ document.getElementById('shortcut_icon').href = steel_sheet;
+}
+
+function set_light_mode() {
+ let steel_sheet = "<?php echo 'media/' . $cfg['style'] . '/style.css.php'; ?>";
+ let shortcut_icon = "<?php echo 'media/' . $cfg['style'] . '/favicon.ico'; ?>";
+ document.getElementById('stylesheet').href = steel_sheet;
+ document.getElementById('shortcut_icon').href = steel_sheet;
+}
+
+function color_scheme_preferences() {
+
+ let dark_mode_steel_sheet = "<?php echo 'media/' . $cfg['dark_style'] . '/style.css.php'; ?>"
+ if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
+ set_dark_mode();
+ } else {
+ set_light_mode();
+ }
+
+ // When user change its preference
+ window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', lightMode => {
+ lightMode.matches ? set_dark_mode() : set_light_mode();
+ });
+}
+
// @license-end