Bug 14366: Units doesn't get saved usefully for patroncards

This patch causes the "Units" to be saved and displayed correctly
for the "Edit layout" screen in Patroncards.

_TEST PLAN_

Before applying:
0) Create a new layout
1) Edit the layout, change the units, and click Save
2) Edit the layout again, and notice the units are still "PostScript Points"

Apply the patch:
3) Edit the layout again, change the units, and click Save
4) Edit the layout again, note that the units have changed to your
selection

5) Rejoice

Signed-off-by: Nick Clemens <nick@quecheelibrary.org>

Signed-off-by: Jonathan Druart <jonathan.druart@koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
David Cook 2015-06-09 14:25:23 +10:00 committed by Tomas Cohen Arazi
parent 958be9804a
commit f573a15597

View file

@ -141,6 +141,12 @@ if ($op eq 'edit') {
push @barcode, (($barcode_param eq 'type' ? ("barcode_" . $barcode_param => _set_selected($layout_xml->{'barcode'}->[0]->{'barcode_type'}, $barcode_types)) : ("barcode_" . $barcode_param => $layout_xml->{'barcode'}->[0]->{$barcode_param})));
}
foreach my $unit (@$units){
if ($unit->{'type'} eq $layout->get_attr('units')) {
$unit->{'selected'} = 1;
}
}
$template->param(
layout_id => $layout->get_attr('layout_id') > -1 ? $layout->get_attr('layout_id') : '',
layout_name => $layout->get_attr('layout_name'),
@ -212,6 +218,7 @@ elsif ($op eq 'save') {
}
$layout->{'text'} = $text_lines;
my @params = (layout_name => $layout_name, layout_id => $layout_id, layout_xml => XMLout($layout));
push(@params,units => $layout->{'units'}) if $layout->{'units'};
if ($layout_id) { # if a label_id was passed in, this is an update to an existing layout
$layout = C4::Patroncards::Layout->retrieve(layout_id => $layout_id);
$layout->set_attr(@params);