Skip to content

Commit

Permalink
Update Form.pm to support id attribute on form elements
Browse files Browse the repository at this point in the history
Allows use of id="your-id" in [display] tag, which will output to form element as "id" attribute and <label> tag as "for" attribute. By Mike Heins.
  • Loading branch information
Josh Lavin authored and jonjensen committed Oct 27, 2009
1 parent 52500fb commit a31302b
Showing 1 changed file with 30 additions and 3 deletions.
33 changes: 30 additions & 3 deletions lib/Vend/Form.pm
Expand Up @@ -77,6 +77,8 @@ my $Tag = new Vend::Tags;
.
qq({DISABLED?} disabled{/DISABLED?})
.
qq({TEXTID?} id="{TEXTID}"{/TEXTID?})
.
qq({MULTIPLE?} multiple{/MULTIPLE?})
.
qq({EXTRA?} {EXTRA}{/EXTRA?})
Expand All @@ -101,6 +103,8 @@ my $Tag = new Vend::Tags;
.
qq({TTITLE?} title="{TTITLE}"{/TTITLE?})
.
qq({TEXTID?} id="{TEXTID}"{/TEXTID?})
.
qq({WRAP?} wrap="{WRAP}"{/WRAP?})
.
qq({EXTRA?} {EXTRA}{/EXTRA?})
Expand All @@ -114,6 +118,8 @@ my $Tag = new Vend::Tags;
.
qq({COLS?} size="{COLS}"{/COLS?})
.
qq({TEXTID?} id="{TEXTID}"{/TEXTID?})
.
qq({MAXLENGTH?} maxlength="{MAXLENGTH}"{/MAXLENGTH?})
.
qq({EXTRA?} {EXTRA}{/EXTRA?})
Expand All @@ -125,6 +131,8 @@ my $Tag = new Vend::Tags;
.
qq({TTITLE?} title="{TTITLE}"{/TTITLE?})
.
qq({TEXTID?} id="{TEXTID}"{/TEXTID?})
.
qq({COLS?} size="{COLS}"{/COLS?})
.
qq({EXTRA?} {EXTRA}{/EXTRA?})
Expand All @@ -136,6 +144,8 @@ my $Tag = new Vend::Tags;
.
qq({TTITLE?} title="{TTITLE}"{/TTITLE?})
.
qq({TEXTID?} id="{TEXTID}"{/TEXTID?})
.
qq({COLS?} size="{COLS}"{/COLS?})
.
qq({EXTRA?} {EXTRA}{/EXTRA?})
Expand All @@ -149,6 +159,8 @@ my $Tag = new Vend::Tags;
.
qq({TTITLE?} title="{TTITLE}"{/TTITLE?})
.
qq({TEXTID?} id="{TEXTID}"{/TEXTID?})
.
qq({DISABLED?} disabled{/DISABLED?})
.
qq({MAXLENGTH?} maxlength="{MAXLENGTH}"{/MAXLENGTH?})
Expand All @@ -162,6 +174,8 @@ my $Tag = new Vend::Tags;
hidden =>
qq({PREPEND}<input type="hidden" name="{NAME}" value="{ENCODED}")
.
qq({TEXTID?} id="{TEXTID}"{/TEXTID?})
.
qq({EXTRA?} {EXTRA}{/EXTRA?})
.
qq(>{APPEND})
Expand All @@ -178,13 +192,15 @@ my $Tag = new Vend::Tags;
.
qq({EXTRA?} {EXTRA}{/EXTRA?})
.
qq({TEXTID?} id="{TEXTID}"{/TEXTID?})
.
qq({TTITLE?} title="{TTITLE}"{/TTITLE?})
.
qq({DISABLED?} disabled{/DISABLED?})
.
qq({SELECTED?} checked{/SELECTED?})
.
qq(>&nbsp;{TTITLE?}<span title="{TTITLE}">{/TTITLE?}{TLABEL}{TTITLE?}</span>{/TTITLE?})
qq(>&nbsp;{TTITLE?}<span title="{TTITLE}">{/TTITLE?}{TEXTID?}<label for="{TEXTID}">{/TEXTID?}{TLABEL}{TEXTID?}</label>{/TEXTID?}{TTITLE?}</span>{/TTITLE?})
,
boxnbsp =>
qq(<input type="{VARIANT}" name="{NAME}" value="{TVALUE}")
Expand All @@ -197,14 +213,14 @@ my $Tag = new Vend::Tags;
.
qq({SELECTED?} checked{/SELECTED?})
.
qq(>&nbsp;{TTITLE?}<span title="{TTITLE}">{/TTITLE?}{TLABEL}{TTITLE?}</span>{/TTITLE?}&nbsp;&nbsp;)
qq(>&nbsp;{TTITLE?}<span title="{TTITLE}">{/TTITLE?}{TEXTID?}<label for="{TEXTID}">{/TEXTID?}{TLABEL}{TEXTID?}</label>{/TEXTID?}{TTITLE?}</span>{/TTITLE?}&nbsp;&nbsp;)
,
boxlabel =>
qq(<td{TD_LABEL?} {TD_LABEL}{/TD_LABEL?}{TTITLE?} title="{TTITLE}"{/TTITLE?}>)
.
qq({FONT?}<font size="{FONT}">{/FONT?})
.
qq({TLABEL}{FONT?}</font>{/FONT?})
qq({TEXTID?}<label for="{TEXTID}">{/TEXTID?}{TLABEL}{TEXTID?}</label>{/TEXTID?}{FONT?}</font>{/FONT?})
.
qq(</td>)
,
Expand All @@ -215,6 +231,8 @@ my $Tag = new Vend::Tags;
.
qq({TTITLE?} title="{TTITLE}"{/TTITLE?})
.
qq({TEXTID?} id="{TEXTID}"{/TEXTID?})
.
qq({DISABLED?} disabled{/DISABLED?})
.
qq({EXTRA?} {EXTRA}{/EXTRA?})
Expand Down Expand Up @@ -1012,6 +1030,11 @@ sub box {

$opt->{ttitle} = $help;

if($opt->{id}) {
$opt->{textid} = $opt->{id} . ($value eq '' ? 0 : $value);
$opt->{textid} =~ s/[^-\w]+//g;
}

$run .= attr_list($template, $opt);
$run .= '</tr>' if $inc && ! ($i % $inc);
}
Expand Down Expand Up @@ -1322,6 +1345,10 @@ if($opt->{debug}) {
$opt->{value} = $def if defined($def);
}

if($opt->{id}) {
$opt->{textid} = $opt->{id};
}

$opt->{value} = $opt->{default} if ! defined $opt->{value};

if(length($opt->{blank_default}) and ! length($opt->{value}) ) {
Expand Down

0 comments on commit a31302b

Please sign in to comment.