View | Details | Raw Unified | Return to bug 40504
Collapse All | Expand All

(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/manageable-mixin.inc (+62 lines)
Line 0 Link Here
1
[% BLOCK select_manager_show %]
2
    [% borrowerlink = "/cgi-bin/koha/members/moremember.pl" _ "?borrowernumber=" _ manager.borrowernumber %]
3
    [% IF display == 'fieldset' %]
4
        <li class="managedby">
5
            <span class="label managedby">Managed by:</span>
6
            <a href="[% borrowerlink | url %]" title="View manager details"> [% manager.firstname _ " " _ manager.surname _ " [" _ manager.cardnumber _ "]" | html %] </a>
7
        </li>
8
    [% ELSIF display == 'table' %]
9
        <tr>
10
            <th>Managed by:</th>
11
            <td>[% manageddate | $KohaDates %]</td>
12
            <td>
13
                [% IF ( manager.borrowernumber ) %]
14
                    <a href="[% borrowerlink | url %]">[% manager.surname | html %], [% manager.firstname | html %] ([% manager.cardnumber | html %])</a>
15
                    [% Branches.GetName( manager.branchcode ) | html %] ([% manager.category.description | html %])
16
                [% END %]
17
            </td>
18
        </tr>
19
    [% ELSE %]
20
        <!-- Fallback for unknown display -->
21
        <p>Error: Unknown display "[% display | html %]".</p>
22
    [% END %]
23
[% END %]
24
25
[% BLOCK select_manager_form %]
26
    <li>
27
        <label for="managedby_name">by:</label>
28
        <div>
29
            <span id="managedby_name" name="managedby_name">
30
                [% IF required_permission %]
31
                    <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% logged_in_user.borrowernumber | uri %]">You</a>
32
                [% ELSE %]
33
                    Nobody
34
                [% END %]
35
            </span>
36
            [% IF manager.borrowernumber && logged_in_user.borrowernumber != manager.borrowernumber %]
37
                | Previously was [% INCLUDE 'patron-title.inc' patron=manager hide_patron_infos_if_needed=1 %] [% Branches.GetName( manager.branchcode ) | html %] ([% manager.category.description | html %])
38
            [% END %]
39
            <br />
40
            <a href="#patron_search_modal_manager" id="edit_manager" data-bs-toggle="modal"><i class="fa fa-search"></i> Select manager</a>
41
            [% IF manager.borrowernumber && logged_in_user.borrowernumber != manager.borrowernumber %]
42
                <a id="restore_previous_manager" href="#"><i class="fa fa-trash-can"></i> Keep existing manager</a>
43
            [% END %]
44
            [% IF required_permission %]
45
                <input type="hidden" name="managedby" id="managedby" value="[% logged_in_user.borrowernumber | html %]" />
46
            [% END %]
47
48
            <br />
49
            [% IF notify_option %]
50
                <label for="notify">Notify manager:</label>
51
                <input
52
                    type="checkbox"
53
                    id="notify"
54
                    name="notify"
55
                    value="notify"
56
                    disabled="disabled"
57
                    title="A NOTIFY_MANAGER notice will be generated and send to the manager if a valid email address is defined. This can be checked if a new manager has been selected."
58
                />
59
            [% END %]
60
        </div>
61
    </li>
