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

(-)a/C4/Auth.pm (+16 lines)
Lines 2029-2034 sub get_all_subpermissions { Link Here
2029
    return $all_perms;
2029
    return $all_perms;
2030
}
2030
}
2031
2031
2032
=head2 check_feature_tool_required
2033
2034
my $featuretoolrequired = C4::Auth->check_feature_tool_required();
2035
2036
Returns 1 from the userflags table if the authenticating user is required to be redirected to the feature release tool process. The 'featuretoolrequired' field is set in the mainpage.pl
2037
2038
=cut
2039
sub check_feature_tool_required {
2040
    my $dbh = C4::Context->dbh;
2041
    my $sth = $dbh->prepare("
2042
       SELECT featuretoolrequired FROM userflags WHERE bit = 0");
2043
    $sth->execute();
2044
    my $onboardingrequired = $sth->fetchrow();
2045
    return $onboardingrequired;
2046
}
2047
2032
=head2 haspermission
2048
=head2 haspermission
2033
2049
2034
  $flags = ($userid, $flagsrequired);
2050
  $flags = ($userid, $flagsrequired);
(-)a/Koha/Patron.pm (+19 lines)
Lines 638-643 sub get_enrollable_clubs { Link Here
638
    return wantarray ? $e->as_list : $e;
638
    return wantarray ? $e->as_list : $e;
639
}
639
}
640
640
641
=head3 check_if_patrons_have_flags
642
643
my $patron_has_flags = Koha::Patron->check_if_patrons_have_flag    s();
644
645
All sample patrons that can optionally be installed whilst running the Koha web installer have the flag value of NULL, this subroutine checks if any borrower records in the borrowers table contain a number, and so this means that they must have been manually added. If there is a numberical flag returned then this subroutine will return a 1 to mainpage.pl script to ensure that users are appropriately redirected to the feature release change tool
646
647
=cut
648
sub check_if_patrons_have_flags {
649
     my $dbh = C4::Context->dbh;
650
     my $sth = $dbh->prepare("
651
          select * from borrowers where flags != 'NULL'");
652
     $sth->execute();
653
     my $no_patrons_with_flags;
654
     if ( $sth->rows ) {
655
          $no_patrons_with_flags = 1;
656
     }
657
     return $no_patrons_with_flags;
658
}
659
641
=head3 account_locked
660
=head3 account_locked
642
661
643
my $is_locked = $patron->account_locked
662
my $is_locked = $patron->account_locked
(-)a/admin/preferences.pl (-60 / +62 lines)
Lines 58-131 sub GetTab { Link Here
58
}
58
}
59
59
60
sub _get_chunk {
60
sub _get_chunk {
61
    my ( $value, %options ) = @_;
61
   my ( $value, %options ) = @_;
62
62
63
    my $name = $options{'pref'};
63
   my $name = $options{'pref'};
64
    my $chunk = { name => $name, value => $value, type => $options{'type'} || 'input', class => $options{'class'} };
64
   my $chunk = { name => $name, value => $value, type => $options{'type'} || 'input', class => $options{'class'} };
65
65
66
    if ( $options{'class'} && $options{'class'} eq 'password' ) {
66
   if ( $options{'class'} && $options{'class'} eq 'password' ) {
67
        $chunk->{'input_type'} = 'password';
67
       $chunk->{'input_type'} = 'password';
68
    } elsif ( $options{'class'} && $options{'class'} eq 'date' ) {
68
   } elsif ( $options{'class'} && $options{'class'} eq 'date' ) {
69
        $chunk->{'dateinput'} = 1;
69
       $chunk->{'dateinput'} = 1;
70
    } elsif ( $options{'type'} && ( $options{'type'} eq 'opac-languages' || $options{'type'} eq 'staff-languages' ) ) {
70
   } elsif ( $options{'type'} && ( $options{'type'} eq 'opac-languages' || $options{'type'} eq 'staff-languages' ) ) {
71
        my $current_languages = { map { +$_, 1 } split( /\s*,\s*/, $value ) };
71
       my $current_languages = { map { +$_, 1 } split( /\s*,\s*/, $value ) };
72
72
73
        my $theme;
73
       my $theme;
74
        my $interface;
74
       my $interface;
75
        if ( $options{'type'} eq 'opac-languages' ) {
75
       if ( $options{'type'} eq 'opac-languages' ) {
76
            # this is the OPAC
76
            # this is the OPAC
77
            $interface = 'opac';
77
           $interface = 'opac';
78
            $theme     = C4::Context->preference('opacthemes');
78
           $theme     = C4::Context->preference('opacthemes');
79
        } else {
79
       } else {
80
            # this is the staff client
80
           # this is the staff client
81
            $interface = 'intranet';
81
           $interface = 'intranet';
82
            $theme     = C4::Context->preference('template');
82
           $theme     = C4::Context->preference('template');
83
        }
83
       }
84
        $chunk->{'languages'} = getTranslatedLanguages( $interface, $theme, $lang, $current_languages );
84
       $chunk->{'languages'} = getTranslatedLanguages( $interface, $theme, $lang, $current_languages );
85
        $chunk->{'type'} = 'languages';
85
       $chunk->{'type'} = 'languages';
86
    } elsif ( $options{ 'choices' } ) {
86
   } elsif ( $options{ 'choices' } ) {
87
        if ( $options{'choices'} && ref( $options{ 'choices' } ) eq '' ) {
87
       if ( $options{'choices'} && ref( $options{ 'choices' } ) eq '' ) {
88
            if ( $options{'choices'} eq 'class-sources' ) {
88
           if ( $options{'choices'} eq 'class-sources' ) {
89
                my $sources = GetClassSources();
89
               my $sources = GetClassSources();
90
                $options{'choices'} = { map { $_ => $sources->{$_}->{'description'} } keys %$sources };
90
               $options{'choices'} = { map { $_ => $sources->{$_}->{'description'} } keys %$sources };
91
            } elsif ( $options{'choices'} eq 'opac-templates' ) {
91
           } elsif ( $options{'choices'} eq 'opac-templates' ) {
92
                $options{'choices'} = { map { $_ => $_ } getallthemes( 'opac' ) }
92
               $options{'choices'} = { map { $_ => $_ } getallthemes( 'opac' ) }
93
            } elsif ( $options{'choices'} eq 'staff-templates' ) {
93
           } elsif ( $options{'choices'} eq 'staff-templates' ) {
94
                $options{'choices'} = { map { $_ => $_ } getallthemes( 'intranet' ) }
94
               $options{'choices'} = { map { $_ => $_ } getallthemes( 'intranet' ) }
95
            } else {
95
           } else {
96
                die 'Unrecognized source of preference values: ' . $options{'choices'};
96
               die 'Unrecognized source of preference values: ' . $options{'choices'};
97
            }
97
           }
98
        }
98
       }
99
99
100
        $value ||= 0;
100
       $value ||= 0;
101
101
102
        $chunk->{'type'} = 'select';
102
        $chunk->{'type'} = 'select';
103
        $chunk->{'CHOICES'} = [
103
       $chunk->{'CHOICES'} = [
104
            sort { $a->{'text'} cmp $b->{'text'} }
104
           sort { $a->{'text'} cmp $b->{'text'} }
105
            map { { text => $options{'choices'}->{$_}, value => $_, selected => ( $_ eq $value || ( $_ eq '' && ( $value eq '0' || !$value ) ) ) } }
105
           map { { text => $options{'choices'}->{$_}, value => $_, selected => ( $_ eq $value || ( $_ eq '' && ( $value eq '0' || !$value ) ) ) } }
106
            keys %{ $options{'choices'} }
106
           keys %{ $options{'choices'} }
107
        ];
107
       ];
108
    } elsif ( $options{'multiple'} ) {
108
   } elsif ( $options{'multiple'} ) {
109
        my @values;
109
       my @values;
110
        @values = split /,/, $value if defined($value);
110
       @values = split /,/, $value if defined($value);
111
        $chunk->{type}    = 'multiple';
111
       $chunk->{type}    = 'multiple';
112
        $chunk->{CHOICES} = [
112
       $chunk->{CHOICES} = [
113
            sort { $a->{'text'} cmp $b->{'text'} }
113
           sort { $a->{'text'} cmp $b->{'text'} }
114
              map {
114
             map {
115
                my $option_value = $_;
115
               my $option_value = $_;
116
                {
116
               {
117
                    text     => $options{multiple}->{$option_value},
117
                   text     => $options{multiple}->{$option_value},
118
                    value    => $option_value,
118
                   value    => $option_value,
119
                    selected => (grep /^$option_value$/, @values) ? 1 : 0,
119
                   selected => (grep /^$option_value$/, @values) ? 1 : 0,
120
                }
120
               }
121
              }
121
             }
122
              keys %{ $options{multiple} }
122
             keys %{ $options{multiple} }
123
        ];
123
       ];
124
    }
124
   }
125
125
126
    $chunk->{ 'type_' . $chunk->{'type'} } = 1;
126
    $chunk->{ 'type_' . $chunk->{'type'} } = 1;
127
127
128
    return $chunk;
128
   return $chunk;
129
}
129
}
130
130
131
sub TransformPrefsToHTML {
131
sub TransformPrefsToHTML {
Lines 165-171 sub TransformPrefsToHTML { Link Here
165
                        } else {
165
                        } else {
166
                            $value = $row->{'value'};
166
                            $value = $row->{'value'};
167
                        }
167
                        }
168
                        my $chunk = _get_chunk( $value, %$piece );
168
                        my $source = "preferences";
169
                        my $chunk = _get_chunk( $value, $source, %$piece );
169
170
170
                        # No highlighting of inputs yet, but would be useful
171
                        # No highlighting of inputs yet, but would be useful
171
                        $chunk->{'highlighted'} = 1 if ( $searchfield && $name =~ /^$searchfield$/i );
172
                        $chunk->{'highlighted'} = 1 if ( $searchfield && $name =~ /^$searchfield$/i );
Lines 225-230 sub SearchPrefs { Link Here
225
    my ( $input, $searchfield ) = @_;
226
    my ( $input, $searchfield ) = @_;
226
    my @tabs;
227
    my @tabs;
227
228
229
    warn $input, $searchfield;
228
    my %tab_files = _get_pref_files( $input );
230
    my %tab_files = _get_pref_files( $input );
229
    our @terms = split( /\s+/, $searchfield );
231
    our @terms = split( /\s+/, $searchfield );
230
232
(-)a/admin/systempreferences.pl (+1 lines)
Lines 339-344 if ( $op eq 'add_form' ) { Link Here
339
        unless C4::Context->config('demo');
339
        unless C4::Context->config('demo');
340
    print $input->redirect("/cgi-bin/koha/admin/systempreferences.pl?tab=");
340
    print $input->redirect("/cgi-bin/koha/admin/systempreferences.pl?tab=");
341
    exit;
341
    exit;
342
342
################## DELETE_CONFIRM ##################################
343
################## DELETE_CONFIRM ##################################
343
    # called by default form, used to confirm deletion of data in DB
344
    # called by default form, used to confirm deletion of data in DB
344
} elsif ( $op eq 'delete_confirm' ) {
345
} elsif ( $op eq 'delete_confirm' ) {
(-)a/installer/data/mysql/atomicupdate/18645_adding_version_column_to_systempreferences_table.sql (+69 lines)
Line 0 Link Here
1
ALTER TABLE systempreferences ADD version varchar(12) DEFAULT NULL;
2
ALTER TABLE systempreferences ADD display_choices mediumtext DEFAULT NULL;
3
INSERT INTO systempreferences (variable, explanation) VALUES ("PreviousVersion", "The most recent Koha database version that this Koha instance upgraded from. WARNING: Do not change this, it is used by the feature release tool to display appropriate installed system preferences after each update process");
4
UPDATE systempreferences SET version="16.06.00.003" WHERE variable ="MaxItemsToProcessForBatchMod";
5
UPDATE systempreferences SET version="16.06.00.003" WHERE variable ="MaxItemsToDisplayForBatchDel";
6
UPDATE systempreferences SET version="16.06.00.004" WHERE variable ="OPACXSLTListsDisplay";
7
UPDATE systempreferences SET version="16.06.00.004" WHERE variable ="XSLTListsDisplay";
8
UPDATE systempreferences SET version="16.06.00.005" WHERE variable ="XSLTListsDisplay";
9
UPDATE systempreferences SET version="16.06.00.006", display_choices="check-in library.|item home branch.|item holding branch." WHERE variable="RefundLostOnReturnControl";
10
UPDATE systempreferences SET version="16.06.00.007" WHERE variable="PatronQuickAddFields";
11
UPDATE systempreferences SET version="16.06.00.008", display_choices="Do|Unless overridden, do|Unless overridden, do not|Do not" WHERE variable="CheckPrevCheckout";
12
UPDATE systempreferences SET version="16.06.00.009", display_choices="Don't show|Show" WHERE variable="IntranetCatalogSearchPulldown";
13
UPDATE systempreferences SET version="16.06.00.010" WHERE variable="MaxOpenSuggestions";
14
UPDATE systempreferences SET version="16.06.00.011", display_choices="Don't add|add" WHERE variable="NovelistSelectStaffEnabled";
15
UPDATE systempreferences SET version="16.06.00.011", display_choices="in a tab|above the holdings table|below the holdings table" WHERE variable="NovelistSelectStaffView";
16
UPDATE systempreferences SET version="16.06.00.013", display_choices="home library|current location" WHERE variable="OPACResultsLibrary";
17
UPDATE systempreferences SET version="16.06.00.015", display_choices="Don't log|Log" WHERE variable="HoldsLog";
18
UPDATE systempreferences SET version="16.06.00.020", display_choices="Don't switch|Switch" WHERE variable="SwitchOnSiteCheckouts";
19
UPDATE systempreferences SET version="16.06.00.027", display_choices="Don't|Do" WHERE variable="TrackLastPatronActivity";
20
UPDATE systempreferences SET version="16.06.00.021", display_choices="Do not consider|Consider" WHERE variable="PatronSelfRegistrationEmailMustBeUnique";
21
UPDATE systempreferences SET version="16.06.00.023" WHERE variable="timeout";
22
UPDATE systempreferences SET version="16.06.00.025", display_choices="Do not make|Make" WHERE variable="makePreviousSerialAvailable";
23
UPDATE systempreferences SET version="16.06.00.026" WHERE variable="PatronSelfRegistrationLibraryList";
24
UPDATE systempreferences SET version="16.06.00.027", display_choices="Don't|Do" WHERE variable="TrackLastPatronActivity";
25
UPDATE systempreferences SET version="16.06.00.029", display_choices="public|school|academic|research|private|society or association|corporate|government|religious organization|subscription" WHERE variable="UsageStatsLibraryType";
26
UPDATE systempreferences SET version="16.06.00.029", options="Afghanistan|Albania|Algeria|Andorra|Angola|Angitua & Deps|Argentina|Armenia|Australia|Austria|Azerbaijan|Bahamas|Bahrain|Bangladesh|Barbados|Belarus|Barbados|Belgium|Beliza|Benin|Bhutan|Bolizia|Bosnia Herz.|Botswana|Brazil|Brunei|Bulgaria|Burkina|Burundi|Cambodia|Cameroon|Canada|Capre Verde|Centr. Afr. Rep|Chad|Chile|China|Colombia|Comoros|Congo|Costa Rica|Croatia|Cuba|Cyprus|Czeck Rpublic|Denmark|Djibouti|Dominica|Dominican Rep.|East Timor|Ecuador|Egypt|El Salvador|Equator. Guinea|Eritrea|Estonia|Ethiopia|Fiji|Finland|France|Gabon|Gambia|Georgia|Germany|Ghana|Greece|Grenada|Guatemala|Guinea|Guinea-Bissau|Guyana|Haiti|Honduras|Hungary|Iceland|India|Indonesia|Iran|Iraq|Ireland|Isreal|Italy|Ivory Coast|Jamaica|Japan|Jordan|Kazakhstan|Kenya|Kiribati|Korea North|Korea South|Kosovo|Kuwait|Kyrgyzstan|Laos|Latvia|Lebanon|Lesotho|Liberia|Libya|Liechtenstein|Lithuania|Luxembourg|Macedonia|Madagascar|Malawi|Malyasia|Maldives|Mali|Malta|Marshall Isl.|Mauritania|Mauritius|Mexico|Micronesia|Moldova|Monaco|Mongolia|Montenegro|Morocco|Mozambique|Myanmar|Namibia|Nauru|Nepal|Netherlands|New Zealand|Nicaragua|Niger|Nigeria|Norway|Oman|Pakistan|Palau|Papua N. Guinea|Paraguay|Peru|Philippines|Poland|Portugal|Qatar|Romania|Russian Fed.|Rwanada|St Kitts & Nev.|St Lucia|St Vincent|Samoa|San Marino|Sao Tome|Saudi Arabia|Senegal|Serbia|Seychelles|Sierra Leone|Singapore|Slovakia|Slovenia|Solomon Islands|Somalia|South Africa|Spain|Sri Lanka|Sudan|Suriname|Swaziland|Sweden|Switzerland|Syria|Taiwan|Tajikistan|Tanzania|Thailand|Togo|Tonga|Trinidad & Tob.|Tunisia|Turkey|Turkmenistan|Tuvalu|Uganda|Ukraine|UAE|United Kingdom|USA|Uruguay|Uzbekistan|Vanuatu|Vatican City|Venezuela|Vietnam|Yemen|Zambia|Zimbabwe", display_choices="Afghanistan|Albania|Algeria|Andorra|Angola|Angitua & Deps|Argentina|Armenia|Australia|Austria|Azerbaijan|Bahamas|Bahrain|Bangladesh|Barbados|Belarus|Barbados|Belgium|Beliza|Benin|Bhutan|Bolizia|Bosnia Herz.|Botswana|Brazil|Brunei|Bulgaria|Burkina|Burundi|Cambodia|Cameroon|Canada|Capre Verde|Centr. Afr. Rep|Chad|Chile|China|Colombia|Comoros|Congo|Costa Rica|Croatia|Cuba|Cyprus|Czeck Rpublic|Denmark|Djibouti|Dominica|Dominican Rep.|East Timor|Ecuador|Egypt|El Salvador|Equator. Guinea|Eritrea|Estonia|Ethiopia|Fiji|Finland|France|Gabon|Gambia|Georgia|Germany|Ghana|Greece|Grenada|Guatemala|Guinea|Guinea-Bissau|Guyana|Haiti|Honduras|Hungary|Iceland|India|Indonesia|Iran|Iraq|Ireland|Isreal|Italy|Ivory Coast|Jamaica|Japan|Jordan|Kazakhstan|Kenya|Kiribati|Korea North|Korea South|Kosovo|Kuwait|Kyrgyzstan|Laos|Latvia|Lebanon|Lesotho|Liberia|Libya|Liechtenstein|Lithuania|Luxembourg|Macedonia|Madagascar|Malawi|Malyasia|Maldives|Mali|Malta|Marshall Isl.|Mauritania|Mauritius|Mexico|Micronesia|Moldova|Monaco|Mongolia|Montenegro|Morocco|Mozambique|Myanmar|Namibia|Nauru|Nepal|Netherlands|New Zealand|Nicaragua|Niger|Nigeria|Norway|Oman|Pakistan|Palau|Papua N. Guinea|Paraguay|Peru|Philippines|Poland|Portugal|Qatar|Romania|Russian Fed.|Rwanada|St Kitts & Nev.|St Lucia|Saint Vincent|Samoa|San Marino|Sao Tome|Saudi Arabia|Senegal|Serbia|Seychelles|Sierra Leone|Singapore|Slovakia|Slovenia|Solomon Islands|Somalia|South Africa|Spain|Sri Lanka|Sudan|Suriname|Swaziland|Sweden|Switzerland|Syria|Taiwan|Tajikistan|Tanzania|Thailand|Togo|Tonga|Trinidad & Tob.|Tunisia|Turkey|Turkmenistan|Tuvalu|Uganda|Ukraine|UAE|United Kingdom|USA|Uruguay|Uzbekistan|Vanuatu|Vatican City|Venezuela|Vietnam|Yemen|Zambia|Zimbabwe" WHERE variable="UsageStatsCountry";
27
UPDATE systempreferences SET version="16.06.00.030", display_choices="First column of the table|Home library|Holding library" WHERE variable="OPACHoldingsDefaultSortField";
28
UPDATE systempreferences SET version="16.06.00.031", display_choices="Do not display and prefill|Display and prefill" WHERE variable="PatronSelfRegistrationPrefillForm";
29
UPDATE systempreferences SET version="16.06.00.035", display_choices="Don't allow|Allow" WHERE variable="AllowItemsOnHoldCheckoutSCO";
30
UPDATE systempreferences SET version="16.06.00.036", display_choices="Disable|Enable" WHERE variable="HouseboundModule";
31
UPDATE systempreferences SET version="16.06.00.037", display_choices="Don't enable|Enable" WHERE variable="ArticleRequests";
32
UPDATE systempreferences SET version="16.06.00.037", display_choices="Title|Author|Volume|Issue|Date|Pages|Chapters" WHERE variable="ArticleRequestsMandatoryFields";
33
UPDATE systempreferences SET version="16.06.00.037", display_choices="Title|Author|Volume|Issue|Date|Pages|Chapters" WHERE variable="ArticleRequestsMandatoryFieldsItemsOnly";
34
UPDATE systempreferences SET version="16.06.00.037", display_choices="Title|Author|Volume|Issue|Date|Pages|Chapters" WHERE variable="ArticleRequestsMandatoryFieldsRecordOnly";
35
UPDATE systempreferences SET version="16.06.00.038", display_choices="surname,firstname,othernames,cardnumber,userid" WHERE variable="DefaultPatronSearchFields";
36
UPDATE systempreferences SET version="16.06.00.041", display_choices="don't|do" WHERE variable="AggressiveMatchOnISSN";
37
UPDATE systempreferences SET version="16.06.00.045", display_choices="current membership expiry date.|current date.|the latter of the current and expiry date." WHERE variable="BorrowerRenewalPeriodBase";
38
UPDATE systempreferences SET version="16.06.00.049" WHERE variable="ReplytoDefault";
39
UPDATE systempreferences SET version="16.06.00.049" WHERE variable="ReturnpathDefault";
40
UPDATE systempreferences SET version="16.12.00.005", display_choices="loose|strict" WHERE variable="AuthorityMergeMode";
41
UPDATE systempreferences SET version="16.12.00.008" WHERE variable="MarcItemFieldsToOrder";
42
UPDATE systempreferences SET version="16.12.00.009", display_choices="Don't allow|Allow" WHERE variable="OPACHoldsIfAvailableAtPickup";
43
UPDATE systempreferences SET version="16.12.00.009" WHERE variable="OPACHoldsIfAvailableAtPickupExceptions";
44
UPDATE systempreferences SET version="16.12.00.010", display_choices="Don't enable|Enable" WHERE variable="OverDriveCirculation";
45
UPDATE systempreferences SET version="16.12.00.012", display_choices="Don't display|Display" WHERE variable="OpacNewsLibrarySelect";
46
UPDATE systempreferences SET version="16.12.00.013", display_choices="Deactivate|Activate" WHERE variable="CircSidebar";
47
UPDATE systempreferences SET version="16.12.00.014", display_choices="Don't load|Load" WHERE variable="LoadSearchHistoryToTheFirstLoggedUser";
48
UPDATE systempreferences SET version="16.12.00.015" WHERE variable="UsageStatsGeolocation";
49
UPDATE systempreferences SET version="16.12.00.015", display_choices="Do not Share|Share" WHERE variable="UsageStatsLibrariesInfo";
50
UPDATE systempreferences SET version="16.12.00.015" WHERE variable="UsageStatsPublicID";
51
UPDATE systempreferences SET version="16.12.00.017", display_choices="Don't cumulate|Cumulate" WHERE variable="CumulativeRestrictionPeriods";
52
UPDATE systempreferences SET version="16.12.00.020", display_choices="any time a hold is placed.|only if all items are checked out and the record has at least one hold already.|any time a hold is collected." WHERE variable="HoldFeeMode";
53
UPDATE systempreferences SET version="16.12.00.021", display_choices="Don't log|Log"  WHERE variable="RenewalLog";
54
UPDATE systempreferences SET version="16.12.00.023" WHERE variable="AuthorityMergeLimit";
55
UPDATE systempreferences SET version="16.12.00.024" WHERE variable="OverdueNoticeBcc";
56
UPDATE systempreferences SET version="16.12.00.024" WHERE variable="NoticeBcc";
57
UPDATE systempreferences SET version="16.12.00.025" WHERE variable="UploadPurgeTemporaryFilesDays";
58
UPDATE systempreferences SET version="16.12.00.028", display_choices="Germany style ([Address][Street number] - [ZIP/Postal Code] - [Country])|French style ([Street number][Address] - [ZIP/Postal COde][City] - [Country])|US style ([Street number], [Address] - [City], [ ZIP/Postal Code], [Country})" WHERE variable="AddressFormat";
59
UPDATE systempreferences SET version="16.12.00.029", display_choices="Don't allow|Allow" WHERE variable="AllowCheckoutNotes";
60
UPDATE systempreferences SET version="16.12.00.032", display_choices="Don't allow|Allow" WHERE variable="ExcludeHolidaysFromMaxPickUpDelay";
61
UPDATE systempreferences SET version="16.12.00.033", display_choices="Don't allow|Allow" WHERE variable="TranslateNotices";
62
UPDATE systempreferences SET version="16.12.00.034", display_choices="Block|Allow" WHERE variable="OPACFineNoRenewalsBlockAutoRenew";
63
UPDATE systempreferences SET version="16.12.00.036" WHERE variable="NumSavedReports";
64
UPDATE systempreferences SET version="16.12.00.037" WHERE variable="FailedLoginAttempts";
65
UPDATE systempreferences SET version="16.12.00.038" WHERE variable="ExportRemoveFields";
66
UPDATE systempreferences SET version="16.12.00.039", display_choices="Disable|Enable"  WHERE variable="TalkingTechItivaPhoneNotification";
67
68
69
(-)a/installer/data/mysql/kohastructure.sql (+1 lines)
Lines 2257-2262 CREATE TABLE `userflags` ( Link Here
2257
  `flag` varchar(30) default NULL,
2257
  `flag` varchar(30) default NULL,
2258
  `flagdesc` varchar(255) default NULL,
2258
  `flagdesc` varchar(255) default NULL,
2259
  `defaulton` int(11) default NULL,
2259
  `defaulton` int(11) default NULL,
2260
  `featuretoolrequired` int(1) default NULL,
2260
  PRIMARY KEY  (`bit`)
2261
  PRIMARY KEY  (`bit`)
2261
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
2262
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
2262
2263
(-)a/installer/featurereleasetool.pl (+192 lines)
Line 0 Link Here
1
#!/usr/bin/perl
2
3
# This file is part of Koha.
4
#
5
# Copyright (C) 2017  Catalyst IT
6
#
7
# Koha is free software; you can redistribute it and/or modify it
8
# under the terms of the GNU General Public License as published by
9
# the Free Software Foundation; either version 3 of the License, or
10
# (at your option) any later version.
11
#
12
# Koha is distributed in the hope that it will be useful, but
13
# WITHOUT ANY WARRANTY; without even the implied warranty of
14
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
# GNU General Public License for more details.
16
#
17
# You should have received a copy of the GNU General Public License
18
# along with Koha; if not, see <http://www.gnu.org/licenses>.
19
20
use strict;
21
use warnings;
22
use diagnostics;
23
24
use C4::InstallAuth;
25
use CGI qw ( -utf8 );
26
use POSIX qw(strftime);
27
use Koha;
28
use C4::Context;
29
use C4::Output;
30
use C4::Templates;
31
use C4::Languages qw(getAllLanguages getTranslatedLanguages);
32
use C4::Installer;
33
use C4::NewsChannels;
34
use Data::Dumper;
35
use Koha::DateUtils;
36
use Date::Calc qw/Date_to_Days Today/;
37
our $lang;
38
39
my $query = new CGI;
40
my $step  = $query->param('step');
41
my $kohaversion = $query->param('kohaversion'); #Retrieve kohaversion number from url
42
my $dbversion = $query->param('dbversion');
43
my $dbh = C4::Context->dbh;
44
my $op = $query->param('op');
45
my $language = $query->param('language');
46
my ( $template, $loggedinuser, $cookie );
47
48
my $all_languages = getAllLanguages();
49
50
if ( defined($language) ) {
51
    C4::Templates::setlanguagecookie( $query, $language, "install.pl?step=1" );
52
}
53
54
#Set featurereleasetool.tt as template
55
( $template, $loggedinuser, $cookie ) = get_template_and_user(
56
    {
57
        template_name => "installer/featurereleasetool.tt",
58
        query         => $query,
59
        type          => "intranet",
60
        authnotrequired => 0,
61
        debug           => 1,
62
    }
63
);
64
65
#Database settings
66
my $installer = C4::Installer->new();
67
my %info;
68
$info{'dbname'} = C4::Context->config("database");
69
$info{'dbms'}   = (
70
      C4::Context->config("db_scheme")
71
    ? C4::Context->config("db_scheme")
72
    : "mysql"
73
);
74
$info{'hostname'} = C4::Context->config("hostname");
75
$info{'port'}     = C4::Context->config("port");
76
$info{'user'}     = C4::Context->config("user");
77
$info{'password'} = C4::Context->config("pass");
78
$info{'tls'} = C4::Context->config("tls");
79
    if ($info{'tls'} && $info{'tls'} eq 'yes'){
80
        $info{'ca'} = C4::Context->config('ca');
81
        $info{'cert'} = C4::Context->config('cert');
82
        $info{'key'} = C4::Context->config('key');
83
        $info{'tlsoptions'} = ";mysql_ssl=1;mysql_ssl_client_key=".$info{key}.";mysql_ssl_client_cert=".$info{cert}.";mysql_ssl_ca_file=".$info{ca};
84
        $info{'tlscmdline'} =  " --ssl-cert ". $info{cert} . " --ssl-key " . $info{key} . " --ssl-ca ".$info{ca}." "
85
    }
86
87
my $location = "feature";
88
89
$template->param(
90
        'kohaversion' => $kohaversion,
91
        'dbversion'   => $dbversion,
92
        'location'    => $location,
93
);
94
95
my $logdir = C4::Context->config('logdir');
96
my @logs = `cd $logdir && ls -t | grep "updatedatabase_2*"`;
97
98
my $filename_suffix = $logs[0];
99
my $path = $logdir . '/' . $filename_suffix;
100
my $file;
101
my $count = 0;
102
$file = `cat $path`;
103
$file = `echo "$file" | grep -Eo '?[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+?'`;
104
105
my @prefsloop;
106
my @lines = split /\n/, $file;
107
foreach my $line (@lines) {
108
    my $query = qq|
109
       SELECT variable, value, options, display_choices, explanation, type from systempreferences WHERE version= ? |;
110
    my $sth = $dbh->prepare($query);
111
    $sth->execute($line);
112
    while (my ($variable, $value, $options, $display_choices, $explanation, $type) = $sth->fetchrow) {
113
        if ($options) {
114
            push @prefsloop, {
115
                variable => $variable,
116
                value    => $value,
117
                options  => $options,
118
                explanation => $explanation,
119
                type     => $type,
120
                display_choices  => $display_choices,
121
            };
122
        } else {
123
            push @prefsloop, {
124
                variable => $variable,
125
                value    => $value,
126
                explanation => $explanation,
127
                type     => $type,
128
                display_choices  => $display_choices,
129
            };
130
        }
131
    }
132
};
133
134
$template->param( prefs => \@prefsloop, submitted_form => $op );
135
136
#If the user has finished using the feature release change tool then redirect to mainpage
137
if ( $op && $op eq 'finished' ) {
138
    $dbh->do(q{UPDATE userflags SET featuretoolrequired = 0 WHERE bit = ?}, {}, 0);
139
    print $query->redirect("/cgi-bin/koha/mainpage.pl");
140
    exit;
141
}
142
elsif ( $op && $op eq 'save' ) { #Submit changed systempreferences
143
    unless ( C4::Context->config( 'demo' ) ) {
144
        foreach my $param ( $query->param() ) {
145
            my ( $prefname ) = ( $param =~ /pref_(.*)/ );
146
            next if ( !defined( $prefname ) );
147
            my $wholevalue = join( ',', $query->param($param) );
148
            my ($name, $value) = split(/,/,$wholevalue);
149
            C4::Context->set_preference( $name, $value );
150
        }
151
    }
152
}
153
154
#Submit news item
155
my $id      = $query->param('id');
156
my $title   = $query->param('title');
157
my $content = $query->param('featurecontent');
158
my $expirationdate;
159
if ( $query->param('expirationdate') ) {
160
    $expirationdate = output_pref({ dt => dt_from_string( scalar $query->param('expirationdate') ), dateformat => 'iso', dateonly => 1 }    );
161
}
162
my $timestamp = output_pref({ dt => dt_from_string( scalar $query->param('timestamp') ), dateformat => 'iso', dateonly => 1 });
163
my $number = $query->param('number');
164
my $lang   = $query->param('lang');
165
my $branchcode = $query->param('branch');
166
167
my $error_message  = $query->param('error_message');
168
$branchcode = undef if (defined($branchcode) && $branchcode eq '');
169
170
$template->param( error_message => $error_message ) if $error_message;
171
172
my $new_detail = get_opac_new($id);
173
174
if ($title) {
175
   my $newsposting =  add_opac_new(
176
      {
177
           title           => $title,
178
           content         => $content,
179
           lang            => $lang,
180
           expirationdate  => $expirationdate,
181
           timestamp       => $timestamp,
182
           number          => $number,
183
           branchcode      => $branchcode,
184
           borrowernumber  => $loggedinuser,
185
      }
186
   );
187
   if ($newsposting) {
188
       $template->param( newsposted => $newsposting );
189
   }
190
}
191
192
output_html_with_http_headers $query, $cookie, $template->output;
(-)a/installer/install.pl (-1 / +18 lines)
Lines 226-231 elsif ( $step && $step == 3 ) { Link Here
226
        #
226
        #
227
        # we have finished, just redirect to mainpage.
227
        # we have finished, just redirect to mainpage.
228
        #
228
        #
229
        $dbh->do(q{UPDATE userflags SET featuretoolrequired = 1 WHERE bit = ?}, {}, 0);
230
        my $dbversion = $query->param('dbversion');
231
        my $dbquery = qq|
232
          UPDATE systempreferences SET value = ? WHERE variable = "PreviousVersion" |;
233
        my $sth = $dbh->prepare($dbquery);
234
        $sth->execute($dbversion);
229
        print $query->redirect("/cgi-bin/koha/mainpage.pl");
235
        print $query->redirect("/cgi-bin/koha/mainpage.pl");
230
        exit;
236
        exit;
231
    }
237
    }
Lines 237-242 elsif ( $step && $step == 3 ) { Link Here
237
# And we redirect people to mainpage.
243
# And we redirect people to mainpage.
238
# The installer will have to relogin since we do not pass cookie to redirection.
244
# The installer will have to relogin since we do not pass cookie to redirection.
239
        $template->param( "$op" => 1 );
245
        $template->param( "$op" => 1 );
246
    }elsif ( $op && $op eq 'featurereleasetool' ) {
247
        my $dbversion = $query->param('dbversion');
248
        my $kohaversion = $query->param('kohaversion');
249
        print $query->redirect("/cgi-bin/koha/installer/featurereleasetool.pl?dbversion=$dbversion&kohaversion=$kohaversion");
250
        exit;
240
    }
251
    }
241
252
242
    elsif ( $op && $op eq 'addframeworks' ) {
253
    elsif ( $op && $op eq 'addframeworks' ) {
Lines 382-387 elsif ( $step && $step == 3 ) { Link Here
382
        my $kohaversion = Koha::version;
393
        my $kohaversion = Koha::version;
383
        $kohaversion =~ s/(.*\..*)\.(.*)\.(.*)/$1$2$3/;
394
        $kohaversion =~ s/(.*\..*)\.(.*)\.(.*)/$1$2$3/;
384
395
396
        $template->param(
397
                "dbversion"   => $dbversion,
398
                "kohaversion" => $kohaversion
399
        );
400
385
        my $filename_suffix = join '_', $now, $dbversion, $kohaversion;
401
        my $filename_suffix = join '_', $now, $dbversion, $kohaversion;
386
        my ( $logfilepath, $logfilepath_errors ) = (
402
        my ( $logfilepath, $logfilepath_errors ) = (
387
            chk_log( $logdir, "updatedatabase_$filename_suffix" ),
403
            chk_log( $logdir, "updatedatabase_$filename_suffix" ),
Lines 400-406 elsif ( $step && $step == 3 ) { Link Here
400
        close $fh;
416
        close $fh;
401
        if (@report) {
417
        if (@report) {
402
            $template->param( update_report =>
418
            $template->param( update_report =>
403
                  [ map { { line => $_ } } split( /\n/, join( '', @report ) ) ]
419
                  [ map { { line => $_ } } split( /\n/, join( '', @report ) ) ],
420
                  raw_report => @report
404
            );
421
            );
405
            $template->param( has_update_succeeds => 1 );
422
            $template->param( has_update_succeeds => 1 );
406
        }
423
        }
(-)a/koha-tmpl/intranet-tmpl/prog/css/staff-global.css (+5 lines)
Lines 3028-3030 fieldset.rows + fieldset.action { Link Here
3028
#patron_search #filters {
3028
#patron_search #filters {
3029
    display: none;
3029
    display: none;
3030
}
3030
}
3031
3032
#news_posted {
3033
    width: 50%;
3034
    background-color: #F1F1F1;
3035
}
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/newsform.inc (+98 lines)
Line 0 Link Here
1
<div>
2
    [% IF location == "feature" %]
3
        <form name="add_form" id="add_form" method="post" action="/cgi-bin/koha/installer/featurereleasetool.pl?dbversion=[%dbversion%]&kohaversion=[%kohaversion%]" onsubmit="sbmt()">
4
    [% ELSIF location == "intranet" %]
5
        <form name="add_form" method="post" action="/cgi-bin/koha/tools/koha-news.pl" >
6
    [% END %]
7
    <input type="hidden" name="op" value="[% op %]" />
8
    <input type="hidden" name="id" value="[% id %]" />
9
    <input type="hidden" name="dbversion" value="[% dbversion %]" />
10
    <input type="hidden" name="kohaversion" value="[% kohaversion %]" />
11
    <fieldset class="rows">
12
            <legend>OPAC and Koha news</legend>
13
           <ol> <li>
14
            <label for="lang">Display location:</label>
15
            <select id="lang" name="lang">
16
                [% IF ( default_lang == "" ) %]
17
                    <option value="" selected="selected">All</option>
18
                [% ELSE %]
19
                    <option value="">All</option>
20
                [% END %]
21
                [% IF ( default_lang == "koha" ) %]
22
                   <option value="koha" selected="selected">Librarian interface</option>
23
                [% ELSE %]
24
                    <option value="koha">Librarian interface</option>
25
                [% END %]
26
                [% IF ( default_lang == "slip" ) %]
27
                    <option value="slip" selected="selected">Slip</option>
28
                [% ELSE %]
29
                    <option value="slip">Slip</option>
30
                [% END %]
31
                [% FOREACH lang_lis IN lang_list %]
32
                    [% IF ( lang_lis.language == default_lang ) %]
33
                        <option value="[% lang_lis.language %]" selected="selected">OPAC ([% lang_lis.language %])</option>
34
                    [% ELSE %]
35
                        <option value="[% lang_lis.language %]" >OPAC ([% lang_lis.language %])</option>
36
                    [% END %]
37
                [% END %]
38
            </select>
39
            </li>
40
            <li>
41
                <label for="branch">Library: </label>
42
                <select id="branch" name="branch">
43
                    [% IF ( new_detail.branchcode == '' ) %]
44
                        <option value="" selected="selected">All libraries</option>
45
                    [% ELSE %]
46
                        <option value="">All libraries</option>
47
                    [% END %]
48
                </select>
49
            </li>
50
            <li>
51
                <label for="title" class="required">Title: </label>
52
                [% IF location == "feature" %]
53
                    <input id="title" size="30" type="text" name="title" value="Our library has just updated to [% kohaversion %] [% new_detail.title %]" required="required" class="required" /> <span class="required">Required</span>
54
                [% ELSE %]
55
                    <input id="title" size="30" type="text" name="title" value="[% new_detail.title %]" required="required" class="required" /> <span class="required">Required</span>
56
                [% END %]
57
            </li>
58
            <li>
59
                <label for="from">Publication date: </label>
60
                <input id="from" type="text" name="timestamp" size="15" value="[% new_detail.timestamp %]" class="datepickerfrom" />
61
    <div class="hint">[% INCLUDE 'date-format.inc' %]</div>
62
            </li>
63
            <li>
64
                <label for="to">Expiration date: </label>
65
                <input id="to" type="text" name="expirationdate" size="15" value="[% new_detail.expirationdate %]" class="datepickerto" />
66
    <div class="hint">[% INCLUDE 'date-format.inc' %]</div>
67
            </li>
68
            <li>
69
                <label for="number">Appear in position: </label>
70
                [% IF ( new_detail.number ) %]
71
                    <input id="number" size="3" name="number" type="text" value="[% new_detail.number %]" />
72
                [% ELSE %]
73
                    <input id="number" size="3" name="number" type="text" />
74
                [% END %]
75
            </li>
76
            <li><label for="content">News: </label>
77
                [% IF location=="feature" %]
78
                <br><br>
79
                    <div contenteditable="true" name="featurecontent" id="featurecontent" cols="75" rows="10" >
80
                        Our institution is proud to announce that we have upgraded our Koha library management system to Koha version [%kohaversion%]. This new Koha version comes with many new exciting features.
81
                        <br>
82
                        <p>Read about the enhancements here: <a href="https://koha-community.org/koha-17-05-released/"> Koha 17.05 release notes link </a></p>
83
                        <p> During the upgrade the following new systempreferences were also installed:</p>
84
                        [% FOREACH pref IN prefs %]
85
                            [% pref.variable %]
86
                            [% pref.value %]
87
                        [% END %]
88
                    </div>
89
                    <div class="control" onclick="sbmt()"></div>
90
                [% ELSIF location=="intranet" %]
91
                    <textarea name="content" id="content" cols="75" rows="10">[% new_detail.content %]</textarea>
92
                [% END %]
93
            </li>
94
            </ol>
95
            <input class="button" type="submit" value="Submit" />
96
        </fieldset>
97
    </form>
98
</div>
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/team.inc (+403 lines)
Line 0 Link Here
1
<div id="team">
2
   <h2>Special thanks to the following organizations</h2>
3
   <ul>
4
       <li><a href="http://library.org.nz">Horowhenua Library Trust</a>, New Zealand, and Rosalie Blake, Head of Libraries, (Koha 1.0)</li>
5
       <li>The <a href="http://www.myacpl.org/">Athens County Public Libraries</a>, Ohio, USA (MARC sponsorship, documentation, template maintenance)</li>
6
       <li><a href="http://www.emn.fr">EMN (Ecole des Mines de Nantes)</a>, France (Suggestions, Stats wizards and improved LDAP sponsorship)</li>
7
       <li><a href="http://www.mines-paristech.fr">Mines Paristech (previously Ecole Nationale Supérieure des Mines de Paris)</a>, France (biblio frameworks, MARC authorities, OPAC basket, Serials sponsorship)</li>
8
       <li><a href="http://www.mediathequeouestprovence.fr/">SAN-Ouest Provence</a>, France (Koha 3.0 enhancements to patrons and holds modules)</li>
9
       <li>The <a href="http://ccfls.org">Crawford County Federated Library System</a>, PA, USA (Koha 3.0 Zebra Integration sponsorship)</li>
10
       <li>The <a href="http://www.geauga.lib.oh.us/">Geauga County Public Library</a>, OH, USA (Koha 3.0 beta testing)</li>
11
       <li>The <a href="http://library.neu.edu.tr">Near East University</a>, Cyprus</li>
12
       <li>OPUS International Consultants, Wellington, New Zealand (Corporate Serials sponsorship)</li>
13
       <li><a href="http://www.famfamfam.com/">famfamfam.com</a> Birmingham (UK) based developer Mark James for the famfamfam Silk iconset.</li>
14
       <li><a href="http://www.ashs.school.nz/">Albany Senior High School</a>, Auckland, New Zealand (OPAC 'star-ratings' sponsorship)</li>
15
   </ul>
16
17
   <h2>Koha <span style="color:red" title="Koha version numbering has jumped from 3.22 to 16.05 (yy.mm) as from May 2016">17.05</span> release team</h2>
18
   <ul>
19
       <li><strong>Release manager:</strong>
20
                    <a href="https://www.openhub.net/p/koha/contributors/6620692261494">Kyle Hall</a>, <a href="https://www.openhub.net/p/koha/contributors/6618544661344">Brendan Gallagher</a></li>
21
       <li><strong>(Database) Documentation manager:</strong>
22
           <a href="https://www.openhub.net/p/koha/contributors/6618544609030">Chris Cormack</a>, David Nind (Assistant)
23
       </li>
24
       <li><strong>Translation manager:</strong>
25
           <a href="https://www.openhub.net/p/koha/contributors/6618544839606">Bernardo González Kriegel</a></li>
26
       <li><strong>Quality assurance team:</strong>
27
        <ul>
28
          <li><a href="https://www.openhub.net/p/koha/contributors/6618544730094">Tomás Cohen Arazi</a></li>
29
          <li><a href="https://www.openhub.net/p/koha/contributors/6620692886191">Nick Clemens</a></li>
30
          <li><a href="https://www.openhub.net/p/koha/contributors/6618545125093">Jonathan Druart</a></li>
31
          <li><a href="https://www.openhub.net/p/koha/contributors/6620692261494">Kyle Hall</a></li>
32
          <li><a href="https://www.openhub.net/p/koha/contributors/6620692419690">Julian Maurice</a></li>
33
          <li><a href="https://www.openhub.net/p/koha/contributors/6618544785220">Martin Renvoize</a></li>
34
          <li><a href="https://www.openhub.net/p/koha/contributors/6618544727712">Marcel de Rooy</a></li>
35
          <li><a href="https://www.openhub.net/p/koha/contributors/6620692831733">Fridolin Somers</a></li>
36
        </ul>
37
       </li>
38
       <li><strong>Release maintainers:</strong>
39
        <ul>
40
         <li><a href="https://www.openhub.net/p/koha/contributors/6618544670742">Katrin Fischer</a> (16.11)</li>
41
         <li><a href="https://www.openhub.net/p/koha/contributors/6618544618401">Mason James</a> (16.05)</li>
42
         <li><a href="https://www.openhub.net/p/koha/contributors/6620692419690">Julian Maurice</a> (3.22)</li>
43
        </ul>
44
       </li>
45
       <li><strong>Packaging manager:</strong>
46
         <a href="https://www.openhub.net/p/koha/contributors/6620692605913">Mirko Tietgen</a>
47
       </li>
48
       <li><strong>Jenkins maintainer:</strong>
49
         <a href="https://www.openhub.net/p/koha/contributors/6618544730094">Tomás Cohen Arazi</a>
50
       </li>
51
       <li><strong>Bug wranglers:</strong>
52
          <ul>
53
              <li>Indranil Das Gupta</li>
54
              <li><a href="https://www.openhub.net/p/koha/contributors/6618545408147">Marc Véron</a></li>
55
          </ul>
56
       </li>
57
   </ul>
58
59
   <h2>Koha development team</h2>
60
     <ul>
61
       <li>Jacek Ablewicz</li>
62
       <li>Md. Aftabuddin</li>
63
       <li>Jon Aker</li>
64
       <li>Chloe Alabaster</li>
65
       <li>Edward Allen</li>
66
       <li>Francisco M. Marzoa Alonso</li>
67
       <li>Joseph Alway</li>
68
       <li>Cindy Murdock Ames</li>
69
       <li>Aleisha Amohia</li>
70
       <li>Roman Amor</li>
71
       <li>Richard Anderson</li>
72
       <li><a href="https://www.openhub.net/p/koha/contributors/6620692181851">Nahuel Angelinetti</a></li>
73
       <li>Nuño López Ansótegui</li>
74
       <li>Dimitris Antonakis</li>
75
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544730094">Tomás Cohen Arazi (3.18 - 3.22 Release Manager; 3.12 Release Maintainer; 16.05, 16.11 QA Team Member)</a></li>
76
       <li><a href="https://www.openhub.net/p/koha/contributors/6620692124662">Andrew Arensburger (the small and great C4::Context module)</a></li>
77
       <li>Alex Arnaud</li>
78
       <li>Petter Goksoyr Asen</li>
79
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544614259">Joe Atzberger</a></li>
80
       <li>Héctor Eduardo Castro Avalos</li>
81
       <li>Larry Baerveldt</li>
82
       <li>Marc Balmer</li>
83
       <li>Edmund Balnaves</li>
84
       <li>Al Banks</li>
85
       <li>Daniel Banzli</li>
86
       <li>Stefano Bargioni</li>
87
       <li>Daniel Barker</li>
88
       <li>Greg Barniskis</li>
89
       <li>Benedykt P. Barszcz (Polish for 2.0)</li>
90
       <li>D Ruth Bavousett (3.12 Translation Manager)</li>
91
       <li>Maxime Beaulieu</li>
92
       <li>Natalie Bennison</li>
93
       <li>John Beppu</li>
94
       <li>Pablo Bianchi</li>
95
       <li>David Birmingham</li>
96
       <li>Florian Bischof</li>
97
       <li>Gaetan Boisson</li>
98
       <li>Danny Bouman</li>
99
       <li>Christopher Brannon (3.20 QA Team Member)</li>
100
       <li>Stan Brinkerhoff</li>
101
       <li>Isaac Brodsky</li>
102
       <li>Ivan Brown</li>
103
       <li>Roger Buck</li>
104
       <li>Steven Callender</li>
105
       <li><a href="https://www.openhub.net/p/koha/contributors/6620692376789">Jared Camins-Esakov (3.12 Release Manager; 3.6 Release Maintainer)</a></li>
106
       <li>Colin Campbell (3.4 QA Manager)</li>
107
       <li>Fernando Canizo</li>
108
       <li>Barry Cannon</li>
109
       <li>Frédérick Capovilla</li>
110
       <li>DeAndre Carroll</li>
111
       <li>Chris Catalfo (new plugin MARC editor)</li>
112
       <li>Marc Chantreux</li>
113
       <li>Jerome Charaoui</li>
114
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544614260">Galen Charlton (3.2, 3.14, and 3.16 Release Manager; 3.16 Release Maintainer; 3.18 QA Team Member; 16.05 Packaging Manager)</a></li>
115
       <li>Francois Charbonnier</li>
116
       <li>Evonne Cheung</li>
117
       <li>Andrew Chilton</li>
118
       <li>Barton Chittenden</li>
119
       <li>Koha SAB CINECA</li>
120
       <li>Nick Clemens (16.11 QA Team Member)</li>
121
       <li>Garry Collum</li>
122
       <li>David Cook</li>
123
       <li>John Copeland</li>
124
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544609030">Chris Cormack (1.x, 3.4 and 3.6 Release Manager; 3.8, 3.10, 3.18 and 3.20 Release Maintainer; 3.2 Translation Manager; 3.14 QA Team Member)</a></li>
125
       <li>Jeremy Crabtree</li>
126
       <li>Samuel Crosby</li>
127
       <li>Christophe Croullebois</li>
128
       <li>Olivier Crouzet</li>
129
       <li>Nate Curulla</li>
130
       <li>Vincent Danjean</li>
131
       <li>Hugh Davenport</li>
132
       <li>Elliott Davis (3.12 QA Team Member)</li>
133
       <li>Doug Dearden</li>
134
       <li>Kip DeGraaf</li>
135
       <li>Stéphane Delaune</li>
136
       <li><a href="https://www.openhub.net/p/koha/contributors/6620692210484">Frédéric Demians (3.4 - 3.10 Translation Manager; 3.20, 16.05 Release Maintainer)</a></li>
137
       <li>Connor Dewar</li>
138
       <li>Srikanth Dhondi</li>
139
       <li>Rocio Dressler</li>
140
       <li><a href="https://www.openhub.net/p/koha/contributors/6618545125093">Jonathan Druart (3.8 - 16.11 QA Team Member)</a></li>
141
       <li>Serhij Dubyk</li>
142
       <li>Yohann Dufour</li>
143
       <li>Thomas Dukleth (MARC Frameworks Maintenance)</li>
144
       <li>Frederic Durand</li>
145
       <li>Sebastiaan Durand</li>
146
       <li>Rachel Dustin</li>
147
       <li>Ecole des Mines de Saint Etienne, Philippe Jaillon (OAI-PMH support)</li>
148
       <li>Stephen Edwards</li>
149
       <li>Dani Elder</li>
150
       <li>Gus Ellerm</li>
151
       <li>Andrew Elwell</li>
152
       <li>Brian Engard</li>
153
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544646984">Nicole C. Engard (3.0 - 16.11 Documentation Manager)</a></li>
154
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544677502">Magnus Enger</a></li>
155
       <li>Esiee School (Jérome Vizcaino, Michel Lerenard, Pierre Cauchois)</li>
156
       <li>Jason Etheridge</li>
157
       <li>Shaun Evans</li>
158
       <li>Pat Eyler (Kaitiaki from 2002 to 2004)</li>
159
       <li>Charles Farmer</li>
160
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544609865">Antoine Farnault</a></li>
161
       <li>Arslan Farooq</li>
162
       <li>Vitor Fernandes</li>
163
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544609053">Joshua Ferraro (3.0 Release Manager and Translation Manager)</a></li>
164
       <li>Julian Fiol</li>
165
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544670742">Katrin Fischer (3.12 - 16.11 QA Manager)</a></li>
166
       <li>Connor Fraser</li>
167
       <li>Clay Fouts</li>
168
       <li>Brendon Ford</li>
169
       <li>Claudia Forsman</li>
170
       <li>Corey Fuimaono</li>
171
       <li>Marco Gaiarin</li>
172
       <li>Pierrick Le Gall</li>
173
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544661344">Brendan A. Gallagher (3.14 - 3.22 QA Team Member; 16.05, 16.11 Release Manager)</a></li>
174
       <li>Tumer Garip</li>
175
       <li>Russel Garlick</li>
176
       <li>Mark Gavillet</li>
177
       <li>Claire Gravely</li>
178
       <li>Daniel Kahn Gillmor</li>
179
       <li>David Goldfein</li>
180
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544839606">Bernardo González Kriegel (3.14 - 16.11 Translation Manager; 3.10 Release Maintainer)</a></li>
181
       <li>Briana Greally</li>
182
       <li>Daniel Grobani</li>
183
       <li>Amit Gupta</li>
184
       <li>Indranil Das Gupta</li>
185
       <li>Michael Hafen</li>
186
       <li>Christopher Hall (3.8 Release Maintainer)</li>
187
       <li><a href="https://www.openhub.net/p/koha/contributors/6620692261494">Kyle Hall (3.8 Release Maintainer; 3.14 - 16.11 QA Team Member; 16.11 Release Manager)</a></li>
188
       <li>Sean Hamlin</li>
189
       <li>Tim Hannah</li>
190
       <li>Mike Hansen</li>
191
       <li>Brian Harrington</li>
192
       <li>Brandon Haveman</li>
193
       <li>Rochelle Healy</li>
194
       <li>Emma Heath</li>
195
       <li>Friedrich zur Hellen</li>
196
       <li>Kate Henderson</li>
197
       <li>Michaes Herman</li>
198
       <li>Claire Hernandez</li>
199
       <li>Wolfgang Heymans</li>
200
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544614261">Ryan Higgins</a></li>
201
       <li>Morag Hills</li>
202
       <li>Sèbastien Hinderer</li>
203
       <li>Kristina D.C. Hoeppner</li>
204
       <li>Stephanie Hogan</li>
205
       <li>Karl Holten</li>
206
       <li>Daniel Holth</li>
207
       <li>Andrew Hooper</li>
208
       <li>Alexandra Horsman</li>
209
       <li>Tom Houlker</li>
210
       <li>Matthew Hunt</li>
211
       <li>Christopher Hyde</li>
212
       <li>Rolando Isidoro</li>
213
       <li>Cory Jaeger</li>
214
       <li>Lee Jamison</li>
215
       <li>Srdjan Jankovic</li>
216
       <li>Philippe Jaillon</li>
217
       <li><a href="https://www.openhub.net/accounts/kohaaloha">Mason James (3.10 - 3.14 QA Team Member, 3.16 Release Maintainer)</a></li>
218
       <li>Mike Johnson</li>
219
       <li>Donovan Jones</li>
220
       <li>Bart Jorgensen</li>
221
       <li>Janusz Kaczmarek</li>
222
       <li>Koustubha Kale</li>
223
       <li>Pasi Kallinen</li>
224
       <li>Peter Crellan Kelly</li>
225
       <li>Jorgia Kelsey</li>
226
       <li>Olli-Antti Kivilahti</li>
227
       <li>Attila Kinali</li>
228
       <li>Chris Kirby</li>
229
       <li>Ulrich Kleiber</li>
230
       <li>Rafal Kopaczka</li>
231
       <li>Piotr Kowalski</li>
232
       <li>Joonas Kylmälä</li>
233
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544614275">Henri-Damien Laurent (3.0 Release Maintainer)</a></li>
234
       <li>Arnaud Laurin</li>
235
       <li>Nicolas Legrand</li>
236
       <li>Sonia Lemaire</li>
237
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544609147">Owen Leonard (3.0+ Interface Design)</a></li>
238
       <li>Ambrose Li (translation tool)</li>
239
       <li>Gynn Lomax</li>
240
       <li>Peter Lorimer</li>
241
       <li>Robert Lyon (Corporate Serials)</li>
242
       <li>Merllisia Manueli</li>
243
       <li>Francois Marier</li>
244
       <li>Patricio Marrone</li>
245
       <li>Jesse Maseto</li>
246
       <li>Frère Sébastien Marie</li>
247
       <li>Ricardo Dias Marques</li>
248
       <li>Julian Maurice (3.18 QA Team Member; 3.22 Release Maintainer)</li>
249
       <li>Remi Mayrand-Provencher</li>
250
       <li>Brig C. McCoy</li>
251
       <li>Tim McMahon</li>
252
       <li>Dorian Meid (German translation)</li>
253
       <li>Meenakshi. R</li>
254
       <li>Melia Meggs</li>
255
       <li>Holger Meißner</li>
256
       <li>Karl Menzies</li>
257
       <li>Matthias Meusburger</li>
258
       <li>Sophie Meynieux</li>
259
       <li>Janet McGowan</li>
260
       <li>Alan Millar</li>
261
       <li>Jono Mingard</li>
262
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544607803">Andrew Moore</a></li>
263
       <li>Francesca Moore</li>
264
       <li>Josef Moravec</li>
265
       <li>Sharon Moreland</li>
266
       <li>Nicolas Morin</li>
267
       <li>Mike Mylonas</li>
268
       <li>Natasha ?? [Catalyst Academy]</li>
269
       <li>Nadia Nicolaides</li>
270
       <li>Joy Nelson</li>
271
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544615991">Chris Nighswonger (3.2 - 3.6 Release Maintainer)</a></li>
272
       <li>Brian Norris</li>
273
       <li>Duy Tinh Nguyen</li>
274
       <li>Simith D'Oliveira</li>
275
       <li>Albert Oller</li>
276
       <li>Eric Olsen</li>
277
       <li>H. Passini</li>
278
       <li>Aliki Pavlidou</li>
279
       <li>Dobrica Pavlinusic</li>
280
       <li>Maxime Pelletier</li>
281
       <li>Shari Perkins</li>
282
       <li>Martin Persson</li>
283
       <li>Fred Pierre</li>
284
       <li>Genevieve Plantin</li>
285
       <li>Polytechnic University</li>
286
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544612249">Paul Poulain (2.0, 2.2, 3.8, 3.10 Release Manager; 2.2 Release Maintainer; 3.12 - 16.05 QA Team Member)</a></li>
287
       <li>Karam Qubsi</li>
288
       <li>Romina Racca</li>
289
       <li><a href="https://www.openhub.net/p/koha/contributors/6620692116417">MJ Ray (2.0 Release Maintainer)</a></li>
290
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544650708">Liz Rea</a> (3.6, 3.18 Release Maintainer)</li>
291
       <li>Thatcher Rea</li>
292
       <li>Allen Reinmeyer</li>
293
       <li>Serge Renaux</li>
294
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544785220">Martin Renvoize (3.16 - 16.11 QA Team Member)</a></li>
295
       <li>Abby Robertson</li>
296
       <li>Waylon Robertson</li>
297
       <li>Benjamin Rokseth</li>
298
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544727712">Marcel de Rooy (3.8 - 16.11 QA Team Member)</a></li>
299
       <li>Andreas Roussos</li>
300
       <li>Salvador Zaragoza Rubio</li>
301
       <li>Mathieu Saby</li>
302
       <li>Eivin Giske Skaaren</li>
303
       <li>Brice Sanchez</li>
304
       <li>Sam Sanders</li>
305
       <li>Rodrigo Santellan</li>
306
       <li>Viktor Sarge</li>
307
       <li>A. Sassmannshausen</li>
308
       <li>Adrien Saurat</li>
309
       <li>Dan Scott</li>
310
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544619438">Robin Sheat (3.2 - 3.22 Packaging Manager)</a></li>
311
       <li>Juhani Seppälä</li>
312
       <li>John Seymour</li>
313
       <li>Juan Romay Sieira</li>
314
       <li>Zach Sim</li>
315
       <li>Radek Siman</li>
316
       <li>Silvia Simonetti</li>
317
       <li>Savitra Sirohi</li>
318
       <li>Pawel Skuza (Polish for 1.2)</li>
319
       <li><a href="https://www.openhub.net/p/koha/contributors/6620692831733">Fridolin Somers (3.14 Release Maintainer)</a></li>
320
       <li>Southeastern University</li>
321
       <li>Martin Stenberg</li>
322
       <li>Glen Stewart</li>
323
       <li>Will Stokes</li>
324
       <li>Simon Story</li>
325
       <li>David Strainchamps</li>
326
       <li>Ed Summers (Some code and Perl packages like MARC::Record)</li>
327
       <li>Daniel Sweeney</li>
328
       <li>Zeno Tajoli</li>
329
       <li>Lari Taskula</li>
330
       <li>Samanta Tello</li>
331
       <li>Adam Thick</li>
332
       <li><a href="https://www.openhub.net/p/koha/contributors/6618544609107">Finlay Thompson</a></li>
333
       <li>Peggy Thrasher</li>
334
       <li>Fabio Tiana</li>
335
       <li>Mirko Tietgen (16.11 Packaging Manager)</li>
336
       <li>Mark Tompsett</li>
337
       <li><a href="https://www.openhub.net/p/koha/contributors/6620692101577">Steve Tonnesen (early MARC work, Virtual Bookshelves concept, KohaCD)</a></li>
338
       <li>Bruno Toumi</li>
339
       <li>Andrei V. Toutoukine</li>
340
       <li>Duncan Tyler</li>
341
       <li>Kathryn Tyree</li>
342
       <li>Darrell Ulm</li>
343
       <li>Universidad ORT Uruguay (Ernesto Silva, Andres Tarallo)</li>
344
       <li><a href="https://www.openhub.net/p/koha/contributors/6618545408147">Marc Véron</a></li>
345
       <li>Justin Vos</li>
346
       <li>Aleksa Vujicic</li>
347
       <li>Reed Wade</li>
348
       <li>Stacey Walker</li>
349
       <li>Ian Walls (3.6 - 3.10 QA Manager)</li>
350
       <li><a href="https://www.openhub.net/accounts/janewagner">Jane Wagner</a></li>
351
       <li>Ward van Wanrooij</li>
352
       <li><a href="https://www.openhub.net/accounts/pianohacker">Jesse Weaver (16.05, 16.11 QA Team Member)</a></li>
353
       <li>Stefan Weil</li>
354
       <li>Aaron Wells</li>
355
       <li>Rick Welykochy</li>
356
       <li>Piotr Wejman</li>
357
       <li>Ron Wickersham</li>
358
       <li>Brett Wilkins</li>
359
       <li><a href="https://www.openhub.net/p/koha/contributors/6620692127299">Olwen Williams (Database design and data extraction for Koha 1.0)</a></li>
360
       <li>Robert Williams</li>
361
       <li>James Winter</li>
362
       <li>Lars Wirzenius</li>
363
       <li>Thomas Wright</li>
364
       <li>Jen Zajac</li>
365
       <li>Kenza Zaki</li>
366
     </ul>
367
     <h3>Contributing companies and institutions</h3>
368
     <ul>
369
       <li>BibLibre, France</li>
370
       <li>Bibliotheksservice-Zentrum Baden-Württemberg (BSZ), Germany</li>
371
       <li>ByWater Solutions, USA</li>
372
       <li>Calyx, Australia</li>
373
       <li>Catalyst IT, New Zealand</li>
374
       <li>C &amp; P Bibliography Services, USA</li>
375
       <li>Hochschule für Gesundheit (hsg), Germany</li>
376
       <li>Katipo Communications, New Zealand</li>
377
       <li>KEEP SOLUTIONS, Portugal</li>
378
       <li>KohaAloha, New Zealand</li>
379
       <li>LibLime, USA</li>
380
       <li>Libriotech, Norway</li>
381
       <li>Nelsonville Public Library, Ohio, USA</li>
382
       <li>Prosentient Systems, Australia</li>
383
       <li>PTFS, Maryland, USA</li>
384
       <li>PTFS Europe Ltd, United Kingdom</li>
385
       <li>Rijksmuseum, Amsterdam, The Netherlands</li>
386
       <li>SAN-Ouest Provence, France</li>
387
       <li>software.coop, United Kingdom</li>
388
       <li>Tamil, France</li>
389
       <li>Universidad Nacional de Córdoba, Argentina</li>
390
       <li>Xercode, Spain</li>
391
     </ul>
392
393
     <h2>Additional thanks to...</h2>
394
       <ul>
395
         <li>Irma Birchall</li>
396
         <li>Rachel Hamilton-Williams (Kaitiaki from 2004 to present)</li>
397
         <li>Stephen Hedges (early Documentation Manager)</li>
398
         <li>Brooke Johnson</li>
399
         <li>Jo Ransom</li>
400
         <li>Nicholas Rosasco (Documentation Compiler)</li>
401
         <li>Regula Sebastiao</li>
402
       </ul>
403
</div>
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt (-92 / +90 lines)
Lines 76-194 Link Here
76
    <div class="dialog alert">
76
    <div class="dialog alert">
77
        No system preferences matched your search for: <strong>[% searchfield |html %]</strong>
77
        No system preferences matched your search for: <strong>[% searchfield |html %]</strong>
78
    </div>
78
    </div>
79
    [% ELSIF searchfield %]
80
        <h1>You searched for: [% searchfield | html %]</h1>
79
        <h1>You searched for: [% searchfield | html %]</h1>
81
    [% END %]
80
    [% END %]
82
    [% FOREACH TAB IN TABS %]
81
    [% FOREACH TAB IN TABS %]
83
    <div class="prefs-tab">
82
        <div class="prefs-tab">
84
    <h2>[% TAB.tab_title %] preferences</h2>
83
        <h2>[% TAB.tab_title %] preferences</h2>
85
    <form action="/cgi-bin/koha/admin/preferences.pl" method="post">
84
        <form action="/cgi-bin/koha/admin/preferences.pl" method="post">
86
        [% UNLESS ( searchfield ) %]<div id="toolbar"><button class="save-all submit" type="submit">Save all [% TAB.tab_title %] preferences</button></div>[% END %]
85
           [% UNLESS ( searchfield ) %]<div id="toolbar"><button class="save-all submit" type="submit">Save all [% TAB.tab_title %] preferences</button></div>[% END %]
87
        <input type="hidden" name="op" value="save" />
86
           <input type="hidden" name="op" value="save" />
88
        <input type="hidden" name="tab" value="[% TAB.tab_id %]" />
87
           <input type="hidden" name="tab" value="[% TAB.tab_id %]" />
89
88
           [% FOREACH LINE IN TAB.LINES %]
90
            [% FOREACH LINE IN TAB.LINES %]
89
           [% IF ( LINE.is_group_title ) %]
91
            [% IF ( LINE.is_group_title ) %]
90
           [% UNLESS ( loop.first ) %]</tbody></table>[% END %]
92
            [% UNLESS ( loop.first ) %]</tbody></table>[% END %]
91
           <h3>[% LINE.title %]</h3>
93
            <h3>[% LINE.title %]</h3>
92
           <table class="preferences">
94
            <table class="preferences">
93
           <thead><tr><th>Preference</th><th>Value</th></tr></thead>
95
            <thead><tr><th>Preference</th><th>Value</th></tr></thead>
94
           [% UNLESS ( loop.last ) %]<tbody>[% END %]
96
            [% UNLESS ( loop.last ) %]<tbody>[% END %]
95
           [% ELSE %]
97
            [% ELSE %]
96
           [% IF ( loop.first ) %]<table class="preferences"><thead><tr><th>Preference</th><th>Value</th></tr></thead><tbody>[% END %]
98
            [% IF ( loop.first ) %]<table class="preferences"><thead><tr><th>Preference</th><th>Value</th></tr></thead><tbody>[% END %]
97
           <tr class="name-row">
99
            <tr class="name-row">
98
               <td class="name-cell">
100
                <td class="name-cell">
99
                   <code>
101
                    <code>
100
                      [% FOREACH NAME IN LINE.NAMES %]
102
                        [% FOREACH NAME IN LINE.NAMES %]
101
                      <label for="pref_[% NAME.name %]">
103
						<label for="pref_[% NAME.name %]">
102
                           [% IF ( NAME.jumped ) %]
104
							[% IF ( NAME.jumped ) %]
103
                              <span class="term" id="jumped">[% NAME.name %]</span>
105
							<span class="term" id="jumped">[% NAME.name %]</span>
104
                           [% ELSIF ( NAME.highlighted ) %]
106
                            [% ELSIF ( NAME.highlighted ) %]
105
                              <span class="term">[% NAME.name %]</span>
107
							<span class="term">[% NAME.name %]</span>
106
                           [% ELSE %]
108
							[% ELSE %]
107
                              [% NAME.name %]
109
							[% NAME.name %]
108
                           [% END %]
110
							[% END %]
109
                           [% IF NAME.overridden %]
111
110
                               <span class="overridden" title="The system preference [% NAME.name %] may have been overridden from this value by one or more virtual hosts.">
112
                            [% IF NAME.overridden %]
111
                               [Overridden]
113
                                <span class="overridden" title="The system preference [% NAME.name %] may have been overridden from this value by one or more virtual hosts.">
112
                               </span>
114
                                    [Overridden]
113
                           [% END %]
115
                                </span>
114
                      </label>
116
                            [% END %]
115
                      [% UNLESS ( loop.last ) %]<br />[% END %]
117
						</label>
116
                      [% END %]
118
                        [% UNLESS ( loop.last ) %]<br />[% END %]
117
                   </code>
119
                        [% END %]
118
               </td>
120
                    </code>
119
           <td><div>
121
                </td>
120
           [% FOREACH CHUNK IN LINE.CHUNKS %]
122
                <td><div>
121
               [% IF ( CHUNK.type_text ) %]
123
                    [% FOREACH CHUNK IN LINE.CHUNKS %]
124
                    [% IF ( CHUNK.type_text ) %]
125
                    [% CHUNK.contents %]
122
                    [% CHUNK.contents %]
126
                    [% ELSIF ( CHUNK.type_input ) %]
123
               [% ELSIF ( CHUNK.type_input ) %]
127
                    <input type="[%IF CHUNK.input_type %][% CHUNK.input_type %][% ELSE %]text[% END %]" name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]" class="preference preference-[% CHUNK.class or "short" %]" value="[% CHUNK.value| html %]" autocomplete="off" /> [% IF ( CHUNK.dateinput ) %]<span class="hint">[% INCLUDE 'date-format.inc' %]</span>[% END %]
124
                    <input type="[%IF CHUNK.input_type %][% CHUNK.input_type %][% ELSE %]text[% END %]" name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]" class="preference preference-[% CHUNK.class or "short" %]" value="[% CHUNK.value| html %]" autocomplete="off" /> [% IF ( CHUNK.dateinput ) %]<span class="hint">[% INCLUDE 'date-format.inc' %]</span>[% END %]
128
                    [% ELSIF ( CHUNK.type_select ) %]
125
               [% ELSIF ( CHUNK.type_select ) %]
129
                    <select name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]" class="preference preference-[% CHUNK.class or "choice" %]">
126
                    <select name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]" class="preference preference-[% CHUNK.class or "choice" %]">
130
                        [% FOREACH CHOICE IN CHUNK.CHOICES.sort('value') %]
127
                        [% FOREACH CHOICE IN CHUNK.CHOICES.sort('value') %]
131
                        [% IF ( CHOICE.selected ) %]
128
                            [% IF ( CHOICE.selected ) %]
132
                        <option value="[% CHOICE.value %]" selected="selected">
129
                                <option value="[% CHOICE.value %]" selected="selected">
133
                        [% ELSE %]
130
                            [% ELSE %]
134
                        <option value="[% CHOICE.value %]">
131
                                <option value="[% CHOICE.value %]">
135
                        [% END %]
132
                            [% END %]
136
                            [% CHOICE.text %]
133
                            [% CHOICE.text %]
137
                        </option>
134
                                </option>
138
                        [% END %]
135
                        [% END %]
139
                    </select>
136
                    </select>
140
                    [% ELSIF ( CHUNK.type_multiple ) %]
137
                    [% ELSIF ( CHUNK.type_multiple ) %]
141
                    <select name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]" class="preference preference-[% CHUNK.class or "choice" %]" multiple="multiple">
138
                    <select name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]" class="preference preference-[% CHUNK.class or "choice" %]" multiple="multiple">
