Koha/koha-tmpl/intranet-tmpl/prog/en/modules/admin/didyoumean.tt
Julian Maurice ed7543287b Bug 20538: Remove the need of writing [% KOHA_VERSION %] everywhere
Having to write [% KOHA_VERSION %] for each url is bad because:
- It's easily forgettable when adding new <script> or <link>
- It prevents grep'ing for the full filename
- It violates the DRY principle
- If at some point we want to change the "force js and css reload"
  mechanism, it will be tedious

This patch:
- adds a Template::Toolkit plugin that generates <script> and
  <link> tags for JS and CSS files, and inserts automatically the Koha
  version in the filename
- use the new plugin to remove all occurences of [% KOHA_VERSION %]
- remove the code that was adding KOHA_VERSION as a template variable

Test plan:
1. Apply patch
2. Go to several different pages in Koha (opac and intranet) while
   checking your browser's dev tools (there should be no 404 for JS and
   CSS files, and the Koha version should appear in filenames) and the
   server logs (there should be no "File not found")
3. `git grep KOHA_VERSION` should return nothing
4. prove t/db_dependent/Koha/Template/Plugin/Asset.t

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2018-04-13 11:49:44 -03:00

120 lines
5.1 KiB
Text

[% USE Asset %]
[% SET footerjs = 1 %]
[% BLOCK pluginlist %]
<div class="pluginlist">
[% FOREACH plugin IN plugins %]
<div class="plugin">
<div class="pluginname">
[% IF plugin.enabled %]<input type="checkbox" checked="checked" id="checkbox_[% type %][% plugin.name %]">[% ELSE %]<input type="checkbox" id="checkbox_[% type %][% plugin.name %]">[% END %]
<label class='pluginlabel' for="checkbox_[% type %][% plugin.name %]">[% plugin.name %]</label></div>
<div class="plugindesc">
[% SWITCH plugin.name %]
[% CASE 'AuthorityFile' %]
Suggest authorities which are relevant to the term the user searched for.
[% CASE 'ExplodedTerms' %]
Suggest that patrons expand their searches to include
broader/narrower/related terms.
[% END %]
</div>
</div>
[% END %]
</div>
[% END %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Administration &rsaquo; Did you mean?</title>
[% INCLUDE 'doc-head-close.inc' %]
</head>
<body id="admin_didyoumean" class="admin">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'prefs-admin-search.inc' %]
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> &rsaquo; Did you mean?</div>
<div id="doc3" class="yui-t2">
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<h3>Did you mean?</h3>
<noscript><div class="dialog alert"><strong>Please enable Javascript:</strong>
Configuring 'Did you mean?' plugins requires Javascript. If
you are unable to use Javascript, you may be able to enter the
configuration (which is stored in JSON in the OPACdidyoumean and
INTRAdidyoumean system preferences) in the Local Preferences tab in
the system preference editor, but this is unsupported, not
recommended, and likely will not work.</div></noscript>
<div id="didyoumeanlegend">
Please put the 'Did you mean?' plugins in order by significance, from
most significant to least significant, and check the box to enable those
plugins that you want to use. (NOTE: 'Did you mean?' functionality
is not yet enabled on the staff client)
</div>
<form action="/cgi-bin/koha/admin/didyoumean.pl" method="post">
<fieldset id="didyoumeanopac">
<legend>OPAC</legend>
[% PROCESS pluginlist plugins=OPACpluginlist type='opac' %]
</fieldset>
<fieldset id="didyoumeanintranet">
<legend>Intranet</legend>
[% PROCESS pluginlist plugins=INTRApluginlist type='intranet' %]
</fieldset>
<fieldset class="action"><button class="save-all submit" type="submit">Save configuration</button> <a href="/cgi-bin/koha/admin/didyoumean.pl" class="force_reload cancel">Cancel</a></fieldset>
</form>
</div>
</div>
<div class="yui-b">
[% INCLUDE 'admin-menu.inc' %]
</div>
</div>
[% MACRO jsinclude BLOCK %]
[% Asset.js("js/admin-menu.js") %]
<script type="text/javascript">
$(document).ready(function() {
$( ".pluginlist" ).sortable();
$( ".plugin" ).addClass( "ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" )
.find( ".pluginname" )
.addClass( "ui-widget-header ui-corner-all" )
.end()
.find( ".plugindesc" );
$(".save-all").on("click",function(e){
e.preventDefault();
yesimeant();
});
$(".force_reload").on("click",function(e){
e.preventDefault();
window.location.reload(true);
});
});
function yesimeant() {
var OPACdidyoumean = serialize_plugins('opac');
var INTRAdidyoumean = serialize_plugins('intranet');
var data = "pref_OPACdidyoumean=" + encodeURIComponent(OPACdidyoumean) + "&pref_INTRAdidyoumean=" + encodeURIComponent(INTRAdidyoumean);
$.ajax({
data: data,
type: 'POST',
url: '/cgi-bin/koha/svc/config/systempreferences/',
success: function () { alert(_("Successfully saved configuration")); },
});
return false;
}
function serialize_plugins(interface) {
var serializedconfig = '[';
$('#didyoumean' + interface + ' .pluginlist .plugin').each(function(index) {
var name = $(this).find('.pluginlabel').text();
var enabled = $(this).find('input:checkbox:checked').length ?
', "enabled": 1' : '';
serializedconfig += '{ "name": "' + name + '"' + enabled + '}, ';
});
serializedconfig = serializedconfig.substring(0, serializedconfig.length - 2);
serializedconfig += ']';
return serializedconfig;
}
</script>
[% END %]
[% INCLUDE 'intranet-bottom.inc' %]