diff --git a/src/Jackett/Content/custom.js b/src/Jackett/Content/custom.js index b7a076d8c..5c8236501 100644 --- a/src/Jackett/Content/custom.js +++ b/src/Jackett/Content/custom.js @@ -31,6 +31,11 @@ $(document).ready(function () { }); +function insertWordWrap(str) { + // insert optional word wrap after punctuation to avoid overflows on long scene titles + return str.replace(/([\.\-_\/\\])/g, "$1\u200B"); +} + function getJackettConfig(callback) { var jqxhr = $.get("get_jackett_config", function (data) { @@ -733,6 +738,12 @@ function showSearch(selectedIndexer) { $('#searchResults div.dataTables_filter input').val(""); clearSearchResultTable($('#searchResults')); var jqxhr = $.post("search", queryObj, function (data) { + for (var i = 0; i < data.Results.length; i++) { + var item = data.Results[i]; + item.Title = insertWordWrap(item.Title); + item.CategoryDesc = insertWordWrap(item.CategoryDesc); + } + $('#jackett-search-perform').html($('#search-button-ready').html()); var searchResults = $('#searchResults'); searchResults.empty(); @@ -778,6 +789,12 @@ $.fn.dataTable.ext.search = [ ] function updateSearchResultTable(element, results) { + for (var i = 0; i < results.length; i++) { + var item = results[i]; + item.Title = insertWordWrap(item.Title); + item.CategoryDesc = insertWordWrap(item.CategoryDesc); + } + var resultsTemplate = Handlebars.compile($("#jackett-search-results").html()); element.html($(resultsTemplate(results))); element.find('tr.jackett-search-results-row').each(function () { updateReleasesRow(this); }); @@ -906,6 +923,11 @@ function bindUIButtons() { $("#jackett-show-releases").click(function () { var jqxhr = $.get("GetCache", function (data) { + for (var i = 0; i < data.length; i++) { + var item = data[i]; + item.Title = insertWordWrap(item.Title); + item.CategoryDesc = insertWordWrap(item.CategoryDesc); + } var releaseTemplate = Handlebars.compile($("#jackett-releases").html()); var item = { releases: data, Title: 'Releases' }; var releaseDialog = $(releaseTemplate(item));