Files
cacti/include/layout.js
T
Larry Adams 41107cafbf QA: Cacti Now W3C Compliant w/only a few exceptions (and graphs.php).
git-svn-id: svn+ssh://repo.cacti.net/var/data/svnroot/cacti/cacti/branches/0.8.7@5867 860744bd-22fc-0310-8c96-e9fe5004b5ca
2010-05-05 01:32:05 +00:00

337 lines
11 KiB
JavaScript

/*
+-------------------------------------------------------------------------+
| Copyright (C) 2004-2010 The Cacti Group |
| |
| This program is free software; you can redistribute it and/or |
| modify it under the terms of the GNU General Public License |
| as published by the Free Software Foundation; either version 2 |
| of the License, or (at your option) any later version. |
| |
| This program is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
+-------------------------------------------------------------------------+
| Cacti: The Complete RRDTool-based Graphing Solution |
+-------------------------------------------------------------------------+
| This code is designed, written, and maintained by the Cacti Group. See |
| about.php and/or the AUTHORS file for specific developer information. |
+-------------------------------------------------------------------------+
| http://www.cacti.net/ |
+-------------------------------------------------------------------------+
*/
/* graph template stuff */
function gt_update_selection_indicators() {
if (document.getElementById) {
there_are_any_unchecked_ones = false;
for (var j = 0; j < document.chk.elements.length; j++) {
if (document.chk.elements[j].name.substr(0,3) == 'cg_') {
if (document.chk.elements[j].checked == false) {
there_are_any_unchecked_ones = true;
}
if (!isNaN(document.chk.elements[j].name.substr(3))) {
lineid = document.getElementById('gt_line' + document.chk.elements[j].name.substr(3));
if (document.chk.elements[j].checked) {
lineid.style.backgroundColor = 'khaki';
}else{
lineid.style.backgroundColor = '';
}
}
}
}
}
}
function gt_select_line(graph_template_id, update) {
if (gt_is_disabled(graph_template_id)) { return; }
if (document.getElementById) {
msgid = document.getElementById('cg_' + graph_template_id);
lineid = document.getElementById('gt_line'+ graph_template_id);
if (!update) msgid.checked = !msgid.checked;
gt_update_selection_indicators();
}
}
function gt_is_disabled(graph_template_id) {
for (var i = 0; i < gt_created_graphs.length; i++) {
if (gt_created_graphs[i] == graph_template_id) {
return true;
}
}
return false;
}
function gt_update_deps(num_columns) {
gt_reset_deps(num_columns);
for (var i = 0; i < gt_created_graphs.length; i++) {
for (var j = 0; j < num_columns; j++) {
lineid = document.getElementById('gt_text' + gt_created_graphs[i] + '_' + j);
lineid.style.color = '#999999';
}
chkbx = document.getElementById('cg_' + gt_created_graphs[i]);
chkbx.style.visibility = 'hidden';
chkbx.checked = false;
lineid = document.getElementById('gt_line' + gt_created_graphs[i]);
lineid.style.backgroundColor = '';
}
}
function gt_reset_deps(num_columns) {
var prefix = 'cg_'
for (var i = 0; i < document.chk.elements.length; i++) {
if (document.chk.elements[i].name.substr( 0, prefix.length ) == prefix) {
for (var j = 0; j < num_columns; j++) {
lineid = document.getElementById('gt_text' + document.chk.elements[i].name.substr(prefix.length) + '_' + j);
lineid.style.color = '#000000';
}
chkbx = document.getElementById('cg_' + document.chk.elements[i].name.substr(prefix.length));
chkbx.style.visibility = 'visible';
}
}
}
/* general id based selects */
function update_selection_indicators() {
if (document.getElementById) {
there_are_any_unchecked_ones = false;
for (var j = 0; j < document.chk.elements.length; j++) {
if( document.chk.elements[j].name.substr( 0, 4 ) == 'chk_') {
if (document.chk.elements[j].checked == false) {
there_are_any_unchecked_ones = true;
}
lineid = document.getElementById('line'+ document.chk.elements[j].name.substr(4));
if (document.chk.elements[j].checked) {
lineid.style.backgroundColor = 'khaki';
}else{
lineid.style.backgroundColor = '';
}
}
}
}
}
function select_line(id, update) {
if (document.getElementById) {
msgid = document.getElementById('chk_' + id);
lineid = document.getElementById('line'+ id);
if (!update) msgid.checked = !msgid.checked;
update_selection_indicators();
}
}
/* data query stuff */
function dq_update_selection_indicators() {
if (document.getElementById) {
there_are_any_unchecked_ones = false;
for (var j = 0; j < document.chk.elements.length; j++) {
if( document.chk.elements[j].name.substr( 0, 3 ) == 'sg_') {
if (document.chk.elements[j].checked == false) {
there_are_any_unchecked_ones = true;
}
lineid = document.getElementById('line'+ document.chk.elements[j].name.substr(3));
if (document.chk.elements[j].checked) {
lineid.style.backgroundColor = 'khaki';
}else{
lineid.style.backgroundColor = '';
}
}
}
}
}
function dq_select_line(snmp_query_id, snmp_index, update) {
if (dq_is_disabled(snmp_query_id, snmp_index)) { return; }
if (document.getElementById) {
msgid = document.getElementById('sg_' + snmp_query_id + '_' + snmp_index);
lineid = document.getElementById('line'+ snmp_query_id + '_' + snmp_index);
if (!update) msgid.checked = !msgid.checked;
dq_update_selection_indicators();
}
}
function dq_is_disabled(snmp_query_id, snmp_index) {
dropdown = document.getElementById('sgg_' + snmp_query_id);
var snmp_query_graph_id = dropdown.value
for (var i = 0; i < created_graphs[snmp_query_graph_id].length; i++) {
if (created_graphs[snmp_query_graph_id][i] == snmp_index) {
return true;
}
}
return false;
}
function dq_update_deps(snmp_query_id, num_columns) {
dq_reset_deps(snmp_query_id, num_columns);
dropdown = document.getElementById('sgg_' + snmp_query_id);
var snmp_query_graph_id = dropdown.value
for (var i = 0; i < created_graphs[snmp_query_graph_id].length; i++) {
for (var j = 0; j < num_columns; j++) {
lineid = document.getElementById('text' + snmp_query_id + '_' + created_graphs[snmp_query_graph_id][i] + '_' + j);
if ( lineid ) { lineid.style.color = '#999999' };
}
chkbx = document.getElementById('sg_' + snmp_query_id + '_' + created_graphs[snmp_query_graph_id][i]);
if ( chkbx ) {
chkbx.style.visibility = 'hidden';
chkbx.checked = false;
}
lineid = document.getElementById('line' + snmp_query_id + '_' + created_graphs[snmp_query_graph_id][i]);
if ( lineid ) { lineid.style.backgroundColor = '' };
}
}
function dq_reset_deps(snmp_query_id, num_columns) {
var prefix = 'sg_' + snmp_query_id + '_'
for (var i = 0; i < document.chk.elements.length; i++) {
if (document.chk.elements[i].name.substr( 0, prefix.length ) == prefix) {
for (var j = 0; j < num_columns; j++) {
lineid = document.getElementById('text' + snmp_query_id + '_' + document.chk.elements[i].name.substr(prefix.length) + '_' + j);
lineid.style.color = '#000000';
}
chkbx = document.getElementById('sg_' + snmp_query_id + '_' + document.chk.elements[i].name.substr(prefix.length));
chkbx.style.visibility = 'visible';
}
}
}
function SelectAll(prefix, checkbox_state) {
for (var i = 0; i < document.chk.elements.length; i++) {
if ((document.chk.elements[i].name.substr(0, prefix.length) == prefix) && (document.chk.elements[i].style.visibility != 'hidden')) {
document.chk.elements[i].checked = checkbox_state;
}
if (prefix == "chk_") {
lineid = document.getElementById('line'+ document.chk.elements[i].name.substr(4));
if (document.chk.elements[i].checked) {
if ( lineid ) { lineid.style.backgroundColor = 'khaki'; }
}else{
if ( lineid ) { lineid.style.backgroundColor = ''; }
}
}
}
}
function SelectAllGraphs(prefix, checkbox_state) {
for (var i = 0; i < document.graphs.elements.length; i++) {
if ((document.graphs.elements[i].name.substr(0, prefix.length) == prefix) && (document.graphs.elements[i].style.visibility != 'hidden')) {
document.graphs.elements[i].checked = checkbox_state;
}
}
}
/* calendar stuff */
// Initialize the calendar
calendar=null;
// This function displays the calendar associated to the input field 'id'
function showCalendar(id) {
var el = document.getElementById(id);
if (calendar != null) {
// we already have some calendar created
calendar.hide(); // so we hide it first.
} else {
// first-time call, create the calendar.
var cal = new Calendar(true, null, selected, closeHandler);
cal.weekNumbers = false; // Do not display the week number
cal.showsTime = true; // Display the time
cal.time24 = true; // Hours have a 24 hours format
cal.showsOtherMonths = false; // Just the current month is displayed
calendar = cal; // remember it in the global var
cal.setRange(1900, 2070); // min/max year allowed.
cal.create();
}
calendar.setDateFormat('%Y-%m-%d %H:%M'); // set the specified date format
calendar.parseDate(el.value); // try to parse the text in field
calendar.sel = el; // inform it what input field we use
// Display the calendar below the input field
calendar.showAtElement(el, "Br"); // show the calendar
return false;
}
// This function update the date in the input field when selected
function selected(cal, date) {
cal.sel.value = date; // just update the date in the input field.
}
// This function gets called when the end-user clicks on the 'Close' button.
// It just hides the calendar without destroying it.
function closeHandler(cal) {
cal.hide(); // hide the calendar
calendar = null;
}
/* graph filtering */
function applyTimespanFilterChange(objForm) {
strURL = '?predefined_timespan=' + objForm.predefined_timespan.value;
strURL = strURL + '&predefined_timeshift=' + objForm.predefined_timeshift.value;
document.location = strURL;
}
function applyGraphPreviewFilterChange(objForm) {
strURL = '?action=preview';
strURL = strURL + '&host_id=' + objForm.host_id.value;
strURL = strURL + '&graph_template_id=' + objForm.graph_template_id.value;
strURL = strURL + '&filter=' + objForm.filter.value;
document.location = strURL;
}
function applyTimespanFilterChange(objForm) {
strURL = '?predefined_timespan=' + objForm.predefined_timespan.value;
strURL = strURL + '&predefined_timeshift=' + objForm.predefined_timeshift.value;
document.location = strURL;
}
function applyGraphListFilterChange(objForm) {
strURL = 'graph_view.php?action=list&page=1';
strURL = strURL + '&host_id=' + objForm.host_id.value;
strURL = strURL + '&rows=' + objForm.rows.value;
strURL = strURL + '&graph_template_id=' + objForm.graph_template_id.value;
strURL = strURL + '&filter=' + objForm.filter.value;
strURL = strURL + url_graph('');
document.location = strURL;
return false;
}
function cactiReturnTo(location) {
if (location != "") {
document.location = location;
}else{
document.history.back();
}
}