Bug 30611: Add ability for staff to send password reset emails
[srvgit] / koha-tmpl / intranet-tmpl / prog / en / includes / members-toolbar.inc
index 68dd762..83136d0 100644 (file)
+[% INCLUDE 'blocking_errors.inc' %]
 [% USE Koha %]
-[% USE Borrowers %]
 [% USE Branches %]
+[% USE Categories %]
 [% USE AuthorisedValues %]
-[% SET NorwegianPatronDBEnable = Koha.Preference( 'NorwegianPatronDBEnable' ) %]
-<script type="text/javascript">
-//<![CDATA[
-$(document).ready(function(){
-    [% IF ( CAN_user_borrowers ) %]
-        [% IF ( NorwegianPatronDBEnable == 1 ) %]
-            $("#deletepatronlocal").click(function(){
-                confirm_local_deletion();
-                $(".btn-group").removeClass("open");
-                return false;
-            });
-            $("#deletepatronremote").click(function(){
-                confirm_remote_deletion();
-                $(".btn-group").removeClass("open");
-                return false;
-            });
-            $("#deletepatronboth").click(function(){
-                confirm_both_deletion();
-                $(".btn-group").removeClass("open");
-                return false;
-            });
-        [% ELSE %]
-            $("#deletepatron").click(function(){
-                window.location='/cgi-bin/koha/members/deletemem.pl?member=[% borrowernumber | url%]';
-            });
-        [% END %]
-        $("#renewpatron").click(function(){
-            confirm_reregistration();
-            $(".btn-group").removeClass("open");
-            return false;
-        });
-        [% IF ( is_child ) %]$("#updatechild").click(function(){
-            update_child();
-            $(".btn-group").removeClass("open");
-        });[% END %]
-    [% END %]
-    $("#updatechild, #patronflags, #renewpatron, #deletepatron, #exportbarcodes").tooltip();
-    $("#exportcheckins").click(function(){
-        export_barcodes();
-        $(".btn-group").removeClass("open");
-        return false;
-    });
-    $("#printsummary").click(function(){
-        printx_window("page");
-        $(".btn-group").removeClass("open");
-        return false;
-    });
-    $("#printslip").click(function(){
-        printx_window("slip");
-        $(".btn-group").removeClass("open");
-        return false;
-    });
-    $("#printquickslip").click(function(){
-        printx_window("qslip");
-        $(".btn-group").removeClass("open");
-        return false;
-    });
-    $("#print_overdues").click(function(){
-        window.open("/cgi-bin/koha/members/print_overdues.pl?borrowernumber=[% borrowernumber %]", "printwindow");
-        $(".btn-group").removeClass("open");
-        return false;
-    });
-    $("#searchtohold").click(function(){
-        searchToHold();
-        return false;
-    });
-    $("#select_patron_messages").on("change",function(){
-        $("#borrower_message").val( $(this).val() );
-    });
-});
-function confirm_local_deletion() {
-    var is_confirmed = window.confirm(_("Are you sure you want to delete this patron from the local database? This cannot be undone."));
-    if (is_confirmed) {
-        window.location='/cgi-bin/koha/members/deletemem.pl?member=[% borrowernumber %]&deletelocal=true&deleteremote=false';
-    }
-}
-function confirm_remote_deletion() {
-    var is_confirmed = window.confirm(_("Are you sure you want to delete this patron from the Norwegian national patron database? This cannot be undone."));
-    if (is_confirmed) {
-        window.location='/cgi-bin/koha/members/deletemem.pl?member=[% borrowernumber %]&deletelocal=false&deleteremote=true';
-    }
-}
-function confirm_both_deletion() {
-    var is_confirmed = window.confirm(_("Are you sure you want to delete this patron both from the local database and from the Norwegian national patron database? This cannot be undone."));
-    if (is_confirmed) {
-        window.location='/cgi-bin/koha/members/deletemem.pl?member=[% borrowernumber %]&deletelocal=true&deleteremote=true';
-    }
-}
-
-[% IF ( is_child ) %]function confirm_updatechild() {
-    var is_confirmed = window.confirm(_("Are you sure you want to update this child to an Adult category?  This cannot be undone."));
-    if (is_confirmed) {
-        window.location='/cgi-bin/koha/members/update-child.pl?op=update&borrowernumber=[% borrowernumber %]&catcode=[% catcode %]&catcode_multi=[% CATCODE_MULTI %]';
-    }
-}
-
-function update_child() {
-    [% IF ( CATCODE_MULTI ) %]
-        window.open('/cgi-bin/koha/members/update-child.pl?op=multi&borrowernumber=[% borrowernumber %]','UpdateChild','width=400,height=300,toolbar=no,scrollbars=yes,resizable=yes');
-    [% ELSE %]
-        confirm_updatechild();
-    [% END %]
-}
-[% END %]
-
-function confirm_reregistration() {
-    var is_confirmed = window.confirm(_("Are you sure you want to renew this patron's registration?"));
-    if (is_confirmed) {
-    window.location = '/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% borrowernumber %]&amp;destination=[% destination %]&amp;reregistration=y';
-    }
-}
-function export_barcodes() {
-    window.open('/cgi-bin/koha/members/readingrec.pl?borrowernumber=[% borrowernumber %]&amp;op=export_barcodes');
-}
-var slip_re = /slip/;
-function printx_window(print_type) {
-    var handler = print_type.match(slip_re) ? "printslip" : "summary-print";
-    window.open("/cgi-bin/koha/members/" + handler + ".pl?borrowernumber=[% borrowernumber %]&amp;print=" + print_type, "printwindow");
-    return false;
-}
-function searchToHold(){
-    var date = new Date();
-    date.setTime(date.getTime() + (10 * 60 * 1000));
-    $.cookie("holdfor", "[% borrowernumber %]", { path: "/", expires: date });
-    location.href="/cgi-bin/koha/catalogue/search.pl";
-}
-//]]>
-</script>
-
+[% USE scalar %]
 <div id="toolbar" class="btn-toolbar">
