Option to show icons as buttons

main
Bob Mottram 2020-10-25 20:38:01 +00:00
parent 6d8f36ca82
commit 8934a25123
20 changed files with 267 additions and 89 deletions

View File

@ -6462,7 +6462,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.newswire, self.server.newswire,
self.server.positiveVoting, self.server.positiveVoting,
self.server.showPublishAsIcon, self.server.showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
self.server.iconsAsButtons)
if GETstartTime: if GETstartTime:
self._benchmarkGETtimings(GETstartTime, GETtimings, self._benchmarkGETtimings(GETstartTime, GETtimings,
'show status done', 'show status done',
@ -6580,7 +6581,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.newswire, self.server.newswire,
self.server.positiveVoting, self.server.positiveVoting,
self.server.showPublishAsIcon, self.server.showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
self.server.iconsAsButtons)
msg = msg.encode('utf-8') msg = msg.encode('utf-8')
self._set_headers('text/html', len(msg), self._set_headers('text/html', len(msg),
cookie, callingDomain) cookie, callingDomain)
@ -6691,7 +6693,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.newswire, self.server.newswire,
self.server.positiveVoting, self.server.positiveVoting,
self.server.showPublishAsIcon, self.server.showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
self.server.iconsAsButtons)
msg = msg.encode('utf-8') msg = msg.encode('utf-8')
self._set_headers('text/html', len(msg), self._set_headers('text/html', len(msg),
cookie, callingDomain) cookie, callingDomain)
@ -6802,7 +6805,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.newswire, self.server.newswire,
self.server.positiveVoting, self.server.positiveVoting,
self.server.showPublishAsIcon, self.server.showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
self.server.iconsAsButtons)
msg = msg.encode('utf-8') msg = msg.encode('utf-8')
self._set_headers('text/html', len(msg), self._set_headers('text/html', len(msg),
cookie, callingDomain) cookie, callingDomain)
@ -6913,7 +6917,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.newswire, self.server.newswire,
self.server.positiveVoting, self.server.positiveVoting,
self.server.showPublishAsIcon, self.server.showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
self.server.iconsAsButtons)
msg = msg.encode('utf-8') msg = msg.encode('utf-8')
self._set_headers('text/html', len(msg), self._set_headers('text/html', len(msg),
cookie, callingDomain) cookie, callingDomain)
@ -7033,7 +7038,8 @@ class PubServer(BaseHTTPRequestHandler):
moderator, editor, moderator, editor,
self.server.positiveVoting, self.server.positiveVoting,
self.server.showPublishAsIcon, self.server.showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
self.server.iconsAsButtons)
msg = msg.encode('utf-8') msg = msg.encode('utf-8')
self._set_headers('text/html', len(msg), self._set_headers('text/html', len(msg),
cookie, callingDomain) cookie, callingDomain)
@ -7112,7 +7118,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.newswire, self.server.newswire,
self.server.positiveVoting, self.server.positiveVoting,
self.server.showPublishAsIcon, self.server.showPublishAsIcon,
self.server.fullWidthTimelineButtonHeader) self.server.fullWidthTimelineButtonHeader,
self.server.iconsAsButtons)
msg = msg.encode('utf-8') msg = msg.encode('utf-8')
self._set_headers('text/html', len(msg), self._set_headers('text/html', len(msg),
cookie, callingDomain) cookie, callingDomain)
@ -7207,7 +7214,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.newswire, self.server.newswire,
self.server.positiveVoting, self.server.positiveVoting,
self.server.showPublishAsIcon, self.server.showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
self.server.iconsAsButtons)
msg = msg.encode('utf-8') msg = msg.encode('utf-8')
self._set_headers('text/html', len(msg), self._set_headers('text/html', len(msg),
cookie, callingDomain) cookie, callingDomain)
@ -7321,7 +7329,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.newswire, self.server.newswire,
self.server.positiveVoting, self.server.positiveVoting,
self.server.showPublishAsIcon, self.server.showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
self.server.iconsAsButtons)
msg = msg.encode('utf-8') msg = msg.encode('utf-8')
self._set_headers('text/html', len(msg), self._set_headers('text/html', len(msg),
cookie, callingDomain) cookie, callingDomain)
@ -7427,7 +7436,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.newswire, self.server.newswire,
self.server.positiveVoting, self.server.positiveVoting,
self.server.showPublishAsIcon, self.server.showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
self.server.iconsAsButtons)
msg = msg.encode('utf-8') msg = msg.encode('utf-8')
self._set_headers('text/html', len(msg), self._set_headers('text/html', len(msg),
cookie, callingDomain) cookie, callingDomain)
@ -7523,7 +7533,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.newswire, self.server.newswire,
self.server.positiveVoting, self.server.positiveVoting,
self.server.showPublishAsIcon, self.server.showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
self.server.iconsAsButtons)
msg = msg.encode('utf-8') msg = msg.encode('utf-8')
self._set_headers('text/html', len(msg), self._set_headers('text/html', len(msg),
cookie, callingDomain) cookie, callingDomain)
@ -12039,7 +12050,8 @@ def loadTokens(baseDir: str, tokensDict: {}, tokensLookup: {}) -> None:
tokensLookup[token] = nickname tokensLookup[token] = nickname
def runDaemon(fullWidthTimelineButtonHeader: bool, def runDaemon(iconsAsButtons: bool,
fullWidthTimelineButtonHeader: bool,
showPublishAsIcon: bool, showPublishAsIcon: bool,
maxFollowers: int, maxFollowers: int,
allowNewsFollowers: bool, allowNewsFollowers: bool,
@ -12204,6 +12216,9 @@ def runDaemon(fullWidthTimelineButtonHeader: bool,
# calendar, etc as the full width of the screen or not # calendar, etc as the full width of the screen or not
httpd.fullWidthTimelineButtonHeader = fullWidthTimelineButtonHeader httpd.fullWidthTimelineButtonHeader = fullWidthTimelineButtonHeader
# whether to show icons in the header (eg calendar) as buttons
httpd.iconsAsButtons = iconsAsButtons
if registration == 'open': if registration == 'open':
httpd.registration = True httpd.registration = True
else: else:

View File

@ -227,6 +227,11 @@ parser.add_argument("--allowNewsFollowers",
type=str2bool, nargs='?', type=str2bool, nargs='?',
const=True, default=False, const=True, default=False,
help="Whether to allow the news account to be followed") help="Whether to allow the news account to be followed")
parser.add_argument("--iconsAsButtons",
dest='iconsAsButtons',
type=str2bool, nargs='?',
const=True, default=False,
help="Show header icons as buttons")
parser.add_argument("--noapproval", type=str2bool, nargs='?', parser.add_argument("--noapproval", type=str2bool, nargs='?',
const=True, default=False, const=True, default=False,
help="Allow followers without approval") help="Allow followers without approval")
@ -2003,6 +2008,11 @@ showPublishAsIcon = \
if showPublishAsIcon is not None: if showPublishAsIcon is not None:
args.showPublishAsIcon = bool(showPublishAsIcon) args.showPublishAsIcon = bool(showPublishAsIcon)
iconsAsButtons = \
getConfigParam(baseDir, 'iconsAsButtons')
if iconsAsButtons is not None:
args.iconsAsButtons = bool(iconsAsButtons)
fullWidthTimelineButtonHeader = \ fullWidthTimelineButtonHeader = \
getConfigParam(baseDir, 'fullWidthTimelineButtonHeader') getConfigParam(baseDir, 'fullWidthTimelineButtonHeader')
if fullWidthTimelineButtonHeader is not None: if fullWidthTimelineButtonHeader is not None:
@ -2021,7 +2031,8 @@ if setTheme(baseDir, themeName, domain):
print('Theme set to ' + themeName) print('Theme set to ' + themeName)
if __name__ == "__main__": if __name__ == "__main__":
runDaemon(args.fullWidthTimelineButtonHeader, runDaemon(args.iconsAsButtons,
args.fullWidthTimelineButtonHeader,
args.showPublishAsIcon, args.showPublishAsIcon,
args.maxFollowers, args.maxFollowers,
args.allowNewsFollowers, args.allowNewsFollowers,

View File

@ -291,7 +291,7 @@ def createServerAlice(path: str, domain: str, port: int,
onionDomain = None onionDomain = None
i2pDomain = None i2pDomain = None
print('Server running: Alice') print('Server running: Alice')
runDaemon(False, True, 10, False, 0, 100, 1024, 5, False, runDaemon(False, False, True, 10, False, 0, 100, 1024, 5, False,
0, False, 1, False, False, False, 0, False, 1, False, False, False,
5, True, True, 'en', __version__, 5, True, True, 'en', __version__,
"instanceId", False, path, domain, "instanceId", False, path, domain,
@ -355,7 +355,7 @@ def createServerBob(path: str, domain: str, port: int,
onionDomain = None onionDomain = None
i2pDomain = None i2pDomain = None
print('Server running: Bob') print('Server running: Bob')
runDaemon(False, True, 10, False, 0, 100, 1024, 5, False, 0, runDaemon(False, False, True, 10, False, 0, 100, 1024, 5, False, 0,
False, 1, False, False, False, False, 1, False, False, False,
5, True, True, 'en', __version__, 5, True, True, 'en', __version__,
"instanceId", False, path, domain, "instanceId", False, path, domain,
@ -393,7 +393,7 @@ def createServerEve(path: str, domain: str, port: int, federationList: [],
onionDomain = None onionDomain = None
i2pDomain = None i2pDomain = None
print('Server running: Eve') print('Server running: Eve')
runDaemon(False, True, 10, False, 0, 100, 1024, 5, False, 0, runDaemon(False, False, True, 10, False, 0, 100, 1024, 5, False, 0,
False, 1, False, False, False, False, 1, False, False, False,
5, True, True, 'en', __version__, 5, True, True, 'en', __version__,
"instanceId", False, path, domain, "instanceId", False, path, domain,

View File

@ -54,6 +54,20 @@ def setNewswirePublishAsIcon(baseDir: str, useIcon: bool) -> bool:
return saveJson(configJson, configFilename) return saveJson(configJson, configFilename)
def setIconsAsButtons(baseDir: str, useButtons: bool) -> bool:
"""Whether to show icons in the header (inbox, outbox, etc)
as buttons
"""
configFilename = baseDir + '/config.json'
if not os.path.isfile(configFilename):
return False
configJson = loadJson(configFilename, 0)
if not configJson:
return False
configJson['iconsAsButtons'] = useButtons
return saveJson(configJson, configFilename)
def setFullWidthTimelineButtonHeader(baseDir: str, fullWidth: bool) -> bool: def setFullWidthTimelineButtonHeader(baseDir: str, fullWidth: bool) -> bool:
"""Shows the timeline button header containing inbox, outbox, """Shows the timeline button header containing inbox, outbox,
calendar, etc as full width calendar, etc as full width
@ -261,6 +275,7 @@ def setThemeDefault(baseDir: str):
setThemeInConfig(baseDir, name) setThemeInConfig(baseDir, name)
setNewswirePublishAsIcon(baseDir, True) setNewswirePublishAsIcon(baseDir, True)
setFullWidthTimelineButtonHeader(baseDir, False) setFullWidthTimelineButtonHeader(baseDir, False)
setIconsAsButtons(baseDir, False)
bgParams = { bgParams = {
"login": "jpg", "login": "jpg",
"follow": "jpg", "follow": "jpg",
@ -279,6 +294,7 @@ def setThemeIndymediaClassic(baseDir: str):
setThemeInConfig(baseDir, name) setThemeInConfig(baseDir, name)
setNewswirePublishAsIcon(baseDir, False) setNewswirePublishAsIcon(baseDir, False)
setFullWidthTimelineButtonHeader(baseDir, True) setFullWidthTimelineButtonHeader(baseDir, True)
setIconsAsButtons(baseDir, False)
bgParams = { bgParams = {
"login": "jpg", "login": "jpg",
"follow": "jpg", "follow": "jpg",
@ -360,6 +376,7 @@ def setThemeBlue(baseDir: str):
setThemeInConfig(baseDir, name) setThemeInConfig(baseDir, name)
setNewswirePublishAsIcon(baseDir, True) setNewswirePublishAsIcon(baseDir, True)
setFullWidthTimelineButtonHeader(baseDir, False) setFullWidthTimelineButtonHeader(baseDir, False)
setIconsAsButtons(baseDir, False)
themeParams = { themeParams = {
"newswire-date-color": "blue", "newswire-date-color": "blue",
"font-size-header": "22px", "font-size-header": "22px",
@ -399,6 +416,7 @@ def setThemeNight(baseDir: str):
setThemeInConfig(baseDir, name) setThemeInConfig(baseDir, name)
setNewswirePublishAsIcon(baseDir, True) setNewswirePublishAsIcon(baseDir, True)
setFullWidthTimelineButtonHeader(baseDir, False) setFullWidthTimelineButtonHeader(baseDir, False)
setIconsAsButtons(baseDir, False)
fontStr = \ fontStr = \
"url('./fonts/solidaric.woff2') format('woff2')" "url('./fonts/solidaric.woff2') format('woff2')"
fontStrItalic = \ fontStrItalic = \
@ -459,6 +477,7 @@ def setThemeStarlight(baseDir: str):
setThemeInConfig(baseDir, name) setThemeInConfig(baseDir, name)
setNewswirePublishAsIcon(baseDir, True) setNewswirePublishAsIcon(baseDir, True)
setFullWidthTimelineButtonHeader(baseDir, False) setFullWidthTimelineButtonHeader(baseDir, False)
setIconsAsButtons(baseDir, False)
themeParams = { themeParams = {
"column-left-image-width-mobile": "40vw", "column-left-image-width-mobile": "40vw",
"line-spacing-newswire": "120%", "line-spacing-newswire": "120%",
@ -528,6 +547,7 @@ def setThemeHenge(baseDir: str):
setThemeInConfig(baseDir, name) setThemeInConfig(baseDir, name)
setNewswirePublishAsIcon(baseDir, True) setNewswirePublishAsIcon(baseDir, True)
setFullWidthTimelineButtonHeader(baseDir, False) setFullWidthTimelineButtonHeader(baseDir, False)
setIconsAsButtons(baseDir, False)
themeParams = { themeParams = {
"column-left-image-width-mobile": "40vw", "column-left-image-width-mobile": "40vw",
"column-right-image-width-mobile": "40vw", "column-right-image-width-mobile": "40vw",
@ -592,6 +612,7 @@ def setThemeZen(baseDir: str):
setThemeInConfig(baseDir, name) setThemeInConfig(baseDir, name)
setNewswirePublishAsIcon(baseDir, True) setNewswirePublishAsIcon(baseDir, True)
setFullWidthTimelineButtonHeader(baseDir, False) setFullWidthTimelineButtonHeader(baseDir, False)
setIconsAsButtons(baseDir, False)
themeParams = { themeParams = {
"main-bg-color": "#5c4e41", "main-bg-color": "#5c4e41",
"column-left-color": "#5c4e41", "column-left-color": "#5c4e41",
@ -652,6 +673,7 @@ def setThemeHighVis(baseDir: str):
setThemeFromDict(baseDir, name, themeParams, bgParams) setThemeFromDict(baseDir, name, themeParams, bgParams)
setNewswirePublishAsIcon(baseDir, True) setNewswirePublishAsIcon(baseDir, True)
setFullWidthTimelineButtonHeader(baseDir, False) setFullWidthTimelineButtonHeader(baseDir, False)
setIconsAsButtons(baseDir, False)
def setThemeLCD(baseDir: str): def setThemeLCD(baseDir: str):
@ -732,6 +754,7 @@ def setThemeLCD(baseDir: str):
setThemeFromDict(baseDir, name, themeParams, bgParams) setThemeFromDict(baseDir, name, themeParams, bgParams)
setNewswirePublishAsIcon(baseDir, True) setNewswirePublishAsIcon(baseDir, True)
setFullWidthTimelineButtonHeader(baseDir, False) setFullWidthTimelineButtonHeader(baseDir, False)
setIconsAsButtons(baseDir, False)
def setThemePurple(baseDir: str): def setThemePurple(baseDir: str):
@ -795,6 +818,7 @@ def setThemePurple(baseDir: str):
setThemeFromDict(baseDir, name, themeParams, bgParams) setThemeFromDict(baseDir, name, themeParams, bgParams)
setNewswirePublishAsIcon(baseDir, True) setNewswirePublishAsIcon(baseDir, True)
setFullWidthTimelineButtonHeader(baseDir, False) setFullWidthTimelineButtonHeader(baseDir, False)
setIconsAsButtons(baseDir, False)
def setThemeHacker(baseDir: str): def setThemeHacker(baseDir: str):
@ -855,6 +879,7 @@ def setThemeHacker(baseDir: str):
setThemeFromDict(baseDir, name, themeParams, bgParams) setThemeFromDict(baseDir, name, themeParams, bgParams)
setNewswirePublishAsIcon(baseDir, True) setNewswirePublishAsIcon(baseDir, True)
setFullWidthTimelineButtonHeader(baseDir, False) setFullWidthTimelineButtonHeader(baseDir, False)
setIconsAsButtons(baseDir, False)
def setThemeLight(baseDir: str): def setThemeLight(baseDir: str):
@ -916,6 +941,7 @@ def setThemeLight(baseDir: str):
setThemeFromDict(baseDir, name, themeParams, bgParams) setThemeFromDict(baseDir, name, themeParams, bgParams)
setNewswirePublishAsIcon(baseDir, True) setNewswirePublishAsIcon(baseDir, True)
setFullWidthTimelineButtonHeader(baseDir, False) setFullWidthTimelineButtonHeader(baseDir, False)
setIconsAsButtons(baseDir, False)
def setThemeIndymediaModern(baseDir: str): def setThemeIndymediaModern(baseDir: str):
@ -1002,6 +1028,7 @@ def setThemeIndymediaModern(baseDir: str):
setThemeFromDict(baseDir, name, themeParams, bgParams) setThemeFromDict(baseDir, name, themeParams, bgParams)
setNewswirePublishAsIcon(baseDir, False) setNewswirePublishAsIcon(baseDir, False)
setFullWidthTimelineButtonHeader(baseDir, True) setFullWidthTimelineButtonHeader(baseDir, True)
setIconsAsButtons(baseDir, True)
def setThemeSolidaric(baseDir: str): def setThemeSolidaric(baseDir: str):
@ -1069,6 +1096,7 @@ def setThemeSolidaric(baseDir: str):
setThemeFromDict(baseDir, name, themeParams, bgParams) setThemeFromDict(baseDir, name, themeParams, bgParams)
setNewswirePublishAsIcon(baseDir, True) setNewswirePublishAsIcon(baseDir, True)
setFullWidthTimelineButtonHeader(baseDir, False) setFullWidthTimelineButtonHeader(baseDir, False)
setIconsAsButtons(baseDir, False)
def setThemeImages(baseDir: str, name: str) -> None: def setThemeImages(baseDir: str, name: str) -> None:

View File

@ -315,5 +315,9 @@
"Publish": "ينشر", "Publish": "ينشر",
"Publish a news article": "انشر مقالة إخبارية", "Publish a news article": "انشر مقالة إخبارية",
"News tagging rules": "قواعد وسم الأخبار", "News tagging rules": "قواعد وسم الأخبار",
"See instructions": "انظر التعليمات" "See instructions": "انظر التعليمات",
"Search": "بحث",
"Expand": "وسعت",
"Newswire": "نيوزواير",
"Links": "الروابط"
} }

View File

@ -315,5 +315,9 @@
"Publish": "Publica", "Publish": "Publica",
"Publish a news article": "Publicar un article de notícies", "Publish a news article": "Publicar un article de notícies",
"News tagging rules": "Regles d'etiquetatge de notícies", "News tagging rules": "Regles d'etiquetatge de notícies",
"See instructions": "Consulteu les instruccions" "See instructions": "Consulteu les instruccions",
"Search": "Cerca",
"Expand": "Amplia",
"Newswire": "Newswire",
"Links": "Enllaços"
} }

View File

@ -315,5 +315,9 @@
"Publish": "Cyhoeddi", "Publish": "Cyhoeddi",
"Publish a news article": "Cyhoeddi erthygl newyddion", "Publish a news article": "Cyhoeddi erthygl newyddion",
"News tagging rules": "Rheolau tagio newyddion", "News tagging rules": "Rheolau tagio newyddion",
"See instructions": "Gweler y cyfarwyddiadau" "See instructions": "Gweler y cyfarwyddiadau",
"Search": "Chwilio",
"Expand": "Ehangu",
"Newswire": "Newswire",
"Links": "Dolenni"
} }

View File

@ -315,5 +315,9 @@
"Publish": "Veröffentlichen", "Publish": "Veröffentlichen",
"Publish a news article": "Veröffentlichen Sie einen Nachrichtenartikel", "Publish a news article": "Veröffentlichen Sie einen Nachrichtenartikel",
"News tagging rules": "Regeln für das Markieren von Nachrichten", "News tagging rules": "Regeln für das Markieren von Nachrichten",
"See instructions": "Siehe Anweisungen" "See instructions": "Siehe Anweisungen",
"Search": "Suche",
"Expand": "Erweitern",
"Newswire": "Newswire",
"Links": "Links"
} }

View File

@ -315,5 +315,9 @@
"Publish": "Publish", "Publish": "Publish",
"Publish a news article": "Publish a news article", "Publish a news article": "Publish a news article",
"News tagging rules": "News tagging rules", "News tagging rules": "News tagging rules",
"See instructions": "See instructions" "See instructions": "See instructions",
"Search": "Search",
"Expand": "Expand",
"Newswire": "Newswire",
"Links": "Links"
} }

View File

@ -315,5 +315,9 @@
"Publish": "Publicar", "Publish": "Publicar",
"Publish a news article": "Publica un artículo de noticias", "Publish a news article": "Publica un artículo de noticias",
"News tagging rules": "Reglas de etiquetado de noticias", "News tagging rules": "Reglas de etiquetado de noticias",
"See instructions": "Vea las instrucciones" "See instructions": "Vea las instrucciones",
"Search": "Buscar",
"Expand": "Expandir",
"Newswire": "Newswire",
"Links": "Enlaces"
} }

View File

@ -315,5 +315,9 @@
"Publish": "Publier", "Publish": "Publier",
"Publish a news article": "Publier un article de presse", "Publish a news article": "Publier un article de presse",
"News tagging rules": "Règles de marquage des actualités", "News tagging rules": "Règles de marquage des actualités",
"See instructions": "Voir les instructions" "See instructions": "Voir les instructions",
"Search": "Chercher",
"Expand": "Développer",
"Newswire": "Newswire",
"Links": "Liens"
} }

View File

@ -315,5 +315,9 @@
"Publish": "Fhoilsiú", "Publish": "Fhoilsiú",
"Publish a news article": "Foilsigh alt nuachta", "Publish a news article": "Foilsigh alt nuachta",
"News tagging rules": "Rialacha clibeála nuachta", "News tagging rules": "Rialacha clibeála nuachta",
"See instructions": "Féach na treoracha" "See instructions": "Féach na treoracha",
"Search": "Cuardaigh",
"Expand": "Leathnaigh",
"Newswire": "Newswire",
"Links": "Naisc"
} }

View File

@ -315,5 +315,9 @@
"Publish": "प्रकाशित करना", "Publish": "प्रकाशित करना",
"Publish a news article": "एक समाचार लेख प्रकाशित करें", "Publish a news article": "एक समाचार लेख प्रकाशित करें",
"News tagging rules": "समाचार टैगिंग नियम", "News tagging rules": "समाचार टैगिंग नियम",
"See instructions": "निर्देश देखें" "See instructions": "निर्देश देखें",
"Search": "खोज",
"Expand": "विस्तार",
"Newswire": "न्यूज़वायर",
"Links": "लिंक"
} }

View File

@ -315,5 +315,9 @@
"Publish": "Pubblicare", "Publish": "Pubblicare",
"Publish a news article": "Pubblica un articolo di notizie", "Publish a news article": "Pubblica un articolo di notizie",
"News tagging rules": "Regole di tagging delle notizie", "News tagging rules": "Regole di tagging delle notizie",
"See instructions": "Vedere le istruzioni" "See instructions": "Vedere le istruzioni",
"Search": "Ricerca",
"Expand": "Espandere",
"Newswire": "Newswire",
"Links": "Collegamenti"
} }

View File

@ -315,5 +315,9 @@
"Publish": "公開する", "Publish": "公開する",
"Publish a news article": "ニュース記事を公開する", "Publish a news article": "ニュース記事を公開する",
"News tagging rules": "ニュースのタグ付けルール", "News tagging rules": "ニュースのタグ付けルール",
"See instructions": "手順を参照してください" "See instructions": "手順を参照してください",
"Search": "探す",
"Expand": "展開",
"Newswire": "Newswire",
"Links": "リンク"
} }

View File

@ -311,5 +311,9 @@
"Publish": "Publish", "Publish": "Publish",
"Publish a news article": "Publish a news article", "Publish a news article": "Publish a news article",
"News tagging rules": "News tagging rules", "News tagging rules": "News tagging rules",
"See instructions": "See instructions" "See instructions": "See instructions",
"Search": "Search",
"Expand": "Expand",
"Newswire": "Newswire",
"Links": "Links"
} }

View File

@ -315,5 +315,9 @@
"Publish": "Publicar", "Publish": "Publicar",
"Publish a news article": "Publique um artigo de notícias", "Publish a news article": "Publique um artigo de notícias",
"News tagging rules": "Regras de marcação de notícias", "News tagging rules": "Regras de marcação de notícias",
"See instructions": "Veja as instruções" "See instructions": "Veja as instruções",
"Search": "Pesquisa",
"Expand": "Expandir",
"Newswire": "Newswire",
"Links": "Links"
} }

