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

(-)a/koha-tmpl/opac-tmpl/bootstrap/en/includes/user-star-ratings.inc (-40 / +61 lines)
Lines 1-53 Link Here
1
<div class="results_summary ratings" id="rating-[% item.itemnumber | html %]">
1
[% SET rating_avg = item.ratings.get_avg_rating() %]
2
[% rating_avg_int = BLOCK %][% rating_avg | format("%.0f") %][% END %]
3
[% IF interact %]
4
    <div class="results_summary ratings" id="rating-[% item.itemnumber | html %]">
2
5
3
    [% SET rating_avg = item.ratings.get_avg_rating() %]
6
        <div class="br-wrapper br-theme-fontawesome-stars js-hide">
4
    [% rating_avg_int = BLOCK %][% rating_avg | format("%.0f") %][% END %]
7
            <div class="br-widget br-readonly">
8
                [% FOREACH i IN [ 1 2 3 4 5  ] %]
9
                    [% IF rating_avg_int == i %]
10
                        <a href="#" class="br-selected br-current"></a>
11
                    [% ELSIF rating_avg_int > i %]
12
                        <a href="#" class="br-selected"></a>
13
                    [% ELSE %]
14
                        <a href="#"></a>
15
                    [% END %]
16
                [% END %]
17
            </div>
18
        </div>
19
        <select class="star_rating" id="star_rating-[% item.itemnumber | html %]" name="rating" autocomplete="off" data-biblionumber="[% item.biblionumber | html %]" data-context="rating-[% item.itemnumber | html %]">
5
20
6
    <div class="br-wrapper br-theme-fontawesome-stars js-hide">
21
            [% IF ( rating_avg_int == 0 ) %]
7
        <div class="br-widget br-readonly">
22
                <option value="" selected="selected"></option>
23
            [% END %]
8
            [% FOREACH i IN [ 1 2 3 4 5  ] %]
24
            [% FOREACH i IN [ 1 2 3 4 5  ] %]
9
                [% IF rating_avg_int == i %]
25
                [% IF rating_avg_int == i %]
10
                    <a href="#" class="br-selected br-current"></a>
26
                    <option value="[% i | html %]" selected="selected">[% i | html %]</option>
11
                [% ELSIF rating_avg_int > i %]
12
                    <a href="#" class="br-selected"></a>
13
                [% ELSE %]
27
                [% ELSE %]
14
                    <a href="#"></a>
28
                    <option value="[% i | html %]">[% i | html %]</option>
15
                [% END %]
29
                [% END %]
16
            [% END %]
30
            [% END %]
17
        </div>
31
        </select>
18
    </div>
32
        <img id="rating-loading" style="display:none" src="[% interface | html %]/[% theme | html %]/images/spinner-small.gif" alt="" />
19
33
20
    <select class="star_rating" id="star_rating-[% item.itemnumber | html %]" name="rating" autocomplete="off" data-biblionumber="[% item.biblionumber | html %]" data-context="rating-[% item.itemnumber | html %]">
34
        <!-- define some hidden vars for ratings -->
21
35
22
        [% IF ( rating_avg_int == 0 ) %]
36
        <input type="hidden" name="biblionumber" value="[% item.biblionumber | html %]" />
23
            <option value="" selected="selected"></option>
37
        <input type="hidden" name="rating_value" class="rating_value" value="[% item.my_rating.rating_value | html %]" />
24
        [% END %]
25
        [% FOREACH i IN [ 1 2 3 4 5  ] %]
26
            [% IF rating_avg_int == i %]
27
                <option value="[% i | html %]" selected="selected">[% i | html %]</option>
28
            [% ELSE %]
29
                <option value="[% i | html %]">[% i | html %]</option>
30
            [% END %]
31
        [% END %]
32
    </select>
33
    <img id="rating-loading" style="display:none" src="[% interface | html %]/[% theme | html %]/images/spinner-small.gif" alt="" />
34
38
35
    <!-- define some hidden vars for ratings -->
39
        <input name="rate_button" type="submit" class="js-show" value="Rate me" />
36
40
37
    <input type="hidden" name="biblionumber" value="[% item.biblionumber | html %]" />
