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

(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt (-103 / +121 lines)
Lines 1650-1665 Link Here
1650
    [% IF OpenLibraryCovers || OpenLibrarySearch %]
1650
    [% IF OpenLibraryCovers || OpenLibrarySearch %]
1651
        [% Asset.js("js/openlibrary.js") | $raw %]
1651
        [% Asset.js("js/openlibrary.js") | $raw %]
1652
    [% END %]
1652
    [% END %]
1653
    <script>
1654
        const interface = "[% interface | html %]";
1655
        addPrefs({
1656
            OpacHighlightedWords: "[% Koha.Preference('OpacHighlightedWords') | html %]",
1657
            NotHighlightedWords: "[% Koha.Preference('NotHighlightedWords') | html %]",
1658
            GoogleJackets: [% Koha.Preference('GoogleJackets') ? 1 : 0 | html %],
1659
            OpacCoce: [% Koha.Preference('OpacCoce') ? 1 : 0 | html %],
1660
            CoceHost: "[% Koha.Preference('CoceHost') | html %]",
1661
            CoceProviders: "[% Koha.Preference('CoceProviders') | html %]",
1662
            OpenLibraryCovers: [% Koha.Preference('OpenLibraryCovers') ? 1 : 0 | html %],
1663
            OPACLocalCoverImages: [% Koha.Preference('OPACLocalCoverImages') ? 1 : 0 | html %],
1664
            OPACPopupAuthorsSearch: [% Koha.Preference('OPACPopupAuthorsSearch') ? 1 : 0 | html %],
1665
            OPACDetailQRCode: [% Koha.Preference('OPACDetailQRCode') ? 1 : 0 | html %],
1666
            OpacBrowseResults: [% Koha.Preference('OpacBrowseResults') ? 1 : 0 | html %],
1667
            TagsInputEnabled: [% Koha.Preference('TagsInputEnabled') ? 1 : 0 | html %],
1668
            OPACURLOpenInNewWindow: [% Koha.Preference('OPACURLOpenInNewWindow') ? 1 : 0 | html %],
1669
            OPACShelfBrowser: [% Koha.Preference('OPACShelfBrowser') ? 1 : 0 | html %],
1670
            OPACTableColExpandedByDefault: [% Koha.Preference('OPACTableColExpandedByDefault') ? 1 : 0 | html %],
1671
        });
1672
        const busc = "[% busc | html %]";
1673
        const query_desc = "[% query_desc | html %]";
1674
        const loggedinusername = "[% loggedinusername | html %]";
1675
1676
        var holdingst_table_settings = [% TablesSettings.GetTableSettings( 'opac', 'biblio-detail', 'holdingst', 'json' ) | $raw %];
1677
        [% IF ( !item_level_itypes || Koha.Preference('BiblioItemtypeInfo') ) %]
1678
            // The default in the yaml file is 1 "Item type".
1679
            // If item-level_itypes is off the column will not appear, then select column 2 "Current library"
1680
            if (holdingst_table_settings.default_sort_order == 1) {
1681
                holdingst_table_settings.default_sort_order = 2;
1682
            }
1683
        [% END %]
1684
        var otherholdingst_table_settings = JSON.parse(JSON.stringify(holdingst_table_settings)); // Clone
1685
1686
        let column;
1687
        [% FOR k IN hidden_columns_force.holdingst %]
1688
            column = holdingst_table_settings.columns.find(c => c.columnname == '[% k | html %]');
1689
            column.is_hidden = 1;
1690
            column.cannot_be_toggled = 1;
1691
        [% END %]
1692
1693
        [% FOR k IN hidden_columns_force.otherholdingst %]
1694
            column = otherholdingst_table_settings.columns.find(c => c.columnname == '[% k | html %]');
1695
            column.is_hidden = 1;
1696
            column.cannot_be_toggled = 1;
1697
        [% END %]
1698
1699
        var serial_table_settings = [% TablesSettings.GetTableSettings( 'opac', 'biblio-detail', 'subscriptionst', 'json' ) | $raw %];
1700
1701
        const defaulttab = "[% defaulttab | html %]";
1702
    </script>
1703
1653
    <script>
1704
    <script>
1654
        window.emojiPicker = new EmojiPicker({
1705
        window.emojiPicker = new EmojiPicker({
1655
        emojiable_selector: '[data-emojiable=true]',
1706
        emojiable_selector: '[data-emojiable=true]',
1656
        assetsPath: '[% interface | html %]/lib/emoji-picker/img/',
1707
        assetsPath: `${interface}/lib/emoji-picker/img/`,
1657
        popupButtonClasses: 'fa-solid fa-face-smile'
1708
        popupButtonClasses: 'fa-solid fa-face-smile'
1658
        });
1709
        });
1659
        window.emojiPicker.discover();
1710
        window.emojiPicker.discover();
1660
1711
1661
        var OPACPopupAuthorsSearch = "[% Koha.Preference('OPACPopupAuthorsSearch') | html %]";
1712
        if (prefs.OpacHighlightedWords){
1662
        [% IF ( OpacHighlightedWords ) %]
1663
            var q_array = new Array();  // holds search terms if available
1713
            var q_array = new Array();  // holds search terms if available
1664
1714
1665
            function highlightOff() {
1715
            function highlightOff() {
Lines 1672-1678 Link Here
1672
                    if ( q_array[x].length > 0 ) {
1722
                    if ( q_array[x].length > 0 ) {
1673
                        q_array[x] = q_array[x].replace(/\w*:([\w])/, "$1");
1723
                        q_array[x] = q_array[x].replace(/\w*:([\w])/, "$1");
1674
                        q_array[x] = q_array[x].toLowerCase();
1724
                        q_array[x] = q_array[x].toLowerCase();
1675
                        var myStopwords = "[% Koha.Preference('NotHighlightedWords') | html %]".toLowerCase().split('|');
1725
                        var myStopwords = prefs.NotHighlightedWords.toLowerCase().split('|');
1676
                        if( $.inArray(q_array[x], myStopwords) == -1 ) {
1726
                        if( $.inArray(q_array[x], myStopwords) == -1 ) {
1677
                            $("#marcnotes").highlight(q_array[x]);
1727
                            $("#marcnotes").highlight(q_array[x]);
1678
                            $(".title").highlight(q_array[x]);
1728
                            $(".title").highlight(q_array[x]);
Lines 1683-1689 Link Here
1683
                }
1733
                }
1684
                $(".highlight_toggle").toggle();
1734
                $(".highlight_toggle").toggle();
1685
            }
1735
            }
1686
        [% END # /IF OpacHighlightedWords %]
1736
        }
1687
1737
1688
        function verify_cover_images() {
1738
        function verify_cover_images() {
1689
            // Loop over each container in the template which contains covers
1739
            // Loop over each container in the template which contains covers
Lines 1825-1847 Link Here
1825
            var loaded = 1;
1875
            var loaded = 1;
1826
            counter_wait++;
1876
            counter_wait++;
1827
1877
1828
            [% IF GoogleJackets %]
1878
            if (prefs.GoogleJackets){
1829
                if ( loaded ) {
1879
                if ( loaded ) {
1830
                    loaded = KOHA.Google.done;
1880
                    loaded = KOHA.Google.done;
1831
                }
1881
                }
1832
            [% END %]
1882
            }
1833
1883
1834
            [% IF OpenLibraryCovers %]
1884
            if (prefs.OpenLibraryCovers){
1835
                if ( loaded ) {
1885
                if ( loaded ) {
1836
                    loaded = KOHA.OpenLibrary.done;
1886
                    loaded = KOHA.OpenLibrary.done;
1837
                }
1887
                }
1838
            [% END %]
1888
            }
1839
1889
1840
            [% IF ( Koha.Preference('OpacCoce') && Koha.Preference('CoceProviders') ) %]
1890
            if (prefs.OpacCoce && prefs.CoceProviders){
1841
                if ( loaded ) {
1891
                if ( loaded ) {
1842
                    loaded = KOHA.coce.done;
1892
                    loaded = KOHA.coce.done;
1843
                }
1893
                }
1844
            [% END %]
1894
            }
1845
1895
1846
            if (!loaded && counter_wait < 50) {// Do not wait more than 5 seconds
1896
            if (!loaded && counter_wait < 50) {// Do not wait more than 5 seconds
1847
                window.setTimeout(function(){wait_for_images(cb);}, 100);
1897
                window.setTimeout(function(){wait_for_images(cb);}, 100);
Lines 1859-1865 Link Here
1859
1909
1860
        $(document).ready(function() {
1910
        $(document).ready(function() {
1861
1911
1862
            [% IF ( Koha.Preference('OPACDetailQRCode') ) %]
1912
            if (prefs.OPACDetailQRCode){
1863
1913
1864
                var link_canonical = document.querySelector("link[rel=canonical]");
1914
                var link_canonical = document.querySelector("link[rel=canonical]");
1865
1915
Lines 1883-1906 Link Here
1883
                        qrcodeImg.addClass("d-none");
1933
                        qrcodeImg.addClass("d-none");
1884
                    }
1934
                    }
1885
                });
1935
                });
1886
            [% END # /IF OPACDetailQRCode %]
1936
            }
1887
1937
1888
            [% SWITCH defaulttab -%]
1938
            switch (defaulttab){
1889
            [%   CASE 'holdings' -%]
1939
                case 'holdings':
1890
                showBsTab("bibliodescriptions", "holdings");
1940
                case 'descriptions':
1891
            [%   CASE 'components' -%]
1941
                case 'subscriptions':
1892
                showBsTab("bibliodescriptions", "components");
1942
                case 'serialcollection':
1893
            [%   CASE 'descriptions' -%]
1943
                    showBsTab("bibliodescriptions", defaulttab);
1894
                showBsTab("bibliodescriptions", "descriptions");
1944
                    break
1895
            [%   CASE 'subscriptions' -%]
1945
                case 'media'
1896
                showBsTab("bibliodescriptions", "subscriptions");
1946
                    showBsTab("bibliodescriptions", "html5media");
1897
            [%   CASE 'serialcollection' -%]
1947
                    break
1898
                showBsTab("bibliodescriptions", "serialcollection");
1948
                case:
1899
            [%   CASE 'media' -%]
1949
                    showBsTab("bibliodescriptions", "holdings");
1900
                showBsTab("bibliodescriptions", "html5media");
1950
            }
1901
            [%   CASE  -%]
1902
                showBsTab("bibliodescriptions", "holdings");
1903
            [% END -%]
1904
1951
1905
            let urlParams = new URLSearchParams(window.location.search);
1952
            let urlParams = new URLSearchParams(window.location.search);
1906
            if ( urlParams.has('tab') ) {
1953
            if ( urlParams.has('tab') ) {
Lines 1910-1916 Link Here
1910
                }
1957
                }
1911
            }
1958
            }
1912
1959
1913
            [% IF ( Koha.Preference('OpacBrowseResults') && busc ) %]
1960
            if (prefs.OpacBrowseResults && busc){
1914
                $(".l_Results").show();
1961
                $(".l_Results").show();
1915
                $("#a_listResults").on("click", function(e){
1962
                $("#a_listResults").on("click", function(e){
1916
                    e.preventDefault();
1963
                    e.preventDefault();
Lines 1921-1956 Link Here
1921
                    e.preventDefault();
1968
                    e.preventDefault();
1922
                    $(".results-pagination, .close_pagination, .pg_menu").toggle();
1969
                    $(".results-pagination, .close_pagination, .pg_menu").toggle();
1923
                });
1970
                });
1924
            [% END # /IF OpacBrowseResults %]
1971
            }
1925
1926
            var holdingst_table_settings = [% TablesSettings.GetTableSettings( 'opac', 'biblio-detail', 'holdingst', 'json' ) | $raw %];
1927
            [% IF ( !item_level_itypes || Koha.Preference('BiblioItemtypeInfo') ) %]
1928
                // The default in the yaml file is 1 "Item type".
1929
                // If item-level_itypes is off the column will not appear, then select column 2 "Current library"
1930
                if (holdingst_table_settings.default_sort_order == 1) {
1931
                    holdingst_table_settings.default_sort_order = 2;
1932
                }
1933
            [% END %]
1934
            var otherholdingst_table_settings = JSON.parse(JSON.stringify(holdingst_table_settings)); // Clone
1935
1936
            let column;
1937
            [% FOR k IN hidden_columns_force.holdingst %]
1938
                column = holdingst_table_settings.columns.find(c => c.columnname == '[% k | html %]');
1939
                column.is_hidden = 1;
1940
                column.cannot_be_toggled = 1;
1941
            [% END %]
1942
1943
            [% FOR k IN hidden_columns_force.otherholdingst %]
1944
                column = otherholdingst_table_settings.columns.find(c => c.columnname == '[% k | html %]');
1945
                column.is_hidden = 1;
1946
                column.cannot_be_toggled = 1;
1947
            [% END %]
1948
1972
1949
            [% IF ( Koha.Preference('OPACTableColExpandedByDefault') ) %]
1973
            var responsive_display = prefs.OPACTableColExpandedByDefault ? DataTable.Responsive.display.childRowImmediate : DataTable.Responsive.display.childRow;
1950
                var responsive_display = DataTable.Responsive.display.childRowImmediate;
1951
            [% ELSE %]
1952
                var responsive_display = DataTable.Responsive.display.childRow;
1953
            [% END %]
1954
1974
1955
            $("#holdingst").kohaTable(
1975
            $("#holdingst").kohaTable(
1956
                {
1976
                {
Lines 1981-1988 Link Here
1981
                otherholdingst_table_settings,
2001
                otherholdingst_table_settings,
1982
            );
2002
            );
1983
2003
1984
            var serial_table_settings = [% TablesSettings.GetTableSettings( 'opac', 'biblio-detail', 'subscriptionst', 'json' ) | $raw %];
1985
1986
            $(".subscriptionst").kohaTable(
2004
            $(".subscriptionst").kohaTable(
1987
                {
2005
                {
1988
                    dom: '<"clearfix">t',
2006
                    dom: '<"clearfix">t',
Lines 2004-2010 Link Here
2004
                dTables.DataTable().responsive.recalc();
2022
                dTables.DataTable().responsive.recalc();
2005
            } );
2023
            } );
2006
2024
2007
            [% IF ( TagsInputEnabled && loggedinusername ) %]
2025
            if (prefs.TagsInputEnabled && loggedinusername){
2008
                    $(".tag_add").click(function(){
2026
                    $(".tag_add").click(function(){
2009
                        var thisid = $(this).attr("id");
2027
                        var thisid = $(this).attr("id");
2010
                        thisid = thisid.replace("tag_add","");
2028
                        thisid = thisid.replace("tag_add","");
Lines 2033-2062 Link Here
2033
                        KOHA.Tags.add_tag_button(thisid, tag);
2051
                        KOHA.Tags.add_tag_button(thisid, tag);
2034
                        return false;
2052
                        return false;
2035
                    });
2053
                    });
2036
            [% END %]
2054
            }
2037
2055
2038
            [% IF ( query_desc ) %]
2056
            if (query_desc){
2039
                [% IF ( OpacHighlightedWords ) %]
2057
                if (prefs.OpacHighlightedWords){
2040
                    var query_desc = "[% query_desc |replace("'", "\'") |replace('\n', '\\n') |replace('\r', '\\r') | html %]";
2058
                    var query_desc_replaced = query_desc.replace("'", "\'").replace('\n', '\\n').replace('\r', '\\r');
2041
                    q_array = query_desc.split(" ");
2059
                    q_array = query_desc_replaced.split(" ");
2042
                    q_array = q_array.filter(function(n){ return n }); // Remove empty strings
2060
                    q_array = q_array.filter(function(n){ return n }); // Remove empty strings
2043
                    highlightOn();
2061
                    highlightOn();
2044
                    $("#highlight_toggle_on" ).hide().click(function() {highlightOn() ; return false;});
2062
                    $("#highlight_toggle_on" ).hide().click(function() {highlightOn() ; return false;});
2045
                    $("#highlight_toggle_off").show().click(function() {highlightOff(); return false;});
2063
                    $("#highlight_toggle_off").show().click(function() {highlightOff(); return false;});
2046
                [% END %]
2064
                }
2047
            [% END %]
2065
            }
2048
2066
2049
            [% IF ( GoogleJackets ) %]
2067
            if (prefs.GoogleJackets){
2050
                KOHA.Google.GetCoverFromIsbn([% covernewwindow | html %]);
2068
                KOHA.Google.GetCoverFromIsbn(prefs.OPACURLOpenInNewWindow);
2051
            [% END %]
2069
            }
2052
2070
2053
            [% IF ( Koha.Preference('OpacCoce') && Koha.Preference('CoceProviders') ) %]
2071
            if (prefs.OpacCoce && prefs.CoceProviders){
2054
                KOHA.coce.getURL('[% Koha.Preference('CoceHost') | html %]', '[% Koha.Preference('CoceProviders') | html %]', $('#biblio-cover-slider') );
2072
                KOHA.coce.getURL(prefs.CoceHost, prefs_CoceProviders, $('#biblio-cover-slider') );
2055
            [% END %]
2073
            }
2056
2074
2057
            [% IF OpenLibraryCovers %]
2075
            if (prefs.OpenLibraryCovers){
2058
                KOHA.OpenLibrary.GetCoverFromIsbn();
2076
                KOHA.OpenLibrary.GetCoverFromIsbn();
2059
            [% END %]
2077
            }
2060
2078
2061
            [% IF ( NovelistSelectProfile && ( normalized_isbn || normalized_upc ) ) %]
2079
            [% IF ( NovelistSelectProfile && ( normalized_isbn || normalized_upc ) ) %]
2062
                novSelect.loadContentForQuery(
2080
                novSelect.loadContentForQuery(
Lines 2074-2080 Link Here
2074
                    });
2092
                    });
2075
            [% END %]
2093
            [% END %]
2076
2094
2077
            [% IF ( OPACShelfBrowser ) %]
2095
            if (prefs.OPACShelfBrowser){
2078
                // Focus on shelf browser if present
2096
                // Focus on shelf browser if present
2079
                var shelfbrowser = $("#shelfbrowser");
2097
                var shelfbrowser = $("#shelfbrowser");
2080
                if (shelfbrowser.length > 0) {
2098
                if (shelfbrowser.length > 0) {
Lines 2100-2117 Link Here
2100
                            },
2118
                            },
2101
                            success: function(data){
2119
                            success: function(data){
2102
                                $("#shelfbrowser").replaceWith(data);
2120
                                $("#shelfbrowser").replaceWith(data);
2103
                                [% IF ( GoogleJackets ) %]
2121
                                if (prefs.GoogleJackets){
2104
                                    KOHA.Google.GetCoverFromIsbn([% covernewwindow | html %]);
2122
                                    KOHA.Google.GetCoverFromIsbn(prefs.OPACURLOpenInNewWindow);
2105
                                [% END %]
2123
                                }
2106
                                [% IF ( Koha.Preference('OpacCoce') && Koha.Preference('CoceProviders') ) %]
2124
                                if (prefs.OpacCoce && prefs.CoceProviders){
2107
                                    KOHA.coce.getURL('[% Koha.Preference('CoceHost') | html %]', '[% Koha.Preference('CoceProviders') | html %]', $("#bibliodescriptions"));
2125
                                    KOHA.coce.getURL(prefs.CoceHost, prefs.CoceProviders, $("#bibliodescriptions"));
2108
                                [% END %]
2126
                                }
2109
                                [% IF OpenLibraryCovers %]
2127
                                if (prefs.OpenLibraryCovers){
2110
                                    KOHA.OpenLibrary.GetCoverFromIsbn();
2128
                                    KOHA.OpenLibrary.GetCoverFromIsbn();
2111
                                [% END %]
2129
                                }
2112
                                [% IF OPACLocalCoverImages %]
2130
                                if (OPACLocalCoverImages){
2113
                                    KOHA.LocalCover.GetCoverFromBibnumber(true);
2131
                                    KOHA.LocalCover.GetCoverFromBibnumber(true);
2114
                                [% END %]
2132
                                }
2115
                            }
2133
                            }
2116
                        });
2134
                        });
2117
                    });
2135
                    });
