Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
a2235b67c5
@ -146,8 +146,8 @@ var AJAX = {
|
||||
return true;
|
||||
} else if (href && href.match(/^mailto/)) {
|
||||
return true;
|
||||
} else if ($(this).hasClass('ui-datepicker-next')
|
||||
|| $(this).hasClass('ui-datepicker-prev')
|
||||
} else if ($(this).hasClass('ui-datepicker-next') ||
|
||||
$(this).hasClass('ui-datepicker-prev')
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
@ -513,8 +513,7 @@ AJAX.cache = {
|
||||
if (rel === 'newpage' ||
|
||||
(
|
||||
typeof rel === 'undefined' && (
|
||||
typeof this.pages[this.current - 1] === 'undefined'
|
||||
||
|
||||
typeof this.pages[this.current - 1] === 'undefined' ||
|
||||
this.pages[this.current - 1].hash !== hash
|
||||
)
|
||||
)
|
||||
|
||||
@ -195,8 +195,8 @@ var PMA_querywindow = (function ($, window) {
|
||||
|
||||
if (! querywindow.closed && querywindow.location) {
|
||||
var href = querywindow.location.href;
|
||||
if (href != url
|
||||
&& href != PMA_commonParams.get('pma_absolute_uri') + url
|
||||
if (href != url &&
|
||||
href != PMA_commonParams.get('pma_absolute_uri') + url
|
||||
) {
|
||||
if (PMA_commonParams.get('safari_browser')) {
|
||||
querywindow.location.href = targeturl;
|
||||
|
||||
@ -681,8 +681,9 @@ AJAX.registerOnload('config.js', function () {
|
||||
var disabled = false;
|
||||
if (!ls_supported) {
|
||||
disabled = form.find('input[type=radio][value$=local_storage]').prop('checked');
|
||||
} else if (!ls_exists && form.attr('name') == 'prefs_import'
|
||||
&& $('#import_local_storage')[0].checked) {
|
||||
} else if (!ls_exists && form.attr('name') == 'prefs_import' &&
|
||||
$('#import_local_storage')[0].checked
|
||||
) {
|
||||
disabled = true;
|
||||
}
|
||||
form.find('input[type=submit]').prop('disabled', disabled);
|
||||
|
||||
@ -340,9 +340,12 @@ function confirmQuery(theForm1, sqlQuery1)
|
||||
do_confirm_re_1.test(sqlQuery1.value) ||
|
||||
do_confirm_re_2.test(sqlQuery1.value) ||
|
||||
do_confirm_re_3.test(sqlQuery1.value)) {
|
||||
var message = (sqlQuery1.value.length > 100)
|
||||
? sqlQuery1.value.substr(0, 100) + '\n ...'
|
||||
: sqlQuery1.value;
|
||||
var message;
|
||||
if (sqlQuery1.value.length > 100) {
|
||||
message = sqlQuery1.value.substr(0, 100) + '\n ...';
|
||||
} else {
|
||||
message = sqlQuery1.value;
|
||||
}
|
||||
var is_confirmed = confirm($.sprintf(PMA_messages.strDoYouReally, message));
|
||||
// statement is confirmed -> update the
|
||||
// "is_js_confirmed" form field so the confirm test won't be
|
||||
|
||||
@ -379,8 +379,8 @@ function PMA_showCurrentNavigation()
|
||||
if ($dbItem) {
|
||||
var $expander = $dbItem.children('div:first').children('a.expander');
|
||||
// if not loaded or loaded but collapsed
|
||||
if (! $expander.hasClass('loaded')
|
||||
|| $expander.find('img').is('.ic_b_plus')
|
||||
if (! $expander.hasClass('loaded') ||
|
||||
$expander.find('img').is('.ic_b_plus')
|
||||
) {
|
||||
expandTreeNode($expander, function () {
|
||||
handleTableOrDb(table, $dbItem);
|
||||
@ -512,8 +512,8 @@ function PMA_showCurrentNavigation()
|
||||
var $expander = $viewContainer
|
||||
.children('div:first')
|
||||
.children('a.expander');
|
||||
if (! $expander.hasClass('loaded')
|
||||
|| $expander.find('img').is('.ic_b_plus')
|
||||
if (! $expander.hasClass('loaded') ||
|
||||
$expander.find('img').is('.ic_b_plus')
|
||||
) {
|
||||
expandTreeNode($expander, function () {
|
||||
var $view = findLoadedItem(
|
||||
@ -554,8 +554,8 @@ function PMA_reloadNavigation(callback) {
|
||||
// various levels, if necessary.
|
||||
var count = 0;
|
||||
$('#pma_navigation_tree').find('a.expander:visible').each(function () {
|
||||
if ($(this).find('img').is('.ic_b_minus')
|
||||
&& $(this).closest('li').find('div.list_container .ic_b_minus').length === 0
|
||||
if ($(this).find('img').is('.ic_b_minus') &&
|
||||
$(this).closest('li').find('div.list_container .ic_b_minus').length === 0
|
||||
) {
|
||||
params['n' + count + '_aPath'] = $(this).find('span.aPath').text();
|
||||
params['n' + count + '_vPath'] = $(this).find('span.vPath').text();
|
||||
@ -910,9 +910,9 @@ var PMA_fastFilter = {
|
||||
this.timeout = null;
|
||||
|
||||
var $filterInput = $this.find('li.fast_filter input.searchClause');
|
||||
if ($filterInput.length !== 0
|
||||
&& $filterInput.val() !== ''
|
||||
&& $filterInput.val() != $filterInput[0].defaultValue
|
||||
if ($filterInput.length !== 0 &&
|
||||
$filterInput.val() !== '' &&
|
||||
$filterInput.val() != $filterInput[0].defaultValue
|
||||
) {
|
||||
this.request();
|
||||
}
|
||||
@ -952,8 +952,8 @@ var PMA_fastFilter = {
|
||||
.closest('div.list_container');
|
||||
}
|
||||
var searchClause2 = '';
|
||||
if ($filterInput.length !== 0
|
||||
&& $filterInput.first().val() != $filterInput[0].defaultValue
|
||||
if ($filterInput.length !== 0 &&
|
||||
$filterInput.first().val() != $filterInput[0].defaultValue
|
||||
) {
|
||||
searchClause2 = $filterInput.val();
|
||||
}
|
||||
|
||||
15
js/rte.js
15
js/rte.js
@ -278,8 +278,9 @@ RTE.COMMON = {
|
||||
});
|
||||
// If this is the first item being added, remove
|
||||
// the "No items" message and show the list.
|
||||
if ($('table.data').find('tr').has('td').length > 0
|
||||
&& $('#nothing2display').is(':visible')) {
|
||||
if ($('table.data').find('tr').has('td').length > 0 &&
|
||||
$('#nothing2display').is(':visible')
|
||||
) {
|
||||
$('#nothing2display').hide("slow", function () {
|
||||
$('table.data').show("slow");
|
||||
});
|
||||
@ -526,8 +527,9 @@ RTE.ROUTINE = {
|
||||
var $inputtyp = $(this).find('select[name^=item_param_type]');
|
||||
var $inputlen = $(this).find('input[name^=item_param_length]');
|
||||
if ($inputtyp.length && $inputlen.length) {
|
||||
if (($inputtyp.val() === 'ENUM' || $inputtyp.val() === 'SET' || $inputtyp.val().substr(0, 3) === 'VAR')
|
||||
&& $inputlen.val() === '') {
|
||||
if (($inputtyp.val() === 'ENUM' || $inputtyp.val() === 'SET' || $inputtyp.val().substr(0, 3) === 'VAR') &&
|
||||
$inputlen.val() === ''
|
||||
) {
|
||||
$inputlen.focus();
|
||||
isSuccess = false;
|
||||
return false;
|
||||
@ -543,8 +545,9 @@ RTE.ROUTINE = {
|
||||
// be set, if the type is SET, ENUM, VARCHAR or VARBINARY.
|
||||
var $returntyp = this.$ajaxDialog.find('select[name=item_returntype]');
|
||||
var $returnlen = this.$ajaxDialog.find('input[name=item_returnlength]');
|
||||
if (($returntyp.val() === 'ENUM' || $returntyp.val() === 'SET' || $returntyp.val().substr(0, 3) === 'VAR')
|
||||
&& $returnlen.val() === '') {
|
||||
if (($returntyp.val() === 'ENUM' || $returntyp.val() === 'SET' || $returntyp.val().substr(0, 3) === 'VAR') &&
|
||||
$returnlen.val() === ''
|
||||
) {
|
||||
$returnlen.focus();
|
||||
alert(PMA_messages.strFormEmpty);
|
||||
return false;
|
||||
|
||||
@ -915,8 +915,8 @@ AJAX.registerOnload('server_status_monitor.js', function () {
|
||||
$('input[name="chartType"]').change(function () {
|
||||
$('#chartVariableSettings').toggle(this.checked && this.value == 'variable');
|
||||
var title = $('input[name="chartTitle"]').val();
|
||||
if (title == PMA_messages.strChartTitle
|
||||
|| title == $('label[for="' + $('input[name="chartTitle"]').data('lastRadio') + '"]').text()
|
||||
if (title == PMA_messages.strChartTitle ||
|
||||
title == $('label[for="' + $('input[name="chartTitle"]').data('lastRadio') + '"]').text()
|
||||
) {
|
||||
$('input[name="chartTitle"]')
|
||||
.data('lastRadio', $(this).attr('id'))
|
||||
@ -1186,13 +1186,14 @@ AJAX.registerOnload('server_status_monitor.js', function () {
|
||||
}
|
||||
};
|
||||
|
||||
if (settings.title === PMA_messages.strSystemCPUUsage
|
||||
|| settings.title === PMA_messages.strQueryCacheEfficiency) {
|
||||
if (settings.title === PMA_messages.strSystemCPUUsage ||
|
||||
settings.title === PMA_messages.strQueryCacheEfficiency
|
||||
) {
|
||||
settings.axes.yaxis.tickOptions = {
|
||||
formatString: "%d %%"
|
||||
};
|
||||
} else if (settings.title === PMA_messages.strSystemMemory
|
||||
|| settings.title === PMA_messages.strSystemSwap
|
||||
} else if (settings.title === PMA_messages.strSystemMemory ||
|
||||
settings.title === PMA_messages.strSystemSwap
|
||||
) {
|
||||
settings.stackSeries = true;
|
||||
settings.axes.yaxis.tickOptions = {
|
||||
@ -1202,8 +1203,8 @@ AJAX.registerOnload('server_status_monitor.js', function () {
|
||||
settings.axes.yaxis.tickOptions = {
|
||||
formatter: $.jqplot.byteFormatter(1) // KiB
|
||||
};
|
||||
} else if (settings.title === PMA_messages.strQuestions
|
||||
|| settings.title === PMA_messages.strConnections
|
||||
} else if (settings.title === PMA_messages.strQuestions ||
|
||||
settings.title === PMA_messages.strConnections
|
||||
) {
|
||||
settings.axes.yaxis.tickOptions = {
|
||||
formatter: function (format, val) {
|
||||
@ -1552,9 +1553,11 @@ AJAX.registerOnload('server_status_monitor.js', function () {
|
||||
elem.nodes[j].transformFn,
|
||||
chartData[key][j],
|
||||
// Check if first iteration (oldChartData==null), or if newly added chart oldChartData[key]==null
|
||||
(oldChartData === null
|
||||
|| oldChartData[key] === null
|
||||
|| oldChartData[key] === undefined ? null : oldChartData[key][j])
|
||||
(
|
||||
oldChartData === null ||
|
||||
oldChartData[key] === null ||
|
||||
oldChartData[key] === undefined ? null : oldChartData[key][j]
|
||||
)
|
||||
);
|
||||
|
||||
// Otherwise use original value and apply differential and divisor if given,
|
||||
@ -1563,9 +1566,9 @@ AJAX.registerOnload('server_status_monitor.js', function () {
|
||||
value = parseFloat(chartData[key][j][0].value);
|
||||
|
||||
if (elem.nodes[j].display == 'differential') {
|
||||
if (oldChartData === null
|
||||
|| oldChartData[key] === null
|
||||
|| oldChartData[key] === undefined
|
||||
if (oldChartData === null ||
|
||||
oldChartData[key] === null ||
|
||||
oldChartData[key] === undefined
|
||||
) {
|
||||
continue;
|
||||
}
|
||||
@ -1586,8 +1589,9 @@ AJAX.registerOnload('server_status_monitor.js', function () {
|
||||
elem.maxYLabel = 0.5;
|
||||
}
|
||||
// free old data point values and update maxYLabel
|
||||
if (elem.chart.series[j].data.length > runtime.gridMaxPoints
|
||||
&& elem.chart.series[j].data[0][0] < runtime.xmin) {
|
||||
if (elem.chart.series[j].data.length > runtime.gridMaxPoints &&
|
||||
elem.chart.series[j].data[0][0] < runtime.xmin
|
||||
) {
|
||||
// check if the next freeable point is highest
|
||||
if (elem.maxYLabel <= elem.chart.series[j].data[0][1]) {
|
||||
elem.chart.series[j].data.splice(0, elem.chart.series[j].data.length - runtime.gridMaxPoints);
|
||||
@ -1596,8 +1600,8 @@ AJAX.registerOnload('server_status_monitor.js', function () {
|
||||
elem.chart.series[j].data.splice(0, elem.chart.series[j].data.length - runtime.gridMaxPoints);
|
||||
}
|
||||
}
|
||||
if (elem.title === PMA_messages.strSystemMemory
|
||||
|| elem.title === PMA_messages.strSystemSwap
|
||||
if (elem.title === PMA_messages.strSystemMemory ||
|
||||
elem.title === PMA_messages.strSystemSwap
|
||||
) {
|
||||
total += value;
|
||||
}
|
||||
@ -1611,15 +1615,15 @@ AJAX.registerOnload('server_status_monitor.js', function () {
|
||||
(runtime.xmax - tickInterval * 3), (runtime.xmax - tickInterval * 2),
|
||||
(runtime.xmax - tickInterval), runtime.xmax];
|
||||
|
||||
if (elem.title !== PMA_messages.strSystemCPUUsage
|
||||
&& elem.title !== PMA_messages.strQueryCacheEfficiency
|
||||
&& elem.title !== PMA_messages.strSystemMemory
|
||||
&& elem.title !== PMA_messages.strSystemSwap
|
||||
if (elem.title !== PMA_messages.strSystemCPUUsage &&
|
||||
elem.title !== PMA_messages.strQueryCacheEfficiency &&
|
||||
elem.title !== PMA_messages.strSystemMemory &&
|
||||
elem.title !== PMA_messages.strSystemSwap
|
||||
) {
|
||||
elem.chart['axes']['yaxis']['max'] = Math.ceil(elem.maxYLabel * 1.1);
|
||||
elem.chart['axes']['yaxis']['tickInterval'] = Math.ceil(elem.maxYLabel * 1.1 / 5);
|
||||
} else if (elem.title === PMA_messages.strSystemMemory
|
||||
|| elem.title === PMA_messages.strSystemSwap
|
||||
} else if (elem.title === PMA_messages.strSystemMemory ||
|
||||
elem.title === PMA_messages.strSystemSwap
|
||||
) {
|
||||
elem.chart['axes']['yaxis']['max'] = Math.ceil(total * 1.1 / 100) * 100;
|
||||
elem.chart['axes']['yaxis']['tickInterval'] = Math.ceil(total * 1.1 / 5);
|
||||
|
||||
@ -89,9 +89,9 @@ AJAX.registerOnload('server_status_variables.js', function () {
|
||||
|
||||
odd_row = false;
|
||||
$('#serverstatusvariables th.name').each(function () {
|
||||
if ((textFilter === null || textFilter.exec($(this).text()))
|
||||
&& (! alertFilter || $(this).next().find('span.attention').length > 0)
|
||||
&& (categoryFilter.length === 0 || $(this).parent().hasClass('s_' + categoryFilter))
|
||||
if ((textFilter === null || textFilter.exec($(this).text())) &&
|
||||
(! alertFilter || $(this).next().find('span.attention').length > 0) &&
|
||||
(categoryFilter.length === 0 || $(this).parent().hasClass('s_' + categoryFilter))
|
||||
) {
|
||||
odd_row = ! odd_row;
|
||||
$(this).parent().css('display', '');
|
||||
|
||||
258
js/tbl_chart.js
258
js/tbl_chart.js
@ -6,6 +6,135 @@ var temp_chart_title;
|
||||
var currentChart = null;
|
||||
var currentSettings = null;
|
||||
|
||||
function extractDate(dateString) {
|
||||
var matches, match;
|
||||
var dateTimeRegExp = /[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}/;
|
||||
var dateRegExp = /[0-9]{4}-[0-9]{2}-[0-9]{2}/;
|
||||
|
||||
matches = dateTimeRegExp.exec(dateString);
|
||||
if (matches !== null && matches.length > 0) {
|
||||
match = matches[0];
|
||||
return new Date(match.substr(0, 4), match.substr(5, 2), match.substr(8, 2), match.substr(11, 2), match.substr(14, 2), match.substr(17, 2));
|
||||
} else {
|
||||
matches = dateRegExp.exec(dateString);
|
||||
if (matches !== null && matches.length > 0) {
|
||||
match = matches[0];
|
||||
return new Date(match.substr(0, 4), match.substr(5, 2), match.substr(8, 2));
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function PMA_queryChart(data, columnNames, settings) {
|
||||
if ($('#querychart').length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
var jqPlotSettings = {
|
||||
title : {
|
||||
text : settings.title,
|
||||
escapeHtml: true
|
||||
},
|
||||
grid : {
|
||||
drawBorder : false,
|
||||
shadow : false,
|
||||
background : 'rgba(0,0,0,0)'
|
||||
},
|
||||
legend : {
|
||||
show : true,
|
||||
placement : 'outsideGrid',
|
||||
location : 'e'
|
||||
},
|
||||
axes : {
|
||||
xaxis : {
|
||||
label : settings.xaxisLabel
|
||||
},
|
||||
yaxis : {
|
||||
label : settings.yaxisLabel
|
||||
}
|
||||
},
|
||||
stackSeries : settings.stackSeries,
|
||||
highlighter: {
|
||||
show: true,
|
||||
showTooltip: true,
|
||||
tooltipAxes: 'xy'
|
||||
}
|
||||
};
|
||||
|
||||
// create the chart
|
||||
var factory = new JQPlotChartFactory();
|
||||
var chart = factory.createChart(settings.type, "querychart");
|
||||
|
||||
// create the data table and add columns
|
||||
var dataTable = new DataTable();
|
||||
if (settings.type == 'timeline') {
|
||||
dataTable.addColumn(ColumnType.DATE, columnNames[settings.mainAxis]);
|
||||
} else {
|
||||
dataTable.addColumn(ColumnType.STRING, columnNames[settings.mainAxis]);
|
||||
}
|
||||
$.each(settings.selectedSeries, function (index, element) {
|
||||
dataTable.addColumn(ColumnType.NUMBER, columnNames[element]);
|
||||
});
|
||||
|
||||
// set data to the data table
|
||||
var columnsToExtract = [ settings.mainAxis ];
|
||||
$.each(settings.selectedSeries, function (index, element) {
|
||||
columnsToExtract.push(element);
|
||||
});
|
||||
var values = [], newRow, row, col;
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
row = data[i];
|
||||
newRow = [];
|
||||
for (var j = 0; j < columnsToExtract.length; j++) {
|
||||
col = columnNames[columnsToExtract[j]];
|
||||
if (j === 0) {
|
||||
if (settings.type == 'timeline') { // first column is date type
|
||||
newRow.push(extractDate(row[col]));
|
||||
} else { // first column is string type
|
||||
newRow.push(row[col]);
|
||||
}
|
||||
} else { // subsequent columns are of type, number
|
||||
newRow.push(parseFloat(row[col]));
|
||||
}
|
||||
}
|
||||
values.push(newRow);
|
||||
}
|
||||
dataTable.setData(values);
|
||||
|
||||
// draw the chart and return the chart object
|
||||
chart.draw(dataTable, jqPlotSettings);
|
||||
return chart;
|
||||
}
|
||||
|
||||
function drawChart() {
|
||||
currentSettings.width = $('#resizer').width() - 20;
|
||||
currentSettings.height = $('#resizer').height() - 20;
|
||||
|
||||
// todo: a better way using .redraw() ?
|
||||
if (currentChart !== null) {
|
||||
currentChart.destroy();
|
||||
}
|
||||
|
||||
var columnNames = [];
|
||||
$('select[name="chartXAxis"] option').each(function () {
|
||||
columnNames.push($(this).text());
|
||||
});
|
||||
try {
|
||||
currentChart = PMA_queryChart(chart_data, columnNames, currentSettings);
|
||||
} catch (err) {
|
||||
PMA_ajaxShowMessage(err.message, false);
|
||||
}
|
||||
}
|
||||
|
||||
function getSelectedSeries() {
|
||||
var val = $('select[name="chartSeries"]').val() || [];
|
||||
var ret = [];
|
||||
$.each(val, function (i, v) {
|
||||
ret.push(parseInt(v, 10));
|
||||
});
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Unbind all event handlers before tearing down a page
|
||||
*/
|
||||
@ -191,132 +320,3 @@ $("#tblchartform").live('submit', function (event) {
|
||||
|
||||
return false;
|
||||
}); // end
|
||||
|
||||
function drawChart() {
|
||||
currentSettings.width = $('#resizer').width() - 20;
|
||||
currentSettings.height = $('#resizer').height() - 20;
|
||||
|
||||
// todo: a better way using .redraw() ?
|
||||
if (currentChart !== null) {
|
||||
currentChart.destroy();
|
||||
}
|
||||
|
||||
var columnNames = [];
|
||||
$('select[name="chartXAxis"] option').each(function () {
|
||||
columnNames.push($(this).text());
|
||||
});
|
||||
try {
|
||||
currentChart = PMA_queryChart(chart_data, columnNames, currentSettings);
|
||||
} catch (err) {
|
||||
PMA_ajaxShowMessage(err.message, false);
|
||||
}
|
||||
}
|
||||
|
||||
function getSelectedSeries() {
|
||||
var val = $('select[name="chartSeries"]').val() || [];
|
||||
var ret = [];
|
||||
$.each(val, function (i, v) {
|
||||
ret.push(parseInt(v, 10));
|
||||
});
|
||||
return ret;
|
||||
}
|
||||
|
||||
function extractDate(dateString) {
|
||||
var matches, match;
|
||||
var dateTimeRegExp = /[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}/;
|
||||
var dateRegExp = /[0-9]{4}-[0-9]{2}-[0-9]{2}/;
|
||||
|
||||
matches = dateTimeRegExp.exec(dateString);
|
||||
if (matches !== null && matches.length > 0) {
|
||||
match = matches[0];
|
||||
return new Date(match.substr(0, 4), match.substr(5, 2), match.substr(8, 2), match.substr(11, 2), match.substr(14, 2), match.substr(17, 2));
|
||||
} else {
|
||||
matches = dateRegExp.exec(dateString);
|
||||
if (matches !== null && matches.length > 0) {
|
||||
match = matches[0];
|
||||
return new Date(match.substr(0, 4), match.substr(5, 2), match.substr(8, 2));
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function PMA_queryChart(data, columnNames, settings) {
|
||||
if ($('#querychart').length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
var jqPlotSettings = {
|
||||
title : {
|
||||
text : settings.title,
|
||||
escapeHtml: true
|
||||
},
|
||||
grid : {
|
||||
drawBorder : false,
|
||||
shadow : false,
|
||||
background : 'rgba(0,0,0,0)'
|
||||
},
|
||||
legend : {
|
||||
show : true,
|
||||
placement : 'outsideGrid',
|
||||
location : 'e'
|
||||
},
|
||||
axes : {
|
||||
xaxis : {
|
||||
label : settings.xaxisLabel
|
||||
},
|
||||
yaxis : {
|
||||
label : settings.yaxisLabel
|
||||
}
|
||||
},
|
||||
stackSeries : settings.stackSeries,
|
||||
highlighter: {
|
||||
show: true,
|
||||
showTooltip: true,
|
||||
tooltipAxes: 'xy'
|
||||
}
|
||||
};
|
||||
|
||||
// create the chart
|
||||
var factory = new JQPlotChartFactory();
|
||||
var chart = factory.createChart(settings.type, "querychart");
|
||||
|
||||
// create the data table and add columns
|
||||
var dataTable = new DataTable();
|
||||
if (settings.type == 'timeline') {
|
||||
dataTable.addColumn(ColumnType.DATE, columnNames[settings.mainAxis]);
|
||||
} else {
|
||||
dataTable.addColumn(ColumnType.STRING, columnNames[settings.mainAxis]);
|
||||
}
|
||||
$.each(settings.selectedSeries, function (index, element) {
|
||||
dataTable.addColumn(ColumnType.NUMBER, columnNames[element]);
|
||||
});
|
||||
|
||||
// set data to the data table
|
||||
var columnsToExtract = [ settings.mainAxis ];
|
||||
$.each(settings.selectedSeries, function (index, element) {
|
||||
columnsToExtract.push(element);
|
||||
});
|
||||
var values = [], newRow, row, col;
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
row = data[i];
|
||||
newRow = [];
|
||||
for (var j = 0; j < columnsToExtract.length; j++) {
|
||||
col = columnNames[columnsToExtract[j]];
|
||||
if (j === 0) {
|
||||
if (settings.type == 'timeline') { // first column is date type
|
||||
newRow.push(extractDate(row[col]));
|
||||
} else { // first column is string type
|
||||
newRow.push(row[col]);
|
||||
}
|
||||
} else { // subsequent columns are of type, number
|
||||
newRow.push(parseFloat(row[col]));
|
||||
}
|
||||
}
|
||||
values.push(newRow);
|
||||
}
|
||||
dataTable.setData(values);
|
||||
|
||||
// draw the chart and return the chart object
|
||||
chart.draw(dataTable, jqPlotSettings);
|
||||
return chart;
|
||||
}
|
||||
|
||||
@ -14,6 +14,20 @@ function show_hide_clauses($thisDropdown)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets dropdown options to values
|
||||
*/
|
||||
function setDropdownValues($dropdown, values) {
|
||||
$dropdown.empty();
|
||||
var optionsAsString = '';
|
||||
// add an empty string to the beginning for empty selection
|
||||
values.unshift('');
|
||||
$.each(values, function () {
|
||||
optionsAsString += "<option value='" + this + "'>" + this + "</option>";
|
||||
});
|
||||
$dropdown.append($(optionsAsString));
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves and populates dropdowns to the left based on the selected value
|
||||
*
|
||||
@ -89,17 +103,6 @@ function getDropdownValues($dropdown) {
|
||||
});
|
||||
}
|
||||
|
||||
function setDropdownValues($dropdown, values) {
|
||||
$dropdown.empty();
|
||||
var optionsAsString = '';
|
||||
// add an empty string to the beginning for empty selection
|
||||
values.unshift('');
|
||||
$.each(values, function () {
|
||||
optionsAsString += "<option value='" + this + "'>" + this + "</option>";
|
||||
});
|
||||
$dropdown.append($(optionsAsString));
|
||||
}
|
||||
|
||||
/**
|
||||
* Unbind all event handlers before tearing down a page
|
||||
*/
|
||||
|
||||
Loading…
Reference in New Issue
Block a user