142
                        [% FOREACH CHOICE IN CHUNK.CHOICES %][% IF ( CHOICE.selected ) %]<option value="[% CHOICE.value %]" selected="selected">[% ELSE %]<option value="[% CHOICE.value %]">[% END %][% CHOICE.text %]</option>[% END %]
139
                       [% FOREACH CHOICE IN CHUNK.CHOICES %]
140
                       [% IF ( CHOICE.selected ) %]<option value="[% CHOICE.value %]" selected="selected">[% ELSE %]<option value="[% CHOICE.value %]">[% END %][% CHOICE.text %]</option>[% END %]
143
                    </select>
141
                    </select>
144
                    [% ELSIF ( CHUNK.type_textarea ) || ( CHUNK.type_htmlarea )%]
142
                     [% ELSIF ( CHUNK.type_textarea ) || ( CHUNK.type_htmlarea )%]
145
                        [% IF ( CHUNK.type_htmlarea ) && ( Koha.Preference('UseWYSIWYGinSystemPreferences') ) %]
143
                        [% IF ( CHUNK.type_htmlarea ) && ( Koha.Preference('UseWYSIWYGinSystemPreferences') ) %]
146
                        <textarea name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]" class="preference preference-[% CHUNK.class or "short" %] mce" rows="20" cols="60">[% CHUNK.value %]</textarea>
