Bugzilla – Attachment 69470 Details for
Bug 18645
Creation of Koha feature release change tool displayed after running Koha update
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 18645 -Koha feature release change tool
Bug-18645--Koha-feature-release-change-tool.patch (text/plain), 95.35 KB, created by
Alex Buckley
on 2017-12-03 19:50:06 UTC
(
hide
)
Description:
Bug 18645 -Koha feature release change tool
Filename:
MIME Type:
Creator:
Alex Buckley
Created:
2017-12-03 19:50:06 UTC
Size:
95.35 KB
patch
obsolete
>From 149ab008959e86feeeac2b0836371f122e3865a6 Mon Sep 17 00:00:00 2001 >From: Alex Buckley <alexbuckley@catalyst.net.nz> >Date: Fri, 21 Jul 2017 22:43:38 +0000 >Subject: [PATCH] Bug 18645 -Koha feature release change tool > >This tool is displayed at the end of the update process to display all >the new system preferences added during the update so that the >administrator can view and modify their default values if neccessary > >The administrator also has the ability to skip the feature release tool on the update >process and it will be displayed to the next superlibrarian user that >logs in. Because librarian staff are likely to be more familiar with the >system preference settings that a library would want to set than an IT >support administrator > >Test plan: >1. Go to Administrator->global system preferences->Local use > >2. Set the version number to 16.120033 (Note: only 1 decimal place) and >save > >3. Go through the update process and notice that after submitting the >'Update database structure' page you are prompted to login and the main >page appears if you logged in with the correct credentials > >4. Apply patch > >5. Repeat steps 1 and 2 > >6. Notice the button text on the 'Update database structure' page has >changed and now it says 'Continue to feature release tool' > >7. Notice there is also a skip button. Click the skip button and notice >you are redirected to the staff intranet login page. > >8. Login with the Koha db administrator credentials and notice that the >Koha main page is displayed > >9. Logout and enter superlibrarian user credentials and submit the login >form > >10. Notice you are redirected to the Koha web installer login page > >11. Login with the Koha db administrator credentials > >12. Notice the feature release change tool is displayed > >13. Alter the NumSavedReports and the >TalkingTechItivaPhoneNotification values and select the 'Save all >preferences' button > >14. Query the values of these two sysprefs in the systempreferences >database table and notice they have been changed to what you submitted > >15. Click the 'Log into Koha staff intranet' button > >16. Notice the intranet login page appears > >17. Login and the main page will be displayed > >18. Repeat steps 1,2 and click the 'Continue to feature release tool' >button > >19. Notice the feature release tool is displayed and repeat steps 13 and >14 > >20. Click the 'Log into Koha staff intranet' button, login as either >Koha db administrator or as a superlibrarian (it doesn't matter which >you log in as) and the Koha staff intranet mainpage will be displayed > >21. Log out and then log back in again and notice the staff intranet is >still displayed. Note you are not redirected to the Koha web installer >login page to go through the feature release change tool because you >have already gone through it > >Sponsored-By: Catalyst IT >--- > C4/Auth.pm | 16 + > Koha/Patron.pm | 19 + > admin/preferences.pl | 122 ++++--- > admin/systempreferences.pl | 1 + > ...g_version_column_to_systempreferences_table.sql | 102 ++++++ > installer/data/mysql/kohastructure.sql | 1 + > installer/featurereleasetool.pl | 192 ++++++++++ > installer/install.pl | 19 +- > koha-tmpl/intranet-tmpl/prog/css/staff-global.css | 5 + > .../intranet-tmpl/prog/en/includes/newsform.inc | 98 +++++ > koha-tmpl/intranet-tmpl/prog/en/includes/team.inc | 403 +++++++++++++++++++++ > .../prog/en/modules/admin/preferences.tt | 182 +++++----- > .../en/modules/installer/featurereleasetool.tt | 210 +++++++++++ > .../prog/en/modules/installer/step3.tt | 5 +- > .../prog/en/modules/tools/koha-news.tt | 76 +--- > mainpage.pl | 16 + > tools/koha-news.pl | 4 +- > 17 files changed, 1242 insertions(+), 229 deletions(-) > create mode 100644 installer/data/mysql/atomicupdate/18645_adding_version_column_to_systempreferences_table.sql > create mode 100755 installer/featurereleasetool.pl > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/newsform.inc > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/team.inc > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/installer/featurereleasetool.tt > >diff --git a/C4/Auth.pm b/C4/Auth.pm >index bf1457e..4a8b011 100644 >--- a/C4/Auth.pm >+++ b/C4/Auth.pm >@@ -2030,6 +2030,22 @@ sub get_all_subpermissions { > return $all_perms; > } > >+=head2 check_feature_tool_required >+ >+my $featuretoolrequired = C4::Auth->check_feature_tool_required(); >+ >+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 >+ >+=cut >+sub check_feature_tool_required { >+ my $dbh = C4::Context->dbh; >+ my $sth = $dbh->prepare(" >+ SELECT featuretoolrequired FROM userflags WHERE bit = 0"); >+ $sth->execute(); >+ my $onboardingrequired = $sth->fetchrow(); >+ return $onboardingrequired; >+} >+ > =head2 haspermission > > $flags = ($userid, $flagsrequired); >diff --git a/Koha/Patron.pm b/Koha/Patron.pm >index 92e70a5..81841eb 100644 >--- a/Koha/Patron.pm >+++ b/Koha/Patron.pm >@@ -652,6 +652,25 @@ sub get_enrollable_clubs { > return wantarray ? $e->as_list : $e; > } > >+=head3 check_if_patrons_have_flags >+ >+my $patron_has_flags = Koha::Patron->check_if_patrons_have_flag s(); >+ >+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 >+ >+=cut >+sub check_if_patrons_have_flags { >+ my $dbh = C4::Context->dbh; >+ my $sth = $dbh->prepare(" >+ select * from borrowers where flags != 'NULL'"); >+ $sth->execute(); >+ my $no_patrons_with_flags; >+ if ( $sth->rows ) { >+ $no_patrons_with_flags = 1; >+ } >+ return $no_patrons_with_flags; >+} >+ > =head3 account_locked > > my $is_locked = $patron->account_locked >diff --git a/admin/preferences.pl b/admin/preferences.pl >index 032789f..04e752a 100755 >--- a/admin/preferences.pl >+++ b/admin/preferences.pl >@@ -58,74 +58,74 @@ sub GetTab { > } > > sub _get_chunk { >- my ( $value, %options ) = @_; >+ my ( $value, %options ) = @_; > >- my $name = $options{'pref'}; >- my $chunk = { name => $name, value => $value, type => $options{'type'} || 'input', class => $options{'class'} }; >+ my $name = $options{'pref'}; >+ my $chunk = { name => $name, value => $value, type => $options{'type'} || 'input', class => $options{'class'} }; > >- if ( $options{'class'} && $options{'class'} eq 'password' ) { >- $chunk->{'input_type'} = 'password'; >- } elsif ( $options{'class'} && $options{'class'} eq 'date' ) { >- $chunk->{'dateinput'} = 1; >- } elsif ( $options{'type'} && ( $options{'type'} eq 'opac-languages' || $options{'type'} eq 'staff-languages' ) ) { >- my $current_languages = { map { +$_, 1 } split( /\s*,\s*/, $value ) }; >+ if ( $options{'class'} && $options{'class'} eq 'password' ) { >+ $chunk->{'input_type'} = 'password'; >+ } elsif ( $options{'class'} && $options{'class'} eq 'date' ) { >+ $chunk->{'dateinput'} = 1; >+ } elsif ( $options{'type'} && ( $options{'type'} eq 'opac-languages' || $options{'type'} eq 'staff-languages' ) ) { >+ my $current_languages = { map { +$_, 1 } split( /\s*,\s*/, $value ) }; > >- my $theme; >- my $interface; >- if ( $options{'type'} eq 'opac-languages' ) { >+ my $theme; >+ my $interface; >+ if ( $options{'type'} eq 'opac-languages' ) { > # this is the OPAC >- $interface = 'opac'; >- $theme = C4::Context->preference('opacthemes'); >- } else { >- # this is the staff client >- $interface = 'intranet'; >- $theme = C4::Context->preference('template'); >- } >- $chunk->{'languages'} = getTranslatedLanguages( $interface, $theme, $lang, $current_languages ); >- $chunk->{'type'} = 'languages'; >- } elsif ( $options{ 'choices' } ) { >- if ( $options{'choices'} && ref( $options{ 'choices' } ) eq '' ) { >- if ( $options{'choices'} eq 'class-sources' ) { >- my $sources = GetClassSources(); >- $options{'choices'} = { map { $_ => $sources->{$_}->{'description'} } keys %$sources }; >- } elsif ( $options{'choices'} eq 'opac-templates' ) { >- $options{'choices'} = { map { $_ => $_ } getallthemes( 'opac' ) } >- } elsif ( $options{'choices'} eq 'staff-templates' ) { >- $options{'choices'} = { map { $_ => $_ } getallthemes( 'intranet' ) } >- } else { >- die 'Unrecognized source of preference values: ' . $options{'choices'}; >- } >- } >- >- $value ||= 0; >+ $interface = 'opac'; >+ $theme = C4::Context->preference('opacthemes'); >+ } else { >+ # this is the staff client >+ $interface = 'intranet'; >+ $theme = C4::Context->preference('template'); >+ } >+ $chunk->{'languages'} = getTranslatedLanguages( $interface, $theme, $lang, $current_languages ); >+ $chunk->{'type'} = 'languages'; >+ } elsif ( $options{ 'choices' } ) { >+ if ( $options{'choices'} && ref( $options{ 'choices' } ) eq '' ) { >+ if ( $options{'choices'} eq 'class-sources' ) { >+ my $sources = GetClassSources(); >+ $options{'choices'} = { map { $_ => $sources->{$_}->{'description'} } keys %$sources }; >+ } elsif ( $options{'choices'} eq 'opac-templates' ) { >+ $options{'choices'} = { map { $_ => $_ } getallthemes( 'opac' ) } >+ } elsif ( $options{'choices'} eq 'staff-templates' ) { >+ $options{'choices'} = { map { $_ => $_ } getallthemes( 'intranet' ) } >+ } else { >+ die 'Unrecognized source of preference values: ' . $options{'choices'}; >+ } >+ } >+ >+ $value ||= 0; > > $chunk->{'type'} = 'select'; >- $chunk->{'CHOICES'} = [ >- sort { $a->{'text'} cmp $b->{'text'} } >- map { { text => $options{'choices'}->{$_}, value => $_, selected => ( $_ eq $value || ( $_ eq '' && ( $value eq '0' || !$value ) ) ) } } >- keys %{ $options{'choices'} } >- ]; >- } elsif ( $options{'multiple'} ) { >- my @values; >- @values = split /,/, $value if defined($value); >- $chunk->{type} = 'multiple'; >- $chunk->{CHOICES} = [ >- sort { $a->{'text'} cmp $b->{'text'} } >- map { >- my $option_value = $_; >- { >- text => $options{multiple}->{$option_value}, >- value => $option_value, >- selected => (grep /^$option_value$/, @values) ? 1 : 0, >- } >- } >- keys %{ $options{multiple} } >- ]; >- } >+ $chunk->{'CHOICES'} = [ >+ sort { $a->{'text'} cmp $b->{'text'} } >+ map { { text => $options{'choices'}->{$_}, value => $_, selected => ( $_ eq $value || ( $_ eq '' && ( $value eq '0' || !$value ) ) ) } } >+ keys %{ $options{'choices'} } >+ ]; >+ } elsif ( $options{'multiple'} ) { >+ my @values; >+ @values = split /,/, $value if defined($value); >+ $chunk->{type} = 'multiple'; >+ $chunk->{CHOICES} = [ >+ sort { $a->{'text'} cmp $b->{'text'} } >+ map { >+ my $option_value = $_; >+ { >+ text => $options{multiple}->{$option_value}, >+ value => $option_value, >+ selected => (grep /^$option_value$/, @values) ? 1 : 0, >+ } >+ } >+ keys %{ $options{multiple} } >+ ]; >+ } > > $chunk->{ 'type_' . $chunk->{'type'} } = 1; > >- return $chunk; >+ return $chunk; > } > > sub TransformPrefsToHTML { >@@ -165,7 +165,8 @@ sub TransformPrefsToHTML { > } else { > $value = $row->{'value'}; > } >- my $chunk = _get_chunk( $value, %$piece ); >+ my $source = "preferences"; >+ my $chunk = _get_chunk( $value, $source, %$piece ); > > # No highlighting of inputs yet, but would be useful > $chunk->{'highlighted'} = 1 if ( $searchfield && $name =~ /^$searchfield$/i ); >@@ -225,6 +226,7 @@ sub SearchPrefs { > my ( $input, $searchfield ) = @_; > my @tabs; > >+ warn $input, $searchfield; > my %tab_files = _get_pref_files( $input ); > our @terms = split( /\s+/, $searchfield ); > >diff --git a/admin/systempreferences.pl b/admin/systempreferences.pl >index 67e0638..223c41b 100755 >--- a/admin/systempreferences.pl >+++ b/admin/systempreferences.pl >@@ -339,6 +339,7 @@ if ( $op eq 'add_form' ) { > unless C4::Context->config('demo'); > print $input->redirect("/cgi-bin/koha/admin/systempreferences.pl?tab="); > exit; >+ > ################## DELETE_CONFIRM ################################## > # called by default form, used to confirm deletion of data in DB > } elsif ( $op eq 'delete_confirm' ) { >diff --git a/installer/data/mysql/atomicupdate/18645_adding_version_column_to_systempreferences_table.sql b/installer/data/mysql/atomicupdate/18645_adding_version_column_to_systempreferences_table.sql >new file mode 100644 >index 0000000..5aec7fb >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/18645_adding_version_column_to_systempreferences_table.sql >@@ -0,0 +1,102 @@ >+ALTER TABLE systempreferences ADD version varchar(12) DEFAULT NULL; >+ALTER TABLE systempreferences ADD display_choices mediumtext DEFAULT NULL; >+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"); >+UPDATE systempreferences SET version="16.06.00.003" WHERE variable ="MaxItemsToProcessForBatchMod"; >+UPDATE systempreferences SET version="16.06.00.003" WHERE variable ="MaxItemsToDisplayForBatchDel"; >+UPDATE systempreferences SET version="16.06.00.004" WHERE variable ="OPACXSLTListsDisplay"; >+UPDATE systempreferences SET version="16.06.00.004" WHERE variable ="XSLTListsDisplay"; >+UPDATE systempreferences SET version="16.06.00.005" WHERE variable ="XSLTListsDisplay"; >+UPDATE systempreferences SET version="16.06.00.006", display_choices="check-in library.|item home branch.|item holding branch." WHERE variable="RefundLostOnReturnControl"; >+UPDATE systempreferences SET version="16.06.00.007" WHERE variable="PatronQuickAddFields"; >+UPDATE systempreferences SET version="16.06.00.008", display_choices="Do|Unless overridden, do|Unless overridden, do not|Do not" WHERE variable="CheckPrevCheckout"; >+UPDATE systempreferences SET version="16.06.00.009", display_choices="Don't show|Show" WHERE variable="IntranetCatalogSearchPulldown"; >+UPDATE systempreferences SET version="16.06.00.010" WHERE variable="MaxOpenSuggestions"; >+UPDATE systempreferences SET version="16.06.00.011", display_choices="Don't add|add" WHERE variable="NovelistSelectStaffEnabled"; >+UPDATE systempreferences SET version="16.06.00.011", display_choices="in a tab|above the holdings table|below the holdings table" WHERE variable="NovelistSelectStaffView"; >+UPDATE systempreferences SET version="16.06.00.013", display_choices="home library|current location" WHERE variable="OPACResultsLibrary"; >+UPDATE systempreferences SET version="16.06.00.015", display_choices="Don't log|Log" WHERE variable="HoldsLog"; >+UPDATE systempreferences SET version="16.06.00.020", display_choices="Don't switch|Switch" WHERE variable="SwitchOnSiteCheckouts"; >+UPDATE systempreferences SET version="16.06.00.027", display_choices="Don't|Do" WHERE variable="TrackLastPatronActivity"; >+UPDATE systempreferences SET version="16.06.00.021", display_choices="Do not consider|Consider" WHERE variable="PatronSelfRegistrationEmailMustBeUnique"; >+UPDATE systempreferences SET version="16.06.00.023" WHERE variable="timeout"; >+UPDATE systempreferences SET version="16.06.00.025", display_choices="Do not make|Make" WHERE variable="makePreviousSerialAvailable"; >+UPDATE systempreferences SET version="16.06.00.026" WHERE variable="PatronSelfRegistrationLibraryList"; >+UPDATE systempreferences SET version="16.06.00.027", display_choices="Don't|Do" WHERE variable="TrackLastPatronActivity"; >+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"; >+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"; >+UPDATE systempreferences SET version="16.06.00.030", display_choices="First column of the table|Home library|Holding library" WHERE variable="OPACHoldingsDefaultSortField"; >+UPDATE systempreferences SET version="16.06.00.031", display_choices="Do not display and prefill|Display and prefill" WHERE variable="PatronSelfRegistrationPrefillForm"; >+UPDATE systempreferences SET version="16.06.00.035", display_choices="Don't allow|Allow" WHERE variable="AllowItemsOnHoldCheckoutSCO"; >+UPDATE systempreferences SET version="16.06.00.036", display_choices="Disable|Enable" WHERE variable="HouseboundModule"; >+UPDATE systempreferences SET version="16.06.00.037", display_choices="Don't enable|Enable" WHERE variable="ArticleRequests"; >+UPDATE systempreferences SET version="16.06.00.037", display_choices="Title|Author|Volume|Issue|Date|Pages|Chapters" WHERE variable="ArticleRequestsMandatoryFields"; >+UPDATE systempreferences SET version="16.06.00.037", display_choices="Title|Author|Volume|Issue|Date|Pages|Chapters" WHERE variable="ArticleRequestsMandatoryFieldsItemsOnly"; >+UPDATE systempreferences SET version="16.06.00.037", display_choices="Title|Author|Volume|Issue|Date|Pages|Chapters" WHERE variable="ArticleRequestsMandatoryFieldsRecordOnly"; >+UPDATE systempreferences SET version="16.06.00.038", display_choices="surname,firstname,othernames,cardnumber,userid" WHERE variable="DefaultPatronSearchFields"; >+UPDATE systempreferences SET version="16.06.00.041", display_choices="don't|do" WHERE variable="AggressiveMatchOnISSN"; >+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"; >+UPDATE systempreferences SET version="16.06.00.049" WHERE variable="ReplytoDefault"; >+UPDATE systempreferences SET version="16.06.00.049" WHERE variable="ReturnpathDefault"; >+UPDATE systempreferences SET version="16.12.00.005", display_choices="loose|strict" WHERE variable="AuthorityMergeMode"; >+UPDATE systempreferences SET version="16.12.00.008" WHERE variable="MarcItemFieldsToOrder"; >+UPDATE systempreferences SET version="16.12.00.009", display_choices="Don't allow|Allow" WHERE variable="OPACHoldsIfAvailableAtPickup"; >+UPDATE systempreferences SET version="16.12.00.009" WHERE variable="OPACHoldsIfAvailableAtPickupExceptions"; >+UPDATE systempreferences SET version="16.12.00.010", display_choices="Don't enable|Enable" WHERE variable="OverDriveCirculation"; >+UPDATE systempreferences SET version="16.12.00.012", display_choices="Don't display|Display" WHERE variable="OpacNewsLibrarySelect"; >+UPDATE systempreferences SET version="16.12.00.013", display_choices="Deactivate|Activate" WHERE variable="CircSidebar"; >+UPDATE systempreferences SET version="16.12.00.014", display_choices="Don't load|Load" WHERE variable="LoadSearchHistoryToTheFirstLoggedUser"; >+UPDATE systempreferences SET version="16.12.00.015" WHERE variable="UsageStatsGeolocation"; >+UPDATE systempreferences SET version="16.12.00.015", display_choices="Do not Share|Share" WHERE variable="UsageStatsLibrariesInfo"; >+UPDATE systempreferences SET version="16.12.00.015" WHERE variable="UsageStatsPublicID"; >+UPDATE systempreferences SET version="16.12.00.017", display_choices="Don't cumulate|Cumulate" WHERE variable="CumulativeRestrictionPeriods"; >+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"; >+UPDATE systempreferences SET version="16.12.00.021", display_choices="Don't log|Log" WHERE variable="RenewalLog"; >+UPDATE systempreferences SET version="16.12.00.023" WHERE variable="AuthorityMergeLimit"; >+UPDATE systempreferences SET version="16.12.00.024" WHERE variable="OverdueNoticeBcc"; >+UPDATE systempreferences SET version="16.12.00.024" WHERE variable="NoticeBcc"; >+UPDATE systempreferences SET version="16.12.00.025" WHERE variable="UploadPurgeTemporaryFilesDays"; >+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"; >+UPDATE systempreferences SET version="16.12.00.029", display_choices="Don't allow|Allow" WHERE variable="AllowCheckoutNotes"; >+UPDATE systempreferences SET version="16.12.00.032", display_choices="Don't allow|Allow" WHERE variable="ExcludeHolidaysFromMaxPickUpDelay"; >+UPDATE systempreferences SET version="16.12.00.033", display_choices="Don't allow|Allow" WHERE variable="TranslateNotices"; >+UPDATE systempreferences SET version="16.12.00.034", display_choices="Block|Allow" WHERE variable="OPACFineNoRenewalsBlockAutoRenew"; >+UPDATE systempreferences SET version="16.12.00.036" WHERE variable="NumSavedReports"; >+UPDATE systempreferences SET version="16.12.00.037" WHERE variable="FailedLoginAttempts"; >+UPDATE systempreferences SET version="16.12.00.038" WHERE variable="ExportRemoveFields"; >+UPDATE systempreferences SET version="16.12.00.039", display_choices="Disable|Enable" WHERE variable="TalkingTechItivaPhoneNotification"; >+UPDATE systempreferences SET version="17.06.00.004" WHERE variable="GoogleOpenIDConnectAutoRegister"; >+UPDATE systempreferences SET version="17.06.00.004" WHERE variable="GoogleOpenIDConnectDefaultCategory"; >+UPDATE systempreferences SET version="17.06.00.004" WHERE variable="GoogleOpenIDConnectDefaultBranch"; >+UPDATE systempreferences SET version="17.06.00.005" WHERE variable="StaffLangSelectorMode"; >+UPDATE systempreferences SET version="17.06.00.010" WHERE variable="DefaultCountryField008"; >+UPDATE systempreferences SET version="17.06.00.013" WHERE variable="staffClientBaseURL"; >+UPDATE systempreferences SET version="17.06.00.015" WHERE variable="SelfCheckoutByLogin"; >+UPDATE systempreferences SET version="17.06.00.016" WHERE variable="RequireStrongPassword"; >+UPDATE systempreferences SET version="17.06.00.018" WHERE variable="useDefaultReplacementCost"; >+UPDATE systempreferences SET version="17.06.00.018" WHERE variable="ProcessingFeeNote"; >+UPDATE systempreferences SET version="17.06.00.020" WHERE variable="OpacLocationOnDetail"; >+UPDATE systempreferences SET version="17.06.00.021" WHERE variable="SCOMainUserBlock"; >+UPDATE systempreferences SET version="17.06.00.023" WHERE variable="MarkLostItemsAsReturned"; >+UPDATE systempreferences SET version="17.06.00.024" WHERE variable="OPACUserSummary"; >+UPDATE systempreferences SET version="17.06.00.026" WHERE variable="BlockReturnOfLostItems"; >+UPDATE systempreferences SET version="17.06.00.028" WHERE variable="ILLModule"; >+UPDATE systempreferences SET version="17.06.00.028" WHERE variable="ILLModuleCopyrightClearance'; >+ >+ >+ >+ >+ >+ >+ >+ >+ >+ >+ >+ >+ >+ >+ >+ >+ >+ >+ >diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql >index 4f2bd98..9cc7660 100644 >--- a/installer/data/mysql/kohastructure.sql >+++ b/installer/data/mysql/kohastructure.sql >@@ -2260,6 +2260,7 @@ CREATE TABLE `userflags` ( > `flag` varchar(30) default NULL, > `flagdesc` varchar(255) default NULL, > `defaulton` int(11) default NULL, >+ `featuretoolrequired` int(1) default NULL, > PRIMARY KEY (`bit`) > ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; > >diff --git a/installer/featurereleasetool.pl b/installer/featurereleasetool.pl >new file mode 100755 >index 0000000..91525f2 >--- /dev/null >+++ b/installer/featurereleasetool.pl >@@ -0,0 +1,192 @@ >+#!/usr/bin/perl >+ >+# This file is part of Koha. >+# >+# Copyright (C) 2017 Catalyst IT >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use strict; >+use warnings; >+use diagnostics; >+ >+use C4::InstallAuth; >+use CGI qw ( -utf8 ); >+use POSIX qw(strftime); >+use Koha; >+use C4::Context; >+use C4::Output; >+use C4::Templates; >+use C4::Languages qw(getAllLanguages getTranslatedLanguages); >+use C4::Installer; >+use C4::NewsChannels; >+use Data::Dumper; >+use Koha::DateUtils; >+use Date::Calc qw/Date_to_Days Today/; >+our $lang; >+ >+my $query = new CGI; >+my $step = $query->param('step'); >+my $kohaversion = $query->param('kohaversion'); #Retrieve kohaversion number from url >+my $dbversion = $query->param('dbversion'); >+my $dbh = C4::Context->dbh; >+my $op = $query->param('op'); >+my $language = $query->param('language'); >+my ( $template, $loggedinuser, $cookie ); >+ >+my $all_languages = getAllLanguages(); >+ >+if ( defined($language) ) { >+ C4::Templates::setlanguagecookie( $query, $language, "install.pl?step=1" ); >+} >+ >+#Set featurereleasetool.tt as template >+( $template, $loggedinuser, $cookie ) = get_template_and_user( >+ { >+ template_name => "installer/featurereleasetool.tt", >+ query => $query, >+ type => "intranet", >+ authnotrequired => 0, >+ debug => 1, >+ } >+); >+ >+#Database settings >+my $installer = C4::Installer->new(); >+my %info; >+$info{'dbname'} = C4::Context->config("database"); >+$info{'dbms'} = ( >+ C4::Context->config("db_scheme") >+ ? C4::Context->config("db_scheme") >+ : "mysql" >+); >+$info{'hostname'} = C4::Context->config("hostname"); >+$info{'port'} = C4::Context->config("port"); >+$info{'user'} = C4::Context->config("user"); >+$info{'password'} = C4::Context->config("pass"); >+$info{'tls'} = C4::Context->config("tls"); >+ if ($info{'tls'} && $info{'tls'} eq 'yes'){ >+ $info{'ca'} = C4::Context->config('ca'); >+ $info{'cert'} = C4::Context->config('cert'); >+ $info{'key'} = C4::Context->config('key'); >+ $info{'tlsoptions'} = ";mysql_ssl=1;mysql_ssl_client_key=".$info{key}.";mysql_ssl_client_cert=".$info{cert}.";mysql_ssl_ca_file=".$info{ca}; >+ $info{'tlscmdline'} = " --ssl-cert ". $info{cert} . " --ssl-key " . $info{key} . " --ssl-ca ".$info{ca}." " >+ } >+ >+my $location = "feature"; >+ >+$template->param( >+ 'kohaversion' => $kohaversion, >+ 'dbversion' => $dbversion, >+ 'location' => $location, >+); >+ >+my $logdir = C4::Context->config('logdir'); >+my @logs = `cd $logdir && ls -t | grep "updatedatabase_2*"`; >+ >+my $filename_suffix = $logs[0]; >+my $path = $logdir . '/' . $filename_suffix; >+my $file; >+my $count = 0; >+$file = `cat $path`; >+$file = `echo "$file" | grep -Eo '?[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+?'`; >+ >+my @prefsloop; >+my @lines = split /\n/, $file; >+foreach my $line (@lines) { >+ my $query = qq| >+ SELECT variable, value, options, display_choices, explanation, type from systempreferences WHERE version= ? |; >+ my $sth = $dbh->prepare($query); >+ $sth->execute($line); >+ while (my ($variable, $value, $options, $display_choices, $explanation, $type) = $sth->fetchrow) { >+ if ($options) { >+ push @prefsloop, { >+ variable => $variable, >+ value => $value, >+ options => $options, >+ explanation => $explanation, >+ type => $type, >+ display_choices => $display_choices, >+ }; >+ } else { >+ push @prefsloop, { >+ variable => $variable, >+ value => $value, >+ explanation => $explanation, >+ type => $type, >+ display_choices => $display_choices, >+ }; >+ } >+ } >+}; >+ >+$template->param( prefs => \@prefsloop, submitted_form => $op ); >+ >+#If the user has finished using the feature release change tool then redirect to mainpage >+if ( $op && $op eq 'finished' ) { >+ $dbh->do(q{UPDATE userflags SET featuretoolrequired = 0 WHERE bit = ?}, {}, 0); >+ print $query->redirect("/cgi-bin/koha/mainpage.pl"); >+ exit; >+} >+elsif ( $op && $op eq 'save' ) { #Submit changed systempreferences >+ unless ( C4::Context->config( 'demo' ) ) { >+ foreach my $param ( $query->param() ) { >+ my ( $prefname ) = ( $param =~ /pref_(.*)/ ); >+ next if ( !defined( $prefname ) ); >+ my $wholevalue = join( ',', $query->param($param) ); >+ my ($name, $value) = split(/,/,$wholevalue); >+ C4::Context->set_preference( $name, $value ); >+ } >+ } >+} >+ >+#Submit news item >+my $id = $query->param('id'); >+my $title = $query->param('title'); >+my $content = $query->param('featurecontent'); >+my $expirationdate; >+if ( $query->param('expirationdate') ) { >+ $expirationdate = output_pref({ dt => dt_from_string( scalar $query->param('expirationdate') ), dateformat => 'iso', dateonly => 1 } ); >+} >+my $timestamp = output_pref({ dt => dt_from_string( scalar $query->param('timestamp') ), dateformat => 'iso', dateonly => 1 }); >+my $number = $query->param('number'); >+my $lang = $query->param('lang'); >+my $branchcode = $query->param('branch'); >+ >+my $error_message = $query->param('error_message'); >+$branchcode = undef if (defined($branchcode) && $branchcode eq ''); >+ >+$template->param( error_message => $error_message ) if $error_message; >+ >+my $new_detail = get_opac_new($id); >+ >+if ($title) { >+ my $newsposting = add_opac_new( >+ { >+ title => $title, >+ content => $content, >+ lang => $lang, >+ expirationdate => $expirationdate, >+ timestamp => $timestamp, >+ number => $number, >+ branchcode => $branchcode, >+ borrowernumber => $loggedinuser, >+ } >+ ); >+ if ($newsposting) { >+ $template->param( newsposted => $newsposting ); >+ } >+} >+ >+output_html_with_http_headers $query, $cookie, $template->output; >diff --git a/installer/install.pl b/installer/install.pl >index ac43214..1ed2cca 100755 >--- a/installer/install.pl >+++ b/installer/install.pl >@@ -226,6 +226,12 @@ elsif ( $step && $step == 3 ) { > # > # we have finished, just redirect to mainpage. > # >+ $dbh->do(q{UPDATE userflags SET featuretoolrequired = 1 WHERE bit = ?}, {}, 0); >+ my $dbversion = $query->param('dbversion'); >+ my $dbquery = qq| >+ UPDATE systempreferences SET value = ? WHERE variable = "PreviousVersion" |; >+ my $sth = $dbh->prepare($dbquery); >+ $sth->execute($dbversion); > print $query->redirect("/cgi-bin/koha/mainpage.pl"); > exit; > } >@@ -237,6 +243,11 @@ elsif ( $step && $step == 3 ) { > # And we redirect people to mainpage. > # The installer will have to relogin since we do not pass cookie to redirection. > $template->param( "$op" => 1 ); >+ }elsif ( $op && $op eq 'featurereleasetool' ) { >+ my $dbversion = $query->param('dbversion'); >+ my $kohaversion = $query->param('kohaversion'); >+ print $query->redirect("/cgi-bin/koha/installer/featurereleasetool.pl?dbversion=$dbversion&kohaversion=$kohaversion"); >+ exit; > } > > elsif ( $op && $op eq 'addframeworks' ) { >@@ -382,6 +393,11 @@ elsif ( $step && $step == 3 ) { > my $kohaversion = Koha::version; > $kohaversion =~ s/(.*\..*)\.(.*)\.(.*)/$1$2$3/; > >+ $template->param( >+ "dbversion" => $dbversion, >+ "kohaversion" => $kohaversion >+ ); >+ > my $filename_suffix = join '_', $now, $dbversion, $kohaversion; > my ( $logfilepath, $logfilepath_errors ) = ( > chk_log( $logdir, "updatedatabase_$filename_suffix" ), >@@ -400,7 +416,8 @@ elsif ( $step && $step == 3 ) { > close $fh; > if (@report) { > $template->param( update_report => >- [ map { { line => $_ } } split( /\n/, join( '', @report ) ) ] >+ [ map { { line => $_ } } split( /\n/, join( '', @report ) ) ], >+ raw_report => @report > ); > $template->param( has_update_succeeds => 1 ); > } >diff --git a/koha-tmpl/intranet-tmpl/prog/css/staff-global.css b/koha-tmpl/intranet-tmpl/prog/css/staff-global.css >index 9a18b09..d505809 100644 >--- a/koha-tmpl/intranet-tmpl/prog/css/staff-global.css >+++ b/koha-tmpl/intranet-tmpl/prog/css/staff-global.css >@@ -3137,3 +3137,8 @@ fieldset.rows + fieldset.action { > table#ill-requests { > width: 100% !important; > } >+ >+#news_posted { >+ width: 50%; >+ background-color: #F1F1F1; >+} >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/newsform.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/newsform.inc >new file mode 100644 >index 0000000..54ec220 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/newsform.inc >@@ -0,0 +1,98 @@ >+<div> >+ [% IF location == "feature" %] >+ <form name="add_form" id="add_form" method="post" action="/cgi-bin/koha/installer/featurereleasetool.pl?dbversion=[%dbversion%]&kohaversion=[%kohaversion%]" onsubmit="sbmt()"> >+ [% ELSIF location == "intranet" %] >+ <form name="add_form" method="post" action="/cgi-bin/koha/tools/koha-news.pl" > >+ [% END %] >+ <input type="hidden" name="op" value="[% op %]" /> >+ <input type="hidden" name="id" value="[% id %]" /> >+ <input type="hidden" name="dbversion" value="[% dbversion %]" /> >+ <input type="hidden" name="kohaversion" value="[% kohaversion %]" /> >+ <fieldset class="rows"> >+ <legend>OPAC and Koha news</legend> >+ <ol> <li> >+ <label for="lang">Display location:</label> >+ <select id="lang" name="lang"> >+ [% IF ( default_lang == "" ) %] >+ <option value="" selected="selected">All</option> >+ [% ELSE %] >+ <option value="">All</option> >+ [% END %] >+ [% IF ( default_lang == "koha" ) %] >+ <option value="koha" selected="selected">Librarian interface</option> >+ [% ELSE %] >+ <option value="koha">Librarian interface</option> >+ [% END %] >+ [% IF ( default_lang == "slip" ) %] >+ <option value="slip" selected="selected">Slip</option> >+ [% ELSE %] >+ <option value="slip">Slip</option> >+ [% END %] >+ [% FOREACH lang_lis IN lang_list %] >+ [% IF ( lang_lis.language == default_lang ) %] >+ <option value="[% lang_lis.language %]" selected="selected">OPAC ([% lang_lis.language %])</option> >+ [% ELSE %] >+ <option value="[% lang_lis.language %]" >OPAC ([% lang_lis.language %])</option> >+ [% END %] >+ [% END %] >+ </select> >+ </li> >+ <li> >+ <label for="branch">Library: </label> >+ <select id="branch" name="branch"> >+ [% IF ( new_detail.branchcode == '' ) %] >+ <option value="" selected="selected">All libraries</option> >+ [% ELSE %] >+ <option value="">All libraries</option> >+ [% END %] >+ </select> >+ </li> >+ <li> >+ <label for="title" class="required">Title: </label> >+ [% IF location == "feature" %] >+ <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> >+ [% ELSE %] >+ <input id="title" size="30" type="text" name="title" value="[% new_detail.title %]" required="required" class="required" /> <span class="required">Required</span> >+ [% END %] >+ </li> >+ <li> >+ <label for="from">Publication date: </label> >+ <input id="from" type="text" name="timestamp" size="15" value="[% new_detail.timestamp %]" class="datepickerfrom" /> >+ <div class="hint">[% INCLUDE 'date-format.inc' %]</div> >+ </li> >+ <li> >+ <label for="to">Expiration date: </label> >+ <input id="to" type="text" name="expirationdate" size="15" value="[% new_detail.expirationdate %]" class="datepickerto" /> >+ <div class="hint">[% INCLUDE 'date-format.inc' %]</div> >+ </li> >+ <li> >+ <label for="number">Appear in position: </label> >+ [% IF ( new_detail.number ) %] >+ <input id="number" size="3" name="number" type="text" value="[% new_detail.number %]" /> >+ [% ELSE %] >+ <input id="number" size="3" name="number" type="text" /> >+ [% END %] >+ </li> >+ <li><label for="content">News: </label> >+ [% IF location=="feature" %] >+ <br><br> >+ <div contenteditable="true" name="featurecontent" id="featurecontent" cols="75" rows="10" > >+ 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. >+ <br> >+ <p>Read about the enhancements here: <a href="https://koha-community.org/koha-17-05-released/"> Koha 17.05 release notes link </a></p> >+ <p> During the upgrade the following new systempreferences were also installed:</p> >+ [% FOREACH pref IN prefs %] >+ [% pref.variable %] >+ [% pref.value %] >+ [% END %] >+ </div> >+ <div class="control" onclick="sbmt()"></div> >+ [% ELSIF location=="intranet" %] >+ <textarea name="content" id="content" cols="75" rows="10">[% new_detail.content %]</textarea> >+ [% END %] >+ </li> >+ </ol> >+ <input class="button" type="submit" value="Submit" /> >+ </fieldset> >+ </form> >+</div> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/team.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/team.inc >new file mode 100644 >index 0000000..ce64b1e >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/team.inc >@@ -0,0 +1,403 @@ >+<div id="team"> >+ <h2>Special thanks to the following organizations</h2> >+ <ul> >+ <li><a href="http://library.org.nz">Horowhenua Library Trust</a>, New Zealand, and Rosalie Blake, Head of Libraries, (Koha 1.0)</li> >+ <li>The <a href="http://www.myacpl.org/">Athens County Public Libraries</a>, Ohio, USA (MARC sponsorship, documentation, template maintenance)</li> >+ <li><a href="http://www.emn.fr">EMN (Ecole des Mines de Nantes)</a>, France (Suggestions, Stats wizards and improved LDAP sponsorship)</li> >+ <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> >+ <li><a href="http://www.mediathequeouestprovence.fr/">SAN-Ouest Provence</a>, France (Koha 3.0 enhancements to patrons and holds modules)</li> >+ <li>The <a href="http://ccfls.org">Crawford County Federated Library System</a>, PA, USA (Koha 3.0 Zebra Integration sponsorship)</li> >+ <li>The <a href="http://www.geauga.lib.oh.us/">Geauga County Public Library</a>, OH, USA (Koha 3.0 beta testing)</li> >+ <li>The <a href="http://library.neu.edu.tr">Near East University</a>, Cyprus</li> >+ <li>OPUS International Consultants, Wellington, New Zealand (Corporate Serials sponsorship)</li> >+ <li><a href="http://www.famfamfam.com/">famfamfam.com</a> Birmingham (UK) based developer Mark James for the famfamfam Silk iconset.</li> >+ <li><a href="http://www.ashs.school.nz/">Albany Senior High School</a>, Auckland, New Zealand (OPAC 'star-ratings' sponsorship)</li> >+ </ul> >+ >+ <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> >+ <ul> >+ <li><strong>Release manager:</strong> >+ <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> >+ <li><strong>(Database) Documentation manager:</strong> >+ <a href="https://www.openhub.net/p/koha/contributors/6618544609030">Chris Cormack</a>, David Nind (Assistant) >+ </li> >+ <li><strong>Translation manager:</strong> >+ <a href="https://www.openhub.net/p/koha/contributors/6618544839606">Bernardo González Kriegel</a></li> >+ <li><strong>Quality assurance team:</strong> >+ <ul> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544730094">Tomás Cohen Arazi</a></li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6620692886191">Nick Clemens</a></li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618545125093">Jonathan Druart</a></li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6620692261494">Kyle Hall</a></li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6620692419690">Julian Maurice</a></li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544785220">Martin Renvoize</a></li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544727712">Marcel de Rooy</a></li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6620692831733">Fridolin Somers</a></li> >+ </ul> >+ </li> >+ <li><strong>Release maintainers:</strong> >+ <ul> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544670742">Katrin Fischer</a> (16.11)</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544618401">Mason James</a> (16.05)</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6620692419690">Julian Maurice</a> (3.22)</li> >+ </ul> >+ </li> >+ <li><strong>Packaging manager:</strong> >+ <a href="https://www.openhub.net/p/koha/contributors/6620692605913">Mirko Tietgen</a> >+ </li> >+ <li><strong>Jenkins maintainer:</strong> >+ <a href="https://www.openhub.net/p/koha/contributors/6618544730094">Tomás Cohen Arazi</a> >+ </li> >+ <li><strong>Bug wranglers:</strong> >+ <ul> >+ <li>Indranil Das Gupta</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618545408147">Marc Véron</a></li> >+ </ul> >+ </li> >+ </ul> >+ >+ <h2>Koha development team</h2> >+ <ul> >+ <li>Jacek Ablewicz</li> >+ <li>Md. Aftabuddin</li> >+ <li>Jon Aker</li> >+ <li>Chloe Alabaster</li> >+ <li>Edward Allen</li> >+ <li>Francisco M. Marzoa Alonso</li> >+ <li>Joseph Alway</li> >+ <li>Cindy Murdock Ames</li> >+ <li>Aleisha Amohia</li> >+ <li>Roman Amor</li> >+ <li>Richard Anderson</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6620692181851">Nahuel Angelinetti</a></li> >+ <li>Nuño López Ansótegui</li> >+ <li>Dimitris Antonakis</li> >+ <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> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6620692124662">Andrew Arensburger (the small and great C4::Context module)</a></li> >+ <li>Alex Arnaud</li> >+ <li>Petter Goksoyr Asen</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544614259">Joe Atzberger</a></li> >+ <li>Héctor Eduardo Castro Avalos</li> >+ <li>Larry Baerveldt</li> >+ <li>Marc Balmer</li> >+ <li>Edmund Balnaves</li> >+ <li>Al Banks</li> >+ <li>Daniel Banzli</li> >+ <li>Stefano Bargioni</li> >+ <li>Daniel Barker</li> >+ <li>Greg Barniskis</li> >+ <li>Benedykt P. Barszcz (Polish for 2.0)</li> >+ <li>D Ruth Bavousett (3.12 Translation Manager)</li> >+ <li>Maxime Beaulieu</li> >+ <li>Natalie Bennison</li> >+ <li>John Beppu</li> >+ <li>Pablo Bianchi</li> >+ <li>David Birmingham</li> >+ <li>Florian Bischof</li> >+ <li>Gaetan Boisson</li> >+ <li>Danny Bouman</li> >+ <li>Christopher Brannon (3.20 QA Team Member)</li> >+ <li>Stan Brinkerhoff</li> >+ <li>Isaac Brodsky</li> >+ <li>Ivan Brown</li> >+ <li>Roger Buck</li> >+ <li>Steven Callender</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6620692376789">Jared Camins-Esakov (3.12 Release Manager; 3.6 Release Maintainer)</a></li> >+ <li>Colin Campbell (3.4 QA Manager)</li> >+ <li>Fernando Canizo</li> >+ <li>Barry Cannon</li> >+ <li>Frédérick Capovilla</li> >+ <li>DeAndre Carroll</li> >+ <li>Chris Catalfo (new plugin MARC editor)</li> >+ <li>Marc Chantreux</li> >+ <li>Jerome Charaoui</li> >+ <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> >+ <li>Francois Charbonnier</li> >+ <li>Evonne Cheung</li> >+ <li>Andrew Chilton</li> >+ <li>Barton Chittenden</li> >+ <li>Koha SAB CINECA</li> >+ <li>Nick Clemens (16.11 QA Team Member)</li> >+ <li>Garry Collum</li> >+ <li>David Cook</li> >+ <li>John Copeland</li> >+ <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> >+ <li>Jeremy Crabtree</li> >+ <li>Samuel Crosby</li> >+ <li>Christophe Croullebois</li> >+ <li>Olivier Crouzet</li> >+ <li>Nate Curulla</li> >+ <li>Vincent Danjean</li> >+ <li>Hugh Davenport</li> >+ <li>Elliott Davis (3.12 QA Team Member)</li> >+ <li>Doug Dearden</li> >+ <li>Kip DeGraaf</li> >+ <li>Stéphane Delaune</li> >+ <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> >+ <li>Connor Dewar</li> >+ <li>Srikanth Dhondi</li> >+ <li>Rocio Dressler</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618545125093">Jonathan Druart (3.8 - 16.11 QA Team Member)</a></li> >+ <li>Serhij Dubyk</li> >+ <li>Yohann Dufour</li> >+ <li>Thomas Dukleth (MARC Frameworks Maintenance)</li> >+ <li>Frederic Durand</li> >+ <li>Sebastiaan Durand</li> >+ <li>Rachel Dustin</li> >+ <li>Ecole des Mines de Saint Etienne, Philippe Jaillon (OAI-PMH support)</li> >+ <li>Stephen Edwards</li> >+ <li>Dani Elder</li> >+ <li>Gus Ellerm</li> >+ <li>Andrew Elwell</li> >+ <li>Brian Engard</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544646984">Nicole C. Engard (3.0 - 16.11 Documentation Manager)</a></li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544677502">Magnus Enger</a></li> >+ <li>Esiee School (Jérome Vizcaino, Michel Lerenard, Pierre Cauchois)</li> >+ <li>Jason Etheridge</li> >+ <li>Shaun Evans</li> >+ <li>Pat Eyler (Kaitiaki from 2002 to 2004)</li> >+ <li>Charles Farmer</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544609865">Antoine Farnault</a></li> >+ <li>Arslan Farooq</li> >+ <li>Vitor Fernandes</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544609053">Joshua Ferraro (3.0 Release Manager and Translation Manager)</a></li> >+ <li>Julian Fiol</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544670742">Katrin Fischer (3.12 - 16.11 QA Manager)</a></li> >+ <li>Connor Fraser</li> >+ <li>Clay Fouts</li> >+ <li>Brendon Ford</li> >+ <li>Claudia Forsman</li> >+ <li>Corey Fuimaono</li> >+ <li>Marco Gaiarin</li> >+ <li>Pierrick Le Gall</li> >+ <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> >+ <li>Tumer Garip</li> >+ <li>Russel Garlick</li> >+ <li>Mark Gavillet</li> >+ <li>Claire Gravely</li> >+ <li>Daniel Kahn Gillmor</li> >+ <li>David Goldfein</li> >+ <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> >+ <li>Briana Greally</li> >+ <li>Daniel Grobani</li> >+ <li>Amit Gupta</li> >+ <li>Indranil Das Gupta</li> >+ <li>Michael Hafen</li> >+ <li>Christopher Hall (3.8 Release Maintainer)</li> >+ <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> >+ <li>Sean Hamlin</li> >+ <li>Tim Hannah</li> >+ <li>Mike Hansen</li> >+ <li>Brian Harrington</li> >+ <li>Brandon Haveman</li> >+ <li>Rochelle Healy</li> >+ <li>Emma Heath</li> >+ <li>Friedrich zur Hellen</li> >+ <li>Kate Henderson</li> >+ <li>Michaes Herman</li> >+ <li>Claire Hernandez</li> >+ <li>Wolfgang Heymans</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544614261">Ryan Higgins</a></li> >+ <li>Morag Hills</li> >+ <li>Sèbastien Hinderer</li> >+ <li>Kristina D.C. Hoeppner</li> >+ <li>Stephanie Hogan</li> >+ <li>Karl Holten</li> >+ <li>Daniel Holth</li> >+ <li>Andrew Hooper</li> >+ <li>Alexandra Horsman</li> >+ <li>Tom Houlker</li> >+ <li>Matthew Hunt</li> >+ <li>Christopher Hyde</li> >+ <li>Rolando Isidoro</li> >+ <li>Cory Jaeger</li> >+ <li>Lee Jamison</li> >+ <li>Srdjan Jankovic</li> >+ <li>Philippe Jaillon</li> >+ <li><a href="https://www.openhub.net/accounts/kohaaloha">Mason James (3.10 - 3.14 QA Team Member, 3.16 Release Maintainer)</a></li> >+ <li>Mike Johnson</li> >+ <li>Donovan Jones</li> >+ <li>Bart Jorgensen</li> >+ <li>Janusz Kaczmarek</li> >+ <li>Koustubha Kale</li> >+ <li>Pasi Kallinen</li> >+ <li>Peter Crellan Kelly</li> >+ <li>Jorgia Kelsey</li> >+ <li>Olli-Antti Kivilahti</li> >+ <li>Attila Kinali</li> >+ <li>Chris Kirby</li> >+ <li>Ulrich Kleiber</li> >+ <li>Rafal Kopaczka</li> >+ <li>Piotr Kowalski</li> >+ <li>Joonas Kylmälä</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544614275">Henri-Damien Laurent (3.0 Release Maintainer)</a></li> >+ <li>Arnaud Laurin</li> >+ <li>Nicolas Legrand</li> >+ <li>Sonia Lemaire</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544609147">Owen Leonard (3.0+ Interface Design)</a></li> >+ <li>Ambrose Li (translation tool)</li> >+ <li>Gynn Lomax</li> >+ <li>Peter Lorimer</li> >+ <li>Robert Lyon (Corporate Serials)</li> >+ <li>Merllisia Manueli</li> >+ <li>Francois Marier</li> >+ <li>Patricio Marrone</li> >+ <li>Jesse Maseto</li> >+ <li>Frère Sébastien Marie</li> >+ <li>Ricardo Dias Marques</li> >+ <li>Julian Maurice (3.18 QA Team Member; 3.22 Release Maintainer)</li> >+ <li>Remi Mayrand-Provencher</li> >+ <li>Brig C. McCoy</li> >+ <li>Tim McMahon</li> >+ <li>Dorian Meid (German translation)</li> >+ <li>Meenakshi. R</li> >+ <li>Melia Meggs</li> >+ <li>Holger MeiÃner</li> >+ <li>Karl Menzies</li> >+ <li>Matthias Meusburger</li> >+ <li>Sophie Meynieux</li> >+ <li>Janet McGowan</li> >+ <li>Alan Millar</li> >+ <li>Jono Mingard</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544607803">Andrew Moore</a></li> >+ <li>Francesca Moore</li> >+ <li>Josef Moravec</li> >+ <li>Sharon Moreland</li> >+ <li>Nicolas Morin</li> >+ <li>Mike Mylonas</li> >+ <li>Natasha ?? [Catalyst Academy]</li> >+ <li>Nadia Nicolaides</li> >+ <li>Joy Nelson</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544615991">Chris Nighswonger (3.2 - 3.6 Release Maintainer)</a></li> >+ <li>Brian Norris</li> >+ <li>Duy Tinh Nguyen</li> >+ <li>Simith D'Oliveira</li> >+ <li>Albert Oller</li> >+ <li>Eric Olsen</li> >+ <li>H. Passini</li> >+ <li>Aliki Pavlidou</li> >+ <li>Dobrica Pavlinusic</li> >+ <li>Maxime Pelletier</li> >+ <li>Shari Perkins</li> >+ <li>Martin Persson</li> >+ <li>Fred Pierre</li> >+ <li>Genevieve Plantin</li> >+ <li>Polytechnic University</li> >+ <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> >+ <li>Karam Qubsi</li> >+ <li>Romina Racca</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6620692116417">MJ Ray (2.0 Release Maintainer)</a></li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544650708">Liz Rea</a> (3.6, 3.18 Release Maintainer)</li> >+ <li>Thatcher Rea</li> >+ <li>Allen Reinmeyer</li> >+ <li>Serge Renaux</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544785220">Martin Renvoize (3.16 - 16.11 QA Team Member)</a></li> >+ <li>Abby Robertson</li> >+ <li>Waylon Robertson</li> >+ <li>Benjamin Rokseth</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544727712">Marcel de Rooy (3.8 - 16.11 QA Team Member)</a></li> >+ <li>Andreas Roussos</li> >+ <li>Salvador Zaragoza Rubio</li> >+ <li>Mathieu Saby</li> >+ <li>Eivin Giske Skaaren</li> >+ <li>Brice Sanchez</li> >+ <li>Sam Sanders</li> >+ <li>Rodrigo Santellan</li> >+ <li>Viktor Sarge</li> >+ <li>A. Sassmannshausen</li> >+ <li>Adrien Saurat</li> >+ <li>Dan Scott</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544619438">Robin Sheat (3.2 - 3.22 Packaging Manager)</a></li> >+ <li>Juhani Seppälä</li> >+ <li>John Seymour</li> >+ <li>Juan Romay Sieira</li> >+ <li>Zach Sim</li> >+ <li>Radek Siman</li> >+ <li>Silvia Simonetti</li> >+ <li>Savitra Sirohi</li> >+ <li>Pawel Skuza (Polish for 1.2)</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6620692831733">Fridolin Somers (3.14 Release Maintainer)</a></li> >+ <li>Southeastern University</li> >+ <li>Martin Stenberg</li> >+ <li>Glen Stewart</li> >+ <li>Will Stokes</li> >+ <li>Simon Story</li> >+ <li>David Strainchamps</li> >+ <li>Ed Summers (Some code and Perl packages like MARC::Record)</li> >+ <li>Daniel Sweeney</li> >+ <li>Zeno Tajoli</li> >+ <li>Lari Taskula</li> >+ <li>Samanta Tello</li> >+ <li>Adam Thick</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618544609107">Finlay Thompson</a></li> >+ <li>Peggy Thrasher</li> >+ <li>Fabio Tiana</li> >+ <li>Mirko Tietgen (16.11 Packaging Manager)</li> >+ <li>Mark Tompsett</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6620692101577">Steve Tonnesen (early MARC work, Virtual Bookshelves concept, KohaCD)</a></li> >+ <li>Bruno Toumi</li> >+ <li>Andrei V. Toutoukine</li> >+ <li>Duncan Tyler</li> >+ <li>Kathryn Tyree</li> >+ <li>Darrell Ulm</li> >+ <li>Universidad ORT Uruguay (Ernesto Silva, Andres Tarallo)</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6618545408147">Marc Véron</a></li> >+ <li>Justin Vos</li> >+ <li>Aleksa Vujicic</li> >+ <li>Reed Wade</li> >+ <li>Stacey Walker</li> >+ <li>Ian Walls (3.6 - 3.10 QA Manager)</li> >+ <li><a href="https://www.openhub.net/accounts/janewagner">Jane Wagner</a></li> >+ <li>Ward van Wanrooij</li> >+ <li><a href="https://www.openhub.net/accounts/pianohacker">Jesse Weaver (16.05, 16.11 QA Team Member)</a></li> >+ <li>Stefan Weil</li> >+ <li>Aaron Wells</li> >+ <li>Rick Welykochy</li> >+ <li>Piotr Wejman</li> >+ <li>Ron Wickersham</li> >+ <li>Brett Wilkins</li> >+ <li><a href="https://www.openhub.net/p/koha/contributors/6620692127299">Olwen Williams (Database design and data extraction for Koha 1.0)</a></li> >+ <li>Robert Williams</li> >+ <li>James Winter</li> >+ <li>Lars Wirzenius</li> >+ <li>Thomas Wright</li> >+ <li>Jen Zajac</li> >+ <li>Kenza Zaki</li> >+ </ul> >+ <h3>Contributing companies and institutions</h3> >+ <ul> >+ <li>BibLibre, France</li> >+ <li>Bibliotheksservice-Zentrum Baden-Württemberg (BSZ), Germany</li> >+ <li>ByWater Solutions, USA</li> >+ <li>Calyx, Australia</li> >+ <li>Catalyst IT, New Zealand</li> >+ <li>C & P Bibliography Services, USA</li> >+ <li>Hochschule für Gesundheit (hsg), Germany</li> >+ <li>Katipo Communications, New Zealand</li> >+ <li>KEEP SOLUTIONS, Portugal</li> >+ <li>KohaAloha, New Zealand</li> >+ <li>LibLime, USA</li> >+ <li>Libriotech, Norway</li> >+ <li>Nelsonville Public Library, Ohio, USA</li> >+ <li>Prosentient Systems, Australia</li> >+ <li>PTFS, Maryland, USA</li> >+ <li>PTFS Europe Ltd, United Kingdom</li> >+ <li>Rijksmuseum, Amsterdam, The Netherlands</li> >+ <li>SAN-Ouest Provence, France</li> >+ <li>software.coop, United Kingdom</li> >+ <li>Tamil, France</li> >+ <li>Universidad Nacional de Córdoba, Argentina</li> >+ <li>Xercode, Spain</li> >+ </ul> >+ >+ <h2>Additional thanks to...</h2> >+ <ul> >+ <li>Irma Birchall</li> >+ <li>Rachel Hamilton-Williams (Kaitiaki from 2004 to present)</li> >+ <li>Stephen Hedges (early Documentation Manager)</li> >+ <li>Brooke Johnson</li> >+ <li>Jo Ransom</li> >+ <li>Nicholas Rosasco (Documentation Compiler)</li> >+ <li>Regula Sebastiao</li> >+ </ul> >+</div> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt >index 7d884a7..7f57f2a 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt >@@ -76,119 +76,117 @@ > <div class="dialog alert"> > No system preferences matched your search for: <strong>[% searchfield |html %]</strong> > </div> >- [% ELSIF searchfield %] > <h1>You searched for: [% searchfield | html %]</h1> > [% END %] > [% FOREACH TAB IN TABS %] >- <div class="prefs-tab"> >- <h2>[% TAB.tab_title %] preferences</h2> >- <form action="/cgi-bin/koha/admin/preferences.pl" method="post"> >- [% UNLESS ( searchfield ) %]<div id="toolbar"><button class="save-all submit" type="submit">Save all [% TAB.tab_title %] preferences</button></div>[% END %] >- <input type="hidden" name="op" value="save" /> >- <input type="hidden" name="tab" value="[% TAB.tab_id %]" /> >- >- [% FOREACH LINE IN TAB.LINES %] >- [% IF ( LINE.is_group_title ) %] >- [% UNLESS ( loop.first ) %]</tbody></table>[% END %] >- <h3>[% LINE.title %]</h3> >- <table class="preferences"> >- <thead><tr><th>Preference</th><th>Value</th></tr></thead> >- [% UNLESS ( loop.last ) %]<tbody>[% END %] >- [% ELSE %] >- [% IF ( loop.first ) %]<table class="preferences"><thead><tr><th>Preference</th><th>Value</th></tr></thead><tbody>[% END %] >- <tr class="name-row"> >- <td class="name-cell"> >- <code> >- [% FOREACH NAME IN LINE.NAMES %] >- <label for="pref_[% NAME.name %]"> >- [% IF ( NAME.jumped ) %] >- <span class="term" id="jumped">[% NAME.name %]</span> >- [% ELSIF ( NAME.highlighted ) %] >- <span class="term">[% NAME.name %]</span> >- [% ELSE %] >- [% NAME.name %] >- [% END %] >- >- [% IF NAME.overridden %] >- <span class="overridden" title="The system preference [% NAME.name %] may have been overridden from this value by one or more virtual hosts."> >- [Overridden] >- </span> >- [% END %] >- </label> >- [% UNLESS ( loop.last ) %]<br />[% END %] >- [% END %] >- </code> >- </td> >- <td><div> >- [% FOREACH CHUNK IN LINE.CHUNKS %] >- [% IF ( CHUNK.type_text ) %] >+ <div class="prefs-tab"> >+ <h2>[% TAB.tab_title %] preferences</h2> >+ <form action="/cgi-bin/koha/admin/preferences.pl" method="post"> >+ [% UNLESS ( searchfield ) %]<div id="toolbar"><button class="save-all submit" type="submit">Save all [% TAB.tab_title %] preferences</button></div>[% END %] >+ <input type="hidden" name="op" value="save" /> >+ <input type="hidden" name="tab" value="[% TAB.tab_id %]" /> >+ [% FOREACH LINE IN TAB.LINES %] >+ [% IF ( LINE.is_group_title ) %] >+ [% UNLESS ( loop.first ) %]</tbody></table>[% END %] >+ <h3>[% LINE.title %]</h3> >+ <table class="preferences"> >+ <thead><tr><th>Preference</th><th>Value</th></tr></thead> >+ [% UNLESS ( loop.last ) %]<tbody>[% END %] >+ [% ELSE %] >+ [% IF ( loop.first ) %]<table class="preferences"><thead><tr><th>Preference</th><th>Value</th></tr></thead><tbody>[% END %] >+ <tr class="name-row"> >+ <td class="name-cell"> >+ <code> >+ [% FOREACH NAME IN LINE.NAMES %] >+ <label for="pref_[% NAME.name %]"> >+ [% IF ( NAME.jumped ) %] >+ <span class="term" id="jumped">[% NAME.name %]</span> >+ [% ELSIF ( NAME.highlighted ) %] >+ <span class="term">[% NAME.name %]</span> >+ [% ELSE %] >+ [% NAME.name %] >+ [% END %] >+ [% IF NAME.overridden %] >+ <span class="overridden" title="The system preference [% NAME.name %] may have been overridden from this value by one or more virtual hosts."> >+ [Overridden] >+ </span> >+ [% END %] >+ </label> >+ [% UNLESS ( loop.last ) %]<br />[% END %] >+ [% END %] >+ </code> >+ </td> >+ <td><div> >+ [% FOREACH CHUNK IN LINE.CHUNKS %] >+ [% IF ( CHUNK.type_text ) %] > [% CHUNK.contents %] >- [% ELSIF ( CHUNK.type_input ) %] >+ [% ELSIF ( CHUNK.type_input ) %] > <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 %] >- [% ELSIF ( CHUNK.type_select ) %] >+ [% ELSIF ( CHUNK.type_select ) %] > <select name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]" class="preference preference-[% CHUNK.class or "choice" %]"> > [% FOREACH CHOICE IN CHUNK.CHOICES.sort('value') %] >- [% IF ( CHOICE.selected ) %] >- <option value="[% CHOICE.value %]" selected="selected"> >- [% ELSE %] >- <option value="[% CHOICE.value %]"> >- [% END %] >+ [% IF ( CHOICE.selected ) %] >+ <option value="[% CHOICE.value %]" selected="selected"> >+ [% ELSE %] >+ <option value="[% CHOICE.value %]"> >+ [% END %] > [% CHOICE.text %] >- </option> >+ </option> > [% END %] > </select> > [% ELSIF ( CHUNK.type_multiple ) %] > <select name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]" class="preference preference-[% CHUNK.class or "choice" %]" multiple="multiple"> >- [% FOREACH CHOICE IN CHUNK.CHOICES %][% IF ( CHOICE.selected ) %]<option value="[% CHOICE.value %]" selected="selected">[% ELSE %]<option value="[% CHOICE.value %]">[% END %][% CHOICE.text %]</option>[% END %] >+ [% FOREACH CHOICE IN CHUNK.CHOICES %] >+ [% IF ( CHOICE.selected ) %]<option value="[% CHOICE.value %]" selected="selected">[% ELSE %]<option value="[% CHOICE.value %]">[% END %][% CHOICE.text %]</option>[% END %] > </select> >- [% ELSIF ( CHUNK.type_textarea ) || ( CHUNK.type_htmlarea )%] >+ [% ELSIF ( CHUNK.type_textarea ) || ( CHUNK.type_htmlarea )%] > [% IF ( CHUNK.type_htmlarea ) && ( Koha.Preference('UseWYSIWYGinSystemPreferences') ) %] >- <textarea name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]" class="preference preference-[% CHUNK.class or "short" %] mce" rows="20" cols="60">[% CHUNK.value %]</textarea> >+ <textarea name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]" class="preference preference-[% CHUNK.class or "short" %] mce" rows="20" cols="60">[% CHUNK.value %]</textarea> > [% ELSE %] >- <a class="expand-textarea" style="display: none" href="#">Click to Edit</a> >- <textarea name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]" class="preference preference-[% CHUNK.class or "short" %]" rows="10" cols="40">[% CHUNK.value %]</textarea> >- <a class="collapse-textarea" style="display:none" href="#">Click to collapse</br></a> >+ <a class="expand-textarea" style="display: none" href="#">Click to Edit</a> >+ <textarea name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]" class="preference preference-[% CHUNK.class or "short" %]" rows="10" cols="40">[% CHUNK.value %]</textarea> >+ <a class="collapse-textarea" style="display:none" href="#">Click to collapse</br></a> > [% END %] >- [% ELSIF ( CHUNK.type_languages ) %] >- <dl> >- [% FOREACH language IN CHUNK.languages %] >- [% IF ( language.plural ) %] >- <dt> >- [% IF ( language.native_description ) %][% language.native_description %][% ELSE %][% language.rfc4646_subtag %][% END %] >- </dt> >- [% FOREACH sublanguages_loo IN language.sublanguages_loop %] >- <dd> >- <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> >- [% IF ( sublanguages_loo.enabled ) %] >- <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"/> >- [% ELSE %] >- <input value="[% sublanguages_loo.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]_[% sublanguages_loo.rfc4646_subtag %]" type="checkbox" class="preference preference-checkbox"/> >+ [% ELSIF ( CHUNK.type_languages ) %] >+ <dl> >+ [% FOREACH language IN CHUNK.languages %] >+ [% IF ( language.plural ) %] >+ <dt> >+ [% IF ( language.native_description ) %][% language.native_description %][% ELSE %][% language.rfc4646_subtag %][% END %] >+ </dt> >+ [% FOREACH sublanguages_loo IN language.sublanguages_loop %] >+ <dd> >+ <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> >+ [% IF ( sublanguages_loo.enabled ) %] >+ <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"/> >+ [% ELSE %] >+ <input value="[% sublanguages_loo.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]_[% sublanguages_loo.rfc4646_subtag %]" type="checkbox" class="preference preference-checkbox"/> >+ [% END %] >+ </dd> > [% END %] >- </dd> >- [% END %] >- [% ELSE %] >- <dt> >- <label for="pref_[% CHUNK.name %]_[% language.rfc4646_subtag %]">[% language.native_description %]([% language.rfc4646_subtag %])</label> >+ [% ELSE %] >+ <dt> >+ <label for="pref_[% CHUNK.name %]_[% language.rfc4646_subtag %]">[% language.native_description %]([% language.rfc4646_subtag %])</label> > [% IF ( language.group_enabled ) %] >- <input value="[% language.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]_[% language.rfc4646_subtag %]" type="checkbox" checked="checked" class="preference preference-checkbox"/> >+ <input value="[% language.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]_[% language.rfc4646_subtag %]" type="checkbox" checked="checked" class="preference preference-checkbox"/> > [% ELSE %] >- <input value="[% language.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]_[% language.rfc4646_subtag %]" type="checkbox" class="preference preference-checkbox"/> >+ <input value="[% language.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]_[% language.rfc4646_subtag %]" type="checkbox" class="preference preference-checkbox"/> >+ [% END %] >+ </dt> > [% END %] >- </dt> > [% END %] >- [% END %] >- </dl> >- [% END %] >- [% END %] >- </div></td> >- </tr> >- [% IF ( loop.last ) %]</tbody></table>[% END %] >- [% END %] >- [% END %] >- <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> >- </form> >- </div> >- [% END %] >+ </dl> >+ [% END %] >+ [% END %] >+ </div></td> >+ </tr> >+ [% IF ( loop.last ) %]</tbody></table>[% END %] >+ [% END %] >+ [% END %] >+ <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> >+ </form> >+ </div> >+ [% END %] > </div> > </div> > <div class="yui-b"> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/installer/featurereleasetool.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/installer/featurereleasetool.tt >new file mode 100644 >index 0000000..e51bace >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/installer/featurereleasetool.tt >@@ -0,0 +1,210 @@ >+[% INCLUDE 'doc-head-open.inc' %] >+ >+<title>Koha › Web installer › Feature Release Change Tool </title> >+ >+<style> >+body {font-family: "Lato", sans-serif;} >+div.tab { >+ overflow: hidden; >+ border: 1px solid #ccc; >+ background-color: #f1f1f1; >+ float:center; >+} >+ >+div.tab button { >+ background-color: inherit; >+ position:relative; >+ left:30%; >+ border: none; >+ outline: none; >+ cursor: pointer; >+ padding: 14px 16px; >+ transition: 0.3s; >+ font-size: 17px; >+} >+ >+div.tab button:hover { >+ background-color: #ddd; >+} >+ >+div.tab button.active { >+ background-color: #ccc; >+} >+ >+.content { >+ display: none; >+ padding: 6px 12px; >+ border: 1px solid #ccc; >+ border-top: none; >+} >+ >+table { >+ font-family: arial, sans-serif; >+ width: 50%; >+} >+ >+td, th { >+ border: 1px solid #dddddd; >+ text-align: center; >+} >+ >+#releasetoolpreftable { >+ width:100%; >+} >+ >+#prefbutton { >+ margin-top:20px; >+ margin-bottom:20px; >+} >+ >+.preftitle { >+ text-align:center; >+} >+ >+.pref_text_input { >+ width: 90%; >+ height: 30px; >+} >+ >+.pref_binary_input { >+ width: 90%; >+ height: 30px; >+} >+ >+.pref_choice_input { >+ width: 90%; >+ height: 30px; >+} >+</style> >+ >+[% IF ( finish ) %]<meta http-equiv="refresh" content="10; url=/cgi-bin/koha/mainpage.pl">[% END %] >+[% INCLUDE 'installer-doc-head-close.inc' %] >+</head> >+ >+<body id="installer" class="installer"> >+ <div class="container-fluid"> >+ <div class="row"> >+ <div id="installer-step3" class="installer-main col-sm-8 col-sm-offset-2 col-md-8 col-md-offset-2"> >+ <h1 id="logo"><a href="#">Koha</a></h1> >+ <div class="tab"> >+ <button onclick="openInfoTab(event, 'syspref')"> New Syspref information</button> >+ <button class="tablinks" onclick="openInfoTab(event, 'releasenotes')"> Release notes</button> >+ </div> >+ >+ <div id="syspref" class="content"> >+ <h2>New sysprefs added to Koha since Koha [% dbversion %]</h2> >+ <div class="prefs-tab"> >+ <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> >+ <form name="featurereleaseform" action="/cgi-bin/koha/installer/featurereleasetool.pl?dbversion=[%dbversion%]&kohaversion=[%kohaversion%]" method="post"> >+ <input type="hidden" name="op" value="save" /> >+ <table id="releasetoolpreftable"> >+ <tr> >+ <th class="preftitle">Preference</th> >+ <th class="preftitle"> Description</th> >+ <th class="preftitle">Value</th> >+ </tr> >+ [% FOREACH pref IN prefs %] >+ <tr> >+ <td> >+ <input type="hidden" name="pref_[% pref.variable %]" id="pref_[% pref.variable %]" value="[% pref.variable %]"/> >+ [% pref.variable %] >+ </td> >+ <td> >+ [% pref.explanation %] >+ </td> >+ <td> >+ [% IF (pref.value != '') %] >+ [% IF (pref.type == "Integer") || (pref.type == "integer" ) || (pref.type == "Free") %] >+ <input type="text" class="pref_text_input" name="pref_[% pref.variable %]" value="[% pref.value %]"> >+ [% ELSIF (pref.type == "Choice") %] >+ <select name="pref_[% pref.variable %]" class="pref_choice_input"> >+ [% option_value = pref.options.split("\\|") %] >+ [% option_text = pref.display_choices.split("\\|") %] >+ [% IF pref.value == option_value.0 %] >+ <option value="[% option_value.0 %]" selected="selected">[% option_text.0 %] </option> >+ <option value="[% option_value.1 %]">[% option_text.1 %] </option> >+ <option value="[% option_value.2 %]">[% option_text.2 %] </option> >+ <option value="[% option_value.3 %]">[% option_text.3 %] </option> >+ [% ELSIF pref.value == option_value.1 %] >+ <option value="[% option_value.0 %]">[% option_text.0 %] </option> >+ <option value="[% option_value.1 %]" selected="selected">[% option_text.1 %] </option> >+ <option value="[% option_value.2 %]">[% option_text.2 %] </option> >+ <option value="[% option_value.3 %]">[% option_text.3 %] </option> >+ [% ELSIF pref.value == option_value.2 %] >+ <option value="[% option_value.0 %]">[% option_text.0 %] </option> >+ <option value="[% option_value.1 %]">[% option_text.1 %] </option> >+ <option value="[% option_value.2 %]" selected="selected">[% option_text.2 %] </option> >+ <option value="[% option_value.3 %]">[% option_text.3 %] </option> >+ [% ELSIF pref.value == option_value.3 %] >+ <option value="[% option_value.0 %]">[% option_text.0 %] </option> >+ <option value="[% option_value.1 %]">[% option_text.1 %] </option> >+ <option value="[% option_value.2 %]">[% option_text.2 %] </option> >+ <option value="[% option_value.3 %]" selected="selected">[% option_text.3 %] </option> >+ [% END %] >+ </select> >+ [% ELSIF (pref.type == "YesNo") %] >+ <select id="pref_[% pref.variable %]" class="pref_binary_input" name="pref_[% pref.variable %]"> >+ [% option_text = pref.display_choices.split("\\|") %] >+ [% IF pref.value == 1 %] >+ <option value=1 selected="selected"> [% IF option_text %] [% option_text.1 %] [% ELSE %] Yes [% END %]</option> >+ <option value=0> [% IF option_text %] [% option_text.0 %] [% ELSE %] No [% END %] </option> >+ [% ELSE %] >+ <option value=0 selected="selected"> [% IF option_text %] [% option_text.0 %] [% ELSE %] No [% END %]</option> >+ <option value=1> [% IF option_text %] [% option_text.1 %] [% ELSE %] Yes [% END %]</option> >+ [% END %] >+ </select> >+ [% END %] >+ [% ELSE %] >+ No default value >+ [% END %] >+ </td> >+ </tr> >+ [% END %] >+ </table> >+ [% IF !(submitted_form) %] >+ <button type="submit" id="prefbutton" name="submit" value="submit"> Save all preferences </button> >+ [% END %] >+ </form> >+ </div> >+ </div> >+ >+ <div id="releasenotes" class="content"> >+ <h2> Koha version [% kohaversion %] release notes </h2> >+ <a href="https://koha-community.org/koha-17-05-released/"> Koha 17.05 release notes link </a> >+ </div> >+ <br> >+ <form name="featurereleaseform" action="/cgi-bin/koha/installer/featurereleasetool.pl" method="post"> >+ <input type="hidden" name="op" value="finished" /> >+ <p><button class="btn btn-primary">Log into Koha staff intranet</button></p> >+ </form> >+ </div> >+ </div> >+ </div> >+</body> >+<script type="text/javascript"> >+ >+function openInfoTab(evt, tabName) { >+ // Declare all variable >+ var i, tabcontent, tablinks; >+ >+ // Get all elements with class="tabcontent" and hide them >+ tabcontent = document.getElementsByClassName("content"); >+ for (i = 0; i < tabcontent.length; i++) { >+ tabcontent[i].style.display = "none"; >+ } >+ >+ // Get all elements with class="tablinks" and remove the class "active" >+ tablinks = document.getElementsByClassName("tablinks"); >+ for (i = 0; i < tablinks.length; i++) { >+ tablinks[i].className = tablinks[i].className.replace(" active", ""); >+ } >+ >+ // Show the current tab, and add an "active" class to the button that opened the tab >+ document.getElementById(tabName).style.display = "block"; >+ evt.currentTarget.className += " active"; >+} >+ >+</script> >+ >+ >+[% INCLUDE 'intranet-bottom.inc' %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step3.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step3.tt >index 42f1295..d241474 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step3.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step3.tt >@@ -235,7 +235,7 @@ > [% END # / IF default %] > > [% IF ( updatestructure ) %] >- <h2>Updating database structure</h2> >+ <h2>Updating database structure from [%dbversion%] to [%kohaversion%]</h2> > [% IF ( has_update_succeeds ) %] > <p>Update report :</p> > <ul> >@@ -255,7 +255,8 @@ > [% UNLESS ( has_update_errors ) %] > <p>Everything went okay. Update done.</p> > [% END %] >- <p><a href="install.pl?step=3&op=finished" class="btn btn-primary">Continue to log in to Koha</a></p> >+ <p><a href="install.pl?step=3&op=featurereleasetool&dbversion=[%dbversion%]&kohaversion=[%kohaversion%]&update_report=[%update_report%]" class="btn btn-primary">Continue to feature release tool</a></p> >+ <p><a href="install.pl?step=3&op=finished&dbversion=[%dbversion%]" class="btn btn-primary">Skip feature release tool and login to Koha</a></p> > [% END # / IF updatestructure %] > </div> <!-- / #installer-step3 --> > </div> <!-- / .row --> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/koha-news.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/koha-news.tt >index dd1ae84..f62985e 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/koha-news.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/koha-news.tt >@@ -96,79 +96,9 @@ Edit news item[% ELSE %]Add news item[% END %][% ELSE %]News[% END %]</div> > [% IF ( op == 'add' ) %][% default_lang = lang %] > [% ELSE %][% default_lang = new_detail.lang %] > [% END %] >- <form name="add_form" method="post" action="/cgi-bin/koha/tools/koha-news.pl" > >- <input type="hidden" name="op" value="[% op %]" /> >- <input type="hidden" name="id" value="[% id %]" /> >- <fieldset class="rows"> >- <legend>OPAC and Koha news</legend> >- <ol> <li> >- <label for="lang">Display location:</label> >- <select id="lang" name="lang"> >- [% IF ( default_lang == "" ) %] >- <option value="" selected="selected">All</option> >- [% ELSE %] >- <option value="" >All</option> >- [% END %] >- [% IF ( default_lang == "koha" ) %] >- <option value="koha" selected="selected">Librarian interface</option> >- [% ELSE %] >- <option value="koha" >Librarian interface</option> >- [% END %] >- [% IF ( default_lang == "slip" ) %] >- <option value="slip" selected="selected">Slip</option> >- [% ELSE %] >- <option value="slip" >Slip</option> >- [% END %] >- [% FOREACH lang_lis IN lang_list %] >- [% IF ( lang_lis.language == default_lang ) %] >- <option value="[% lang_lis.language %]" selected="selected">OPAC ([% lang_lis.language %])</option> >- [% ELSE %] >- <option value="[% lang_lis.language %]" >OPAC ([% lang_lis.language %])</option> >- [% END %] >- [% END %] >- </select> >- </li> >- <li> >- <label for="branch">Library: </label> >- <select id="branch" name="branch"> >- [% IF ( new_detail.branchcode == '' ) %] >- <option value="" selected="selected">All libraries</option> >- [% ELSE %] >- <option value="" >All libraries</option> >- [% END %] >- [% PROCESS options_for_libraries libraries => Branches.all( selected => new_detail.branchcode, unfiltered => 1, ) %] >- </select> >- </li> >- <li> >- <label for="title" class="required">Title: </label> >- <input id="title" size="30" type="text" name="title" value="[% new_detail.title %]" required="required" class="required" /> <span class="required">Required</span> >- </li> >- <li> >- <label for="from">Publication date: </label> >- <input id="from" type="text" name="timestamp" size="15" value="[% new_detail.timestamp %]" class="datepickerfrom" /> >- <div class="hint">[% INCLUDE 'date-format.inc' %]</div> >- </li> >- <li> >- <label for="to">Expiration date: </label> >- <input id="to" type="text" name="expirationdate" size="15" value="[% new_detail.expirationdate %]" class="datepickerto" /> >- <div class="hint">[% INCLUDE 'date-format.inc' %]</div> >- </li> >- <li> >- <label for="number">Appear in position: </label> >- [% IF ( new_detail.number ) %] >- <input id="number" size="3" name="number" type="text" value="[% new_detail.number %]" /> >- [% ELSE %] >- <input id="number" size="3" name="number" type="text" /> >- [% END %] >- </li> >- <li><label for="content">News: </label> >- <textarea name="content" id="content" cols="75" rows="10">[% new_detail.content %]</textarea> >- </li> >- </ol> >- </fieldset> >- >- <fieldset class="action"><input class="button" type="submit" value="Submit" /> <a class="cancel" href="/cgi-bin/koha/tools/koha-news.pl">Cancel</a></fieldset> >- </form> >+ >+ [% INCLUDE 'newsform.inc' %] >+ > [% ELSE %] > <div style="margin-bottom:5px;"> > <form name="add_form" method="post" action="/cgi-bin/koha/tools/koha-news.pl" > >diff --git a/mainpage.pl b/mainpage.pl >index c1df82b..cb3b907 100755 >--- a/mainpage.pl >+++ b/mainpage.pl >@@ -89,6 +89,22 @@ $template->param( > # > unless ($loggedinuser) { > $template->param(adminWarning => 1); >+} else { >+ my $patron_has_flags = Koha::Patron->check_if_patrons_have_flags(); >+ if ($patron_has_flags) { >+ my $featuretoolrequired = C4::Auth->check_feature_tool_required(); >+ if ($featuretoolrequired) { >+ my $kohaversion = Koha::version(); >+ my $dbh = C4::Context->dbh; >+ my $dbquery = qq| >+ SELECT value FROM systempreferences WHERE variable="PreviousVersion" |; >+ my $sth = $dbh->prepare($dbquery); >+ $sth->execute(); >+ my $dbversion = $sth->fetchrow; >+ print $query->redirect("/cgi-bin/koha/installer/featurereleasetool.pl?dbversion=$dbversion&kohaversion=$kohaversion"); >+ exit; >+ } >+ } > } > > output_html_with_http_headers $query, $cookie, $template->output; >diff --git a/tools/koha-news.pl b/tools/koha-news.pl >index 61c3ec6..2515884 100755 >--- a/tools/koha-news.pl >+++ b/tools/koha-news.pl >@@ -83,8 +83,10 @@ foreach my $language ( @$tlangs ) { > } > } > >+my $location = "intranet"; > $template->param( lang_list => \@lang_list, >- branchcode => $branchcode ); >+ branchcode => $branchcode, >+ location => $location ); > > my $op = $cgi->param('op') // ''; > >-- >2.1.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 18645
:
68150
|
68151
|
68152
|
68153
|
68154
|
69470
|
69471
|
86420
|
87039