Bug 21526: Use the 'url' filter when needed
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / admin / patron-attr-types.tt
index 6fff8ab..1a43a50 100644 (file)
@@ -1,5 +1,9 @@
+[% USE raw %]
+[% USE Asset %]
+[% USE AuthorisedValues %]
+[% SET footerjs = 1 %]
 [% INCLUDE 'doc-head-open.inc' %]
-<title>Koha &rsaquo; Administration &rsaquo; Patron Attribute Types
+<title>Koha &rsaquo; Administration &rsaquo; Patron attribute types
 [% IF ( attribute_type_form ) %]
   [% IF ( edit_attribute_type ) %]
     &rsaquo; Modify patron attribute type
   [% END %]
 [% END %]
 [% IF ( delete_attribute_type_form ) %]
-  &rsaquo; Confirm deletion of patron attribute type &quot;[% code |html %]&quot;
+  &rsaquo; Confirm deletion of patron attribute type &quot;[% code | html %]&quot;
 [% END %]
 </title>
 [% INCLUDE 'doc-head-close.inc' %]
-
-<script type="text/javascript">
-//<![CDATA[
-
-function DoCancel(f) {
-  f.op.value='';
-  document.Aform.submit();
-}
-
-function CheckAttributeTypeForm(f) {
-    var ok=1;
-    var _alertString="";
-    var alertString2;
-    if (f.code.value.length==0) {
-        _alertString += "\n- " + _("Patron attribute type code missing");
-    }
-    if (f.description.value.length==0) {
-        _alertString += "\n- " + _("Description missing");
-    }
-    if (_alertString.length==0) {
-        document.Aform.submit();
-    } else {
-        alertString2  = _("Form not submitted because of the following problem(s)");
-        alertString2 += "\n------------------------------------------------------------------------------------\n";
-        alertString2 += _alertString;
-        alert(alertString2);
-    }
-}
-
-//]]>
-</script>
 </head>
+
 <body id="admin_patron-attr-types" class="admin">
 [% INCLUDE 'header.inc' %]
-[% INCLUDE 'cat-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 ( display_list ) %]Patron Attribute Types[% ELSE %]<a href="/cgi-bin/koha/admin/patron-attr-types.pl">Patron Attribute Types</a>[% END %]
+<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 ( display_list ) %]Patron attribute types[% ELSE %]<a href="/cgi-bin/koha/admin/patron-attr-types.pl">Patron attribute types</a>[% END %]
 [% IF ( attribute_type_form ) %]
   [% IF ( edit_attribute_type ) %]
     &rsaquo; Modify patron attribute type
@@ -57,15 +31,14 @@ function CheckAttributeTypeForm(f) {
   [% END %]
 [% END %]
 [% IF ( delete_attribute_type_form ) %]
-  &rsaquo; Confirm deletion of patron attribute type &quot;[% code |html %]&quot;
+  &rsaquo; Confirm deletion of patron attribute type &quot;[% code | html %]&quot;
 [% END %]
 </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 ( WARNING_extended_attributes_off ) %]
 <div class="dialog message">Because the 'ExtendedPatronAttributes` system preference is currently not enabled, extended patron attributes cannot be given to patron records.  Go <a href="/cgi-bin/koha/admin/preferences.pl?op=search&amp;searchfield=ExtendedPatronAttributes">here</a> if you wish to enable this feature.</div>
