diff options
| author | artem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-08-23 13:28:42 +0000 |
|---|---|---|
| committer | artem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-08-23 13:28:42 +0000 |
| commit | eb821e44cd74bcf26ec65976f495a6c6d2fdd486 (patch) | |
| tree | 57343feccd81333fd8751b5ae198da8a5623f2f7 /frontends/php | |
| parent | 674e399c0e58a78d3308df9e345419cf53008144 (diff) | |
| download | zabbix-eb821e44cd74bcf26ec65976f495a6c6d2fdd486.tar.gz zabbix-eb821e44cd74bcf26ec65976f495a6c6d2fdd486.tar.xz zabbix-eb821e44cd74bcf26ec65976f495a6c6d2fdd486.zip | |
- merged rev. 4596:4597 of branches/1.4.j/ (Artem) [improved some javascripts, minor changes]
git-svn-id: svn://svn.zabbix.com/trunk@4643 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php')
| -rw-r--r-- | frontends/php/include/page_header.php | 26 | ||||
| -rw-r--r-- | frontends/php/include/services.inc.php | 6 | ||||
| -rw-r--r-- | frontends/php/js/common.js | 46 | ||||
| -rw-r--r-- | frontends/php/js/services.js | 341 | ||||
| -rw-r--r-- | frontends/php/services_form.php | 22 |
5 files changed, 237 insertions, 204 deletions
diff --git a/frontends/php/include/page_header.php b/frontends/php/include/page_header.php index 88038161..9d9a2caf 100644 --- a/frontends/php/include/page_header.php +++ b/frontends/php/include/page_header.php @@ -147,32 +147,34 @@ COpt::profiling_start("page"); "default_page_id" => 0, "forse_disable_subnodes"=> true, "pages"=>array( - array("url"=>"config.php" ,"label"=>S_GENERAL , + array("url"=>"config.php" ,"label"=>S_GENERAL, "sub_pages"=>array("image.php") ), - array("url"=>"httpconf.php" ,"label"=>S_WEB , + array("url"=>"httpconf.php" ,"label"=>S_WEB, "sub_pages"=>array("popup_httpstep.php") ), - array("url"=>"hosts.php" ,"label"=>S_HOSTS ), - array("url"=>"items.php" ,"label"=>S_ITEMS ), - array("url"=>"triggers.php" ,"label"=>S_TRIGGERS , + array("url"=>"hosts.php" ,"label"=>S_HOSTS), + array("url"=>"items.php" ,"label"=>S_ITEMS, + "sub_pages"=>array("tr_logform.php") + ), + array("url"=>"triggers.php" ,"label"=>S_TRIGGERS, "sub_pages"=>array("popup_trexpr.php") ), - array("url"=>"actionconf.php" ,"label"=>S_ACTIONS ), - array("url"=>"sysmaps.php" ,"label"=>S_MAPS , + array("url"=>"actionconf.php" ,"label"=>S_ACTIONS), + array("url"=>"sysmaps.php" ,"label"=>S_MAPS, "sub_pages"=>array("sysmap.php") ), - array("url"=>"graphs.php" ,"label"=>S_GRAPHS , + array("url"=>"graphs.php" ,"label"=>S_GRAPHS, "sub_pages"=>array("popup_gitem.php") ), - array("url"=>"screenconf.php" ,"label"=>S_SCREENS , + array("url"=>"screenconf.php" ,"label"=>S_SCREENS, "sub_pages"=>array("screenedit.php") ), - array("url"=>"services.php" ,"label"=>S_IT_SERVICES , + array("url"=>"services.php" ,"label"=>S_IT_SERVICES, "sub_pages"=>array("services_form.php") ), - array('url'=>'discoveryconf.php','label'=>S_DISCOVERY ), - array("url"=>"exp_imp.php" ,"label"=>S_EXPORT_IMPORT ), + array('url'=>'discoveryconf.php','label'=>S_DISCOVERY), + array("url"=>"exp_imp.php" ,"label"=>S_EXPORT_IMPORT), array("url"=>"popup.php") ) ), diff --git a/frontends/php/include/services.inc.php b/frontends/php/include/services.inc.php index c9be5f08..32367ce8 100644 --- a/frontends/php/include/services.inc.php +++ b/frontends/php/include/services.inc.php @@ -720,11 +720,7 @@ $dt = 0; } return ; } - - function closeform(){ - zbx_add_post_js('closeform();'); - } - + function del_empty_nodes($services){ do{ unset($retry); diff --git a/frontends/php/js/common.js b/frontends/php/js/common.js index 6a3aa2b1..3cffa7ac 100644 --- a/frontends/php/js/common.js +++ b/frontends/php/js/common.js @@ -19,10 +19,26 @@ var OP = window.opera?true:false; var IE = ((!OP) && (document.all))?true:false; +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) { - alert("DEBUG INFO: \n\r" + msg); + alert("DEBUG INFO: " + msg); } function close_window() @@ -225,3 +241,31 @@ function resizeiframe(id){ } iframe.style.height = (height)+'px'; } + +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 isset(obj){ + return (typeof(obj) != 'undefined'); +} + +function empty(obj){ + if(isset(obj) && obj) return true; + return false; +} + +function is_number(obj){ + return (typeof(obj) == 'number'); +} + +function is_string(obj){ + return (typeof(obj) == 'string'); +} diff --git a/frontends/php/js/services.js b/frontends/php/js/services.js index 6b42a8a2..2d5cbb64 100644 --- a/frontends/php/js/services.js +++ b/frontends/php/js/services.js @@ -1,176 +1,167 @@ -// JavaScript Document
-function call_menu(evnt,id,name){
- if(id != 0){
- show_popup_menu(evnt,
- [
- [name,null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}],
- ['Add Service',"javascript: openWinCentered('services_form.php?sform=1&parentid="+id+"&parentname="+name+"','ServiceForm',760,540,'titlebar=no, resizable=yes, scrollbars=yes, dialog=yes');", null,{'outer' : ['pum_o_item'],'inner' : ['pum_i_item']}],
- ['Edit Service',"javascript: openWinCentered('services_form.php?sform=1&serviceid="+id+"','ServiceForm',760,540,'titlebar=no, resizable=yes, scrollbars=yes, dialog=yes');",null,{'outer' : ['pum_o_item'],'inner' : ['pum_i_item']}],
- ['Delete Service',"javascript: if(Confirm('Delete selected services?')){ openWinCentered('services_form.php?saction=1&delete=1&serviceid="+id+"','ServiceForm',400,300,'titlebar=no, resizable=yes, scrollbars=yes, dialog=yes');}",null,{'outer' : ['pum_o_item'],'inner' : ['pum_i_item']}]
- ],120);
- } else {
- show_popup_menu(evnt,
- [
- [name,null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}],
- ['Add Service',"javascript: openWinCentered('services_form.php?sform=1&parentid="+id+"&parentname="+name+"','ServiceForm',760,540,'titlebar=no, resizable=yes, scrollbars=yes, dialog=yes');", null,{'outer' : ['pum_o_item'],'inner' : ['pum_i_item']}]
- ],120);
- }
-return false;
-}
-
-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 services_showsla(sla){
-try{
- if(sla.checked){
- document.getElementById('SLA').style.display = 'none';
- } else {
- document.getElementById('SLA').style.display = (!IE || OP)?('table-row'):('block');
- }
-} catch(e){
- alert(e);
-}
-}
-
-function add_child_service(name,serviceid,trigger,triggerid){
-// alert(name+','+serviceid+','+trigger+','+triggerid);
- var tr = document.createElement('tr');
- tr.setAttribute('class','even_row');
-
- var td = document.createElement('td');
-
- var chkbx = document.createElement('input');
- chkbx.type = 'checkbox';
- chkbx.value = serviceid;
- chkbx.name = 'childs['+serviceid+'][serviceid]';
-
- var input = document.createElement('input');
- input.setAttribute('type','hidden');
- input.setAttribute('value',serviceid);
- input.setAttribute('name','childs['+serviceid+'][serviceid]');
-
- td.appendChild(chkbx);
- td.appendChild(input);
- tr.appendChild(td);
-
- var td = document.createElement('td');
-
- var url = document.createElement('a');
- url.setAttribute('href','services_form.php?sform=1&serviceid='+serviceid);
- url.setAttribute('class','action');
- url.appendChild(document.createTextNode(name));
-
- var input = document.createElement('input');
- input.setAttribute('type','hidden');
- input.setAttribute('value',name);
- input.setAttribute('name','childs['+serviceid+'][name]');
-
- td.appendChild(url);
- td.appendChild(input);
- tr.appendChild(td);
-
- var td = document.createElement('td');
-
- var chkbx = document.createElement('input');
- chkbx.type = 'checkbox';
- chkbx.value = '1';
- chkbx.name = 'childs['+serviceid+'][soft]';
-
- td.appendChild(chkbx);
- tr.appendChild(td);
-
- var td = document.createElement('td');
-
- var input = document.createElement('input');
- input.setAttribute('type','hidden');
- input.setAttribute('value',triggerid);
- input.setAttribute('name','childs['+serviceid+'][triggerid]');
-
- td.appendChild(document.createTextNode(trigger));
- td.appendChild(input);
- tr.appendChild(td);
-
- document.getElementById('service_childs').firstChild.appendChild(tr);
-}
-
-function check_childs(form_name, chkMain, chkName){
- var frmForm = document.forms[form_name];
- var value = frmForm.elements[chkName].checked;
-
- for (var i=0; i < frmForm.length; i++){
- if(frmForm.elements[i].type != 'checkbox') continue;
- if(frmForm.elements[i].disabled == true) continue;
-
- var splt = frmForm.elements[i].name.split('[');
- var name = splt[0];
- var serviceid = splt[1];
-
- if(chkName && chkName == name) continue;
- if(chkMain && chkMain != name) continue;
-
- if(frmForm.elements[i].name != chkMain+'['+serviceid+'[serviceid]') continue;
- frmForm.elements[i].checked = value;
- }
-}
-
-function remove_childs(form_name,rmvbyname,tag){
- tag = tag.toUpperCase();
- var frmForm = document.forms[form_name];
- for (var i=0; i < frmForm.length; i++){
- if(frmForm.elements[i].type != 'checkbox') continue;
- if(frmForm.elements[i].disabled == true) continue;
- if(frmForm.elements[i].checked != true) continue;
-
- var splt = frmForm.elements[i].name.split('[');
- var name = splt[0];
- var serviceid = splt[1];
-
- if(rmvbyname && rmvbyname != name) continue;
- if(frmForm.elements[i].name != rmvbyname+'['+serviceid+'[serviceid]') continue;
-
- remove_element(frmForm.elements[i],tag);
- i--;
- }
-}
-
-function remove_element(elmnt,tag){
- if(elmnt.nodeName == tag){
- elmnt.parentNode.removeChild(elmnt);
- } else if(elmnt.nodeType == 9){
- return;
- } else {
- remove_element(elmnt.parentNode,tag);
- }
-}
-
-
-function display_element(name){
- var elmnt = document.getElementById(name);
- if(typeof(elmnt) == 'undefined'){
- return;
- }else if(elmnt.offsetWidth == 0){
- elmnt.style.display = (!IE || OP)?("table-row"):('block');
- }else {
- elmnt.style.display = 'none';
- }
-}
-
-function closeform(){
- var msg="";
- try{
- msg = (IE)?(document.getElementsByTagName('p')[0].innerText):(document.getElementsByTagName('p')[0].textContent);
- } catch(e){
- alert(e);
- }
- opener.location.replace('services.php?msg='+encodeURI(msg));
- self.close();
+// JavaScript Document +function call_menu(evnt,id,name){ + if(id != 0){ + show_popup_menu(evnt, + [ + [name,null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}], + ['Add Service',"javascript: openWinCentered('services_form.php?sform=1&parentid="+id+"&parentname="+name+"','ServiceForm',760,540,'titlebar=no, resizable=yes, scrollbars=yes, dialog=no');", null,{'outer' : ['pum_o_item'],'inner' : ['pum_i_item']}], + ['Edit Service',"javascript: openWinCentered('services_form.php?sform=1&serviceid="+id+"','ServiceForm',760,540,'titlebar=no, resizable=yes, scrollbars=yes, dialog=no');",null,{'outer' : ['pum_o_item'],'inner' : ['pum_i_item']}], + ['Delete Service',"javascript: if(Confirm('Delete selected services?')){ openWinCentered('services_form.php?saction=1&delete=1&serviceid="+id+"','ServiceForm',400,300,'titlebar=no, resizable=yes, scrollbars=yes, dialog=no');}",null,{'outer' : ['pum_o_item'],'inner' : ['pum_i_item']}] + ],120); + } else { + show_popup_menu(evnt, + [ + [name,null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}], + ['Add Service',"javascript: openWinCentered('services_form.php?sform=1&parentid="+id+"&parentname="+name+"','ServiceForm',760,540,'titlebar=no, resizable=yes, scrollbars=yes, dialog=no');", null,{'outer' : ['pum_o_item'],'inner' : ['pum_i_item']}] + ],120); + } +return false; +} + +function services_showsla(sla){ +try{ + if(sla.checked){ + document.getElementById('SLA').style.display = 'none'; + } else { + document.getElementById('SLA').style.display = (!IE || OP)?('table-row'):('block'); + } +} catch(e){ + alert(e); +} +} + +function add_child_service(name,serviceid,trigger,triggerid){ +// alert(name+','+serviceid+','+trigger+','+triggerid); + var tr = document.createElement('tr'); + document.getElementById('service_childs').firstChild.appendChild(tr); + + var classattr = (IE)?'className':'class'; + + tr.setAttribute(classattr,'even_row'); + + var td = document.createElement('td'); + + var chkbx = document.createElement('input'); + chkbx.type = 'checkbox'; + chkbx.value = serviceid; + chkbx.name = 'childs['+serviceid+'][serviceid]'; + + var input = document.createElement('input'); + input.setAttribute('type','hidden'); + input.setAttribute('value',serviceid); + input.setAttribute('name','childs['+serviceid+'][serviceid]'); + + td.appendChild(chkbx); + td.appendChild(input); + tr.appendChild(td); + + var td = document.createElement('td'); + + var url = document.createElement('a'); + url.setAttribute('href','services_form.php?sform=1&serviceid='+serviceid); + url.setAttribute(classattr,'action'); + url.appendChild(document.createTextNode(name)); + + var input = document.createElement('input'); + input.setAttribute('type','hidden'); + input.setAttribute('value',name); + input.setAttribute('name','childs['+serviceid+'][name]'); + + td.appendChild(url); + td.appendChild(input); + tr.appendChild(td); + + var td = document.createElement('td'); + + var chkbx = document.createElement('input'); + chkbx.type = 'checkbox'; + chkbx.value = '1'; + chkbx.name = 'childs['+serviceid+'][soft]'; + + td.appendChild(chkbx); + tr.appendChild(td); + + var td = document.createElement('td'); + + var input = document.createElement('input'); + input.setAttribute('type','hidden'); + input.setAttribute('value',triggerid); + input.setAttribute('name','childs['+serviceid+'][triggerid]'); + + td.appendChild(document.createTextNode(trigger)); + td.appendChild(input); + tr.appendChild(td); +} + +function check_childs(form_name, chkMain, chkName){ + var frmForm = document.forms[form_name]; + var value = frmForm.elements[chkName].checked; + + for (var i=0; i < frmForm.length; i++){ + if(frmForm.elements[i].type != 'checkbox') continue; + if(frmForm.elements[i].disabled == true) continue; + + var splt = frmForm.elements[i].name.split('['); + var name = splt[0]; + var serviceid = splt[1]; + + if(chkName && chkName == name) continue; + if(chkMain && chkMain != name) continue; + + if(frmForm.elements[i].name != chkMain+'['+serviceid+'[serviceid]') continue; + frmForm.elements[i].checked = value; + } +} + +function remove_childs(form_name,rmvbyname,tag){ + tag = tag.toUpperCase(); + var frmForm = document.forms[form_name]; + for (var i=0; i < frmForm.length; i++){ + if(frmForm.elements[i].type != 'checkbox') continue; + if(frmForm.elements[i].disabled == true) continue; + if(frmForm.elements[i].checked != true) continue; + + var splt = frmForm.elements[i].name.split('['); + var name = splt[0]; + var serviceid = splt[1]; + + if(rmvbyname && rmvbyname != name) continue; + if(frmForm.elements[i].name != rmvbyname+'['+serviceid+'[serviceid]') continue; + + remove_element(frmForm.elements[i],tag); + i--; + } +} + +function remove_element(elmnt,tag){ + if(elmnt.nodeName == tag){ + elmnt.parentNode.removeChild(elmnt); + } else if(elmnt.nodeType == 9){ + return; + } else { + remove_element(elmnt.parentNode,tag); + } +} + + +function display_element(name){ + var elmnt = document.getElementById(name); + if(typeof(elmnt) == 'undefined'){ + return; + }else if(elmnt.offsetWidth == 0){ + elmnt.style.display = (!IE || OP)?("table-row"):('block'); + }else { + elmnt.style.display = 'none'; + } +} + +function closeform(page){ + var msg=""; + try{ + msg = (IE)?(document.getElementsByTagName('p')[0].innerText):(document.getElementsByTagName('p')[0].textContent); + } catch(e){ + alert(e); + } + opener.location.replace('services.php?msg='+encodeURI(msg)); + self.close(); }
\ No newline at end of file diff --git a/frontends/php/services_form.php b/frontends/php/services_form.php index aff6e1e2..9b240e8b 100644 --- a/frontends/php/services_form.php +++ b/frontends/php/services_form.php @@ -154,7 +154,7 @@ if(isset($_REQUEST['saction'])){ show_messages($result, S_TRIGGER_ADDED, S_CANNOT_ADD_TRIGGER); } if($result){ - closeform(); + zbx_add_post_js('closeform("services.php");'); include_once "include/page_footer.php"; } } @@ -401,14 +401,14 @@ if(isset($_REQUEST['sform'])){ array_push($service_times, $stime); } //links - $query = 'SELECT DISTINCT - sl.linkid, sl.soft, sl.serviceupid, sl.servicedownid, - s1.name as serviceupname, s2.name as servicedownname - FROM services s1, services s2, services_links sl - WHERE sl.serviceupid=s1.serviceid - AND sl.servicedownid=s2.serviceid - AND NOT(sl.soft=1) - AND sl.servicedownid='.$service['serviceid']; + $query = 'SELECT DISTINCT '. + ' sl.linkid, sl.soft, sl.serviceupid, sl.servicedownid, '. + ' s1.name as serviceupname, s2.name as servicedownname '. + ' FROM services s1, services s2, services_links sl '. + ' WHERE sl.serviceupid=s1.serviceid '. + ' AND sl.servicedownid=s2.serviceid '. + ' AND NOT(sl.soft=1) '. + ' AND sl.servicedownid='.$service['serviceid']; if($link=DBFetch(DBSelect($query))){ $parentid = $link["serviceupid"]; @@ -479,7 +479,7 @@ if(isset($_REQUEST['sform'])){ $cb = new CButton('select_parent',S_CHANGE); $cb->SetType('button'); - $cb->SetAction("javascript: openWinCentered('services_form.php?pservices=1".url_param('serviceid')."','ZBX_Services_List',720,420,'toolbar=0, menubar=0, resizable=0');"); + $cb->SetAction("javascript: openWinCentered('services_form.php?pservices=1".url_param('serviceid')."','ZBX_Services_List',740,420,'scrollbars=1, toolbar=0, menubar=0, resizable=1, dialog=0');"); $frmService->AddRow('Parent Service',array($ctb,$cb)); //---------- @@ -533,7 +533,7 @@ if(isset($_REQUEST['sform'])){ $cb = new CButton('add_child_service',S_ADD); $cb->SetType('button'); - $cb->SetAction("javascript: openWinCentered('services_form.php?cservices=1".url_param('serviceid')."','ZBX_Services_List',620,520,'toolbar=0, menubar=0, resizable=0');"); + $cb->SetAction("javascript: openWinCentered('services_form.php?cservices=1".url_param('serviceid')."','ZBX_Services_List',640,520,'scrollbars=1, toolbar=0, menubar=0, resizable=0');"); $cb2 = new CButton('del_child_service',S_REMOVE); $cb2->SetType('button'); |
