Merge branch 'master' of https://github.com/phpmyadmin/phpmyadmin
This commit is contained in:
commit
60eccbdce1
@ -3399,11 +3399,16 @@ RewriteRule .* - [F]
|
||||
<a href="#faq2_9">2.9 Seeing an upload progress bar</a></h4>
|
||||
|
||||
<p> To be able to see a progress bar during your uploads, your server must
|
||||
have either the <a href="http://pecl.php.net/package/APC">APC</a> extension
|
||||
or the <a href="http://pecl.php.net/package/uploadprogress">uploadprogress</a>
|
||||
one. Moreover, the JSON extension has to be enabled in your PHP.</p>
|
||||
have the <a href="http://pecl.php.net/package/APC">APC</a> extension,
|
||||
the <a href="http://pecl.php.net/package/uploadprogress">uploadprogress</a>
|
||||
one, or you must be running PHP 5.4.0 or higher.
|
||||
Moreover, the JSON extension has to be enabled in your PHP.</p>
|
||||
|
||||
<p> If using APC, you must set <code>apc.rfc1867</code> to <code>on</code> in your php.ini.</p>
|
||||
|
||||
<p> If using PHP 5.4.0 or higher, you must set <code>session.upload_progress.enabled</code>
|
||||
to <code>1</code> in your php.ini.</p>
|
||||
|
||||
<h3 id="faqlimitations">Known limitations</h3>
|
||||
|
||||
<h4 id="login_bug">
|
||||
|
||||
2
js/codemirror/mode/mysql/mysql.js
vendored
2
js/codemirror/mode/mysql/mysql.js
vendored
@ -25,7 +25,7 @@ CodeMirror.defineMode("mysql", function(config, parserConfig) {
|
||||
// start of string?
|
||||
if (ch == '"' || ch == "'" || ch == '`')
|
||||
return chain(stream, state, tokenString(ch));
|
||||
// is it one of the special signs []{}().,;? Seperator?
|
||||
// is it one of the special signs []{}().,;? separator?
|
||||
else if (/[\[\]{}\(\),;\.]/.test(ch))
|
||||
return ret(ch, "separator");
|
||||
// start of a number value?
|
||||
|
||||
@ -3644,6 +3644,30 @@ function toggleRowColors($start)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats a byte number to human-readable form
|
||||
*
|
||||
* @param bytes the bytes to format
|
||||
* @param optional subdecimals the number of digits after the point
|
||||
* @param optional pointchar the char to use as decimal point
|
||||
*/
|
||||
function formatBytes(bytes, subdecimals, pointchar) {
|
||||
if (!subdecimals) {
|
||||
var subdecimals = 0;
|
||||
}
|
||||
if (!pointchar) {
|
||||
var pointchar = '.';
|
||||
}
|
||||
var units = ['B', 'KiB', 'MiB', 'GiB'];
|
||||
for (var i = 0; bytes > 1024 && i < units.length; i++) {
|
||||
bytes /= 1024;
|
||||
}
|
||||
var factor = Math.pow(10, subdecimals);
|
||||
bytes = Math.round(bytes * factor) / factor;
|
||||
bytes = bytes.toString().split('.').join(pointchar);
|
||||
return bytes + ' ' + units[i];
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens pma more themes link in themes browser, in new window instead of popup
|
||||
* This way, we don't break HTML validity
|
||||
|
||||
@ -38,7 +38,6 @@ function matchFile(fname)
|
||||
}
|
||||
// Only toggle if the format of the file can be imported
|
||||
if($("select[name='format'] option").filterByValue(fname_array[len - 1]).length == 1) {
|
||||
$("#plugins option:selected").removeProp("selected");
|
||||
$("select[name='format'] option").filterByValue(fname_array[len - 1]).prop('selected', true);
|
||||
changePluginOpts();
|
||||
}
|
||||
@ -65,7 +64,7 @@ $(document).ready(function() {
|
||||
* When the "Browse the server" form is clicked or the "Select from the web server upload directory"
|
||||
* form is clicked, the radio button beside it becomes selected and the other form becomes disabled.
|
||||
*/
|
||||
$("#input_import_file").focus(function() {
|
||||
$("#input_import_file").bind("focus change", function() {
|
||||
$("#radio_import_file").prop('checked', true);
|
||||
$("#radio_local_import_file").removeProp('checked');
|
||||
});
|
||||
|
||||
2
js/jquery/timepicker.js
vendored
2
js/jquery/timepicker.js
vendored
@ -209,7 +209,7 @@ $.extend(Timepicker.prototype, {
|
||||
// the time should come after x number of characters and a space.
|
||||
// x = at least the length of text specified by the date format
|
||||
var dp_dateFormat = $.datepicker._get(this.inst, 'dateFormat');
|
||||
// escape special regex characters in the seperator
|
||||
// escape special regex characters in the separator
|
||||
var specials = new RegExp("[.*+?|()\\[\\]{}\\\\]", "g");
|
||||
regstr = '.{' + dp_dateFormat.length + ',}' + this._defaults.separator.replace(specials, "\\$&") + regstr;
|
||||
}
|
||||
|
||||
@ -69,9 +69,9 @@ $js_messages['strTotal'] = __('Total');
|
||||
/* l10n: Other, small valued, queries */
|
||||
$js_messages['strOther'] = __('Other');
|
||||
/* l10n: Thousands separator */
|
||||
$js_messages['strThousandsSeperator'] = __(',');
|
||||
$js_messages['strThousandsSeparator'] = __(',');
|
||||
/* l10n: Decimal separator */
|
||||
$js_messages['strDecimalSeperator'] = __('.');
|
||||
$js_messages['strDecimalSeparator'] = __('.');
|
||||
|
||||
$js_messages['strChartKBSent'] = __('KiB sent since last refresh');
|
||||
$js_messages['strChartKBReceived'] = __('KiB received since last refresh');
|
||||
|
||||
@ -25,8 +25,8 @@ $(function() {
|
||||
},
|
||||
format: function(s) {
|
||||
var num = jQuery.tablesorter.formatFloat(
|
||||
s.replace(PMA_messages['strThousandsSeperator'], '')
|
||||
.replace(PMA_messages['strDecimalSeperator'], '.')
|
||||
s.replace(PMA_messages['strThousandsSeparator'], '')
|
||||
.replace(PMA_messages['strDecimalSeparator'], '.')
|
||||
);
|
||||
|
||||
var factor = 1;
|
||||
|
||||
@ -1587,7 +1587,7 @@ function PMA_formatNumber(
|
||||
$value = round($value / (PMA_pow(1000, $d, 'pow') / $dh)) /$dh;
|
||||
$unit = $units[$d];
|
||||
|
||||
// If we dont want any zeros after the comma just add the thousand seperator
|
||||
// If we dont want any zeros after the comma just add the thousand separator
|
||||
if ($noTrailingZero) {
|
||||
$value = PMA_localizeNumber(
|
||||
preg_replace('/(?<=\d)(?=(\d{3})+(?!\d))/', ',', $value)
|
||||
@ -3515,7 +3515,7 @@ function PMA_createGISData($gis_string)
|
||||
* that are applicable to the provided geometry type.
|
||||
* @param bool $binary if set to false functions that take two geometries
|
||||
* as arguments will not be included.
|
||||
* @param bool $display if set to true seperators will be added to the
|
||||
* @param bool $display if set to true separators will be added to the
|
||||
* output array.
|
||||
*
|
||||
* @return array names and details of the functions that can be applied on
|
||||
@ -3576,7 +3576,7 @@ function PMA_getGISFunctions($geom_type = null, $binary = true, $display = false
|
||||
|
||||
// If we are asked for binary functions as well
|
||||
if ($binary) {
|
||||
// section seperator
|
||||
// section separator
|
||||
if ($display) {
|
||||
$funcs[] = array('display' => '--------');
|
||||
}
|
||||
|
||||
@ -40,19 +40,14 @@ if (empty($import_list)) {
|
||||
<?php
|
||||
if ($_SESSION[$SESSION_KEY]["handler"]!="noplugin") {
|
||||
?>
|
||||
$('#upload_form_status').html('<div class="upload_progress_bar_outer"><div id="status" class="upload_progress_bar_inner"></div></div>'); // add the progress bar
|
||||
|
||||
var finished = false;
|
||||
var percent = 0.0;
|
||||
var total = 0;
|
||||
var complete = 0;
|
||||
var original_title = parent && parent.document ? parent.document.title : false;
|
||||
var import_start;
|
||||
|
||||
var perform_upload;
|
||||
var periodical_upload;
|
||||
|
||||
var request_upload = [];
|
||||
|
||||
perform_upload = function () {
|
||||
var perform_upload = function () {
|
||||
new $.getJSON(
|
||||
'import_status.php?id=<?php echo $upload_id ; ?>&<?php echo PMA_generate_common_url(); ?>',
|
||||
{},
|
||||
@ -62,40 +57,94 @@ if ($_SESSION[$SESSION_KEY]["handler"]!="noplugin") {
|
||||
total = response.total;
|
||||
complete = response.complete;
|
||||
|
||||
if (total==0 && complete==0 && percent==0) {
|
||||
$('#upload_form_status_info').html('<img src="<?php echo $GLOBALS['pmaThemeImage'];?>ajax_clock_small.gif" alt="ajax clock" /> <?php echo PMA_jsFormat(__('The file being uploaded is probably larger than the maximum allowed size or this is a known bug in webkit based (Safari, Google Chrome, Arora etc.) browsers.'), false); ?>');
|
||||
$('#upload_form_status').css("display", "none");
|
||||
} else {
|
||||
$('#upload_form_status_info').html(' '+Math.round(percent)+'%, '+complete+'/'+total);
|
||||
$('#status').animate({width: Math.round(percent)*2+'px'},150);
|
||||
} // else
|
||||
if (total==0 && complete==0 && percent==0) {
|
||||
$('#upload_form_status_info').html('<img src="<?php echo $GLOBALS['pmaThemeImage'];?>ajax_clock_small.gif" width="16" height="16" alt="ajax clock" /> <?php echo PMA_jsFormat(__('The file being uploaded is probably larger than the maximum allowed size or this is a known bug in webkit based (Safari, Google Chrome, Arora etc.) browsers.'), false); ?>');
|
||||
$('#upload_form_status').css("display", "none");
|
||||
} else {
|
||||
var now = new Date();
|
||||
now = Date.UTC(
|
||||
now.getFullYear(), now.getMonth(), now.getDate(),
|
||||
now.getHours(), now.getMinutes(), now.getSeconds())
|
||||
+ now.getMilliseconds() - 1000;
|
||||
var statustext =
|
||||
formatBytes(complete, 1, PMA_messages.strDecimalSeparator)
|
||||
+ ' <?php echo PMA_jsFormat(__('of'), false); ?> '
|
||||
+ formatBytes(total, 1, PMA_messages.strDecimalSeparator);
|
||||
|
||||
if (finished==true) {
|
||||
$('#importmain').css('display', 'none');
|
||||
$('#import_form_status').css('display', 'inline');
|
||||
$('#import_form_status').html('<img src="<?php echo $GLOBALS['pmaThemeImage'];?>ajax_clock_small.gif" alt="ajax clock" /> <?php echo PMA_jsFormat(__('The file is being processed, please be patient.'), false); ?> ');
|
||||
$('#import_form_status').load('import_status.php?message=true&<?php echo PMA_generate_common_url(); ?>'); // loads the message, either success or mysql error
|
||||
<?php
|
||||
// reload the left sidebar when the import is finished
|
||||
$GLOBALS['reload']=true;
|
||||
PMA_reloadNavigation(true);
|
||||
?>
|
||||
if ($('#importmain').is(':visible')) {
|
||||
// show progress UI
|
||||
$('#importmain').hide();
|
||||
$('#import_form_status')
|
||||
.html('<div class="upload_progress"><div class="upload_progress_bar_outer"><div class="percentage"></div><div id="status" class="upload_progress_bar_inner"><div class="percentage"></div></div></div><div><img src="<?php echo $GLOBALS['pmaThemeImage'];?>ajax_clock_small.gif" width="16" height="16" alt="ajax clock" /> <?php echo PMA_jsFormat(__('Uploading your import file...'), false); ?></div><div id="statustext"></div></div>')
|
||||
.show();
|
||||
import_start = now;
|
||||
}
|
||||
else if (percent > 9 || complete > 2000000) {
|
||||
// calculate estimated time
|
||||
var used_time = now - import_start;
|
||||
var seconds = parseInt(((total - complete) / complete) * used_time / 1000);
|
||||
var speed = '<?php echo PMA_jsFormat(__('%s/sec.'), false); ?>'
|
||||
.replace('%s', formatBytes(complete / used_time * 1000, 1, PMA_messages.strDecimalSeparator));
|
||||
|
||||
} // if finished
|
||||
else {
|
||||
window.setTimeout(perform_upload, 1000);
|
||||
}
|
||||
var minutes = parseInt(seconds / 60);
|
||||
seconds %= 60;
|
||||
var estimated_time;
|
||||
if (minutes > 0) {
|
||||
estimated_time = '<?php echo PMA_jsFormat(__('About %MIN min. %SEC sec. remaining.'), false); ?>'
|
||||
.replace('%MIN', minutes).replace('%SEC', seconds);
|
||||
}
|
||||
else {
|
||||
estimated_time = '<?php echo PMA_jsFormat(__('About %SEC sec. remaining.'), false); ?>'
|
||||
.replace('%SEC', seconds);
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
statustext += '<br />' + speed + '<br /><br />' + estimated_time;
|
||||
}
|
||||
|
||||
}
|
||||
window.setTimeout(perform_upload, 1000);
|
||||
var percent_str = Math.round(percent) + '%';
|
||||
$('#status').animate({width: percent_str}, 150);
|
||||
$('.percentage').text(percent_str);
|
||||
|
||||
// show percent in window title
|
||||
if (original_title !== false) {
|
||||
parent.document.title = percent_str + ' - ' + original_title;
|
||||
}
|
||||
else {
|
||||
document.title = percent_str + ' - ' + original_title;
|
||||
}
|
||||
$('#statustext').html(statustext);
|
||||
} // else
|
||||
|
||||
if (finished == true) {
|
||||
if (original_title !== false) {
|
||||
parent.document.title = original_title;
|
||||
}
|
||||
else {
|
||||
document.title = original_title;
|
||||
}
|
||||
$('#importmain').hide();
|
||||
$('#import_form_status')
|
||||
.html('<img src="<?php echo $GLOBALS['pmaThemeImage'];?>ajax_clock_small.gif" width="16" height="16" alt="ajax clock" /> <?php echo PMA_jsFormat(__('The file is being processed, please be patient.'), false); ?> ')
|
||||
.show();
|
||||
$('#import_form_status').load('import_status.php?message=true&<?php echo PMA_generate_common_url(); ?>'); // loads the message, either success or mysql error
|
||||
<?php
|
||||
// reload the left sidebar when the import is finished
|
||||
$GLOBALS['reload'] = true;
|
||||
PMA_reloadNavigation(true);
|
||||
?>
|
||||
|
||||
} // if finished
|
||||
else {
|
||||
setTimeout(perform_upload, 1000);
|
||||
}
|
||||
});
|
||||
}
|
||||
setTimeout(perform_upload, 1000);
|
||||
|
||||
<?php
|
||||
} else { // no plugin available
|
||||
?>
|
||||
$('#upload_form_status_info').html('<img src="<?php echo $GLOBALS['pmaThemeImage'];?>ajax_clock_small.gif" alt="ajax clock" /> <?php echo PMA_jsFormat(__('Please be patient, the file is being uploaded. Details about the upload are not available.'), false) . PMA_showDocu('faq2_9'); ?>');
|
||||
$('#upload_form_status_info').html('<img src="<?php echo $GLOBALS['pmaThemeImage'];?>ajax_clock_small.gif" width="16" height="16" alt="ajax clock" /> <?php echo PMA_jsFormat(__('Please be patient, the file is being uploaded. Details about the upload are not available.'), false) . PMA_showDocu('faq2_9'); ?>');
|
||||
$('#upload_form_status').css("display", "none");
|
||||
<?php
|
||||
} // else
|
||||
|
||||
@ -823,12 +823,12 @@ if (! defined('PMA_MINIMUM_COMMON')) {
|
||||
*/
|
||||
function PMA_SQP_typeCheck($toCheck, $whatWeWant)
|
||||
{
|
||||
$typeSeperator = '_';
|
||||
$typeSeparator = '_';
|
||||
if (strcmp($whatWeWant, $toCheck) == 0) {
|
||||
return true;
|
||||
} else {
|
||||
if (strpos($whatWeWant, $typeSeperator) === false) {
|
||||
return strncmp($whatWeWant, $toCheck, strpos($toCheck, $typeSeperator)) == 0;
|
||||
if (strpos($whatWeWant, $typeSeparator) === false) {
|
||||
return strncmp($whatWeWant, $toCheck, strpos($toCheck, $typeSeparator)) == 0;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -271,7 +271,7 @@ function PMA_get_arg_separator($encode = 'none')
|
||||
static $separator = null;
|
||||
|
||||
if (null === $separator) {
|
||||
// use seperators defined by php, but prefer ';'
|
||||
// use separators defined by php, but prefer ';'
|
||||
// as recommended by W3C
|
||||
$php_arg_separator_input = ini_get('arg_separator.input');
|
||||
if (strpos($php_arg_separator_input, ';') !== false) {
|
||||
|
||||
@ -806,7 +806,7 @@ echo __('Runtime Information');
|
||||
<div id="statustabs_traffic" class="clearfloat">
|
||||
<div class="buttonlinks jsfeature">
|
||||
<a class="tabRefresh" href="<?php echo $PMA_PHP_SELF . '?show=server_traffic&' . PMA_generate_common_url(); ?>" >
|
||||
<img src="<?php echo $GLOBALS['pmaThemeImage'];?>ajax_clock_small.gif" alt="ajax clock" style="display: none;" />
|
||||
<img src="<?php echo $GLOBALS['pmaThemeImage'];?>ajax_clock_small.gif" width="16" height="16" alt="ajax clock" style="display: none;" />
|
||||
<?php echo __('Refresh'); ?>
|
||||
</a>
|
||||
<span class="refreshList" style="display:none;">
|
||||
@ -828,7 +828,7 @@ echo __('Runtime Information');
|
||||
<div id="statustabs_queries" class="clearfloat">
|
||||
<div class="buttonlinks jsfeature">
|
||||
<a class="tabRefresh" href="<?php echo $PMA_PHP_SELF . '?show=query_statistics&' . PMA_generate_common_url(); ?>" >
|
||||
<img src="<?php echo $GLOBALS['pmaThemeImage'];?>ajax_clock_small.gif" alt="ajax clock" style="display: none;" />
|
||||
<img src="<?php echo $GLOBALS['pmaThemeImage'];?>ajax_clock_small.gif" width="16" height="16" alt="ajax clock" style="display: none;" />
|
||||
<?php echo __('Refresh'); ?>
|
||||
</a>
|
||||
<span class="refreshList" style="display:none;">
|
||||
@ -848,7 +848,7 @@ echo __('Runtime Information');
|
||||
<legend><?php echo __('Filters'); ?></legend>
|
||||
<div class="buttonlinks">
|
||||
<a class="tabRefresh" href="<?php echo $PMA_PHP_SELF . '?show=variables_table&' . PMA_generate_common_url(); ?>" >
|
||||
<img src="<?php echo $GLOBALS['pmaThemeImage'];?>ajax_clock_small.gif" alt="ajax clock" style="display: none;" />
|
||||
<img src="<?php echo $GLOBALS['pmaThemeImage'];?>ajax_clock_small.gif" width="16" height="16" alt="ajax clock" style="display: none;" />
|
||||
<?php echo __('Refresh'); ?>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@ -1495,10 +1495,20 @@ textarea#partitiondefinition {
|
||||
/**
|
||||
* Progress bar styles
|
||||
*/
|
||||
div.upload_progress
|
||||
{
|
||||
width: 400px;
|
||||
margin: 3em auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.upload_progress_bar_outer
|
||||
{
|
||||
border: 1px solid black;
|
||||
border: 1px solid #000;
|
||||
width: 202px;
|
||||
position: relative;
|
||||
margin: 0 auto 1em;
|
||||
color: <?php echo $GLOBALS['cfg']['MainColor']; ?>;
|
||||
}
|
||||
|
||||
div.upload_progress_bar_inner
|
||||
@ -1507,6 +1517,27 @@ div.upload_progress_bar_inner
|
||||
width: 0;
|
||||
height: 12px;
|
||||
margin: 1px;
|
||||
overflow: hidden;
|
||||
color: <?php echo $GLOBALS['cfg']['BrowseMarkerColor']; ?>;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
div.upload_progress_bar_outer div.percentage
|
||||
{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 202px;
|
||||
}
|
||||
|
||||
div.upload_progress_bar_inner div.percentage
|
||||
{
|
||||
top: -1px;
|
||||
left: -1px;
|
||||
}
|
||||
|
||||
div#statustext {
|
||||
margin-top: .5em;
|
||||
}
|
||||
|
||||
table#serverconnection_src_remote,
|
||||
|
||||
@ -1905,10 +1905,21 @@ textarea#partitiondefinition {
|
||||
/**
|
||||
* Progress bar styles
|
||||
*/
|
||||
|
||||
div.upload_progress
|
||||
{
|
||||
width: 400px;
|
||||
margin: 3em auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.upload_progress_bar_outer
|
||||
{
|
||||
border: 1px solid #000;
|
||||
width: 202px;
|
||||
position: relative;
|
||||
margin: 0 auto 1em;
|
||||
color: <?php echo $GLOBALS['cfg']['MainColor']; ?>;
|
||||
}
|
||||
|
||||
div.upload_progress_bar_inner
|
||||
@ -1917,6 +1928,27 @@ div.upload_progress_bar_inner
|
||||
width: 0;
|
||||
height: 12px;
|
||||
margin: 1px;
|
||||
overflow: hidden;
|
||||
color: <?php echo $GLOBALS['cfg']['BrowseMarkerColor']; ?>;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
div.upload_progress_bar_outer div.percentage
|
||||
{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 202px;
|
||||
}
|
||||
|
||||
div.upload_progress_bar_inner div.percentage
|
||||
{
|
||||
top: -1px;
|
||||
left: -1px;
|
||||
}
|
||||
|
||||
div#statustext {
|
||||
margin-top: .5em;
|
||||
}
|
||||
|
||||
table#serverconnection_src_remote,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user