41
        [% IF item.my_rating %]
38
    <input type="hidden" name="rating_value" class="rating_value" value="[% item.my_rating.rating_value | html %]" />
42
            <div>
39
43
                <span class="rating_value_text">Your rating: [% item.my_rating.rating_value | html %].</span>
40
    <input name="rate_button" type="submit" class="js-show" value="Rate me" />
44
                <span class="cancel_rating_text js-show"><a href="#" data-context="star_rating-[% item.itemnumber | html %]"><i class="fa fa-remove" aria-hidden="true"></i> Cancel rating</a>.</span>
45
            </div>
46
        [% ELSE %]
47
            <span class="rating_value_text"></span>
48
            <span class="cancel_rating_text" style="display:none;"><a href="#" data-context="star_rating-[% item.itemnumber | html %]"><i class="fa fa-remove" aria-hidden="true"></i> Cancel rating</a>.</span>
49
        [% END %]
41
50
42
    [% IF item.my_rating %]
51
        <div class="rating_text">Average rating: [% rating_avg | html %] ([% item.ratings.count | html %] votes)</div>
43
        <div>
52
    </div>
44
            <span class="rating_value_text">Your rating: [% item.my_rating.rating_value | html %].</span>
53
[% ELSE %]
45
            <span class="cancel_rating_text js-show"><a href="#" data-context="star_rating-[% item.itemnumber | html %]"><i class="fa fa-remove" aria-hidden="true"></i> Cancel rating</a>.</span>
54
    <div class="results_summary ratings">
55
        <div class="br-wrapper br-theme-fontawesome-stars">
56
            <div class="br-widget br-readonly">
57
                [% FOREACH i IN [ 1 2 3 4 5  ] %]
58
                    [% IF rating_avg_int == i %]
59
                        <a href="#" class="br-selected br-current"></a>
60
                    [% ELSIF rating_avg_int > i %]
61
                        <a href="#" class="br-selected"></a>
62
                    [% ELSE %]
63
                        <a href="#"></a>
64
                    [% END %]
65
                [% END %]
66
            </div>
46
        </div>
67
        </div>
47
    [% ELSE %]
68
            [% IF item.ratings.count > 0  %]
48
        <span class="rating_value_text"></span>
69
                <span id="rating_total_[% item.biblionumber | html %]">&nbsp;&nbsp;([% item.ratings.count | html %] votes)</span>
49
        <span class="cancel_rating_text" style="display:none;"><a href="#" data-context="star_rating-[% item.itemnumber | html %]"><i class="fa fa-remove" aria-hidden="true"></i> Cancel rating</a>.</span>
70
            [% ELSE %]
50
    [% END %]
71
                <br />
51
72
            [% END %]
52
    <div class="rating_text">Average rating: [% rating_avg | html %] ([% item.ratings.count | html %] votes)</div>
73
    </div>