144
                           <textarea name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]" class="preference preference-[% CHUNK.class or "short" %] mce" rows="20" cols="60">[% CHUNK.value %]</textarea>
147
                        [% ELSE %]
145
                        [% ELSE %]
148
                        <a class="expand-textarea" style="display: none" href="#">Click to Edit</a>
146
                           <a class="expand-textarea" style="display: none" href="#">Click to Edit</a>
149
                        <textarea name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]" class="preference preference-[% CHUNK.class or "short" %]" rows="10" cols="40">[% CHUNK.value %]</textarea>
147
                           <textarea name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]" class="preference preference-[% CHUNK.class or "short" %]" rows="10" cols="40">[% CHUNK.value %]</textarea>
150
                        <a class="collapse-textarea" style="display:none" href="#">Click to collapse</br></a>
148
                           <a class="collapse-textarea" style="display:none" href="#">Click to collapse</br></a>
151
                        [% END %]
149
                        [% END %]
152
                    [% ELSIF ( CHUNK.type_languages ) %]
150
                     [% ELSIF ( CHUNK.type_languages ) %]
153
                    <dl>
151
                      <dl>
154
                    [% FOREACH language IN CHUNK.languages %]
152
                          [% FOREACH language IN CHUNK.languages %]
155
                        [% IF ( language.plural ) %]
