Bug 19108: Fix Stored XSS in biblio_framework.pl and marctagstructure.pl
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / admin / systempreferences.tt
index d9d0a5c..4f8f511 100644 (file)
@@ -1,7 +1,26 @@
+[% USE Koha %]
 [% INCLUDE 'doc-head-open.inc' %]
 <title>Koha &rsaquo; Administration &rsaquo; [% IF ( add_form ) %] System preferences &rsaquo; [% IF ( modify ) %]Modify system preference '[% searchfield %]'[% ELSE %]Add a system preference[% END %][% END %][% IF ( add_validate ) %] System preferences &rsaquo; Data added[% END %]
 [% IF ( delete_confirm ) %] System preferences &rsaquo; [% searchfield %] &rsaquo; Confirm deletion of parameter '[% searchfield %]'[% END %][% IF ( delete_confirmed ) %] System preferences &rsaquo; Parameter deleted[% END %][% IF ( else ) %]System preferences[% END %]</title>
 [% INCLUDE 'doc-head-close.inc' %]
+[%# Add WYSIWYG editor for htmlarea system preferences %]
+[% INCLUDE 'wysiwyg-systempreferences.inc' %]
+[% IF ( else ) %]
+<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" />
+[% INCLUDE 'datatables.inc' %]
+<script type="text/javascript">
+    //<![CDATA[
+     $(document).ready(function() {
+        [% IF ( loop ) %]$("#sysprefst").dataTable($.extend(true, {}, dataTablesDefaults, {
+            "sDom": '<"top pager"ilf>t',
+            "aoColumnDefs": [
+                { "aTargets": [ -1, -2, -3 ], "bSortable": false }
+            ],
+            "bPaginate": false
+        }));[% END %]
+     });
+</script>
+[% END %]
 <script type="text/javascript">
 //<![CDATA[
 [% IF ( add_form ) %]
             return true;
         }
         //
-        function toUC(f) {
-            var x=f.value.toUpperCase();
-            f.value=x;
-            return true;
-        }
-        //
         function isNum(v,maybenull) {
         var n = new Number(v.value);
         if (isNaN(n)) {
         return true;
         }
         //
-        function isDate(f) {
-            var t = Date.parse(f.value);
-            if (isNaN(t)) {
-                return false;
-            }
-        }
-        //
         function Check(f) {
             var ok=1;
             var _alertString="";
                 return false;
             } ).nextAll( 'textarea, input[type=submit]' ).hide();
         } );
+
         //]]>
 </script>
 </head>
 <body id="admin_systempreferences" class="admin">
 [% INCLUDE 'header.inc' %]
