diff options
-rw-r--r-- | utils/forms.php | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/utils/forms.php b/utils/forms.php index 3d1050a..d946c34 100644 --- a/utils/forms.php +++ b/utils/forms.php @@ -209,20 +209,33 @@ class ImageComboBox { public function render($indent = "") { - $width = 64; + $width = 100; $str = $indent . "<div class=\"input\">\n"; $str .= $indent . " <div class=\"label\">".$this->label."</div>\n"; $str .= $indent . " <div class=\"widget\">\n"; - $str .= $indent . " <div style=\"width:200px;overflow:scroll;\">\n"; - $str .= $indent . " <div style=\"width:".($width + 6)*sizeof($this->values)."px;\">\n"; - $str .= $indent . " <input id=\"".$this->name."\" name=\"vars[".$this->name."]\" type=\"hidden\" value=\"".$this->value."\"/>\n"; - + $str .= $indent . " <script type=\"text/javascript\">\n"; + $str .= $indent . " function setSelection(value)\n"; + $str .= $indent . " {\n"; + $str .= $indent . " document.getElementById('".$this->name."').value = value\n"; + $str .= $indent . " var container = document.getElementById('icons');\n"; + $str .= $indent . " var icons = document.getElementsByName('icon');\n"; + $str .= $indent . " for(i = 0; i < icons.length; i++) {\n"; + $str .= $indent . " if(icons[i].src == value) icons[i].width = ".$width.";\n"; + $str .= $indent . " else icons[i].width = ".($width - 10).";\n"; + // $str .= $indent . " if(icons[i].src == value) icons[i].style.border = '10px blue';\n"; + // $str .= $indent . " else { icons[i].style.border = '0px' }\n"; + $str .= $indent . " }\n"; + $str .= $indent . " }\n"; + $str .= $indent . " </script>\n"; + $str .= $indent . " <div style=\"width:300px;overflow:scroll;\">\n"; + $str .= $indent . " <div id=\"icons\" style=\"width:".($width + 6)*sizeof($this->values)."px;\">\n"; + $str .= $indent . " <input id=\"".$this->name."\" name=\"vars[".$this->name."]\" type=\"hidden\" value=\"\"/>\n"; foreach($this->values as $k => $v) { - $str .= $indent . " <img src=\"".$v."\" style=\"max-width:".$width."px;\"\n"; - $str .= $indent . " onclick=\"document.getElementById('".$this->name."').value='".$v."'\"/>\n"; + $str .= $indent . " <img name=\"icon\" src=\"".$v."\" style=\"max-width: ".$width."\" onclick=\"setSelection('".$v."')\"/>\n"; } $str .= $indent . " </div>\n"; // box $str .= $indent . " </div>\n"; // overflow + $str .= $indent . " <script type=\"text/javascript\">setSelection('".$this->value."');</script>\n"; $str .= $indent . " </div>\n"; // widget $str .= $indent . "</div>\n"; // input return $str; |