From 11c8544977a0f0bff37d446ed600fb42903611af Mon Sep 17 00:00:00 2001 From: Andy Grundman Date: Wed, 10 Jul 2002 14:27:47 +0000 Subject: [PATCH] bugfix: admin can now edit/delete hidden fields; macros are now processed for all data in Default Values and Possible Values, but not for user-submitted data --- lib/WebGUI/Wobject/MailForm.pm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/WebGUI/Wobject/MailForm.pm b/lib/WebGUI/Wobject/MailForm.pm index 192e077a6..27c79ee1f 100755 --- a/lib/WebGUI/Wobject/MailForm.pm +++ b/lib/WebGUI/Wobject/MailForm.pm @@ -369,8 +369,16 @@ sub www_view { $sth = WebGUI::SQL->read("select * from MailForm_field where wobjectId=".$_[0]->get("wobjectId")." order by sequenceNumber"); while (%data = $sth->hash) { + # process macros on default values + $data{defaultValue} = $_[0]->processMacros($data{defaultValue}); if ($data{status} == 1) { # hidden field, don't show on form for security reasons + $row = ""; + # but show for admins + if ($session{var}{adminOn}) { + $row = "\u".$data{name}." (hidden) ".$data{defaultValue}; + $row .= $_[0]->_fieldAdminIcons($data{mailFieldId}); + } } elsif ($data{status} == 2) { # read-only field $row = "\u".$data{name}." ".$data{defaultValue}; @@ -450,7 +458,7 @@ sub _createField { my %selectOptions; # add an empty option if no default value is provided foreach (split(/\n/, $data->{possibleValues})) { - $selectOptions{$_} = $_; + $selectOptions{$_} = $_[0]->processMacros($_); } $f->select($name, \%selectOptions, $data->{name}, [ $data->{defaultValue} ], "", "", "", ""); last SWITCH; @@ -518,7 +526,7 @@ sub www_send { $sth = WebGUI::SQL->read("select * from MailForm_field where wobjectId=".$_[0]->get("wobjectId")." order by sequenceNumber"); while (%data = $sth->hash) { my $urlizedName = WebGUI::URL::urlize($data{name}); - my $value = $session{form}{$urlizedName} || $data{defaultValue}; + my $value = $session{form}{$urlizedName} || $_[0]->processMacros($data{defaultValue}); # fix value for special types if ($data{type} eq "yesNo") { $value = ($value == 1) ? "yes" : "no";