-[% INCLUDE 'sysprefs-admin-search.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; [% IF ( add_form ) %] <a href="/cgi-bin/koha/admin/systempreferences.pl">System preferences</a> &rsaquo; [% IF ( modify ) %]Modify system preference '[% searchfield %]'[% ELSE %]Add a system preference[% END %][% END %][% IF ( add_validate ) %] <a href="/cgi-bin/koha/admin/systempreferences.pl">System preferences</a> &rsaquo; Data added[% END %]
 [% IF ( delete_confirm ) %] <a href="/cgi-bin/koha/admin/systempreferences.pl">System Preferences</a> &rsaquo; <a href="/cgi-bin/koha/admin/systempreferences.pl?op=add_form&amp;searchfield=[% searchfield %]">[% searchfield %]</a> &rsaquo; Confirm deletion of parameter '[% searchfield %]'[% END %][% IF ( delete_confirmed ) %] <a href="/cgi-bin/koha/admin/systempreferences.pl">System preferences</a> &rsaquo; Parameter deleted[% END %][% IF ( else ) %]System preferences[% END %]</div>
                     <textarea id="value" name="value" cols="[% fieldlength %]">[% value |html %]</textarea>
                 [% ELSIF ( type_upload ) %]
                     <input type="file" name="value" />
-                [% ELSIF ( type_textarea ) %]
+                [% ELSIF ( type_textarea || type_htmlarea ) %]
+                    [% IF ( type_htmlarea ) && ( Koha.Preference('UseWYSIWYGinSystemPreferences') ) %]
+                        <textarea class="mce" name="value" id="value" rows="[% rows %]" cols="[% cols %]">[% value |html %]</textarea>
+                    [% ELSE %]
                     <textarea name="value" id="value" rows="[% rows %]" cols="[% cols %]">[% value |html %]</textarea>
+                    [% END %]
                 [% ELSIF ( type_choice ) %]
                     <select name="value" id="value">
                         [% FOREACH option IN options %]
         
         <fieldset class="brief">
         <legend>Koha internal</legend>
-        <div class="hint">Note: you should have no reasons to modify the following default values</div>
+        <div class="hint">Note: change the variable type to one of the dropdown values as needed</div>
         <ol>
         <li><label for="preftype">Variable type:</label>
-        <div class="hint"> (<span class="variabletype" id="Choice">Choice</span>, <span class="variabletype" id="YesNo">YesNo</span>, <span class="variabletype" id="Integer">Integer</span>, <span class="variabletype" id="Textarea">Textarea</span>, <span class="variabletype" id="Float">Float</span>, <span class="variabletype" id="Themes">Themes</span>, <span class="variabletype" id="Languages">Languages</span>, <span class="variabletype" id="Upload">Upload</span> or <span class="variabletype" id="ClassSources">ClassSources</span>)</div>
-        <input type="text" name="preftype" id="preftype" value="[% preftype %]" size="40" maxlength="40" /></li>
+        <select name="preftype" id="preftype">
+        [%- IF (preftype && preftype == 'Free') || !preftype -%]
+            <option value="Free" selected>Free</option>
+        [%- ELSE -%]
+            <option value="Free">Free</option>
+        [% END %]
+        [%- IF (preftype && preftype == 'Choice') -%]
+            <option value="Choice" selected>Choice</option>
+        [%- ELSE -%]
+            <option value="Choice">Choice</option>
+        [% END %]
+        [%- IF (preftype && preftype == 'YesNo') -%]
+            <option value="YesNo" selected>YesNo</option>
+        [%- ELSE -%]
+            <option value="YesNo">YesNo</option>
+        [% END %]
+        [%- IF (preftype && preftype == 'Integer') -%]
+            <option value="Integer" selected>Integer</option>
+        [%- ELSE -%]
+            <option value="Integer">Integer</option>
+        [% END %]
+        [%- IF (preftype && preftype == 'Textarea') -%]
+            <option value="Textarea" selected>Textarea</option>
+        [%- ELSE -%]
+            <option value="Textarea">Textarea</option>
+        [% END %]
+        [%- IF (preftype && preftype == 'Htmlarea') -%]
+            <option value="Htmlarea" selected>Htmlarea</option>
+        [%- ELSE -%]
+            <option value="Htmlarea">Htmlarea</option>
+        [% END %]
+        [%- IF (preftype && preftype == 'Float') -%]
+            <option value="Float" selected>Float</option>
+        [%- ELSE -%]
+            <option value="Float">Float</option>
+        [% END %]
+        [%- IF (preftype && preftype == 'Themes') -%]
+            <option value="Themes" selected>Themes</option>
+        [%- ELSE -%]
+            <option value="Themes">Themes</option>
+        [% END %]
+        [%- IF (preftype && preftype == 'Languages') -%]
+            <option value="Languages" selected>Languages</option>
+        [%- ELSE -%]
+            <option value="Languages">Languages</option>
+        [% END %]
+        [%- IF (preftype && preftype == 'Upload') -%]
+            <option value="Upload" selected>Upload</option>
+        [%- ELSE -%]
+            <option value="Upload">Upload</option>
+        [% END %]
+        [%- IF (preftype && preftype == 'ClassSources') -%]
+            <option value="ClassSources" selected>ClassSources</option>
+        [%- ELSE -%]
+            <option value="ClassSources">ClassSources</option>
+        [% END %]
+        </select>
         <li><label for="prefoptions">Variable options:</label>
         <div class="hint">(a choice list for choice (separated by |) or cols|rows for texarea)</div>
         <input type="text" name="prefoptions" id="prefoptions" value="[% prefoptions %]" size="60" maxlength="80" /></li>
     [% END %]
    
     [% IF ( else ) %]
-    
-    <div id="toolbar">
-    <script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.tablesorter.min.js"></script>
-    <script type="text/javascript">
-    //<![CDATA[
-    // prepare DOM for YUI Toolbar
-     $(document).ready(function() {
-        yuiToolbar();
-        [% IF ( loop ) %]$("#sysprefst").tablesorter({
-            sortList: [[0,0]],
-            headers: { 1: {sorter:false},2: { sorter: false },3: { sorter: false },4: { sorter: false }}
-        });[% END %]
-     });
-    // YUI Toolbar Functions
-    function yuiToolbar() {
-        new YAHOO.widget.Button("newstopword");
-    }   //]]>
-    </script>
-    <ul class="toolbar">
-        <li><a id="newstopword" href="[% script_name %]?op=add_form">New preference</a></li>
-    </ul></div>
-    
-    <h1>System preferences admin</h1>
-    <h2>[% tab %] preferences</h2>
-    [% searchfield %]
-    <table width="80%" id="sysprefst">
-    <thead><tr>
+
+    <div id="toolbar" class="btn-toolbar">
+        <a class="btn btn-default btn-sm" id="newstopword" href="[% script_name %]?op=add_form"><i class="fa fa-plus"></i> New preference</a>
+    </div>
+
+    [% IF ( tab != 'local_use' ) %]
+        <p>Please click on one of the tabs at the left side of this form.</p>
+        <table>
+    [% ELSE %]
+        <h1>Local use preferences</h1>
+        <table width="80%" id="sysprefst">
+        <thead><tr>
         <th>Preference</th>
         <th>Explanation</th>
         <th>Value</th>
-        <th>Edit</th>
-        <th>Delete</th>
-    </tr></thead>
+        <th>Actions</th>
+        </tr></thead>
+    [% END %]
     <tbody>[% FOREACH loo IN loop %]
-    [% UNLESS ( loop.odd ) %]<tr class="highlight">[% ELSE %]<tr>[% END %]
+        <tr>
 
         <td><strong><a href="[% loo.edit %]">[% loo.variable %]</a></strong></td><td> [% loo.explanation |html %]</td>
         [% IF ( loo.oneline ) %]
                 [% IF ( loo.type_upload ) %]
                 <input type="file" name="value" value="[% loo.value |html %]" />
                 [% END %]
-                [% IF ( loo.type_textarea ) %]
-                <a class="expand-textarea" style="display: none" href="#">Click to edit</a>
-                <textarea name="value" rows="[% loo.rows %]" cols="[% loo.cols %]">[% loo.value |html %]</textarea>
+                [% IF ( loo.type_textarea ) || ( loo.type_htmlarea ) %]
+                    [% IF ( loo.type_htmlarea ) && ( Koha.Preference('UseWYSIWYGinSystemPreferences') ) %]
+                        <textarea class="mce" name="value" rows="[% loo.rows %]" cols="[% loo.cols %]">[% loo.value |html %]</textarea>
+                    [% ELSE %]
+                        <a class="expand-textarea" style="display: none" href="#">Click to edit</a>
+                        <textarea name="value" rows="[% loo.rows %]" cols="[% loo.cols %]">[% loo.value |html %]</textarea>
+                    [% END %]
                 [% END %]
                 [% IF ( loo.type_choice ) %]
                 <select name="value">
                 <input type="hidden" name="prefoptions" value="[% loo.prefoptions |html %]" />
                 <input type="hidden" name="preftype" value="[% loo.type %]" />
                 <input type="hidden" name="explanation" value="[% loo.explanation |html %]" />
-                <input type="submit" value="Save" />
+                <button type="submit" class="btn btn-default btn-xs"><i class="fa fa-save"></i> Save</button>
             </form>
         </td>
 
-        <td><a href="[% loo.edit %]">Edit </a></td>
-        <td><a href="[% loo.delete %]">Delete</a></td>
+        <td class="actions"><a class="btn btn-default btn-xs" href="[% loo.edit %]"><i class="fa fa-pencil"></i> Edit</a> <a class="btn btn-default btn-xs" href="[% loo.delete %]"><i class="fa fa-trash"></i> Delete</a></td>
     </tr>
     [% END %]</tbody>
     </table>