-    [% IF ( CAN_user_borrowers ) %]
-        [% IF ( guarantor ) %]
-            <a id="editpatron" class="btn btn-default btn-sm" href="/cgi-bin/koha/members/memberentry.pl?op=modify&amp;destination=circ&amp;borrowernumber=[% borrowernumber %]&amp;guarantorid=[% guarantor.borrowernumber %]&amp;categorycode=[% categorycode %]">
-        [% ELSE %]
-            <a id="editpatron" class="btn btn-default btn-sm" href="/cgi-bin/koha/members/memberentry.pl?op=modify&amp;destination=circ&amp;borrowernumber=[% borrowernumber %]&amp;categorycode=[% categorycode %]">
-        [% END %]
-        <i class="fa fa-pencil"></i> Edit</a>
+    [% IF CAN_user_borrowers_edit_borrowers %]
+        <a id="editpatron" class="btn btn-default" href="/cgi-bin/koha/members/memberentry.pl?op=modify&amp;destination=circ&amp;borrowernumber=[% patron.borrowernumber | html %]"><i class="fa fa-pencil"></i> Edit</a>
     [% END %]
 
-    [% IF ( CAN_user_borrowers ) %]
-        [% IF ( adultborrower AND activeBorrowerRelationship ) %]
-            <a id="addchild" class="btn btn-default btn-sm" href="/cgi-bin/koha/members/memberentry.pl?op=add&amp;guarantorid=[% borrowernumber %]"><i class="fa fa-plus"></i> Add child</a>
-        [% END %]
-        [% IF ( CAN_user_borrowers ) %]
-            <a id="changepassword" class="btn btn-default btn-sm" href="/cgi-bin/koha/members/member-password.pl?member=[% borrowernumber %]"><i class="fa fa-lock"></i> Change password</a>
+    [% IF CAN_user_borrowers_edit_borrowers %]
+        [% IF patron.is_adult AND Koha.Preference("borrowerRelationship") %]
+            <a id="addchild" class="btn btn-default" href="/cgi-bin/koha/members/memberentry.pl?op=add&amp;guarantor_id=[% patron.borrowernumber | html %]&amp;category_type=C"><i class="fa fa-plus"></i> Add guarantee</a>
         [% END %]
-        <a id="duplicate" class="btn btn-default btn-sm" href="/cgi-bin/koha/members/memberentry.pl?op=duplicate&amp;borrowernumber=[% borrowernumber %]&amp;categorycode=[% categorycode %]"><i class="fa fa-copy"></i> Duplicate</a>
+        <a id="changepassword" class="btn btn-default" href="/cgi-bin/koha/members/member-password.pl?member=[% patron.borrowernumber | html %]"><i class="fa fa-lock"></i> Change password</a>
+        <a id="duplicate" class="btn btn-default" href="/cgi-bin/koha/members/memberentry.pl?op=duplicate&amp;borrowernumber=[% patron.borrowernumber | html %]"><i class="fa fa-copy"></i> Duplicate</a>
     [% END %]
 
