diff options
| author | artem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2008-06-27 11:37:58 +0000 |
|---|---|---|
| committer | artem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2008-06-27 11:37:58 +0000 |
| commit | c6b7abe59badee7d2fe3608e95a340f6b366c0ff (patch) | |
| tree | b3e435ed37bcedbdaa43af84ad29c51062ba665c /frontends | |
| parent | af1943c6cdf9e639e987a63fafa06c200d7f5936 (diff) | |
| download | zabbix-c6b7abe59badee7d2fe3608e95a340f6b366c0ff.tar.gz zabbix-c6b7abe59badee7d2fe3608e95a340f6b366c0ff.tar.xz zabbix-c6b7abe59badee7d2fe3608e95a340f6b366c0ff.zip | |
- [DEV-177] fix checkbox range selection (Artem)
git-svn-id: svn://svn.zabbix.com/trunk@5804 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends')
| -rw-r--r-- | frontends/php/include/page_header.php | 4 | ||||
| -rw-r--r-- | frontends/php/js/chkbxrange.js | 81 |
2 files changed, 83 insertions, 2 deletions
diff --git a/frontends/php/include/page_header.php b/frontends/php/include/page_header.php index 57372097..6d0591f1 100644 --- a/frontends/php/include/page_header.php +++ b/frontends/php/include/page_header.php @@ -500,7 +500,7 @@ COpt::compare_files_with_menu($ZBX_MENU); if($lst_nodes->ItemsCount() > 1){ $node_form = new CForm(); - $node_form->AddItem(array(S_CURRENT_NODE,$lst_nodes)); + $node_form->AddItem(array(new CSpan(S_CURRENT_NODE,'textcolorstyles'),$lst_nodes)); unset($lst_nodes); if(!defined('ZBX_DISABLE_SUBNODES')){ @@ -510,7 +510,7 @@ COpt::compare_files_with_menu($ZBX_MENU); $cmd_show_subnodes->AddItem(0, S_CURRENT_NODE_ONLY); $cmd_show_subnodes->AddItem(1, S_WITH_SUBNODES); - $node_form->AddItem(array(SPACE, S_SHOW, $cmd_show_subnodes)); + $node_form->AddItem(array(SPACE, new CSpan(S_SHOW,'textcolorstyles'), $cmd_show_subnodes)); } // No need for the button anymore diff --git a/frontends/php/js/chkbxrange.js b/frontends/php/js/chkbxrange.js new file mode 100644 index 00000000..ba57b3c8 --- /dev/null +++ b/frontends/php/js/chkbxrange.js @@ -0,0 +1,81 @@ +// JavaScript Document + +var chkbx_range_ext = { +startbox: null, // start checkbox obj +startbox_name: null, // start checkbox name +chkboxes: new Array(), // ckbx list + +init: function(){ + var chk_bx = document.getElementsByTagName('input'); + for(var i=0; i < chk_bx.length; i++){ + if((typeof(chk_bx[i]) != 'undefined') && (chk_bx[i].type.toLowerCase() == 'checkbox')){ + this.implement(chk_bx[i]); + } + } +}, + +implement: function(obj){ + var obj_name = obj.name.split('[')[0]; + + if(typeof(this.chkboxes[obj_name]) == 'undefined') this.chkboxes[obj_name] = new Array(); + this.chkboxes[obj_name].push(obj); + + addListener(obj, 'click', this.check.bindAsEventListener(this), false); +}, + +check: function(e){ + var e = e || window.event; + if(!e.ctrlKey) return true; + var obj = eventTarget(e); + + if((typeof(obj) != 'undefined') && (obj.type.toLowerCase() == 'checkbox')){ + var obj_name = obj.name.split('[')[0]; + + if(!is_null(this.startbox) && (this.startbox_name == obj_name) && (obj.name != this.startbox.name)){ + var chkbx_list = this.chkboxes[obj_name]; + var flag = false; + + for(var i=0; i < chkbx_list.length; i++){ + if(typeof(chkbx_list[i]) !='undefined'){ +//alert(obj.name+' == '+chkbx_list[i].name); + if(flag){ + chkbx_list[i].checked = this.startbox.checked; + } + + if(obj.name == chkbx_list[i].name) break; + if(this.startbox.name == chkbx_list[i].name) flag = true; + } + } + if(flag){ + this.startbox = null; + this.startbox_name = null; + return true; + } + else{ + for(var i=chkbx_list.length-1; i >= 0; i--){ + if(typeof(chkbx_list[i]) !='undefined'){ +//alert(obj.name+' == '+chkbx_list[i].name); + if(flag){ + chkbx_list[i].checked = this.startbox.checked; + } + + if(obj.name == chkbx_list[i].name){ + this.startbox = null; + this.startbox_name = null; + return true; + } + if(this.startbox.name == chkbx_list[i].name) flag = true; + } + } + } + + } + else{ + if(!is_null(this.startbox)) this.startbox.checked = !this.startbox.checked; + + this.startbox = obj; + this.startbox_name = obj_name; + } + } +} +}
\ No newline at end of file |
