# UI functions specific to Virtualmin
# virtualmin_ui_rating_selector(name, value, max, cgi)
# Returns HTML for a field for selecting a rating for something. When chosen,
# submits to the given CGI.
sub virtualmin_ui_rating_selector
{
return &theme_virtualmin_ui_rating_selector(@_)
if (defined(&theme_virtualmin_ui_rating_selector));
local ($name, $value, $max, $cgi) = @_;
$value ||= 0;
local $rv;
if (!$main::done_virtualmin_ui_rating_selector++) {
# Generate highlighting Javascript code
$rv .= &virtualmin_ui_rating_selector_javascript();
}
for($i=1; $i<=$max; $i++) {
local $img = $i <= $value ? "staron.gif" : "staroff.gif";
if ($cgi) {
local $cgiv = $cgi;
$cgiv .= ($cgi =~ /\?/ ? "&" : "?");
$cgiv .= $name."=".$i;
$rv .= "
";
}
else {
$rv .= "
";
}
}
return $rv;
}
sub virtualmin_ui_rating_selector_javascript
{
return <
// Highlight this star and others before it
function rating_selector_entry(name, idx, max)
{
for(i=1; i<=max; i++) {
obj = document.getElementById(name+i);
if (obj) {
img = i <= idx ? 'starover.gif' : 'staroff.gif';
obj.innerHTML = '
';
}
}
}
// Returns all stars to default
function rating_selector_exit(name, value, max)
{
for(i=1; i<=max; i++) {
obj = document.getElementById(name+i);
if (obj) {
img = i <= value ? 'staron.gif' : 'staroff.gif';
obj.innerHTML = '
';
}
}
}
EOF
}
# virtualmin_ui_apply_radios([tag])
# Returns Javascript to fake a click on all radio buttons on a form, to make
# them perform any onClick actions
sub virtualmin_ui_apply_radios
{
local ($tag) = @_;
local $rv = <