+    [% IF CAN_user_circulate_circulate_remaining_permissions %]
     <div class="btn-group">
-        <button class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown"><i class="fa fa-print"></i> Print <span class="caret"></span></button>
+        <button class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-print"></i> Print <span class="caret"></span></button>
             <ul class="dropdown-menu">
-                [% IF ( CAN_user_borrowers ) %]<li><a id="printsummary" href="#">Print summary</a></li>[% END %]
+                <li><a id="printsummary" href="#">Print summary</a></li>
                 <li><a id="printslip" href="#">Print slip</a></li>
                 <li><a id="printquickslip" href="#">Print quick slip</a></li>
-                [% IF Borrowers.HasOverdues( borrowernumber ) %]
+                [% IF patron.has_overdues %]
                     <li><a id="print_overdues" href="#">Print overdues</a></li>
                 [% END %]
+                <li><a id="printcheckinslip" href="#">Print checkin slip</a></li>
             </ul>
     </div>
+    [% END %]
 
     [% IF ( CAN_user_reserveforothers ) %]
-        <a id="searchtohold" class="btn btn-default btn-sm" href="#"><i class="fa fa-search"></i> Search to hold</a>
+        <a id="searchtohold" class="btn btn-default" href="#"><i class="fa fa-search"></i> Search to hold</a>
     [% END %]
 
-    <a id="addnewmessageLabel" href="#add_message_form" data-toggle="modal" class="btn btn-default btn-sm"><i class="fa fa-comment-o"></i> Add message</a>
+    <a id="addnewmessageLabel" href="#add_message_form" data-toggle="modal" class="btn btn-default"><i class="fa fa-comment-o"></i> Add message</a>
 
          <div class="btn-group">
-        <button class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">More <span class="caret"></span></button>
-            <ul class="dropdown-menu">
-                [% IF ( CAN_user_borrowers ) %]
-                    <li><a id="renewpatron" href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% borrowernumber %]&amp;destination=[% destination %]&amp;reregistration=y">Renew patron</a></li>
+        <button class="btn btn-default dropdown-toggle" data-toggle="dropdown">More <span class="caret"></span></button>
+            <ul class="dropdown-menu dropdown-menu-right">
+                [% IF CAN_user_borrowers_edit_borrowers %]
+                    <li><a id="renewpatron" href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% patron.borrowernumber | html %]&amp;destination=[% destination | html %]&amp;reregistration=y">Renew patron</a></li>
                 [% ELSE %]
                     <li class="disabled"><a data-toggle="tooltip" data-placement="left" title="You are not authorized to renew patrons" id="renewpatron" href="#">Renew patron</a></li>
                 [% END %]
                 [% IF ( CAN_user_permissions ) %]
-                    <li><a id="patronflags" href="/cgi-bin/koha/members/member-flags.pl?member=[% borrowernumber %]">Set permissions</a></li>
+                    <li><a id="patronflags" href="/cgi-bin/koha/members/member-flags.pl?member=[% patron.borrowernumber | html %]">Set permissions</a></li>
                 [% ELSE %]
                     <li class="disabled"><a data-toggle="tooltip" data-placement="left" title="You are not authorized to set permissions" id="patronflags" href="#">Set permissions</a></li>
                 [% END %]
-                [% IF CAN_user_borrowers && useDischarge %]
-                    <li><a href="/cgi-bin/koha/members/discharge.pl?borrowernumber=[% borrowernumber %]">Discharge</a></li>
+
+                [% IF Koha.Preference('TwoFactorAuthentication') && logged_in_user.borrowernumber == patron.borrowernumber %]
+                    <li><a id="twofa" href="/cgi-bin/koha/members/two_factor_auth.pl">Manage two-factor authentication</a></li>
+                [% END %]
+
+                [% IF CAN_user_borrowers_edit_borrowers && useDischarge %]
+                    <li><a href="/cgi-bin/koha/members/discharge.pl?borrowernumber=[% patron.borrowernumber | uri %]">Discharge</a></li>
                 [% END %]
-                [% IF ( CAN_user_borrowers ) %]
-                    [% IF ( NorwegianPatronDBEnable == 1 ) %]
-                        <li><a id="deletepatronlocal" href="#">Delete local</a></li>
-                        <li><a id="deletepatronremote" href="#">Delete remote</a></li>
-                        <li><a id="deletepatronboth" href="#">Delete local and remote</a></li>
+
+                [% IF Koha.Preference('RESTOAuth2ClientCredentials') %]
+                    [% IF CAN_user_superlibrarian OR loggedinusernumber == patron.borrowernumber %]
+                        <li><a id="apikeys" href="/cgi-bin/koha/members/apikeys.pl?patron_id=[% patron.borrowernumber | html %]">Manage API keys</a></li>
                     [% ELSE %]
