diff --git a/labels/label-edit-template.pl b/labels/label-edit-template.pl index 1860a60a6b..2b55eeaf4d 100755 --- a/labels/label-edit-template.pl +++ b/labels/label-edit-template.pl @@ -73,8 +73,14 @@ elsif ($op eq 'save') { ); if ($template_id) { # if a label_id was passed in, this is an update to an existing layout $label_template = C4::Labels::Template->retrieve(template_id => $template_id); - my $profile = C4::Labels::Profile->retrieve(profile_id => $cgi->param('profile_id')); - $profile->set_attr(template_id => $label_template->get_attr('template_id')) if $label_template->get_attr('template_id') != $profile->get_attr('template_id'); + my $old_profile = C4::Labels::Profile->retrieve(profile_id => $label_template->get_attr('profile_id')); + my $new_profile = C4::Labels::Profile->retrieve(profile_id => $cgi->param('profile_id')); + if ($label_template->get_attr('template_id') != $new_profile->get_attr('template_id')) { + $new_profile->set_attr(template_id => $label_template->get_attr('template_id')); + $old_profile->set_attr(template_id => 0); + $new_profile->save(); + $old_profile->save(); + } $label_template->set_attr(@params); $label_template->save(); } @@ -83,6 +89,7 @@ elsif ($op eq 'save') { my $template_id = $label_template->save(); my $profile = C4::Labels::Profile->retrieve(profile_id => $cgi->param('profile_id')); $profile->set_attr(template_id => $template_id) if $template_id != $profile->get_attr('template_id'); + $profile->save(); } print $cgi->redirect("label-manage.pl?label_element=template"); exit;