153
                              [% IF ( language.plural ) %]
156
                        <dt>
154
                              <dt>
157
                            [% IF ( language.native_description ) %][% language.native_description %][% ELSE %][% language.rfc4646_subtag %][% END %]
155
                                 [% IF ( language.native_description ) %][% language.native_description %][% ELSE %][% language.rfc4646_subtag %][% END %]
158
                        </dt>
156
                              </dt>
159
                        [% FOREACH sublanguages_loo IN language.sublanguages_loop %]
157
                                 [% FOREACH sublanguages_loo IN language.sublanguages_loop %]
160
                        <dd>
158
                              <dd>
161
                            <label for="pref_[% CHUNK.name %]_[% sublanguages_loo.rfc4646_subtag %]">[% sublanguages_loo.native_description %] [% sublanguages_loo.script_description %] [% sublanguages_loo.region_description %] [% sublanguages_loo.variant_description %]([% sublanguages_loo.rfc4646_subtag %])</label>
159
                                 <label for="pref_[% CHUNK.name %]_[% sublanguages_loo.rfc4646_subtag %]">[% sublanguages_loo.native_description %] [% sublanguages_loo.script_description %] [% sublanguages_loo.region_description %] [% sublanguages_loo.variant_description %]([% sublanguages_loo.rfc4646_subtag %])</label>
