From 62dff9e71dcee9ed6843bff6df65c3abbced1920 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 7 Nov 2020 12:53:21 +0000 Subject: [PATCH] Replace hr with graphical timeline separators --- epicyon-profile.css | 24 ------------------------ theme.py | 3 --- webinterface.py | 44 ++++++++++++++++++++++++++++---------------- 3 files changed, 28 insertions(+), 43 deletions(-) diff --git a/epicyon-profile.css b/epicyon-profile.css index a0e29965..045224b6 100644 --- a/epicyon-profile.css +++ b/epicyon-profile.css @@ -88,17 +88,9 @@ --column-left-header-color: #fff; --column-left-header-size: 20px; --column-left-header-size-mobile: 50px; - --column-left-header-line-color: #555; --column-left-border-width: 0; --column-right-border-width: 0; --column-left-border-color: black; - --column-right-header-line-margin: 2%; - --column-right-header-line-width: 0; - --column-left-header-line-width: 0; - --column-left-header-line-margin: 2%; - --post-line-margin: 2%; - --post-line-width: 0; - --post-line-radius: 0; --column-left-icon-size: 20%; --column-left-icon-size-mobile: 10%; --column-left-image-width-mobile: 40vw; @@ -169,22 +161,6 @@ body, html { display: block; } -hr.linksLine { - margin: var(--column-left-header-line-margin); - border: var(--column-left-header-line-width) solid var(--column-left-header-line-color); -} - -hr.newswireLine { - margin: var(--column-right-header-line-margin); - border: var(--column-right-header-line-width) solid var(--column-left-header-line-color); -} - -hr.postLine { - margin: var(--post-line-margin); - border: var(--post-line-width) solid var(--column-left-header-line-color); - border-radius: var(--post-line-radius); -} - .headericons { display: inline-block; float: right; diff --git a/theme.py b/theme.py index aa6c095e..63a8a9fe 100644 --- a/theme.py +++ b/theme.py @@ -1134,9 +1134,6 @@ def setThemeSolidaric(baseDir: str): "post-separator-width": "96.5%", "post-separator-height": "40px", "border-width-header": "0", - "post-line-margin": "0 5%", - "post-line-width": "1px", - "column-left-header-line-color": "#999", "border-width": "0", "banner-height": "35vh", "banner-height-mobile": "15vh", diff --git a/webinterface.py b/webinterface.py index dede9a2c..e586054c 100644 --- a/webinterface.py +++ b/webinterface.py @@ -736,6 +736,7 @@ def htmlHashtagSearch(cssCache: {}, return None iconsDir = getIconsDir(baseDir) + separatorStr = htmlPostSeparator(baseDir, None) # check that the directory for the nickname exists if nickname: @@ -829,8 +830,7 @@ def htmlHashtagSearch(cssCache: {}, if nickname: showIndividualPostIcons = True allowDeletion = False - hashtagSearchForm += \ - '
\n' + \ + hashtagSearchForm += separatorStr + \ individualPostAsHtml(True, recentPostsCache, maxRecentPosts, iconsDir, translate, None, @@ -1166,6 +1166,7 @@ def htmlHistorySearch(cssCache: {}, translate: {}, baseDir: str, return historySearchForm iconsDir = getIconsDir(baseDir) + separatorStr = htmlPostSeparator(baseDir, None) # ensure that the page number is in bounds if not pageNumber: @@ -1192,8 +1193,7 @@ def htmlHistorySearch(cssCache: {}, translate: {}, baseDir: str, continue showIndividualPostIcons = True allowDeletion = False - historySearchForm += \ - '
\n' + \ + historySearchForm += separatorStr + \ individualPostAsHtml(True, recentPostsCache, maxRecentPosts, iconsDir, translate, None, @@ -5683,6 +5683,7 @@ def getLeftColumnContent(baseDir: str, nickname: str, domainFull: str, """ htmlStr = '' + separatorStr = htmlPostSeparator(baseDir, 'left') domain = domainFull if ':' in domain: domain = domain.split(':') @@ -5809,8 +5810,7 @@ def getLeftColumnContent(baseDir: str, nickname: str, domainFull: str, else: if lineStr.startswith('#') or lineStr.startswith('*'): lineStr = lineStr[1:].strip() - htmlStr += \ - '
\n' + htmlStr += separatorStr htmlStr += \ '

' + \ lineStr + '

\n' @@ -5838,10 +5838,11 @@ def votesIndicator(totalVotes: int, positiveVoting: bool) -> str: return totalVotesStr -def htmlNewswire(newswire: {}, nickname: str, moderator: bool, +def htmlNewswire(baseDir: str, newswire: {}, nickname: str, moderator: bool, translate: {}, positiveVoting: bool, iconsDir: str) -> str: """Converts a newswire dict into html """ + separatorStr = htmlPostSeparator(baseDir, 'right') htmlStr = '' for dateStr, item in newswire.items(): publishedDate = \ @@ -5851,7 +5852,7 @@ def htmlNewswire(newswire: {}, nickname: str, moderator: bool, dateStrLink = dateStr.replace('T', ' ') dateStrLink = dateStrLink.replace('Z', '') moderatedItem = item[5] - htmlStr += '
\n' + htmlStr += separatorStr if moderatedItem and 'vote:' + nickname in item[2]: totalVotesStr = '' totalVotes = 0 @@ -6167,7 +6168,7 @@ def getRightColumnContent(baseDir: str, nickname: str, domainFull: str, # show the newswire lines newswireContentStr = \ - htmlNewswire(newswire, nickname, moderator, translate, + htmlNewswire(baseDir, newswire, nickname, moderator, translate, positiveVoting, iconsDir) htmlStr += newswireContentStr @@ -6726,6 +6727,23 @@ def headerButtonsTimeline(defaultTimeline: str, return tlStr +def htmlPostSeparator(baseDir: str, column: str) -> str: + """Returns the html for a timeline post separator image + """ + iconsDir = getIconsDir(baseDir) + filename = 'separator.png' + if column: + filename = 'separator_' + column + '.png' + separatorImageFilename = baseDir + '/img/' + iconsDir + '/' + filename + separatorStr = '' + if os.path.isfile(separatorImageFilename): + separatorStr = \ + '
' + \ + '' + \ + '
\n' + return separatorStr + + def htmlTimeline(cssCache: {}, defaultTimeline: str, recentPostsCache: {}, maxRecentPosts: int, translate: {}, pageNumber: int, @@ -6801,13 +6819,7 @@ def htmlTimeline(cssCache: {}, defaultTimeline: str, # This changes depending upon theme iconsDir = getIconsDir(baseDir) - separatorImageFilename = baseDir + '/img/' + iconsDir + '/separator.png' - separatorStr = '' - if os.path.isfile(separatorImageFilename): - separatorStr = \ - '
' + \ - '' + \ - '
\n' + separatorStr = htmlPostSeparator(baseDir, None) # the css filename cssFilename = baseDir + '/epicyon-profile.css'