62
[% END %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/select_manager.inc (+67 lines)
Line 0 Link Here
1
[% PROCESS 'patron-search.inc' %]
2
[% IF add_modal %]
3
    [% SET columns = ['cardnumber','name','category','branch','action'] %]
4
    [% SET filter = filter %]
5
    [% PROCESS patron_search_modal
6
        columns => columns,
7
        modal_title => t("Select manager"),
8
        patron_search_modal_id => 'patron_search_modal_manager',
9
        table_id => 'patron_search_modal_manager_table'
10
    %]
11
    [% PROCESS patron_search_js
12
        columns => columns,
13
        actions => ["select"],
14
        preview_on_name_click => 1,
15
        table_id => 'patron_search_modal_manager_table',
16
        callback => 'select_manager'
17
    %]
18
[% END %]
19
<script>
20
    function select_manager(borrowernumber, borrower) {
21
        let tab = $('#suggestiontabs .active table').data('tab-name');
22
        if ( tab ) {
23
            var managedby_name = $("#managedby_name-"+tab);
24
            var managedby = $("#managedby-"+tab);
25
        } else {
26
            var managedby_name = $("#managedby_name");
27
            var managedby = $("#managedby");
28
        }
29
        managedby_name.empty();
30
        managedby.val('');
31
        var borrowername = borrower.firstname + ' ' + borrower.surname;
32
        if (borrowernumber) {
33
            var managerlink = '<a href="/cgi-bin/koha/members/moremember.pl'
34
                + '?borrowernumber=' + borrowernumber + '">'
35
                + borrowername + '</a>';
36
            managedby_name.html(managerlink);
37
            managedby.val(borrowernumber);
38
        }
39
40
        var notify = $('#notify');
41
        if ( notify.length ) {
42
            [% IF manager %]
43
                if ( borrowernumber == [% logged_in_user.borrowernumber | html %] || borrowernumber == [% manager.borrowernumber | html %] ) {
44
            [% ELSE %]
45
                if ( borrowernumber == [% logged_in_user.borrowernumber | html %] ) {
46
            [% END %]
47
                $(notify).prop('checked', false).prop('disabled', true);
48
            } else {
49
                $(notify).prop('disabled', false);
50
            }
51
        }
52
    }
53
54
    $("#restore_previous_manager").on("click",function(e){
55
        e.preventDefault();
56
57
        $("#managedby_name").empty();
58
        $("#managedby").val('');
59
        var borrowername = "[% manager.firstname | html %] [% manager.surname | html %]";
60
        var managerlink = '<a href="/cgi-bin/koha/members/moremember.pl'
61
            + '?borrowernumber=[% manager.borrowernumber | html %]">'
62
            + borrowername + '</a>';
63
        $('#managedby_name').html(managerlink);
64
        $('#managedby').val([% manager.borrowernumber | html %]);
65
        $('#notify').prop('checked', false).prop('disabled', true);
66
    });
67
</script>
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt (-113 / +23 lines)
Lines 8-13 Link Here
8
[% USE TablesSettings %]
8
[% USE TablesSettings %]
9
[% PROCESS 'i18n.inc' %]
9
[% PROCESS 'i18n.inc' %]
10
[% PROCESS 'patron-search.inc' %]
10
[% PROCESS 'patron-search.inc' %]
11
[% PROCESS 'manageable-mixin.inc' %]
11
[% SET footerjs = 1 %]
12
[% SET footerjs = 1 %]
12
[% INCLUDE 'doc-head-open.inc' %]
13
[% INCLUDE 'doc-head-open.inc' %]
13
<title
14
<title
Lines 257-274 Link Here
257
                                    [% END %]
258
                                    [% END %]
258
                                </td>
259
                                </td>
259
                            </tr>
260
                            </tr>
260
                            <tr>
261
                            [% PROCESS select_manager_show
261
                                <th>Managed by:</th>
262
                                manager => suggestion.manager
262
                                <td>[% suggestion.manageddate | $KohaDates %]</td>
263
                                display => "table"
263
                                <td>
264
                            %]
264
                                    [% IF ( suggestion.manager.borrowernumber ) %]
265
                                        <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% suggestion.manager.borrowernumber | uri %]"
266
                                            >[% suggestion.manager.surname | html %], [% suggestion.manager.firstname | html %] ([% suggestion.manager.cardnumber | html %])</a
267
                                        >
268
                                        [% Branches.GetName( suggestion.manager.branchcode ) | html %] ([% suggestion.manager.category.description | html %])
269
                                    [% END %]
270
                                </td>
271
                            </tr>
272
                            <tr>
265
                            <tr>
273
                                <th>Accepted on:</th>
266
                                <th>Accepted on:</th>
274
                                <td>[% suggestion.accepteddate | $KohaDates %]</td>
267
                                <td>[% suggestion.accepteddate | $KohaDates %]</td>
Lines 602-643 Link Here
602
                                    <label for="managedon">Managed on:</label>
595
                                    <label for="managedon">Managed on:</label>
603
                                    <input type="text" id="managedon" name="manageddate" class="flatpickr" size="10" maxlength="10" value="[% default_manageddate | html %]" />[% INCLUDE 'date-format.inc' %]
596
                                    <input type="text" id="managedon" name="manageddate" class="flatpickr" size="10" maxlength="10" value="[% default_manageddate | html %]" />[% INCLUDE 'date-format.inc' %]
604
                                </li>
597
                                </li>
605
                                <li>
598
                                [% PROCESS select_manager_form
606
                                    <label for="managedby_name">by:</label>
599
                                    manager => suggestion.manager
607
                                    <div>
600
                                    notify_option => 1
608
                                        <span id="managedby_name" name="managedby_name">
601
                                    required_permission => CAN_user_suggestions_suggestions_manage
609
                                            [% IF CAN_user_suggestions_suggestions_manage %]
602
                                %]
610
                                                <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% logged_in_user.borrowernumber | uri %]">You</a>
