From f9424a8490fc48f3579fd5410aef50e6fabae626 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Wed, 10 Sep 2014 11:55:44 -0400 Subject: [PATCH] Bug 12904 - Force browser to load new javascript files after upgrade A common issue with Koha seems to be that the web browsers continue to use cached js files after an upgrade. If we append the version as a parameter, we can force the browser to update the javascript files. 1) Apply this patch on a new branch based on master. 2) In a separate branch check out a previous version of Koha and go through the installation process on an empty database. 3) After logging into Koha, turn on Firebug's Net panel (or Chrome's Network panel) and turn on the filter for JavaScript files. 4) Clear the browser cache and navigate to a page, for instance Circulation. In Firebug the Net panel should show a status of "200 OK" for all files, indicating that the file was downloaded, not loaded from the cache. In Chrome the "size" column will show a file size if the file was downloaded. 5) Navigate to another page and confirm that scripts are being loaded from the cache: Scripts like jquery.js and jquery-ui.js which are loaded on every page should have a status in the Firebug Net panel of "304 Not Modified." In Chrome the "size" columns should show "from cache." 6) Check out the branch you created for testing this patch. 7) In order to preserve the state of your browser cache for accurate testing, open a different browser from the one you were previously testing with, load Koha, and run through the database update. 8) Return to your original testing browser and navigate to another Koha page. Firebug's Net panel should show that script files are now being downloaded with a "koha_version" query string. These files should have a status of "200 OK" indicating that they are being downloaded, not loaded from the cache. 9) Navigate to another page and conifrm that the new versions of the scripts are being loaded from the cache. To confirm that all affected JavaScripts links are working correctly, test these pages by checking the Firebug Net panel for errors: - Administration -> Currencies and exchange rates (jquery.dataTables.colvis.js) - Tools -> Stage MARC records for import (ajaxfileupload.js) or another page which performs a file upload. - Catalog -> Detail page -> MARC Preview (greybox JS) - Help -> Any help page - Any page which loads DataTables (Circulation in the staff client, for instance, and a title's detail page in the OPAC) - Bonus points if you check the various conditional JS includes controlled by the many OPAC feature preferences --- debian/templates/apache-shared-intranet.conf | 1 + debian/templates/apache-shared-opac.conf | 1 + etc/koha-httpd.conf | 1 + .../prog/en/includes/columns_settings.inc | 2 ++ .../intranet-tmpl/prog/en/includes/datatables.inc | 6 ++-- .../prog/en/includes/doc-head-close.inc | 29 +++++++++-------- .../intranet-tmpl/prog/en/includes/greybox.inc | 8 +++-- .../intranet-tmpl/prog/en/includes/help-top.inc | 10 +++--- .../opac-tmpl/bootstrap/en/includes/datatables.inc | 6 ++-- .../bootstrap/en/includes/doc-head-close.inc | 9 ++++-- .../bootstrap/en/includes/opac-bottom.inc | 37 +++++++++++----------- 11 files changed, 64 insertions(+), 46 deletions(-) diff --git a/debian/templates/apache-shared-intranet.conf b/debian/templates/apache-shared-intranet.conf index 04bab25..37f86d0 100644 --- a/debian/templates/apache-shared-intranet.conf +++ b/debian/templates/apache-shared-intranet.conf @@ -17,3 +17,4 @@ RewriteRule (.+) $1?%1%2 [N,R,NE] RewriteRule ^/bib/([^\/]*)/?$ /cgi-bin/koha/detail\.pl?bib=$1 [PT] RewriteRule ^/isbn/([^\/]*)/?$ /search?q=isbn:$1 [PT] RewriteRule ^/issn/([^\/]*)/?$ /search?q=issn:$1 [PT] +RewriteRule ^(.*)_(.*).js$ $1.js [R=301,N,L] diff --git a/debian/templates/apache-shared-opac.conf b/debian/templates/apache-shared-opac.conf index 42715c8..4cc58a2 100644 --- a/debian/templates/apache-shared-opac.conf +++ b/debian/templates/apache-shared-opac.conf @@ -17,3 +17,4 @@ RewriteRule (.+) $1?%1%2 [N,R,NE] RewriteRule ^/bib/([^\/]*)/?$ /cgi-bin/koha/opac-detail\.pl?bib=$1 [PT] RewriteRule ^/isbn/([^\/]*)/?$ /search?q=isbn:$1 [PT] RewriteRule ^/issn/([^\/]*)/?$ /search?q=issn:$1 [PT] +RewriteRule ^(.*)_(.*).js$ $1.js [R=301,N,L] diff --git a/etc/koha-httpd.conf b/etc/koha-httpd.conf index 32cdf0a..c9f5be8 100644 --- a/etc/koha-httpd.conf +++ b/etc/koha-httpd.conf @@ -112,6 +112,7 @@ RewriteRule ^/bib/([^\/]*)/?$ /cgi-bin/koha/opac-detail\.pl?bib=$1 [PT] RewriteRule ^/isbn/([^\/]*)/?$ /search?q=isbn:$1 [PT] RewriteRule ^/issn/([^\/]*)/?$ /search?q=issn:$1 [PT] + RewriteRule ^(.*)_(.*).js$ $1.js [R=301,N,L] # REST API configuration Alias "/api" "__OPAC_CGI_DIR__/api" diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/columns_settings.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/columns_settings.inc index 3fed1bc..33b6e55 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/columns_settings.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/columns_settings.inc @@ -1,3 +1,5 @@ +[% USE Koha %] +[% SET KOHA_VERSION = Koha.Preference('Version') %] [% USE ColumnsSettings %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/datatables.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/datatables.inc index 590fae5..1a24c63 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/datatables.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/datatables.inc @@ -1,5 +1,7 @@ +[% USE Koha %] +[% SET KOHA_VERSION = Koha.Preference('Version') %] [% INCLUDE 'format_price.inc' %] - + - + diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/doc-head-close.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/doc-head-close.inc index b47e9dd..d056449 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/doc-head-close.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/doc-head-close.inc @@ -1,6 +1,7 @@ [% USE Koha %] [% USE AudioAlerts %] [% USE String %] +[% SET KOHA_VERSION = Koha.Preference('Version') %] @@ -9,15 +10,17 @@ [% INCLUDE intranetstylesheet.inc %] -[% IF ( bidi ) %][% END %] - - - - - - - - +[% IF ( bidi ) %] + +[% END %] +[% IF ( IntranetUserCSS ) %][% END %] + + + + + + + [% IF ( login ) %] @@ -25,8 +28,7 @@ [% IF ( IntranetUserCSS ) %][% END %] - - + [% INCLUDE 'validator-strings.inc' %] [% IF ( IntranetUserJS ) %] - - + [% END %] [% IF LocalCoverImages %] - + - - - + + + diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/help-top.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/help-top.inc index fbcd178..4fbf21e 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/help-top.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/help-top.inc @@ -1,3 +1,5 @@ +[% USE Koha %] +[% SET KOHA_VERSION = Koha.Preference('Version') %] [% INCLUDE 'doc-head-open.inc' %] Online help @@ -8,11 +10,11 @@ [% IF ( bidi ) %] [% END %] - - - + + + - + diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/datatables.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/datatables.inc index d3075c9..62db32c 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/datatables.inc +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/datatables.inc @@ -1,4 +1,6 @@ - +[% USE Koha %] +[% SET KOHA_VERSION = Koha.Preference('Version') %] + - \ No newline at end of file + diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/doc-head-close.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/doc-head-close.inc index e346689..f33994c 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/doc-head-close.inc +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/doc-head-close.inc @@ -1,3 +1,6 @@ +[% USE Koha %] +[% SET KOHA_VERSION = Koha.Preference('Version') %] + @@ -40,12 +43,12 @@ [% IF ( OPACUserCSS ) %][% END %] [% PROCESS cssinclude %] - + - + diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-bottom.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-bottom.inc index 63c562f..86c84e0 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-bottom.inc +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-bottom.inc @@ -1,3 +1,5 @@ +[% USE Koha %] +[% SET KOHA_VERSION = Koha.Preference('Version') %] [% UNLESS ( is_popup ) %] [% SET OpacLangSelectorMode = Koha.Preference('OpacLangSelectorMode') %] [% IF ( opaccredits ) %] @@ -77,24 +79,24 @@ - - + + - - + + - + [% END %] - [% IF Koha.Preference( 'opacbookbag' ) == 1 %] - + [% ELSIF ( Koha.Preference( 'virtualshelves' ) == 1 ) %] - + [% ELSE %] [% END %] -[% IF Koha.Preference( 'opacuserlogin' ) == 1 %][% IF Koha.Preference( 'TagsEnabled' ) == 1 %][% END %][% ELSE %][% END %] +[% IF Koha.Preference( 'opacuserlogin' ) == 1 %][% IF Koha.Preference( 'TagsEnabled' ) == 1 %][% END %][% ELSE %][% END %] [% IF ( GoogleJackets ) %] - + + + + - + [% END %] [% IF persona %] - +