diff --git a/cps/static/css/caliBlur.css b/cps/static/css/caliBlur.css index d085608d..ffa5ecca 100644 --- a/cps/static/css/caliBlur.css +++ b/cps/static/css/caliBlur.css @@ -2119,8 +2119,7 @@ body > div.container-fluid > div > div.col-sm-10 > div.discover > div.container transition: all 0s } - -.book-meta > .bookinfo > .tags .btn-info, .well > form > .btn { +.well > form > .btn { vertical-align: middle; -o-transition: background-color .2s, color .2s } @@ -2957,46 +2956,35 @@ body > div.container-fluid > div > div.col-sm-10 > div > div > div.col-sm-3.col- margin-top: 24px } -.book-meta > .bookinfo > .publishers > span:first-of-type, .book-meta > .bookinfo > .publishing-date > span:first-of-type { +.book-meta > .bookinfo > .languages > span:first-of-type, +.book-meta > .bookinfo > .publishers > span:first-of-type, +.book-meta > .bookinfo > .publishing-date > span:first-of-type, +.real_custom_columns > span:first-of-type { color: hsla(0, 0%, 100%, .45); text-transform: uppercase; - font-family: Open Sans Bold, Helvetica Neue, Helvetica, Arial, sans-serif + font-family: Open Sans Bold, Helvetica Neue, Helvetica, Arial, sans-serif; + width: 200px; + display: inline-block } -.book-meta > .bookinfo > .publishers > span:last-of-type, .book-meta > .bookinfo > .publishing-date > span:last-of-type { +.book-meta > .bookinfo > .languages > span:last-of-type, +.book-meta > .bookinfo > .publishers > span:last-of-type, +.book-meta > .bookinfo > .publishing-date > span:last-of-type, +.real_custom_columns > span:last-of-type { font-family: Open Sans Semibold, Helvetica Neue, Helvetica, Arial, sans-serif; color: #fff; font-size: 15px; -webkit-font-smoothing: antialiased } -.book-meta > .bookinfo > .publishers > span:last-of-type { - padding-left: 90px +.book-meta > .bookinfo > .languages > span > a, +.book-meta > .bookinfo > .publishers > span > a, +.book-meta > .bookinfo > .publishing-date > span > a, +.real_custom_columns > span > a { + color: #fff } -.real_custom_columns > span:last-of-type { - padding-left: 90px -} - -.book-meta > .bookinfo > .publishing-date > span:last-of-type { - padding-left: 90px -} - -.book-meta > .bookinfo > .languages > span:first-of-type { - color: hsla(0, 0%, 100%, .45); - text-transform: uppercase; - font-family: Open Sans Bold, Helvetica Neue, Helvetica, Arial, sans-serif -} - -.book-meta > .bookinfo > .languages > span:last-of-type { - font-size: 15px; - font-family: Open Sans Semibold, Helvetica Neue, Helvetica, Arial, sans-serif; - -webkit-font-smoothing: antialiased; - color: #fff; - padding-left: 85px -} - -.book-meta > .bookinfo > .tags .btn-info, .book-meta > h2, body.book .author { +.book-meta > h2, body.book .author { font-family: Open Sans Bold, Helvetica Neue, Helvetica, Arial, sans-serif } @@ -3077,34 +3065,10 @@ body.book .author { background-color: rgba(0, 0, 0, .3) } -.book-meta > .bookinfo > .identifiers > p > .btn-success, .book-meta > .bookinfo > .tags .btn-info { - overflow: hidden; - text-align: center; - white-space: nowrap; - margin: 2px 3px 0 0; - padding: 0 10px -} - -.book-meta > .bookinfo > .tags .btn-info { - background-color: rgba(0, 0, 0, .15); - color: hsla(0, 0%, 100%, .7); - font-size: 13px; - display: inline-block; - border-radius: 4px; - -webkit-transition: background-color .2s, color .2s; - transition: background-color .2s, color .2s; - text-transform: none -} - .dropdown-menu, .tooltip.in { -webkit-transition: opacity .15s ease-out, -webkit-transform .15s cubic-bezier(.6, .4, .2, 1.4) } -.book-meta > .bookinfo > .tags .btn-info:hover { - color: #fff; - text-decoration: underline -} - .book-meta > .bookinfo > .identifiers, .book-meta > .bookinfo > .tags { padding-left: 40px; margin: 10px 0 @@ -3345,7 +3309,8 @@ div.btn-group[role=group][aria-label="Download, send to Kindle, reading"] .dropd box-shadow: none } -.book-meta > .bookinfo > .identifiers > p > .btn-success { +.book-meta > .bookinfo .btn-info, +.book-meta > .bookinfo .btn-success { background-color: rgba(0, 0, 0, .15); color: hsla(0, 0%, 100%, .7); font-size: 13px; @@ -3359,11 +3324,21 @@ div.btn-group[role=group][aria-label="Download, send to Kindle, reading"] .dropd text-transform: none } -.book-meta > .bookinfo > .identifiers > p > .btn-success:hover { +.book-meta > .bookinfo .btn-info:hover, +.book-meta > .bookinfo .btn-success:hover { color: #fff; text-decoration: underline } +.book-meta > .bookinfo .btn-info, +.book-meta > .bookinfo .btn-success { + overflow: hidden; + text-align: center; + white-space: nowrap; + margin: 2px 3px 0 0; + padding: 0 10px +} + #bookDetailsModal .book-meta { color: hsla(0, 0%, 100%, .7); height: calc(100% - 120px); @@ -6970,16 +6945,12 @@ body.edituser.admin > div.container-fluid > div.row-fluid > div.col-sm-10 > div. margin: 45px } - .book-meta > .bookinfo > .publishing-date > span:last-of-type { - padding-left: 25px - } - - .book-meta > .bookinfo > .publishers > span:last-of-type { - padding-left: 70px - } - - .book-meta > .bookinfo > .languages > span:last-of-type { - padding-left: 65px + .book-meta > .bookinfo > .languages > span:first-of-type, + .book-meta > .bookinfo > .publishers > span:first-of-type, + .book-meta > .bookinfo > .publishing-date > span:first-of-type, + .real_custom_columns > span:first-of-type { + width: 50%; + max-width: 200px; } .book-meta > .bookinfo .publishers { diff --git a/cps/static/js/caliBlur.js b/cps/static/js/caliBlur.js index 73e1c320..7769a4ea 100644 --- a/cps/static/js/caliBlur.js +++ b/cps/static/js/caliBlur.js @@ -145,44 +145,16 @@ if ($("body.book").length > 0) { $(".blur-wrapper") .prepend('
Blurred cover
'); - // Fix-up book detail headings - publisher = $(".publishers p span").text().split(":"); - $(".publishers p span").remove(); - $.each(publisher, function (i, val) { - $(".publishers").append("" + publisher[i] + ""); - }); - $(".publishers span:nth-child(3)").text(function () { - return $(this).text().replace(/^\s+|^\t+|\t+|\s+$/g, ""); - }); - - // Fix-up book custom colums headings - // real_custom_column = $( '.real_custom_columns' ).text().split( ':' ); - real_custom_column = $(".real_custom_columns"); - // $( ".real_custom_columns" ).remove(); - $.each(real_custom_column, function (i, val) { - var split = $(this).text().split(":"); - real_cc_key = split.shift(); - real_cc_value = split.join(":"); - $(this).text(""); - if (real_cc_value != "") { - $(this).append("" + real_cc_key + "" + real_cc_value + ""); + // Metadata Fields - Publishers, Published, Languages and Custom + $('.publishers, .publishing-date, .real_custom_columns, .languages').each(function () { + var splitText = $(this).text().split(':'); + var label = splitText.shift().trim(); + var value = splitText.join(':').trim(); + // Preserve Links + if ($(this).find('a').length) { + value = $(this).find('a').first().removeClass(); } - }); - //$( '.real_custom_columns:nth-child(3)' ).text(function() { - //return $(this).text().replace(/^\s+|^\t+|\t+|\s+$/g, ""); - //}); - - published = $(".publishing-date p") - .text().split(": "); - $(".publishing-date p").remove(); - $.each(published, function (i, val) { - $(".publishing-date").append("" + published[i] + ""); - }); - - languages = $(".languages p span").text().split(": "); - $(".languages p span").remove(); - $.each(languages, function (i, val) { - $(".languages").append("" + languages[i] + ""); + $(this).html('' + label + '').find('span').last().append(value); }); $(".book-meta h2:first").clone() @@ -246,11 +218,6 @@ if ($("body.book").length > 0) { $("#add-to-shelves").toggle(); }); - // Fix formatting error on book detail languages - if (!$(".book-meta > .bookinfo > .languages > span:last-of-type").text().startsWith(" ")) { - $(".book-meta > .bookinfo > .languages > span:last-of-type").prepend(" "); - } - //Work to reposition dropdowns. Does not currently solve for //screen resizing function dropdownToggle() { diff --git a/cps/static/js/kthoom.js b/cps/static/js/kthoom.js index 40db69ab..69f4be96 100644 --- a/cps/static/js/kthoom.js +++ b/cps/static/js/kthoom.js @@ -141,9 +141,24 @@ var createURLFromArray = function(array, mimeType) { kthoom.ImageFile = function(file) { this.filename = file.filename; var fileExtension = file.filename.split(".").pop().toLowerCase(); - this.mimeType = fileExtension === "png" ? "image/png" : - (fileExtension === "jpg" || fileExtension === "jpeg") ? "image/jpeg" : - fileExtension === "gif" ? "image/gif" : fileExtension === "svg" ? "image/xml+svg" : undefined; + switch (fileExtension) { + case "jpg": + case "jpeg": + this.mimeType = "image/jpeg"; + break; + case "gif": + this.mimeType = "iamge/gif"; + break; + case "svg": + this.mimeType = "image/svg+xml"; + break; + case "webp": + this.mimeType = "image/webp"; + break; + default: + this.mimeType = undefined; + break; + } if ( this.mimeType !== undefined) { this.dataURI = createURLFromArray(file.fileData, this.mimeType); this.data = file; @@ -331,7 +346,7 @@ function setImage(url) { $("#mainText").innerHTML(""); }; xhr.send(null); - } else if (!/(jpg|jpeg|png|gif)$/.test(imageFiles[currentImage].filename) && imageFiles[currentImage].data.uncompressedSize < 10 * 1024) { + } else if (!/(jpg|jpeg|png|gif|webp)$/.test(imageFiles[currentImage].filename) && imageFiles[currentImage].data.uncompressedSize < 10 * 1024) { xhr.open("GET", url, true); xhr.onload = function() { $("#mainText").css("display", ""); diff --git a/cps/templates/detail.html b/cps/templates/detail.html index 503d1dbd..06686a9c 100644 --- a/cps/templates/detail.html +++ b/cps/templates/detail.html @@ -89,7 +89,7 @@ {% endif %} -

{{entry.title|shortentitle(40)}}

+

{{entry.title}}

{% for author in entry.authors %} {{author.name.replace('|',',')}} diff --git a/cps/web.py b/cps/web.py index 2a027eac..5b805ac8 100644 --- a/cps/web.py +++ b/cps/web.py @@ -264,7 +264,7 @@ def get_comic_book(book_id, book_format, page): else: b64 = extract(page).encode('base64') ext = names[page].rpartition('.')[-1] - if ext not in ('png', 'gif', 'jpg', 'jpeg'): + if ext not in ('png', 'gif', 'jpg', 'jpeg', 'webp'): ext = 'png' extractedfile="data:image/" + ext + ";base64," + b64 fileData={"name": names[page], "page":page, "last":len(names)-1, "content": extractedfile}