611
                                            [% ELSE %]
612
                                                Nobody
613
                                            [% END %]
614
                                        </span>
615
                                        [% IF suggestion.manager.borrowernumber && logged_in_user.borrowernumber != suggestion.manager.borrowernumber %]
616
                                            | Previously was [% INCLUDE 'patron-title.inc' patron=suggestion.manager hide_patron_infos_if_needed=1 %] [% Branches.GetName( suggestion.manager.branchcode ) | html %]
617
                                            ([% suggestion.manager.category.description | html %])
618
                                        [% END %]
619
                                        <br />
620
                                        <a href="#patron_search_modal_manager" id="edit_manager" data-bs-toggle="modal"><i class="fa fa-search"></i> Select manager</a>
621
                                        [% IF suggestion.manager.borrowernumber && logged_in_user.borrowernumber != suggestion.manager.borrowernumber %]
622
                                            <a id="restore_previous_manager" href="#"><i class="fa fa-trash-can"></i> Keep existing manager</a>
623
                                        [% END %]
624
                                        [% IF CAN_user_suggestions_suggestions_manage %]
625
                                            <input type="hidden" name="managedby" id="managedby" value="[% logged_in_user.borrowernumber | html %]" />
626
                                        [% END %]
627
628
                                        <br />
629
                                        <label for="notify">Notify manager:</label>
630
                                        <input
631
                                            type="checkbox"
632
                                            id="notify"
633
                                            name="notify"
634
                                            value="notify"
635
                                            disabled="disabled"
636
                                            title="A NOTIFY_MANAGER notice will be generated and send to the manager if a valid email address is defined. This can be checked if a new manager has been selected."
637
                                        />
638
                                    </div>
639
                                    <!-- /div -->
640
                                </li>
641
                            </ol>
603
                            </ol>
642
                        </fieldset>
604
                        </fieldset>
643
605
Lines 1251-1308 Link Here
1251
1213
1252
[% MACRO jsinclude BLOCK %]
1214
[% MACRO jsinclude BLOCK %]
1253
    [% INCLUDE 'calendar.inc' %]
1215
    [% INCLUDE 'calendar.inc' %]
1216
    [% INCLUDE 'select_manager.inc'
1217
        manager => suggestion.manager
1218
    %]
1254
    <script>
1219
    <script>
