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 1361-1368 Link Here
1361
    [% INCLUDE 'datatables.inc' %]
1321
    [% INCLUDE 'datatables.inc' %]
1362
    [% INCLUDE 'columns_settings.inc' %]
1322
    [% INCLUDE 'columns_settings.inc' %]
1363
    [% INCLUDE greybox.inc %]
1323
    [% INCLUDE greybox.inc %]
1364
    [% IF ( OpacStarRatings != 'disable' ) %][% Asset.js("lib/jquery/plugins/jquery.barrating.min.js") | $raw %][% END %]
1365
1324
1325
    [% IF ( OpacStarRatings != 'disable' ) %]
1326
        [% Asset.js("lib/jquery/plugins/jquery.barrating.min.js") | $raw %]
1327
        [% Asset.js("js/ratings.js") | $raw %]
1328
        <script>
1329
            var borrowernumber = [% borrowernumber | html %];
1330
            var MSG_YOUR_RATING = _("Your rating: %s, ");
1331
            var MSG_AVERAGE_RATING = _("Average rating: %s (%s votes)");
1332
        </script>
1333
    [% END %]
1366
    [% IF ( OpacHighlightedWords ) %][% Asset.js("lib/jquery/plugins/jquery.highlight-3.js") | $raw %][% END %]
1334
    [% IF ( OpacHighlightedWords ) %][% Asset.js("lib/jquery/plugins/jquery.highlight-3.js") | $raw %][% END %]
1367
    [% IF ( Koha.Preference('OPACDetailQRCode') ) %]
1335
    [% IF ( Koha.Preference('OPACDetailQRCode') ) %]
1368
        [% Asset.js("lib/kjua/kjua.min.js") | $raw %]
1336
        [% Asset.js("lib/kjua/kjua.min.js") | $raw %]
Lines 1803-1853 Link Here
1803
                    });
1771
                    });
1804
                }());
1772
                }());
1805
            [% END # /IF ( OPACShelfBrowser ) %]
1773
            [% END # /IF ( OPACShelfBrowser ) %]
1806
1807
            [% IF ( OpacStarRatings != 'disable' ) %]
1808
                // -----------------------------------------------------
1809
                // star-ratings code
1810
                // -----------------------------------------------------
1811
                // hide 'rate' button if javascript enabled
1812
1813
                $('input[name="rate_button"]').remove();
1814
1815
                var rating_enabled = ( $("#star_rating").data("rating-enabled") == "1" ) ? false : true;
1816
                $('#star_rating').barrating({
1817
                    theme: 'fontawesome-stars',
1818
                    showSelectedRating: false,
1819
                    allowEmpty: true,
1820
                    deselectable: false,
1821
                    readonly: rating_enabled,
1822
                    onSelect: function(value, text) {
1823
                        $("#rating-loading").show();
1824
                        $.post("/cgi-bin/koha/opac-ratings-ajax.pl", {
1825
                            rating_old_value: $("#rating_value").attr("value"),
1826
                            borrowernumber: "[% borrowernumber | html %]",
1827
                            biblionumber: "[% biblio.biblionumber | html %]",
1828
                            rating_value: value,
1829
                            auth_error: value
1830
                        }, function (data) {
1831
                                $("#rating_value").val(data.rating_value);
1832
                                if (data.rating_value) {
1833
                                    $("#rating_value_text").text(_("Your rating: %s, ").format(data.rating_value));
1834
                                    $("#cancel_rating_text").show();
1835
                                } else {
1836
                                    $("#rating_value_text").text('');
1837
                                    $("#cancel_rating_text").hide();
1838
                                }
1839
                                $("#rating_text").text(_("Average rating: %s (%s votes)").format(data.rating_avg, data.rating_total));
1840
                                $("#rating-loading").hide();
1841
                        }, "json");
1842
                    }
1843
                });
1844
1845
                $("#cancel_rating_text a").on("click", function(e){
1846
                    e.preventDefault();
1847
                    $("#star_rating").barrating("set", "");
1848
                });
1849
1850
            [% END # / IF ( OpacStarRatings != 'disable' )%]
1851
        });
1774
        });
