From 0e2ea68e886628033f9afeba99f90144b4f85510 Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Sat, 12 Jan 2008 23:20:50 +0000 Subject: Bug 411437: Clipping of "Free Text" fields when user enters more then 255 characters - Patch by Frédéric Buclin r/a=mkanat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bugzilla/Bug.pm | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'Bugzilla/Bug.pm') diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index e9274466d..28752da46 100755 --- a/Bugzilla/Bug.pm +++ b/Bugzilla/Bug.pm @@ -148,9 +148,12 @@ sub VALIDATORS { elsif ($field->type == FIELD_TYPE_DATETIME) { $validator = \&_check_datetime_field; } - else { + elsif ($field->type == FIELD_TYPE_FREETEXT) { $validator = \&_check_freetext_field; } + else { + $validator = \&_check_default_field; + } $validators->{$field->name} = $validator; } @@ -1074,8 +1077,6 @@ sub _check_estimated_time { return $_[0]->_check_time($_[1], 'estimated_time'); } -sub _check_freetext_field { return defined $_[1] ? trim($_[1]) : ''; } - sub _check_groups { my ($invocant, $product, $group_ids) = @_; @@ -1373,6 +1374,18 @@ sub _check_datetime_field { return $date_time } +sub _check_default_field { return defined $_[1] ? trim($_[1]) : ''; } + +sub _check_freetext_field { + my ($invocant, $text) = @_; + + $text = (defined $text) ? trim($text) : ''; + if (length($text) > MAX_FREETEXT_LENGTH) { + ThrowUserError('freetext_too_long', { text => $text }); + } + return $text; +} + sub _check_multi_select_field { my ($invocant, $values, $field) = @_; return [] if !$values; -- cgit v1.2.3-24-g4f1b