+[% USE raw %]
+[% USE Asset %]
+[% USE Koha %]
+[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha › Administration › System preferences</title>
[% INCLUDE 'doc-head-close.inc' %]
-<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.tablesorter.min.js"></script>
-<link rel="stylesheet" type="text/css" href="[% themelang %]/css/preferences.css" />
-<link rel="stylesheet" type="text/css" href="[% themelang %]/css/humanmsg.css" />
-<script src="[% themelang %]/lib/jquery/plugins/humanmsg.js" type="text/javascript"></script>
-<script src="[% themelang %]/js/ajax.js" type="text/javascript"></script>
-<script type="text/javascript">
-//<![CDATA[
- // This is here because of its dependence on template variables, everything else should go in js/pages/preferences.js - jpw
- var to_highlight = "[% searchfield |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]";
- var search_jumped = [% IF ( search_jumped ) %]true[% ELSE %]false[% END %];
- var MSG_NOTHING_TO_SAVE = _("Nothing to save");
- var MSG_SAVING = _("Saving...");
- var MSG_MODIFIED = _("modified");
- var MSG_MADE_CHANGES = _("You have made changes to system preferences.");
- var MSG_CLICK_TO_EXPAND = _("Click to expand this section");
- var MSG_CLICK_TO_COLLAPSE = _("Click to collapse this section");
-//]]>
-</script>
-<script src="[% themelang %]/js/pages/preferences.js" type="text/javascript"></script>
-<script src="[% themelang %]/lib/jquery/plugins/jquery.highlight-3.js" type="text/javascript"></script>
+[% Asset.css("css/datatables.css") | $raw %]
+[% Asset.css("css/preferences.css") | $raw %]
+[% Asset.css("lib/jquery/plugins/multiple-select/multiple-select.css") | $raw %]
+[% Asset.css("css/humanmsg.css") | $raw %]
</head>
<body id="admin_preferences" class="admin">
[% INCLUDE 'header.inc' %]
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> › System preferences</div>
-<div id="doc3" class="yui-t2">
-
- <div id="bd">
- <div id="yui-main">
- <div class="yui-b">
+<div class="main container-fluid">
+ <div class="row">
+ <div class="col-sm-10 col-sm-push-2">
+ <main>
[% IF ( jump_not_found ) %]
<h2>System preferences</h2>
<div class="dialog alert">
- Could not find a system preference named <code>[% jumpfield %]</code>.
+ Could not find a system preference named <code>[% jumpfield | html %]</code>.
</div>
[% END %]
[% IF ( search_not_found ) %]
<div class="dialog alert">
- No system preferences matched your search for <strong>[% searchfield |html %]</strong>. You can try a different search or <a href="/cgi-bin/koha/admin/preferences.pl?tab=[% last_tab %]">return to where you were before.</a>
+ 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>
+ <h2>[% TAB.tab_title | html %] 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 | html %] preferences</button></div>[% END %]
<input type="hidden" name="op" value="save" />
- <input type="hidden" name="tab" value="[% TAB.tab %]" />
+ <input type="hidden" name="tab" value="[% TAB.tab_id | html %]" />
[% FOREACH LINE IN TAB.LINES %]
[% IF ( LINE.is_group_title ) %]
[% UNLESS ( loop.first ) %]</tbody></table>[% END %]
- <h3>[% LINE.title %]</h3>
+ <h3>[% LINE.title | html %]</h3>
<table class="preferences">
<thead><tr><th>Preference</th><th>Value</th></tr></thead>
[% UNLESS ( loop.last ) %]<tbody>[% END %]
<td class="name-cell">
<code>
[% FOREACH NAME IN LINE.NAMES %]
- <label for="pref_[% NAME.name %]">
+ <label for="pref_[% NAME.name | html %]">
[% IF ( NAME.jumped ) %]
- <span class="term" id="jumped">[% NAME.name %]</span>
+ <span class="term" id="jumped">[% NAME.name | html %]</span>
[% ELSIF ( NAME.highlighted ) %]
- <span class="term">[% NAME.name %]</span>
+ <span class="term">[% NAME.name | html %]</span>
[% ELSE %]
- [% NAME.name %]
+ [% NAME.name | html %]
[% END %]
+
+ [% IF NAME.overridden %]
+ <span class="overridden" title="The system preference [% NAME.name | html %] 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>
+ <td><div>
[% FOREACH CHUNK IN LINE.CHUNKS %]
[% IF ( CHUNK.type_text ) %]
- [% CHUNK.contents %]
+ [% CHUNK.contents | $raw %]
[% 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 %]" autocomplete="off" /> [% IF ( CHUNK.dateinput ) %]<span class="hint">[% INCLUDE 'date-format.inc' %]</span>[% END %]
+ <input type="[%IF CHUNK.input_type %][% CHUNK.input_type | html %][% ELSE %]text[% END %]" name="pref_[% CHUNK.name | html %]" id="pref_[% CHUNK.name | html %]" class="preference preference-[% CHUNK.class or "short" | html %]" value="[% CHUNK.value | html %]" autocomplete="off" /> [% IF ( CHUNK.dateinput ) %]<span class="hint">[% INCLUDE 'date-format.inc' %]</span>[% END %]
[% 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 %]
+ <select name="pref_[% CHUNK.name | html %]" id="pref_[% CHUNK.name | html %]" class="preference preference-[% CHUNK.class or "choice" | html %]">
+ [% FOREACH CHOICE IN CHUNK.CHOICES.sort('value') %]
[% IF ( CHOICE.selected ) %]
- <option value="[% CHOICE.value %]" selected="selected">
+ <option value="[% CHOICE.value | html %]" selected="selected">
[% ELSE %]
- <option value="[% CHOICE.value %]">
+ <option value="[% CHOICE.value | html %]">
[% END %]
- [% CHOICE.text %]
+ [% CHOICE.text | html %]
</option>
[% END %]
</select>
- [% ELSIF ( CHUNK.type_textarea ) %]
- <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>
+ [% ELSIF ( CHUNK.type_multiple ) %]
+ <select name="pref_[% CHUNK.name | html %]" id="pref_[% CHUNK.name | html %]" class="preference preference-[% CHUNK.class or "choice" | html %]" multiple="multiple">
+ [% FOREACH CHOICE IN CHUNK.CHOICES %][% IF ( CHOICE.selected ) %]<option value="[% CHOICE.value | html %]" selected="selected">[% ELSE %]<option value="[% CHOICE.value | html %]">[% END %][% CHOICE.text | html %]</option>[% END %]
+ </select>
+ [% ELSIF ( CHUNK.type_textarea ) || ( CHUNK.type_htmlarea )%]
+ [% IF ( CHUNK.type_htmlarea ) && ( Koha.Preference('UseWYSIWYGinSystemPreferences') ) %]
+ <textarea name="pref_[% CHUNK.name | html %]" id="pref_[% CHUNK.name | html %]" class="preference preference-[% CHUNK.class or "short" | html %] mce" rows="20" cols="60">[% CHUNK.value | html %]</textarea>
+ [% ELSE %]
+ <a class="expand-textarea" style="display: none" href="#">Click to Edit</a>
+ <textarea name="pref_[% CHUNK.name | html %]" id="pref_[% CHUNK.name | html %]" class="preference preference-[% CHUNK.class or "short" | html %]" rows="10" cols="40">[% CHUNK.value | html %]</textarea>
+ <a class="collapse-textarea" style="display:none" href="#">Click to collapse</br></a>
+ [% END %]
[% ELSIF ( CHUNK.type_languages ) %]
- <dl>
+ <dl class="sortable">
[% FOREACH language IN CHUNK.languages %]
+ <div>
[% IF ( language.plural ) %]
<dt>
- [% IF ( language.native_description ) %][% language.native_description %][% ELSE %][% language.rfc4646_subtag %][% END %]
+ [% IF ( language.native_description ) %][% language.native_description | html %][% ELSE %][% language.rfc4646_subtag | html %][% END %]
</dt>
[% FOREACH sublanguages_loo IN language.sublanguages_loop %]
<dd>
- <label for="[% 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>
+ <label for="pref_[% CHUNK.name | html %]_[% sublanguages_loo.rfc4646_subtag | html %]">[% sublanguages_loo.native_description | html %] [% sublanguages_loo.script_description | html %] [% sublanguages_loo.region_description | html %] [% sublanguages_loo.variant_description | html %]([% sublanguages_loo.rfc4646_subtag | html %])</label>
[% IF ( sublanguages_loo.enabled ) %]
- <input value="[% sublanguages_loo.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="[% sublanguages_loo.rfc4646_subtag %]" type="checkbox" checked="checked" class="preference preference-checkbox"/>
+ <input value="[% sublanguages_loo.rfc4646_subtag | html %]" name="pref_[% CHUNK.name | html %]" id="pref_[% CHUNK.name | html %]_[% sublanguages_loo.rfc4646_subtag | html %]" type="checkbox" checked="checked" class="preference preference-checkbox"/>
[% ELSE %]
- <input value="[% sublanguages_loo.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="[% sublanguages_loo.rfc4646_subtag %]" type="checkbox" class="preference preference-checkbox"/>
+ <input value="[% sublanguages_loo.rfc4646_subtag | html %]" name="pref_[% CHUNK.name | html %]" id="pref_[% CHUNK.name | html %]_[% sublanguages_loo.rfc4646_subtag | html %]" type="checkbox" class="preference preference-checkbox"/>
[% END %]
</dd>
[% END %]
[% ELSE %]
<dt>
- <label for="[% language.rfc4646_subtag %]">[% language.native_description %]([% language.rfc4646_subtag %])</label>
+ <label for="pref_[% CHUNK.name | html %]_[% language.rfc4646_subtag | html %]">[% language.native_description | html %]([% language.rfc4646_subtag | html %])</label>
[% IF ( language.group_enabled ) %]
- <input value="[% language.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="[% language.rfc4646_subtag %]" type="checkbox" checked="checked" class="preference preference-checkbox"/>
+ <input value="[% language.rfc4646_subtag | html %]" name="pref_[% CHUNK.name | html %]" id="pref_[% CHUNK.name | html %]_[% language.rfc4646_subtag | html %]" type="checkbox" checked="checked" class="preference preference-checkbox"/>
[% ELSE %]
- <input value="[% language.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="[% language.rfc4646_subtag %]" type="checkbox" class="preference preference-checkbox"/>
+ <input value="[% language.rfc4646_subtag | html %]" name="pref_[% CHUNK.name | html %]" id="pref_[% CHUNK.name | html %]_[% language.rfc4646_subtag | html %]" type="checkbox" class="preference preference-checkbox"/>
[% END %]
</dt>
[% END %]
+ </div>
[% END %]
</dl>
[% END %]
[% END %]
- </td>
+ </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="#" onclick="window.location.reload(true);" class="cancel">Cancel</a></fieldset>
+ <fieldset class="action"><button class="save-all submit" type="submit">Save all [% TAB.tab_title | html %] 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">
-[% INCLUDE 'prefs-menu.inc' %]
-</div>
-</div>
+
+ </main>
+ </div> <!-- /.col-sm-10.col-sm-push-2 -->
+
+ <div class="col-sm-2 col-sm-pull-10">
+ <aside>
+ [% INCLUDE 'prefs-menu.inc' %]
+ </aside>
+ </div> <!-- /.col-sm-2.col-sm-pull-10 -->
+ </div> <!-- /.row -->
+
+[% MACRO jsinclude BLOCK %]
+ [% INCLUDE 'datatables.inc' %]
+ [% Asset.js("lib/jquery/plugins/jquery.fixFloat.js") | $raw %]
+ [% Asset.js("lib/jquery/plugins/multiple-select/jquery.multiple.select.js") | $raw %]
+ <script>
+ [% UNLESS ( searchfield ) %]$(document).ready(function(){
+ $('#toolbar').fixFloat();
+ });[% END %]
+
+ $(document).ready(function(){
+ $("select[multiple='multiple']").multipleSelect( {
+ placeholder: _("Please select ..."),
+ selectAllText: _("Select all"),
+ allSelected: _("All selected"),
+ countSelected: _("# of % selected"),
+ noMatchesFound: _("No matches found")
+ } );
+ $(".force_reload").on("click",function(e){
+ e.preventDefault();
+ window.location.reload(true);
+ });
+ });
+ // This is here because of its dependence on template variables, everything else should go in js/pages/preferences.js - jpw
+ var to_highlight = "[% searchfield |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') | html %]";
+ var search_jumped = [% IF ( search_jumped ) %]true[% ELSE %]false[% END %];
+ var MSG_NOTHING_TO_SAVE = _("Nothing to save");
+ var MSG_SAVING = _("Saving...");
+ var MSG_SAVED_PREFERENCE = _("Saved preference %s");
+ var MSG_MODIFIED = _("modified");
+ var MSG_MADE_CHANGES = _("You have made changes to system preferences.");
+ var MSG_CLICK_TO_EXPAND = _("Click to expand this section");
+ var MSG_CLICK_TO_COLLAPSE = _("Click to collapse this section");
+ var MSG_INTERNAL_SERVER_ERROR = _( "Internal Server Error, please reload the page" );
+ var MSG_SESSION_TIMED_OUT = _( "You need to log in again, your session has timed out" );
+ var MSG_DATA_NOT_SAVED = _( "Error; your data might not have been saved" );
+ var MSG_LOADING = _( "Loading..." );
+ </script>
+ [% Asset.js("lib/jquery/plugins/humanmsg.js") | $raw %]
+ [% Asset.js("js/ajax.js") | $raw %]
+ [% Asset.js("js/pages/preferences.js") | $raw %]
+ [%# Add WYSIWYG editor for htmlarea system preferences %]
+ [% INCLUDE 'wysiwyg-systempreferences.inc' %]
+[% END %]
+
[% INCLUDE 'intranet-bottom.inc' %]