From 53a66f70e4a8f9585b3d1a459542fb2e44f310f2 Mon Sep 17 00:00:00 2001 From: Radek Czajka Date: Wed, 5 Feb 2025 10:23:24 +0100 Subject: [PATCH] fix for paralells --- .../templates/catalogue/book_text.html | 45 +++++---- .../static/2022/styles/layout/_text.scss | 95 +++++++++++++++++++ src/wolnelektury/static/js/book_text/menu.js | 64 +++++++++++-- 3 files changed, 177 insertions(+), 27 deletions(-) diff --git a/src/catalogue/templates/catalogue/book_text.html b/src/catalogue/templates/catalogue/book_text.html index dbe92591a..18e4bcc43 100644 --- a/src/catalogue/templates/catalogue/book_text.html +++ b/src/catalogue/templates/catalogue/book_text.html @@ -176,7 +176,29 @@
- {% with next=book.get_next_text prev=book.get_prev_text %} + + +{% with next=book.get_next_text prev=book.get_prev_text %} {% if next %} {{ next.title }} → {% endif %} @@ -281,28 +303,9 @@
+ - {% if book.other_versions.exists %} -
-

{% trans "Inne wersje utworu" %}

- {% trans "Zamknij drugą wersję" %} - -
- {% endif %} -
{% annoy_banners 'book-text-intermission' %} diff --git a/src/wolnelektury/static/2022/styles/layout/_text.scss b/src/wolnelektury/static/2022/styles/layout/_text.scss index 65bc48aef..1fde2b98a 100644 --- a/src/wolnelektury/static/2022/styles/layout/_text.scss +++ b/src/wolnelektury/static/2022/styles/layout/_text.scss @@ -294,6 +294,7 @@ h2 { h3, .subtitle2 { font-size: 1.5em; margin: 1.5em 0 1em 0; + padding-right: 48px; font-weight: normal; line-height: 1.5em; } @@ -1044,3 +1045,97 @@ background: #fff; } } } + + + +#sidebar { + position: absolute; + left: 0; + top: 20px; + width: 200px; + + h2 { + font-size: 20px; + margin-bottom: 1em; + } + + .other-text-close { + display: none; + } + + #other { + ul { + list-style: none; + margin: 0; + padding: 0; + + .book-mini-box { + position: relative; + width: 137px; + .language { + position: absolute; + top: 163px; + left: 10px; + color: white; + background: black; + padding: 0 10px; + border-radius: 10px; + font-size: 14px; + line-height: 20px; + + } + .author, .title { + display: block; + font-size: 14px; + line-height: 18px; + } + } + } + } +} +.with-other-text { + #sidebar { + .other-text-close { + display: block; + background: red; + padding: 10px; + margin: 10px 0; + border-radius: 10px; + color: white; + text-decoration: none; + } + } + #main-text { + #book-text { + .other { + overflow: hidden; + margin: 10px 40px 10px 50px; + padding: 10px 20px 0 10px; + background: #eee; + border-left: 10px double #ddd; + + h3 { + margin: 0; + padding: 0; + } + + .paragraph { + padding: 0; + } + } + } + } +} + +:lang(pl), +:lang(en), +:lang(de), +:lang(fr), +:lang(lt), +:lang(uk) +{ + direction: ltr; +} +:lang(he) { + direction: rtl; +} diff --git a/src/wolnelektury/static/js/book_text/menu.js b/src/wolnelektury/static/js/book_text/menu.js index eff64a0c6..dde96edf9 100644 --- a/src/wolnelektury/static/js/book_text/menu.js +++ b/src/wolnelektury/static/js/book_text/menu.js @@ -94,33 +94,85 @@ $("#menu a").each(function() { $("#menu-other").show(); + function insertOtherText(text) { + let tree = $(text); + let lang = tree.attr('lang') || 'pl'; + + // toc? + // themes? + + let cursor = $(".main-text-body #book-text").children().first(); + // wstawiamy przed kursorem + lastTarget = ''; + tree.children().each((i, e) => { + let $e = $(e); + + if ($e.hasClass('anchor')) return; + if ($e.hasClass('numeracja')) return; + if ($e.attr('id') == 'toc') return; + if ($e.attr('id') == 'nota_red') return; + if ($e.attr('id') == 'themes') return; + if ($e.attr('name') && $e.attr('name').startsWith('sec')) return; + + if ($e.hasClass('target')) { + let target = $e.attr('name'); + + while (lastTarget != target) { + let nc = cursor.next(); + if (!nc.length) { + break; + } + cursor = nc; + lastTarget = cursor.attr('name'); + } + + while (true) { + let nc = cursor.next(); + if (!nc.length) { + break; + } + cursor = nc; + lastTarget = cursor.attr('name'); + if (lastTarget) break; + } + + } else { + let d = $('
'); + d.attr('lang', lang); + d.append(e); + d.insertBefore(cursor); + } + }); + } + /* Load other version of text. */ $(".display-other").click(function(e) { e.preventDefault(); release_menu(); - $("#other-text").show(); + $(".other").remove(); $("body").addClass('with-other-text'); $.ajax($(this).attr('data-other'), { success: function(text) { - $("#other-text-body").html(text); + insertOtherText(text); $("#other-text-waiter").hide(); - $("#other-text-body").show(); - loaded_text($("#other-text-body")); + loaded_text($(".other")); } }); _paq.push(['trackEvent', 'html', 'other-text']); }); + + + /* Remove other version of text. */ $(".other-text-close").click(function(e) { release_menu(); e.preventDefault(); - $("#other-text").hide(); + $(".other").remove(); $("body").removeClass('with-other-text'); - $("#other-text-body").html(""); _paq.push(['trackEvent', 'html', 'other-text-close']); }); -- 2.20.1