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

(-)a/t/db_dependent/Letters.t (-9 / +21 lines)
Lines 876-882 subtest 'GetPreparedLetter' => sub { Link Here
876
876
877
877
878
subtest 'TranslateNotices' => sub {
878
subtest 'TranslateNotices' => sub {
879
    plan tests => 7;
879
    plan tests => 10;
880
880
881
    t::lib::Mocks::mock_preference( 'TranslateNotices', '1' );
881
    t::lib::Mocks::mock_preference( 'TranslateNotices', '1' );
882
882
Lines 899-904 subtest 'TranslateNotices' => sub { Link Here
899
        'a test',
899
        'a test',
900
        'GetPreparedLetter should return the default one if the lang parameter is not provided'
900
        'GetPreparedLetter should return the default one if the lang parameter is not provided'
901
    );
901
    );
902
    # Note: What about includes, which language should be assumed 'default' here?
902
903
903
    $letter = C4::Letters::GetPreparedLetter(
904
    $letter = C4::Letters::GetPreparedLetter(
904
            module                 => 'test',
905
            module                 => 'test',
Lines 938-943 subtest 'TranslateNotices' => sub { Link Here
938
    is( $letter->{title}, 'a test',
939
    is( $letter->{title}, 'a test',
939
        'GetPreparedLetter should return the default notice if pref disabled but additional language exists' );
940
        'GetPreparedLetter should return the default notice if pref disabled but additional language exists' );
940
941
942
    t::lib::Mocks::mock_preference( 'TranslateNotices', '1' );
943
941
    my $amount      = -20;
944
    my $amount      = -20;
942
    my $accountline = $builder->build(
945
    my $accountline = $builder->build(
943
        {
946
        {
Lines 953-977 subtest 'TranslateNotices' => sub { Link Here
953
    $dbh->do(
956
    $dbh->do(
954
        q|
957
        q|
955
        INSERT INTO letter (module, code, branchcode, name, title, content, message_transport_type, lang) VALUES
958
        INSERT INTO letter (module, code, branchcode, name, title, content, message_transport_type, lang) VALUES
956
        ('test_payment', 'code', '', 'Account payment', 'Account payment', "[% PROCESS 'accounts.inc' %][% PROCESS account_type_description account=credit %][% credit.description %]", 'print', 'default');
959
        ('test', 'payment', '', 'Paiement du compte', 'Paiement du compte', "[% PROCESS 'accounts.inc' %][% PROCESS account_type_description account=credit %][% credit.description %]", 'print', 'fr-CA'),
960
        ('test', 'payment', '', 'Default payment notice', 'Default payment notice', "[% PROCESS 'accounts.inc' %][% PROCESS account_type_description account=credit %][% credit.description %]", 'print', 'default');
957
    |
961
    |
958
    );
962
    );
959
963
964
    t::lib::Mocks::mock_config( 'intrahtdocs', '/kohadevbox/koha/t/mock_templates/intranet-tmpl' );
965
960
    $tables = {
966
    $tables = {
961
        borrowers => $borrowernumber,
967
        borrowers => $borrowernumber,
962
        credits   => $accountline->{accountlines_id},
968
        credits   => $accountline->{accountlines_id},
963
    };
969
    };
964
970
965
    $letter = C4::Letters::GetPreparedLetter(
971
    $letter = C4::Letters::GetPreparedLetter(
966
        module                 => 'test_payment',
972
        module                 => 'test',
967
        letter_code            => 'code',
973
        letter_code            => 'payment',
968
        message_transport_type => 'print',
974
        message_transport_type => 'print',
969
        tables                 => $tables,
975
        tables                 => $tables,
970
        lang                   => 'fr-CA',
976
        lang                   => 'fr-CA',
971
    );
977
    );
978
    is( $letter->{title}, 'Paiement du compte',
979
        'GetPreparedLetter should return the notice in patron\'s preferred language' );
972
    like(
980
    like(
973
        $letter->{content}, qr/Paiement/,
981
        $letter->{content}, qr/Paiement/,
974
        'GetPreparedLetter should return the notice in patron\'s preferred language'
982
        'Template includes should use the patron\'s preferred language too'
975
    );
983
    );
976
984
977
    my $context = Test::MockModule->new('C4::Context');
985
    my $context = Test::MockModule->new('C4::Context');
Lines 981-1003 subtest 'TranslateNotices' => sub { Link Here
981
    t::lib::Mocks::mock_preference( 'language', 'fr-CA,en' );
989
    t::lib::Mocks::mock_preference( 'language', 'fr-CA,en' );
982
990
983
    $letter = C4::Letters::GetPreparedLetter(
991
    $letter = C4::Letters::GetPreparedLetter(
984
        module                 => 'test_payment',
992
        module                 => 'test',
985
        letter_code            => 'code',
993
        letter_code            => 'payment',
986
        message_transport_type => 'print',
994
        message_transport_type => 'print',
987
        tables                 => $tables,
995
        tables                 => $tables,
988
        lang                   => 'default',
996
        lang                   => 'default',
989
    );
997
    );
998
    is( $letter->{title}, 'Default payment notice',
999
        'GetPreparedLetter should return the notice in default language' );
990
    like( $letter->{content}, qr/Paiement/, 'GetPreparedLetter should return the notice in the interface language' );
1000
    like( $letter->{content}, qr/Paiement/, 'GetPreparedLetter should return the notice in the interface language' );
991
1001
992
    $context->mock( 'interface', 'cron' );
1002
    $context->mock( 'interface', 'cron' );
993
1003
994
    $letter = C4::Letters::GetPreparedLetter(
1004
    $letter = C4::Letters::GetPreparedLetter(
995
        module                 => 'test_payment',
1005
        module                 => 'test',
996
        letter_code            => 'code',
1006
        letter_code            => 'payment',
997
        message_transport_type => 'print',
1007
        message_transport_type => 'print',
998
        tables                 => $tables,
1008
        tables                 => $tables,
999
        lang                   => 'default'
1009
        lang                   => 'default'
1000
    );
1010
    );
1011
    is( $letter->{title}, 'Default payment notice',
1012
        'GetPreparedLetter should return the notice in default language' );
1001
    like(
1013
    like(
1002
        $letter->{content}, qr/Paiement/,
1014
        $letter->{content}, qr/Paiement/,
1003
        'GetPreparedLetter should return the notice in the first language in language system preference'
1015
        'GetPreparedLetter should return the notice in the first language in language system preference'
(-)a/t/mock_templates/intranet-tmpl/prog/en/includes/accounts.inc (+61 lines)
Line 0 Link Here
1
[%- BLOCK account_type_description -%]
2
    [%- IF account.credit_type_code -%]
3
        [%- PROCESS credit_type_description credit_type = account.credit_type -%]
4
    [%- ELSIF account.debit_type_code -%]
5
        [%- PROCESS debit_type_description debit_type = account.debit_type -%]
6
    [%- END -%]
7
    [%- PROCESS account_status_description account=account -%]
8
[%- END -%]
9
10
[%- BLOCK debit_type_description -%]
11
    [%- SWITCH debit_type.code -%]
12
        [%- CASE 'ACCOUNT'          -%]<span>Account creation fee</span>
13
        [%- CASE 'ACCOUNT_RENEW'    -%]<span>Account renewal fee</span>
14
        [%- CASE 'ARTICLE_REQUEST'  -%]<span>Article request fee</span>
15
        [%- CASE 'LOST'             -%]<span>Lost item</span>
16
        [%- CASE 'MANUAL'           -%]<span>Manual fee</span>
17
        [%- CASE 'NEW_CARD'         -%]<span>New card</span>
18
        [%- CASE 'OVERDUE'          -%]<span>Fine</span>
19
        [%- CASE 'PROCESSING'       -%]<span>Lost item processing fee</span>
20
        [%- CASE 'RENT'             -%]<span>Rental fee</span>
21
        [%- CASE 'RENT_DAILY'       -%]<span>Daily rental fee</span>
22
        [%- CASE 'RENT_RENEW'       -%]<span>Renewal of rental item</span>
23
        [%- CASE 'RENT_DAILY_RENEW' -%]<span>Renewal of daily rental item</span>
24
        [%- CASE 'RESERVE'          -%]<span>Hold fee</span>
25
        [%- CASE 'RESERVE_EXPIRED'  -%]<span>Hold waiting too long</span>
26
        [%- CASE 'PAYOUT'           -%]<span>Payment from library to patron</span>
27
        [%- CASE 'VOID'             -%]<span>Credit has been voided</span>
28
        [%- CASE                    -%]<span>[% debit_type.description | html %]</span>
29
    [%- END -%]
30
[%- END -%]
31
32
[%- BLOCK credit_type_description -%]
33
    [%- SWITCH credit_type.code -%]
34
        [%- CASE 'CANCELLATION' -%]<span>Cancelled charge</span>
35
        [%- CASE 'CREDIT'       -%]<span>Credit</span>
36
        [%- CASE 'DISCOUNT'     -%]<span>Discount</span>
37
        [%- CASE 'FORGIVEN'     -%]<span>Forgiven</span>
38
        [%- CASE 'LOST_FOUND'   -%]<span>Lost item fee refund</span>
39
        [%- CASE 'OVERPAYMENT'  -%]<span>Overpayment refund</span>
40
        [%- CASE 'PAYMENT'      -%]<span>Payment</span>
41
        [%- CASE 'PROCESSING_FOUND' -%]<span>Lost item processing fee refund</span>
42
        [%- CASE 'PURCHASE'     -%]<span>Purchase</span>
43
        [%- CASE 'REFUND'       -%]<span>Refund</span>
44
        [%- CASE 'WRITEOFF'     -%]<span>Writeoff</span>
45
        [%- CASE                -%]<span>[% credit_type.description | html %]</span>
46
    [%- END -%]
47
[%- END -%]
48
49
[%- BLOCK account_status_description -%]
50
    [%- SWITCH account.status -%]
51
        [%- CASE 'UNRETURNED' -%]<span> (Accruing)</span>
52
        [%- CASE 'RETURNED'   -%]<span> (Returned)</span>
53
        [%- CASE 'REPLACED'   -%]<span> (Replaced)</span>
54
        [%- CASE 'REFUNDED'   -%]<span> (Refunded)</span>
55
        [%- CASE 'FORGIVEN'   -%]<span> (Forgiven)</span>
56
        [%- CASE 'VOID'       -%]<span> (Voided)</span>
57
        [%- CASE 'LOST'       -%]<span> (Lost)</span>
58
        [%- CASE 'CANCELLED'  -%]<span> (Cancelled)</span>
59
        [%- CASE              -%]
60
    [%- END -%]
61
[%- END -%]
(-)a/t/mock_templates/intranet-tmpl/prog/en/modules/about.tt (+1342 lines)
Line 0 Link Here
1
[% USE raw %]
2
[% USE HtmlTags %]
3
[% USE Koha %]
4
[% USE Asset %]
5
[% USE KohaDates %]
6
[% PROCESS 'i18n.inc' %]
7
[% SET footerjs = 1 %]
8
[% INCLUDE 'doc-head-open.inc' %]
9
<title>[% FILTER collapse %]
10
    [% t("About Koha") | html %] &rsaquo;
11
    [% t("Koha") | html %]
12
[% END %]</title>
13
[% INCLUDE 'doc-head-close.inc' %]
14
</head>
15
<body id="about_about" class="about">
16
[% INCLUDE 'header.inc' %]
17
[% PROCESS 'about-team.inc' %]
18
19
[% WRAPPER 'sub-header.inc' %]
20
    [% WRAPPER breadcrumbs %]
21
        [% WRAPPER breadcrumb_item %]
22
            <a href="#" aria-current="page">About Koha</a>
23
        [% END %]
24
    [% END %]
25
[% END %]
26
27
<div class="main container-fluid">
28
    <div class="row">
29
        <div class="col-md-12">
30
            [% INCLUDE 'messages.inc' %]
31
32
            <h1>About Koha</h1>
33
34
            [% WRAPPER tabs id= "abouttabs" %]
35
                [% WRAPPER tabs_nav %]
36
                    [% WRAPPER tab_item linktab = 1 tabname = "about" bt_active = tab == "about" %] <span>Server information</span> [% END %]
37
                    [% WRAPPER tab_item linktab = 1 tabname = "perl" bt_active = tab == "perl" %] <span>Perl modules</span> [% END %]
38
                    [% WRAPPER tab_item linktab = 1 tabname = "sysinfo" bt_active = tab == "sysinfo" %] <span>System information</span> [% END %]
39
                    [% WRAPPER tab_item linktab = 1 tabname = "team" bt_active = tab == "team" %] <span>Koha team</span> [% END %]
40
                    [% WRAPPER tab_item linktab = 1 tabname = "licenses" bt_active = tab == "licenses" %] <span>Licenses</span> [% END %]
41
                    [% WRAPPER tab_item linktab = 1 tabname = "translations" bt_active = tab == "translations" %] <span>Translations</span> [% END %]
42
                    [% WRAPPER tab_item linktab = 1 tabname = "history" bt_active = tab == "history" %] <span>Timeline</span> [% END %]
43
                    [% WRAPPER tab_item linktab = 1 tabname = "dedications" bt_active = tab == "dedications" %] <span>Dedications</span> [% END %]
44
                [% END %]
45
                [% WRAPPER tab_panels %]
46
                    [% SWITCH tab %]
47
                        [% CASE 'about' %] [% PROCESS about_panel %]
48
                        [% CASE 'perl' %] [% PROCESS perl_panel %]
49
                        [% CASE 'sysinfo' %] [% PROCESS sysinfo_panel %]
50
                        [% CASE 'team' %] [% PROCESS team_panel %]
51
                        [% CASE 'licenses' %] [% PROCESS licenses_panel %]
52
                        [% CASE 'translations' %] [% PROCESS translations_panel %]
53
                        [% CASE 'history' %] [% PROCESS history_panel %]
54
                        [% CASE 'dedications' %] [% PROCESS dedications_panel %]
55
                        [% CASE %] [% PROCESS about_panel %]
56
                    [% END %]
57
                [% END %]
58
            [% END # /WRAPPER abouttabs %]
59
        </div> <!-- /.col-md-12 -->
60
    </div> <!-- /.row -->
61
<!-- the main div is closed in intranet-bottom.inc -->
62
[% INCLUDE 'intranet-bottom.inc' %]
63
64
[% BLOCK about_panel %]
65
    [% WRAPPER tab_panel tabname= "about" bt_active = 1 %]
66
        <table>
67
            <caption>Server information</caption>
68
            <tr>
69
                <th scope="row">Koha version: </th>
70
                <td>[% kohaVersion | html %][% IF kohaCodename %] <strong>[% kohaCodename | html %]</strong>[% END %]</td>
71
            </tr>
72
            <tr>
73
                <th scope="row">OS version ('uname -a'): </th>
74
                <td>[% osVersion | html %]</td>
75
            </tr>
76
            <tr>
77
                <th scope="row">Perl interpreter: </th>
78
                <td>[% perlPath | html %]</td>
79
            </tr>
80
            <tr>
81
                <th scope="row">Perl version: </th>
82
                <td>[% perlVersion | html %]</td>
83
            </tr>
84
            <tr>
85
                <th scope="row">Perl @INC: </th>
86
                <td>
87
                    [% FOREACH perlIncPat IN perlIncPath %]
88
                        [% perlIncPat.perlinc | html %] <br />
89
                    [% END %]
90
                </td>
91
            </tr>
92
            <tr>
93
                <th scope="row">MySQL version: </th>
94
                <td>[% mysqlVersion | html %]</td>
95
            </tr>
96
            <tr>
97
                <th scope="row">Apache version: </th>
98
                <td>[% apacheVersion | html %]</td>
99
            </tr>
100
            [% IF (is_psgi) %]
101
                <tr>
102
                    <th scope="row">PSGI: </th>
103
                    <td>[% psgi_server | html %]</td>
104
                </tr>
105
            [% END %]
106
            [% IF Koha.Preference('SearchEngine') == 'Elasticsearch' %]
107
                <tr>
108
                    <th scope="row">Elasticsearch: </th>
109
                    [% IF elasticsearch_fatal_config_error %]
110
                        <td><span class="bg-warning">[% elasticsearch_fatal_config_error | html %]</span></td>
111
                    [% ELSE %]
112
                        [% IF elasticsearch_status.running %]
113
                            <td class="bg-success">
114
                        [% ELSE %]
115
                            <td>
116
                        [% END %]
117
                            <span>Version:</span>
118
                            <span>[% elasticsearch_status.version | html %]</span>
119
                            |
120
                            <span>Nodes:</span>
121
                            <span>[% elasticsearch_status.nodes.join(' / ') | html %]</span>
122
                            |
123
                            <span>Status:</span>
124
                        [% IF elasticsearch_status.running %]
125
                            <span>running</span>
126
                            |
127
                            <span>Indices:</span>
128
                            [% FOREACH index IN elasticsearch_status.indexes %]
129
                                [% index.index_name | html %]
130
                                (<span>count:</span> <em>[% index.index_count | html %]</em>)
131
                                [% UNLESS loop.last %], [% END %]
132
                            [% END %]
133
                        [% ELSE %]
134
                            <span class="bg-warning">not running</span>
135
                        [% END %]
136
                        </td>
137
                    [% END # /IF elasticsearch_fatal_config_error %]
138
                </tr>
139
            [% END %]
140
            <tr>
141
                <th scope="row">Memcached: </th>
142
                [% IF memcached_running AND is_memcached_still_active AND where_is_memcached_config == 'config_only' %]
143
                    <td class="bg-success">
144
                [% ELSE %]
145
                    <td>
146
                [% END %]
147
                    <span>Servers:</span>
148
                    [% IF memcached_servers %]
149
                        <span>[% memcached_servers | html %]</span>
150
                    [% ELSE %]
151
                        <span>undefined</span>
152
                    [% END %] |
153
                    <span>Namespace:</span>
154
                    [% IF memcached_namespace %]
155
                        <span>[% memcached_namespace | html %]</span>
156
                    [% ELSE %]
157
                        <span>undefined</span>
158
                    [% END %] |
159
                    <span>Status:</span>
160
                    [% IF memcached_servers %]
161
                        [% IF memcached_running and is_memcached_still_active %]
162
                            <span class="bg-success">running</span>.
163
                        [% ELSE %]
164
                            <span class="bg-warning">not running</span>.
165
                            [% IF is_psgi %]
166
                                <span>Remember memcached needs to be started before Plack.</span>
167
                            [% END %]
168
                        [% END %]
169
                    [% ELSE %]
170
                        <span>unknown</span>
171
                    [% END %] |
172
                    <span>Config read from:</span>
173
                    [% SWITCH where_is_memcached_config %]
174
                        [% CASE 'config_only' %]
175
                            <span class="bg-success">koha-conf.xml</span>
176
                        [% CASE 'ENV_only' %]
177
                            <span class="bg-warning">ENV</span> <span>Note that the right place to define the memcached config is in your $KOHA_CONF file</span>
178
                        [% CASE 'both' %]
179
                            <span class="bg-warning">ENV and koha-conf.xml</span> <span>Note that the right place to define the memcached config is in your $KOHA_CONF file. To avoid any misunderstanding you should not export the memcached config from ENV.</span>
180
                        [% CASE # nowhere %]
181
                            <span class="bg-warning">Nowhere</span> <span>Note that the right place to define the memcached config is in your $KOHA_CONF file. Currently you do not have a valid memcached configuration defined.</span>
182
                    [% END %]
183
                    [% IF effective_caching_method != 'Cache::Memcached::Fast::Safe' %]
184
                        | <span>Effective caching method:</span> [% effective_caching_method | html %]
185
                    [% END %]
186
                </td>
187
            </tr>
188
            <tr>
189
                <th scope="row">Zebra version: </th>
190
                <td>[% zebraVersion | html %]</td>
191
            </tr>
192
            <tr>
193
                <th scope="row">Zebra status: </th>
194
                [% IF (errZebraConnection == 10000) %]
195
                    <td class="bg-danger"><strong>Zebra server seems not to be available. Is it started?</strong></td>
196
                [% ELSIF (errZebraConnection) %]
197
                    <td class="bg-warning"><strong>Error message from Zebra: [% ( errZebraConnection ) | html %]</strong></td>
198
                [% ELSE %]
199
                    <td class="bg-success">Running</td>
200
                [% END %]
201
            </tr>
202
            <tr>
203
                <th scope="row">Message broker: </th>
204
                [% IF warnConnectBroker %]
205
                    <td class="bg-warning"><strong>Using SQL polling</strong></td>
206
                [% ELSE %]
207
                    <td class="bg-success">Using RabbitMQ</td>
208
                [% END %]
209
            </tr>
210
            <tr>
211
                <th scope="row">Date and time: </th>
212
                <td>[% current_date_and_time | $KohaDates  with_hours => 1 %]</td>
213
            </tr>
214
            <tr>
215
                [% timezone_config_class = (time_zone.config_invalid) ? 'bg-warning' : '' %]
216
                [% timezone_env_class    = (time_zone.env_invalid)    ? 'bg-warning' : '' %]
217
                <th scope="row">Time zone: </th>
218
                <td>
219
                    <span>Used:</span> <span>[% time_zone.actual | html %]</span>
220
                    [% IF time_zone.actual_bad_tz_fallback %]
221
                        <span>(This is a fallback value due to a bad configuration)</span>
222
                    [% END %]
223
                    |
224
                    <span>Config:</span>
225
                    [% IF time_zone.config != '' %]
226
                        <span class="[% timezone_config_class | html %]">[% time_zone.config | html %]</span>
227
                    [% ELSE %]
228
                        <span>Undefined</span>
229
                    [% END %] |
230
                    <span>Environment (TZ):</span>
231
                    [% IF time_zone.environment != '' %]
232
                        <span class="[% timezone_env_class | html %]">[% time_zone.environment | html %]</span>
233
                    [% ELSE %]
234
                        <span>Undefined</span>
235
                    [% END %]
236
                </td>
237
            </tr>
238
        </table>
239
    [% END # tab=about %]
240
[% END %]
241
242
[% BLOCK perl_panel %]
243
    [% WRAPPER tab_panel tabname= "perl" bt_active = 1 %]
244
        <table style="cursor:pointer">
245
            <caption>Perl modules</caption>
246
            [% FOREACH tabl IN table %]
247
                <tr>
248
                    [% FOREACH ro IN tabl.row %]
249
                        [% IF ( ro.current ) %]
250
                            [% IF ( ro.require ) %]
251
                                <th scope="row" style="font-weight:bold;" title="Module current">
252
                            [% ELSE %]
253
                                <th scope="row" style="font-weight:normal" title="Module current">
254
                            [% END %]
255
                        [% ELSIF ( ro.upgrade ) %]
256
                            [% IF ( ro.require ) %]
257
                                <th scope="row" style="background-color:#FFCB2F;font-weight:bold;" title="Module upgrade needed">
258
                            [% ELSE %]
259
                                <th scope="row" style="background-color:#FFCB2F;font-weight:normal" title="Module upgrade needed">
260
                            [% END %]
261
                        [% ELSE %]
262
                            [% IF ( ro.name == '' ) %]
263
                                <th>
264
                            [% ELSIF ( ro.require ) %]
265
                                <th scope="row" style="background-color:#FF8A8A;font-weight:bold;" title="Required module missing">
266
                            [% ELSE %]
267
                                <th scope="row" style="background-color:#FF8A8A;font-weight:normal" title="Optional module missing">
268
                            [% END %]
269
                        [% END # /IF ro.current %]
270
                        [% IF ( ro.name ) %]
271
                            [% ro.name | html %]
272
                            <span style="font-weight:normal; font-size:smaller">
273
                                ([% ro.reqversion | html %]
274
                                [% IF ro.maxversion %] - [% ro.maxversion | html %][% END %]
275
                                [% IF ro.excversion %][% FOR v IN ro.excversion %], ![% v | html %][% END %][% END %])
276
                            </span>
277
                        [% END %]
278
                        </th>
279
                        [% IF ( ro.name == '' ) %]
280
                            <td>
281
                        [% ELSIF ( ro.version ) %]
282
                            <td>[% ro.version | html %]
283
                        [% ELSE %]
284
                            <td style="font-weight:bold">Not Installed
285
                        [% END %]
286
                            </td>
287
                    [% END # /FOREACH ro %]
288
                </tr>
289
            [% END # /FOREACH tabl %]
290
        </table>
291
    [% END # tab=perl %]
292
[% END %]
293
294
[% BLOCK sysinfo_panel %]
295
    [% IF Asset.css("css/staff-global.css") == "" || Asset.js("js/vue/dist/erm.js") == "" %]
296
        [% SET warnMissingCompiledFiles = 1 %]
297
    [% END %]
298
    [% WRAPPER tab_panel tabname= "sysinfo" bt_active = 1 %]
299
        [% IF weasyprint_missing || warnPrefRequireChoosingExistingAuthority || warnPrefEasyAnalyticalRecords || warnPrefAnonymousPatronOPACPrivacy || warnPrefAnonymousPatronAnonSuggestions || warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist || warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist || warnPrefKohaAdminEmailAddress || warnPrefOpacHiddenItems || warnPrefPatronSelfRegistrationDefaultCategory || invalid_yesno.count || warnNoActiveCurrency || warnIsRootUser || xml_config_warnings.size || warnI18nMissing || AutoSelfCheckPatronDoesNotHaveSelfCheckPerm || AutoSelfCheckPatronHasTooManyPerm || warnStatisticsFieldsError || warnNoTemplateCaching || warnILLConfiguration || has_ai_issues || oauth2_missing_deps || bad_yaml_prefs || warnRelationships || log4perl_errors || config_bcrypt_settings_no_set || warnHiddenBiblionumbers.size || warnConnectBroker || elasticsearch_has_missing || warnMissingCompiledFiles || warnDbRowFormat %]
300
            [% IF ( warnDbRowFormat ) %]
301
                <h2>Database row format incorrect</h2>
302
                <p>Database tables with a row format other than 'DYNAMIC': [% warnDbRowFormat | html %]</p>
303
                <p>You may experience problems upgrading to newer versions of Koha unless you update the row format for your database tables.</p>
304
                <p>To know how to avoid this problem see the related wiki page:
305
                    <a href="https://wiki.koha-community.org/wiki/Database_row_format">Database row format</a>
306
                </p>
307
            [% END %]
308
309
            [% IF (warnIsRootUser) %]
310
                <h2>Warning regarding current user</h2>
311
                <p>You are logged in as the database administrative user. This is not recommended because some parts of Koha will not function as expected when using this account.</p>
312
                <p>Please log in instead with a regular staff account. To create a staff account, create a library, a patron category 'Staff' and add a new patron. Then give this patron permissions from 'More' in the toolbar.</p>
313
            [% END # /IF warnIsRootUser %]
314
315
            [% IF has_ai_issues %]
316
                <h2>Data problems</h2>
317
                <p>
318
                    Some of your tables have problems with their auto_increment values which may lead to data loss.
319
                </p>
320
                <p>
321
                    <strong>You should not ignore this warning.</strong>
322
                </p>
323
                <p>
324
                    The problem is that InnoDB does not keep auto_increment across SQL server restarts (it is only set in memory). So on server startup the auto_increment values are set to max(table.id)+1.
325
                </p>
326
                <p>To know how to avoid this problem see the related wiki page:
327
                    <a href="https://wiki.koha-community.org/wiki/DBMS_auto_increment_fix">DBMS auto increment fix</a>
328
                </p>
329
330
                <h3>Problems found</h3>
331
                [% IF ai_patrons %]
332
                    <h4>Patrons</h4>
333
                    <p>The following IDs exist in both tables [% "borrowers" | $HtmlTags tag="strong" %] and [% "deletedborrowers" | $HtmlTags tag="strong" %]:</p>
334
                    <p>
335
                        [% FOR p IN ai_patrons %]
336
                            [% p.borrowernumber | html %]
337
                            [% UNLESS loop.last %], [% END %]
338
                        [% END %]
339
                    </p>
340
                [% END %]
341
                [% IF ai_biblios %]
342
                    <h4>Bibliographic records</h4>
343
                    <p>The following IDs exist in both tables [% "biblio" | $HtmlTags tag="strong" %] and [% "deletedbiblio" | $HtmlTags tag="strong" %]:</p>
344
                    <p>
345
                        [% FOR b IN ai_biblios %]
346
                            [% b.biblionumber | html %]
347
                            [% UNLESS loop.last %], [% END %]
348
                        [% END %]
349
                    </p>
350
                [% END %]
351
                [% IF ai_biblioitems %]
352
                    <h4>Bibliographic records</h4>
353
                    <p>The following IDs exist in both tables [% "biblio" | $HtmlTags tag="strong" %] and [% "deletedbiblioitems" | $HtmlTags tag="strong" %]:</p>
354
                    <p>
355
                        [% FOR b IN ai_biblioitems %]
356
                            [% b.biblioitemnumber | html %]
357
                            [% UNLESS loop.last %], [% END %]
358
                        [% END %]
359
                    </p>
360
                [% END %]
361
                [% IF ai_items %]
362
                    <h4>Items</h4>
363
                    <p>The following IDs exist in both tables [% "items" | $HtmlTags tag="strong" %] and [% "deleteditems" | $HtmlTags tag="strong" %]:</p>
364
                    <p>
365
                        [% FOR i IN ai_items %]
366
                            [% i.itemnumber | html %]
367
                            [% UNLESS loop.last %], [% END %]
368
                        [% END %]
369
                    </p>
370
                [% END %]
371
                [% IF ai_checkouts %]
372
                    <h4>Checkouts</h4>
373
                    <p>The following IDs exist in both tables [% "issues" | $HtmlTags tag="strong" %] and [% "old_issues" | $HtmlTags tag="strong" %]:</p>
374
                    <p>
375
                        [% FOR c IN ai_checkouts %]
376
                            [% c.issue_id | html %]
377
                            [% UNLESS loop.last %], [% END %]
378
                        [% END %]
379
                    </p>
380
                [% END %]
381
                [% IF ai_holds %]
382
                    <h4>Holds</h4>
383
                    <p>The following IDs exist in both tables [% "reserves" | $HtmlTags tag="strong" %] and [% "old_reserves" | $HtmlTags tag="strong" %]:</p>
384
                    <p>
385
                        [% FOR h IN ai_holds %]
386
                            [% h.reserve_id | html %]
387
                            [% UNLESS loop.last %], [% END %]
388
                        [% END %]
389
                    </p>
390
                [% END %]
391
                <br/>
392
            [% END # /IF has_ai_issues %]
393
394
            [% IF warnRelationships %]
395
                <h2>Patron relationship problems</h2>
396
                [% IF bad_relationships_count %]
397
                    <p>Your database contained guarantee/guarantor pairs with no defined relationship. They have been set the value '_bad_data' in the [% "borrowers.relationship" | $HtmlTags tag="strong" %] and/or [% "borrower_relationships.relationship" | $HtmlTags tag="strong" %] columns. Fix them manually by recreating those relationships, or have your system's administrator correct the values.</p>
398
                [% END # /IF bad_relationships_count %]
399
400
                [% IF wrong_relationships %]
401
                    <p>The following values have been used for guarantee/guarantor relationships, but do not exist in the 'borrowerRelationship' system preference:</p>
402
                    <ul>
403
                        [% FOR rel IN wrong_relationships %]
404
                            <li>[% rel.0 | html %]</li>
405
                        [% END %]
406
                    </ul>
407
                    <p>If the relationship is one you want, please add it to the 'borrowerRelationship' system preference, otherwise have your system's administrator correct the values in [% "borrowers.relationship" | $HtmlTags tag="strong" %] and/or [% "borrower_relationships.relationship" | $HtmlTags tag="strong" %] in the database.</p>
408
                [% END # /IF wrong_relationships %]
409
            [% END # /IF warnRelationships %]
410
411
            [% IF log4perl_errors %]
412
                <h2>Logging system does not behave correctly</h2>
413
                [% FOR e IN log4perl_errors %]
414
                    [% SWITCH e %]
415
                        [% CASE 'missing_config_entry' %]<span>There is no 'log4perl_conf' entry in the config file.</span>
416
                        [% CASE 'cannot_read_config_file' %]<span>The log4perl config file cannot be opened.</span>
417
                        [% CASE 'logfile_not_writable' %]<span>One of the logfiles listed in the config file is not writable.</span>
418
                        [% CASE 'cannot_init_module' %]<span>The Koha::Logger module cannot be initiated correctly (check the log file).</span>
419
                        [% CASE %]<span>Unknown error '[% e | html %]'.</span>
420
                    [% END %]
421
                [% END # /FOR e %]
422
            [% END # /IF log4perl_errors %]
423
424
            [% IF warnConnectBroker %]
425
                <h2>Impossible to connect to the message broker</h2>
426
                There is an error when trying to connect to the message broker (RabbitMQ), check the Koha log files.
427
                <br/>
428
                Maybe it is not installed and configured correctly?
429
                <br/>
430
                Contact your system administrator.
431
            [% END # /IF warnConnectBroker %]
432
433
            [% IF weasyprint_missing || warnPrefRequireChoosingExistingAuthority || warnPrefEasyAnalyticalRecords || warnPrefAnonymousPatronOPACPrivacy || warnPrefAnonymousPatronAnonSuggestions || warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist || warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist || warnPrefKohaAdminEmailAddress || warnPrefOpacHiddenItems || warnPrefPatronSelfRegistrationDefaultCategory || invalid_yesno.count || warnNoActiveCurrency || AutoSelfCheckPatronDoesNotHaveSelfCheckPerm || AutoSelfCheckPatronHasTooManyPerm || warnStatisticsFieldsError || warnNoTemplateCaching || warnILLConfiguration || warnXSLT || oauth2_missing_deps || bad_yaml_prefs || warnIssuingRules || config_bcrypt_settings_no_set || warnHiddenBiblionumbers.size || warnFastCataloging %]
434
                <h2>Warnings regarding the system configuration</h2>
435
                <table>
436
                    <caption>Preferences and parameters</caption>
437
                    [% IF (warnFastCataloging) %]
438
                        <tr>
439
                            <th scope="row"><strong>Warning</strong> </th>
440
                            <td>There is no "Fast add" (FA) framework defined in administration->MARC frameworks. This disables the 'Fast cataloging' feature in cataloging/circulation.</td>
441
                        </tr>
442
                    [% END %]
443
                    [% IF (warnPrefRequireChoosingExistingAuthority) %]
444
                        <tr>
445
                            <th scope="row"><strong>Warning</strong> </th>
446
                            <td>System preference 'RequireChoosingExistingAuthority' is disabled, but needs 'AutoCreateAuthorites' enabled. Otherwise catalogers can add headings that will not be linked to authorities.</td>
447
                        </tr>
448
                    [% END %]
449
                    [% IF (warnPrefEasyAnalyticalRecords) %]
450
                        <tr>
451
                            <th scope="row"><strong>Warning</strong> </th>
452
                            <td>System preference 'EasyAnalyticalRecords' set, but UseControlNumber preference is set to 'Use'. Set it to 'Don't use' or else the 'Show analytics' links in the staff interface and the OPAC will be broken.</td>
453
                        </tr>
454
                    [% END %]
455
                    [% IF warnPrefAnonymousPatronOPACPrivacy %]
456
                        <tr>
457
                            <th scope="row"><strong class="error">Error</strong> </th>
458
                            <td>System preference 'OPACPrivacy' set, but AnonymousPatron preference is set to '0'. Set it to a valid borrower number or checkins for these patrons will fail.</td>
459
                        </tr>
460
                    [% END %]
461
                    [% IF warnPrefAnonymousPatronAnonSuggestions %]
462
                        <tr>
463
                            <th scope="row"><strong>Warning</strong> </th>
464
                            <td>System preference 'AnonSuggestions' set, but AnonymousPatron preference is set to '0'. Set it to a valid borrower number if you want that this feature works correctly.</td>
465
                        </tr>
466
                    [% END %]
467
                    [% IF warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist %]
468
                        <tr>
469
                            <th scope="row"><strong class="error">Error</strong> </th>
470
                            <td>Some patrons have requested privacy after their items are checked in, but the AnonymousPatron preference is not set correctly. Set it to a valid borrower number or checkins for these patrons will fail.</td>
471
                        </tr>
472
                    [% END %]
473
                    [% IF warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist %]
474
                        <tr>
475
                            <th scope="row"><strong>Warning</strong> </th>
476
                            <td>System preference 'AnonSuggestions' set, but AnonymousPatron preference is not set correctly. Set it to a valid borrower number if you want that this feature works correctly.</td>
477
                        </tr>
478
                    [% END %]
479
                    [% IF warnPrefKohaAdminEmailAddress %]
480
                        <tr>
481
                            <th scope="row"><strong>Warning</strong> </th>
482
                            <td>System preference 'KohaAdminEmailAddress' does not contain a valid email address. Emails will not be sent.</td>
483
                        </tr>
484
                    [% END %]
485
                    [% IF warnPrefOpacHiddenItems %]
486
                        <tr>
487
                            <th scope="row"><strong>Warning</strong> </th>
488
                            <td>System preference 'OpacHiddenItems' generates a warning and will produce unexpected behaviors: [% warnPrefOpacHiddenItems | html %]</th></tr>
489
                    [% END %]
490
                    [% IF warnPrefPatronSelfRegistrationDefaultCategory %]
491
                        <tr><th scope="row"><strong>Warning</strong> </th><td>System preference 'PatronSelfRegistration' is set, but 'PatronSelfRegistrationDefaultCategory' does not contain a valid patron category code. Patron self-registration is disabled.</td></tr>
492
                    [% END %]
493
                    [% IF warnXSLT %]
494
                        [% FOR p IN warnXSLT %]
495
                            <tr>
496
                                <th scope="row"><strong>Warning</strong> </th>
497
                                <td>System preference '[% p.syspref | html %]' is '[% p.value | html %]', but the file '[% p.filename | html %]' does not exist.</th></tr>
498
                        [% END %]
499
                    [% END %]
500
                    [% IF invalid_yesno.count %]
501
                        [% FOR p IN invalid_yesno %]
502
                            <tr>
503
                                <th scope="row"><strong>Warning</strong> </th>
504
                                <td>System preference '[% p.variable | html %]' must be '0' or '1', but is [% IF p.value.defined %]'[% p.value | html%]'[% ELSE %]NULL[% END %].</td>
505
                            </tr>
506
                        [% END %]
507
                    [% END %]
508
                    [% IF warnNoActiveCurrency %]
509
                        <tr>
510
                            <th scope="row"><strong>Warning</strong> </th>
511
                            <td>No active currency is defined. Please go to <a href="/cgi-bin/koha/admin/currency.pl">Administration &gt; Currencies and exchange rates</a> and mark one currency as active.</td>
512
                        </tr>
513
                    [% END %]
514
                    [% IF warnStatisticsFieldsError %]
515
                        <tr>
516
                            <th scope="row"><strong>Warning</strong> </th>
517
                            <td>System preference 'StatisticsFields' contains field names not belonging to the items database table: [% warnStatisticsFieldsError | html %] </td>
518
                        </tr>
519
                    [% END %]
520
                    [% IF AutoSelfCheckPatronDoesNotHaveSelfCheckPerm %]
521
                        <tr>
522
                            <th scope="row"><strong>Warning</strong> </th>
523
                            <td>
524
                                The patron used for the self checkout module at the OPAC does not have the self_check => self_checkout_module permission.
525
                            </td>
526
                        </tr>
527
                    [% END %]
528
                    [% IF AutoSelfCheckPatronHasTooManyPerm %]
529
                        <tr>
530
                            <th scope="row"><strong>Warning</strong> </th>
531
                            <td>
532
                                The patron used for the self checkout module at the OPAC has too many permissions. They should only have self_check => self_checkout_module.
533
                            </td>
534
                        </tr>
535
                    [% END %]
536
                    [% IF warnNoTemplateCaching %]
537
                        <tr>
538
                            <th scope="row"><strong>Warning</strong> </th>
539
                            <td>
540
                                You are missing the &lt;template_cache_dir&gt; entry in your koha-conf.xml file.
541
                                That will bring a performance boost to enable it.
542
                            </td>
543
                        </tr>
544
                    [% END %]
545
                    [% IF warnI18nMissing %]
546
                        <tr>
547
                            <th scope="row"><strong>Warning</strong> </th>
548
                            <td>
549
                                The PO directory has not been found. See <a href="https://wiki.koha-community.org/wiki/Translation_files">the dedicated wiki page</a> for more information.
550
                            </td>
551
                        </tr>
552
                    [% END %]
553
                    [% IF warnILLConfiguration %]
554
                        [% IF no_ill_backends %]
555
                            <tr>
556
                                <th scope="row"><strong>Warning</strong> </th>
557
                                <td>
558
                                    The ILL module is enabled, but there are no backends available.
559
                                </td>
560
                            </tr>
561
                        [% END %]
562
                        [% IF ill_partner_code_not_defined %]
563
                            <tr>
564
                                <th scope="row"><strong>Warning</strong> </th>
565
                                <td>
566
                                    The ILL module is enabled, but ILLPartnerCode system preference is empty. Falling back to the hardcoded 'IL'.
567
                                </td>
568
                            </tr>
569
                        [% END %]
570
                        [% IF ill_partner_code_no_patrons %]
571
                            <tr>
572
                                <th scope="row"><strong>Warning</strong> </th>
573
                                <td>
574
                                    The ILL module is enabled and ILLPartnerCode system preference configured, but there are no patrons in [% ill_partner_code_no_patrons | html %] category.
575
                                </td>
576
                            </tr>
577
                        [% END %]
578
                        [% IF ill_branch_not_defined %]
579
                            <tr>
580
                                <th scope="row"><strong>Warning</strong> </th>
581
                                <td>
582
                                    The ILL module is enabled, but no 'branch' block is defined in koha-conf.xml. You must define this block before use.
583
                                </td>
584
                            </tr>
585
                        [% END %]
586
                        [% IF ill_partner_code_doesnt_exist %]
587
                            <tr>
588
                                <th scope="row"><strong>Warning</strong> </th>
589
                                <td>
590
                                    The ILL module is enabled, but the configured ILLPartnerCode ([% ill_partner_code_doesnt_exist | html %]) is not defined on the system.
591
                                </td>
592
                            </tr>
593
                        [% END %]
594
                    [% END %]
595
596
                    [% IF weasyprint_missing %]
597
                        <tr><th scope="row"><strong>Warning</strong> </th><td>
598
                        The <strong>weasyprint</strong> tool is not installed.
599
                        </td></tr>
600
                    [% END %]
601
602
                    [% IF oauth2_missing_deps %]
603
                        <tr>
604
                            <th scope="row"><strong>Warning</strong> </th>
605
                            <td>
606
                                System preference 'RESTOAuth2ClientCredentials' is set, but the required Net::OAuth2::AuthorizationServer dependency is missing. The feature is disabled.
607
                            </td>
608
                        </tr>
609
                    [% END %]
610
                    [% IF bad_yaml_prefs %]
611
                        <tr>
612
                            <th scope="row"><strong>Warning</strong> </th>
613
                            <td>
614
                                Some system preferences have badly formatted YAML content: [% bad_yaml_prefs.join(', ') | html %]
615
                            </td>
616
                        </tr>
617
                    [% END %]
618
                    [% IF config_bcrypt_settings_no_set %]
619
                        <tr>
620
                            <th scope="row"><strong>Warning</strong> </th>
621
                            <td>
622
                                System preference 'Pseudonymization' is set, but there is not 'bcrypt_settings' entry defined in the $KOHA_CONF file.
623
                            </td>
624
                        </tr>
625
                    [% END %]
626
                    [% IF warnHiddenBiblionumbers.size %]
627
                        <tr>
628
                            <th scope="row"><strong>Warning</strong> </th>
629
                            <td>
630
                                [% FOR w IN warnHiddenBiblionumbers %]
631
                                    <span>Bibliographic framework "[% w.frameworkcode | html %]" has the biblionumber field hidden at the interface [% w.interface | html %]</span><br/>
632
                                [% END %]
633
                            </td>
634
                        </tr>
635
                    [% END %]
636
                    [% IF Koha.Preference('SearchEngine') == 'Elasticsearch' && elasticsearch_status.version.substr(0,1) < 6 %]
637
                        <tr>
638
                            <th scope="row"><strong>Deprecation warning</strong></th>
639
                            <td>
640
                                Elasticsearch version 5.x is not supported in Koha 20.11 and greater. Please upgrade your Elasticsearch cluster
641
                            </td>
642
                        </tr>
643
                    [% END %]
644
                </table>
645
            [% END # /IF warnPrefRequireChoosingExistingAuthority %]
646
647
            [% IF xml_config_warnings.size %]
648
                <table>
649
                    <caption>XML configuration file</caption>
650
                    [% FOREACH config_entry IN xml_config_warnings %]
651
                        [% IF config_entry.error == 'zebra_bib_index_mode_is_grs1' %]
652
                            <tr>
653
                                <th scope="row"><strong>Warning</strong></th>
654
                                <td>
655
                                    The &lt;zebra_bib_index_mode&gt; entry set to 'grs1', which is no longer supported.
656
                                    Please use DOM instead. To switch follow this page of wiki:
657
                                    <a href="https://wiki.koha-community.org/wiki/Switching_to_dom_indexing">Switching to dom indexing</a>
658
                                </td>
659
                            </tr>
660
                        [% ELSIF config_entry.error == 'zebra_auth_index_mode_is_grs1' %]
661
                            <tr>
662
                                <th scope="row"><strong>Warning</strong></th>
663
                                <td>
664
                                    The &lt;zebra_auth_index_mode&gt; entry set to 'grs1', which is no longer supported.
665
                                    Please use DOM instead. To switch follow this page of wiki:
666
                                    <a href="https://wiki.koha-community.org/wiki/Switching_to_dom_indexing">Switching to dom indexing</a>
667
                                </td>
668
                            </tr>
669
                        [% ELSIF config_entry.error == 'use_zebra_facets_entry_missing' %]
670
                            <tr>
671
                                <th scope="row"><strong>Warning</strong></th>
672
                                <td>
673
                                    The &lt;use_zebra_facets&gt; entry is missing in your configuration file. Falling back
674
                                    to legacy facet calculation.
675
                                </td>
676
                            </tr>
677
                        [% ELSIF config_entry.error == 'log4perl_entry_missing' %]
678
                            <tr>
679
                                <th scope="row"><strong>Warning</strong></th>
680
                                <td>
681
                                    You are missing the &lt;log4perl_conf&gt; entry in your koha-conf.xml file. Please
682
                                    add it, pointing to the log4perl.conf file for your Koha instance.
683
                                </td>
684
                            </tr>
685
                        [% ELSIF config_entry.error == 'lockdir_entry_missing' %]
686
                            <tr>
687
                                <th scope="row"><strong>Warning</strong></th>
688
                                <td>
689
                                    You are missing the &lt;lockdir&gt; entry in your koha-conf.xml file. Please
690
                                    add it, pointing to your Koha instance's lock dir.
691
                                </td>
692
                            </tr>
693
                        [% ELSIF config_entry.error == 'lockdir_not_writable' %]
694
                            <tr>
695
                                <th scope="row"><strong>Warning</strong></th>
696
                                <td>
697
                                    The configured &lt;lockdir&gt; entry in your koha-conf.xml file points to a
698
                                    non-writable directory ([% config_entry.lockdir | html %]).
699
                                </td>
700
                            </tr>
701
                        [% ELSIF config_entry.error == 'uploadpath_entry_missing' %]
702
                            <tr>
703
                                <th scope="row"><strong>Warning</strong></th>
704
                                <td>
705
                                    You are missing the &lt;upload_path&gt; entry in your koha-conf.xml file. Please
706
                                    add it, pointing to the configured file upload directory for your Koha instance.
707
                                </td>
708
                            </tr>
709
                        [% ELSIF config_entry.error == 'uploadpath_and_opacbaseurl_entry_missing' %]
710
                            <tr>
711
                                <th scope="row"><strong>Warning</strong></th>
712
                                <td>
713
                                    You are missing the &lt;upload_path&gt; entry in your koha-conf.xml file. Please
714
                                    add it, pointing to the configured file upload directory for your Koha instance.
715
                                    Also note that you need to properly set the OPACBaseURL preference for the file upload plugin to work.
716
                                </td>
717
                            </tr>
718
                        [% ELSIF config_entry.error == 'tmp_path_missing' %]
719
                            <tr>
720
                                <th scope="row"><strong>Warning</strong></th>
721
                                <td>
722
                                    You are missing the &lt;tmp_path&gt; entry in your koha-conf.xml file. Please
723
                                    add it, pointing to the configured temporary directory for your Koha instance.
724
                                    The effective temporary directory is '[% config_entry.effective_tmp_dir | html %]'.
725
                                </td>
726
                            </tr>
727
                        [% ELSIF config_entry.error == 'encryption_key_missing' %]
728
                            <tr>
729
                                <th scope="row"><strong>Warning</strong></th>
730
                                <td>
731
                                    You are missing the &lt;encryption_key&gt; entry in your koha-conf.xml file.
732
                                    Please generate a key. We recommend one of at least 32 bytes. (You might use 'pwgen 32' to do so.)
733
                                </td>
734
                            </tr>
735
                        [% END # /IF config_entry.error %]
736
                    [% END # /FOREACH config_entry %]
737
                </table>
738
            [% END # /IF xml_config_warnings.size %]
739
740
            [% IF warnIssuingRules %]
741
                <table>
742
                    <caption>Issuing rules</caption>
743
                    [% FOREACH unit IN ir_units %]
744
                        <tr>
745
                            <th scope="row"><strong>Warning</strong></th>
746
                            <td>
747
                                The [% unit.branchcode || 'branchcode=default' | html %], [% unit.categorycode || 'categorycode=default' | html %], [% unit.itemtype || 'itemtype=default' | html %]issuingrule will fallback to 'days' for 'lengthunit' as it is incorrectly defined as [% unit.rule_value | html %].
748
                            </td>
749
                        </tr>
750
                    [% END # /FOREACH unit %]
751
                </table>
752
            [% END # /IF warnIssuingRules %]
753
754
            [% IF elasticsearch_has_missing %]
755
                <table>
756
                    <caption>Records are not indexed in Elasticsearch</caption>
757
                    [% FOREACH index IN elasticsearch_status.indexes %]
758
                        [% IF index.missing_count %]
759
                            <tr>
760
                                <th scope="row"><strong>Warning</strong></th>
761
                                <td>
762
                                    [% index.missing_count | html %] record(s) missing on a total of [% index.index_count | html %] in index [% index.index_name | html %].
763
                                </td>
764
                            </tr>
765
                        [% END %]
766
                    [% END %]
767
                </table>
768
            [% END # /IF elasticsearch_has_missing %]
769
770
            [% IF warnMissingCompiledFiles %]
771
                <tr><th scope="row"><strong class="error">Error</strong></th><td>
772
                    Compiled CSS and/or JS files are not present. Please run `yarn build` to generate them.
773
                </td></tr>
774
            [% END # /IF warnMissingCompiledFiles %]
775
776
        [% ELSE %]
777
            <p>No warnings.</p>
778
        [% END # /IF warnRequireChoosingExistingAuthority... %]
779
    [% END # tab=sysinfo %]
780
[% END %]
781
782
[% BLOCK team_panel %]
783
    [% WRAPPER tab_panel tabname= "team" bt_active = 1 %]
784
        <h2>Special thanks to the following organizations</h2>
785
        <ul>
786
            <li>
787
                <a href="http://library.org.nz">Horowhenua Library Trust</a>, New Zealand, and Rosalie Blake, Head of Libraries, (Koha 1.0)
788
            </li>
789
            <li>
790
                The <a href="http://www.myacpl.org/">Athens County Public Libraries</a>, Ohio, USA (MARC sponsorship, documentation, template maintenance)</li>
791
            <li>
792
                <a href="http://www.emn.fr">EMN (Ecole des Mines de Nantes)</a>, France (Suggestions, Stats wizards and improved LDAP sponsorship)
793
            </li>
794
            <li>
795
                <a href="http://www.mines-paristech.fr">Mines Paristech (previously Ecole Nationale Supérieure des Mines de Paris)</a>, France (bibliographic frameworks, MARC authorities, OPAC basket, Serials sponsorship)
796
            </li>
797
            <li>
798
                <a href="http://www.mediathequeouestprovence.fr/">SAN-Ouest Provence</a>, France (Koha 3.0 enhancements to patrons and holds modules)
799
            </li>
800
            <li>
801
                The <a href="http://ccfls.org">Crawford County Federated Library System</a>, PA, USA (Koha 3.0 Zebra Integration sponsorship)</li>
802
            <li>
803
                The <a href="http://www.geauga.lib.oh.us/">Geauga County Public Library</a>, OH, USA (Koha 3.0 beta testing)</li>
804
            <li>
805
                The <a href="http://library.neu.edu.tr">Near East University</a>, Cyprus</li>
806
            <li>
807
                OPUS International Consultants, Wellington, New Zealand (Corporate Serials sponsorship)</li>
808
            <li>
809
                <a href="http://www.famfamfam.com/">famfamfam.com</a> Birmingham (UK) based developer Mark James for the famfamfam Silk iconset.
810
            </li>
811
            <li>
812
                <a href="http://www.ashs.school.nz/">Albany Senior High School</a>, Auckland, New Zealand (OPAC 'star-ratings' sponsorship)
813
            </li>
814
        </ul>
815
816
        <h2>Koha release teams</h2>
817
        [% IF maintenance_team %]
818
            <div class="row">
819
                <div class="col-md-6">
820
                    <h3>Koha [% short_version | html %][% IF kohaCodename %] ([% kohaCodename | html %])[% END %] release team</h3>
821
                    [% IF development_version %]
822
                        <p>You are running a development version of Koha</p>
823
                    [% ELSE %]
824
                        [% INCLUDE team t=release_team v='release' %]
825
                    [% END %]
826
                </div>
827
828
                <div class="col-md-6">
829
                    <h3>Current maintenance team</h3>
830
                    [% INCLUDE team t=maintenance_team v=short_version %]
831
                    [% IF development_version %]
832
                            <li><strong>Release maintainers:</strong>
833
                            <ul>
834
                                [% FOREACH m IN maintenance_team.maintainer %]
835
                                <li>[% m.version | html %] - [% INCLUDE person p=m %]</li>
836
                                    [% IF maintenance_team.maintainer_assistants %]
837
                                    [% FOREACH ma IN maintenance_team.maintainer_assistants %]
838
                                        [% IF ma.version == ( m.version ) %]
839
                                        <ul><li><strong>Assistant:</strong> [% INCLUDE person p=ma %]</li></ul>
840
                                        [% END %]
841
                                    [% END %]
842
                                    [% END %]
843
844
                                    [% IF maintenance_team.maintainer_mentors %]
845
                                    [% FOREACH mm IN maintenance_team.maintainer_mentors %]
846
                                        [% IF m.version == ( mm.version ) %]
847
                                        <ul><li><strong>Mentor:</strong> [% INCLUDE person p=mm %]</li></ul>
848
                                        [% END %]
849
                                    [% END %]
850
                                    [% END %]
851
                                [% END %]
852
                            </ul>
853
                        </li>
854
                    [% END %]
855
                </div>
856
            </div>
857
        [% ELSE %]
858
            <div class="dialog alert">
859
                Could not read the teams.yaml file. Please make sure &lt;docdir&gt; is correctly defined in koha-conf.xml.
860
            </div>
861
        [% END # /maintenance_team %]
862
863
        <h2>Koha development team</h2>
864
        [% IF contributors.size %]
865
            <ul class="columns-4">
866
                [% FOREACH contributor IN contributors %]
867
                    <li>[% INCLUDE person p=contributor %][% INCLUDE contributions p=contributor %]</li>
868
                [% END %]
869
            </ul>
870
        [% ELSE %]
871
            <div class="dialog alert">
872
                Could not read the contributors.yaml file. Please make sure &lt;docdir&gt; is correctly defined in koha-conf.xml.
873
            </div>
874
        [% END # /IF contributors.size %]
875
        <hr>
876
877
        <h2>Contributing companies and institutions</h2>
878
        <ul class="columns-4">
879
            <li>Allen Ginsberg Library, USA</li>
880
            <li>Alingsås Public Library, Sweden</li>
881
            <li>American Numismatic Society, USA</li>
882
            <li>Arcadia Public Library, USA</li>
883
            <li>Athens County Public Libraries, USA</li>
884
            <li>BdP de la Meuse, France</li>
885
            <li>BibLibre, France</li>
886
            <li>Biblioteca Provincial Fr. Mamerto Esquiú (Provincia Franciscana de la Asunción), Argentina</li>
887
            <li>Bibliotheksservice-Zentrum Baden-Württemberg (BSZ), Germany</li>
888
            <li>Briar Cliff University, USA</li>
889
            <li>Brimbank City Council, Australia</li>
890
            <li>Brooklyn Law School Library, USA</li>
891
            <li>Bibliothèque Universitaire des Langues et Civilisations (<a href="https://www.bulac.fr">BULAC</a>), France</li>
892
            <li>ByWater Solutions, USA</li>
893
            <li>California College of the Arts, USA</li>
894
            <li>Camden County, USA</li>
895
            <li>Carnegie Stout Library, USA</li>
896
            <li>Calyx, Australia</li>
897
            <li>Catalyst IT, New Zealand</li>
898
            <li>Central Kansas Library System (CKLS), USA</li>
899
            <li>Centre collégial des services regroupés (CCSR), Canada</li>
900
            <li>Cheshire Libraries, United Kingdom</li>
901
            <li>Coeur d'Alene Public Library, USA</li>
902
            <li>Corpus Christi Public Libraries, USA</li>
903
            <li>C &amp; P Bibliography Services, USA</li>
904
            <li>Dataly Tech, Greece</li>
905
            <li>Devinim, Turkey</li>
906
            <li>Do Space, USA</li>
907
            <li>DoverNet, USA</li>
908
            <li>doXulting</li>
909
            <li>Duchesne County Library, USA</li>
910
            <li>Escuela de Orientacion Lacaniana, Argentina</li>
911
            <li>Fenway Library Organization, USA</li>
912
            <li>Fargo Public Library, USA</li>
913
            <li>Farmington Public Library, USA</li>
914
            <li>FIT</li>
915
            <li>Foundations Bible College &amp; Seminary, USA</li>
916
            <li>Goethe-Institut, Germany</li>
917
            <li>Gothenburg University Library, Sweden</li>
918
            <li>Halland County Library, Sweden</li>
919
            <li>Harrison Carmel Public Library, USA</li>
920
            <li>Hauraki District Libraries, New Zealand</li>
921
            <li>Higher Education Libraries of Massachusetts, USA</li>
922
            <li>Hochschule für Gesundheit (hsg), Germany</li>
923
            <li>Hotchkiss School, USA</li>
924
            <li>Katipo Communications, New Zealand</li>
925
            <li>KEEP SOLUTIONS, Portugal</li>
926
            <li>KohaAloha, New Zealand</li>
927
            <li>Koha-Suomi Oy, Finland</li>
928
            <li>LibLime, USA</li>
929
            <li>Library of the Józef Piłsudski Institute of America, USA</li>
930
            <li>Libriotech, Norway</li>
931
            <li>Los Gatos Public Library, USA</li>
932
            <li>Lund University Library, Sweden</li>
933
            <li>MassCat, USA</li>
934
            <li>Middletown Township Public Library, USA</li>
935
            <li>National Library of Finland, Finland</li>
936
            <li>Newcastle City Council, United Kingdom</li>
937
            <li>New Zealand Central Agencies Library, New Zealand</li>
938
            <li>New Zealand Ministry of Education Library, New Zealand</li>
939
            <li>North Central Regional Library (NCRL), USA</li>
940
            <li>Northeast Kansas Library System (NEKLS), USA</li>
941
            <li>OPUS</li>
942
            <li>Orex Digital, Spain</li>
943
            <li>Oslo Public Library, Norway</li>
944
            <li>Plano Independent School, USA</li>
945
            <li>Plant and Food Research Limited, New Zealand</li>
946
            <li>Prosentient Systems, Australia</li>
947
            <li>PTFS, Maryland, USA</li>
948
            <li>PTFS Europe Ltd, United Kingdom</li>
949
            <li>Rijksmuseum, Amsterdam, The Netherlands</li>
950
            <li>Rolling Hills Consolidated Libraries, USA</li>
951
            <li>Round Rock Public Library, USA</li>
952
            <li>SAN-Ouest Provence, France</li>
953
            <li>Sefton Council, United Kingdom</li>
954
            <li>software.coop, United Kingdom</li>
955
            <li>South-East Kansas Library System (SEKLS), USA</li>
956
            <li>South Taranaki District Council, New Zealand</li>
957
            <li>Stockholm University Library, Sweden</li>
958
            <li>SWITCH Library Consortium, USA</li>
959
            <li>Talking Tech, Global</li>
960
            <li>Tamil, France</li>
961
            <li>Theke Solutions, Argentina</li>
962
            <li>Tulong Aklatan, Philippines</li>
963
            <li>Uintah Library System, USA</li>
964
            <li>Universidad de El Salvador, El Salvador</li>
965
            <li>Universidad Empresarial Siglo 21, Argentina</li>
966
            <li>Universidad Nacional de Córdoba, Argentina</li>
967
            <li>Universidad ORT Uruguay</li>
968
            <li>Université d'Aix-Marseille, France</li>
969
            <li>Université de Lyon 3, France</li>
970
            <li>Université de Rennes 2, France</li>
971
            <li>Université de St Etienne, France</li>
972
            <li>University of the Arts London, United Kingdom</li>
973
            <li>Vaara-kirjastot, Finland</li>
974
            <li>Vanier College, Canada</li>
975
            <li>Vermont Organization of Koha Automated Libraries (VOKAL), USA</li>
976
            <li>Ville de Victoriaville, Canada</li>
977
            <li>Virginia Tech, USA</li>
978
            <li>Washoe County Library System, USA</li>
979
            <li>Xercode, Spain</li>
980
        </ul>
981
982
        <h2>Additional thanks to...</h2>
983
        <ul>
984
            <li>Irma Birchall</li>
985
            <li>Rachel Hamilton-Williams (Kaitiaki from 2004 to present)</li>
986
            <li>Stephen Hedges (early Documentation Manager)</li>
987
            <li>Brooke Johnson</li>
988
            <li>Jo Ransom</li>
989
            <li>Nicholas Rosasco (Documentation Compiler)</li>
990
            <li>Regula Sebastiao</li>
991
        </ul>
992
    [% END # tab=team %]
993
[% END %]
994
995
[% BLOCK licenses_panel %]
996
    [% WRAPPER tab_panel tabname= "licenses" bt_active = 1 %]
997
        <h2>Koha</h2>
998
        <p>
999
            This program is free software: you can redistribute it and/or modify it under the terms of the <a rel="license" href="https://www.gnu.org/licenses/gpl-3.0.html">GNU General Public License</a> as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
1000
        </p>
1001
1002
        <h2>Bootstrap</h2>
1003
        <p>
1004
            <a href="https://getbootstrap.com/">Bootstrap</a>, <a href="https://glyphicons.com">Glyphicons Free</a>: <a href="https://github.com/twbs/bootstrap/blob/master/LICENSE">MIT License</a>
1005
        </p>
1006
1007
        <h2>Bootstrap Icons</h2>
1008
        <p>
1009
            <a href="https://icons.getbootstrap.com/">Bootstrap Icons</a>: <a href="https://github.com/twbs/icons/blob/main/LICENSE">MIT License</a>
1010
        </p>
1011
1012
        <h2>Bridge Material Type Icon Set</h2>
1013
        <p>
1014
            <a href="http://apps.carleton.edu/campus/library/bridge_icons/">Bridge Material Type Icons Project</a>: <a href="https://creativecommons.org/licenses/by-sa/2.5/">Creative Commons Attribution-ShareAlike 2.5 License</a>
1015
        </p>
1016
1017
        <h2>Chocolat.js</h2>
1018
        <p>
1019
            <a href="http://chocolat.insipi.de">Chocolat.js v1.1.2</a>: <a href="https://github.com/nicolas-t/Chocolat/blob/v1.1.2/LICENSE">GNU General Public License v3.0</a>
1020
        </p>
1021
1022
        <h2>CodeMirror</h2>
1023
        <p>
1024
            <a href="https://codemirror.net/">CodeMirror v5.40.2</a>: <a href="https://github.com/codemirror/codemirror5/blob/5.40.2/LICENSE">MIT License</a>
1025
        </p>
1026
1027
        <h2>C3.js</h2>
1028
        <p>
1029
            <a href="https://c3js.org/">C3.js D3-based reusable chart library v0.4.11</a>: <a href="https://github.com/c3js/c3/blob/0.4.11/LICENSE">MIT Licence</a>
1030
        </p>
1031
1032
        <h2>CSSLint</h2>
1033
        <p>
1034
            <a href="">CSSLint v0.9.8</a>: <a href="https://github.com/CSSLint/csslint/blob/v0.9.8/LICENSE">License</a>
1035
        </p>
1036
1037
        <h2>D3</h2>
1038
        <p>
1039
            <a href="https://d3js.org/">D3 JavaScript library for visualizing data v3.5.17</a>: <a href="https://github.com/d3/d3/blob/v3.5.17/LICENSE">ISC Licence</a>
1040
        </p>
1041
1042
        <h2>DataTables</h2>
1043
        <p>
1044
            <a href="https://datatables.net/">DataTables v.1.10.18</a>: <a href="https://datatables.net/license/mit">MIT Licence</a>
1045
        </p>
1046
1047
        <h2>Day.js</h2>
1048
        <p>
1049
            <a href="https://day.js.org/">Day.js v1.11.2</a>: <a href="https://github.com/iamkun/dayjs/blob/v1.11.2/LICENSE">MIT License</a>
1050
        </p>
1051
1052
        <h2>Enquire.js</h2>
1053
        <p>
1054
            <a href="https://wicky.nillia.ms/enquire.js">Enquire.js v2.1.6</a>:  <a href="https://github.com/WickyNilliams/enquire.js/blob/v2.1.6/LICENSE">MIT License</a>
1055
        </p>
1056
1057
        <h2>FamFamFam icons</h2>
1058
        <p>
1059
            <a href="https://web.archive.org/web/20221224123234/http://www.famfamfam.com/lab/icons/silk/">FamFamFam Silk icons</a>: <a href="https://creativecommons.org/licenses/by/2.5/">Creative Commons Attribution 2.5 License</a>
1060
        </p>
1061
1062
        <h2>FileSaver.js</h2>
1063
        <p>
1064
            <a href="https://github.com/eligrey/FileSaver.js">FileSaver.js v2.0.4</a>: <a href="https://github.com/eligrey/FileSaver.js/blob/v2.0.4/LICENSE.md">MIT License</p>
1065
1066
        <h2>Flatpicker</h2>
1067
        <p>
1068
            <a href="https://flatpickr.js.org/">Flatpickr v4.6.9</a>: <a href="https://github.com/flatpickr/flatpickr/blob/v4.6.9/LICENSE.md">MIT License</a>
1069
        </p>
1070
1071
        <h2>Font Awesome</h2>
1072
        <p>
1073
            <a href="https://fontawesome.com/">Font Awesome v6.3.0</a>: <a href="https://github.com/FortAwesome/Font-Awesome/blob/6.3.0/LICENSE.txt">Creative Commons Attribution 4.0 International License, SIL Open Font License Version 1.1, MIT License </a>
1074
        </p>
1075
1076
        <h2>Font Face Observer</h2>
1077
        <p>
1078
            <a href="https://github.com/bramstein/fontfaceobserver">Font Face Observer JavaScript library v2.3.0</a>: <a href="https://github.com/bramstein/fontfaceobserver/blob/v2.3.0/LICENSE">BSD 2-Clause "Simplified" License</a>
1079
        </p>
1080
1081
        <h2>GreyBox</h2>
1082
        <p>
1083
            <a href="https://web.archive.org/web/20160819153233/http://orangoo.com:80/labs/GreyBox">GreyBox JavaScript Library v5.54</a>: <a href="https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html">GNU Lesser General Public License, version 2.1</a>
1084
        </p>
1085
1086
        <h2>HC Sticky</h2>
1087
        <p>
1088
            <a href="https://somewebmedia.github.io/hc-sticky/">HC Sticky JavaScript library v2.2.7</a>: <a href="https://github.com/somewebmedia/hc-sticky/blob/v2.2.7/LICENSE">MIT License</a>
1089
        </p>
1090
1091
        <h2>Highlight</h2>
1092
        <p>
1093
            <a href="https://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html">Highlight jQuery Plugin v5.0</a>: MIT License
1094
        </p>
1095
1096
        <h2>HTMLHint</h2>
1097
        <p>
1098
            <a href="https://htmlhint.com/">HTMLHint v0.9.12</a>: <a href="https://github.com/htmlhint/HTMLHint/blob/v0.9.12/LICENSE.md">MIT License</a>
1099
        </p>
1100
1101
        <h2>Humanized Messages</h2>
1102
        <p>
1103
            <a href="https://code.google.com/archive/p/humanmsg/">Humanized Messages v1.0</a>: <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>
1104
        </p>
1105
1106
        <h2>JavaScript Cookie</h2>
1107
        <p>
1108
            <a href="https://github.com/js-cookie/js-cookie">JavaScript Cookie v3.0.1</a>: <a href="https://github.com/js-cookie/js-cookie/blob/v3.0.1/LICENSE">MIT License</a>
1109
        </p>
1110
1111
        <h2>JavaScript Diff Algorithm</h2>
1112
        <p>
1113
            <a href="https://johnresig.com/projects/javascript-diff-algorithm/">JavaScript Diff Algorithm</a>: <a href="https://opensource.org/license/mit/">MIT License</a>
1114
        </p>
1115
1116
        <h2>jQuery, jQuery Migrate, and jQuery UI</h2>
1117
        <p>
1118
            <a href="https://jquery.com/">jQuery v3.6.0</a>, <a href="https://github.com/jquery/jquery-migrate">jQuery Migrate</a>, <a href="https://jqueryui.com/">jQuery UI v1.13.2</a>: <a href="https://github.com/jquery/jquery/blob/3.6.0/LICENSE.txt">MIT License</a>
1119
        </p>
1120
1121
        <h2>jQuery Bar Rating Plugin</h2>
1122
        <p>
1123
            <a href="https://antennaio.github.io/jquery-bar-rating/">jQuery Bar Rating plugin v1.2.2</a>: <a href="https://github.com/antennaio/jquery-bar-rating/blob/v1.2.2/LICENSE.txt">MIT License</a>
1124
        </p>
1125
1126
        <h2>jQuery Emojiarea Plugin</h2>
1127
        <p>
1128
            <a href="https://github.com/diy/jquery-emojiarea">Emojiarea plugin for jQuery</a>: <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>
1129
        </p>
1130
1131
        <h2>jQuery insertAtCaret Plugin</h2>
1132
        <p>
1133
            jQuery insertAtCaret Plugin v1.0 by the phpMyAdmin development team: <a href="https://www.gnu.org/licenses/gpl-3.0.html">GNU General Public License</a>
1134
        </p>
1135
1136
        <h2>jQuery jEditable</h2>
1137
        <p>
1138
            <a href="https://github.com/NicolasCARPi/jquery_jeditable">jQuery jEditable</a>: <a href="https://github.com/NicolasCARPi/jquery_jeditable/blob/master/LICENSE">MIT Licence</a>
1139
        </p>
1140
1141
        <h2>jQuery jsTree Plugin</h2>
1142
        <p>
1143
            <a href="https://www.jstree.com/">jQuery jsTree Plugin v3.3.12</a>: <a href="https://github.com/vakata/jstree/blob/3.3.12/LICENSE-MIT">MIT License</a>
1144
        </p>
1145
1146
        <h2>jQuery Multiple Select Plugin</h2>
1147
        <p>
1148
            <a href="https://multiple-select.wenzhixin.net.cn/">jQuery Multiple Select plugin v1.6.0</a>: <a href="https://github.com/wenzhixin/multiple-select/blob/1.6.0/LICENSE">MIT License</a>
1149
        </p>
1150
1151
        <h2>jQuery TableDnD Plugin</h2>
1152
        <p>
1153
            <a href="https://github.com/isocra/TableDnD">Table drag and drop JQuery plugin</a>: <a href="https://github.com/isocra/TableDnD/blob/master/MIT-LICENSE.txt">MIT License</a>
1154
        </p>
1155
1156
        <h2>jQuery Treetable Plugin</h2>
1157
        <p>
1158
            <a href="https://github.com/ludo/jquery-treetable">jQuery Treetable Plugin 3.1.0</a>: <a href="https://github.com/ludo/jquery-treetable/blob/3.1.0/GPL-LICENSE.txt"> GNU General Public License v2.0</a>, <a href="https://github.com/ludo/jquery-treetable/blob/3.1.0/MIT-LICENSE.txt">MIT License</a>
1159
        </p>
1160
1161
        <h2>jQuery Validation Plugin</h2>
1162
        <p>
1163
            <a href="https://jqueryvalidation.org/">jQuery Validation Plugin v1.19.3</a>: <a href="https://github.com/jquery-validation/jquery-validation/blob/1.19.3/LICENSE.md">MIT License</a>
1164
        </p>
1165
1166
        <h2>JS-YAML</h2>
1167
        <p>
1168
            <a href="https://nodeca.github.io/js-yaml/">JS-YAML v3.13.1</a>: <a href="https://github.com/nodeca/js-yaml/blob/3.13.1/LICENSE">MIT License</a>
1169
        </p>
1170
1171
        <h2>JSHint</h2>
1172
        <p>
1173
            <a href="https://jshint.com/">JSHint v2.9.7</a>: <a href="https://github.com/jshint/jshint/blob/2.9.7/LICENSE">MIT License</a>
1174
        </p>
1175
1176
        <h2>JSZip</h2>
1177
        <p>
1178
            <a href="https://stuk.github.io/jszip/">JSZip JavaScript library v3.1.3</a>: <a href="https://github.com/Stuk/jszip/blob/v3.1.3/LICENSE.markdown">MIT License, GNU General Public License v3.0</a>
1179
        </p>
1180
1181
        <h2>kjua</h2>
1182
        <p>
1183
            <a href="https://larsjung.de/kjua/">kjua JavaScript library v0.6.0</a>: <a href="https://github.com/lrsjng/kjua/blob/v0.6.0/README.md">MIT License</a>
1184
        </p>
1185
1186
        <h2>Leaflet</h2>
1187
        <p>
1188
            <a href="https://leafletjs.com/">Leaflet JavaScript library v1.0.3</a>: <a href="https://github.com/Leaflet/Leaflet/blob/v1.0.3/LICENSE">BSD License</a>
1189
        </p>
1190
1191
        <h2>Noto fonts</h2>
1192
        <p>
1193
            <a href="https://github.com/googlei18n/noto-fonts">Noto</a>: <a href="https://github.com/notofonts/noto-fonts/blob/main/LICENSE">SIL Open Font License Version 1.1</a>
1194
        </p>
1195
1196
        <h2>OAI XSLT stylesheet</h2>
1197
        <p>
1198
            Adapted from the <a href="https://dspace.lyrasis.org/">DSpace project</a>: <a href="https://dspace.lyrasis.org/license/">BSD License</a>
1199
        </p>
1200
1201
        <h2>OpenAPI 2.0 schema</h2>
1202
        <p>
1203
            <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/schemas/v2.0/schema.json">JSON Schema for Swagger 2.0 API</a>: <a href="https://github.com/OAI/OpenAPI-Specification/tree/master/schemas/v2.0">Apache License, Version 2.0</a>, <a href="https://www.openapis.org/about">OpenAPI Initiative (OAI)</a>
1204
        </p>
1205
1206
        <h2>OpenJS Keyboard Shortcuts Library</h2>
1207
        <p>
1208
            <a href="http://www.openjs.com/scripts/events/keyboard_shortcuts/">OpenJS keyboard shortcuts library</a>: BSD License
1209
        </p>
1210
1211
        <h2>RequireJS</h2>
1212
        <p>
1213
            <a href="https://requirejs.org/">RequireJS JavaScript file and module loader v2.1.8</a>: <a href="https://github.com/requirejs/requirejs/blob/2.1.8/LICENSE">BSD License or MIT License</a>
1214
        </p>
1215
1216
        <h2>Select2</h2>
1217
        <p>
1218
            <a href="https://select2.github.io/select2/">Select2 library v4.0.13</a>: <a href="https://github.com/select2/select2/blob/4.0.13/LICENSE">Apache License, Version 2.0 or GNU General Public License v2.0</a>
1219
        </p>
1220
1221
        <h2>Sortable</h2>
1222
        <p>
1223
            <a href="https://sortablejs.github.io/Sortable/">Sortable JavaScript Library v1.15.0</a>: <a href="https://github.com/SortableJS/Sortable/blob/1.15.0/LICENSE">MIT Licence</a>
1224
        </p>
1225
1226
        <h2>TinyMCE WYSIWYG Editor</h2>
1227
        <p>
1228
            <a href="https://www.tiny.cloud/">TinyMCE WYSIWYG editor v5.9.2</a>: <a href="https://github.com/tinymce/tinymce/blob/5.9.2/LICENSE.TXT">GNU Lesser General Public License v2.1</a>
1229
        </p>
1230
1231
        <h2>Verovio</h2>
1232
        <p>
1233
            <a href="https://www.verovio.org/">Verovio</a>: <a href="https://github.com/rism-digital/verovio/blob/develop/COPYING">GNU General Public License v3.0</a>, <a href="https://github.com/rism-digital/verovio/blob/develop/COPYING.LESSER">GNU Lesser General Public License v3.0</a>
1234
        </p>
1235
1236
        <h2>Virtual Keyboard</h2>
1237
        <p>
1238
            <a href="https://mottie.github.io/Keyboard/index.html">Virtual Keyboard v1.30.1</a>: <a href="https://github.com/Mottie/Keyboard/blob/v1.30.1/LICENSE">MIT Licence</a>
1239
        </p>
1240
1241
    [% END # tab=licenses %]
1242
[% END %]
1243
1244
[% BLOCK translations_panel %]
1245
    [% WRAPPER tab_panel tabname= "translations" bt_active = 1 %]
1246
        <h2>Translation</h2>
1247
        <ul>
1248
            <li>العربية (Arabic) Version 3.2 to 3.4, 3.16 & 3.18 by KnowledgeWare Technologies; Versions 3.6 to 3.14 by Arabic Koha support team: Karam Qubsi, Kouider Bounama, Sham Bajaa, Ghofran Alshami, Chrestian Aboud, Fatema Salem and Duaa Bazzazi.
1249
            <li>&#4768;&#4635;&#4653;&#4763; (Amharic) Getway II Ethiopia Co. (Yohannes Mulugeta (Team Leader), Tegene Assefa, Abiyot Bayou)</li>
1250
            <li>Armenian Tigran Zargaryan</li>
1251
            <li>&#1041;&#1098;&#1083;&#1075;&#1072;&#1088;&#1089;&#1082;&#1080; (Bulgarian) Radoslav Kolev</li>
1252
            <li>euskara (Basque) Fernando Berrizbeitia, the librarians of Eima Katalogoa, Tabakalera International Contemporary Culture Centre, and Nere Erkiaga</li>
1253
            <li>&#2476;&#2494;&#2434;&#2482;&#2494; (Bengali) Parthasarathi Mukhopadhyay</li>
1254
            <li>&#20013;&#25991; (Chinese)</li>
1255
            <li>Hrvatski (Croatian)</li>
1256
            <li>&#x010D;e&#353;tina (Czech)</li>
1257
            <li>D&aelig;nsk (Danish)</li>
1258
            <li>Nederlands-Nederland (Dutch-The Netherlands) Ronald Wijlens, Saxion University</li>
1259
            <li>Nederlands-Belgi&euml; (Dutch-Belgium)</li>
1260
            <li>English</li>
1261
            <li>suomi, suomen kieli (Finnish) Pasi Korkalo</li>
1262
            <li>Fran&ccedil;ais (French) <a href="http://www.koha-fr.org/content/lassociation-kohala">Kohala</a>, Pascale Nalon (ENSMP), and many more </li>
1263
            <li>Galego (Galician) Ignacio Javier</li>
1264
            <li>Deutsch (German) Friedrich zur Hellen, Robert Hillig, Katrin Fischer, Beda Szukics, Mirko Tietgen and Marc Véron</li>
1265
            <li>&#949;&#955;&#955;&#951;&#957;&#953;&#954;&#940; (Greek, Modern [1453- ]) Koha Hellenic Users' Group (Georgia Katsarou, Dimitris Antonakis, Eugenios Papadopoulos), Theodoros Theodoropoulos, Panoraia Gaitanou and Kiriaki Roditi</li>
1266
            <li>&#1506;&#1489;&#1512;&#1497;&#1514; (Hebrew)</li>
1267
            <li>&#2361;&#2367;&#2344;&#2381;&#2342;&#2368; (Hindi)</li>
1268
            <li>Magyar (Hungarian)Agnes Imecs</li>
1269
            <li>Norsk Bokmål (Norwegian) Axel Bojer and Thomas Gramstad</li>
1270
            <li>Norsk Nynorsk (Norwegian) Unni Knutsen and Marit Kristine Ådland</li>
1271
            <li>(Indonesian)</li>
1272
            <li>Italiano (Italian) for 3.2: Zeno Tajoli, Pietro Gozzetti and Paolo Pozzan; for 3.4 and more: Zeno Tajoli, Stefano Bargioni, Paolo Bizzarri</li>
1273
            <li>&#26085;&#26412;&#35486; (Japanese)</li>
1274
            <li>&#54620;&#44397;&#50612; (Korean)</li>
1275
            <li>&#3221;&#3240;&#3277;&#3240;&#3233; (kanna&#7693;a)</li>
1276
            <li>Latina (Latin)</li>
1277
            <li>Lao Anousak Anthony Souphavanh</li>
1278
            <li>M&#257;ori</li>
1279
            <li>&#3374;&#3378;&#3375;&#3390;&#3379;&#3330; (Malayalam)</li>
1280
            <li>&#1601;&#1575;&#1585;&#1587;&#1609; (Persian)</li>
1281
            <li>&#2835;&#2908;&#2879;&#2822; (&#x014D;&#7771;iy&#257;)</li>
1282
            <li>Polski (Polish)</li>
1283
            <li>Portugu&ecirc;s (Portuguese)</li>
1284
            <li>Rom&acirc;n&#259; (Romanian)</li>
1285
            <li>&#1056;&#1091;&#1089;&#1089;&#1082;&#1080;&#1081; (Russian) Victor Titarchuk and Serhij Dubyk</li>
1286
            <li>Espa&ntilde;ol (Spanish) Bernardo González Kriegel, Héctor Castro and Tomás Cohen Arazi, with the help of the koha-es community.</li>
1287
            <li>Svenska (Swedish)</li>
1288
            <li>Tetun (Tetum) Karen Myers</li>
1289
            <li>&#3616;&#3634;&#3625;&#3634;&#3652;&#3607;&#3618; (Thai)</li>
1290
            <li>T&uuml;rk&ccedil;e (Turkish) pre-3.8: Selma Aslan; for 3.8+, Suleyman Demirel University (Ugur Bulgan, Onur Erdem, Kemal Caner Bayrakci, and Alper Tutunsatar)</li>
1291
            <li>&#1575;&#1585;&#1583;&#1608;(Urdu) Ata ur Rehman</li>
1292
            <li>&#1059;&#1082;&#1088;&#1072;&#1111;&#1085;&#1089;&#1100;&#1082;&#1072; (Ukrainian) Victor Titarchuk and Serhij Dubyk</li>
1293
        </ul>
1294
    [% END #tab=translations %]
1295
[% END %]
1296
1297
[% BLOCK history_panel %]
1298
    [% WRAPPER tab_panel tabname= "history" bt_active = 1 %]
1299
        <h2>Koha history timeline</h2>
1300
        [% IF ! timeline_read_error %]
1301
            <table style="cursor:pointer">
1302
                <thead>
1303
                    <tr>
1304
                        <td  style="font-weight:bold;" >Date</td>
1305
                        <td  style="font-weight:bold;" >Description</td>
1306
                    </tr>
1307
                </thead>
1308
                [% FOREACH tabl IN table2 %]
1309
                    <tr class="[% loop.parity | html %]">
1310
                        [% FOREACH ro IN tabl.row2 %]
1311
                            <td>[% ro.date | html %]</td>
1312
                            <td>[% ro.desc | html %]</td>
1313
                        [% END %]
1314
                    </tr>
1315
                [% END %]
1316
            </table>
1317
        [% ELSE %]
1318
            <div class="dialog alert">
1319
                Could not read the history.txt file. Please make sure &lt;docdir&gt; is correctly defined in koha-conf.xml.
1320
            </div>
1321
        [% END %]
1322
    [% END %]
1323
[% END %]
1324
1325
[% BLOCK dedications_panel %]
1326
    [% WRAPPER tab_panel tabname= "dedications" bt_active = 1 %]
1327
        <h2>22.11</h2>
1328
        <p>
1329
            The Koha Community would like to dedicate the release of Koha 22.11 to Rosalie Blake.
1330
        </p>
1331
        <p>
1332
            Rosalie was the Head Librarian at Horowhenua Library Trust when Koha was started and without her Koha
1333
            would not exist. She was an inspiring leader and innovator and took the risk of her career entrusting
1334
            Chris, Joanne, Rachel and Simon to deliver the original project that became the international sensation
1335
            we all know and love.
1336
        </p>
1337
        <p>
1338
            She was also a practicing Justice of the Peace, a stalwart of the Levin Pottery Club and much loved
1339
            mother of Simon and Jeremy, and grandmother of Ben, Toby, Anna, Charlotte and Billy.
1340
        </p>
1341
    [% END # tab=dedications %]
1342
[% END %]
(-)a/t/mock_templates/intranet-tmpl/prog/fr-CA/includes/accounts.inc (+61 lines)
Line 0 Link Here
1
[%- BLOCK account_type_description -%]
2
 [%- IF account.credit_type_code -%]
3
 [%- PROCESS credit_type_description credit_type = account.credit_type -%]
4
 [%- ELSIF account.debit_type_code -%]
5
 [%- PROCESS debit_type_description debit_type = account.debit_type -%]
6
 [%- END -%]
7
 [%- PROCESS account_status_description account=account -%]
8
[%- END -%]
9
10
[%- BLOCK debit_type_description -%]
11
 [%- SWITCH debit_type.code -%]
12
 [%- CASE 'ACCOUNT'          -%]<span>Frais d'abonnement</span>
13
 [%- CASE 'ACCOUNT_RENEW'    -%]<span>Frais de renouvellement d'abonnement</span>
14
 [%- CASE 'ARTICLE_REQUEST'  -%]<span>Frais de demande d'article</span>
15
 [%- CASE 'LOST'             -%]<span>Document perdu</span>
16
 [%- CASE 'MANUAL'           -%]<span>Frais manuel</span>
17
 [%- CASE 'NEW_CARD'         -%]<span>Nouvelle carte</span>
18
 [%- CASE 'OVERDUE'          -%]<span>Amende</span>
19
 [%- CASE 'PROCESSING'       -%]<span>Frais de traitement pour exemplaire perdu</span>
20
 [%- CASE 'RENT'             -%]<span>Frais de location</span>
21
 [%- CASE 'RENT_DAILY'       -%]<span>Frais quotidien de location</span>
22
 [%- CASE 'RENT_RENEW'       -%]<span>Renouvellement d'une location</span>
23
 [%- CASE 'RENT_DAILY_RENEW' -%]<span>Renouvellement d'une location quotidienne</span>
24
 [%- CASE 'RESERVE'          -%]<span>Frais de réservation</span>
25
 [%- CASE 'RESERVE_EXPIRED'  -%]<span>Réservation en attente depuis trop longtemps</span>
26
 [%- CASE 'PAYOUT'           -%]<span>Paiement de la bibliothèque à l'utilisateur</span>
27
 [%- CASE 'VOID'             -%]<span>Le crédit a été annulé</span>
28
 [%- CASE                    -%]<span>[% debit_type.description | html %]</span>
29
 [%- END -%]
30
[%- END -%]
31
32
[%- BLOCK credit_type_description -%]
33
 [%- SWITCH credit_type.code -%]
34
 [%- CASE 'CANCELLATION' -%]<span>Frais annulé</span>
35
 [%- CASE 'CREDIT'       -%]<span>Crédit</span>
36
 [%- CASE 'DISCOUNT'     -%]<span>Rabais</span>
37
 [%- CASE 'FORGIVEN'     -%]<span>Amnistié</span>
38
 [%- CASE 'LOST_FOUND'   -%]<span>Remboursement de frais d'exemplaire perdu</span>
39
 [%- CASE 'OVERPAYMENT'  -%]<span>Remboursement pour paiement en trop</span>
40
 [%- CASE 'PAYMENT'      -%]<span>Paiement</span>
41
 [%- CASE 'PROCESSING_FOUND' -%]<span>Remboursement de frais d'administration pour document perdu</span>
42
 [%- CASE 'PURCHASE'     -%]<span>Achat</span>
43
 [%- CASE 'REFUND'       -%]<span>Remboursement</span>
44
 [%- CASE 'WRITEOFF'     -%]<span>Amnistie</span>
45
 [%- CASE                -%]<span>[% credit_type.description | html %]</span>
46
 [%- END -%]
47
[%- END -%]
48
49
[%- BLOCK account_status_description -%]
50
 [%- SWITCH account.status -%]
51
 [%- CASE 'UNRETURNED' -%]<span> (En accumulation)</span>
52
 [%- CASE 'RETURNED'   -%]<span> (Retourné)</span>
53
 [%- CASE 'REPLACED'   -%]<span> (Remplacé)</span>
54
 [%- CASE 'REFUNDED'   -%]<span> (Remboursé)</span>
55
 [%- CASE 'FORGIVEN'   -%]<span> (Amnistié)</span>
56
 [%- CASE 'VOID'       -%]<span> (Annulé)</span>
57
 [%- CASE 'LOST'       -%]<span> (Perdu)</span>
58
 [%- CASE 'CANCELLED'  -%]<span> (Annulé)</span>
59
 [%- CASE              -%]
60
 [%- END -%]
61
[%- END -%]
(-)a/t/mock_templates/intranet-tmpl/prog/fr-CA/modules/about.tt (-1 / +1342 lines)
Line 0 Link Here
0
- 
1
[% USE raw %]
2
[% USE HtmlTags %]
3
[% USE Koha %]
4
[% USE Asset %]
5
[% USE KohaDates %]
6
[% PROCESS 'i18n.inc' %]
7
[% SET footerjs = 1 %]
8
[% INCLUDE 'doc-head-open.inc' %]
9
<title>[% FILTER collapse %]
10
    [% t("About Koha") | html %] &rsaquo;
11
    [% t("Koha") | html %]
12
[% END %]</title>
13
[% INCLUDE 'doc-head-close.inc' %]
14
</head>
15
<body id="about_about" class="about">
16
[% INCLUDE 'header.inc' %]
17
[% PROCESS 'about-team.inc' %]
18
19
[% WRAPPER 'sub-header.inc' %]
20
    [% WRAPPER breadcrumbs %]
21
        [% WRAPPER breadcrumb_item %]
22
            <a href="#" aria-current="page">About Koha</a>
23
        [% END %]
24
    [% END %]
25
[% END %]
26
27
<div class="main container-fluid">
28
    <div class="row">
29
        <div class="col-md-12">
30
            [% INCLUDE 'messages.inc' %]
31
32
            <h1>About Koha</h1>
33
34
            [% WRAPPER tabs id= "abouttabs" %]
35
                [% WRAPPER tabs_nav %]
36
                    [% WRAPPER tab_item linktab = 1 tabname = "about" bt_active = tab == "about" %] <span>Server information</span> [% END %]
37
                    [% WRAPPER tab_item linktab = 1 tabname = "perl" bt_active = tab == "perl" %] <span>Perl modules</span> [% END %]
38
                    [% WRAPPER tab_item linktab = 1 tabname = "sysinfo" bt_active = tab == "sysinfo" %] <span>System information</span> [% END %]
39
                    [% WRAPPER tab_item linktab = 1 tabname = "team" bt_active = tab == "team" %] <span>Koha team</span> [% END %]
40
                    [% WRAPPER tab_item linktab = 1 tabname = "licenses" bt_active = tab == "licenses" %] <span>Licenses</span> [% END %]
41
                    [% WRAPPER tab_item linktab = 1 tabname = "translations" bt_active = tab == "translations" %] <span>Translations</span> [% END %]
42
                    [% WRAPPER tab_item linktab = 1 tabname = "history" bt_active = tab == "history" %] <span>Timeline</span> [% END %]
43
                    [% WRAPPER tab_item linktab = 1 tabname = "dedications" bt_active = tab == "dedications" %] <span>Dedications</span> [% END %]
44
                [% END %]
45
                [% WRAPPER tab_panels %]
46
                    [% SWITCH tab %]
47
                        [% CASE 'about' %] [% PROCESS about_panel %]
48
                        [% CASE 'perl' %] [% PROCESS perl_panel %]
49
                        [% CASE 'sysinfo' %] [% PROCESS sysinfo_panel %]
50
                        [% CASE 'team' %] [% PROCESS team_panel %]
51
                        [% CASE 'licenses' %] [% PROCESS licenses_panel %]
52
                        [% CASE 'translations' %] [% PROCESS translations_panel %]
53
                        [% CASE 'history' %] [% PROCESS history_panel %]
54
                        [% CASE 'dedications' %] [% PROCESS dedications_panel %]
55
                        [% CASE %] [% PROCESS about_panel %]
56
                    [% END %]
57
                [% END %]
58
            [% END # /WRAPPER abouttabs %]
59
        </div> <!-- /.col-md-12 -->
60
    </div> <!-- /.row -->
61
<!-- the main div is closed in intranet-bottom.inc -->
62
[% INCLUDE 'intranet-bottom.inc' %]
63
64
[% BLOCK about_panel %]
65
    [% WRAPPER tab_panel tabname= "about" bt_active = 1 %]
66
        <table>
67
            <caption>Server information</caption>
68
            <tr>
69
                <th scope="row">Koha version: </th>
70
                <td>[% kohaVersion | html %][% IF kohaCodename %] <strong>[% kohaCodename | html %]</strong>[% END %]</td>
71
            </tr>
72
            <tr>
73
                <th scope="row">OS version ('uname -a'): </th>
74
                <td>[% osVersion | html %]</td>
75
            </tr>
76
            <tr>
77
                <th scope="row">Perl interpreter: </th>
78
                <td>[% perlPath | html %]</td>
79
            </tr>
80
            <tr>
81
                <th scope="row">Perl version: </th>
82
                <td>[% perlVersion | html %]</td>
83
            </tr>
84
            <tr>
85
                <th scope="row">Perl @INC: </th>
86
                <td>
87
                    [% FOREACH perlIncPat IN perlIncPath %]
88
                        [% perlIncPat.perlinc | html %] <br />
89
                    [% END %]
90
                </td>
91
            </tr>
92
            <tr>
93
                <th scope="row">MySQL version: </th>
94
                <td>[% mysqlVersion | html %]</td>
95
            </tr>
96
            <tr>
97
                <th scope="row">Apache version: </th>
98
                <td>[% apacheVersion | html %]</td>
99
            </tr>
100
            [% IF (is_psgi) %]
101
                <tr>
102
                    <th scope="row">PSGI: </th>
103
                    <td>[% psgi_server | html %]</td>
104
                </tr>
105
            [% END %]
106
            [% IF Koha.Preference('SearchEngine') == 'Elasticsearch' %]
107
                <tr>
108
                    <th scope="row">Elasticsearch: </th>
109
                    [% IF elasticsearch_fatal_config_error %]
110
                        <td><span class="bg-warning">[% elasticsearch_fatal_config_error | html %]</span></td>
111
                    [% ELSE %]
112
                        [% IF elasticsearch_status.running %]
113
                            <td class="bg-success">
114
                        [% ELSE %]
115
                            <td>
116
                        [% END %]
117
                            <span>Version:</span>
118
                            <span>[% elasticsearch_status.version | html %]</span>
119
                            |
120
                            <span>Nodes:</span>
121
                            <span>[% elasticsearch_status.nodes.join(' / ') | html %]</span>
122
                            |
123
                            <span>Status:</span>
124
                        [% IF elasticsearch_status.running %]
125
                            <span>running</span>
126
                            |
127
                            <span>Indices:</span>
128
                            [% FOREACH index IN elasticsearch_status.indexes %]
129
                                [% index.index_name | html %]
130
                                (<span>count:</span> <em>[% index.index_count | html %]</em>)
131
                                [% UNLESS loop.last %], [% END %]
132
                            [% END %]
133
                        [% ELSE %]
134
                            <span class="bg-warning">not running</span>
135
                        [% END %]
136
                        </td>
137
                    [% END # /IF elasticsearch_fatal_config_error %]
138
                </tr>
139
            [% END %]
140
            <tr>
141
                <th scope="row">Memcached: </th>
142
                [% IF memcached_running AND is_memcached_still_active AND where_is_memcached_config == 'config_only' %]
143
                    <td class="bg-success">
144
                [% ELSE %]
145
                    <td>
146
                [% END %]
147
                    <span>Servers:</span>
148
                    [% IF memcached_servers %]
149
                        <span>[% memcached_servers | html %]</span>
150
                    [% ELSE %]
151
                        <span>undefined</span>
152
                    [% END %] |
153
                    <span>Namespace:</span>
154
                    [% IF memcached_namespace %]
155
                        <span>[% memcached_namespace | html %]</span>
156
                    [% ELSE %]
157
                        <span>undefined</span>
158
                    [% END %] |
159
                    <span>Status:</span>
160
                    [% IF memcached_servers %]
161
                        [% IF memcached_running and is_memcached_still_active %]
162
                            <span class="bg-success">running</span>.
163
                        [% ELSE %]
164
                            <span class="bg-warning">not running</span>.
165
                            [% IF is_psgi %]
166
                                <span>Remember memcached needs to be started before Plack.</span>
167
                            [% END %]
168
                        [% END %]
169
                    [% ELSE %]
170
                        <span>unknown</span>
171
                    [% END %] |
172
                    <span>Config read from:</span>
173
                    [% SWITCH where_is_memcached_config %]
174
                        [% CASE 'config_only' %]
175
                            <span class="bg-success">koha-conf.xml</span>
176
                        [% CASE 'ENV_only' %]
177
                            <span class="bg-warning">ENV</span> <span>Note that the right place to define the memcached config is in your $KOHA_CONF file</span>
178
                        [% CASE 'both' %]
179
                            <span class="bg-warning">ENV and koha-conf.xml</span> <span>Note that the right place to define the memcached config is in your $KOHA_CONF file. To avoid any misunderstanding you should not export the memcached config from ENV.</span>
180
                        [% CASE # nowhere %]
181
                            <span class="bg-warning">Nowhere</span> <span>Note that the right place to define the memcached config is in your $KOHA_CONF file. Currently you do not have a valid memcached configuration defined.</span>
182
                    [% END %]
183
                    [% IF effective_caching_method != 'Cache::Memcached::Fast::Safe' %]
184
                        | <span>Effective caching method:</span> [% effective_caching_method | html %]
185
                    [% END %]
186
                </td>
187
            </tr>
188
            <tr>
189
                <th scope="row">Zebra version: </th>
190
                <td>[% zebraVersion | html %]</td>
191
            </tr>
192
            <tr>
193
                <th scope="row">Zebra status: </th>
194
                [% IF (errZebraConnection == 10000) %]
195
                    <td class="bg-danger"><strong>Zebra server seems not to be available. Is it started?</strong></td>
196
                [% ELSIF (errZebraConnection) %]
197
                    <td class="bg-warning"><strong>Error message from Zebra: [% ( errZebraConnection ) | html %]</strong></td>
198
                [% ELSE %]
199
                    <td class="bg-success">Running</td>
200
                [% END %]
201
            </tr>
202
            <tr>
203
                <th scope="row">Message broker: </th>
204
                [% IF warnConnectBroker %]
205
                    <td class="bg-warning"><strong>Using SQL polling</strong></td>
206
                [% ELSE %]
207
                    <td class="bg-success">Using RabbitMQ</td>
208
                [% END %]
209
            </tr>
210
            <tr>
211
                <th scope="row">Date and time: </th>
212
                <td>[% current_date_and_time | $KohaDates  with_hours => 1 %]</td>
213
            </tr>
214
            <tr>
215
                [% timezone_config_class = (time_zone.config_invalid) ? 'bg-warning' : '' %]
216
                [% timezone_env_class    = (time_zone.env_invalid)    ? 'bg-warning' : '' %]
217
                <th scope="row">Time zone: </th>
218
                <td>
219
                    <span>Used:</span> <span>[% time_zone.actual | html %]</span>
220
                    [% IF time_zone.actual_bad_tz_fallback %]
221
                        <span>(This is a fallback value due to a bad configuration)</span>
222
                    [% END %]
223
                    |
224
                    <span>Config:</span>
225
                    [% IF time_zone.config != '' %]
226
                        <span class="[% timezone_config_class | html %]">[% time_zone.config | html %]</span>
227
                    [% ELSE %]
228
                        <span>Undefined</span>
229
                    [% END %] |
230
                    <span>Environment (TZ):</span>
231
                    [% IF time_zone.environment != '' %]
232
                        <span class="[% timezone_env_class | html %]">[% time_zone.environment | html %]</span>
233
                    [% ELSE %]
234
                        <span>Undefined</span>
235
                    [% END %]
236
                </td>
237
            </tr>
238
        </table>
239
    [% END # tab=about %]
240
[% END %]
241
242
[% BLOCK perl_panel %]
243
    [% WRAPPER tab_panel tabname= "perl" bt_active = 1 %]
244
        <table style="cursor:pointer">
245
            <caption>Perl modules</caption>
246
            [% FOREACH tabl IN table %]
247
                <tr>
248
                    [% FOREACH ro IN tabl.row %]
249
                        [% IF ( ro.current ) %]
250
                            [% IF ( ro.require ) %]
251
                                <th scope="row" style="font-weight:bold;" title="Module current">
252
                            [% ELSE %]
253
                                <th scope="row" style="font-weight:normal" title="Module current">
254
                            [% END %]
255
                        [% ELSIF ( ro.upgrade ) %]
256
                            [% IF ( ro.require ) %]
257
                                <th scope="row" style="background-color:#FFCB2F;font-weight:bold;" title="Module upgrade needed">
258
                            [% ELSE %]
259
                                <th scope="row" style="background-color:#FFCB2F;font-weight:normal" title="Module upgrade needed">
260
                            [% END %]
261
                        [% ELSE %]
262
                            [% IF ( ro.name == '' ) %]
263
                                <th>
264
                            [% ELSIF ( ro.require ) %]
265
                                <th scope="row" style="background-color:#FF8A8A;font-weight:bold;" title="Required module missing">
266
                            [% ELSE %]
267
                                <th scope="row" style="background-color:#FF8A8A;font-weight:normal" title="Optional module missing">
268
                            [% END %]
269
                        [% END # /IF ro.current %]
270
                        [% IF ( ro.name ) %]
271
                            [% ro.name | html %]
272
                            <span style="font-weight:normal; font-size:smaller">
273
                                ([% ro.reqversion | html %]
274
                                [% IF ro.maxversion %] - [% ro.maxversion | html %][% END %]
275
                                [% IF ro.excversion %][% FOR v IN ro.excversion %], ![% v | html %][% END %][% END %])
276
                            </span>
277
                        [% END %]
278
                        </th>
279
                        [% IF ( ro.name == '' ) %]
280
                            <td>
281
                        [% ELSIF ( ro.version ) %]
282
                            <td>[% ro.version | html %]
283
                        [% ELSE %]
284
                            <td style="font-weight:bold">Not Installed
285
                        [% END %]
286
                            </td>
287
                    [% END # /FOREACH ro %]
288
                </tr>
289
            [% END # /FOREACH tabl %]
290
        </table>
291
    [% END # tab=perl %]
292
[% END %]
293
294
[% BLOCK sysinfo_panel %]
295
    [% IF Asset.css("css/staff-global.css") == "" || Asset.js("js/vue/dist/erm.js") == "" %]
296
        [% SET warnMissingCompiledFiles = 1 %]
297
    [% END %]
298
    [% WRAPPER tab_panel tabname= "sysinfo" bt_active = 1 %]
299
        [% IF weasyprint_missing || warnPrefRequireChoosingExistingAuthority || warnPrefEasyAnalyticalRecords || warnPrefAnonymousPatronOPACPrivacy || warnPrefAnonymousPatronAnonSuggestions || warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist || warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist || warnPrefKohaAdminEmailAddress || warnPrefOpacHiddenItems || warnPrefPatronSelfRegistrationDefaultCategory || invalid_yesno.count || warnNoActiveCurrency || warnIsRootUser || xml_config_warnings.size || warnI18nMissing || AutoSelfCheckPatronDoesNotHaveSelfCheckPerm || AutoSelfCheckPatronHasTooManyPerm || warnStatisticsFieldsError || warnNoTemplateCaching || warnILLConfiguration || has_ai_issues || oauth2_missing_deps || bad_yaml_prefs || warnRelationships || log4perl_errors || config_bcrypt_settings_no_set || warnHiddenBiblionumbers.size || warnConnectBroker || elasticsearch_has_missing || warnMissingCompiledFiles || warnDbRowFormat %]
300
            [% IF ( warnDbRowFormat ) %]
301
                <h2>Database row format incorrect</h2>
302
                <p>Database tables with a row format other than 'DYNAMIC': [% warnDbRowFormat | html %]</p>
303
                <p>You may experience problems upgrading to newer versions of Koha unless you update the row format for your database tables.</p>
304
                <p>To know how to avoid this problem see the related wiki page:
305
                    <a href="https://wiki.koha-community.org/wiki/Database_row_format">Database row format</a>
306
                </p>
307
            [% END %]
308
309
            [% IF (warnIsRootUser) %]
310
                <h2>Warning regarding current user</h2>
311
                <p>You are logged in as the database administrative user. This is not recommended because some parts of Koha will not function as expected when using this account.</p>
312
                <p>Please log in instead with a regular staff account. To create a staff account, create a library, a patron category 'Staff' and add a new patron. Then give this patron permissions from 'More' in the toolbar.</p>
313
            [% END # /IF warnIsRootUser %]
314
315
            [% IF has_ai_issues %]
316
                <h2>Data problems</h2>
317
                <p>
318
                    Some of your tables have problems with their auto_increment values which may lead to data loss.
319
                </p>
320
                <p>
321
                    <strong>You should not ignore this warning.</strong>
322
                </p>
323
                <p>
324
                    The problem is that InnoDB does not keep auto_increment across SQL server restarts (it is only set in memory). So on server startup the auto_increment values are set to max(table.id)+1.
325
                </p>
326
                <p>To know how to avoid this problem see the related wiki page:
327
                    <a href="https://wiki.koha-community.org/wiki/DBMS_auto_increment_fix">DBMS auto increment fix</a>
328
                </p>
329
330
                <h3>Problems found</h3>
331
                [% IF ai_patrons %]
332
                    <h4>Patrons</h4>
333
                    <p>The following IDs exist in both tables [% "borrowers" | $HtmlTags tag="strong" %] and [% "deletedborrowers" | $HtmlTags tag="strong" %]:</p>
334
                    <p>
335
                        [% FOR p IN ai_patrons %]
336
                            [% p.borrowernumber | html %]
337
                            [% UNLESS loop.last %], [% END %]
338
                        [% END %]
339
                    </p>
340
                [% END %]
341
                [% IF ai_biblios %]
342
                    <h4>Bibliographic records</h4>
343
                    <p>The following IDs exist in both tables [% "biblio" | $HtmlTags tag="strong" %] and [% "deletedbiblio" | $HtmlTags tag="strong" %]:</p>
344
                    <p>
345
                        [% FOR b IN ai_biblios %]
346
                            [% b.biblionumber | html %]
347
                            [% UNLESS loop.last %], [% END %]
348
                        [% END %]
349
                    </p>
350
                [% END %]
351
                [% IF ai_biblioitems %]
352
                    <h4>Bibliographic records</h4>
353
                    <p>The following IDs exist in both tables [% "biblio" | $HtmlTags tag="strong" %] and [% "deletedbiblioitems" | $HtmlTags tag="strong" %]:</p>
354
                    <p>
355
                        [% FOR b IN ai_biblioitems %]
356
                            [% b.biblioitemnumber | html %]
357
                            [% UNLESS loop.last %], [% END %]
358
                        [% END %]
359
                    </p>
360
                [% END %]
361
                [% IF ai_items %]
362
                    <h4>Items</h4>
363
                    <p>The following IDs exist in both tables [% "items" | $HtmlTags tag="strong" %] and [% "deleteditems" | $HtmlTags tag="strong" %]:</p>
364
                    <p>
365
                        [% FOR i IN ai_items %]
366
                            [% i.itemnumber | html %]
367
                            [% UNLESS loop.last %], [% END %]
368
                        [% END %]
369
                    </p>
370
                [% END %]
371
                [% IF ai_checkouts %]
372
                    <h4>Checkouts</h4>
373
                    <p>The following IDs exist in both tables [% "issues" | $HtmlTags tag="strong" %] and [% "old_issues" | $HtmlTags tag="strong" %]:</p>
374
                    <p>
375
                        [% FOR c IN ai_checkouts %]
376
                            [% c.issue_id | html %]
377
                            [% UNLESS loop.last %], [% END %]
378
                        [% END %]
379
                    </p>
380
                [% END %]
381
                [% IF ai_holds %]
382
                    <h4>Holds</h4>
383
                    <p>The following IDs exist in both tables [% "reserves" | $HtmlTags tag="strong" %] and [% "old_reserves" | $HtmlTags tag="strong" %]:</p>
384
                    <p>
385
                        [% FOR h IN ai_holds %]
386
                            [% h.reserve_id | html %]
387
                            [% UNLESS loop.last %], [% END %]
388
                        [% END %]
389
                    </p>
390
                [% END %]
391
                <br/>
392
            [% END # /IF has_ai_issues %]
393
394
            [% IF warnRelationships %]
395
                <h2>Patron relationship problems</h2>
396
                [% IF bad_relationships_count %]
397
                    <p>Your database contained guarantee/guarantor pairs with no defined relationship. They have been set the value '_bad_data' in the [% "borrowers.relationship" | $HtmlTags tag="strong" %] and/or [% "borrower_relationships.relationship" | $HtmlTags tag="strong" %] columns. Fix them manually by recreating those relationships, or have your system's administrator correct the values.</p>
398
                [% END # /IF bad_relationships_count %]
399
400
                [% IF wrong_relationships %]
401
                    <p>The following values have been used for guarantee/guarantor relationships, but do not exist in the 'borrowerRelationship' system preference:</p>
402
                    <ul>
403
                        [% FOR rel IN wrong_relationships %]
404
                            <li>[% rel.0 | html %]</li>
405
                        [% END %]
406
                    </ul>
407
                    <p>If the relationship is one you want, please add it to the 'borrowerRelationship' system preference, otherwise have your system's administrator correct the values in [% "borrowers.relationship" | $HtmlTags tag="strong" %] and/or [% "borrower_relationships.relationship" | $HtmlTags tag="strong" %] in the database.</p>
408
                [% END # /IF wrong_relationships %]
409
            [% END # /IF warnRelationships %]
410
411
            [% IF log4perl_errors %]
412
                <h2>Logging system does not behave correctly</h2>
413
                [% FOR e IN log4perl_errors %]
414
                    [% SWITCH e %]
415
                        [% CASE 'missing_config_entry' %]<span>There is no 'log4perl_conf' entry in the config file.</span>
416
                        [% CASE 'cannot_read_config_file' %]<span>The log4perl config file cannot be opened.</span>
417
                        [% CASE 'logfile_not_writable' %]<span>One of the logfiles listed in the config file is not writable.</span>
418
                        [% CASE 'cannot_init_module' %]<span>The Koha::Logger module cannot be initiated correctly (check the log file).</span>
419
                        [% CASE %]<span>Unknown error '[% e | html %]'.</span>
420
                    [% END %]
421
                [% END # /FOR e %]
422
            [% END # /IF log4perl_errors %]
423
424
            [% IF warnConnectBroker %]
425
                <h2>Impossible to connect to the message broker</h2>
426
                There is an error when trying to connect to the message broker (RabbitMQ), check the Koha log files.
427
                <br/>
428
                Maybe it is not installed and configured correctly?
429
                <br/>
430
                Contact your system administrator.
431
            [% END # /IF warnConnectBroker %]
432
433
            [% IF weasyprint_missing || warnPrefRequireChoosingExistingAuthority || warnPrefEasyAnalyticalRecords || warnPrefAnonymousPatronOPACPrivacy || warnPrefAnonymousPatronAnonSuggestions || warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist || warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist || warnPrefKohaAdminEmailAddress || warnPrefOpacHiddenItems || warnPrefPatronSelfRegistrationDefaultCategory || invalid_yesno.count || warnNoActiveCurrency || AutoSelfCheckPatronDoesNotHaveSelfCheckPerm || AutoSelfCheckPatronHasTooManyPerm || warnStatisticsFieldsError || warnNoTemplateCaching || warnILLConfiguration || warnXSLT || oauth2_missing_deps || bad_yaml_prefs || warnIssuingRules || config_bcrypt_settings_no_set || warnHiddenBiblionumbers.size || warnFastCataloging %]
434
                <h2>Warnings regarding the system configuration</h2>
435
                <table>
436
                    <caption>Preferences and parameters</caption>
437
                    [% IF (warnFastCataloging) %]
438
                        <tr>
439
                            <th scope="row"><strong>Warning</strong> </th>
440
                            <td>There is no "Fast add" (FA) framework defined in administration->MARC frameworks. This disables the 'Fast cataloging' feature in cataloging/circulation.</td>
441
                        </tr>
442
                    [% END %]
443
                    [% IF (warnPrefRequireChoosingExistingAuthority) %]
444
                        <tr>
445
                            <th scope="row"><strong>Warning</strong> </th>
446
                            <td>System preference 'RequireChoosingExistingAuthority' is disabled, but needs 'AutoCreateAuthorites' enabled. Otherwise catalogers can add headings that will not be linked to authorities.</td>
447
                        </tr>
448
                    [% END %]
449
                    [% IF (warnPrefEasyAnalyticalRecords) %]
450
                        <tr>
451
                            <th scope="row"><strong>Warning</strong> </th>
452
                            <td>System preference 'EasyAnalyticalRecords' set, but UseControlNumber preference is set to 'Use'. Set it to 'Don't use' or else the 'Show analytics' links in the staff interface and the OPAC will be broken.</td>
453
                        </tr>
454
                    [% END %]
455
                    [% IF warnPrefAnonymousPatronOPACPrivacy %]
456
                        <tr>
457
                            <th scope="row"><strong class="error">Error</strong> </th>
458
                            <td>System preference 'OPACPrivacy' set, but AnonymousPatron preference is set to '0'. Set it to a valid borrower number or checkins for these patrons will fail.</td>
459
                        </tr>
460
                    [% END %]
461
                    [% IF warnPrefAnonymousPatronAnonSuggestions %]
462
                        <tr>
463
                            <th scope="row"><strong>Warning</strong> </th>
464
                            <td>System preference 'AnonSuggestions' set, but AnonymousPatron preference is set to '0'. Set it to a valid borrower number if you want that this feature works correctly.</td>
465
                        </tr>
466
                    [% END %]
467
                    [% IF warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist %]
468
                        <tr>
469
                            <th scope="row"><strong class="error">Error</strong> </th>
470
                            <td>Some patrons have requested privacy after their items are checked in, but the AnonymousPatron preference is not set correctly. Set it to a valid borrower number or checkins for these patrons will fail.</td>
471
                        </tr>
472
                    [% END %]
473
                    [% IF warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist %]
474
                        <tr>
475
                            <th scope="row"><strong>Warning</strong> </th>
476
                            <td>System preference 'AnonSuggestions' set, but AnonymousPatron preference is not set correctly. Set it to a valid borrower number if you want that this feature works correctly.</td>
477
                        </tr>
478
                    [% END %]
479
                    [% IF warnPrefKohaAdminEmailAddress %]
480
                        <tr>
481
                            <th scope="row"><strong>Warning</strong> </th>
482
                            <td>System preference 'KohaAdminEmailAddress' does not contain a valid email address. Emails will not be sent.</td>
483
                        </tr>
484
                    [% END %]
485
                    [% IF warnPrefOpacHiddenItems %]
486
                        <tr>
487
                            <th scope="row"><strong>Warning</strong> </th>
488
                            <td>System preference 'OpacHiddenItems' generates a warning and will produce unexpected behaviors: [% warnPrefOpacHiddenItems | html %]</th></tr>
489
                    [% END %]
490
                    [% IF warnPrefPatronSelfRegistrationDefaultCategory %]
491
                        <tr><th scope="row"><strong>Warning</strong> </th><td>System preference 'PatronSelfRegistration' is set, but 'PatronSelfRegistrationDefaultCategory' does not contain a valid patron category code. Patron self-registration is disabled.</td></tr>
492
                    [% END %]
493
                    [% IF warnXSLT %]
494
                        [% FOR p IN warnXSLT %]
495
                            <tr>
496
                                <th scope="row"><strong>Warning</strong> </th>
497
                                <td>System preference '[% p.syspref | html %]' is '[% p.value | html %]', but the file '[% p.filename | html %]' does not exist.</th></tr>
498
                        [% END %]
499
                    [% END %]
500
                    [% IF invalid_yesno.count %]
501
                        [% FOR p IN invalid_yesno %]
502
                            <tr>
503
                                <th scope="row"><strong>Warning</strong> </th>
504
                                <td>System preference '[% p.variable | html %]' must be '0' or '1', but is [% IF p.value.defined %]'[% p.value | html%]'[% ELSE %]NULL[% END %].</td>
505
                            </tr>
506
                        [% END %]
507
                    [% END %]
508
                    [% IF warnNoActiveCurrency %]
509
                        <tr>
510
                            <th scope="row"><strong>Warning</strong> </th>
511
                            <td>No active currency is defined. Please go to <a href="/cgi-bin/koha/admin/currency.pl">Administration &gt; Currencies and exchange rates</a> and mark one currency as active.</td>
512
                        </tr>
513
                    [% END %]
514
                    [% IF warnStatisticsFieldsError %]
515
                        <tr>
516
                            <th scope="row"><strong>Warning</strong> </th>
517
                            <td>System preference 'StatisticsFields' contains field names not belonging to the items database table: [% warnStatisticsFieldsError | html %] </td>
518
                        </tr>
519
                    [% END %]
520
                    [% IF AutoSelfCheckPatronDoesNotHaveSelfCheckPerm %]
521
                        <tr>
522
                            <th scope="row"><strong>Warning</strong> </th>
523
                            <td>
524
                                The patron used for the self checkout module at the OPAC does not have the self_check => self_checkout_module permission.
525
                            </td>
526
                        </tr>
527
                    [% END %]
528
                    [% IF AutoSelfCheckPatronHasTooManyPerm %]
529
                        <tr>
530
                            <th scope="row"><strong>Warning</strong> </th>
531
                            <td>
532
                                The patron used for the self checkout module at the OPAC has too many permissions. They should only have self_check => self_checkout_module.
533
                            </td>
534
                        </tr>
535
                    [% END %]
536
                    [% IF warnNoTemplateCaching %]
537
                        <tr>
538
                            <th scope="row"><strong>Warning</strong> </th>
539
                            <td>
540
                                You are missing the &lt;template_cache_dir&gt; entry in your koha-conf.xml file.
541
                                That will bring a performance boost to enable it.
542
                            </td>
543
                        </tr>
544
                    [% END %]
545
                    [% IF warnI18nMissing %]
546
                        <tr>
547
                            <th scope="row"><strong>Warning</strong> </th>
548
                            <td>
549
                                The PO directory has not been found. See <a href="https://wiki.koha-community.org/wiki/Translation_files">the dedicated wiki page</a> for more information.
550
                            </td>
551
                        </tr>
552
                    [% END %]
553
                    [% IF warnILLConfiguration %]
554
                        [% IF no_ill_backends %]
555
                            <tr>
556
                                <th scope="row"><strong>Warning</strong> </th>
557
                                <td>
558
                                    The ILL module is enabled, but there are no backends available.
559
                                </td>
560
                            </tr>
561
                        [% END %]
562
                        [% IF ill_partner_code_not_defined %]
563
                            <tr>
564
                                <th scope="row"><strong>Warning</strong> </th>
565
                                <td>
566
                                    The ILL module is enabled, but ILLPartnerCode system preference is empty. Falling back to the hardcoded 'IL'.
567
                                </td>
568
                            </tr>
569
                        [% END %]
570
                        [% IF ill_partner_code_no_patrons %]
571
                            <tr>
572
                                <th scope="row"><strong>Warning</strong> </th>
573
                                <td>
574
                                    The ILL module is enabled and ILLPartnerCode system preference configured, but there are no patrons in [% ill_partner_code_no_patrons | html %] category.
575
                                </td>
576
                            </tr>
577
                        [% END %]
578
                        [% IF ill_branch_not_defined %]
579
                            <tr>
580
                                <th scope="row"><strong>Warning</strong> </th>
581
                                <td>
582
                                    The ILL module is enabled, but no 'branch' block is defined in koha-conf.xml. You must define this block before use.
583
                                </td>
584
                            </tr>
585
                        [% END %]
586
                        [% IF ill_partner_code_doesnt_exist %]
587
                            <tr>
588
                                <th scope="row"><strong>Warning</strong> </th>
589
                                <td>
590
                                    The ILL module is enabled, but the configured ILLPartnerCode ([% ill_partner_code_doesnt_exist | html %]) is not defined on the system.
591
                                </td>
592
                            </tr>
593
                        [% END %]
594
                    [% END %]
595
596
                    [% IF weasyprint_missing %]
597
                        <tr><th scope="row"><strong>Warning</strong> </th><td>
598
                        The <strong>weasyprint</strong> tool is not installed.
599
                        </td></tr>
600
                    [% END %]
601
602
                    [% IF oauth2_missing_deps %]
603
                        <tr>
604
                            <th scope="row"><strong>Warning</strong> </th>
605
                            <td>
606
                                System preference 'RESTOAuth2ClientCredentials' is set, but the required Net::OAuth2::AuthorizationServer dependency is missing. The feature is disabled.
607
                            </td>
608
                        </tr>
609
                    [% END %]
610
                    [% IF bad_yaml_prefs %]
611
                        <tr>
612
                            <th scope="row"><strong>Warning</strong> </th>
613
                            <td>
614
                                Some system preferences have badly formatted YAML content: [% bad_yaml_prefs.join(', ') | html %]
615
                            </td>
616
                        </tr>
617
                    [% END %]
618
                    [% IF config_bcrypt_settings_no_set %]
619
                        <tr>
620
                            <th scope="row"><strong>Warning</strong> </th>
621
                            <td>
622
                                System preference 'Pseudonymization' is set, but there is not 'bcrypt_settings' entry defined in the $KOHA_CONF file.
623
                            </td>
624
                        </tr>
625
                    [% END %]
626
                    [% IF warnHiddenBiblionumbers.size %]
627
                        <tr>
628
                            <th scope="row"><strong>Warning</strong> </th>
629
                            <td>
630
                                [% FOR w IN warnHiddenBiblionumbers %]
631
                                    <span>Bibliographic framework "[% w.frameworkcode | html %]" has the biblionumber field hidden at the interface [% w.interface | html %]</span><br/>
632
                                [% END %]
633
                            </td>
634
                        </tr>
635
                    [% END %]
636
                    [% IF Koha.Preference('SearchEngine') == 'Elasticsearch' && elasticsearch_status.version.substr(0,1) < 6 %]
637
                        <tr>
638
                            <th scope="row"><strong>Deprecation warning</strong></th>
639
                            <td>
640
                                Elasticsearch version 5.x is not supported in Koha 20.11 and greater. Please upgrade your Elasticsearch cluster
641
                            </td>
642
                        </tr>
643
                    [% END %]
644
                </table>
645
            [% END # /IF warnPrefRequireChoosingExistingAuthority %]
646
647
            [% IF xml_config_warnings.size %]
648
                <table>
649
                    <caption>XML configuration file</caption>
650
                    [% FOREACH config_entry IN xml_config_warnings %]
651
                        [% IF config_entry.error == 'zebra_bib_index_mode_is_grs1' %]
652
                            <tr>
653
                                <th scope="row"><strong>Warning</strong></th>
654
                                <td>
655
                                    The &lt;zebra_bib_index_mode&gt; entry set to 'grs1', which is no longer supported.
656
                                    Please use DOM instead. To switch follow this page of wiki:
657
                                    <a href="https://wiki.koha-community.org/wiki/Switching_to_dom_indexing">Switching to dom indexing</a>
658
                                </td>
659
                            </tr>
660
                        [% ELSIF config_entry.error == 'zebra_auth_index_mode_is_grs1' %]
661
                            <tr>
662
                                <th scope="row"><strong>Warning</strong></th>
663
                                <td>
664
                                    The &lt;zebra_auth_index_mode&gt; entry set to 'grs1', which is no longer supported.
665
                                    Please use DOM instead. To switch follow this page of wiki:
666
                                    <a href="https://wiki.koha-community.org/wiki/Switching_to_dom_indexing">Switching to dom indexing</a>
667
                                </td>
668
                            </tr>
669
                        [% ELSIF config_entry.error == 'use_zebra_facets_entry_missing' %]
670
                            <tr>
671
                                <th scope="row"><strong>Warning</strong></th>
672
                                <td>
673
                                    The &lt;use_zebra_facets&gt; entry is missing in your configuration file. Falling back
674
                                    to legacy facet calculation.
675
                                </td>
676
                            </tr>
677
                        [% ELSIF config_entry.error == 'log4perl_entry_missing' %]
678
                            <tr>
679
                                <th scope="row"><strong>Warning</strong></th>
680
                                <td>
681
                                    You are missing the &lt;log4perl_conf&gt; entry in your koha-conf.xml file. Please
682
                                    add it, pointing to the log4perl.conf file for your Koha instance.
683
                                </td>
684
                            </tr>
685
                        [% ELSIF config_entry.error == 'lockdir_entry_missing' %]
686
                            <tr>
687
                                <th scope="row"><strong>Warning</strong></th>
688
                                <td>
689
                                    You are missing the &lt;lockdir&gt; entry in your koha-conf.xml file. Please
690
                                    add it, pointing to your Koha instance's lock dir.
691
                                </td>
692
                            </tr>
693
                        [% ELSIF config_entry.error == 'lockdir_not_writable' %]
694
                            <tr>
695
                                <th scope="row"><strong>Warning</strong></th>
696
                                <td>
697
                                    The configured &lt;lockdir&gt; entry in your koha-conf.xml file points to a
698
                                    non-writable directory ([% config_entry.lockdir | html %]).
699
                                </td>
700
                            </tr>
701
                        [% ELSIF config_entry.error == 'uploadpath_entry_missing' %]
702
                            <tr>
703
                                <th scope="row"><strong>Warning</strong></th>
704
                                <td>
705
                                    You are missing the &lt;upload_path&gt; entry in your koha-conf.xml file. Please
706
                                    add it, pointing to the configured file upload directory for your Koha instance.
707
                                </td>
708
                            </tr>
709
                        [% ELSIF config_entry.error == 'uploadpath_and_opacbaseurl_entry_missing' %]
710
                            <tr>
711
                                <th scope="row"><strong>Warning</strong></th>
712
                                <td>
713
                                    You are missing the &lt;upload_path&gt; entry in your koha-conf.xml file. Please
714
                                    add it, pointing to the configured file upload directory for your Koha instance.
715
                                    Also note that you need to properly set the OPACBaseURL preference for the file upload plugin to work.
716
                                </td>
717
                            </tr>
718
                        [% ELSIF config_entry.error == 'tmp_path_missing' %]
719
                            <tr>
720
                                <th scope="row"><strong>Warning</strong></th>
721
                                <td>
722
                                    You are missing the &lt;tmp_path&gt; entry in your koha-conf.xml file. Please
723
                                    add it, pointing to the configured temporary directory for your Koha instance.
724
                                    The effective temporary directory is '[% config_entry.effective_tmp_dir | html %]'.
725
                                </td>
726
                            </tr>
727
                        [% ELSIF config_entry.error == 'encryption_key_missing' %]
728
                            <tr>
729
                                <th scope="row"><strong>Warning</strong></th>
730
                                <td>
731
                                    You are missing the &lt;encryption_key&gt; entry in your koha-conf.xml file.
732
                                    Please generate a key. We recommend one of at least 32 bytes. (You might use 'pwgen 32' to do so.)
733
                                </td>
734
                            </tr>
735
                        [% END # /IF config_entry.error %]
736
                    [% END # /FOREACH config_entry %]
737
                </table>
738
            [% END # /IF xml_config_warnings.size %]
739
740
            [% IF warnIssuingRules %]
741
                <table>
742
                    <caption>Issuing rules</caption>
743
                    [% FOREACH unit IN ir_units %]
744
                        <tr>
745
                            <th scope="row"><strong>Warning</strong></th>
746
                            <td>
747
                                The [% unit.branchcode || 'branchcode=default' | html %], [% unit.categorycode || 'categorycode=default' | html %], [% unit.itemtype || 'itemtype=default' | html %]issuingrule will fallback to 'days' for 'lengthunit' as it is incorrectly defined as [% unit.rule_value | html %].
748
                            </td>
749
                        </tr>
750
                    [% END # /FOREACH unit %]
751
                </table>
752
            [% END # /IF warnIssuingRules %]
753
754
            [% IF elasticsearch_has_missing %]
755
                <table>
756
                    <caption>Records are not indexed in Elasticsearch</caption>
757
                    [% FOREACH index IN elasticsearch_status.indexes %]
758
                        [% IF index.missing_count %]
759
                            <tr>
760
                                <th scope="row"><strong>Warning</strong></th>
761
                                <td>
762
                                    [% index.missing_count | html %] record(s) missing on a total of [% index.index_count | html %] in index [% index.index_name | html %].
763
                                </td>
764
                            </tr>
765
                        [% END %]
766
                    [% END %]
767
                </table>
768
            [% END # /IF elasticsearch_has_missing %]
769
770
            [% IF warnMissingCompiledFiles %]
771
                <tr><th scope="row"><strong class="error">Error</strong></th><td>
772
                    Compiled CSS and/or JS files are not present. Please run `yarn build` to generate them.
773
                </td></tr>
774
            [% END # /IF warnMissingCompiledFiles %]
775
776
        [% ELSE %]
777
            <p>No warnings.</p>
778
        [% END # /IF warnRequireChoosingExistingAuthority... %]
779
    [% END # tab=sysinfo %]
780
[% END %]
781
782
[% BLOCK team_panel %]
783
    [% WRAPPER tab_panel tabname= "team" bt_active = 1 %]
784
        <h2>Special thanks to the following organizations</h2>
785
        <ul>
786
            <li>
787
                <a href="http://library.org.nz">Horowhenua Library Trust</a>, New Zealand, and Rosalie Blake, Head of Libraries, (Koha 1.0)
788
            </li>
789
            <li>
790
                The <a href="http://www.myacpl.org/">Athens County Public Libraries</a>, Ohio, USA (MARC sponsorship, documentation, template maintenance)</li>
791
            <li>
792
                <a href="http://www.emn.fr">EMN (Ecole des Mines de Nantes)</a>, France (Suggestions, Stats wizards and improved LDAP sponsorship)
793
            </li>
794
            <li>
795
                <a href="http://www.mines-paristech.fr">Mines Paristech (previously Ecole Nationale Supérieure des Mines de Paris)</a>, France (bibliographic frameworks, MARC authorities, OPAC basket, Serials sponsorship)
796
            </li>
797
            <li>
798
                <a href="http://www.mediathequeouestprovence.fr/">SAN-Ouest Provence</a>, France (Koha 3.0 enhancements to patrons and holds modules)
799
            </li>
800
            <li>
801
                The <a href="http://ccfls.org">Crawford County Federated Library System</a>, PA, USA (Koha 3.0 Zebra Integration sponsorship)</li>
802
            <li>
803
                The <a href="http://www.geauga.lib.oh.us/">Geauga County Public Library</a>, OH, USA (Koha 3.0 beta testing)</li>
804
            <li>
805
                The <a href="http://library.neu.edu.tr">Near East University</a>, Cyprus</li>
806
            <li>
807
                OPUS International Consultants, Wellington, New Zealand (Corporate Serials sponsorship)</li>
808
            <li>
809
                <a href="http://www.famfamfam.com/">famfamfam.com</a> Birmingham (UK) based developer Mark James for the famfamfam Silk iconset.
810
            </li>
811
            <li>
812
                <a href="http://www.ashs.school.nz/">Albany Senior High School</a>, Auckland, New Zealand (OPAC 'star-ratings' sponsorship)
813
            </li>
814
        </ul>
815
816
        <h2>Koha release teams</h2>
817
        [% IF maintenance_team %]
818
            <div class="row">
819
                <div class="col-md-6">
820
                    <h3>Koha [% short_version | html %][% IF kohaCodename %] ([% kohaCodename | html %])[% END %] release team</h3>
821
                    [% IF development_version %]
822
                        <p>You are running a development version of Koha</p>
823
                    [% ELSE %]
824
                        [% INCLUDE team t=release_team v='release' %]
825
                    [% END %]
826
                </div>
827
828
                <div class="col-md-6">
829
                    <h3>Current maintenance team</h3>
830
                    [% INCLUDE team t=maintenance_team v=short_version %]
831
                    [% IF development_version %]
832
                            <li><strong>Release maintainers:</strong>
833
                            <ul>
834
                                [% FOREACH m IN maintenance_team.maintainer %]
835
                                <li>[% m.version | html %] - [% INCLUDE person p=m %]</li>
836
                                    [% IF maintenance_team.maintainer_assistants %]
837
                                    [% FOREACH ma IN maintenance_team.maintainer_assistants %]
838
                                        [% IF ma.version == ( m.version ) %]
839
                                        <ul><li><strong>Assistant:</strong> [% INCLUDE person p=ma %]</li></ul>
840
                                        [% END %]
841
                                    [% END %]
842
                                    [% END %]
843
844
                                    [% IF maintenance_team.maintainer_mentors %]
845
                                    [% FOREACH mm IN maintenance_team.maintainer_mentors %]
846
                                        [% IF m.version == ( mm.version ) %]
847
                                        <ul><li><strong>Mentor:</strong> [% INCLUDE person p=mm %]</li></ul>
848
                                        [% END %]
849
                                    [% END %]
850
                                    [% END %]
851
                                [% END %]
852
                            </ul>
853
                        </li>
854
                    [% END %]
855
                </div>
856
            </div>
857
        [% ELSE %]
858
            <div class="dialog alert">
859
                Could not read the teams.yaml file. Please make sure &lt;docdir&gt; is correctly defined in koha-conf.xml.
860
            </div>
861
        [% END # /maintenance_team %]
862
863
        <h2>Koha development team</h2>
864
        [% IF contributors.size %]
865
            <ul class="columns-4">
866
                [% FOREACH contributor IN contributors %]
867
                    <li>[% INCLUDE person p=contributor %][% INCLUDE contributions p=contributor %]</li>
868
                [% END %]
869
            </ul>
870
        [% ELSE %]
871
            <div class="dialog alert">
872
                Could not read the contributors.yaml file. Please make sure &lt;docdir&gt; is correctly defined in koha-conf.xml.
873
            </div>
874
        [% END # /IF contributors.size %]
875
        <hr>
876
877
        <h2>Contributing companies and institutions</h2>
878
        <ul class="columns-4">
879
            <li>Allen Ginsberg Library, USA</li>
880
            <li>Alingsås Public Library, Sweden</li>
881
            <li>American Numismatic Society, USA</li>
882
            <li>Arcadia Public Library, USA</li>
883
            <li>Athens County Public Libraries, USA</li>
884
            <li>BdP de la Meuse, France</li>
885
            <li>BibLibre, France</li>
886
            <li>Biblioteca Provincial Fr. Mamerto Esquiú (Provincia Franciscana de la Asunción), Argentina</li>
887
            <li>Bibliotheksservice-Zentrum Baden-Württemberg (BSZ), Germany</li>
888
            <li>Briar Cliff University, USA</li>
889
            <li>Brimbank City Council, Australia</li>
890
            <li>Brooklyn Law School Library, USA</li>
891
            <li>Bibliothèque Universitaire des Langues et Civilisations (<a href="https://www.bulac.fr">BULAC</a>), France</li>
892
            <li>ByWater Solutions, USA</li>
893
            <li>California College of the Arts, USA</li>
894
            <li>Camden County, USA</li>
895
            <li>Carnegie Stout Library, USA</li>
896
            <li>Calyx, Australia</li>
897
            <li>Catalyst IT, New Zealand</li>
898
            <li>Central Kansas Library System (CKLS), USA</li>
899
            <li>Centre collégial des services regroupés (CCSR), Canada</li>
900
            <li>Cheshire Libraries, United Kingdom</li>
901
            <li>Coeur d'Alene Public Library, USA</li>
902
            <li>Corpus Christi Public Libraries, USA</li>
903
            <li>C &amp; P Bibliography Services, USA</li>
904
            <li>Dataly Tech, Greece</li>
905
            <li>Devinim, Turkey</li>
906
            <li>Do Space, USA</li>
907
            <li>DoverNet, USA</li>
908
            <li>doXulting</li>
909
            <li>Duchesne County Library, USA</li>
910
            <li>Escuela de Orientacion Lacaniana, Argentina</li>
911
            <li>Fenway Library Organization, USA</li>
912
            <li>Fargo Public Library, USA</li>
913
            <li>Farmington Public Library, USA</li>
914
            <li>FIT</li>
915
            <li>Foundations Bible College &amp; Seminary, USA</li>
916
            <li>Goethe-Institut, Germany</li>
917
            <li>Gothenburg University Library, Sweden</li>
918
            <li>Halland County Library, Sweden</li>
919
            <li>Harrison Carmel Public Library, USA</li>
920
            <li>Hauraki District Libraries, New Zealand</li>
921
            <li>Higher Education Libraries of Massachusetts, USA</li>
922
            <li>Hochschule für Gesundheit (hsg), Germany</li>
923
            <li>Hotchkiss School, USA</li>
924
            <li>Katipo Communications, New Zealand</li>
925
            <li>KEEP SOLUTIONS, Portugal</li>
926
            <li>KohaAloha, New Zealand</li>
927
            <li>Koha-Suomi Oy, Finland</li>
928
            <li>LibLime, USA</li>
929
            <li>Library of the Józef Piłsudski Institute of America, USA</li>
930
            <li>Libriotech, Norway</li>
931
            <li>Los Gatos Public Library, USA</li>
932
            <li>Lund University Library, Sweden</li>
933
            <li>MassCat, USA</li>
934
            <li>Middletown Township Public Library, USA</li>
935
            <li>National Library of Finland, Finland</li>
936
            <li>Newcastle City Council, United Kingdom</li>
937
            <li>New Zealand Central Agencies Library, New Zealand</li>
938
            <li>New Zealand Ministry of Education Library, New Zealand</li>
939
            <li>North Central Regional Library (NCRL), USA</li>
940
            <li>Northeast Kansas Library System (NEKLS), USA</li>
941
            <li>OPUS</li>
942
            <li>Orex Digital, Spain</li>
943
            <li>Oslo Public Library, Norway</li>
944
            <li>Plano Independent School, USA</li>
945
            <li>Plant and Food Research Limited, New Zealand</li>
946
            <li>Prosentient Systems, Australia</li>
947
            <li>PTFS, Maryland, USA</li>
948
            <li>PTFS Europe Ltd, United Kingdom</li>
949
            <li>Rijksmuseum, Amsterdam, The Netherlands</li>
950
            <li>Rolling Hills Consolidated Libraries, USA</li>
951
            <li>Round Rock Public Library, USA</li>
952
            <li>SAN-Ouest Provence, France</li>
953
            <li>Sefton Council, United Kingdom</li>
954
            <li>software.coop, United Kingdom</li>
955
            <li>South-East Kansas Library System (SEKLS), USA</li>
956
            <li>South Taranaki District Council, New Zealand</li>
957
            <li>Stockholm University Library, Sweden</li>
958
            <li>SWITCH Library Consortium, USA</li>
959
            <li>Talking Tech, Global</li>
960
            <li>Tamil, France</li>
961
            <li>Theke Solutions, Argentina</li>
962
            <li>Tulong Aklatan, Philippines</li>
963
            <li>Uintah Library System, USA</li>
964
            <li>Universidad de El Salvador, El Salvador</li>
965
            <li>Universidad Empresarial Siglo 21, Argentina</li>
966
            <li>Universidad Nacional de Córdoba, Argentina</li>
967
            <li>Universidad ORT Uruguay</li>
968
            <li>Université d'Aix-Marseille, France</li>
969
            <li>Université de Lyon 3, France</li>
970
            <li>Université de Rennes 2, France</li>
971
            <li>Université de St Etienne, France</li>
972
            <li>University of the Arts London, United Kingdom</li>
973
            <li>Vaara-kirjastot, Finland</li>
974
            <li>Vanier College, Canada</li>
975
            <li>Vermont Organization of Koha Automated Libraries (VOKAL), USA</li>
976
            <li>Ville de Victoriaville, Canada</li>
977
            <li>Virginia Tech, USA</li>
978
            <li>Washoe County Library System, USA</li>
979
            <li>Xercode, Spain</li>
980
        </ul>
981
982
        <h2>Additional thanks to...</h2>
983
        <ul>
984
            <li>Irma Birchall</li>
985
            <li>Rachel Hamilton-Williams (Kaitiaki from 2004 to present)</li>
986
            <li>Stephen Hedges (early Documentation Manager)</li>
987
            <li>Brooke Johnson</li>
988
            <li>Jo Ransom</li>
989
            <li>Nicholas Rosasco (Documentation Compiler)</li>
990
            <li>Regula Sebastiao</li>
991
        </ul>
992
    [% END # tab=team %]
993
[% END %]
994
995
[% BLOCK licenses_panel %]
996
    [% WRAPPER tab_panel tabname= "licenses" bt_active = 1 %]
997
        <h2>Koha</h2>
998
        <p>
999
            This program is free software: you can redistribute it and/or modify it under the terms of the <a rel="license" href="https://www.gnu.org/licenses/gpl-3.0.html">GNU General Public License</a> as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
1000
        </p>
1001
1002
        <h2>Bootstrap</h2>
1003
        <p>
1004
            <a href="https://getbootstrap.com/">Bootstrap</a>, <a href="https://glyphicons.com">Glyphicons Free</a>: <a href="https://github.com/twbs/bootstrap/blob/master/LICENSE">MIT License</a>
1005
        </p>
1006
1007
        <h2>Bootstrap Icons</h2>
1008
        <p>
1009
            <a href="https://icons.getbootstrap.com/">Bootstrap Icons</a>: <a href="https://github.com/twbs/icons/blob/main/LICENSE">MIT License</a>
1010
        </p>
1011
1012
        <h2>Bridge Material Type Icon Set</h2>
1013
        <p>
1014
            <a href="http://apps.carleton.edu/campus/library/bridge_icons/">Bridge Material Type Icons Project</a>: <a href="https://creativecommons.org/licenses/by-sa/2.5/">Creative Commons Attribution-ShareAlike 2.5 License</a>
1015
        </p>
1016
1017
        <h2>Chocolat.js</h2>
1018
        <p>
1019
            <a href="http://chocolat.insipi.de">Chocolat.js v1.1.2</a>: <a href="https://github.com/nicolas-t/Chocolat/blob/v1.1.2/LICENSE">GNU General Public License v3.0</a>
1020
        </p>
1021
1022
        <h2>CodeMirror</h2>
1023
        <p>
1024
            <a href="https://codemirror.net/">CodeMirror v5.40.2</a>: <a href="https://github.com/codemirror/codemirror5/blob/5.40.2/LICENSE">MIT License</a>
1025
        </p>
1026
1027
        <h2>C3.js</h2>
1028
        <p>
1029
            <a href="https://c3js.org/">C3.js D3-based reusable chart library v0.4.11</a>: <a href="https://github.com/c3js/c3/blob/0.4.11/LICENSE">MIT Licence</a>
1030
        </p>
1031
1032
        <h2>CSSLint</h2>
1033
        <p>
1034
            <a href="">CSSLint v0.9.8</a>: <a href="https://github.com/CSSLint/csslint/blob/v0.9.8/LICENSE">License</a>
1035
        </p>
1036
1037
        <h2>D3</h2>
1038
        <p>
1039
            <a href="https://d3js.org/">D3 JavaScript library for visualizing data v3.5.17</a>: <a href="https://github.com/d3/d3/blob/v3.5.17/LICENSE">ISC Licence</a>
1040
        </p>
1041
1042
        <h2>DataTables</h2>
1043
        <p>
1044
            <a href="https://datatables.net/">DataTables v.1.10.18</a>: <a href="https://datatables.net/license/mit">MIT Licence</a>
1045
        </p>
1046
1047
        <h2>Day.js</h2>
1048
        <p>
1049
            <a href="https://day.js.org/">Day.js v1.11.2</a>: <a href="https://github.com/iamkun/dayjs/blob/v1.11.2/LICENSE">MIT License</a>
1050
        </p>
1051
1052
        <h2>Enquire.js</h2>
1053
        <p>
1054
            <a href="https://wicky.nillia.ms/enquire.js">Enquire.js v2.1.6</a>:  <a href="https://github.com/WickyNilliams/enquire.js/blob/v2.1.6/LICENSE">MIT License</a>
1055
        </p>
1056
1057
        <h2>FamFamFam icons</h2>
1058
        <p>
1059
            <a href="https://web.archive.org/web/20221224123234/http://www.famfamfam.com/lab/icons/silk/">FamFamFam Silk icons</a>: <a href="https://creativecommons.org/licenses/by/2.5/">Creative Commons Attribution 2.5 License</a>
1060
        </p>
1061
1062
        <h2>FileSaver.js</h2>
1063
        <p>
1064
            <a href="https://github.com/eligrey/FileSaver.js">FileSaver.js v2.0.4</a>: <a href="https://github.com/eligrey/FileSaver.js/blob/v2.0.4/LICENSE.md">MIT License</p>
1065
1066
        <h2>Flatpicker</h2>
1067
        <p>
1068
            <a href="https://flatpickr.js.org/">Flatpickr v4.6.9</a>: <a href="https://github.com/flatpickr/flatpickr/blob/v4.6.9/LICENSE.md">MIT License</a>
1069
        </p>
1070
1071
        <h2>Font Awesome</h2>
1072
        <p>
1073
            <a href="https://fontawesome.com/">Font Awesome v6.3.0</a>: <a href="https://github.com/FortAwesome/Font-Awesome/blob/6.3.0/LICENSE.txt">Creative Commons Attribution 4.0 International License, SIL Open Font License Version 1.1, MIT License </a>
1074
        </p>
1075
1076
        <h2>Font Face Observer</h2>
1077
        <p>
1078
            <a href="https://github.com/bramstein/fontfaceobserver">Font Face Observer JavaScript library v2.3.0</a>: <a href="https://github.com/bramstein/fontfaceobserver/blob/v2.3.0/LICENSE">BSD 2-Clause "Simplified" License</a>
1079
        </p>
1080
1081
        <h2>GreyBox</h2>
1082
        <p>
1083
            <a href="https://web.archive.org/web/20160819153233/http://orangoo.com:80/labs/GreyBox">GreyBox JavaScript Library v5.54</a>: <a href="https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html">GNU Lesser General Public License, version 2.1</a>
1084
        </p>
1085
1086
        <h2>HC Sticky</h2>
1087
        <p>
1088
            <a href="https://somewebmedia.github.io/hc-sticky/">HC Sticky JavaScript library v2.2.7</a>: <a href="https://github.com/somewebmedia/hc-sticky/blob/v2.2.7/LICENSE">MIT License</a>
1089
        </p>
1090
1091
        <h2>Highlight</h2>
1092
        <p>
1093
            <a href="https://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html">Highlight jQuery Plugin v5.0</a>: MIT License
1094
        </p>
1095
1096
        <h2>HTMLHint</h2>
1097
        <p>
1098
            <a href="https://htmlhint.com/">HTMLHint v0.9.12</a>: <a href="https://github.com/htmlhint/HTMLHint/blob/v0.9.12/LICENSE.md">MIT License</a>
1099
        </p>
1100
1101
        <h2>Humanized Messages</h2>
1102
        <p>
1103
            <a href="https://code.google.com/archive/p/humanmsg/">Humanized Messages v1.0</a>: <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>
1104
        </p>
1105
1106
        <h2>JavaScript Cookie</h2>
1107
        <p>
1108
            <a href="https://github.com/js-cookie/js-cookie">JavaScript Cookie v3.0.1</a>: <a href="https://github.com/js-cookie/js-cookie/blob/v3.0.1/LICENSE">MIT License</a>
1109
        </p>
1110
1111
        <h2>JavaScript Diff Algorithm</h2>
1112
        <p>
1113
            <a href="https://johnresig.com/projects/javascript-diff-algorithm/">JavaScript Diff Algorithm</a>: <a href="https://opensource.org/license/mit/">MIT License</a>
1114
        </p>
1115
1116
        <h2>jQuery, jQuery Migrate, and jQuery UI</h2>
1117
        <p>
1118
            <a href="https://jquery.com/">jQuery v3.6.0</a>, <a href="https://github.com/jquery/jquery-migrate">jQuery Migrate</a>, <a href="https://jqueryui.com/">jQuery UI v1.13.2</a>: <a href="https://github.com/jquery/jquery/blob/3.6.0/LICENSE.txt">MIT License</a>
1119
        </p>
1120
1121
        <h2>jQuery Bar Rating Plugin</h2>
1122
        <p>
1123
            <a href="https://antennaio.github.io/jquery-bar-rating/">jQuery Bar Rating plugin v1.2.2</a>: <a href="https://github.com/antennaio/jquery-bar-rating/blob/v1.2.2/LICENSE.txt">MIT License</a>
1124
        </p>
1125
1126
        <h2>jQuery Emojiarea Plugin</h2>
1127
        <p>
1128
            <a href="https://github.com/diy/jquery-emojiarea">Emojiarea plugin for jQuery</a>: <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>
1129
        </p>
1130
1131
        <h2>jQuery insertAtCaret Plugin</h2>
1132
        <p>
1133
            jQuery insertAtCaret Plugin v1.0 by the phpMyAdmin development team: <a href="https://www.gnu.org/licenses/gpl-3.0.html">GNU General Public License</a>
1134
        </p>
1135
1136
        <h2>jQuery jEditable</h2>
1137
        <p>
1138
            <a href="https://github.com/NicolasCARPi/jquery_jeditable">jQuery jEditable</a>: <a href="https://github.com/NicolasCARPi/jquery_jeditable/blob/master/LICENSE">MIT Licence</a>
1139
        </p>
1140
1141
        <h2>jQuery jsTree Plugin</h2>
1142
        <p>
1143
            <a href="https://www.jstree.com/">jQuery jsTree Plugin v3.3.12</a>: <a href="https://github.com/vakata/jstree/blob/3.3.12/LICENSE-MIT">MIT License</a>
1144
        </p>
1145
1146
        <h2>jQuery Multiple Select Plugin</h2>
1147
        <p>
1148
            <a href="https://multiple-select.wenzhixin.net.cn/">jQuery Multiple Select plugin v1.6.0</a>: <a href="https://github.com/wenzhixin/multiple-select/blob/1.6.0/LICENSE">MIT License</a>
1149
        </p>
1150
1151
        <h2>jQuery TableDnD Plugin</h2>
1152
        <p>
1153
            <a href="https://github.com/isocra/TableDnD">Table drag and drop JQuery plugin</a>: <a href="https://github.com/isocra/TableDnD/blob/master/MIT-LICENSE.txt">MIT License</a>
1154
        </p>
1155
1156
        <h2>jQuery Treetable Plugin</h2>
1157
        <p>
1158
            <a href="https://github.com/ludo/jquery-treetable">jQuery Treetable Plugin 3.1.0</a>: <a href="https://github.com/ludo/jquery-treetable/blob/3.1.0/GPL-LICENSE.txt"> GNU General Public License v2.0</a>, <a href="https://github.com/ludo/jquery-treetable/blob/3.1.0/MIT-LICENSE.txt">MIT License</a>
1159
        </p>
1160
1161
        <h2>jQuery Validation Plugin</h2>
1162
        <p>
1163
            <a href="https://jqueryvalidation.org/">jQuery Validation Plugin v1.19.3</a>: <a href="https://github.com/jquery-validation/jquery-validation/blob/1.19.3/LICENSE.md">MIT License</a>
1164
        </p>
1165
1166
        <h2>JS-YAML</h2>
1167
        <p>
1168
            <a href="https://nodeca.github.io/js-yaml/">JS-YAML v3.13.1</a>: <a href="https://github.com/nodeca/js-yaml/blob/3.13.1/LICENSE">MIT License</a>
1169
        </p>
1170
1171
        <h2>JSHint</h2>
1172
        <p>
1173
            <a href="https://jshint.com/">JSHint v2.9.7</a>: <a href="https://github.com/jshint/jshint/blob/2.9.7/LICENSE">MIT License</a>
1174
        </p>
1175
1176
        <h2>JSZip</h2>
1177
        <p>
1178
            <a href="https://stuk.github.io/jszip/">JSZip JavaScript library v3.1.3</a>: <a href="https://github.com/Stuk/jszip/blob/v3.1.3/LICENSE.markdown">MIT License, GNU General Public License v3.0</a>
1179
        </p>
1180
1181
        <h2>kjua</h2>
1182
        <p>
1183
            <a href="https://larsjung.de/kjua/">kjua JavaScript library v0.6.0</a>: <a href="https://github.com/lrsjng/kjua/blob/v0.6.0/README.md">MIT License</a>
1184
        </p>
1185
1186
        <h2>Leaflet</h2>
1187
        <p>
1188
            <a href="https://leafletjs.com/">Leaflet JavaScript library v1.0.3</a>: <a href="https://github.com/Leaflet/Leaflet/blob/v1.0.3/LICENSE">BSD License</a>
1189
        </p>
1190
1191
        <h2>Noto fonts</h2>
1192
        <p>
1193
            <a href="https://github.com/googlei18n/noto-fonts">Noto</a>: <a href="https://github.com/notofonts/noto-fonts/blob/main/LICENSE">SIL Open Font License Version 1.1</a>
1194
        </p>
1195
1196
        <h2>OAI XSLT stylesheet</h2>
1197
        <p>
1198
            Adapted from the <a href="https://dspace.lyrasis.org/">DSpace project</a>: <a href="https://dspace.lyrasis.org/license/">BSD License</a>
1199
        </p>
1200
1201
        <h2>OpenAPI 2.0 schema</h2>
1202
        <p>
1203
            <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/schemas/v2.0/schema.json">JSON Schema for Swagger 2.0 API</a>: <a href="https://github.com/OAI/OpenAPI-Specification/tree/master/schemas/v2.0">Apache License, Version 2.0</a>, <a href="https://www.openapis.org/about">OpenAPI Initiative (OAI)</a>
1204
        </p>
1205
1206
        <h2>OpenJS Keyboard Shortcuts Library</h2>
1207
        <p>
1208
            <a href="http://www.openjs.com/scripts/events/keyboard_shortcuts/">OpenJS keyboard shortcuts library</a>: BSD License
1209
        </p>
1210
1211
        <h2>RequireJS</h2>
1212
        <p>
1213
            <a href="https://requirejs.org/">RequireJS JavaScript file and module loader v2.1.8</a>: <a href="https://github.com/requirejs/requirejs/blob/2.1.8/LICENSE">BSD License or MIT License</a>
1214
        </p>
1215
1216
        <h2>Select2</h2>
1217
        <p>
1218
            <a href="https://select2.github.io/select2/">Select2 library v4.0.13</a>: <a href="https://github.com/select2/select2/blob/4.0.13/LICENSE">Apache License, Version 2.0 or GNU General Public License v2.0</a>
1219
        </p>
1220
1221
        <h2>Sortable</h2>
1222
        <p>
1223
            <a href="https://sortablejs.github.io/Sortable/">Sortable JavaScript Library v1.15.0</a>: <a href="https://github.com/SortableJS/Sortable/blob/1.15.0/LICENSE">MIT Licence</a>
1224
        </p>
1225
1226
        <h2>TinyMCE WYSIWYG Editor</h2>
1227
        <p>
1228
            <a href="https://www.tiny.cloud/">TinyMCE WYSIWYG editor v5.9.2</a>: <a href="https://github.com/tinymce/tinymce/blob/5.9.2/LICENSE.TXT">GNU Lesser General Public License v2.1</a>
1229
        </p>
1230
1231
        <h2>Verovio</h2>
1232
        <p>
1233
            <a href="https://www.verovio.org/">Verovio</a>: <a href="https://github.com/rism-digital/verovio/blob/develop/COPYING">GNU General Public License v3.0</a>, <a href="https://github.com/rism-digital/verovio/blob/develop/COPYING.LESSER">GNU Lesser General Public License v3.0</a>
1234
        </p>
1235
1236
        <h2>Virtual Keyboard</h2>
1237
        <p>
1238
            <a href="https://mottie.github.io/Keyboard/index.html">Virtual Keyboard v1.30.1</a>: <a href="https://github.com/Mottie/Keyboard/blob/v1.30.1/LICENSE">MIT Licence</a>
1239
        </p>
1240
1241
    [% END # tab=licenses %]
1242
[% END %]
1243
1244
[% BLOCK translations_panel %]
1245
    [% WRAPPER tab_panel tabname= "translations" bt_active = 1 %]
1246
        <h2>Translation</h2>
1247
        <ul>
1248
            <li>العربية (Arabic) Version 3.2 to 3.4, 3.16 & 3.18 by KnowledgeWare Technologies; Versions 3.6 to 3.14 by Arabic Koha support team: Karam Qubsi, Kouider Bounama, Sham Bajaa, Ghofran Alshami, Chrestian Aboud, Fatema Salem and Duaa Bazzazi.
1249
            <li>&#4768;&#4635;&#4653;&#4763; (Amharic) Getway II Ethiopia Co. (Yohannes Mulugeta (Team Leader), Tegene Assefa, Abiyot Bayou)</li>
1250
            <li>Armenian Tigran Zargaryan</li>
1251
            <li>&#1041;&#1098;&#1083;&#1075;&#1072;&#1088;&#1089;&#1082;&#1080; (Bulgarian) Radoslav Kolev</li>
1252
            <li>euskara (Basque) Fernando Berrizbeitia, the librarians of Eima Katalogoa, Tabakalera International Contemporary Culture Centre, and Nere Erkiaga</li>
1253
            <li>&#2476;&#2494;&#2434;&#2482;&#2494; (Bengali) Parthasarathi Mukhopadhyay</li>
1254
            <li>&#20013;&#25991; (Chinese)</li>
1255
            <li>Hrvatski (Croatian)</li>
1256
            <li>&#x010D;e&#353;tina (Czech)</li>
1257
            <li>D&aelig;nsk (Danish)</li>
1258
            <li>Nederlands-Nederland (Dutch-The Netherlands) Ronald Wijlens, Saxion University</li>
1259
            <li>Nederlands-Belgi&euml; (Dutch-Belgium)</li>
1260
            <li>English</li>
1261
            <li>suomi, suomen kieli (Finnish) Pasi Korkalo</li>
1262
            <li>Fran&ccedil;ais (French) <a href="http://www.koha-fr.org/content/lassociation-kohala">Kohala</a>, Pascale Nalon (ENSMP), and many more </li>
1263
            <li>Galego (Galician) Ignacio Javier</li>
1264
            <li>Deutsch (German) Friedrich zur Hellen, Robert Hillig, Katrin Fischer, Beda Szukics, Mirko Tietgen and Marc Véron</li>
1265
            <li>&#949;&#955;&#955;&#951;&#957;&#953;&#954;&#940; (Greek, Modern [1453- ]) Koha Hellenic Users' Group (Georgia Katsarou, Dimitris Antonakis, Eugenios Papadopoulos), Theodoros Theodoropoulos, Panoraia Gaitanou and Kiriaki Roditi</li>
1266
            <li>&#1506;&#1489;&#1512;&#1497;&#1514; (Hebrew)</li>
1267
            <li>&#2361;&#2367;&#2344;&#2381;&#2342;&#2368; (Hindi)</li>
1268
            <li>Magyar (Hungarian)Agnes Imecs</li>
1269
            <li>Norsk Bokmål (Norwegian) Axel Bojer and Thomas Gramstad</li>
1270
            <li>Norsk Nynorsk (Norwegian) Unni Knutsen and Marit Kristine Ådland</li>
1271
            <li>(Indonesian)</li>
1272
            <li>Italiano (Italian) for 3.2: Zeno Tajoli, Pietro Gozzetti and Paolo Pozzan; for 3.4 and more: Zeno Tajoli, Stefano Bargioni, Paolo Bizzarri</li>
1273
            <li>&#26085;&#26412;&#35486; (Japanese)</li>
1274
            <li>&#54620;&#44397;&#50612; (Korean)</li>
1275
            <li>&#3221;&#3240;&#3277;&#3240;&#3233; (kanna&#7693;a)</li>
1276
            <li>Latina (Latin)</li>
1277
            <li>Lao Anousak Anthony Souphavanh</li>
1278
            <li>M&#257;ori</li>
1279
            <li>&#3374;&#3378;&#3375;&#3390;&#3379;&#3330; (Malayalam)</li>
1280
            <li>&#1601;&#1575;&#1585;&#1587;&#1609; (Persian)</li>
1281
            <li>&#2835;&#2908;&#2879;&#2822; (&#x014D;&#7771;iy&#257;)</li>
1282
            <li>Polski (Polish)</li>
1283
            <li>Portugu&ecirc;s (Portuguese)</li>
1284
            <li>Rom&acirc;n&#259; (Romanian)</li>
1285
            <li>&#1056;&#1091;&#1089;&#1089;&#1082;&#1080;&#1081; (Russian) Victor Titarchuk and Serhij Dubyk</li>
1286
            <li>Espa&ntilde;ol (Spanish) Bernardo González Kriegel, Héctor Castro and Tomás Cohen Arazi, with the help of the koha-es community.</li>
1287
            <li>Svenska (Swedish)</li>
1288
            <li>Tetun (Tetum) Karen Myers</li>
1289
            <li>&#3616;&#3634;&#3625;&#3634;&#3652;&#3607;&#3618; (Thai)</li>
1290
            <li>T&uuml;rk&ccedil;e (Turkish) pre-3.8: Selma Aslan; for 3.8+, Suleyman Demirel University (Ugur Bulgan, Onur Erdem, Kemal Caner Bayrakci, and Alper Tutunsatar)</li>
1291
            <li>&#1575;&#1585;&#1583;&#1608;(Urdu) Ata ur Rehman</li>
1292
            <li>&#1059;&#1082;&#1088;&#1072;&#1111;&#1085;&#1089;&#1100;&#1082;&#1072; (Ukrainian) Victor Titarchuk and Serhij Dubyk</li>
1293
        </ul>
1294
    [% END #tab=translations %]
1295
[% END %]
1296
1297
[% BLOCK history_panel %]
1298
    [% WRAPPER tab_panel tabname= "history" bt_active = 1 %]
1299
        <h2>Koha history timeline</h2>
1300
        [% IF ! timeline_read_error %]
1301
            <table style="cursor:pointer">
1302
                <thead>
1303
                    <tr>
1304
                        <td  style="font-weight:bold;" >Date</td>
1305
                        <td  style="font-weight:bold;" >Description</td>
1306
                    </tr>
1307
                </thead>
1308
                [% FOREACH tabl IN table2 %]
1309
                    <tr class="[% loop.parity | html %]">
1310
                        [% FOREACH ro IN tabl.row2 %]
1311
                            <td>[% ro.date | html %]</td>
1312
                            <td>[% ro.desc | html %]</td>
1313
                        [% END %]
1314
                    </tr>
1315
                [% END %]
1316
            </table>
1317
        [% ELSE %]
1318
            <div class="dialog alert">
1319
                Could not read the history.txt file. Please make sure &lt;docdir&gt; is correctly defined in koha-conf.xml.
1320
            </div>
1321
        [% END %]
1322
    [% END %]
1323
[% END %]
1324
1325
[% BLOCK dedications_panel %]
1326
    [% WRAPPER tab_panel tabname= "dedications" bt_active = 1 %]
1327
        <h2>22.11</h2>
1328
        <p>
1329
            The Koha Community would like to dedicate the release of Koha 22.11 to Rosalie Blake.
1330
        </p>
1331
        <p>
1332
            Rosalie was the Head Librarian at Horowhenua Library Trust when Koha was started and without her Koha
1333
            would not exist. She was an inspiring leader and innovator and took the risk of her career entrusting
1334
            Chris, Joanne, Rachel and Simon to deliver the original project that became the international sensation
1335
            we all know and love.
1336
        </p>
1337
        <p>
1338
            She was also a practicing Justice of the Peace, a stalwart of the Levin Pottery Club and much loved
1339
            mother of Simon and Jeremy, and grandmother of Ben, Toby, Anna, Charlotte and Billy.
1340
        </p>
1341
    [% END # tab=dedications %]
1342
[% END %]

Return to bug 33237