1852
1775
1853
        $(document).ready(function() {
1776
        $(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 510-538 Link Here
510
                                                [% INCLUDE "openlibrary-readapi.inc" bib = SEARCH_RESULT %]
510
                                                [% INCLUDE "openlibrary-readapi.inc" bib = SEARCH_RESULT %]
511
511
512
                                                [% IF ( OpacStarRatings == 'all' ) %]
512
                                                [% IF ( OpacStarRatings == 'all' ) %]
513
                                                    <div class="results_summary ratings">
513
                                                    [% INCLUDE 'user-star-ratings.inc' item=SEARCH_RESULT %]
514
                                                        [% SET rating_avg = SEARCH_RESULT.ratings.get_avg_rating() %]
515
                                                        [% rating_avg_int = BLOCK %][% rating_avg | format("%.0f") %][% END %]
516
                                                        <div class="br-wrapper br-theme-fontawesome-stars">
517
                                                            <div class="br-widget br-readonly">
518
                                                                [% FOREACH i IN [ 1 2 3 4 5  ] %]
519
                                                                    [% IF rating_avg_int == i %]
520
                                                                        <a href="#" class="br-selected br-current"></a>
521
                                                                    [% ELSIF rating_avg_int > i %]
522
                                                                        <a href="#" class="br-selected"></a>
523
                                                                    [% ELSE %]
524
                                                                        <a href="#"></a>
525
                                                                    [% END %]
526
                                                                [% END %]
527
                                                            </div>
528
                                                        </div>
529
530
                                                        [% IF SEARCH_RESULT.ratings.count > 0  %]
531
                                                            <span id="rating_total_[% SEARCH_RESULT.biblionumber | html %]">&nbsp;&nbsp;([% SEARCH_RESULT.ratings.count | html %] votes)</span>
532
                                                        [% ELSE %]
533
                                                            <br />
534
                                                        [% END %]
535
                                                    </div> <!-- / .results_summary -->
536
                                                [% END # / IF OpacStarRatings %]
514
                                                [% END # / IF OpacStarRatings %]
537
515
538
                                                [% INCLUDE 'title-actions-menu.inc' items=SEARCH_RESULT %]
516
                                                [% INCLUDE 'title-actions-menu.inc' items=SEARCH_RESULT %]
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt (-1 / +1 lines)
Lines 317-323 Link Here
317
                                                    [% IF ( ISSUE.onsite_checkout ) %] <em class="onsite_checkout">(On-site checkout)</em>[% END %]
317
                                                    [% IF ( ISSUE.onsite_checkout ) %] <em class="onsite_checkout">(On-site checkout)</em>[% END %]
318
318
319
                                                    [% IF ( Koha.Preference('OpacStarRatings') == 'all' ) %]
319
                                                    [% IF ( Koha.Preference('OpacStarRatings') == 'all' ) %]
320
                                                        [% INCLUDE 'user-star-ratings.inc' item=ISSUE %]
320
                                                        [% INCLUDE 'user-star-ratings.inc' item=ISSUE interact=1 %]
321
                                                    [% END %]
321
                                                    [% END %]
322
                                                </td>
322
                                                </td>
323
323
(-)a/opac/opac-detail.pl (-7 / +10 lines)
Lines 1148-1159 if (C4::Context->preference("OPACURLOpenInNewWindow")) { Link Here
1148
$template->param(borrowernumber => $borrowernumber);
1148
$template->param(borrowernumber => $borrowernumber);
1149
1149
1150
if ( C4::Context->preference('OpacStarRatings') !~ /disable/ ) {
1150
if ( C4::Context->preference('OpacStarRatings') !~ /disable/ ) {
1151
    my $ratings = Koha::Ratings->search({ biblionumber => $biblionumber });
1151
         my $rating;
1152
    my $my_rating = $borrowernumber ? $ratings->search({ borrowernumber => $borrowernumber })->next : undef;
1152
         my $ratings = Koha::Ratings->search({ biblionumber => $biblionumber });
1153
    $template->param(
1153
         my $my_rating = $borrowernumber ? $ratings->search({ borrowernumber => $borrowernumber })->next : undef;
1154
        ratings => $ratings,
1154
         $rating->{ratings} = $ratings;
1155
        my_rating => $my_rating,
1155
         $rating->{my_rating} = $my_rating;
1156
    );
1156
         $rating->{borrowernumber} = $borrowernumber;
1157
         $rating->{biblionumber} = $biblionumber;
1158
         $template->param(
1159
             rating => $rating,
1160
         );
1157
}
1161
}
1158
1162
1159
#Search for title in links
1163
#Search for title in links
1160
- 

Return to bug 29749