From 083f2fdb52ef222c2a8b67d60571de8b626f73ea Mon Sep 17 00:00:00 2001 From: Dave Roberts <145559566+droberts-ctrlo@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:04:33 +0100 Subject: [PATCH] Removed regex error on save draft (#405) --- lib/GADS.pm | 2 +- lib/GADS/Datum/String.pm | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/GADS.pm b/lib/GADS.pm index 456486e33..02d4c565c 100644 --- a/lib/GADS.pm +++ b/lib/GADS.pm @@ -4652,7 +4652,7 @@ sub _process_edit } } else { - $failed = !process( sub { $datum->set_value($newv) } ) || $failed; + $failed = !process( sub { $datum->set_value($newv, draft => defined(param draft)) } ) || $failed; } } } diff --git a/lib/GADS/Datum/String.pm b/lib/GADS/Datum/String.pm index ff934d187..53d13f0fc 100644 --- a/lib/GADS/Datum/String.pm +++ b/lib/GADS/Datum/String.pm @@ -28,7 +28,7 @@ extends 'GADS::Datum'; with 'GADS::Role::Presentation::Datum::String'; after set_value => sub { - my ($self, $value) = @_; + my ($self, $value, %options) = @_; $value = [$value] if ref $value ne 'ARRAY'; # Allow legacy single values as scalar $value ||= []; my @values = grep {defined $_} @$value; # Take a copy first @@ -48,15 +48,18 @@ after set_value => sub { } my $changed = "@text_all" ne "@old_texts"; - if (my $regex = $self->column->force_regex) + if(!$options{draft}) { - foreach my $val (@values) + if (my $regex = $self->column->force_regex) { - my $msg = __x"Invalid value \"{value}\" for {field}", value => $val, field => $self->column->name; - # Empty values are not checked - these should be done in optional value for field - if ($val && $val !~ /^$regex$/i) + foreach my $val (@values) { - $changed ? error($msg) : warning($msg); + my $msg = __x "Invalid value \"{value}\" for {field}", value => $val, field => $self->column->name; + # Empty values are not checked - these should be done in optional value for field + if ($val && $val !~ /^$regex$/i) + { + $changed ? error($msg) : warning($msg); + } } } } @@ -157,4 +160,3 @@ sub _build_for_code } 1; -