From a782df32fbb33a8d25a9352c2248b8ecb1ba0706 Mon Sep 17 00:00:00 2001 From: Martin Kamerbeek Date: Tue, 26 Dec 2006 18:20:39 +0000 Subject: [PATCH] Merry Xmas bugfix #2: --- docs/changelog/7.x.x.txt | 1 + lib/WebGUI/Asset/Wobject/SQLForm.pm | 12 ++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 47c6226a7..bc83ef2c0 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -16,6 +16,7 @@ - fix: Disobedient Forum Rich Editor - fix: SQLForm - fixed a bug where regexes would sometimes be ignored (Martin Kamerbeek / Oqapi) + - fix: SQLForm - checkList/varchar (Martin Kamerbeek / Oqapi) 7.3.2 - fix: Calendar and Event now have printable templates and URL parameters. diff --git a/lib/WebGUI/Asset/Wobject/SQLForm.pm b/lib/WebGUI/Asset/Wobject/SQLForm.pm index dca0bdadb..c69874070 100644 --- a/lib/WebGUI/Asset/Wobject/SQLForm.pm +++ b/lib/WebGUI/Asset/Wobject/SQLForm.pm @@ -2340,12 +2340,11 @@ sub _getFieldValue { } #### This might break? #### - if ($field->{canHaveMultipleValues} && !$readOnly) { - $fieldValue = [ $recordValues->{$field->{fieldName}} ]; + if ($field->{canHaveMultipleValues}) { + $fieldValue = [ split(/\n/, $recordValues->{$field->{fieldName}}) ]; $fieldValue = [ $self->session->request->param($field->{fieldName}) ] if (defined $self->session->form->process($field->{fieldName})); - $fieldValue = join(', ', @$fieldValue) if ($readOnly); } - + # Handle file uploads if ($field->{formFieldType} eq 'file') { unless ($recordValues->{$field->{fieldName}}) { @@ -2398,7 +2397,7 @@ sub _getFormElement { $fieldValue = $self->_getFieldValue($field, $recordValues, $readOnly); # Resolve value to key in case of read only and key/value pairs - $fieldValue = $field->{allOptions}->{$fieldValue} if ($field->{hasOptions} && $readOnly); + $fieldValue = join(', ', @{$field->{allOptions}}{@$fieldValue}) if ($field->{hasOptions} && $readOnly); $maxLength = $field->{maxFieldLength} || $allowedDbFieldTypes->{$field->{dbFieldType}}->{maxLength}; # Construct the form element @@ -4116,7 +4115,8 @@ my $value; $fieldProperties->{$_} = $self->_getFieldProperties($_) unless (exists $fieldProperties->{$_}); if ($fieldProperties->{$_}->{hasOptions}) { - $value = $fieldProperties->{$_}->{allOptions}->{$row{$fieldProperties->{$_}->{fieldName}}}; + my @options = split(/\n/, $row{$fieldProperties->{$_}->{fieldName}}); + $value = join(', ', @{$fieldProperties->{$_}->{allOptions}}{@options}); } else { $value = $row{$fieldProperties->{$_}->{fieldName}}; }