Lines 2125-2147 Link Here
2125
                            },
2143
                            },
2126
                            success: function(data){
2144
                            success: function(data){
2127
                                $("#shelfbrowser").replaceWith(data);
2145
                                $("#shelfbrowser").replaceWith(data);
2128
                                [% IF ( GoogleJackets ) %]
2146
                                if (prefs.GoogleJackets){
2129
                                    KOHA.Google.GetCoverFromIsbn([% covernewwindow | html %]);
2147
                                    KOHA.Google.GetCoverFromIsbn(prefs.OPACURLOpenInNewWindow);
2130
                                [% END %]
2148
                                }
2131
                                [% IF ( Koha.Preference('OpacCoce') && Koha.Preference('CoceProviders') ) %]
2149
                                if (prefs.OpacCoce && prefs.CoceProviders){
2132
                                    KOHA.coce.getURL('[% Koha.Preference('CoceHost') | html %]', '[% Koha.Preference('CoceProviders') | html %]', $("#bibliodescriptions"));
2150
                                    KOHA.coce.getURL(prefs.CoceHost, prefs.CoceProviders, $("#bibliodescriptions"));
2133
                                [% END %]
2151
                                }
2134
                                [% IF OpenLibraryCovers %]
2152
                                if (prefs.OpenLibraryCovers){
2135
                                    KOHA.OpenLibrary.GetCoverFromIsbn();
2153
                                    KOHA.OpenLibrary.GetCoverFromIsbn();
2136
                                [% END %]
2154
                                }
2137
                                [% IF OPACLocalCoverImages %]
2155
                                if (prefs.OPACLocalCoverImages){
2138
                                    KOHA.LocalCover.GetCoverFromBibnumber(true);
2156
                                    KOHA.LocalCover.GetCoverFromBibnumber(true);
2139
                                [% END %]
2157
                                }
2140
                            }
2158
                            }
