diff --git a/html/style-r692.css b/html/style-r692.css index cf906bd96..b59524158 100644 --- a/html/style-r692.css +++ b/html/style-r692.css @@ -562,8 +562,9 @@ div.autocomplete { margin:0px; padding:1px; text-align:left; - position:absolute; - width:375px; + position:relative; + top:-3px; + width:377px; } div.autocomplete em { color:#0000FF; @@ -573,6 +574,7 @@ div.autocomplete ul { list-style-type:none; background-color:#FFFFFF; border:1px solid #888; + width: 375px; margin:0px; padding:0px; } @@ -859,7 +861,7 @@ box-shadow: 10px 10px 5px #888; div.inner_box { background-color: #DCE1EF; font-family: Arial, Helvetica, "Liberation Sans", FreeSans, sans-serif; - font-family: OpenSansRegular; + font-family: 'OpenSansRegular'; /*! font-family: 'SansationLight'; */ /*! padding:2px; */ margin:0px; @@ -2151,4 +2153,39 @@ div.content a.arrow { .label_item { width: 500px; display:block; +} +/* + * Select box : list of actions + */ +.select_box { + border:solid 0.5px darkblue; + background:white; + width:455px; + max-width:250px; + position:relative; + z-index:3; + padding:3px; + margin:0px; + margin-top:2px; + display:none; +} +div.select_box ul { + list-style:none; + padding:2px; + margin:1px; + width:100%; +} +div.select_box ul li { + padding-top:2px; + padding-bottom:2px; + margin:2px; +} +div.select_box a { + text-decoration:none; + color : darkblue; + display:block; +} +div.select_box a:hover,div.select_box ul li:hover { + background-color : lightgoldenrodyellow; + color:brown; } \ No newline at end of file diff --git a/include/lib/select_box.class.php b/include/lib/select_box.class.php new file mode 100644 index 000000000..6a6689840 --- /dev/null +++ b/include/lib/select_box.class.php @@ -0,0 +1,127 @@ +id=$p_id; + $this->item=array(); + $this->value=$value; + $this->cnt=0; + $this->default_value=-1; + $this->style_box=""; + } + + function input() + { + $javascript=sprintf('$("%s_bt").onclick=function() { + try { + var newDiv=$("select_box%s"); + var pos=$("%s_bt").cumulativeOffset(); + newDiv.setStyle({display:"block",position:"absolute",top:pos.top+25+"px",left:pos.left+5+"px"}); + + } catch(e) { + alert(e.message); + } +} +', $this->id, $this->id, $this->id, $this->id); + + // display the button + printf('', + $this->id, $this->value); + printf('', $this->id, + $this->id, $this->default_value); + printf('
', + $this->id, $this->style_box); + + + // Print the list of possible options + echo ""; + echo "
"; + + // javascript : onclick on button + echo ""; + } + + function add_url($label, $url) + { + $this->item[$this->cnt]['label']=$label; + $this->item[$this->cnt]['url']=$url; + $this->item[$this->cnt]['type']="url"; + $this->cnt++; + } + + function add_javascript($label, $javascript) + { + $this->item[$this->cnt]['label']=$label; + $this->item[$this->cnt]['javascript']=$javascript.";$('select_box{$this->id}').hide()"; + $this->item[$this->cnt]['type']="javascript"; + $this->cnt++; + } + + function add_value($label, $value) + { + $this->item[$this->cnt]['label']=$label; + $this->item[$this->cnt]['update']=$value; + $this->item[$this->cnt]['javascript']=sprintf(" $('%s').value='%s';$('%s_bt').value='%s';$('select_box%s').hide()", + $this->id, $value, $this->id, $label, $this->id); + $this->item[$this->cnt]['type']='value'; + $this->cnt++; + } + +} diff --git a/scenario/test-iselect-button.php b/scenario/test-iselect-button.php new file mode 100644 index 000000000..ae37bed77 --- /dev/null +++ b/scenario/test-iselect-button.php @@ -0,0 +1,53 @@ + + + + + + + + + add_url("List","?id=5"); + $a->add_javascript("Hello","alert('hello')"); + $a->add_value("Value = 10",10); + $a->add_value("Value = 1",1); + $a->add_value("Value = 15",15); + + echo $a->input(); + + ?> +