162
                            [% IF ( sublanguages_loo.enabled ) %]
160
                                 [% IF ( sublanguages_loo.enabled ) %]
163
                            <input value="[% sublanguages_loo.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]_[% sublanguages_loo.rfc4646_subtag %]" type="checkbox" checked="checked" class="preference preference-checkbox"/>
161
                                      <input value="[% sublanguages_loo.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]_[% sublanguages_loo.rfc4646_subtag %]" type="checkbox" checked="checked" class="preference preference-checkbox"/>
164
                            [% ELSE %]
162
                                 [% ELSE %]
165
                            <input value="[% sublanguages_loo.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]_[% sublanguages_loo.rfc4646_subtag %]" type="checkbox" class="preference preference-checkbox"/>
163
                                      <input value="[% sublanguages_loo.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]_[% sublanguages_loo.rfc4646_subtag %]" type="checkbox" class="preference preference-checkbox"/>
164
                                 [% END %]
165
                            </dd>
166
                            [% END %]
166
                            [% END %]
167
                        </dd>
167
                            [% ELSE %]
168
                        [% END %]
168
                            <dt>
169
                        [% ELSE %]
169
                                <label for="pref_[% CHUNK.name %]_[% language.rfc4646_subtag %]">[% language.native_description %]([% language.rfc4646_subtag %])</label>