2141
                        });
2159
                        });
2142
                    });
2160
                    });
2143
                }());
2161
            }());
2144
            [% END # /IF ( OPACShelfBrowser ) %]
2162
        }
2145
2163
2146
            $(".edit_comment").on("click", function(e){
2164
            $(".edit_comment").on("click", function(e){
2147
                e.preventDefault();
2165
                e.preventDefault();
Lines 2150-2156 Link Here
2150
        });
2168
        });
2151
2169
2152
        $(document).ready(function() {
2170
        $(document).ready(function() {
2153
            if( OPACPopupAuthorsSearch == "1" ){
2171
            if( prefs.OPACPopupAuthorsSearch ){
2154
                var terms = {
2172
                var terms = {
2155
                    contributors : {
2173
                    contributors : {
2156
                        "label" : "author",
2174
                        "label" : "author",
Lines 2212-2218 Link Here
2212
                    e.preventDefault();
2230
                    e.preventDefault();
2213
                    multiSearchRequest();
2231
                    multiSearchRequest();
2214
                });
2232
                });
2215
            } /* if( OPACPopupAuthorsSearch == "1" ) */
2233
            }
2216
2234
2217
            $(".library_info").on("click", function(e){
2235
            $(".library_info").on("click", function(e){
2218
                e.preventDefault();
2236
                e.preventDefault();
(-)a/opac/opac-detail.pl (-10 lines)
Lines 1180-1194 if ( C4::Context->preference('TagsEnabled') and $tag_quantity = C4::Context->pre Link Here
1180
    );
1180
    );
1181
}
1181
}
1182
1182
1183
if ( C4::Context->preference("OPACURLOpenInNewWindow") ) {
1184
1185
    # These values are going to be read by Javascript, at least in the case
1186
    # of the google covers
1187
    $template->param( covernewwindow => 'true' );
1188
} else {
1189
    $template->param( covernewwindow => 'false' );
1190
}
1191
1192
$template->param( borrowernumber => $borrowernumber );
1183
$template->param( borrowernumber => $borrowernumber );
1193
1184
1194
if ( C4::Context->preference('OpacStarRatings') !~ /disable/ ) {
1185
if ( C4::Context->preference('OpacStarRatings') !~ /disable/ ) {
1195
- 

Return to bug 41582