53
</div>
74
[% END %]
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt (-90 / +13 lines)
Lines 296-345 Link Here
296
                    [%# Following on one line due to translation issues %]
296
                    [%# Following on one line due to translation issues %]
297
                    [% INCLUDE "openlibrary-readapi.inc" bib = { normalized_isbn => normalized_isbn,lccn => lccn, normalized_oclc => normalized_oclc } %]
297
                    [% INCLUDE "openlibrary-readapi.inc" bib = { normalized_isbn => normalized_isbn,lccn => lccn, normalized_oclc => normalized_oclc } %]
298
298
299
                    [% IF ( OpacStarRatings != 'disable' ) %]
299
                    [% IF ( OpacStarRatings != 'disable' && loggedinusername) %]
300
                        <form method="post" action="/cgi-bin/koha/opac-ratings.pl">
300
                        [% INCLUDE 'user-star-ratings.inc' item=rating interact=1 %]
301
                            <legend class="sr-only">Star ratings</legend>
301
                    [% ELSIF ( OpacStarRatings != 'disable' )%]
302
                            <div class="results_summary ratings">
302
                        [% INCLUDE 'user-star-ratings.inc' item=rating %]
303
304
                                [% SET rating_avg = ratings.get_avg_rating() %]
305
                                [% rating_avg_int = BLOCK %][% rating_avg | format("%.0f") %][% END %]
306
307
                                [% IF ( borrowernumber ) %]
308
                                    <select id="star_rating" name="rating" data-rating-enabled="1" autocomplete="off">
309
                                [% ELSE %]
310
                                    <select id="star_rating" name="rating" data-rating-enabled="0" disabled="disabled" autocomplete="off">
311
                                [% END %]
312
                                    [% IF ( rating_avg_int == 0 ) %]
313
                                        <option value="" selected="selected"></option>
314
                                    [% END %]
315
                                    [% FOREACH i IN [ 1 2 3 4 5  ] %]
316
                                        [% IF rating_avg_int == i %]
317
                                            <option value="[% i | html %]" selected="selected">[% i | html %]</option>
318
                                        [% ELSE %]
319
                                            <option value="[% i | html %]">[% i | html %]</option>
320
                                        [% END %]
321
                                    [% END %]
322
                                </select>
323
                                <img id="rating-loading" style="display:none" src="[% interface | html %]/[% theme | html %]/images/spinner-small.gif" alt="" />
324
325
                                <!-- define some hidden vars for ratings -->
326
327
                                <input  type="hidden" name='biblionumber'  value="[% biblio.biblionumber | html %]" />
328
                                <input  type="hidden" name='rating_value' id='rating_value' value="[% my_rating.rating_value | html %]" />
329
330
                                [% UNLESS ( rating_readonly ) %]&nbsp;  <input name="rate_button" type="submit" value="Rate me" />[% END %]&nbsp;
331
332
                                [% IF my_rating %]
333
                                    <span id="rating_value_text">Your rating: [% my_rating.rating_value | html %].</span>
334
                                    <span id="cancel_rating_text"><a href="#"><i class="fa fa-remove" aria-hidden="true"></i> Cancel rating</a>.</span>
335
                                [% ELSE %]
336
                                    <span id="rating_value_text"></span>
337
                                    <span id="cancel_rating_text" style="display:none;"><a href="#"><i class="fa fa-remove" aria-hidden="true"></i> Cancel rating</a>.</span>
338
                                [% END %]
339
340
                                <span id="rating_text">Average rating: [% rating_avg | html %] ([% ratings.count | html %] votes)</span>
341
                            </div>
342
                        </form>
343
                    [% END # / IF OpacStarRatings != 'disable' %]
303
                    [% END # / IF OpacStarRatings != 'disable' %]
344
304
345
                    [% IF ( BakerTaylorContentURL ) %]
305
                    [% IF ( BakerTaylorContentURL ) %]
Lines 1379-1386 Link Here
1379
    [% INCLUDE 'datatables.inc' %]
1339
    [% INCLUDE 'datatables.inc' %]
1380
    [% INCLUDE 'columns_settings.inc' %]
1340
    [% INCLUDE 'columns_settings.inc' %]
1381
    [% INCLUDE greybox.inc %]
1341
    [% INCLUDE greybox.inc %]
1382
    [% IF ( OpacStarRatings != 'disable' ) %][% Asset.js("lib/jquery/plugins/jquery.barrating.min.js") | $raw %][% END %]
1383
1342
1343
    [% IF ( OpacStarRatings != 'disable' ) %]
1344
        [% Asset.js("lib/jquery/plugins/jquery.barrating.min.js") | $raw %]
1345
        [% Asset.js("js/ratings.js") | $raw %]
1346
        <script>
1347
            var borrowernumber = [% borrowernumber | html %];
1348
            var MSG_YOUR_RATING = _("Your rating: %s, ");
1349
            var MSG_AVERAGE_RATING = _("Average rating: %s (%s votes)");
1350
        </script>
1351
    [% END %]
1384
    [% IF ( OpacHighlightedWords ) %][% Asset.js("lib/jquery/plugins/jquery.highlight-3.js") | $raw %][% END %]
1352
    [% IF ( OpacHighlightedWords ) %][% Asset.js("lib/jquery/plugins/jquery.highlight-3.js") | $raw %][% END %]
1385
    [% IF ( Koha.Preference('OPACDetailQRCode') ) %]
1353
    [% IF ( Koha.Preference('OPACDetailQRCode') ) %]
1386
        [% Asset.js("lib/kjua/kjua.min.js") | $raw %]
1354
        [% Asset.js("lib/kjua/kjua.min.js") | $raw %]
Lines 1817-1867 Link Here
1817
                    });
1785
                    });