170
                        <dt>
171
                            <label for="pref_[% CHUNK.name %]_[% language.rfc4646_subtag %]">[% language.native_description %]([% language.rfc4646_subtag %])</label>
172
                            [% IF ( language.group_enabled ) %]
170
                            [% IF ( language.group_enabled ) %]
173
                            <input value="[% language.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]_[% language.rfc4646_subtag %]" type="checkbox" checked="checked" class="preference preference-checkbox"/>
171
                                <input value="[% language.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]_[% language.rfc4646_subtag %]" type="checkbox" checked="checked" class="preference preference-checkbox"/>
174
                            [% ELSE %]
172
                            [% ELSE %]
175
                            <input value="[% language.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]_[% language.rfc4646_subtag %]" type="checkbox" class="preference preference-checkbox"/>
173
                                <input value="[% language.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]_[% language.rfc4646_subtag %]" type="checkbox" class="preference preference-checkbox"/>
174
                            [% END %]
175
                            </dt>
176
                            [% END %]
176
                            [% END %]
177
                        </dt>
178
                        [% END %]
177
                        [% END %]
179
                    [% END %]
178
                        </dl>
180
                    </dl>
179
                        [% END %]
181
                    [% END %]
180
                        [% END %]
182
                    [% END %]
181
                     </div></td>