@@ -78,27 +51,28 @@ function CheckAttributeTypeForm(f) {
 <h2>Add patron attribute type</h2>
   [% END %]
 [% IF ( duplicate_code_error ) %]
-<div class="dialog message">Could not add patron attribute type &quot;[% duplicate_code_error %]&quot; 
+<div class="dialog message">Could not add patron attribute type &quot;[% duplicate_code_error | html %]&quot; 
     &mdash; one with that code already exists.
 </div>
 [% END %]
-<form action="[% script_name %]" name="Aform" method="post">
-  <input type="hidden" name="op" value="[% confirm_op %]" />
+<form action="[% script_name | html %]" class="validated" method="post">
+  <input type="hidden" name="op" value="[% confirm_op | html %]" />
   <fieldset class="rows">
     <ol>
       <li>
           [% IF ( edit_attribute_type ) %]
                  <span class="label">Patron attribute type code: </span>
-            <input type="hidden" name="code" value="[% code |html %]" />
-            [% code |html %]
+            <input type="hidden" name="code" value="[% code | html %]" />
+            [% code | html %]
           [% ELSE %]
-                 <label for="code">Patron attribute type code: </label>
-            <input type="text" id="code" name="code"  size="10" maxlength="10" />
+              <label for="code" class="required">Patron attribute type code: </label>
+              <input type="text" id="code" name="code" required="required" class="required" size="10" maxlength="10" />
+              <span class="required">Required</span>
           [% END %]
        </li>
-       <li><label for="description">Description: </label>
-           <input type="text" id="description" name="description" size="50" maxlength="250" 
-                  value="[% description |html %]" />
+       <li><label for="description" class="required">Description: </label>
+           <input type="text" id="description" name="description" required="required" class="required" size="50" maxlength="250" value="[% description | html %]" />
+           <span class="required">Required</span>
        </li>
        <li><label for="repeatable">Repeatable: </label>
             [% IF ( repeatable_checked ) %]
@@ -134,14 +108,6 @@ function CheckAttributeTypeForm(f) {
             <span>If checked, attribute will be a unique identifier &mdash; if a value is given to a patron record, the same value
                   cannot be given to a different record.  This setting cannot be changed after an attribute is defined.</span>
        </li>
-       <li><label for="password_allowed">Allow password: </label>
-          [% IF ( password_allowed_checked ) %]
-            <input type="checkbox" id="password_allowed" name="password_allowed" checked="checked" />
-          [% ELSE %]
-            <input type="checkbox" id="password_allowed" name="password_allowed" />
-          [% END %]
-            <span>Check to make it possible to associate a password with this attribute.</span>
-       </li>
        <li><label for="opac_display">Display in OPAC: </label>
           [% IF ( opac_display_checked ) %]
             <input type="checkbox" id="opac_display" name="opac_display" checked="checked" />
@@ -150,6 +116,14 @@ function CheckAttributeTypeForm(f) {
           [% END %]
             <span>Check to display this attribute on a patron's details page in the OPAC.</span>
        </li>
+       <li><label for="opac_editable">Editable in OPAC: </label>
+          [% IF ( opac_editable_checked ) %]
+            <input type="checkbox" id="opac_editable" name="opac_editable" checked="checked" />
+          [% ELSE %]
+            <input type="checkbox" id="opac_editable" name="opac_editable" />
+          [% END %]
+            <span>Check to allow patrons to edit this attribute from their details page in the OPAC. (Requires above, does not work with <a href="/cgi-bin/koha/admin/preferences.pl?op=search&amp;searchfield=PatronSelfRegistrationVerifyByEmail" target="_blank">PatronSelfRegistrationVerifyByEmail</a>.)</span>
+       </li>
        <li><label for="staff_searchable">Searchable: </label>
           [% IF ( staff_searchable_checked ) %]
             <input type="checkbox" id="staff_searchable" name="staff_searchable" checked="checked" />
@@ -170,133 +144,140 @@ function CheckAttributeTypeForm(f) {
         <li><label for="authorised_value_category">Authorized value category: </label>
             <select name="authorised_value_category" id="authorised_value_category">
                 <option value=""></option>
-                [% FOREACH authorised_value_categorie IN authorised_value_categories %]
-                    [% IF ( authorised_value_categorie.selected ) %]
-                        <option value="[% authorised_value_categorie.category %]" selected="selected">
-                            [% authorised_value_categorie.category %]
-                        </option>
-                    [% ELSE %]
-                        <option value="[% authorised_value_categorie.category %]">
-                            [% authorised_value_categorie.category %]
-                        </option>
-                    [% END %]
-                [% END %]
+                [% PROCESS options_for_authorised_value_categories authorised_value_categories => AuthorisedValues.GetCategories( selected => authorised_value_category ) %]
             </select>
             <span>Authorized value category; if one is selected, the patron record input page will only allow values 
                   to be chosen from the authorized value list.  However, an authorized value list is not 
                   enforced during batch patron import.</span>
         </li>
+        <li><label for="branches">Branches limitation: </label>
+            <select id="branches" name="branches" multiple size="10">
+                <option value="">All branches</option>
+                [% FOREACH branch IN branches_loop %]
+                  [% IF ( branch.selected ) %]
+                    <option selected="selected" value="[% branch.branchcode | html %]">[% branch.branchname | html %]</option>
+                  [% ELSE %]
+                    <option value="[% branch.branchcode | html %]">[% branch.branchname | html %]</option>
+                  [% END %]
+                [% END %]
+            </select>
+            <span>Select All if this attribute type must to be displayed all the time. Otherwise select libraries you want to associate with this value.
+            </span>
+        </li>
         <li>
             <label for="category">Category: </label>
             <select name="category_code" id="category">
                 <option value=""></option>
                 [% FOREACH cat IN categories %]
-                    [% IF ( cat.categorycode == category_code ) %]<option value="[% cat.categorycode %]" selected="selected">[% cat.description %]</option>[% ELSE %]<option value="[% cat.categorycode %]">[% cat.description %]</option>[% END %]
+                    [% IF ( cat.categorycode == category_code ) %]<option value="[% cat.categorycode | html %]" selected="selected">[% cat.description | html %]</option>[% ELSE %]<option value="[% cat.categorycode | html %]">[% cat.description | html %]</option>[% END %]
                 [% END %]
             </select>
-            <span>Please let blank if you want these attributs to be for all types of patron. Else, select one type.</span>
+            <span>Choose one to limit this attribute to one patron type. Please leave blank if you want these attributes to be available for all types of patrons.</span>
         </li>
         <li>
             <label for="class">Class: </label>
-            <select name="class">
-                <option value="" />
+            <select name="class" id="class">
+                <option value=""></option>
                 [% FOREACH class IN classes_val_loop %]
-                    [% IF ( class.selected ) %]
-                        <option value="[% class.authorised_value %]" selected="selected">
-                            [% class.lib %]
+                    [% IF class.authorised_value == category_class %]
+                        <option value="[% class.authorised_value | html %]" selected="selected">
+                            [% class.lib | html %]
                         </option>
                     [% ELSE %]
-                        <option value="[% class.authorised_value %]" >
-                            [% class.lib %]
+                        <option value="[% class.authorised_value | html %]" >
+                            [% class.lib | html %]
                         </option>
                     [% END %]
                 [% END %]
             </select>
-            <span>Group attributes types with a block title (based on Authorised values category 'PA_CLASS')</span>
+            <span>Group attributes types with a block title (based on authorized values category 'PA_CLASS')</span>
         </li>
     </ol>
   </fieldset>
   <fieldset class="action">
-    [% IF ( edit_attribute_type ) %]
-    <input type="button" value="Save"
-           onclick="CheckAttributeTypeForm(this.form)" />
-    [% ELSE %]
-    <input type="button" value="Save"
-           onclick="CheckAttributeTypeForm(this.form)" />
-    [% END %]
+      <input type="submit" value="Save" />
     <a class="cancel" href="/cgi-bin/koha/admin/patron-attr-types.pl">Cancel</a>
   </fieldset>
 </form>
 [% END %]
 
 [% IF ( delete_attribute_type_form ) %]
-<div class="dialog alert"><h3>Confirm deletion of patron attribute type <span class="ex">'[% code |html %]' ([% description %])</span>?</h3>
-<form action="[% script_name %]" name="Aform" method="post">
-  <input type="hidden" name="op" value="[% confirm_op %]" />
-  <input type="hidden" name="code" value="[% code |html %]" />
-    <input type="submit" value="Delete patron attribute type" class="approve" /></form>
-       <form action="[% script_name %]" method="get">
-    <input type="submit" value="No, Do Not Delete" class="deny" />
-</form></div>
+    <div class="dialog alert">
+        <h3>Confirm deletion of patron attribute type <span class="ex">'[% code | html %]' ([% description | html %])</span>?</h3>
+        <form action="[% script_name | html %]" name="Aform" method="post">
+            <input type="hidden" name="op" value="[% confirm_op | html %]" />
+            <input type="hidden" name="code" value="[% code | html %]" />
+            <button type="submit" class="approve"><i class="fa fa-fw fa-check"></i> Yes, delete patron attribute type</button>
+        </form>
+        <form action="[% script_name | html %]" method="get">
+            <button type="submit" class="deny"><i class="fa fa-fw fa-remove"></i> No, do not delete</button>
+        </form>
+    </div>
 [% END %]
 
 [% IF ( display_list ) %]
 
-<div id="toolbar">
-       <script type="text/javascript">
-       //<![CDATA[
-       // prepare DOM for YUI Toolbar
-        $(document).ready(function() {
-           yuiToolbar();
-        });
-       // YUI Toolbar Functions
-       function yuiToolbar() {
-           new YAHOO.widget.Button("newrule");
-       }       //]]>
-       </script>
-       <ul class="toolbar">
-       <li><a id="newrule" href="[% script_name %]?op=add_attribute_type">New Patron Attribute Type</a></li>
-</ul></div>
+<div id="toolbar" class="btn-toolbar">
+    <a class="btn btn-default btn-sm" id="newrule" href="[% script_name | url %]?op=add_attribute_type"><i class="fa fa-plus"></i> New patron attribute type</a>
+</div>
 
-<h2>Patron Attribute Types</h2>
+<h2>Patron attribute types</h2>
 [% IF ( added_attribute_type ) %]
-<div class="dialog message">Added patron attribute type &quot;[% added_attribute_type %]&quot;</div>
+<div class="dialog message">Added patron attribute type &quot;[% added_attribute_type | html %]&quot;</div>
 [% END %]
 [% IF ( edited_attribute_type ) %]
-<div class="dialog message">Modified patron attribute type &quot;[% edited_attribute_type %]&quot;</div>
+<div class="dialog message">Modified patron attribute type &quot;[% edited_attribute_type | html %]&quot;</div>
 [% END %]
 [% IF ( deleted_attribute_type ) %]
-<div class="dialog message">Deleted patron attribute type &quot;[% deleted_attribute_type %]&quot;</div>
+<div class="dialog message">Deleted patron attribute type &quot;[% deleted_attribute_type | html %]&quot;</div>
 [% END %]
 [% IF ( ERROR_delete_in_use ) %]
-<div class="dialog message">Could not delete patron attribute type &quot;[% ERROR_delete_in_use %]&quot; 
-    &mdash; it is in use by [% ERROR_num_patrons %] patron records</div>
+<div class="dialog message">Could not delete patron attribute type &quot;[% ERROR_delete_in_use | html %]&quot; 
+    &mdash; it is in use by [% ERROR_num_patrons | html %] patron records</div>
 [% END %]
 [% IF ( ERROR_delete_not_found ) %]
-<div class="dialog message">Could not delete patron attribute type &quot;[% ERROR_delete_not_found %]&quot; 
+<div class="dialog message">Could not delete patron attribute type &quot;[% ERROR_delete_not_found | html %]&quot; 
     &mdash; it was already absent from the database.</div>
 [% END %]
 [% IF ( available_attribute_types ) %]
   [% FOREACH attribute IN available_attribute_types %]
     [% IF attribute.class %]
-        <h4>[% attribute.lib %]</h4>
+        <h4>[% attribute.lib | html %]</h4>
     [% END %]
     <table class="patron_attributes_types">
       <thead>
         <tr>
           <th>Code</th>
           <th>Description</th>
+          <th>Branches limitation</th>
           <th>Actions</th>
         </tr>
       </thead>
       <tbody>
         [% FOREACH item IN attribute.items %]
           <tr>
-            <td>[% item.code |html %]</td>
-            <td>[% item.description %]</td>
+            <td>[% item.code | html %]</td>
+            <td>[% item.description | html %]</td>
             <td>
-              <a href="[% item.script_name %]?op=edit_attribute_type&amp;code=[% item.code |html %]">Edit</a>
-              <a href="[% item.script_name %]?op=delete_attribute_type&amp;code=[% item.code |html %]">Delete</a>
+                [% IF ( item.branches && item.branches.size > 0 ) %]
+                    [% branches_str = "" %]
+                    [% FOREACH branch IN item.branches %]
+                        [% branches_str = branches_str _ " " _ branch.branchname _ "(" _ branch.branchcode _ ")" %]
+                    [% END %]
+                    <span title="[% branches_str | html %]">
+                        [% IF item.branches.size > 1 %]
+                            [% item.branches.size | html %] branches limitations
+                        [% ELSE %]
+                            [% item.branches.size | html %] branch limitation
+                        [% END %]
+                    </span>
+                [% ELSE %]
+                    No limitation
+                [% END %]
+            </td>
+            <td class="actions">
+              <a class="btn btn-default btn-xs" href="[% item.script_name | url %]?op=edit_attribute_type&amp;code=[% item.code | uri %]"><i class="fa fa-pencil"></i> Edit</a>
+              <a class="btn btn-default btn-xs" href="[% item.script_name | url %]?op=delete_attribute_type&amp;code=[% item.code | uri %]"><i class="fa fa-trash"></i> Delete</a>
             </td>
           </tr>
         [% END %]
@@ -307,14 +288,36 @@ function CheckAttributeTypeForm(f) {
   <p>There are no saved patron attribute types.</p>
 [% END %]
 
-<div class="pages">[% pagination_bar %]</div>
+<div class="pages">[% pagination_bar | $raw %]</div>
 
 [% END %]
-</div>
-</div>
-<div class="yui-b">
-[% INCLUDE 'admin-menu.inc' %]
-</div>
-</div>
+
+            </main>
+        </div> <!-- /.col-sm-10.col-sm-push-2 -->
+
+        <div class="col-sm-2 col-sm-pull-10">
+            <aside>
+                [% INCLUDE 'admin-menu.inc' %]
+            </aside>
+        </div> <!-- /.col-sm-2.col-sm-pull-10 -->
+     </div> <!-- /.row -->
+
+[% MACRO jsinclude BLOCK %]
+    [% Asset.js("js/admin-menu.js") | $raw %]
+    <script>
+        $(document).ready(function() {
+            if ( $("#branches option:selected").length < 1 ) {
+                $("#branches option:first").attr("selected", "selected");
+            }
+
+            $("#opac_display").change( function() {
+                if ( this.checked ) {
+                    $("#opac_editable").removeAttr('disabled').parent().removeAttr('aria-disabled');
+                } else {
+                    $("#opac_editable").attr('disabled', true).parent().attr('aria-disabled', 'true');
+                }
+            } ).change();
+        });
+    </script>
+[% END %]
 [% INCLUDE 'intranet-bottom.inc' %]