1255
        function select_manager(borrowernumber, borrower) {
1256
            let tab = $('#suggestiontabs .active table').data('tab-name');
1257
            if ( tab ) {
1258
                var managedby_name = $("#managedby_name-"+tab);
1259
                var managedby = $("#managedby-"+tab);
1260
            } else {
1261
                var managedby_name = $("#managedby_name");
1262
                var managedby = $("#managedby");
1263
            }
1264
            managedby_name.empty();
1265
            managedby.val('');
1266
            var borrowername = borrower.firstname + ' ' + borrower.surname;
1267
            if (borrowernumber) {
1268
                var managerlink = '<a href="/cgi-bin/koha/members/moremember.pl'
1269
                    + '?borrowernumber=' + borrowernumber + '">'
1270
                    + borrowername + '</a>';
1271
                managedby_name.html(managerlink);
1272
                managedby.val(borrowernumber);
1273
            }
1274
1275
            [% IF op == "save" %]
1276
                var notify = $('#notify');
1277
                if ( notify.length ) {
1278
                    [% IF suggestion.manager %]
1279
                        if ( borrowernumber == [% logged_in_user.borrowernumber | html %] || borrowernumber == [% suggestion.manager.borrowernumber | html %] ) {
1280
                    [% ELSE %]
1281
                        if ( borrowernumber == [% logged_in_user.borrowernumber | html %] ) {
1282
                    [% END %]
1283
                        $(notify).prop('checked', false).prop('disabled', true);
1284
                    } else {
1285
                        $(notify).prop('disabled', false);
1286
                    }
1287
                }
1288
            [% END %]
1289
        }
1290
1291
        function select_suggester(borrowernumber, borrower) {
1220
        function select_suggester(borrowernumber, borrower) {
1292
            $.ajax({
1221
            $.ajax({
1293
                type: 'GET',
1222
                type: "GET",
1294
                url: '/api/v1/patrons/' + borrowernumber,
1223
                url: "/api/v1/patrons/" + borrowernumber,
1295
                headers: {
1224
                headers: {
1296
                    "x-koha-embed": "+strings"
1225
                    "x-koha-embed": "+strings",
1297
                },
1226
                },
1298
                success: function (data) {
1227
                success: function (data) {
1299
                    var suggested = '<input type="hidden" id="suggestedby" name="suggestedby" value="' + data.patron_id + '" />';
1228
                    var suggested = '<input type="hidden" id="suggestedby" name="suggestedby" value="' + data.patron_id + '" />';
1300
                    suggested += '<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=' + data.patron_id + '">';
1229
                    suggested += '<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=' + data.patron_id + '">';
1301
                    suggested += data.surname.escapeHtml() + ', ' + data.firstname.escapeHtml() + ' (' + data.cardnumber.escapeHtml() + ')';
1230
                    suggested += data.surname.escapeHtml() + ", " + data.firstname.escapeHtml() + " (" + data.cardnumber.escapeHtml() + ")";
1302
                    suggested += '</a> ';
1231
                    suggested += "</a> ";
1303
                    suggested += data._strings.library_id.str.escapeHtml() + ' (' + data._strings.category_id.str.escapeHtml() + ')';
1232
                    suggested += data._strings.library_id.str.escapeHtml() + " (" + data._strings.category_id.str.escapeHtml() + ")";
1304
                    $("#tdsuggestedby").html(suggested);
1233
                    $("#tdsuggestedby").html(suggested);
1305
1306
                },
1234
                },
1307
                error: function (data) {
1235
                error: function (data) {
1308
                    alert(_("Cannot retrieve info for this patron."));
1236
                    alert(_("Cannot retrieve info for this patron."));
Lines 1314-1327 Link Here
1314
        //keep a copy of all budgets before removing the inactives
1242
        //keep a copy of all budgets before removing the inactives
1315
        var budgetId = $("#budgetid");
1243
        var budgetId = $("#budgetid");
1316
        var disabledBudgetsCopy = budgetId.html();
1244
        var disabledBudgetsCopy = budgetId.html();
1317
        $('.b_inactive').remove();
1245
        $(".b_inactive").remove();
1318
1246
1319
        $('.showallfunds').click(function() {
1247
        $(".showallfunds").click(function () {
1320
            if ($(this).is(":checked")) {
1248
            if ($(this).is(":checked")) {
1321
                budgetId.html(disabledBudgetsCopy); //Puts back all the funds
1249
                budgetId.html(disabledBudgetsCopy); //Puts back all the funds
1322
            }
1250
            } else {
1323
            else {
1251
                $(".b_inactive").remove();
1324
                $('.b_inactive').remove();
1325
            }
1252
            }
1326
        });
1253
        });
1327
    </script>
1254
    </script>
Lines 1676-1697 Link Here
1676
                    $(".select-reason").show().find("option[value='']").attr("selected","selected");
1603
                    $(".select-reason").show().find("option[value='']").attr("selected","selected");
1677
                    $("#other_reason").hide();
1604
                    $("#other_reason").hide();
1678
                });
1605
                });
1679
1680
                $("#restore_previous_manager").on("click",function(e){
1681
                    e.preventDefault();
1682
1683
                    $("#managedby_name").empty();
1684
                    $("#managedby").val('');
1685
                    var borrowername = "[% suggestion.manager.firstname | html %] [% suggestion.manager.surname | html %]";
1686
                    var managerlink = '<a href="/cgi-bin/koha/members/moremember.pl'
1687
                        + '?borrowernumber=[% suggestion.manager.borrowernumber | html %]">'
1688
                        + borrowername + '</a>';
1689
                    $('#managedby_name').html(managerlink);
1690
                    $('#managedby').val([% suggestion.manager.borrowernumber | html %]);
1691
                    $('#notify').prop('checked', false).prop('disabled', true);
1692
                });
1693
1694
1695
            });
1606
            });
1696
        </script>
1607
        </script>
1697
    [% END %]
1608
    [% END %]
1698
- 

Return to bug 40504