183
                </div></td>
182
                 </tr>
184
            </tr>
183
                 [% IF ( loop.last ) %]</tbody></table>[% END %]
185
            [% IF ( loop.last ) %]</tbody></table>[% END %]
184
                 [% END %]
186
            [% END %]
185
               [% END %]
187
        [% END %]
186
               <fieldset class="action"><button class="save-all submit" type="submit">Save all [% TAB.tab_title %] preferences</button> <a href="/cgi-bin/koha/admin/preferences.pl" class="force_reload cancel">Cancel</a></fieldset>
188
        <fieldset class="action"><button class="save-all submit" type="submit">Save all [% TAB.tab_title %] preferences</button> <a href="/cgi-bin/koha/admin/preferences.pl" class="force_reload cancel">Cancel</a></fieldset>
187
     </form>
189
    </form>
188
     </div>
190
    </div>
189
     [% END %]
191
    [% END %]
192
</div>
190
</div>
193
</div>
191
</div>
194
<div class="yui-b">
192
<div class="yui-b">
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/installer/featurereleasetool.tt (+210 lines)
Line 0 Link Here
1
[% INCLUDE 'doc-head-open.inc' %]
2
3
<title>Koha &rsaquo; Web installer &rsaquo; Feature Release Change Tool </title>
4
5
<style>
6
body {font-family: "Lato", sans-serif;}
7
div.tab {
8
   overflow: hidden;
9
   border: 1px solid #ccc;
10
   background-color: #f1f1f1;
11
   float:center;
12
}
13
14
div.tab button {
15
   background-color: inherit;
16
   position:relative;
17
   left:30%;
18
   border: none;
19
   outline: none;
20
   cursor: pointer;
21
   padding: 14px 16px;
22
   transition: 0.3s;
23
   font-size: 17px;
24
}
25
26
div.tab button:hover {
27
   background-color: #ddd;
28
}
29
30
div.tab button.active {
31
   background-color: #ccc;
32
}
33
34
.content {
35
   display: none;
36
   padding: 6px 12px;
37
   border: 1px solid #ccc;
38
   border-top: none;
39
}
40
41
table {
42
   font-family: arial, sans-serif;
43
   width: 50%;
44
}
45
46
td, th {
47
   border: 1px solid #dddddd;
48
   text-align: center;
49
}
50
51
#releasetoolpreftable {
52
    width:100%;
53
}
54
55
#prefbutton {
56
    margin-top:20px;
57
    margin-bottom:20px;
58
}
59
60
.preftitle {
61
    text-align:center;
62
}
63
64
.pref_text_input {
65
    width: 90%;
66
    height: 30px;
67
}
68
69
.pref_binary_input {
70
    width: 90%;
71
    height: 30px;
72
}
73
74
.pref_choice_input {
75
    width: 90%;
76
    height: 30px;
77
}
78
</style>
79
80
[% IF ( finish ) %]<meta http-equiv="refresh" content="10; url=/cgi-bin/koha/mainpage.pl">[% END %]
81
[% INCLUDE 'installer-doc-head-close.inc' %]
82
</head>
83
84
<body id="installer" class="installer">
85
    <div class="container-fluid">
86
        <div class="row">
87
            <div id="installer-step3" class="installer-main col-sm-8 col-sm-offset-2 col-md-8 col-md-offset-2">
88
                <h1 id="logo"><a href="#">Koha</a></h1>
89
                <div class="tab">
90
                    <button onclick="openInfoTab(event, 'syspref')"> New Syspref information</button>
91
                    <button class="tablinks" onclick="openInfoTab(event, 'releasenotes')"> Release notes</button>
92
                </div>
93
94
                <div id="syspref" class="content">
95
                    <h2>New sysprefs added to Koha since Koha [% dbversion %]</h2>
96
                    <div class="prefs-tab">
97
                    <p> The system preferences listed below were all installed in the update from Koha [% dbversion %] to Koha [% kohaversion %]. The default values of each of the system preferences are displayed for you to review and modify and submit by selecting the 'Save all preferences' button </p>
98
                            <form name="featurereleaseform" action="/cgi-bin/koha/installer/featurereleasetool.pl?dbversion=[%dbversion%]&kohaversion=[%kohaversion%]" method="post">
99
                                <input type="hidden" name="op" value="save" />
100
                                    <table id="releasetoolpreftable">
101
                                        <tr>
102
                                            <th class="preftitle">Preference</th>
103
                                            <th class="preftitle"> Description</th>
104
                                            <th class="preftitle">Value</th>
105
                                        </tr>
106
                                        [% FOREACH pref IN prefs %]
107
                                        <tr>
108
                                            <td>
109
                                                    <input type="hidden" name="pref_[% pref.variable %]" id="pref_[% pref.variable %]" value="[% pref.variable %]"/>
110
                                                    [% pref.variable %]
111
                                            </td>
112
                                            <td>
113
                                                    [% pref.explanation %]
114
                                            </td>
115
                                            <td>
116
                                                [% IF (pref.value != '') %]
117
                                                    [% IF (pref.type == "Integer") || (pref.type == "integer" ) || (pref.type == "Free") %]
118
                                                        <input type="text" class="pref_text_input" name="pref_[% pref.variable %]" value="[% pref.value %]">
119
                                                    [% ELSIF (pref.type == "Choice") %]
120
                                                        <select name="pref_[% pref.variable %]" class="pref_choice_input">
121
                                                            [% option_value = pref.options.split("\\|") %]
122
                                                            [% option_text = pref.display_choices.split("\\|") %]
123
                                                            [% IF pref.value == option_value.0 %]
124
                                                                <option value="[% option_value.0 %]" selected="selected">[% option_text.0 %] </option>