1818
                }());
1786
                }());
1819
            [% END # /IF ( OPACShelfBrowser ) %]
1787
            [% END # /IF ( OPACShelfBrowser ) %]
1820
1821
            [% IF ( OpacStarRatings != 'disable' ) %]
1822
                // -----------------------------------------------------
1823
                // star-ratings code
1824
                // -----------------------------------------------------
1825
                // hide 'rate' button if javascript enabled
1826
1827
                $('input[name="rate_button"]').remove();
1828
1829
                var rating_enabled = ( $("#star_rating").data("rating-enabled") == "1" ) ? false : true;
1830
                $('#star_rating').barrating({
1831
                    theme: 'fontawesome-stars',
1832
                    showSelectedRating: false,
1833
                    allowEmpty: true,
1834
                    deselectable: false,
1835
                    readonly: rating_enabled,
1836
                    onSelect: function(value, text) {
1837
                        $("#rating-loading").show();
1838
                        $.post("/cgi-bin/koha/opac-ratings-ajax.pl", {
1839
                            rating_old_value: $("#rating_value").attr("value"),
1840
                            borrowernumber: "[% borrowernumber | html %]",
1841
                            biblionumber: "[% biblio.biblionumber | html %]",
1842
                            rating_value: value,
1843
                            auth_error: value
1844
                        }, function (data) {
1845
                                $("#rating_value").val(data.rating_value);
1846
                                if (data.rating_value) {
1847
                                    $("#rating_value_text").text(_("Your rating: %s, ").format(data.rating_value));
1848
                                    $("#cancel_rating_text").show();
1849
                                } else {
1850
                                    $("#rating_value_text").text('');
1851
                                    $("#cancel_rating_text").hide();
1852
                                }
1853
                                $("#rating_text").text(_("Average rating: %s (%s votes)").format(data.rating_avg, data.rating_total));
1854
                                $("#rating-loading").hide();
1855
                        }, "json");
1856
                    }
1857
                });
1858
1859
                $("#cancel_rating_text a").on("click", function(e){
1860
                    e.preventDefault();
1861
                    $("#star_rating").barrating("set", "");
1862
                });
1863
1864
            [% END # / IF ( OpacStarRatings != 'disable' )%]
1865
        });
1788
        });
