summaryrefslogtreecommitdiffstats
path: root/frontends
diff options
context:
space:
mode:
authorartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2008-06-27 11:37:58 +0000
committerartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2008-06-27 11:37:58 +0000
commitc6b7abe59badee7d2fe3608e95a340f6b366c0ff (patch)
treeb3e435ed37bcedbdaa43af84ad29c51062ba665c /frontends
parentaf1943c6cdf9e639e987a63fafa06c200d7f5936 (diff)
downloadzabbix-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.php4
-rw-r--r--frontends/php/js/chkbxrange.js81
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