diff options
Diffstat (limited to 'frontends/php/js')
-rw-r--r-- | frontends/php/js/ajax_req.js | 143 | ||||
-rw-r--r-- | frontends/php/js/chkbxrange.js | 22 | ||||
-rw-r--r-- | frontends/php/js/common.js | 559 | ||||
-rw-r--r-- | frontends/php/js/dashboard.js | 69 | ||||
-rw-r--r-- | frontends/php/js/json.js | 105 | ||||
-rw-r--r-- | frontends/php/js/menu.js | 37 | ||||
-rw-r--r-- | frontends/php/js/menu_scripts.js | 226 | ||||
-rw-r--r-- | frontends/php/js/tree.js | 2 | ||||
-rw-r--r-- | frontends/php/js/users.js | 103 |
9 files changed, 616 insertions, 650 deletions
diff --git a/frontends/php/js/ajax_req.js b/frontends/php/js/ajax_req.js new file mode 100644 index 00000000..b1eb851f --- /dev/null +++ b/frontends/php/js/ajax_req.js @@ -0,0 +1,143 @@ +// JavaScript Document +/* +** ZABBIX +** Copyright (C) 2000-2008 SIA Zabbix +** +** 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. +** +** You should have received a copy of the GNU General Public License +** along with this program; if not, write to the Free Software +** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +**/ + +function send_params(params){ + + var uri = new url(location.href); + new Ajax.Request(uri.getPath()+"?output=ajax", + { + 'method': 'post', + 'parameters':params, + 'onSuccess': function(resp){ },//alert(resp.responseText); + 'onFailure': function(){ document.location = uri.getPath()+'?'+Object.toQueryString(params); } + } + ); +} + + +function setRefreshRate(id,interval){ + if(typeof(Ajax) == 'undefined'){ + throw("Prototype.js lib is required!"); + return false; + } + + var params = { + 'favobj': 'set_rf_rate', + 'favid': id, + 'favcnt': interval + } + + send_params(params); +} + +function add2favorites(favobj,favid){ + if('undefined' == typeof(Ajax)){ + throw("Prototype.js lib is required!"); + return false; + } + + if(typeof(favobj) == 'undefined'){ + var fav_form = document.getElementById('fav_form'); + if(!fav_form) throw "Object not found."; + + var favobj = fav_form.favobj.value; + var favid = fav_form.favid.value; + } + + if((typeof(favid) == 'undefined') || empty(favid)) return; + + var params = { + 'favobj': favobj, + 'favid': favid, + 'action': 'add' + } + + send_params(params); +// json.onetime('dashboard.php?output=json&'+Object.toQueryString(params)); +} + +function rm4favorites(favobj,favid,menu_rowid){ +// alert(favobj+','+favid+','+menu_rowid); + if('undefined' == typeof(Ajax)){ + throw("Prototype.js lib is required!"); + return false; + } + + if((typeof(favobj) == 'undefined') || (typeof(favid) == 'undefined')) + throw "No agruments sent to function [rm4favorites()]."; + + var params = { + 'favobj': favobj, + 'favid': favid, + 'favcnt': menu_rowid, + 'action': 'remove' + } + + send_params(params); +// json.onetime('dashboard.php?output=json&'+Object.toQueryString(params)); +} + +function change_hat_state(icon, divid){ + deselectAll(); + var hat_state = ShowHide(divid); + switchElementsClass(icon,"arrowup","arrowdown"); + + if(false === hat_state) return false; + + var params = { + 'favobj': 'hat', + 'favid': divid, + 'state': hat_state + } + + send_params(params); +} + +function change_filter_state(icon, divid){ + deselectAll(); + var filter_state = ShowHide(divid); + switchElementsClass(icon,"filteropened","filterclosed"); + + if(false === filter_state) return false; + + var params = { + 'favobj': 'filter', + 'favid': divid, + 'state': filter_state + } + + send_params(params); +} + + +function switch_mute(icon){ + deselectAll(); + var sound_state = switchElementsClass(icon,"iconmute","iconsound"); + + if(false === sound_state) return false; + sound_state = (sound_state == "iconmute")?1:0; + + var params = { + 'favobj': 'sound', + 'state': sound_state + } + + send_params(params); +}
\ No newline at end of file diff --git a/frontends/php/js/chkbxrange.js b/frontends/php/js/chkbxrange.js index ba57b3c8..a2dcc23e 100644 --- a/frontends/php/js/chkbxrange.js +++ b/frontends/php/js/chkbxrange.js @@ -1,4 +1,26 @@ // JavaScript Document +/* +** ZABBIX +** Copyright (C) 2000-2008 SIA Zabbix +** +** 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. +** +** You should have received a copy of the GNU General Public License +** along with this program; if not, write to the Free Software +** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +** +*/ + +// Title: automatic checkbox range selection class +// Author: Aly var chkbx_range_ext = { startbox: null, // start checkbox obj diff --git a/frontends/php/js/common.js b/frontends/php/js/common.js index 97befa5d..efed52ef 100644 --- a/frontends/php/js/common.js +++ b/frontends/php/js/common.js @@ -16,6 +16,8 @@ ** along with this program; if not, write to the Free Software ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. **/ + + var agt = navigator.userAgent.toLowerCase(); var OP = (agt.indexOf("opera") != -1) && window.opera; var IE = (agt.indexOf("msie") != -1) && document.all && !OP; @@ -61,20 +63,6 @@ function is_array(obj) { 'splice' in obj && 'join' in obj; } -if (!Array.prototype.forEach){ - Array.prototype.forEach = function(fun /*, thisp*/){ - var len = this.length; - if (typeof fun != "function") - throw new TypeError(); - - var thisp = arguments[1]; - for (var i = 0; i < len; i++){ - if (i in this) - fun.call(thisp, this[i], i, this); - } - }; -} - function SDI(msg){ var div_help = document.getElementById('div_help'); @@ -94,113 +82,20 @@ function SDI(msg){ div_help.appendChild(document.createElement("br")); } -function close_window(){ - - window.setTimeout("window.close()", 500); /* Solve bug for Internet Explorer */ - return false; -} - -function add2favorites(favobj,favid){ - if('undefined' == typeof(Ajax)){ - throw("Prototype.js lib is required!"); - return false; - } +/// Alpha-Betic sorting - if(typeof(favobj) == 'undefined'){ - var fav_form = document.getElementById('fav_form'); - if(!fav_form) throw "Object not found."; - - var favobj = fav_form.favobj.value; - var favid = fav_form.favid.value; - } - - if((typeof(favid) == 'undefined') || empty(favid)) return; - - var params = { - 'favobj': favobj, - 'favid': favid, - 'action': 'add' - } +function addListener(element, eventname, expression, bubbling){ + bubbling = bubbling || false; - send_params(params); -// json.onetime('dashboard.php?output=json&'+Object.toQueryString(params)); -} - -function rm4favorites(favobj,favid,menu_rowid){ -// alert(favobj+','+favid+','+menu_rowid); - if('undefined' == typeof(Ajax)){ - throw("Prototype.js lib is required!"); - return false; - } - - if((typeof(favobj) == 'undefined') || (typeof(favid) == 'undefined')) - throw "No agruments sent to function [rm4favorites()]."; - - var params = { - 'favobj': favobj, - 'favid': favid, - 'favcnt': menu_rowid, - 'action': 'remove' - } - - send_params(params); -// json.onetime('dashboard.php?output=json&'+Object.toQueryString(params)); -} - -function getPosition(obj){ - var pos = {top: 0, left: 0}; - if(typeof(obj.offsetParent) != 'undefined') { - pos.left = obj.offsetLeft; - pos.top = obj.offsetTop; - while (obj = obj.offsetParent) { - pos.left += obj.offsetLeft; - pos.top += obj.offsetTop; - } - } -return pos; -} - -function get_scroll_pos(){ - var scrOfX = 0, scrOfY = 0; -//Netscape compliant - if( typeof( window.pageYOffset ) == 'number' ){ - scrOfY = window.pageYOffset; - scrOfX = window.pageXOffset; - } -//DOM compliant - else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ){ - scrOfY = document.body.scrollTop; - scrOfX = document.body.scrollLeft; - } -//IE6 standards compliant mode - else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ){ - scrOfY = document.documentElement.scrollTop; - scrOfX = document.documentElement.scrollLeft; - } - return [ scrOfX, scrOfY ]; -} - -function get_cursor_position(e){ - e = e || window.event; - var cursor = {x:0, y:0}; - if(e.pageX || e.pageY){ - cursor.x = e.pageX; - cursor.y = e.pageY; + if(window.addEventListener) { + element.addEventListener(eventname, expression, bubbling); + return true; } - else { - var de = document.documentElement; - var b = document.body; - cursor.x = e.clientX + - (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0); - cursor.y = e.clientY + - (de.scrollTop || b.scrollTop) - (de.clientTop || 0); - } - return cursor; -} - -function redirect(url) { - window.location = url; - return false; + else if(window.attachEvent) { + element.attachEvent('on'+eventname, expression); + return true; + } + else return false; } function add_variable(o_el, s_name, x_value, s_formname, o_document){ @@ -235,6 +130,48 @@ function add_variable(o_el, s_name, x_value, s_formname, o_document){ return true; } +function cancelEvent(e){ + if (!e) var e = window.event; +//SDI(e); + if(e){ + if(IE){ + e.cancelBubble = true; + e.returnValue = false; + } + else{ + e.stopPropagation(); + e.preventDefault(); + } + } +return false; +} + +function CheckAll(form_name, chkMain, shkName){ + var frmForm = document.forms[form_name]; + var value = frmForm.elements[chkMain].checked; + for (var i=0; i < frmForm.length; i++){ + name = frmForm.elements[i].name.split('[')[0]; + if(frmForm.elements[i].type != 'checkbox') continue; + if(name == chkMain) continue; + if(shkName && shkName != name) continue; + if(frmForm.elements[i].disabled == true) continue; + frmForm.elements[i].checked = value; + } +} + +function close_window(){ + + window.setTimeout("window.close()", 500); /* Solve bug for Internet Explorer */ + return false; +} + +function Confirm(msg){ + if(confirm(msg,'title')) + return true; + else + return false; +} + function create_var(form_name, var_name, var_val, subm){ var frmForm = (is_string(form_name))?document.forms[form_name]:form_name; @@ -263,121 +200,6 @@ function create_var(form_name, var_name, var_val, subm){ return false; } -function Confirm(msg){ - if(confirm(msg,'title')) - return true; - else - return false; -} - -function ShowHide(obj,style){ - if(typeof(style) == 'undefined') - var style = 'inline'; - if(is_string(obj)) - obj = document.getElementById(obj); - if(!obj){ - throw 'ShowHide(): Object not foun.'; - return false; - } - - if(obj.style.display != 'none'){ - obj.style.display = 'none'; - return 0; - } - else{ - obj.style.display = style; - return 1; - } -return false; -} - -function switchElementsClass(obj,class1,class2){ - obj = $(obj); - if(!obj) return false; - - if(obj.className == class1){ - obj.className = class2; - return class2; - } - else{ - obj.className = class1; - return class1; - } -return false; -} - -function PopUp(url,width,height,form_name){ - if(!width) width = 600; - if(!height) height = 450; - if(!form_name) form_name = 'zbx_popup'; - - var left = (screen.width-(width+150))/2; - var top = (screen.height-(height+150))/2; - - var popup = window.open(url,form_name,'width=' + width +',height=' + height + ',top='+ top +',left='+ left + - ',resizable=yes,scrollbars=yes,location=no,menubar=no'); - - popup.focus(); - - return false; -} - -function CheckAll(form_name, chkMain, shkName){ - var frmForm = document.forms[form_name]; - var value = frmForm.elements[chkMain].checked; - for (var i=0; i < frmForm.length; i++){ - name = frmForm.elements[i].name.split('[')[0]; - if(frmForm.elements[i].type != 'checkbox') continue; - if(name == chkMain) continue; - if(shkName && shkName != name) continue; - if(frmForm.elements[i].disabled == true) continue; - frmForm.elements[i].checked = value; - } -} - - - -function openWinCentered(loc, winname, iwidth, iheight, params){ - tp=Math.ceil((screen.height-iheight)/2); - lf=Math.ceil((screen.width-iwidth)/2); - if (params.length > 0){ - params = ', ' + params; - } - - var WinObjReferer = window.open(loc,winname,"width="+iwidth+",height="+iheight+",top="+tp+",left="+lf+params); - WinObjReferer.focus(); -} - - -function addListener(element, eventname, expression, bubbling){ - bubbling = bubbling || false; - - if(window.addEventListener) { - element.addEventListener(eventname, expression, bubbling); - return true; - } - else if(window.attachEvent) { - element.attachEvent('on'+eventname, expression); - return true; - } - else return false; -} - -function cancelEvent(e){ - if (!e) var e = window.event; -//SDI(e); - if(e){ - if(IE){ - e.cancelBubble = true; - e.returnValue = false; - } - else{ - e.stopPropagation(); - e.preventDefault(); - } - } -return false; -} function deselectAll(){ if(IE){ @@ -389,6 +211,24 @@ function deselectAll(){ } } +function empty_form(id){ + id = $(id); + var count = 0; + + var inputs = id.getElementsByTagName('input'); + for(var i=0; i<inputs.length;i++){ + if((inputs[i].type == 'text') && (typeof(inputs[i].hidden) == 'undefined') && !empty(inputs[i].value)) return false; + if((inputs[i].type == 'checkbox') && (inputs[i].checked)) return false; + } + + var selects = id.getElementsByTagName('select'); + for(var i=0; i<selects.length;i++){ + if((typeof(selects[i].hidden) == 'undefined') && (selects[i].selectedIndex)) return false; + } + +return true; +} + function eventTarget(e){ var targ = false; @@ -402,71 +242,20 @@ function eventTarget(e){ return targ; } -function send_params(params){ - - var uri = new url(location.href); - new Ajax.Request(uri.getPath()+"?output=ajax", - { - 'method': 'post', - 'parameters':params, - 'onSuccess': function(resp){ },//alert(resp.responseText); - 'onFailure': function(){ document.location = uri.getPath()+'?'+Object.toQueryString(params); } - } - ); -} - - -/************************************************************************************/ -/* Pages stuff */ -/************************************************************************************/ -function change_hat_state(icon, divid){ - deselectAll(); - var hat_state = ShowHide(divid); - switchElementsClass(icon,"arrowup","arrowdown"); - - if(false === hat_state) return false; - - var params = { - 'favobj': 'hat', - 'favid': divid, - 'state': hat_state - } - - send_params(params); -} - -function change_filter_state(icon, divid){ - deselectAll(); - var filter_state = ShowHide(divid); - switchElementsClass(icon,"filteropened","filterclosed"); - - if(false === filter_state) return false; - - var params = { - 'favobj': 'filter', - 'favid': divid, - 'state': filter_state - } - - send_params(params); -} - -function switch_mute(icon){ - deselectAll(); - var sound_state = switchElementsClass(icon,"iconmute","iconsound"); - - if(false === sound_state) return false; - sound_state = (sound_state == "iconmute")?1:0; - - var params = { - 'favobj': 'sound', - 'state': sound_state +function getPosition(obj){ + var pos = {top: 0, left: 0}; + if(typeof(obj.offsetParent) != 'undefined') { + pos.left = obj.offsetLeft; + pos.top = obj.offsetTop; + while (obj = obj.offsetParent) { + pos.left += obj.offsetLeft; + pos.top += obj.offsetTop; + } } - - send_params(params); +return pos; } -function GetSelectedText(obj){ +function getSelectedText(obj){ if(IE){ obj.focus(); return document.selection.createRange().text; @@ -481,20 +270,91 @@ function GetSelectedText(obj){ return obj.value; } -function ScaleChartToParenElement(obj_name){ - var obj = document.getElementsByName(obj_name); - if(obj.length <= 0) throw "Can't find objects with name [" + obj_name +"]"; +function get_bodywidth(){ + var w = parseInt(document.body.scrollWidth); + var w2 = parseInt(document.body.offsetWidth); - for(i = obj.length-1; i>=0; i--){ - obj[i].src += "&width=" + (obj[i].parentNode.offsetWidth - obj[i].parentNode.offsetLeft - 10); + if(KQ){ + w = (w2 < w)?w2:w; + w-=16; + } + else{ + w = (w2 > w)?w2:w; } +return w; } -function insert_sizeable_graph(graph_id,url){ - if((typeof(ZBX_G_WIDTH) != 'undefined')) url += "&width="+ZBX_G_WIDTH; - document.write('<img id="'+graph_id+'" src="'+url+'" alt="graph" /><br />'); +function get_cursor_position(e){ + e = e || window.event; + var cursor = {x:0, y:0}; + if(e.pageX || e.pageY){ + cursor.x = e.pageX; + cursor.y = e.pageY; + } + else { + var de = document.documentElement; + var b = document.body; + cursor.x = e.clientX + + (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0); + cursor.y = e.clientY + + (de.scrollTop || b.scrollTop) - (de.clientTop || 0); + } + return cursor; +} + +function get_scroll_pos(){ + var scrOfX = 0, scrOfY = 0; +//Netscape compliant + if( typeof( window.pageYOffset ) == 'number' ){ + scrOfY = window.pageYOffset; + scrOfX = window.pageXOffset; + } +//DOM compliant + else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ){ + scrOfY = document.body.scrollTop; + scrOfX = document.body.scrollLeft; + } +//IE6 standards compliant mode + else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ){ + scrOfY = document.documentElement.scrollTop; + scrOfX = document.documentElement.scrollLeft; + } + return [ scrOfX, scrOfY ]; +} + + +function openWinCentered(loc, winname, iwidth, iheight, params){ + tp=Math.ceil((screen.height-iheight)/2); + lf=Math.ceil((screen.width-iwidth)/2); + if (params.length > 0){ + params = ', ' + params; + } + + var WinObjReferer = window.open(loc,winname,"width="+iwidth+",height="+iheight+",top="+tp+",left="+lf+params); + WinObjReferer.focus(); +} + +function PopUp(url,width,height,form_name){ + if(!width) width = 600; + if(!height) height = 450; + if(!form_name) form_name = 'zbx_popup'; + + var left = (screen.width-(width+150))/2; + var top = (screen.height-(height+150))/2; + + var popup = window.open(url,form_name,'width=' + width +',height=' + height + ',top='+ top +',left='+ left + + ',resizable=yes,scrollbars=yes,location=no,menubar=no'); + + popup.focus(); + + return false; +} + +function redirect(url) { + window.location = url; + return false; } function remove_childs(form_name,rmvbyname,tag){ @@ -552,69 +412,58 @@ function resizeiframe(id){ } } -function get_bodywidth(){ - var w = parseInt(document.body.scrollWidth); - var w2 = parseInt(document.body.offsetWidth); +function ShowHide(obj,style){ + if(typeof(style) == 'undefined') + var style = 'inline'; + if(is_string(obj)) + obj = document.getElementById(obj); + if(!obj){ + throw 'ShowHide(): Object not foun.'; + return false; + } - if(KQ){ - w = (w2 < w)?w2:w; - w-=16; + if(obj.style.display != 'none'){ + obj.style.display = 'none'; + return 0; } else{ - w = (w2 > w)?w2:w; + obj.style.display = style; + return 1; } -return w; +return false; } -function empty_form(id){ - id = $(id); - var count = 0; - - var inputs = id.getElementsByTagName('input'); - for(var i=0; i<inputs.length;i++){ - if((inputs[i].type == 'text') && (typeof(inputs[i].hidden) == 'undefined') && !empty(inputs[i].value)) return false; - if((inputs[i].type == 'checkbox') && (inputs[i].checked)) return false; +function switchElementsClass(obj,class1,class2){ + obj = $(obj); + if(!obj) return false; + + if(obj.className == class1){ + obj.className = class2; + return class2; } - - var selects = id.getElementsByTagName('select'); - for(var i=0; i<selects.length;i++){ - if((typeof(selects[i].hidden) == 'undefined') && (selects[i].selectedIndex)) return false; + else{ + obj.className = class1; + return class1; } - -return true; +return false; } -function moveListBoxSelectedItem(formname,objname,from,to,action){ - var result = true - - from = $(from); - to = $(to); - - for(i = 0; i < from.options.length; i++) { - if(from.options[i].selected == true) { -/* - var temp = document.createElement('option'); - temp.setAttribute('value',from.options[i].value); - - var caption = IE?from.options[i].innerText:from.options[i].textContent; - temp.appendChild(document.createTextNode(caption)); -*/ - var temp = from.options[i].cloneNode(true); - - if(action.toLowerCase() == 'add'){ - result &= create_var(formname, objname+'['+from.options[i].value+']', from.options[i].value, false); - } - else if(action.toLowerCase() == 'rmv'){ - result &= remove_element(objname+'['+from.options[i].value+']','input'); - } - - from.removeChild(from.options[i]); - - to.appendChild(temp); - i--; - } +/************************************************************************************/ +/* Pages stuff */ +/************************************************************************************/ +function ScaleChartToParenElement(obj_name){ + var obj = document.getElementsByName(obj_name); + + if(obj.length <= 0) throw "Can't find objects with name [" + obj_name +"]"; + + for(i = obj.length-1; i>=0; i--){ + obj[i].src += "&width=" + (obj[i].parentNode.offsetWidth - obj[i].parentNode.offsetLeft - 10); } +} -return result; +function insert_sizeable_graph(graph_id,url){ + if((typeof(ZBX_G_WIDTH) != 'undefined')) url += "&width="+ZBX_G_WIDTH; + + document.write('<img id="'+graph_id+'" src="'+url+'" alt="graph" /><br />'); }
\ No newline at end of file diff --git a/frontends/php/js/dashboard.js b/frontends/php/js/dashboard.js deleted file mode 100644 index 56f2c90f..00000000 --- a/frontends/php/js/dashboard.js +++ /dev/null @@ -1,69 +0,0 @@ -// JavaScript Document -/* -** ZABBIX -** Copyright (C) 2000-2008 SIA Zabbix -** -** 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. -** -** You should have received a copy of the GNU General Public License -** along with this program; if not, write to the Free Software -** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -**/ -function setRefreshRate(id,interval){ - if(typeof(Ajax) == 'undefined'){ - throw("Prototype.js lib is required!"); - return false; - } - - var params = { - 'favobj': 'set_rf_rate', - 'favid': id, - 'favcnt': interval - } - - send_params(params); -} - -function create_menu(e,id){ - if(!e) var e = window.event; - id='menu_'+id; - - var dbrd_menu = new Array(); - -//to create a copy of array, but not references!!!! -//alert(id+' : '+dashboard_menu[id]); - for(var i=0; i < dashboard_menu[id].length; i++){ - if((typeof(dashboard_menu[id][i]) != 'undefined') && !empty(dashboard_menu[id][i])) - dbrd_menu[i] = dashboard_menu[id][i].clone(); - } - - for(var i=0; i < dashboard_submenu[id].length; i++){ - if((typeof(dashboard_submenu[id][i]) != 'undefined') && !empty(dashboard_submenu[id][i])){ - var row = dashboard_submenu[id][i]; - var menu_row = new Array(row.name,"javascript: rm4favorites('"+row.favobj+"','"+row.favid+"','"+i+"');"); - dbrd_menu[dbrd_menu.length-1].push(menu_row); - } - } -//alert(dashboard_menu[id]); - show_popup_menu(e,dbrd_menu,280);// JavaScript Document -} - - -function getTimeFormated(timestamp){ - var dt = new Date(); - - var hours = dt.getHours(); - var minutes = dt.getMinutes(); - var seconds = dt.getSeconds(); - var str = '['+hours+':'+minutes+':'+seconds+']'; - -return str; -}
\ No newline at end of file diff --git a/frontends/php/js/json.js b/frontends/php/js/json.js deleted file mode 100644 index 162b959b..00000000 --- a/frontends/php/js/json.js +++ /dev/null @@ -1,105 +0,0 @@ -// JavaScript Document -function callJSON(){ -// json.clean(); - json.createScript('dashboard.php?output=json'); - json.buildAll(); - json.addAll(); -} - -var json = { -scripts: new Array(), // array of existing scripts id's -nextId: 1, // id of next script tag - -head: '', // DOM Head obj - -initialize: function(){ - this.head = document.getElementsByTagName("head").item(0); -}, - -callBack: function(){ - if(this.callBack.arguments.length > 0) - alert(this.callBack.arguments[0]) - else - alert('callBack!'); -}, - -onetime: function(url){ - var onetimeid; - onetimeid = this.createScript(url); - this.buildScript(onetimeid); - this.addScript(onetimeid); -}, - -createScript: function(url){ - this.scripts[this.nextId] = { - 'id': this.nextId, - 'fullurl': url+'&jsscriptid='+this.nextId, - 'noCacheIE': '&noCacheIE=' + (new Date()).getTime(), - 'scriptId': 'JscriptId' + this.nextId, - 'status': 1 - }; -//SDI('create:' + this.nextId); - this.nextId++; -return (this.nextId-1); -}, - -buildScript: function(id){ - if((typeof(id) != 'undefined')){ - if((typeof(this.scripts[id]) != 'undefined') && !empty(this.scripts[id]) && (this.scripts[id].status == 1)){ - var scriptObj = document.createElement("script"); - - // Add script object attributes - scriptObj.setAttribute("type", "text/javascript"); - scriptObj.setAttribute("charset", "utf-8"); - - scriptObj.setAttribute("src", this.scripts[id].fullurl+this.scripts[id].noCacheIE); - - scriptObj.setAttribute("id", this.scripts[id].scriptId); - - this.scripts[id].scriptObj = scriptObj; - this.scripts[id].status = 2; - } - } -}, - -buildAll: function() { - for(var i=1; i < this.nextId; i++){ - this.buildScript(i); - } -}, - -addScript: function(id){ - if((typeof(id) != 'undefined')){ - if((typeof(this.scripts[id]) != 'undefined') && !empty(this.scripts[id]) && (this.scripts[id].status == 2)){ - this.head.appendChild(this.scripts[id].scriptObj); - this.scripts[id].status = 3; - } - } -}, - -addAll: function(){ - for(var i=1; i < this.nextId; i++){ - this.addScript(i); - } -}, - -removeScript: function(id){ - if((typeof(id) != 'undefined')){ - if((typeof(this.scripts[id]) != 'undefined') && !empty(this.scripts[id]) && (this.scripts[id].status == 3)){ -//SDI('remove:'+this.scripts[id].scriptId); - this.head.removeChild(this.scripts[id].scriptObj); - this.scripts[id] = null; - } - } -}, - -clean: function(){ - for(var i=1; i < this.nextId; i++){ - this.removeScript(i); - } - this.scripts = new Array(); - this.nextId = 1; -} -} - -json.initialize();
\ No newline at end of file diff --git a/frontends/php/js/menu.js b/frontends/php/js/menu.js index 8c0abc6f..93037f58 100644 --- a/frontends/php/js/menu.js +++ b/frontends/php/js/menu.js @@ -59,13 +59,11 @@ function popup_menu (a_items, a_tpl, x, y) { this.n_scroll_left = get_scroll_pos()[0]; this.n_scroll_top = get_scroll_pos()[1]; - if(document.body.clientWidth) - { + if(document.body.clientWidth){ this.n_scr_width = document.body.clientWidth; this.n_scr_height = document.body.clientHeight; } - else - { + else{ this.n_scr_width = document.width; this.n_scr_height = document.height; } @@ -175,7 +173,8 @@ function menu_collapse (n_id) { } } A_MENUS.splice(this.o_root.n_id); - } else { + } + else { // hide all items over the level specified for (n_id = 0; n_id < this.a_index.length; n_id++) { var o_curritem = this.a_index[n_id]; @@ -365,23 +364,25 @@ function menu_item (o_parent, n_order) { this.n_x -= this.getprop('width'); } - if(!o_parent.n_y_direction && !n_order) - { - //alert("w: " +this.getprop('height') +" i:" + (o_parent.a_config.length - item_offset) ); - // calculate menu direction in first element - o_parent.set_y_direction( - (this.getprop('height') * (o_parent.a_config.length - item_offset) + o_parent.n_y + this.getprop('block_top') - > o_root.n_scr_height + o_root.n_scroll_top) - ? -1 : 1 - ); + if(!o_parent.n_y_direction && !n_order){ +//alert("w: " +this.getprop('height') +" i:" + (o_parent.a_config.length - item_offset) ); + +// calculate menu direction in first element +/* calculates Wrongly! <c> Aly + var mi_height = this.getprop('height') * (o_parent.a_config.length - item_offset) + o_parent.n_y + this.getprop('block_top'); + var scr_height = o_root.n_scr_height + o_root.n_scroll_top; + var mi_direction = (mi_height > scr_height)?-1:1; +//*/ + var mi_direction = 1; // always show menu in down direction. + o_parent.set_y_direction(mi_direction); } - + +// TOP this.n_y = n_order ? o_parent.a_children[n_order - 1].n_y + this.getprop('top') : o_parent.n_y + this.getprop('block_top') * (o_parent == o_root ? o_parent.get_y_direction() : 1); - if(-1 == o_parent.get_y_direction() && !n_order) - { + if(-1 == o_parent.get_y_direction() && !n_order){ this.n_y -= this.getprop('height') * (o_parent.a_config.length - item_offset); } @@ -432,7 +433,7 @@ function menu_item (o_parent, n_order) { } function A_MENUS_onclick(){ return A_MENUS[this.o_root_n_id].onclick(this.this_n_id); } -function A_MENUS_onmouseout(){ return A_MENUS[this.o_root_n_id].onmouseout(this.this_n_id); }//false;}// +function A_MENUS_onmouseout(){ return A_MENUS[this.o_root_n_id].onmouseout(this.this_n_id); }// false;}// function A_MENUS_onmouseover(){ return A_MENUS[this.o_root_n_id].onmouseover(this.this_n_id); } function A_MENUS_onmousedown(){ return A_MENUS[this.o_root_n_id].onmousedown(this.this_n_id); } diff --git a/frontends/php/js/menu_scripts.js b/frontends/php/js/menu_scripts.js new file mode 100644 index 00000000..9a17d016 --- /dev/null +++ b/frontends/php/js/menu_scripts.js @@ -0,0 +1,226 @@ +// JavaScript Document +/* +** ZABBIX +** Copyright (C) 2000-2008 SIA Zabbix +** +** 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. +** +** You should have received a copy of the GNU General Public License +** along with this program; if not, write to the Free Software +** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +**/ + +//------------------------------------------------------ +// USERS JS MENU +//------------------------------------------------------ +//var menu_usrgrp_all = new Array(); +//var menu_usrgrp_gui = new Array(); +//var menu_usrgrp_status = new Array(); + +function create_user_menu(e,userid,usr_grp_all_in,usr_grp_gui_in,usr_grp_status_in){ + if(!e) var e = window.event; + +// ALL GROUPS + var grp_add_to = new Array('Add to',null,null,{'outer' : ['pum_o_submenu'],'inner' : ['pum_i_submenu']}); + grp_add_to.push(['Groups',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}]); + + var grp_rmv_frm = new Array('Remove from',null,null,{'outer' : 'pum_o_submenu','inner' : ['pum_i_submenu']}); + grp_rmv_frm.push(['Groups',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}]); + +// add to + for(var i=0; i < menu_usrgrp_all.length; i++){ + if((typeof(menu_usrgrp_all[i]) != 'undefined') && !empty(menu_usrgrp_all[i])){ + var row = menu_usrgrp_all[i]; + var menu_row = new Array(row.name,"users.php?config=0&form=update&grpaction=1&userid="+userid+"&usrgrpid="+row.usrgrpid); + grp_add_to.push(menu_row); + } + } + +// remove from + for(var i=0; i < usr_grp_all_in.length; i++){ + if((typeof(usr_grp_all_in[i]) != 'undefined') && !empty(usr_grp_all_in[i])){ + var row = usr_grp_all_in[i]; + var menu_row = new Array(row.name,"users.php?config=0&form=update&grpaction=0&userid="+userid+"&usrgrpid="+row.usrgrpid); + grp_rmv_frm.push(menu_row); + } + } + +// GUI ACCESS GROUPS + var grp_gui_add_to = new Array('Add to',null,null,{'outer' : ['pum_o_submenu'],'inner' : ['pum_i_submenu']}); + grp_gui_add_to.push(['Groups',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}]); + + var grp_gui_rmv_frm = new Array('Remove from',null,null,{'outer' : 'pum_o_submenu','inner' : ['pum_i_submenu']}); + grp_gui_rmv_frm.push(['Groups',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}]); + +// add to + for(var i=0; i < menu_usrgrp_gui.length; i++){ + if((typeof(menu_usrgrp_gui[i]) != 'undefined') && !empty(menu_usrgrp_gui[i])){ + var row = menu_usrgrp_gui[i]; + var menu_row = new Array(row.name,"users.php?config=0&form=update&grpaction=1&userid="+userid+"&usrgrpid="+row.usrgrpid); + grp_gui_add_to.push(menu_row); + } + } + +// remove from + for(var i=0; i < usr_grp_gui_in.length; i++){ + if((typeof(usr_grp_all_in[i]) != 'undefined') && !empty(usr_grp_gui_in[i])){ + var row = usr_grp_gui_in[i]; + var menu_row = new Array(row.name,"users.php?config=0&form=update&grpaction=0&userid="+userid+"&usrgrpid="+row.usrgrpid); + grp_gui_rmv_frm.push(menu_row); + } + } + +// DISABLED STATUS GROUPS + var grp_status_add_to = new Array('Add to',null,null,{'outer' : ['pum_o_submenu'],'inner' : ['pum_i_submenu']}); + grp_status_add_to.push(['Groups',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}]); + + var grp_status_rmv_frm = new Array('Remove from',null,null,{'outer' : 'pum_o_submenu','inner' : ['pum_i_submenu']}); + grp_status_rmv_frm.push(['Groups',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}]); + +// add to + for(var i=0; i < menu_usrgrp_status.length; i++){ + if((typeof(menu_usrgrp_status[i]) != 'undefined') && !empty(menu_usrgrp_status[i])){ + var row = menu_usrgrp_status[i]; + var menu_row = new Array(row.name,"users.php?config=0&form=update&grpaction=1&userid="+userid+"&usrgrpid="+row.usrgrpid); + grp_status_add_to.push(menu_row); + } + } + +// remove from + for(var i=0; i < usr_grp_status_in.length; i++){ + if((typeof(usr_grp_status_in[i]) != 'undefined') && !empty(usr_grp_status_in[i])){ + var row = usr_grp_status_in[i]; + var menu_row = new Array(row.name,"users.php?config=0&form=update&grpaction=0&userid="+userid+"&usrgrpid="+row.usrgrpid); + grp_status_rmv_frm.push(menu_row); + } + } +//['<span class="red">Disabled users</span>','users.php?config=0&form=update&grpaction=1&userid=2&usrgrpid=9'] + var grp_menu = new Array( + Array('Groups',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}), + grp_add_to, + grp_rmv_frm, + Array('GUI access',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}), + grp_gui_add_to, + grp_gui_rmv_frm, + Array('Status disabled',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}), + grp_status_add_to, + grp_status_rmv_frm + ); + +//to create a copy of array, but not references!!!! +//alert(id+' : '+dashboard_menu[id]); + + + +//alert(dashboard_menu[id]); + show_popup_menu(e,grp_menu,280);// JavaScript Document +} +//--------------------------------------------------------------- + + +//------------------------------------------------------ +// HOSTS JS MENU +//------------------------------------------------------ +//var menu_hstgrp_all = new Array(); + +function create_host_menu(e,hostid,hst_grp_all_in){ + if(!e) var e = window.event; + +// ALL GROUPS + var grp_add_to = new Array('Add to group',null,null,{'outer' : 'pum_o_submenu','inner' : ['pum_i_submenu']}); + grp_add_to.push(['Groups',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}]); + + var grp_rmv_frm = new Array('Remove from group',null,null,{'outer' : 'pum_o_submenu','inner' : ['pum_i_submenu']}); + grp_rmv_frm.push(['Groups',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}]); + +// add to + for(var i=0; i < menu_hstgrp_all.length; i++){ + if((typeof(menu_hstgrp_all[i]) != 'undefined') && !empty(menu_hstgrp_all[i])){ + var row = menu_hstgrp_all[i]; + var menu_row = new Array(row.name,'?add_to_group='+row.groupid+'&hostid='+hostid); + grp_add_to.push(menu_row); + } + } + +// remove from + for(var i=0; i < hst_grp_all_in.length; i++){ + if((typeof(hst_grp_all_in[i]) != 'undefined') && !empty(hst_grp_all_in[i])){ + var row = hst_grp_all_in[i]; + var menu_row = new Array(row.name,'?delete_from_group='+row.groupid+'&hostid='+hostid); + grp_rmv_frm.push(menu_row); + } + } + + + var grp_menu = new Array( + ['Show',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}], + ['Items','items.php?hostid='+hostid,{'tw' : ''}], + ['Triggers','triggers.php?hostid='+hostid,{'tw' : ''}], + ['Graphs','graphs.php?hostid='+hostid,{'tw' : ''}], + ['Groups',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}], + grp_add_to, + grp_rmv_frm + ); + +//to create a copy of array, but not references!!!! +//alert(id+' : '+dashboard_menu[id]); + + + +//alert(dashboard_menu[id]); + show_popup_menu(e,grp_menu,280);// JavaScript Document +} +/* +show_popup_menu(event,new Array(['Show',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}], + ['Items','items.php?hostid=10017',{'tw' : ''}], + ['Triggers','triggers.php?hostid=10017',{'tw' : ''}], + ['Graphs','graphs.php?hostid=10017',{'tw' : ''}], + ['Groups',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}], + ['Add to group',null,null,{'outer' : 'pum_o_submenu','inner' : ['pum_i_submenu']}, + ['Linux servers','?&add_to_group=2&hostid=10017'], + ['Templates','?&add_to_group=1&hostid=10017'], + ['Windows servers','?&add_to_group=3&hostid=10017'] + ], + ['Delete from group',null,null,{'outer' : 'pum_o_submenu','inner' : ['pum_i_submenu']}, + ['Test Group','?&delete_from_group=5&hostid=10017'], + ['ZABBIX Servers','?&delete_from_group=4&hostid=10017'] + ] + ),null); +*/ + + +//------------------------------------------------------ +// DASHBOARD JS MENU +//------------------------------------------------------ + +function create_dashboard_menu(e,id){ + if(!e) var e = window.event; + id='menu_'+id; + + var dbrd_menu = new Array(); + +//to create a copy of array, but not references!!!! +//alert(id+' : '+dashboard_menu[id]); + for(var i=0; i < dashboard_menu[id].length; i++){ + if((typeof(dashboard_menu[id][i]) != 'undefined') && !empty(dashboard_menu[id][i])) + dbrd_menu[i] = dashboard_menu[id][i].clone(); + } + + for(var i=0; i < dashboard_submenu[id].length; i++){ + if((typeof(dashboard_submenu[id][i]) != 'undefined') && !empty(dashboard_submenu[id][i])){ + var row = dashboard_submenu[id][i]; + var menu_row = new Array(row.name,"javascript: rm4favorites('"+row.favobj+"','"+row.favid+"','"+i+"');"); + dbrd_menu[dbrd_menu.length-1].push(menu_row); + } + } +//alert(dashboard_menu[id]); + show_popup_menu(e,dbrd_menu,280);// JavaScript Document +}
\ No newline at end of file diff --git a/frontends/php/js/tree.js b/frontends/php/js/tree.js index 2681dd00..393016c2 100644 --- a/frontends/php/js/tree.js +++ b/frontends/php/js/tree.js @@ -17,6 +17,8 @@ ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. **/ // JavaScript Document +// Tree manipulations class +// author: Aly var tree ={ init : function(){ diff --git a/frontends/php/js/users.js b/frontends/php/js/users.js deleted file mode 100644 index d05aca70..00000000 --- a/frontends/php/js/users.js +++ /dev/null @@ -1,103 +0,0 @@ -// JavaScript Document -//var menu_usrgrp_all = new Array(); -//var menu_usrgrp_gui = new Array(); -//var menu_usrgrp_status = new Array(); - -function create_user_menu(e,userid,usr_grp_all_in,usr_grp_gui_in,usr_grp_status_in){ - if(!e) var e = window.event; - -// ALL GROUPS - var grp_add_to = new Array('Add to',null,null,{'outer' : ['pum_o_submenu'],'inner' : ['pum_i_submenu']}); - grp_add_to.push(['Groups',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}]); - - var grp_rmv_frm = new Array('Remove from',null,null,{'outer' : 'pum_o_submenu','inner' : ['pum_i_submenu']}); - grp_rmv_frm.push(['Groups',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}]); - -// add to - for(var i=0; i < menu_usrgrp_all.length; i++){ - if((typeof(menu_usrgrp_all[i]) != 'undefined') && !empty(menu_usrgrp_all[i])){ - var row = menu_usrgrp_all[i]; - var menu_row = new Array(row.name,"users.php?config=0&form=update&grpaction=1&userid="+userid+"&usrgrpid="+row.usrgrpid); - grp_add_to.push(menu_row); - } - } - -// remove from - for(var i=0; i < usr_grp_all_in.length; i++){ - if((typeof(usr_grp_all_in[i]) != 'undefined') && !empty(usr_grp_all_in[i])){ - var row = usr_grp_all_in[i]; - var menu_row = new Array(row.name,"users.php?config=0&form=update&grpaction=0&userid="+userid+"&usrgrpid="+row.usrgrpid); - grp_rmv_frm.push(menu_row); - } - } - -// GUI ACCESS GROUPS - var grp_gui_add_to = new Array('Add to',null,null,{'outer' : ['pum_o_submenu'],'inner' : ['pum_i_submenu']}); - grp_gui_add_to.push(['Groups',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}]); - - var grp_gui_rmv_frm = new Array('Remove from',null,null,{'outer' : 'pum_o_submenu','inner' : ['pum_i_submenu']}); - grp_gui_rmv_frm.push(['Groups',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}]); - -// add to - for(var i=0; i < menu_usrgrp_gui.length; i++){ - if((typeof(menu_usrgrp_gui[i]) != 'undefined') && !empty(menu_usrgrp_gui[i])){ - var row = menu_usrgrp_gui[i]; - var menu_row = new Array(row.name,"users.php?config=0&form=update&grpaction=1&userid="+userid+"&usrgrpid="+row.usrgrpid); - grp_gui_add_to.push(menu_row); - } - } - -// remove from - for(var i=0; i < usr_grp_gui_in.length; i++){ - if((typeof(usr_grp_all_in[i]) != 'undefined') && !empty(usr_grp_gui_in[i])){ - var row = usr_grp_gui_in[i]; - var menu_row = new Array(row.name,"users.php?config=0&form=update&grpaction=0&userid="+userid+"&usrgrpid="+row.usrgrpid); - grp_gui_rmv_frm.push(menu_row); - } - } - -// DISABLED STATUS GROUPS - var grp_status_add_to = new Array('Add to',null,null,{'outer' : ['pum_o_submenu'],'inner' : ['pum_i_submenu']}); - grp_status_add_to.push(['Groups',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}]); - - var grp_status_rmv_frm = new Array('Remove from',null,null,{'outer' : 'pum_o_submenu','inner' : ['pum_i_submenu']}); - grp_status_rmv_frm.push(['Groups',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}]); - -// add to - for(var i=0; i < menu_usrgrp_status.length; i++){ - if((typeof(menu_usrgrp_status[i]) != 'undefined') && !empty(menu_usrgrp_status[i])){ - var row = menu_usrgrp_status[i]; - var menu_row = new Array(row.name,"users.php?config=0&form=update&grpaction=1&userid="+userid+"&usrgrpid="+row.usrgrpid); - grp_status_add_to.push(menu_row); - } - } - -// remove from - for(var i=0; i < usr_grp_status_in.length; i++){ - if((typeof(usr_grp_status_in[i]) != 'undefined') && !empty(usr_grp_status_in[i])){ - var row = usr_grp_status_in[i]; - var menu_row = new Array(row.name,"users.php?config=0&form=update&grpaction=0&userid="+userid+"&usrgrpid="+row.usrgrpid); - grp_status_rmv_frm.push(menu_row); - } - } -//['<span class="red">Disabled users</span>','users.php?config=0&form=update&grpaction=1&userid=2&usrgrpid=9'] - var grp_menu = new Array( - Array('Groups',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}), - grp_add_to, - grp_rmv_frm, - Array('GUI access',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}), - grp_gui_add_to, - grp_gui_rmv_frm, - Array('Status disabled',null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}), - grp_status_add_to, - grp_status_rmv_frm - ); - -//to create a copy of array, but not references!!!! -//alert(id+' : '+dashboard_menu[id]); - - - -//alert(dashboard_menu[id]); - show_popup_menu(e,grp_menu,280);// JavaScript Document -}
\ No newline at end of file |