1866
1789
1867
        $(document).ready(function() {
1790
        $(document).ready(function() {
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-readingrecord.tt (-1 / +1 lines)
Lines 149-155 Link Here
149
                                                <p class="results-summary item-details">[% issue.author | html %]</p>
149
                                                <p class="results-summary item-details">[% issue.author | html %]</p>
150
150
151
                                                    [% IF ( Koha.Preference( 'OpacStarRatings' ) == 'all' ) %]
151
                                                    [% IF ( Koha.Preference( 'OpacStarRatings' ) == 'all' ) %]
152
                                                        [% INCLUDE 'user-star-ratings.inc' item=issue %]
152
                                                        [% INCLUDE 'user-star-ratings.inc' item=issue interact=1 %]
153
                                                    [% END %]
153
                                                    [% END %]
154
154
155
                                                </td>
155
                                                </td>
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt (-23 / +1 lines)
Lines 502-530 Link Here
502
                                                [% INCLUDE "openlibrary-readapi.inc" bib = SEARCH_RESULT %]
502
                                                [% INCLUDE "openlibrary-readapi.inc" bib = SEARCH_RESULT %]
503
503
504
                                                [% IF ( OpacStarRatings == 'all' ) %]
504
                                                [% IF ( OpacStarRatings == 'all' ) %]
505
                                                    <div class="results_summary ratings">
505
                                                    [% INCLUDE 'user-star-ratings.inc' item=SEARCH_RESULT %]
506
                                                        [% SET rating_avg = SEARCH_RESULT.ratings.get_avg_rating() %]
507
                                                        [% rating_avg_int = BLOCK %][% rating_avg | format("%.0f") %][% END %]
508
                                                        <div class="br-wrapper br-theme-fontawesome-stars">
509
                                                            <div class="br-widget br-readonly">
510
                                                                [% FOREACH i IN [ 1 2 3 4 5  ] %]
511
                                                                    [% IF rating_avg_int == i %]
512
                                                                        <a href="#" class="br-selected br-current"></a>
513
                                                                    [% ELSIF rating_avg_int > i %]
514
                                                                        <a href="#" class="br-selected"></a>
515
                                                                    [% ELSE %]
516
                                                                        <a href="#"></a>
517
                                                                    [% END %]
518
                                                                [% END %]
519
                                                            </div>
520
                                                        </div>
521
522
                                                        [% IF SEARCH_RESULT.ratings.count > 0  %]
523
                                                            <span id="rating_total_[% SEARCH_RESULT.biblionumber | html %]">&nbsp;&nbsp;([% SEARCH_RESULT.ratings.count | html %] votes)</span>
524
                                                        [% ELSE %]
525
                                                            <br />
526
                                                        [% END %]
527
                                                    </div> <!-- / .results_summary -->
528
                                                [% END # / IF OpacStarRatings %]
506
                                                [% END # / IF OpacStarRatings %]
529
507
530
                                                [% INCLUDE 'title-actions-menu.inc' items=SEARCH_RESULT %]
508
                                                [% INCLUDE 'title-actions-menu.inc' items=SEARCH_RESULT %]
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt (-1 / +1 lines)
Lines 318-324 Link Here
318
                                                    [% IF ( ISSUE.onsite_checkout ) %] <em class="onsite_checkout">(On-site checkout)</em>[% END %]
318
                                                    [% IF ( ISSUE.onsite_checkout ) %] <em class="onsite_checkout">(On-site checkout)</em>[% END %]
319
319
320
                                                    [% IF ( Koha.Preference('OpacStarRatings') == 'all' ) %]
320
                                                    [% IF ( Koha.Preference('OpacStarRatings') == 'all' ) %]
321
                                                        [% INCLUDE 'user-star-ratings.inc' item=ISSUE %]
321
                                                        [% INCLUDE 'user-star-ratings.inc' item=ISSUE interact=1 %]
322
                                                    [% END %]
322
                                                    [% END %]
323
323
324
                                                    [% IF ( ISSUE.recall ) %]<br><i>This item has been recalled. Please return by the new due date.</i>[% END %]
324
                                                    [% IF ( ISSUE.recall ) %]<br><i>This item has been recalled. Please return by the new due date.</i>[% END %]
(-)a/opac/opac-detail.pl (-7 / +10 lines)
Lines 1159-1170 if (C4::Context->preference("OPACURLOpenInNewWindow")) { Link Here
1159
$template->param(borrowernumber => $borrowernumber);
1159
$template->param(borrowernumber => $borrowernumber);
1160
1160
1161
if ( C4::Context->preference('OpacStarRatings') !~ /disable/ ) {
1161
if ( C4::Context->preference('OpacStarRatings') !~ /disable/ ) {
1162
    my $ratings = Koha::Ratings->search({ biblionumber => $biblionumber });
1162
         my $rating;
1163
    my $my_rating = $borrowernumber ? $ratings->search({ borrowernumber => $borrowernumber })->next : undef;
1163
         my $ratings = Koha::Ratings->search({ biblionumber => $biblionumber });
1164
    $template->param(
1164
         my $my_rating = $borrowernumber ? $ratings->search({ borrowernumber => $borrowernumber })->next : undef;
1165
        ratings => $ratings,
1165
         $rating->{ratings} = $ratings;
1166
        my_rating => $my_rating,
1166
         $rating->{my_rating} = $my_rating;
1167
    );
1167
         $rating->{borrowernumber} = $borrowernumber;
1168
         $rating->{biblionumber} = $biblionumber;
1169
         $template->param(
1170
             rating => $rating,
1171
         );
1168
}
1172
}
1169
1173
1170
#Search for title in links
1174
#Search for title in links
1171
- 

Return to bug 29749