View File

@ -315,5 +315,9 @@
"Publish": "Публиковать", "Publish": "Публиковать",
"Publish a news article": "Опубликовать новостную статью", "Publish a news article": "Опубликовать новостную статью",
"News tagging rules": "Правила тегирования новостей", "News tagging rules": "Правила тегирования новостей",
"See instructions": "См. Инструкции" "See instructions": "См. Инструкции",
"Search": "Поиск",
"Expand": "Развернуть",
"Newswire": "Лента новостей",
"Links": "Ссылки"
} }

View File

@ -315,5 +315,9 @@
"Publish": "发布", "Publish": "发布",
"Publish a news article": "发布新闻文章", "Publish a news article": "发布新闻文章",
"News tagging rules": "新闻标记规则", "News tagging rules": "新闻标记规则",
"See instructions": "见说明" "See instructions": "见说明",
"Search": "搜索",
"Expand": "扩大",
"Newswire": "新闻专线",
"Links": "链接"
} }

View File

@ -5944,7 +5944,8 @@ def getTimelineButtonHeader(defaultTimeline: str,
newCalendarEvent: bool, newCalendarEvent: bool,
calendarPath: str, calendarPath: str,
calendarImage: str, calendarImage: str,
followApprovals: str) -> str: followApprovals: str,
iconsAsButtons: bool) -> str:
"""Returns the header at the top of the timeline, containing """Returns the header at the top of the timeline, containing
buttons for inbox, outbox, search, calendar, etc buttons for inbox, outbox, search, calendar, etc
""" """
@ -6073,6 +6074,7 @@ def getTimelineButtonHeader(defaultTimeline: str,
'/calendar"><button class="buttonevent">' + \ '/calendar"><button class="buttonevent">' + \
translate['Happening This Week'] + '</button></a>\n' translate['Happening This Week'] + '</button></a>\n'
if not iconsAsButtons:
# the search button # the search button
tlStr += \ tlStr += \
' <a class="imageAnchor" href="' + usersPath + \ ' <a class="imageAnchor" href="' + usersPath + \
@ -6080,6 +6082,12 @@ def getTimelineButtonHeader(defaultTimeline: str,
iconsDir + '/search.png" title="' + \ iconsDir + '/search.png" title="' + \
translate['Search and follow'] + '" alt="| ' + \ translate['Search and follow'] + '" alt="| ' + \
translate['Search and follow'] + '" class="timelineicon"/></a>\n' translate['Search and follow'] + '" class="timelineicon"/></a>\n'
else:
tlStr += \
' <a href="' + usersPath + \
'/search"><button class="button">' + \
'<span>' + translate['Search'] + \
'</span></button></a>\n'
# benchmark 5 # benchmark 5
timeDiff = int((time.time() - timelineStartTime) * 1000) timeDiff = int((time.time() - timelineStartTime) * 1000)
@ -6091,21 +6099,39 @@ def getTimelineButtonHeader(defaultTimeline: str,
if newCalendarEvent: if newCalendarEvent:
# indicate that the calendar icon is highlighted # indicate that the calendar icon is highlighted
calendarAltText = '*' + calendarAltText + '*' calendarAltText = '*' + calendarAltText + '*'
if not iconsAsButtons:
tlStr += \ tlStr += \
' <a class="imageAnchor" href="' + usersPath + calendarPath + \ ' <a class="imageAnchor" href="' + \
usersPath + calendarPath + \
'"><img loading="lazy" src="/' + iconsDir + '/' + \ '"><img loading="lazy" src="/' + iconsDir + '/' + \
calendarImage + '" title="' + translate['Calendar'] + \ calendarImage + '" title="' + translate['Calendar'] + \
'" alt="| ' + calendarAltText + '" class="timelineicon"/></a>\n' '" alt="| ' + calendarAltText + \
'" class="timelineicon"/></a>\n'
else:
tlStr += \
' <a href="' + usersPath + calendarPath + \
'"><button class="button">' + \
'<span>' + translate['Calendar'] + \
'</span></button></a>\n'
# the show/hide button, for a simpler header appearance # the show/hide button, for a simpler header appearance
if not iconsAsButtons:
tlStr += \ tlStr += \
' <a class="imageAnchor" href="' + usersPath + '/minimal' + \ ' <a class="imageAnchor" href="' + \
usersPath + '/minimal' + \
'"><img loading="lazy" src="/' + iconsDir + \ '"><img loading="lazy" src="/' + iconsDir + \
'/showhide.png" title="' + translate['Show/Hide Buttons'] + \ '/showhide.png" title="' + translate['Show/Hide Buttons'] + \
'" alt="| ' + translate['Show/Hide Buttons'] + \ '" alt="| ' + translate['Show/Hide Buttons'] + \
'" class="timelineicon"/></a>\n' '" class="timelineicon"/></a>\n'
else:
tlStr += \
' <a href="' + usersPath + '/minimal' + \
'"><button class="button">' + \
'<span>' + translate['Expand'] + \
'</span></button></a>\n'
# the newswire button to show right column links # the newswire button to show right column links
if not iconsAsButtons:
tlStr += \ tlStr += \
' <a class="imageAnchorMobile" href="' + \ ' <a class="imageAnchorMobile" href="' + \
usersPath + '/newswiremobile">' + \ usersPath + '/newswiremobile">' + \
@ -6113,8 +6139,15 @@ def getTimelineButtonHeader(defaultTimeline: str,
'/newswire.png" title="' + translate['News'] + \ '/newswire.png" title="' + translate['News'] + \
'" alt="| ' + translate['News'] + \ '" alt="| ' + translate['News'] + \
'" class="timelineicon"/></a>\n' '" class="timelineicon"/></a>\n'
else:
tlStr += \
' <a href="' + usersPath + '/newswiremobile' + \
'"><button class="button">' + \
'<span>' + translate['Newswire'] + \
'</span></button></a>\n'
# the links button to show left column links # the links button to show left column links
if not iconsAsButtons:
tlStr += \ tlStr += \
' <a class="imageAnchorMobile" href="' + \ ' <a class="imageAnchorMobile" href="' + \
usersPath + '/linksmobile">' + \ usersPath + '/linksmobile">' + \
@ -6122,6 +6155,12 @@ def getTimelineButtonHeader(defaultTimeline: str,
'/links.png" title="' + translate['Edit Links'] + \ '/links.png" title="' + translate['Edit Links'] + \
'" alt="| ' + translate['Edit Links'] + \ '" alt="| ' + translate['Edit Links'] + \
'" class="timelineicon"/></a>\n' '" class="timelineicon"/></a>\n'
else:
tlStr += \
' <a href="' + usersPath + '/linksmobile' + \
'"><button class="button">' + \
'<span>' + translate['Links'] + \
'</span></button></a>\n'
tlStr += followApprovals tlStr += followApprovals
# end of the button header with inbox, outbox, etc # end of the button header with inbox, outbox, etc
@ -6145,7 +6184,8 @@ def htmlTimeline(defaultTimeline: str,
editor: bool, editor: bool,
positiveVoting: bool, positiveVoting: bool,
showPublishAsIcon: bool, showPublishAsIcon: bool,
fullWidthTimelineButtonHeader: bool) -> str: fullWidthTimelineButtonHeader: bool,
iconsAsButtons: bool) -> str:
"""Show the timeline as html """Show the timeline as html
""" """
timelineStartTime = time.time() timelineStartTime = time.time()
@ -6430,7 +6470,8 @@ def htmlTimeline(defaultTimeline: str,
newPostButtonStr, baseDir, nickname, newPostButtonStr, baseDir, nickname,
domain, iconsDir, timelineStartTime, domain, iconsDir, timelineStartTime,
newCalendarEvent, calendarPath, newCalendarEvent, calendarPath,
calendarImage, followApprovals) calendarImage, followApprovals,
iconsAsButtons)
# start the timeline # start the timeline
tlStr += '<table class="timeline">\n' tlStr += '<table class="timeline">\n'
@ -6469,7 +6510,8 @@ def htmlTimeline(defaultTimeline: str,
newPostButtonStr, baseDir, nickname, newPostButtonStr, baseDir, nickname,
domain, iconsDir, timelineStartTime, domain, iconsDir, timelineStartTime,
newCalendarEvent, calendarPath, newCalendarEvent, calendarPath,
calendarImage, followApprovals) calendarImage, followApprovals,
iconsAsButtons)
# second row of buttons for moderator actions # second row of buttons for moderator actions
if moderator and boxName == 'moderation': if moderator and boxName == 'moderation':
@ -6682,7 +6724,8 @@ def htmlShares(defaultTimeline: str,
showPublishedDateOnly: bool, showPublishedDateOnly: bool,
newswire: {}, positiveVoting: bool, newswire: {}, positiveVoting: bool,
showPublishAsIcon: bool, showPublishAsIcon: bool,
fullWidthTimelineButtonHeader: bool) -> str: fullWidthTimelineButtonHeader: bool,
iconsAsButtons: bool) -> str:
"""Show the shares timeline as html """Show the shares timeline as html
""" """
manuallyApproveFollowers = \ manuallyApproveFollowers = \
@ -6698,7 +6741,8 @@ def htmlShares(defaultTimeline: str,
showPublishedDateOnly, showPublishedDateOnly,
newswire, False, False, newswire, False, False,
positiveVoting, showPublishAsIcon, positiveVoting, showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
iconsAsButtons)
def htmlInbox(defaultTimeline: str, def htmlInbox(defaultTimeline: str,
@ -6712,7 +6756,8 @@ def htmlInbox(defaultTimeline: str,
showPublishedDateOnly: bool, showPublishedDateOnly: bool,
newswire: {}, positiveVoting: bool, newswire: {}, positiveVoting: bool,
showPublishAsIcon: bool, showPublishAsIcon: bool,
fullWidthTimelineButtonHeader: bool) -> str: fullWidthTimelineButtonHeader: bool,
iconsAsButtons: bool) -> str:
"""Show the inbox as html """Show the inbox as html
""" """
manuallyApproveFollowers = \ manuallyApproveFollowers = \
@ -6728,7 +6773,8 @@ def htmlInbox(defaultTimeline: str,
showPublishedDateOnly, showPublishedDateOnly,
newswire, False, False, newswire, False, False,
positiveVoting, showPublishAsIcon, positiveVoting, showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
iconsAsButtons)
def htmlBookmarks(defaultTimeline: str, def htmlBookmarks(defaultTimeline: str,
@ -6742,7 +6788,8 @@ def htmlBookmarks(defaultTimeline: str,
showPublishedDateOnly: bool, showPublishedDateOnly: bool,
newswire: {}, positiveVoting: bool, newswire: {}, positiveVoting: bool,
showPublishAsIcon: bool, showPublishAsIcon: bool,
fullWidthTimelineButtonHeader: bool) -> str: fullWidthTimelineButtonHeader: bool,
iconsAsButtons: bool) -> str:
"""Show the bookmarks as html """Show the bookmarks as html
""" """
manuallyApproveFollowers = \ manuallyApproveFollowers = \
@ -6758,7 +6805,8 @@ def htmlBookmarks(defaultTimeline: str,
showPublishedDateOnly, showPublishedDateOnly,
newswire, False, False, newswire, False, False,
positiveVoting, showPublishAsIcon, positiveVoting, showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
iconsAsButtons)
def htmlEvents(defaultTimeline: str, def htmlEvents(defaultTimeline: str,
@ -6772,7 +6820,8 @@ def htmlEvents(defaultTimeline: str,
showPublishedDateOnly: bool, showPublishedDateOnly: bool,
newswire: {}, positiveVoting: bool, newswire: {}, positiveVoting: bool,
showPublishAsIcon: bool, showPublishAsIcon: bool,
fullWidthTimelineButtonHeader: bool) -> str: fullWidthTimelineButtonHeader: bool,
iconsAsButtons: bool) -> str:
"""Show the events as html """Show the events as html
""" """
manuallyApproveFollowers = \ manuallyApproveFollowers = \
@ -6788,7 +6837,8 @@ def htmlEvents(defaultTimeline: str,
showPublishedDateOnly, showPublishedDateOnly,
newswire, False, False, newswire, False, False,
positiveVoting, showPublishAsIcon, positiveVoting, showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
iconsAsButtons)
def htmlInboxDMs(defaultTimeline: str, def htmlInboxDMs(defaultTimeline: str,
@ -6802,7 +6852,8 @@ def htmlInboxDMs(defaultTimeline: str,
showPublishedDateOnly: bool, showPublishedDateOnly: bool,
newswire: {}, positiveVoting: bool, newswire: {}, positiveVoting: bool,
showPublishAsIcon: bool, showPublishAsIcon: bool,
fullWidthTimelineButtonHeader: bool) -> str: fullWidthTimelineButtonHeader: bool,
iconsAsButtons: bool) -> str:
"""Show the DM timeline as html """Show the DM timeline as html
""" """
return htmlTimeline(defaultTimeline, recentPostsCache, maxRecentPosts, return htmlTimeline(defaultTimeline, recentPostsCache, maxRecentPosts,
@ -6813,7 +6864,8 @@ def htmlInboxDMs(defaultTimeline: str,
YTReplacementDomain, showPublishedDateOnly, YTReplacementDomain, showPublishedDateOnly,
newswire, False, False, positiveVoting, newswire, False, False, positiveVoting,
showPublishAsIcon, showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
iconsAsButtons)
def htmlInboxReplies(defaultTimeline: str, def htmlInboxReplies(defaultTimeline: str,
@ -6827,7 +6879,8 @@ def htmlInboxReplies(defaultTimeline: str,
showPublishedDateOnly: bool, showPublishedDateOnly: bool,
newswire: {}, positiveVoting: bool, newswire: {}, positiveVoting: bool,
showPublishAsIcon: bool, showPublishAsIcon: bool,
fullWidthTimelineButtonHeader: bool) -> str: fullWidthTimelineButtonHeader: bool,
iconsAsButtons: bool) -> str:
"""Show the replies timeline as html """Show the replies timeline as html
""" """
return htmlTimeline(defaultTimeline, recentPostsCache, maxRecentPosts, return htmlTimeline(defaultTimeline, recentPostsCache, maxRecentPosts,
@ -6839,7 +6892,8 @@ def htmlInboxReplies(defaultTimeline: str,
showPublishedDateOnly, showPublishedDateOnly,
newswire, False, False, newswire, False, False,
positiveVoting, showPublishAsIcon, positiveVoting, showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
iconsAsButtons)
def htmlInboxMedia(defaultTimeline: str, def htmlInboxMedia(defaultTimeline: str,
@ -6853,7 +6907,8 @@ def htmlInboxMedia(defaultTimeline: str,
showPublishedDateOnly: bool, showPublishedDateOnly: bool,
newswire: {}, positiveVoting: bool, newswire: {}, positiveVoting: bool,
showPublishAsIcon: bool, showPublishAsIcon: bool,
fullWidthTimelineButtonHeader: bool) -> str: fullWidthTimelineButtonHeader: bool,
iconsAsButtons: bool) -> str:
"""Show the media timeline as html """Show the media timeline as html
""" """
return htmlTimeline(defaultTimeline, recentPostsCache, maxRecentPosts, return htmlTimeline(defaultTimeline, recentPostsCache, maxRecentPosts,
@ -6865,7 +6920,8 @@ def htmlInboxMedia(defaultTimeline: str,
showPublishedDateOnly, showPublishedDateOnly,
newswire, False, False, newswire, False, False,
positiveVoting, showPublishAsIcon, positiveVoting, showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
iconsAsButtons)
def htmlInboxBlogs(defaultTimeline: str, def htmlInboxBlogs(defaultTimeline: str,
@ -6879,7 +6935,8 @@ def htmlInboxBlogs(defaultTimeline: str,
showPublishedDateOnly: bool, showPublishedDateOnly: bool,
newswire: {}, positiveVoting: bool, newswire: {}, positiveVoting: bool,
showPublishAsIcon: bool, showPublishAsIcon: bool,
fullWidthTimelineButtonHeader: bool) -> str: fullWidthTimelineButtonHeader: bool,
iconsAsButtons: bool) -> str:
"""Show the blogs timeline as html """Show the blogs timeline as html
""" """
return htmlTimeline(defaultTimeline, recentPostsCache, maxRecentPosts, return htmlTimeline(defaultTimeline, recentPostsCache, maxRecentPosts,
@ -6891,7 +6948,8 @@ def htmlInboxBlogs(defaultTimeline: str,
showPublishedDateOnly, showPublishedDateOnly,
newswire, False, False, newswire, False, False,
positiveVoting, showPublishAsIcon, positiveVoting, showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
iconsAsButtons)
def htmlInboxNews(defaultTimeline: str, def htmlInboxNews(defaultTimeline: str,
@ -6905,7 +6963,8 @@ def htmlInboxNews(defaultTimeline: str,
showPublishedDateOnly: bool, showPublishedDateOnly: bool,
newswire: {}, moderator: bool, editor: bool, newswire: {}, moderator: bool, editor: bool,
positiveVoting: bool, showPublishAsIcon: bool, positiveVoting: bool, showPublishAsIcon: bool,
fullWidthTimelineButtonHeader: bool) -> str: fullWidthTimelineButtonHeader: bool,
iconsAsButtons: bool) -> str:
"""Show the news timeline as html """Show the news timeline as html
""" """
return htmlTimeline(defaultTimeline, recentPostsCache, maxRecentPosts, return htmlTimeline(defaultTimeline, recentPostsCache, maxRecentPosts,
@ -6917,7 +6976,8 @@ def htmlInboxNews(defaultTimeline: str,
showPublishedDateOnly, showPublishedDateOnly,
newswire, moderator, editor, newswire, moderator, editor,
positiveVoting, showPublishAsIcon, positiveVoting, showPublishAsIcon,
fullWidthTimelineButtonHeader) fullWidthTimelineButtonHeader,
iconsAsButtons)
def htmlModeration(defaultTimeline: str, def htmlModeration(defaultTimeline: str,
@ -6931,7 +6991,8 @@ def htmlModeration(defaultTimeline: str,
showPublishedDateOnly: bool, showPublishedDateOnly: bool,
newswire: {}, positiveVoting: bool, newswire: {}, positiveVoting: bool,
showPublishAsIcon: bool, showPublishAsIcon: bool,
fullWidthTimelineButtonHeader: bool) -> str: fullWidthTimelineButtonHeader: bool,
iconsAsButtons: bool) -> str:
"""Show the moderation feed as html """Show the moderation feed as html
""" """
return htmlTimeline(defaultTimeline, recentPostsCache, maxRecentPosts, return htmlTimeline(defaultTimeline, recentPostsCache, maxRecentPosts,
@ -6941,7 +7002,8 @@ def htmlModeration(defaultTimeline: str,
allowDeletion, httpPrefix, projectVersion, True, False, allowDeletion, httpPrefix, projectVersion, True, False,
YTReplacementDomain, showPublishedDateOnly, YTReplacementDomain, showPublishedDateOnly,
newswire, False, False, positiveVoting, newswire, False, False, positiveVoting,
showPublishAsIcon, fullWidthTimelineButtonHeader) showPublishAsIcon, fullWidthTimelineButtonHeader,
iconsAsButtons)
def htmlOutbox(defaultTimeline: str, def htmlOutbox(defaultTimeline: str,
@ -6955,7 +7017,8 @@ def htmlOutbox(defaultTimeline: str,
showPublishedDateOnly: bool, showPublishedDateOnly: bool,
newswire: {}, positiveVoting: bool, newswire: {}, positiveVoting: bool,
showPublishAsIcon: bool, showPublishAsIcon: bool,
fullWidthTimelineButtonHeader: bool) -> str: fullWidthTimelineButtonHeader: bool,
iconsAsButtons: bool) -> str:
"""Show the Outbox as html """Show the Outbox as html
""" """
manuallyApproveFollowers = \ manuallyApproveFollowers = \
@ -6968,7 +7031,8 @@ def htmlOutbox(defaultTimeline: str,
manuallyApproveFollowers, minimal, manuallyApproveFollowers, minimal,
YTReplacementDomain, showPublishedDateOnly, YTReplacementDomain, showPublishedDateOnly,
newswire, False, False, positiveVoting, newswire, False, False, positiveVoting,
showPublishAsIcon, fullWidthTimelineButtonHeader) showPublishAsIcon, fullWidthTimelineButtonHeader,
iconsAsButtons)
def htmlIndividualPost(recentPostsCache: {}, maxRecentPosts: int, def htmlIndividualPost(recentPostsCache: {}, maxRecentPosts: int,