Bug 26355: (follow-up) Allow the setting of multiple information messages
Signed-off-by: Christopher Brannon <cbrannon@cdalibrary.org> Signed-off-by: Andrew Fuerste Henry <andrew@bywatersolutions.com> Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk> Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
parent
a76eb18bed
commit
cb9e70f8c2
|
|
@ -49,10 +49,11 @@ sub start {
|
|||
|
||||
return try {
|
||||
my $category = $patron->category;
|
||||
my @information_messages = split( /\|/, $category->self_renewal_information_message );
|
||||
my $self_renewal_settings = {
|
||||
self_renewal_failure_message => $category->self_renewal_failure_message,
|
||||
self_renewal_information_message => $category->self_renewal_information_message,
|
||||
opac_patron_details => C4::Context->preference('OPACPatronDetails')
|
||||
self_renewal_failure_message => $category->self_renewal_failure_message,
|
||||
self_renewal_information_messages => \@information_messages,
|
||||
opac_patron_details => C4::Context->preference('OPACPatronDetails')
|
||||
};
|
||||
|
||||
return $c->render(
|
||||
|
|
|
|||
|
|
@ -47,8 +47,10 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
|
|||
|
||||
if ( $op eq 'add_form' ) {
|
||||
|
||||
my $category = Koha::Patron::Categories->find($categorycode);
|
||||
$template->param(
|
||||
category => scalar Koha::Patron::Categories->find($categorycode),
|
||||
category => scalar $category,
|
||||
self_renewal_information_messages => parse_renewal_info_message( $category->self_renewal_information_message )
|
||||
);
|
||||
|
||||
if ( C4::Context->preference('EnhancedMessagingPreferences') ) {
|
||||
|
|
@ -83,7 +85,7 @@ if ( $op eq 'add_form' ) {
|
|||
my $self_renewal_availability_start = $input->param('self_renewal_availability_start');
|
||||
my $self_renewal_fines_block = $input->param('self_renewal_fines_block');
|
||||
my $self_renewal_failure_message = $input->param('self_renewal_failure_message');
|
||||
my $self_renewal_information_message = $input->param('self_renewal_information_message');
|
||||
my @self_renewal_information_message = $input->multi_param('self_renewal_information_message');
|
||||
my $self_renewal_if_expired = $input->param('self_renewal_if_expired');
|
||||
|
||||
my @branches = grep { $_ ne q{} } $input->multi_param('branches');
|
||||
|
|
@ -130,7 +132,7 @@ if ( $op eq 'add_form' ) {
|
|||
$category->self_renewal_availability_start($self_renewal_availability_start);
|
||||
$category->self_renewal_fines_block($self_renewal_fines_block);
|
||||
$category->self_renewal_failure_message($self_renewal_failure_message);
|
||||
$category->self_renewal_information_message($self_renewal_information_message);
|
||||
$category->self_renewal_information_message( parse_renewal_info_message( \@self_renewal_information_message ) );
|
||||
$category->self_renewal_if_expired($self_renewal_if_expired);
|
||||
eval {
|
||||
$category->store;
|
||||
|
|
@ -174,8 +176,8 @@ if ( $op eq 'add_form' ) {
|
|||
self_renewal_availability_start => $self_renewal_availability_start,
|
||||
self_renewal_fines_block => $self_renewal_fines_block,
|
||||
self_renewal_failure_message => $self_renewal_failure_message,
|
||||
self_renewal_information_message => $self_renewal_information_message,
|
||||
self_renewal_if_expired => $self_renewal_if_expired,
|
||||
self_renewal_information_message => parse_renewal_info_message( \@self_renewal_information_message ),
|
||||
self_renewal_if_expired => $self_renewal_if_expired,
|
||||
}
|
||||
);
|
||||
eval {
|
||||
|
|
@ -246,3 +248,17 @@ $template->param(
|
|||
output_html_with_http_headers $input, $cookie, $template->output;
|
||||
|
||||
exit 0;
|
||||
|
||||
sub parse_renewal_info_message {
|
||||
my ($message) = @_;
|
||||
|
||||
if ( ref($message) eq 'ARRAY' ) {
|
||||
my $info_message = join( '|', @$message );
|
||||
return $info_message;
|
||||
} else {
|
||||
my @info_messages = split( /\|/, $message );
|
||||
return scalar(@info_messages) > 0 ? \@info_messages : [""];
|
||||
}
|
||||
|
||||
return $message;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -554,14 +554,22 @@
|
|||
the [%- pref_noissuescharge_link | $raw | $KohaSpan -%] system preference.</div
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<label for="self_renewal_information_message">Self-renewal information message: </label>
|
||||
[% IF (category.self_renewal_information_message) %]
|
||||
<textarea type="text" name="self_renewal_information_message" id="self_renewal_information_message" cols="40" rows="2">[% category.self_renewal_information_message | html %]</textarea>
|
||||
[% ELSE %]
|
||||
<textarea type="text" name="self_renewal_information_message" id="self_renewal_information_message" cols="40" rows="4"></textarea>
|
||||
[% END %]
|
||||
</li>
|
||||
[% FOREACH info_message IN self_renewal_information_messages %]
|
||||
<li>
|
||||
<label for="self_renewal_information_message_[% loop.index | html %]">Self-renewal information message[% IF(loop.index > 0) %][% loop.index + 1 | html %][% END %]: </label>
|
||||
[% IF (info_message) %]
|
||||
<textarea type="text" name="self_renewal_information_message" id="self_renewal_information_message_[% loop.index | html %]" cols="40" rows="2">[% info_message | html %]</textarea>
|
||||
[% ELSE %]
|
||||
<textarea type="text" name="self_renewal_information_message" id="self_renewal_information_message_[% loop.index | html %]" cols="40" rows="4"></textarea>
|
||||
[% END %]
|
||||
<a href="#" class="clear_message"><i class="fa fa-fw fa-trash-can"></i> Clear</a>
|
||||
<a href="#" class="clone_message"><i class="fa fa-fw fa-plus"></i> New</a>
|
||||
</li>
|
||||
[% END %]
|
||||
<div class="hint"
|
||||
>Information to be displayed to the patron at the start of the renewal process. This will be displayed as a Yes/No question and you can add multiple questions - an answer of 'Yes' proceeds to the next question, 'No'
|
||||
exits the process and displays the Self-renewal failure message.</div
|
||||
>
|
||||
<li>
|
||||
<label for="self_renewal_failure_message">Self-renewal failure message: </label>
|
||||
[% IF (category.self_renewal_failure_message) %]
|
||||
|
|
@ -922,6 +930,29 @@
|
|||
[% INCLUDE 'select2.inc' %]
|
||||
<script nonce="[% Koha.CSPNonce | $raw %]">
|
||||
var table_settings = [% TablesSettings.GetTableSettings( 'admin', 'categories', 'patron_categories', 'json' ) | $raw %];
|
||||
$(document).ready(function () {
|
||||
$("#category_form").on(
|
||||
"click",
|
||||
".clone_message",
|
||||
function (e) {
|
||||
e.preventDefault();
|
||||
var original = $(this).parent();
|
||||
var clone = $(this).parent().clone();
|
||||
$(clone).children("div.hint").remove()
|
||||
$(original).after(clone);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
$("#category_form").on(
|
||||
"click",
|
||||
".clear_message",
|
||||
function (e) {
|
||||
e.preventDefault();
|
||||
var original = $(this).parent();
|
||||
$("input", original).val("");
|
||||
}
|
||||
);
|
||||
});
|
||||
</script>
|
||||
[% Asset.js("js/categories.js") | $raw %]
|
||||
[% END %]
|
||||
|
|
|
|||
|
|
@ -28,10 +28,14 @@
|
|||
/>
|
||||
<VerificationChecks
|
||||
v-if="activeStep === 'confirmation'"
|
||||
:informationMessage="
|
||||
$__('Are you sure you want to renew your account?')
|
||||
"
|
||||
:renewalSettings="renewalSettings"
|
||||
:renewalSettings="{
|
||||
...renewalSettings,
|
||||
self_renewal_information_messages: [
|
||||
$__(
|
||||
'Are you sure you want to renew your account?'
|
||||
),
|
||||
],
|
||||
}"
|
||||
@verification-successful="submitRenewal"
|
||||
/>
|
||||
<div v-if="activeStep === 'detailsCheck'">
|
||||
|
|
@ -96,7 +100,7 @@ export default {
|
|||
...response.self_renewal_settings,
|
||||
};
|
||||
activeStep.value = response.self_renewal_settings
|
||||
.self_renewal_information_message
|
||||
.self_renewal_information_messages?.length
|
||||
? "verification"
|
||||
: response.self_renewal_settings.opac_patron_details ===
|
||||
"1"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<fieldset class="rows" v-if="!verificationFailure">
|
||||
<span class="verification_question">{{ verificationCheck }}</span>
|
||||
<span class="verification_question">{{ activeCheck }}</span>
|
||||
<div class="verification_actions">
|
||||
<button class="btn btn-success" @click="verificationPassed()">
|
||||
{{ $__("Yes") }}
|
||||
|
|
@ -20,18 +20,30 @@ import { $__ } from "@koha-vue/i18n";
|
|||
export default {
|
||||
props: {
|
||||
renewalSettings: Object,
|
||||
informationMessage: String,
|
||||
confirmation: Boolean,
|
||||
},
|
||||
emits: ["verification-successful"],
|
||||
setup(props, { emit }) {
|
||||
const checkCount = ref(
|
||||
props.renewalSettings.self_renewal_information_messages.length
|
||||
);
|
||||
const completedCount = ref(0);
|
||||
const verificationFailure = ref(false);
|
||||
const verificationCheck = ref(
|
||||
props.informationMessage ||
|
||||
props.renewalSettings.self_renewal_information_message
|
||||
|
||||
const activeCheck = ref(
|
||||
props.renewalSettings.self_renewal_information_messages[0]
|
||||
);
|
||||
|
||||
const verificationPassed = () => {
|
||||
emit("verification-successful");
|
||||
if (completedCount.value === checkCount.value - 1) {
|
||||
emit("verification-successful");
|
||||
} else {
|
||||
completedCount.value++;
|
||||
activeCheck.value =
|
||||
props.renewalSettings.self_renewal_information_messages[
|
||||
completedCount.value
|
||||
];
|
||||
}
|
||||
};
|
||||
const verificationFailed = () => {
|
||||
verificationFailure.value = true;
|
||||
|
|
@ -44,11 +56,13 @@ export default {
|
|||
});
|
||||
|
||||
return {
|
||||
verificationCheck,
|
||||
checkCount,
|
||||
activeCheck,
|
||||
verificationPassed,
|
||||
verificationFailed,
|
||||
verificationFailure,
|
||||
errorMessage,
|
||||
completedCount,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -74,9 +74,9 @@ subtest 'start()' => sub {
|
|||
->status_is( 200, 'REST3.2.2' )->json_is(
|
||||
{
|
||||
self_renewal_settings => {
|
||||
self_renewal_failure_message => $category->self_renewal_failure_message,
|
||||
self_renewal_information_message => $category->self_renewal_information_message,
|
||||
opac_patron_details => 1
|
||||
self_renewal_failure_message => $category->self_renewal_failure_message,
|
||||
self_renewal_information_messages => [ $category->self_renewal_information_message ],
|
||||
opac_patron_details => 1
|
||||
}
|
||||
}
|
||||
);
|
||||
|
|
@ -95,9 +95,9 @@ subtest 'start()' => sub {
|
|||
->status_is( 200, 'REST3.2.2' )->json_is(
|
||||
{
|
||||
self_renewal_settings => {
|
||||
self_renewal_failure_message => $category->self_renewal_failure_message,
|
||||
self_renewal_information_message => $category->self_renewal_information_message,
|
||||
opac_patron_details => 1
|
||||
self_renewal_failure_message => $category->self_renewal_failure_message,
|
||||
self_renewal_information_messages => [ $category->self_renewal_information_message ],
|
||||
opac_patron_details => 1
|
||||
}
|
||||
}
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in New Issue