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

(-)a/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss (+42 lines)
Lines 4390-4395 div .suggestion_note { Link Here
4390
    }
4390
    }
4391
}
4391
}
4392
4392
4393
.nav.nav-tabs > li > a {
4394
    align-items: center;
4395
    display: flex;
4396
    gap: 5px;
4397
4398
    span[class*="badge"] {
4399
        color: #000;
4400
        font-size: 85%;
4401
        font-weight: bold;
4402
4403
        &.text-bg-info {
4404
            background-color: #9BD6E8;
4405
        }
4406
4407
        &.text-bg-danger {
4408
            background-color: #FF7873;
4409
        }
4410
4411
        &:has( span:empty + span:empty ), /* If the element contains two empty spans */
4412
        &:has( span:only-child:empty ) { /* If the element contains only one span and it is empty */
4413
            background-color: transparent;
4414
            padding: 0;
4415
        }
4416
4417
        &:has( span + span:empty ) { /* If the element has a non-empty span followed by an empty one, reset style */
4418
            background-color: #9BD6E8;
4419
        }
4420
    }
4421
}
4422
4423
.count-active { /* Add separator between two counts in a tab */
4424
    & + .count-inactive {
4425
        &:empty::before {
4426
            content: "";
4427
        }
4428
4429
        &::before {
4430
            content: " / ";
4431
        }
4432
    }
4433
}
4434
4393
.ac-library {
4435
.ac-library {
4394
    background-color: #EEE !important;
4436
    background-color: #EEE !important;
4395
    font-weight: normal;
4437
    font-weight: normal;
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-detail-tabs.inc (-25 / +51 lines)
Lines 5-75 Link Here
5
[% WRAPPER tabs id= "finesholdsissues" %]
5
[% WRAPPER tabs id= "finesholdsissues" %]
6
    [% WRAPPER tabs_nav %]
6
    [% WRAPPER tabs_nav %]
7
        [% WRAPPER tab_item tabname= "checkouts" bt_active= 1 %]
7
        [% WRAPPER tab_item tabname= "checkouts" bt_active= 1 %]
8
            <span>Checkouts</span> (<span class="checkout_count">[% issuecount || 0 | html %]</span>)
8
            <span>Checkouts</span>
9
            [% IF ( issuecount ) %]
10
                <span class="checkout_count badge text-bg-info">[% issuecount || 0 | html %]</span>
11
            [% END %]
9
        [% END %]
12
        [% END %]
10
13
11
        [% IF relatives_issues_count %]
14
        [% IF relatives_issues_count %]
12
            [% WRAPPER tab_item tabname= "relatives-issues" %]
15
            [% WRAPPER tab_item tabname= "relatives-issues" %]
13
                <span>Relatives' checkouts</span> ([% relatives_issues_count | html %])
16
                <span>Relatives' checkouts</span>
17
                [% IF ( relatives_issues_count ) %]
18
                    <span class="badge text-bg-info">[% relatives_issues_count | html %]</span>
19
                [% END %]
14
            [% END %]
20
            [% END %]
15
        [% END %]
21
        [% END %]
16
22
17
        [% IF ( guarantees_fines ) %]
23
        [% IF ( guarantees_fines ) %]
18
            [% WRAPPER tab_item tabname= "guarantees_finesandcharges" %]
24
            [% WRAPPER tab_item tabname= "guarantees_finesandcharges" %]
19
                <span>Guarantees' charges</span> ([% guarantees_fines | $Price %])
25
                <span>Guarantees' charges</span>
26
                [% IF ( guarantees_fines ) %]
27
                    <span class="badge text-bg-info">[% guarantees_fines | $Price %]</span>
28
                [% END %]
20
            [% END %]
29
            [% END %]
21
        [% END %]
30
        [% END %]
22
31
23
        [% IF ( CAN_user_circulate_circulate_remaining_permissions ) %]
32
        [% IF ( CAN_user_circulate_circulate_remaining_permissions ) %]
24
            [% WRAPPER tab_item tabname= "holds" %]
33
            [% WRAPPER tab_item tabname= "holds" %]
25
                <span>Holds</span> ([% holds_count || 0 | html %])
34
                <span>Holds</span>
35
                [% IF ( holds_count ) %]
36
                    <span class="badge text-bg-info">[% holds_count | html %]</span>
37
                [% END %]
26
            [% END %]
38
            [% END %]
27
            [% IF Koha.Preference('EnableBooking') %]
39
            [% IF Koha.Preference('EnableBooking') %]
28
                [% WRAPPER tab_item tabname="bookings" %]
40
                [% WRAPPER tab_item tabname="bookings" %]
29
                    [% SET bookings_count = patron.bookings.filter_by_active.count %]
41
                    [% SET bookings_count = patron.bookings.filter_by_active.count %]
30
                    [% SET expired_bookings_count = patron.bookings.count - bookings_count %]
42
                    [% SET expired_bookings_count = patron.bookings.count - bookings_count %]
31
                    <span class="bookings_count">Bookings ([% bookings_count || 0 | html %])</span>
43
                    <span>Bookings</span>
44
                    [% IF ( bookings_count ) %]
45
                        <span class="badge text-bg-info">[% bookings_count || 0 | html %]</span>
46
                    [% END %]
32
                [% END %]
47
                [% END %]
33
            [% END %]
48
            [% END %]
34
        [% END %]
49
        [% END %]
35
50
36
        [% IF Koha.Preference('UseRecalls') %]
51
        [% IF Koha.Preference('UseRecalls') %]
37
            [% WRAPPER tab_item tabname= "recalls" %]
52
            [% WRAPPER tab_item tabname= "recalls" %]
38
                <span>Recalls</span> ([% recalls.count || 0 | html %])
53
                <span>Recalls</span>
54
                [% IF ( recalls.count ) %]
55
                    <span class="badge text-bg-info">[% recalls.count | html %]</span>
56
                [% END %]
39
            [% END %]
57
            [% END %]
40
        [% END %]
58
        [% END %]
41
59
42
        [% IF Koha.Preference('ArticleRequests') %]
60
        [% IF Koha.Preference('ArticleRequests') %]
43
            [% SET article_requests = Context.Scalar( Context.Scalar( patron, 'article_requests' ), 'filter_by_current') %]
61
            [% SET article_requests = Context.Scalar( Context.Scalar( patron, 'article_requests' ), 'filter_by_current') %]
44
            [% WRAPPER tab_item tabname= "article-requests" %]
62
            [% WRAPPER tab_item tabname= "article-requests" %]
45
                <span>Article requests</span> ([% article_requests.count || 0 | html %])
63
                <span>Article requests</span>
64
                [% IF ( article_requests.count ) %]
65
                    <span class="badge text-bg-info">[% article_requests.count | html %]</span>
66
                [% END %]
46
            [% END %]
67
            [% END %]
47
        [% END %]
68
        [% END %]
48
69
49
        [% IF Koha.Preference('ClaimReturnedLostValue') || Koha.Preference('BundleLostValue') %]
70
        [% IF Koha.Preference('ClaimReturnedLostValue') || Koha.Preference('BundleLostValue') %]
50
            [% WRAPPER tab_item tabname= "return-claims" %]
71
            [% WRAPPER tab_item tabname= "return-claims" %]
51
                <span>Claims</span>
72
                <span>Claims</span>
52
                [% IF ( patron.return_claims.count ) %]
73
                [% SET warning_threshold = Koha.Preference('ClaimReturnedWarningThreshold') %]
53
                    ([% IF patron.return_claims.resolved.count == 0 %]
74
                [% IF warning_threshold != '' && ( patron.return_claims.count > warning_threshold ) %]
54
                        <span title="Resolved claims" class="badge text-bg-info" id="return-claims-count-resolved">[% patron.return_claims.resolved.count | html %]</span>
75
                    <span id="return-claims-count" title="Unresolved claims / Resolved claims" class="badge text-bg-warning">
55
                    [% ELSE %]
76
                        <span id="return-claims-count-unresolved" class="count-active" data-warning="[% warning_threshold | html %]">[% patron.return_claims.unresolved.count | html %]</span>
56
                        <span title="Resolved claims" class="badge text-bg-info" id="return-claims-count-resolved">[% patron.return_claims.resolved.count | html %]</span>
77
                        <span id="return-claims-count-resolved" class="count-inactive">[% patron.return_claims.resolved.count | html %]</span>
57
                    [% END %]
78
                    </span>
58
                    [% IF patron.return_claims.unresolved.count == 0 %]
59
                        <span title="Unresolved claims" class="badge text-bg-info" id="return-claims-count-unresolved">[% patron.return_claims.unresolved.count | html %]</span>
60
                    [% ELSE %]
61
                        <span title="Unresolved claims" class="badge text-bg-warning" id="return-claims-count-unresolved">[% patron.return_claims.unresolved.count | html %]</span>
62
                    [% END %])
63
                [% ELSE %]
79
                [% ELSE %]
64
                    [% no_claims = 0 %]
80
                    <span id="return-claims-count" title="Unresolved claims" class="badge text-bg-info">
65
                    (<span title="Resolved claims" class="badge text-bg-info" id="return-claims-count-resolved">[% no_claims | html %]</span>
81
                        <span id="return-claims-count-unresolved" class="count-active" data-warning="[% warning_threshold | html %]">[% patron.return_claims.unresolved.count || "" | html %]</span>
66
                    <span title="Unresolved claims" class="badge text-bg-info" id="return-claims-count-unresolved">[% no_claims | html %]</span>)
82
                        <span id="return-claims-count-resolved" class="count-inactive">[% patron.return_claims.resolved.count || "" | html %]</span>
67
                [% END # /IF patron.return_claims.count %]
83
                    </span>
84
                [% END %]
68
            [% END # /WRAPPER tab_item return-claims %]
85
            [% END # /WRAPPER tab_item return-claims %]
69
        [% END %]
86
        [% END %]
70
87
71
        [% WRAPPER tab_item tabname= "reldebarments" %]
88
        [% WRAPPER tab_item tabname= "reldebarments" %]
72
            <span>Restrictions ([% patron.restrictions.count || 0 | html %])</span>
89
            <span>Restrictions</span>
90
            [% IF ( patron.restrictions.count ) %]
91
                <span class="badge text-bg-danger">[% patron.restrictions.count | html %]</span>
92
            [% END %]
73
        [% END %]
93
        [% END %]
74
94
75
        [% SET enrollments = patron.get_club_enrollments %]
95
        [% SET enrollments = patron.get_club_enrollments %]
Lines 77-89 Link Here
77
        <!-- 0 => not OPAC -->
97
        <!-- 0 => not OPAC -->
78
        [% IF CAN_user_clubs && ( enrollable.count || enrollments.count ) %]
98
        [% IF CAN_user_clubs && ( enrollable.count || enrollments.count ) %]
79
            [% WRAPPER tab_item tabname= "clubs" %]
99
            [% WRAPPER tab_item tabname= "clubs" %]
80
                <span>Clubs ([% enrollments.count | html %]/[% enrollable.count | html %])</span>
100
                <span>Clubs</span>
101
                <span id="clubs-count" title="Club enrollments" class="badge text-bg-info">
102
                    <span id="clubs-count-enrolled" class="count-active">[% enrollments.count || "" | html %]</span>
103
                </span>
81
            [% END %]
104
            [% END %]
82
        [% END %]
105
        [% END %]
83
106
84
        [% IF CAN_user_tools_manage_patron_lists || patron_lists_count %]
107
        [% IF CAN_user_tools_manage_patron_lists || patron_lists_count %]
85
            [% WRAPPER tab_item tabname="pat_lists" %]
108
            [% WRAPPER tab_item tabname="pat_lists" %]
86
                <span>Patron lists ([% patron_lists_count | html %])</span>
109
                <span>Patron lists</span>
110
                <span id="patron-lists" title="Lists containing this patron" class="badge text-bg-info">
111
                    <span id="patron-lists-count">[%~ patron_lists_count || "" | html ~%]</span>
112
                </span>
87
            [% END %]
113
            [% END %]
88
        [% END %]
114
        [% END %]
89
    [% END # /WRAPPER tabs_nav %]
115
    [% END # /WRAPPER tabs_nav %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/recalls.inc (-16 / +14 lines)
Lines 94-120 Link Here
94
                                        <button type="button" class="btn btn-sm btn-default dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Actions </button>
94
                                        <button type="button" class="btn btn-sm btn-default dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Actions </button>
95
                                        <ul class="dropdown-menu dropdown-menu-end">
95
                                        <ul class="dropdown-menu dropdown-menu-end">
96
                                            [% IF ( recall.requested or recall.overdue ) %]
96
                                            [% IF ( recall.requested or recall.overdue ) %]
97
                                                <li
97
                                                <li>
98
                                                    ><a class="cancel_recall dropdown-item" data-id="[% recall.id | html %]"><i class="fa fa-times"></i> Cancel</a></li
98
                                                    <a class="cancel_recall dropdown-item" data-id="[% recall.id | html %]"><i class="fa fa-times"></i> Cancel</a>
99
                                                >
99
                                                </li>
100
                                                [% IF ( recall.should_be_overdue ) %]
100
                                                [% IF ( recall.should_be_overdue ) %]
101
                                                    <li
101
                                                    <li
102
                                                        ><a class="overdue_recall" data-id="[% recall.id | html %]"><i class="fa fa-hourglass-end"></i> Mark as overdue</a></li
102
                                                        ><a class="overdue_recall dropdown-item" data-id="[% recall.id | html %]"><i class="fa fa-hourglass-end"></i> Mark as overdue</a>
103
                                                    >
103
                                                    </li>
104
                                                [% END %]
104
                                                [% END %]
105
                                            [% ELSIF ( recall.waiting ) %]
105
                                            [% ELSIF ( recall.waiting ) %]
106
                                                <li
106
                                                <li>
107
                                                    ><a class="revert_recall dropdown-item" data-id="[% recall.id | html %]"><i class="fa fa-undo"></i> Revert waiting</a></li
107
                                                    <a class="revert_recall dropdown-item" data-id="[% recall.id | html %]"><i class="fa fa-undo"></i> Revert waiting</a>
108
                                                >
108
                                                </li>
109
                                                <li
109
                                                <li>
110
                                                    ><a class="expire_recall dropdown-item" data-id="[% recall.id | html %]"><i class="fa fa-times"></i> Expire</a></li
110
                                                    <a class="expire_recall dropdown-item" data-id="[% recall.id | html %]"><i class="fa fa-times"></i> Expire</a>
111
                                                >
111
                                                </li>
112
                                            [% ELSIF ( recall.in_transit ) %]
112
                                            [% ELSIF ( recall.in_transit ) %]
113
                                                <li
113
                                                <li>
114
                                                    ><a class="transit_recall dropdown-item" data-id="[% recall.id | html %]"
114
                                                    <a class="transit_recall dropdown-item" data-id="[% recall.id | html %]"><i class="fa fa-times"></i> Cancel recall and return to: [% Branches.GetName(recall.item.homebranch) | html %]</a>
115
                                                        ><i class="fa fa-times"></i> Cancel recall and return to: [% Branches.GetName(recall.item.homebranch) | html %]</a
115
                                                </li>
116
                                                    ></li
117
                                                >
118
                                            [% END %]
116
                                            [% END %]
119
                                        </ul>
117
                                        </ul>
120
                                    </div>
118
                                    </div>
(-)a/koha-tmpl/intranet-tmpl/prog/js/checkouts.js (-17 lines)
Lines 1546-1567 $(document).ready(function () { Link Here
1546
                    url: "/cgi-bin/koha/svc/return_claims?borrowernumber=%s".format(
1546
                    url: "/cgi-bin/koha/svc/return_claims?borrowernumber=%s".format(
1547
                        borrowernumber
1547
                        borrowernumber
1548
                    ),
1548
                    ),
1549
                    complete: function (json) {
1550
                        let resolved = json.resolved;
1551
                        let unresolved = json.unresolved;
1552
1553
                        if (unresolved > 0) {
1554
                            $("#return-claims-count-unresolved")
1555
                                .text(unresolved)
1556
                                .removeClass("text-bg-info")
1557
                                .addClass("text-bg-warning");
1558
                        } else {
1559
                            $("#return-claims-count-unresolved")
1560
                                .text(unresolved)
1561
                                .removeClass("text-bg-warning")
1562
                                .addClass("text-bg-info");
1563
                        }
1564
                    },
1565
                },
1549
                },
1566
                bKohaAjaxSVC: true,
1550
                bKohaAjaxSVC: true,
1567
                search: { search: "is_unresolved" },
1551
                search: { search: "is_unresolved" },
1568
- 

Return to bug 26258