Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
3a5dcaf7db
41
js/config.js
41
js/config.js
@ -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());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user