Merge remote-tracking branch 'origin/master'

This commit is contained in:
Weblate 2013-04-26 09:47:07 +02:00
commit 3a5dcaf7db
5 changed files with 281 additions and 270 deletions

View File

@ -333,9 +333,12 @@ function displayErrors(error_list)
var errors = error_list[field_id];
var field = $('#' + field_id);
var isFieldset = field.attr('tagName') == 'FIELDSET';
var errorCnt = isFieldset
? field.find('dl.errors')
: field.siblings('.inline_errors');
var errorCnt;
if (isFieldset) {
errorCnt = field.find('dl.errors');
} else {
errorCnt = field.siblings('.inline_errors');
}
// remove empty errors (used to clear error list)
errors = $.grep(errors, function (item) {
@ -406,16 +409,19 @@ function validate_fieldset(fieldset, isKeyUp, errors)
*/
function validate_field(field, isKeyUp, errors)
{
var args, result;
field = $(field);
var field_id = field.attr('id');
errors[field_id] = [];
var functions = getFieldValidators(field_id, isKeyUp);
for (var i = 0; i < functions.length; i++) {
var args = functions[i][1] !== null
? functions[i][1].slice(0)
: [];
if (functions[i][1] !== null) {
args = functions[i][1].slice(0);
} else {
args = [];
}
args.unshift(isKeyUp);
var result = functions[i][0].apply(field[0], args);
result = functions[i][0].apply(field[0], args);
if (result !== true) {
if (typeof result == 'string') {
result = [result];
@ -621,7 +627,7 @@ AJAX.registerOnload('config.js', function () {
restoreField(field_sel.substr(1));
} else {
field_sel = href.match(/^[^=]+/)[0];
var value = href.match(/=(.+)$/)[1];
var value = href.match(/\=(.+)$/)[1];
setFieldValue($(field_sel), 'text', value);
}
$(field_sel).trigger('change');
@ -652,9 +658,12 @@ AJAX.registerOnload('config.js', function () {
.add('#export_text_file, #import_text_file')
.click(function () {
var enable_id = $(this).attr('id');
var disable_id = enable_id.match(/local_storage$/)
? enable_id.replace(/local_storage$/, 'text_file')
: enable_id.replace(/text_file$/, 'local_storage');
var disable_id;
if (enable_id.match(/local_storage$/)) {
disable_id = enable_id.replace(/local_storage$/, 'text_file');
} else {
disable_id = enable_id.replace(/text_file$/, 'local_storage');
}
$('#opts_' + disable_id).addClass('disabled').find('input').prop('disabled', true);
$('#opts_' + enable_id).removeClass('disabled').find('input').prop('disabled', false);
});
@ -753,11 +762,11 @@ function updatePrefsDate()
*/
function formatDate(d)
{
return d.getFullYear() + '-'
+ (d.getMonth() < 10 ? '0' + d.getMonth() : d.getMonth())
+ '-' + (d.getDate() < 10 ? '0' + d.getDate() : d.getDate())
+ ' ' + (d.getHours() < 10 ? '0' + d.getHours() : d.getHours())
+ ':' + (d.getMinutes() < 10 ? '0' + d.getMinutes() : d.getMinutes());
return d.getFullYear() + '-' +
(d.getMonth() < 10 ? '0' + d.getMonth() : d.getMonth()) +
'-' + (d.getDate() < 10 ? '0' + d.getDate() : d.getDate()) +
' ' + (d.getHours() < 10 ? '0' + d.getHours() : d.getHours()) +
':' + (d.getMinutes() < 10 ? '0' + d.getMinutes() : d.getMinutes());
}
/**

View File

@ -57,6 +57,7 @@ function PMA_adjustTotals() {
$allTr.each(function () {
var $this = $(this);
var i, tmpVal;
// Get the number of rows for this SQL table
var strRows = $this.find('.tbl_rows').text();
// If the value is approximated
@ -65,7 +66,7 @@ function PMA_adjustTotals() {
// The approximated value contains a preceding ~ and a following 2 (Eg 100 --> ~1002)
strRows = strRows.substring(1, strRows.length - 1);
}
strRows = strRows.replace(/[,.]/g , '');
strRows = strRows.replace(/[,.]/g, '');
var intRow = parseInt(strRows, 10);
if (! isNaN(intRow)) {
rowsSum += intRow;
@ -79,16 +80,16 @@ function PMA_adjustTotals() {
var strOverheadUnit = $.trim($this.find('.tbl_overhead span.unit').text());
// Given a value and a unit, such as 100 and KiB, for the table size
// and overhead calculate their numeric values in bytes, such as 102400
for (var i = 0; i < byteUnits.length; i++) {
for (i = 0; i < byteUnits.length; i++) {
if (strSizeUnit == byteUnits[i]) {
var tmpVal = parseFloat(strSize);
tmpVal = parseFloat(strSize);
valSize = tmpVal * Math.pow(1024, i);
break;
}
}
for (var i = 0; i < byteUnits.length; i++) {
for (i = 0; i < byteUnits.length; i++) {
if (strOverheadUnit == byteUnits[i]) {
var tmpVal = parseFloat(strOverhead);
tmpVal = parseFloat(strOverhead);
valOverhead = tmpVal * Math.pow(1024, i);
break;
}
@ -196,9 +197,8 @@ AJAX.registerOnload('db_structure.js', function () {
/**
* @var question String containing the question to be asked for confirmation
*/
var question =
PMA_messages.strTruncateTableStrongWarning + ' '
+ $.sprintf(PMA_messages.strDoYouReally, 'TRUNCATE ' + escapeHtml(curr_table_name));
var question = PMA_messages.strTruncateTableStrongWarning + ' ' +
$.sprintf(PMA_messages.strDoYouReally, 'TRUNCATE ' + escapeHtml(curr_table_name));
$this_anchor.PMA_confirm(question, $this_anchor.attr('href'), function (url) {
@ -253,9 +253,8 @@ AJAX.registerOnload('db_structure.js', function () {
*/
var question;
if (! is_view) {
question =
PMA_messages.strDropTableStrongWarning + ' '
+ $.sprintf(PMA_messages.strDoYouReally, 'DROP TABLE ' + escapeHtml(curr_table_name));
question = PMA_messages.strDropTableStrongWarning + ' ' +
$.sprintf(PMA_messages.strDoYouReally, 'DROP TABLE ' + escapeHtml(curr_table_name));
} else {
question =
$.sprintf(PMA_messages.strDoYouReally, 'DROP VIEW ' + escapeHtml(curr_table_name));

View File

@ -27,6 +27,44 @@ function panel(index)
});
}
/**
* To display details of obects(where,rename,Having,aggregate,groupby,orderby,having)
*
* @param index index of history_array where change is to be made
*
**/
function detail(index)
{
var type = history_array[index].get_type();
var str;
if (type == "Where") {
str = 'Where ' + history_array[index].get_column_name() + history_array[index].get_obj().getrelation_operator() + history_array[index].get_obj().getquery();
}
if (type == "Rename") {
str = 'Rename ' + history_array[index].get_column_name() + ' To ' + history_array[index].get_obj().getrename_to();
}
if (type == "Aggregate") {
str = 'Select ' + history_array[index].get_obj().get_operator() + '( ' + history_array[index].get_column_name() + ' )';
}
if (type == "GroupBy") {
str = 'GroupBy ' + history_array[index].get_column_name();
}
if (type == "OrderBy") {
str = 'OrderBy ' + history_array[index].get_column_name();
}
if (type == "Having") {
str = 'Having ';
if (history_array[index].get_obj().get_operator() != 'None') {
str += history_array[index].get_obj().get_operator() + '( ' + history_array[index].get_column_name() + ' )';
str += history_array[index].get_obj().getrelation_operator() + history_array[index].get_obj().getquery();
} else {
str = 'Having ' + history_array[index].get_column_name() + history_array[index].get_obj().getrelation_operator() + history_array[index].get_obj().getquery();
}
}
return str;
}
/**
* Sorts history_array[] first,using table name as the key and then generates the HTML code for history tab,
* clubbing all objects of same tables together
@ -40,11 +78,11 @@ function panel(index)
function display(init, finit)
{
var str, i, j, k, sto;
var str, i, j, k, sto, temp;
// this part sorts the history array based on table name,this is needed for clubbing all object of same name together.
for (i = init; i < finit; i++) {
sto = history_array[i];
var temp = history_array[i].get_tab();//+ '.' + history_array[i].get_obj_no(); for Self JOINS
temp = history_array[i].get_tab();//+ '.' + history_array[i].get_obj_no(); for Self JOINS
for (j = 0; j < i; j++) {
if (temp > (history_array[j].get_tab())) {//+ '.' + history_array[j].get_obj_no())) { //for Self JOINS
for (k = i; k > j; k--) {
@ -57,8 +95,8 @@ function display(init, finit)
}
// this part generates HTML code for history tab.adds delete,edit,and/or and detail features with objects.
str = ''; // string to store Html code for history tab
for (var i = 0; i < history_array.length; i++) {
var temp = history_array[i].get_tab(); //+ '.' + history_array[i].get_obj_no(); for Self JOIN
for (i = 0; i < history_array.length; i++) {
temp = history_array[i].get_tab(); //+ '.' + history_array[i].get_obj_no(); for Self JOIN
str += '<h2 class="tiger"><a href="#">' + temp + '</a></h2>';
str += '<div class="toggle_container">\n';
while ((history_array[i].get_tab()) == temp) { //+ '.' + history_array[i].get_obj_no()) == temp) {
@ -107,44 +145,6 @@ function and_or(index)
panel(1);
}
/**
* To display details of obects(where,rename,Having,aggregate,groupby,orderby,having)
*
* @param index index of history_array where change is to be made
*
**/
function detail(index)
{
var type = history_array[index].get_type();
var str;
if (type == "Where") {
str = 'Where ' + history_array[index].get_column_name() + history_array[index].get_obj().getrelation_operator() + history_array[index].get_obj().getquery();
}
if (type == "Rename") {
str = 'Rename ' + history_array[index].get_column_name() + ' To ' + history_array[index].get_obj().getrename_to();
}
if (type == "Aggregate") {
str = 'Select ' + history_array[index].get_obj().get_operator() + '( ' + history_array[index].get_column_name() + ' )';
}
if (type == "GroupBy") {
str = 'GroupBy ' + history_array[index].get_column_name();
}
if (type == "OrderBy") {
str = 'OrderBy ' + history_array[index].get_column_name();
}
if (type == "Having") {
str = 'Having ';
if (history_array[index].get_obj().get_operator() != 'None') {
str += history_array[index].get_obj().get_operator() + '( ' + history_array[index].get_column_name() + ' )';
str += history_array[index].get_obj().getrelation_operator() + history_array[index].get_obj().getquery();
} else {
str = 'Having ' + history_array[index].get_column_name() + history_array[index].get_obj().getrelation_operator() + history_array[index].get_obj().getquery();
}
}
return str;
}
/**
* Deletes entry in history_array
*
@ -431,10 +431,11 @@ var aggregate = function (noperator) {
function unique(arrayName)
{
var newArray = [];
label: for (var i = 0; i < arrayName.length; i++) {
uniquetop:
for (var i = 0; i < arrayName.length; i++) {
for (var j = 0; j < newArray.length; j++) {
if (newArray[j] == arrayName[i]) {
continue label;
continue uniquetop;
}
}
newArray[newArray.length] = arrayName[i];
@ -460,149 +461,6 @@ function found(arrayName, value)
return -1;
}
/**
* This function is the main function for query building.
* uses history object details for this.
*
* @ uses query_where()
* @ uses query_groupby()
* @ uses query_having()
* @ uses query_orderby()
*
* @param formtitle title for the form
* @param fadin
*/
function build_query(formtitle, fadin)
{
var q_select = "SELECT ";
var temp;
for (var i = 0;i < select_field.length; i++) {
temp = check_aggregate(select_field[i]);
if (temp !== "") {
q_select += temp;
temp = check_rename(select_field[i]);
q_select += temp + ",";
} else {
temp = check_rename(select_field[i]);
q_select += select_field[i] + temp + ",";
}
}
q_select = q_select.substring(0, q_select.length - 1);
q_select += " FROM " + query_from();
if (query_where() !== "") {
q_select += "\n WHERE";
q_select += query_where();
}
if (query_groupby() !== "") { q_select += "\nGROUP BY " + query_groupby(); }
if (query_having() !== "") { q_select += "\nHAVING " + query_having(); }
if (query_orderby() !== "") { q_select += "\nORDER BY " + query_orderby(); }
var box = document.getElementById('box');
document.getElementById('filter').style.display = 'block';
var btitle = document.getElementById('boxtitle');
btitle.innerHTML = 'SELECT';//formtitle;
if (fadin) {
gradient("box", 0);
fadein("box");
} else {
box.style.display = 'block';
}
document.getElementById('textSqlquery').innerHTML = q_select;
}
/**
* This function builds from clause of query
* makes automatic joins.
*
*
*/
function query_from()
{
var i;
var tab_left = [];
var tab_used = [];
var t_tab_used = [];
var t_tab_left = [];
var temp;
var query = "";
var quer = "";
var parts = [];
var t_array = [];
t_array = from_array;
var K = 0;
var k;
var key;
var key2;
var key3;
var parts1;
for (i = 0; i < history_array.length; i++) {
from_array.push(history_array[i].get_tab());
}
from_array = unique(from_array);
tab_left = from_array;
temp = tab_left.shift();
quer = temp;
tab_used.push(temp);
// if master table (key2) matches with tab used get all keys and check if tab_left matches
//after this check if master table (key2) matches with tab left then check if any foriegn matches with master .
for (i = 0; i < 2; i++) {
for (K in contr) {
for (key in contr[K]) {// contr name
for (key2 in contr[K][key]) {// table name
parts = key2.split(".");
if (found(tab_used, parts[1]) > 0) {
for (key3 in contr[K][key][key2]) {
parts1 = contr[K][key][key2][key3][0].split(".");
if (found(tab_left, parts1[1]) > 0) {
query += "\n" + 'LEFT JOIN ';
query += '`' + parts1[0] + '`.`' + parts1[1] + '` ON ';
query += '`' + parts[1] + '`.`' + key3 + '` = ';
query += '`' + parts1[1] + '`.`' + contr[K][key][key2][key3][1] + '` ';
t_tab_left.push(parts1[1]);
}
}
}
}
}
}
K = 0;
t_tab_left = unique(t_tab_left);
tab_used = add_array(t_tab_left, tab_used);
tab_left = remove_array(t_tab_left, tab_left);
t_tab_left = [];
for (K in contr) {
for (key in contr[K]) {
for (key2 in contr[K][key]) {// table name
parts = key2.split(".");
if (found(tab_left, parts[1]) > 0) {
for (key3 in contr[K][key][key2]) {
parts1 = contr[K][key][key2][key3][0].split(".");
if (found(tab_used, parts1[1]) > 0) {
query += "\n" + 'LEFT JOIN ';
query += '`' + parts[0] + '`.`' + parts[1] + '` ON ';
query += '`' + parts1[1] + '`.`' + contr[K][key][key2][key3][1] + '` = ';
query += '`' + parts[1] + '`.`' + key3 + '` ';
t_tab_left.push(parts[1]);
}
}
}
}
}
}
t_tab_left = unique(t_tab_left);
tab_used = add_array(t_tab_left, tab_used);
tab_left = remove_array(t_tab_left, tab_left);
t_tab_left = [];
}
for (k in tab_left) {
quer += " , `" + tab_left[k] + "`";
}
query = quer + query;
from_array = t_array;
return query;
}
/**
* This function concatenates two array
*
@ -780,6 +638,148 @@ function fadein(id)
}
}
/**
* This function builds from clause of query
* makes automatic joins.
*
*
*/
function query_from()
{
var i;
var tab_left = [];
var tab_used = [];
var t_tab_used = [];
var t_tab_left = [];
var temp;
var query = "";
var quer = "";
var parts = [];
var t_array = [];
t_array = from_array;
var K = 0;
var k;
var key;
var key2;
var key3;
var parts1;
for (i = 0; i < history_array.length; i++) {
from_array.push(history_array[i].get_tab());
}
from_array = unique(from_array);
tab_left = from_array;
temp = tab_left.shift();
quer = temp;
tab_used.push(temp);
// if master table (key2) matches with tab used get all keys and check if tab_left matches
//after this check if master table (key2) matches with tab left then check if any foriegn matches with master .
for (i = 0; i < 2; i++) {
for (K in contr) {
for (key in contr[K]) {// contr name
for (key2 in contr[K][key]) {// table name
parts = key2.split(".");
if (found(tab_used, parts[1]) > 0) {
for (key3 in contr[K][key][key2]) {
parts1 = contr[K][key][key2][key3][0].split(".");
if (found(tab_left, parts1[1]) > 0) {
query += "\n" + 'LEFT JOIN ';
query += '`' + parts1[0] + '`.`' + parts1[1] + '` ON ';
query += '`' + parts[1] + '`.`' + key3 + '` = ';
query += '`' + parts1[1] + '`.`' + contr[K][key][key2][key3][1] + '` ';
t_tab_left.push(parts1[1]);
}
}
}
}
}
}
K = 0;
t_tab_left = unique(t_tab_left);
tab_used = add_array(t_tab_left, tab_used);
tab_left = remove_array(t_tab_left, tab_left);
t_tab_left = [];
for (K in contr) {
for (key in contr[K]) {
for (key2 in contr[K][key]) {// table name
parts = key2.split(".");
if (found(tab_left, parts[1]) > 0) {
for (key3 in contr[K][key][key2]) {
parts1 = contr[K][key][key2][key3][0].split(".");
if (found(tab_used, parts1[1]) > 0) {
query += "\n" + 'LEFT JOIN ';
query += '`' + parts[0] + '`.`' + parts[1] + '` ON ';
query += '`' + parts1[1] + '`.`' + contr[K][key][key2][key3][1] + '` = ';
query += '`' + parts[1] + '`.`' + key3 + '` ';
t_tab_left.push(parts[1]);
}
}
}
}
}
}
t_tab_left = unique(t_tab_left);
tab_used = add_array(t_tab_left, tab_used);
tab_left = remove_array(t_tab_left, tab_left);
t_tab_left = [];
}
for (k in tab_left) {
quer += " , `" + tab_left[k] + "`";
}
query = quer + query;
from_array = t_array;
return query;
}
/**
* This function is the main function for query building.
* uses history object details for this.
*
* @ uses query_where()
* @ uses query_groupby()
* @ uses query_having()
* @ uses query_orderby()
*
* @param formtitle title for the form
* @param fadin
*/
function build_query(formtitle, fadin)
{
var q_select = "SELECT ";
var temp;
for (var i = 0;i < select_field.length; i++) {
temp = check_aggregate(select_field[i]);
if (temp !== "") {
q_select += temp;
temp = check_rename(select_field[i]);
q_select += temp + ",";
} else {
temp = check_rename(select_field[i]);
q_select += select_field[i] + temp + ",";
}
}
q_select = q_select.substring(0, q_select.length - 1);
q_select += " FROM " + query_from();
if (query_where() !== "") {
q_select += "\n WHERE";
q_select += query_where();
}
if (query_groupby() !== "") { q_select += "\nGROUP BY " + query_groupby(); }
if (query_having() !== "") { q_select += "\nHAVING " + query_having(); }
if (query_orderby() !== "") { q_select += "\nORDER BY " + query_orderby(); }
var box = document.getElementById('box');
document.getElementById('filter').style.display = 'block';
var btitle = document.getElementById('boxtitle');
btitle.innerHTML = 'SELECT';//formtitle;
if (fadin) {
gradient("box", 0);
fadein("box");
} else {
box.style.display = 'block';
}
document.getElementById('textSqlquery').innerHTML = q_select;
}
function closebox()
{
document.getElementById('box').style.display = 'none';

View File

@ -53,15 +53,13 @@ AJAX.registerOnload('server_databases.js', function () {
/**
* @var question String containing the question to be asked for confirmation
*/
var question =
PMA_messages.strDropDatabaseStrongWarning + ' '
+ $.sprintf(PMA_messages.strDoYouReally, selected_dbs.join('<br />'));
var question = PMA_messages.strDropDatabaseStrongWarning + ' ' +
$.sprintf(PMA_messages.strDoYouReally, selected_dbs.join('<br />'));
$(this).PMA_confirm(
question,
$form.prop('action')
+ '?' + $(this).serialize()
+ '&drop_selected_dbs=1&is_js_confirmed=1&ajax_request=true',
$form.prop('action') + '?' + $(this).serialize() +
'&drop_selected_dbs=1&is_js_confirmed=1&ajax_request=true',
function (url) {
PMA_ajaxShowMessage(PMA_messages.strProcessingRequest, false);

View File

@ -45,10 +45,10 @@ AJAX.registerOnload('server_status_monitor.js', function () {
var $cnt = $(this);
var pos = $cnt.offset();
// Hide if the mouseclick is outside the popupcontent
if (event.pageX < pos.left
|| event.pageY < pos.top
|| event.pageX > pos.left + $cnt.outerWidth()
|| event.pageY > pos.top + $cnt.outerHeight()
if (event.pageX < pos.left ||
event.pageY < pos.top ||
event.pageX > pos.left + $cnt.outerWidth() ||
event.pageY > pos.top + $cnt.outerHeight()
) {
$cnt.hide().removeClass('openedPopup');
}
@ -827,15 +827,15 @@ AJAX.registerOnload('server_status_monitor.js', function () {
if (logVars['slow_query_log'] == 'ON') {
if (logVars['long_query_time'] > 2) {
str += PMA_getImage('s_attention.png') + ' '
+ $.sprintf(PMA_messages.strSmallerLongQueryTimeAdvice, logVars['long_query_time'])
+ '<br />';
str += PMA_getImage('s_attention.png') + ' ';
str += $.sprintf(PMA_messages.strSmallerLongQueryTimeAdvice, logVars['long_query_time']);
str += '<br />';
}
if (logVars['long_query_time'] < 2) {
str += PMA_getImage('s_success.png') + ' '
+ $.sprintf(PMA_messages.strLongQueryTimeSet, logVars['long_query_time'])
+ '<br />';
str += PMA_getImage('s_success.png') + ' ';
str += $.sprintf(PMA_messages.strLongQueryTimeSet, logVars['long_query_time']);
str += '<br />';
}
}
@ -851,28 +851,28 @@ AJAX.registerOnload('server_status_monitor.js', function () {
varValue = 'FILE';
}
str += '- <a class="set" href="#log_output-' + varValue + '">'
+ $.sprintf(PMA_messages.strSetLogOutput, varValue)
+ ' </a><br />';
str += '- <a class="set" href="#log_output-' + varValue + '">';
str += $.sprintf(PMA_messages.strSetLogOutput, varValue);
str += ' </a><br />';
if (logVars['general_log'] != 'ON') {
str += '- <a class="set" href="#general_log-ON">'
+ $.sprintf(PMA_messages.strEnableVar, 'general_log')
+ ' </a><br />';
str += '- <a class="set" href="#general_log-ON">';
str += $.sprintf(PMA_messages.strEnableVar, 'general_log');
str += ' </a><br />';
} else {
str += '- <a class="set" href="#general_log-OFF">'
+ $.sprintf(PMA_messages.strDisableVar, 'general_log')
+ ' </a><br />';
str += '- <a class="set" href="#general_log-OFF">';
str += $.sprintf(PMA_messages.strDisableVar, 'general_log');
str += ' </a><br />';
}
if (logVars['slow_query_log'] != 'ON') {
str += '- <a class="set" href="#slow_query_log-ON">'
+ $.sprintf(PMA_messages.strEnableVar, 'slow_query_log')
+ ' </a><br />';
str += '- <a class="set" href="#slow_query_log-ON">';
str += $.sprintf(PMA_messages.strEnableVar, 'slow_query_log');
str += ' </a><br />';
} else {
str += '- <a class="set" href="#slow_query_log-OFF">'
+ $.sprintf(PMA_messages.strDisableVar, 'slow_query_log')
+ ' </a><br />';
str += '- <a class="set" href="#slow_query_log-OFF">';
str += $.sprintf(PMA_messages.strDisableVar, 'slow_query_log');
str += ' </a><br />';
}
varValue = 5;
@ -880,9 +880,9 @@ AJAX.registerOnload('server_status_monitor.js', function () {
varValue = 1;
}
str += '- <a class="set" href="#long_query_time-' + varValue + '">'
+ $.sprintf(PMA_messages.setSetLongQueryTime, varValue)
+ ' </a><br />';
str += '- <a class="set" href="#long_query_time-' + varValue + '">';
str += $.sprintf(PMA_messages.setSetLongQueryTime, varValue);
str += ' </a><br />';
} else {
str += PMA_messages.strNoSuperUser + '<br/>';
@ -1027,6 +1027,8 @@ AJAX.registerOnload('server_status_monitor.js', function () {
/* Initializes the monitor, called only once */
function initGrid() {
var i;
/* Apply default values & config */
if (window.localStorage) {
if (window.localStorage['monitorCharts']) {
@ -1074,10 +1076,10 @@ AJAX.registerOnload('server_status_monitor.js', function () {
/* Calculate how much spacing there is between each chart */
$('#chartGrid').html('<tr><td></td><td></td></tr><tr><td></td><td></td></tr>');
chartSpacing = {
width: $('#chartGrid td:nth-child(2)').offset().left
- $('#chartGrid td:nth-child(1)').offset().left,
height: $('#chartGrid tr:nth-child(2) td:nth-child(2)').offset().top
- $('#chartGrid tr:nth-child(1) td:nth-child(1)').offset().top
width: $('#chartGrid td:nth-child(2)').offset().left -
$('#chartGrid td:nth-child(1)').offset().left,
height: $('#chartGrid tr:nth-child(2) td:nth-child(2)').offset().top -
$('#chartGrid tr:nth-child(1) td:nth-child(1)').offset().top
};
$('#chartGrid').html('');
@ -1087,14 +1089,14 @@ AJAX.registerOnload('server_status_monitor.js', function () {
keys.push(key);
});
keys.sort();
for (var i = 0; i < keys.length; i++) {
for (i = 0; i < keys.length; i++) {
addChart(runtime.charts[keys[i]], true);
}
/* Fill in missing cells */
var numCharts = $('#chartGrid .monitorChart').length;
var numMissingCells = (monitorSettings.columns - numCharts % monitorSettings.columns) % monitorSettings.columns;
for (var i = 0; i < numMissingCells; i++) {
for (i = 0; i < numMissingCells; i++) {
$('#chartGrid tr:last').append('<td></td>');
}
@ -1147,6 +1149,7 @@ AJAX.registerOnload('server_status_monitor.js', function () {
/* Adds a chart to the chart grid */
function addChart(chartObj, initialize) {
var i;
var settings = {
title: escapeHtml(chartObj.title),
grid: {
@ -1218,25 +1221,27 @@ AJAX.registerOnload('server_status_monitor.js', function () {
for (i in chartObj.series) {
series.push([[0, 0]]);
}
// set Tooltip for each series
for(i in settings.series) {
for (i in settings.series) {
settings.series[i].highlighter = {
show: true,
tooltipContentEditor: function (str, seriesIndex, pointIndex, plot) {
var tooltipHtml = '<div style="font-size:12px;background-color:#FFFFFF;'
+ 'opacity:0.95;filter:alpha(opacity=95);padding:5px;">';
var j;
// TODO: move style to theme CSS
var tooltipHtml = '<div style="font-size:12px;background-color:#FFFFFF;' +
'opacity:0.95;filter:alpha(opacity=95);padding:5px;">';
// x value i.e. time
var timeValue = str.split(",")[0];
var seriesValue;
tooltipHtml += 'Time: ' + timeValue;
tooltipHtml += '<span style="font-weight:bold;">';
// Add y values to the tooltip per series
for (j in plot.series) {
// get y value if present
if (plot.series[j].data.length > pointIndex) {
var seriesValue = plot.series[j].data[pointIndex][1];
}
else {
seriesValue = plot.series[j].data[pointIndex][1];
} else {
return;
}
var seriesLabel = plot.series[j].label;
@ -1249,8 +1254,8 @@ AJAX.registerOnload('server_status_monitor.js', function () {
// using format string
seriesValue = $.sprintf(plot.series[0]._yaxis.tickOptions.formatString, seriesValue);
}
tooltipHtml += '<br /><span style="color:' + seriesColor + '">'
+ seriesLabel + ': ' + seriesValue + '</span>';
tooltipHtml += '<br /><span style="color:' + seriesColor + '">' +
seriesLabel + ': ' + seriesValue + '</span>';
}
tooltipHtml += '</span></div>';
return tooltipHtml;
@ -1265,7 +1270,7 @@ AJAX.registerOnload('server_status_monitor.js', function () {
}
var $legend = $('<div />').css('padding', '0.5em');
for (var i in chartObj.chart.series) {
for (i in chartObj.chart.series) {
$legend.append(
$('<div />').append(
$('<div>').css({
@ -1729,6 +1734,7 @@ AJAX.registerOnload('server_status_monitor.js', function () {
},
function (data) {
var logData;
var dlgBtns = {};
if (data.success === true) {
logData = data.message;
} else {
@ -1778,7 +1784,6 @@ AJAX.registerOnload('server_status_monitor.js', function () {
}
var dlgBtns = {};
dlgBtns[PMA_messages.strJumpToTable] = function () {
$(this).dialog("close");
$(document).scrollTop($('#logTable').offset().top);
@ -1790,7 +1795,6 @@ AJAX.registerOnload('server_status_monitor.js', function () {
$('#emptyDialog').dialog({title: PMA_messages.strNoDataFoundTitle});
$('#emptyDialog').html('<p>' + PMA_messages.strNoDataFound + '</p>');
var dlgBtns = {};
dlgBtns[PMA_messages.strClose] = function () {
$(this).dialog("close");
};
@ -2116,6 +2120,7 @@ AJAX.registerOnload('server_status_monitor.js', function () {
query: codemirror_editor ? codemirror_editor.getValue() : $('#sqlquery').val(),
database: db
}, function (data) {
var i;
if (data.success === true) {
data = data.message;
} else {
@ -2130,7 +2135,7 @@ AJAX.registerOnload('server_status_monitor.js', function () {
var explain = '<b>' + PMA_messages.strExplainOutput + '</b> ' + $('#explain_docu').html();
if (data.explain.length > 1) {
explain += ' (';
for (var i = 0; i < data.explain.length; i++) {
for (i = 0; i < data.explain.length; i++) {
if (i > 0) {
explain += ', ';
}
@ -2139,7 +2144,7 @@ AJAX.registerOnload('server_status_monitor.js', function () {
explain += ')';
}
explain += '<p></p>';
for (var i = 0, l = data.explain.length; i < l; i++) {
for (i = 0, l = data.explain.length; i < l; i++) {
explain += '<div class="explain-' + i + '"' + (i > 0 ? 'style="display:none;"' : '') + '>';
$.each(data.explain[i], function (key, value) {
value = (value === null) ? 'null' : value;
@ -2171,7 +2176,7 @@ AJAX.registerOnload('server_status_monitor.js', function () {
var duration;
var otherTime = 0;
for (var i = 0, l = data.profiling.length; i < l; i++) {
for (i = 0, l = data.profiling.length; i < l; i++) {
duration = parseFloat(data.profiling[i].duration);
totalTime += duration;
@ -2180,7 +2185,7 @@ AJAX.registerOnload('server_status_monitor.js', function () {
}
// Only put those values in the pie which are > 2%
for (var i = 0, l = data.profiling.length; i < l; i++) {
for (i = 0, l = data.profiling.length; i < l; i++) {
duration = parseFloat(data.profiling[i].duration);
if (duration / totalTime > 0.02) {