View | Details | Raw Unified | Return to bug 26355
Collapse All | Expand All

(-)a/Koha/REST/V1/Patrons/SelfRenewal.pm (-3 / +4 lines)
Lines 49-58 sub start { Link Here
49
49
50
    return try {
50
    return try {
51
        my $category              = $patron->category;
51
        my $category              = $patron->category;
52
        my @information_messages  = split( /\|/, $category->self_renewal_information_message );
52
        my $self_renewal_settings = {
53
        my $self_renewal_settings = {
53
            self_renewal_failure_message     => $category->self_renewal_failure_message,
54
            self_renewal_failure_message      => $category->self_renewal_failure_message,
54
            self_renewal_information_message => $category->self_renewal_information_message,
55
            self_renewal_information_messages => \@information_messages,
55
            opac_patron_details              => C4::Context->preference('OPACPatronDetails')
56
            opac_patron_details               => C4::Context->preference('OPACPatronDetails')
56
        };
57
        };
57
58
58
        return $c->render(
59
        return $c->render(
(-)a/admin/categories.pl (-5 / +21 lines)
Lines 47-54 my ( $template, $loggedinuser, $cookie ) = get_template_and_user( Link Here
47
47
48
if ( $op eq 'add_form' ) {
48
if ( $op eq 'add_form' ) {
49
49
50
    my $category = Koha::Patron::Categories->find($categorycode);
50
    $template->param(
51
    $template->param(
51
        category => scalar Koha::Patron::Categories->find($categorycode),
52
        category                          => scalar $category,
53
        self_renewal_information_messages => parse_renewal_info_message( $category->self_renewal_information_message )
52
    );
54
    );
53
55
54
    if ( C4::Context->preference('EnhancedMessagingPreferences') ) {
56
    if ( C4::Context->preference('EnhancedMessagingPreferences') ) {
Lines 83-89 if ( $op eq 'add_form' ) { Link Here
83
    my $self_renewal_availability_start        = $input->param('self_renewal_availability_start');
85
    my $self_renewal_availability_start        = $input->param('self_renewal_availability_start');
84
    my $self_renewal_fines_block               = $input->param('self_renewal_fines_block');
86
    my $self_renewal_fines_block               = $input->param('self_renewal_fines_block');
85
    my $self_renewal_failure_message           = $input->param('self_renewal_failure_message');
87
    my $self_renewal_failure_message           = $input->param('self_renewal_failure_message');
86
    my $self_renewal_information_message       = $input->param('self_renewal_information_message');
88
    my @self_renewal_information_message       = $input->multi_param('self_renewal_information_message');
87
    my $self_renewal_if_expired                = $input->param('self_renewal_if_expired');
89
    my $self_renewal_if_expired                = $input->param('self_renewal_if_expired');
88
90
89
    my @branches                               = grep { $_ ne q{} } $input->multi_param('branches');
91
    my @branches                               = grep { $_ ne q{} } $input->multi_param('branches');
Lines 130-136 if ( $op eq 'add_form' ) { Link Here
130
        $category->self_renewal_availability_start($self_renewal_availability_start);
132
        $category->self_renewal_availability_start($self_renewal_availability_start);
131
        $category->self_renewal_fines_block($self_renewal_fines_block);
133
        $category->self_renewal_fines_block($self_renewal_fines_block);
132
        $category->self_renewal_failure_message($self_renewal_failure_message);
134
        $category->self_renewal_failure_message($self_renewal_failure_message);
133
        $category->self_renewal_information_message($self_renewal_information_message);
135
        $category->self_renewal_information_message( parse_renewal_info_message( \@self_renewal_information_message ) );
134
        $category->self_renewal_if_expired($self_renewal_if_expired);
136
        $category->self_renewal_if_expired($self_renewal_if_expired);
135
        eval {
137
        eval {
136
            $category->store;
138
            $category->store;
Lines 174-181 if ( $op eq 'add_form' ) { Link Here
174
                self_renewal_availability_start        => $self_renewal_availability_start,
176
                self_renewal_availability_start        => $self_renewal_availability_start,
175
                self_renewal_fines_block               => $self_renewal_fines_block,
177
                self_renewal_fines_block               => $self_renewal_fines_block,
176
                self_renewal_failure_message           => $self_renewal_failure_message,
178
                self_renewal_failure_message           => $self_renewal_failure_message,
177
                self_renewal_information_message       => $self_renewal_information_message,
179
                self_renewal_information_message => parse_renewal_info_message( \@self_renewal_information_message ),
178
                self_renewal_if_expired                => $self_renewal_if_expired,
180
                self_renewal_if_expired          => $self_renewal_if_expired,
179
            }
181
            }
180
        );
182
        );
181
        eval {
183
        eval {
Lines 246-248 $template->param( Link Here
246
output_html_with_http_headers $input, $cookie, $template->output;
248
output_html_with_http_headers $input, $cookie, $template->output;
247
249
248
exit 0;
250
exit 0;
251
252
sub parse_renewal_info_message {
253
    my ($message) = @_;
254
255
    if ( ref($message) eq 'ARRAY' ) {
256
        my $info_message = join( '|', @$message );
257
        return $info_message;
258
    } else {
259
        my @info_message = split( /\|/, $message );
260
        return \@info_message;
261
    }
262
263
    return $message;
264
}
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categories.tt (-8 / +39 lines)
Lines 554-567 Link Here
554
                            the [%- pref_noissuescharge_link | $raw | $KohaSpan -%] system preference.</div
554
                            the [%- pref_noissuescharge_link | $raw | $KohaSpan -%] system preference.</div
555
                        >
555
                        >
556
                    </li>
556
                    </li>
557
                    <li>
557
                    [% FOREACH info_message IN self_renewal_information_messages %]
558
                        <label for="self_renewal_information_message">Self-renewal information message: </label>
558
                        <li>
559
                        [% IF (category.self_renewal_information_message) %]
559
                            <label for="self_renewal_information_message_[% loop.index %]">Self-renewal information message[% IF(loop.index > 0) %][% loop.index + 1 %][% END %]: </label>
560
                            <textarea type="text" name="self_renewal_information_message" id="self_renewal_information_message" cols="40" rows="2">[% category.self_renewal_information_message | html %]</textarea>
560
                            [% IF (info_message) %]
561
                        [% ELSE %]
561
                                <textarea type="text" name="self_renewal_information_message" id="self_renewal_information_message_[% loop.index %]" cols="40" rows="2">[% info_message | html %]</textarea>
562
                            <textarea type="text" name="self_renewal_information_message" id="self_renewal_information_message" cols="40" rows="4"></textarea>
562
                            [% ELSE %]
563
                        [% END %]
563
                                <textarea type="text" name="self_renewal_information_message" id="self_renewal_information_message_[% loop.index %]" cols="40" rows="4"></textarea>
564
                    </li>
564
                            [% END %]
565
                            <a href="#" class="clear_message"><i class="fa fa-fw fa-trash-can"></i> Clear</a>
566
                            <a href="#" class="clone_message"><i class="fa fa-fw fa-plus"></i> New</a>
567
                        </li>
568
                    [% END %]
569
                    <div class="hint"
570
                        >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'
571
                        exits the process and displays the Self-renewal failure message.</div
572
                    >
565
                    <li>
573
                    <li>
566
                        <label for="self_renewal_failure_message">Self-renewal failure message: </label>
574
                        <label for="self_renewal_failure_message">Self-renewal failure message: </label>
567
                        [% IF (category.self_renewal_failure_message) %]
575
                        [% IF (category.self_renewal_failure_message) %]
Lines 922-927 Link Here
922
    [% INCLUDE 'select2.inc' %]
930
    [% INCLUDE 'select2.inc' %]
923
    <script>
931
    <script>
924
        var table_settings = [% TablesSettings.GetTableSettings( 'admin', 'categories', 'patron_categories', 'json' ) | $raw %];
932
        var table_settings = [% TablesSettings.GetTableSettings( 'admin', 'categories', 'patron_categories', 'json' ) | $raw %];
933
        $(document).ready(function () {
934
            $("#category_form").on(
935
                "click",
936
                ".clone_message",
937
                function (e) {
938
                    e.preventDefault();
939
                    var original = $(this).parent();
940
                    var clone = $(this).parent().clone();
941
                    $(clone).children("div.hint").remove()
942
                    $(original).after(clone);
943
                    return false;
944
                }
945
            );
946
            $("#category_form").on(
947
                "click",
948
                ".clear_message",
949
                function (e) {
950
                    e.preventDefault();
951
                    var original = $(this).parent();
952
                    $("input", original).val("");
953
                }
954
            );
955
        });
925
    </script>
956
    </script>
926
    [% Asset.js("js/categories.js") | $raw %]
957
    [% Asset.js("js/categories.js") | $raw %]
927
[% END %]
958
[% END %]
(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Islands/PatronSelfRenewal/PatronSelfRenewal.vue (-5 / +9 lines)
Lines 28-37 Link Here
28
                    />
28
                    />
29
                    <VerificationChecks
29
                    <VerificationChecks
30
                        v-if="activeStep === 'confirmation'"
30
                        v-if="activeStep === 'confirmation'"
31
                        :informationMessage="
31
                        :renewalSettings="{
32
                            $__('Are you sure you want to renew your account?')
32
                            ...renewalSettings,
33
                        "
33
                            self_renewal_information_messages: [
34
                        :renewalSettings="renewalSettings"
34
                                $__(
35
                                    'Are you sure you want to renew your account?'
36
                                ),
37
                            ],
38
                        }"
35
                        @verification-successful="submitRenewal"
39
                        @verification-successful="submitRenewal"
36
                    />
40
                    />
37
                    <div v-if="activeStep === 'detailsCheck'">
41
                    <div v-if="activeStep === 'detailsCheck'">
Lines 96-102 export default { Link Here
96
                        ...response.self_renewal_settings,
100
                        ...response.self_renewal_settings,
97
                    };
101
                    };
98
                    activeStep.value = response.self_renewal_settings
102
                    activeStep.value = response.self_renewal_settings
99
                        .self_renewal_information_message
103
                        .self_renewal_information_messages?.length
100
                        ? "verification"
104
                        ? "verification"
101
                        : response.self_renewal_settings.opac_patron_details ===
105
                        : response.self_renewal_settings.opac_patron_details ===
102
                            "1"
106
                            "1"
(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Islands/PatronSelfRenewal/VerificationChecks.vue (-8 / +21 lines)
Lines 1-6 Link Here
1
<template>
1
<template>
2
    <fieldset class="rows" v-if="!verificationFailure">
2
    <fieldset class="rows" v-if="!verificationFailure">
3
        <span class="verification_question">{{ verificationCheck }}</span>
3
        <span class="verification_question">{{ activeCheck }}</span>
4
        <div class="verification_actions">
4
        <div class="verification_actions">
5
            <button class="btn btn-success" @click="verificationPassed()">
5
            <button class="btn btn-success" @click="verificationPassed()">
6
                {{ $__("Yes") }}
6
                {{ $__("Yes") }}
Lines 20-37 import { $__ } from "@koha-vue/i18n"; Link Here
20
export default {
20
export default {
21
    props: {
21
    props: {
22
        renewalSettings: Object,
22
        renewalSettings: Object,
23
        informationMessage: String,
23
        confirmation: Boolean,
24
    },
24
    },
25
    emits: ["verification-successful"],
25
    emits: ["verification-successful"],
26
    setup(props, { emit }) {
26
    setup(props, { emit }) {
27
        const checkCount = ref(
28
            props.renewalSettings.self_renewal_information_messages.length
29
        );
30
        const completedCount = ref(0);
27
        const verificationFailure = ref(false);
31
        const verificationFailure = ref(false);
28
        const verificationCheck = ref(
32
29
            props.informationMessage ||
33
        const activeCheck = ref(
30
                props.renewalSettings.self_renewal_information_message
34
            props.renewalSettings.self_renewal_information_messages[0]
31
        );
35
        );
32
36
33
        const verificationPassed = () => {
37
        const verificationPassed = () => {
34
            emit("verification-successful");
38
            if (completedCount.value === checkCount.value - 1) {
39
                emit("verification-successful");
40
            } else {
41
                completedCount.value++;
42
                activeCheck.value =
43
                    props.renewalSettings.self_renewal_information_messages[
44
                        completedCount.value
45
                    ];
46
            }
35
        };
47
        };
36
        const verificationFailed = () => {
48
        const verificationFailed = () => {
37
            verificationFailure.value = true;
49
            verificationFailure.value = true;
Lines 44-54 export default { Link Here
44
        });
56
        });
45
57
46
        return {
58
        return {
47
            verificationCheck,
59
            checkCount,
60
            activeCheck,
48
            verificationPassed,
61
            verificationPassed,
49
            verificationFailed,
62
            verificationFailed,
50
            verificationFailure,
63
            verificationFailure,
51
            errorMessage,
64
            errorMessage,
65
            completedCount,
52
        };
66
        };
53
    },
67
    },
54
};
68
};
55
- 

Return to bug 26355