-                        <li><a id="deletepatron" href="#">Delete</a></li>
+                        <li class="disabled"><a data-toggle="tooltip" data-placement="left" title="You are not authorized to manage API keys" id="apikeys" href="#">Manage API keys</a></li>
                     [% END %]
+                [% END %]
+
+                [% IF CAN_user_borrowers_edit_borrowers %]
+                    <li><a id="sendwelcome" href="/cgi-bin/koha/members/notices.pl?borrowernumber=[% patron.borrowernumber | uri %]&op=send_welcome">Send welcome email</a></li>
+                [% END %]
+
+                [% IF CAN_user_borrowers_edit_borrowers %]
+                    <li><a id="resetpassword" href="/cgi-bin/koha/members/notices.pl?borrowernumber=[% patron.borrowernumber | uri %]&op=send_password_reset">Send password reset</a></li>
+                [% END %]
+
+                [% IF CAN_user_borrowers_delete_borrowers %]
+                    <li><a id="deletepatron" href="#">Delete</a></li>
                 [% ELSE %]
                     <li class="disabled"><a data-toggle="tooltip" data-placement="left" title="You are not authorized to delete patrons" id="deletepatron" href="#">Delete</a></li>
                 [% END %]
-                [% IF ( is_child ) %]
-                    <li><a id="updatechild" href="#">Update child to adult patron</a></li>
-                [% ELSE %]
-                    <li class="disabled"><a data-toggle="tooltip" data-placement="left" title="Patron is an adult" id="updatechild" href="#">Update child to adult patron</a></li></li>
+                [% SET adult_categories = Categories.scalar.all(category_type => 'A') %]
+                [% IF adult_categories.count > 0 %]
+                    [% IF patron.is_child %]
+                        <li><a id="updatechild" href="#">Update child to adult patron</a></li>
+                    [% ELSE %]
+                        <li class="disabled"><a data-toggle="tooltip" data-placement="left" title="Patron is an adult" id="updatechild" href="#">Update child to adult patron</a></li>
+                    [% END %]
                 [% END %]
                 [% IF Koha.Preference('intranetreadinghistory') %]
                     [%IF ( privacy == 2 ) %]
@@ -225,7 +113,7 @@ function searchToHold(){
                         <label for="message_type">Add a message for:</label>
                         <select name="message_type" id="message_type">
                             <option value="L">Staff - Internal note</option>
-                            <option value="B">OPAC - [% firstname | html %] [% surname | html %]</option>
+                            <option value="B">OPAC - [% patron.firstname | html %] [% patron.surname | html %]</option>
                         </select>
                     </div>
                     [% bor_notes = AuthorisedValues.Get( 'BOR_NOTES' ) %]
@@ -235,7 +123,7 @@ function searchToHold(){
                             <select name="type" id="select_patron_messages">
                                 <option value="">Select note</option>
                                 [% FOREACH bor_note IN bor_notes %]
-                                    <option value="[% bor_note.lib %]">[% bor_note.lib %]</option>
+                                    <option value="[% bor_note.lib | html %]">[% bor_note.lib | html %]</option>
                                 [% END %]
                             </select>
                         </div>
@@ -243,13 +131,13 @@ function searchToHold(){
                     <div class="form-group">
                         <textarea rows="3" class="modal-textarea" name="borrower_message" id="borrower_message" ></textarea>
                     </div>
-                    <input type="hidden" name="borrowernumber" value="[% borrowernumber %]" />
-                    <input type="hidden" name="batch" value="[% batch %]" />
-                    <input type="hidden" name="branchcode" value="[% LoginBranchcode %]" />
+                    <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
+                    <input type="hidden" name="batch" value="[% batch | html %]" />
+                    <input type="hidden" name="branchcode" value="[% Branches.GetLoggedInBranchcode | html %]" />
                 </div>
                 <div class="modal-footer">
                     <button class="btn btn-default approve" type="submit"><i class="fa fa-check"></i> Save</button>
-                    <button class="btn btn-default deny" href="#" class="cancel" data-dismiss="modal" aria-hidden="true"><i class="fa fa-times"></i> Cancel</button>
+                    <button class="btn btn-default deny cancel" href="#" data-dismiss="modal" aria-hidden="true"><i class="fa fa-times"></i> Cancel</button>
                 </div>
             </form>
         </div>