From 51d15071519b762b9d210b0a359995a3221cb77d Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Mon, 15 Jan 2024 12:12:39 +0100 Subject: [PATCH] fix #2430: ruledb disclaimer: make separator configurable add a new 'add-separator' property (default true) that controls if the '--' separator is added. Signed-off-by: Dominik Csapak --- src/PMG/RuleDB/Disclaimer.pm | 44 +++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/src/PMG/RuleDB/Disclaimer.pm b/src/PMG/RuleDB/Disclaimer.pm index 421a0dd..574f62e 100644 --- a/src/PMG/RuleDB/Disclaimer.pm +++ b/src/PMG/RuleDB/Disclaimer.pm @@ -49,7 +49,7 @@ If this e-mail or attached files contain information which do not relate to our _EOD_ sub new { - my ($type, $value, $ogroup, $top) = @_; + my ($type, $value, $ogroup, $top, $separator) = @_; my $class = ref($type) || $type; @@ -59,6 +59,7 @@ sub new { $self->{value} = $value; $self->{top} = $top; + $self->{separator} = $separator; return $self; } @@ -76,14 +77,16 @@ sub load_attr { $sth->execute($id); my $top = 0; + my $separator = 1; while (my $ref = $sth->fetchrow_hashref()) { $top = $ref->{value} if $ref->{name} eq 'top'; + $separator = $ref->{value} if $ref->{name} eq 'separator'; } $sth->finish(); - my $obj = $class->new(decode('UTF-8', $value), $ogroup, $top); + my $obj = $class->new(decode('UTF-8', $value), $ogroup, $top, $separator); $obj->{id} = $id; @@ -110,9 +113,11 @@ sub save { "UPDATE Object SET Value = ? WHERE ID = ?", undef, $value, $self->{id}); - $ruledb->{dbh}->do( - "DELETE FROM Attribut WHERE Name = ? and Object_ID = ?", - undef, 'top', $self->{id}); + for my $prop (qw(top separator)) { + $ruledb->{dbh}->do( + "DELETE FROM Attribut WHERE Name = ? and Object_ID = ?", + undef, $prop, $self->{id}); + } } else { # insert @@ -125,10 +130,12 @@ sub save { $self->{id} = PMG::Utils::lastid($ruledb->{dbh}, 'object_id_seq'); } - if (defined($self->{top})) { - $ruledb->{dbh}->do( - "INSERT INTO Attribut (Value, Name, Object_ID) VALUES (?, ?, ?)", - undef, $self->{top}, 'top', $self->{id}); + for my $prop (qw(top separator)) { + if (defined($self->{$prop})) { + $ruledb->{dbh}->do( + "INSERT INTO Attribut (Value, Name, Object_ID) VALUES (?, ?, ?)", + undef, $self->{$prop}, $prop, $self->{id}); + } } return $self->{id}; @@ -227,10 +234,11 @@ sub execute { foreach my $ta (@$subgroups) { my ($tg, $entity) = (@$ta[0], @$ta[1]); my $html; + my $separator = $self->{separator} ? '
--
' : '
'; if ($self->{top}) { - $html = PMG::Utils::subst_values ($self->{value}, $vars) . "
--
"; + $html = PMG::Utils::subst_values ($self->{value}, $vars) . $separator; } else { - $html = "
--
" . PMG::Utils::subst_values ($self->{value}, $vars); + $html = $separator . PMG::Utils::subst_values ($self->{value}, $vars); } my $text = ""; @@ -272,6 +280,13 @@ sub properties { optional => 1, default => 'end', }, + 'add-separator' => { + description => "If set to 1, adds a '--' separator between the disclaimer and the". + " content. Set to 0 to prevent that.", + type => 'boolean', + optional => 1, + default => 1, + }, }; } @@ -281,6 +296,7 @@ sub get { return { disclaimer => $self->{value}, position => $self->{top} ? 'start' : 'end', + 'add-separator' => $self->{separator} // 1, }; } @@ -293,6 +309,12 @@ sub update { } else { delete $self->{top}; } + + if (defined($param->{'add-separator'}) && $param->{'add-separator'} == 0) { + $self->{separator} = 0; + } else { + delete $self->{separator}; + } } 1; -- 2.39.2