# 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 = <