125
                                                                <option value="[% option_value.1 %]">[% option_text.1 %] </option>
126
                                                                <option value="[% option_value.2 %]">[% option_text.2 %] </option>
127
                                                                <option value="[% option_value.3 %]">[% option_text.3 %] </option>
128
                                                            [% ELSIF pref.value == option_value.1 %]
129
                                                                <option value="[% option_value.0 %]">[% option_text.0 %] </option>
130
                                                                <option value="[% option_value.1 %]" selected="selected">[% option_text.1 %] </option>
131
                                                                <option value="[% option_value.2 %]">[% option_text.2 %] </option>
132
                                                                <option value="[% option_value.3 %]">[% option_text.3 %] </option>
133
                                                            [% ELSIF pref.value == option_value.2 %]
134
                                                                <option value="[% option_value.0 %]">[% option_text.0 %] </option>
135
                                                                <option value="[% option_value.1 %]">[% option_text.1 %] </option>
136
                                                                <option value="[% option_value.2 %]" selected="selected">[% option_text.2 %] </option>
137
                                                                <option value="[% option_value.3 %]">[% option_text.3 %] </option>
138
                                                            [% ELSIF pref.value == option_value.3 %]
139
                                                                <option value="[% option_value.0 %]">[% option_text.0 %] </option>
140
                                                                <option value="[% option_value.1 %]">[% option_text.1 %] </option>
141
                                                                <option value="[% option_value.2 %]">[% option_text.2 %] </option>
142
                                                                <option value="[% option_value.3 %]" selected="selected">[% option_text.3 %] </option>
143
                                                            [% END %]
144
                                                        </select>
145
                                                    [% ELSIF (pref.type == "YesNo") %]
146
                                                        <select id="pref_[% pref.variable %]" class="pref_binary_input" name="pref_[% pref.variable %]">
147
                                                            [% option_text = pref.display_choices.split("\\|") %]
148
                                                            [% IF pref.value == 1 %]
149
                                                                <option value=1 selected="selected"> [% IF option_text %] [% option_text.1 %] [% ELSE %] Yes [% END %]</option>
150
                                                                <option value=0> [% IF option_text %] [% option_text.0 %] [% ELSE %] No [% END %] </option>
151
                                                            [% ELSE %]
152
                                                                <option value=0 selected="selected"> [% IF option_text %] [% option_text.0 %] [% ELSE %] No [% END %]</option>
153
                                                                <option value=1> [% IF option_text %] [% option_text.1 %] [% ELSE %] Yes [% END %]</option>
154
                                                            [% END %]
155
                                                        </select>
156
                                                    [% END %]
157
                                                [% ELSE %]
158
                                                    No default value
159
                                                [% END %]
160
                                            </td>
161
                                        </tr>
162
                                        [% END %]
163
                                    </table>
164
                                    [% IF !(submitted_form) %]
165
                                        <button type="submit" id="prefbutton" name="submit" value="submit"> Save all preferences </button>
166
                                    [% END %]
167
                            </form>
168
                    </div>
169
                </div>
170
171
                <div id="releasenotes" class="content">
172
                    <h2> Koha version [% kohaversion %] release notes </h2>
173
                    <a href="https://koha-community.org/koha-17-05-released/"> Koha 17.05 release notes link </a>
174
                </div>
175
                <br>
176
                <form name="featurereleaseform" action="/cgi-bin/koha/installer/featurereleasetool.pl" method="post">
177
                    <input type="hidden" name="op" value="finished" />
178
                    <p><button class="btn btn-primary">Log into Koha staff intranet</button></p>
179
                </form>
180
            </div>
181
        </div>
182
    </div>
183
</body>
184
<script type="text/javascript">
185
186
function openInfoTab(evt, tabName) {
187
    // Declare all variable
188
    var i, tabcontent, tablinks;
189
190
    // Get all elements with class="tabcontent" and hide them
191
    tabcontent = document.getElementsByClassName("content");
192
    for (i = 0; i < tabcontent.length; i++) {
193
         tabcontent[i].style.display = "none";
194
    }
195
196
    // Get all elements with class="tablinks" and remove the class "active"
197
    tablinks = document.getElementsByClassName("tablinks");
198
    for (i = 0; i < tablinks.length; i++) {
199
         tablinks[i].className = tablinks[i].className.replace(" active", "");
200
    }
201
202
    // Show the current tab, and add an "active" class to the button that opened the tab
203
    document.getElementById(tabName).style.display = "block";
204
    evt.currentTarget.className += " active";
205
}
206
207
</script>
208
209
210
[% INCLUDE 'intranet-bottom.inc' %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step3.tt (-2 / +3 lines)
Lines 235-241 Link Here
235
                [% END # / IF default %]
235
                [% END # / IF default %]
236
236
237
                [% IF ( updatestructure ) %]
237
                [% IF ( updatestructure ) %]
238
                    <h2>Updating database structure</h2>
238
                    <h2>Updating database structure from [%dbversion%] to [%kohaversion%]</h2>
239
                    [% IF ( has_update_succeeds ) %]
239
                    [% IF ( has_update_succeeds ) %]
240
                        <p>Update report :</p>
240
                        <p>Update report :</p>
241
                        <ul>
241
                        <ul>
Lines 255-261 Link Here
255
                    [% UNLESS ( has_update_errors ) %]
255
                    [% UNLESS ( has_update_errors ) %]
256
                        <p>Everything went okay. Update done.</p>
256
                        <p>Everything went okay. Update done.</p>
257
                    [% END %]
257
                    [% END %]
258
                    <p><a href="install.pl?step=3&amp;op=finished" class="btn btn-primary">Continue to log in to Koha</a></p>
258
                    <p><a href="install.pl?step=3&amp;op=featurereleasetool&amp;dbversion=[%dbversion%]&amp;kohaversion=[%kohaversion%]&amp;update_report=[%update_report%]" class="btn btn-primary">Continue to feature release tool</a></p>
259
                    <p><a href="install.pl?step=3&amp;op=finished&amp;dbversion=[%dbversion%]" class="btn btn-primary">Skip feature release tool and login to Koha</a></p>
259
               [% END # / IF updatestructure %]
260
               [% END # / IF updatestructure %]
260
            </div> <!-- / #installer-step3 -->
261
            </div> <!-- / #installer-step3 -->
261
        </div> <!-- / .row -->
262
        </div> <!-- / .row -->
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/koha-news.tt (-73 / +3 lines)
Lines 96-174 Edit news item[% ELSE %]Add news item[% END %][% ELSE %]News[% END %]</div> Link Here
96
    [% IF ( op == 'add' ) %][% default_lang = lang %]
96
    [% IF ( op == 'add' ) %][% default_lang = lang %]
97
    [% ELSE %][% default_lang = new_detail.lang %]
97
    [% ELSE %][% default_lang = new_detail.lang %]
98
    [% END %]
98
    [% END %]
99
        <form name="add_form" method="post" action="/cgi-bin/koha/tools/koha-news.pl" >
99
100
            <input type="hidden" name="op" value="[% op %]" />
100
    [% INCLUDE 'newsform.inc' %]
101
            <input type="hidden" name="id" value="[% id %]" />
101
102
			<fieldset class="rows">
103
            <legend>OPAC and Koha news</legend>
104
           <ol> <li>
105
            <label for="lang">Display location:</label>
106
            <select id="lang" name="lang">
107
                [% IF ( default_lang == "" ) %]
108
                <option value="" selected="selected">All</option>
109
                [% ELSE %]
110
                <option value=""                    >All</option>
111
                [% END %]
112
                [% IF ( default_lang == "koha" ) %]
113
                <option value="koha" selected="selected">Librarian interface</option>
114
                [% ELSE %]
115
                <option value="koha"                    >Librarian interface</option>
116
                [% END %]
117
                [% IF ( default_lang == "slip" ) %]
118
                <option value="slip" selected="selected">Slip</option>
119
                [% ELSE %]
120
                <option value="slip"                    >Slip</option>
121
                [% END %]
122
                [% FOREACH lang_lis IN lang_list %]
123
                [% IF ( lang_lis.language == default_lang ) %]
124
                    <option value="[% lang_lis.language %]" selected="selected">OPAC ([% lang_lis.language %])</option>
125
                [% ELSE %]
126
                    <option value="[% lang_lis.language %]"                    >OPAC ([% lang_lis.language %])</option>
127
                [% END %]
128
                [% END %]
129
            </select>
130
            </li>
131
            <li>
132
                <label for="branch">Library: </label>
133
                <select id="branch" name="branch">
134
                    [% IF ( new_detail.branchcode == '' ) %]
135
                        <option value="" selected="selected">All libraries</option>
136
                    [% ELSE %]
137
                        <option value=""         >All libraries</option>
138
                    [% END %]
139
                    [% PROCESS options_for_libraries libraries => Branches.all( selected => new_detail.branchcode, unfiltered => 1, ) %]
140
                </select>
141
            </li>
142
            <li>
143
                <label for="title" class="required">Title: </label>
144
                <input id="title" size="30" type="text" name="title" value="[% new_detail.title %]" required="required" class="required" /> <span class="required">Required</span>
145
            </li>
146
            <li>
147
                <label for="from">Publication date: </label>
148
                <input id="from" type="text" name="timestamp" size="15" value="[% new_detail.timestamp %]" class="datepickerfrom" />
149
				<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
150
            </li>
151
            <li>
152
                <label for="to">Expiration date: </label>
153
                <input id="to" type="text" name="expirationdate" size="15" value="[% new_detail.expirationdate %]" class="datepickerto" />
154
				<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
155
            </li>
156
            <li>
157
                <label for="number">Appear in position: </label>
158
                [% IF ( new_detail.number ) %]
159
                    <input id="number" size="3" name="number" type="text" value="[% new_detail.number %]" />
160
                [% ELSE %]
161
                    <input id="number" size="3" name="number" type="text" />
162
                [% END %]
163
            </li>
164
            <li><label for="content">News: </label>
165
            <textarea name="content" id="content"  cols="75" rows="10">[% new_detail.content %]</textarea>
166
            </li>
167
            </ol>
168
			</fieldset>
169
  
170
                <fieldset class="action"><input class="button" type="submit" value="Submit" /> <a class="cancel" href="/cgi-bin/koha/tools/koha-news.pl">Cancel</a></fieldset>
171
        </form>
172
    [% ELSE %]
102
    [% ELSE %]
173
        <div style="margin-bottom:5px;">
103
        <div style="margin-bottom:5px;">
174
        <form name="add_form" method="post" action="/cgi-bin/koha/tools/koha-news.pl" >
104
        <form name="add_form" method="post" action="/cgi-bin/koha/tools/koha-news.pl" >
(-)a/mainpage.pl (+16 lines)
Lines 89-94 $template->param( Link Here
89
#
89
#
90
unless ($loggedinuser) {
90
unless ($loggedinuser) {
91
    $template->param(adminWarning => 1);
91
    $template->param(adminWarning => 1);
92
} else {
93
    my $patron_has_flags = Koha::Patron->check_if_patrons_have_flags();
94
    if ($patron_has_flags) {
95
        my $featuretoolrequired = C4::Auth->check_feature_tool_required();
96
        if ($featuretoolrequired) {
97
            my $kohaversion = Koha::version();
98
            my $dbh = C4::Context->dbh;
99
            my $dbquery = qq|
100
                SELECT value FROM systempreferences WHERE variable="PreviousVersion" |;
101
            my $sth = $dbh->prepare($dbquery);
102
            $sth->execute();
103
            my $dbversion = $sth->fetchrow;
104
            print $query->redirect("/cgi-bin/koha/installer/featurereleasetool.pl?dbversion=$dbversion&kohaversion=$kohaversion");
105
            exit;
106
        }
107
    }
92
}
108
}
93
109
94
output_html_with_http_headers $query, $cookie, $template->output;
110
output_html_with_http_headers $query, $cookie, $template->output;
(-)a/tools/koha-news.pl (-2 / +3 lines)
Lines 83-90 foreach my $language ( @$tlangs ) { Link Here
83
    }
83
    }
84
}
84
}
85
85
86
my $location = "intranet";
86
$template->param( lang_list   => \@lang_list,
87
$template->param( lang_list   => \@lang_list,
87
                  branchcode  => $branchcode );
88
                  branchcode  => $branchcode,
89
                  location    => $location );
88
90
89
my $op = $cgi->param('op') // '';
91
my $op = $cgi->param('op') // '';
90
92
91
- 

Return to bug 18645