Add option group support, and as a test implement it for awards report.

It would be nice to remove the  "Award -- " off the front of each field
name, but if we do that it only displays "Name" after its' selected,
which can be confusing if there's an "Award -- Name" and a "Prize --
Name".  But the division into optgroups still look nice.
This commit is contained in:
dave 2010-04-04 18:57:27 +00:00
parent c1433e8a7d
commit 6e245a4c52
2 changed files with 10 additions and 0 deletions

View File

@ -23,6 +23,7 @@
$report_awards_fields = array( $report_awards_fields = array(
'name' => array( 'name' => array(
'start_option_group' => 'Award Information',
'name' => 'Award -- Name', 'name' => 'Award -- Name',
'header' => 'Award Name', 'header' => 'Award Name',
'width' => 3.0, 'width' => 3.0,
@ -60,6 +61,7 @@ $report_awards_fields = array(
'table' => 'award_types.type' ), 'table' => 'award_types.type' ),
'sponsor_organization' => array( 'sponsor_organization' => array(
'start_option_group' => 'Sponsor Information',
'name' => 'Sponsor -- Organization', 'name' => 'Sponsor -- Organization',
'header' => 'Sponsor Organization', 'header' => 'Sponsor Organization',
'width' => 2.0, 'width' => 2.0,
@ -115,6 +117,7 @@ $report_awards_fields = array(
'value_map' => array ('pending' => 'Pending', 'confirmed' => 'Confirmed'), "received"=>"Received"), 'value_map' => array ('pending' => 'Pending', 'confirmed' => 'Confirmed'), "received"=>"Received"),
'pcontact_salutation' => array( 'pcontact_salutation' => array(
'start_option_group' => 'Sponsor Primary Contact',
'name' => 'Primary Contact -- Salutation', 'name' => 'Primary Contact -- Salutation',
'header' => 'Cnct. Salutation', 'header' => 'Cnct. Salutation',
'width' => 1.0, 'width' => 1.0,
@ -189,6 +192,7 @@ $report_awards_fields = array(
'table' => 'PRIMARYCONTACT.notes' ), 'table' => 'PRIMARYCONTACT.notes' ),
'judgeteamname' => array( 'judgeteamname' => array(
'start_option_group' => 'Judging Team',
'components' => array('judgingteam'), 'components' => array('judgingteam'),
'name' => 'Judging Team -- Name', 'name' => 'Judging Team -- Name',
'header' => 'Judging Team', 'header' => 'Judging Team',

View File

@ -44,13 +44,19 @@
function field_selector($name, $id, $selected) function field_selector($name, $id, $selected)
{ {
global $fields; global $fields;
$in_optgroup = false;
echo "<select name=\"$name\" id=\"$id\">"; echo "<select name=\"$name\" id=\"$id\">";
echo "<option value=\"\" />-- None --</option>"; echo "<option value=\"\" />-- None --</option>";
foreach($fields as $k=>$f) { foreach($fields as $k=>$f) {
if($f['editor_disabled'] == true) continue; if($f['editor_disabled'] == true) continue;
if(array_key_exists('start_option_group', $f)) {
if($in_optgroup) echo '</optgroup>';
echo '<optgroup label="'.i18n($f['start_option_group']).'">';
}
$sel = ($selected == $k) ? 'selected=\"selected\"': '' ; $sel = ($selected == $k) ? 'selected=\"selected\"': '' ;
echo "<option value=\"$k\" $sel >{$f['name']}</option>"; echo "<option value=\"$k\" $sel >{$f['name']}</option>";
} }
if($in_optgroup) echo '</optgroup>';
echo "</select>"; echo "</select>";
} }