Collapsible sections on edit profile screen

main
Bob Mottram 2021-03-06 15:13:56 +00:00
parent 7beb46b0e9
commit e2a4751027
16 changed files with 140 additions and 31 deletions

View File

@ -390,5 +390,11 @@
"pronoun": "ضمير", "pronoun": "ضمير",
"Type of instance": "نوع المثيل", "Type of instance": "نوع المثيل",
"Security": "حماية", "Security": "حماية",
"Enabling broch mode": "يوفر تمكين وضع الكتيب تحصينًا مؤقتًا ضد الهجوم. لن يتم قبول سوى المشاركات من خلال المثيلات المعروفة بالفعل. تنقضي بعد أسبوع." "Enabling broch mode": "يوفر تمكين وضع الكتيب تحصينًا مؤقتًا ضد الهجوم. لن يتم قبول سوى المشاركات من خلال المثيلات المعروفة بالفعل. تنقضي بعد أسبوع.",
"Instance Settings": "إعدادات المثيل",
"Video Settings": "اعدادات الفيديو",
"Filtering and Blocking": "التصفية والحظر",
"Role Assignment": "تعيين الدور",
"Contact Details": "بيانات المتصل",
"Background Images": "صور الخلفية"
} }

View File

@ -390,5 +390,11 @@
"pronoun": "pronom", "pronoun": "pronom",
"Type of instance": "Tipus dinstància", "Type of instance": "Tipus dinstància",
"Security": "Seguretat", "Security": "Seguretat",
"Enabling broch mode": "L'activació del mode de fulletó proporciona una fortificació temporal contra l'atac. Només sacceptaran publicacions dinstàncies ja conegudes. Transcorre al cap duna setmana." "Enabling broch mode": "L'activació del mode de fulletó proporciona una fortificació temporal contra l'atac. Només sacceptaran publicacions dinstàncies ja conegudes. Transcorre al cap duna setmana.",
"Instance Settings": "Configuració de la instància",
"Video Settings": "Configuració del vídeo",
"Filtering and Blocking": "Filtratge i bloqueig",
"Role Assignment": "Assignació de funcions",
"Contact Details": "Detalls de contacte",
"Background Images": "Imatges de fons"
} }

View File

@ -390,5 +390,11 @@
"pronoun": "rhagenw", "pronoun": "rhagenw",
"Type of instance": "Math o enghraifft", "Type of instance": "Math o enghraifft",
"Security": "Diogelwch", "Security": "Diogelwch",
"Enabling broch mode": "Mae modd galluogi broch yn darparu amddiffynfa dros dro yn erbyn ymosodiad. Dim ond swyddi mewn achosion y gwyddys amdanynt eisoes a dderbynnir. Mae'n mynd heibio ar ôl wythnos." "Enabling broch mode": "Mae modd galluogi broch yn darparu amddiffynfa dros dro yn erbyn ymosodiad. Dim ond swyddi mewn achosion y gwyddys amdanynt eisoes a dderbynnir. Mae'n mynd heibio ar ôl wythnos.",
"Instance Settings": "Gosodiadau Instance",
"Video Settings": "Gosodiadau Fideo",
"Filtering and Blocking": "Hidlo a Blocio",
"Role Assignment": "Aseiniad Rôl",
"Background Images": "Delweddau Cefndir",
"Contact Details": "Manylion cyswllt"
} }

View File

@ -390,5 +390,11 @@
"pronoun": "pronomen", "pronoun": "pronomen",
"Type of instance": "Art der Instanz", "Type of instance": "Art der Instanz",
"Security": "Sicherheit", "Security": "Sicherheit",
"Enabling broch mode": "Das Aktivieren des Broch-Modus bietet eine vorübergehende Verstärkung gegen Angriffe. Es werden nur Beiträge von bereits bekannten Instanzen akzeptiert. Es vergeht nach einer Woche." "Enabling broch mode": "Das Aktivieren des Broch-Modus bietet eine vorübergehende Verstärkung gegen Angriffe. Es werden nur Beiträge von bereits bekannten Instanzen akzeptiert. Es vergeht nach einer Woche.",
"Instance Settings": "Instanzeinstellungen",
"Video Settings": "Video-Einstellungen",
"Filtering and Blocking": "Filtern und Blockieren",
"Role Assignment": "Rollenzuweisung",
"Background Images": "Hintergrundbilder",
"Contact Details": "Kontaktdetails"
} }

View File

@ -390,5 +390,11 @@
"pronoun": "pronoun", "pronoun": "pronoun",
"Type of instance": "Type of instance", "Type of instance": "Type of instance",
"Security": "Security", "Security": "Security",
"Enabling broch mode": "Enabling broch mode provides a temporary fortification against attack. Only posts by already known instances will be accepted. If not turned off, it elapses after a week." "Enabling broch mode": "Enabling broch mode provides a temporary fortification against attack. Only posts by already known instances will be accepted. If not turned off, it elapses after a week.",
"Instance Settings": "Instance Settings",
"Video Settings": "Video Settings",
"Filtering and Blocking": "Filtering and Blocking",
"Role Assignment": "Role Assignment",
"Contact Details": "Contact Details",
"Background Images": "Background Images"
} }

View File

@ -390,5 +390,11 @@
"pronoun": "pronombre", "pronoun": "pronombre",
"Type of instance": "Tipo de instancia", "Type of instance": "Tipo de instancia",
"Security": "Seguridad", "Security": "Seguridad",
"Enabling broch mode": "Habilitar el modo broche proporciona una fortificación temporal contra el ataque. Solo se aceptarán publicaciones de instancias ya conocidas. Transcurre después de una semana." "Enabling broch mode": "Habilitar el modo broche proporciona una fortificación temporal contra el ataque. Solo se aceptarán publicaciones de instancias ya conocidas. Transcurre después de una semana.",
"Instance Settings": "Configuración de instancia",
"Video Settings": "Ajustes de video",
"Filtering and Blocking": "Filtrado y bloqueo",
"Role Assignment": "Asignación de roles",
"Background Images": "Imágenes de fondo",
"Contact Details": "Detalles de contacto"
} }

View File

@ -390,5 +390,11 @@
"pronoun": "pronom", "pronoun": "pronom",
"Type of instance": "Type d'instance", "Type of instance": "Type d'instance",
"Security": "Sécurité", "Security": "Sécurité",
"Enabling broch mode": "L'activation du mode broch fournit une fortification temporaire contre les attaques. Seuls les messages par des instances déjà connues seront acceptés. Il s'écoule après une semaine." "Enabling broch mode": "L'activation du mode broch fournit une fortification temporaire contre les attaques. Seuls les messages par des instances déjà connues seront acceptés. Il s'écoule après une semaine.",
"Instance Settings": "Paramètres d'instance",
"Video Settings": "Paramètres vidéo",
"Filtering and Blocking": "Filtrage et blocage",
"Role Assignment": "Attribution de rôle",
"Background Images": "Images d'arrière-plan",
"Contact Details": "Détails du contact"
} }

View File

@ -390,5 +390,11 @@
"pronoun": "forainm", "pronoun": "forainm",
"Type of instance": "Cineál mar shampla", "Type of instance": "Cineál mar shampla",
"Security": "Slándáil", "Security": "Slándáil",
"Enabling broch mode": "Soláthraíonn modh bróiste cumasaithe daingniú sealadach ar ionsaí. Ní ghlacfar ach le poist de réir cásanna a bhfuil eolas orthu cheana. Maireann sé tar éis seachtaine." "Enabling broch mode": "Soláthraíonn modh bróiste cumasaithe daingniú sealadach ar ionsaí. Ní ghlacfar ach le poist de réir cásanna a bhfuil eolas orthu cheana. Maireann sé tar éis seachtaine.",
"Instance Settings": "Socruithe Institiúide",
"Video Settings": "Socruithe Físe",
"Filtering and Blocking": "Scagadh agus Blocáil",
"Role Assignment": "Sannadh Róil",
"Background Images": "Íomhánna Cúlra",
"Contact Details": "Sonraí Teagmhála"
} }

View File

@ -390,5 +390,11 @@
"pronoun": "सवर्नाम", "pronoun": "सवर्नाम",
"Type of instance": "उदाहरण के प्रकार", "Type of instance": "उदाहरण के प्रकार",
"Security": "सुरक्षा", "Security": "सुरक्षा",
"Enabling broch mode": "ब्रोश मोड को सक्षम करना हमले के खिलाफ एक अस्थायी किलेबंदी प्रदान करता है। केवल पहले से ज्ञात उदाहरणों द्वारा पोस्ट स्वीकार किए जाएंगे। यह एक सप्ताह के बाद समाप्त हो जाता है।" "Enabling broch mode": "ब्रोश मोड को सक्षम करना हमले के खिलाफ एक अस्थायी किलेबंदी प्रदान करता है। केवल पहले से ज्ञात उदाहरणों द्वारा पोस्ट स्वीकार किए जाएंगे। यह एक सप्ताह के बाद समाप्त हो जाता है।",
"Instance Settings": "उदाहरण सेटिंग्स",
"Video Settings": "वीडियो सेटिंग्स",
"Filtering and Blocking": "छानना और अवरुद्ध करना",
"Role Assignment": "भूमिका असाइनमेंट",
"Background Images": "पृष्ठभूमि छवियों",
"Contact Details": "सम्पर्क करने का विवरण"
} }

View File

@ -390,5 +390,11 @@
"pronoun": "pronome", "pronoun": "pronome",
"Type of instance": "Tipo di istanza", "Type of instance": "Tipo di istanza",
"Security": "Sicurezza", "Security": "Sicurezza",
"Enabling broch mode": "L'attivazione della modalità Broch fornisce una fortificazione temporanea contro gli attacchi. Verranno accettati solo i post di istanze già note. Scade dopo una settimana." "Enabling broch mode": "L'attivazione della modalità Broch fornisce una fortificazione temporanea contro gli attacchi. Verranno accettati solo i post di istanze già note. Scade dopo una settimana.",
"Instance Settings": "Impostazioni istanza",
"Video Settings": "Impostazioni video",
"Filtering and Blocking": "Filtraggio e blocco",
"Role Assignment": "Assegnazione del ruolo",
"Background Images": "Immagini di sfondo",
"Contact Details": "Dettagli del contatto"
} }

View File

@ -390,5 +390,11 @@
"pronoun": "代名詞", "pronoun": "代名詞",
"Type of instance": "インスタンスのタイプ", "Type of instance": "インスタンスのタイプ",
"Security": "セキュリティ", "Security": "セキュリティ",
"Enabling broch mode": "ブロッホモードを有効にすると、攻撃に対する一時的な要塞が提供されます。 既知のインスタンスによる投稿のみが受け入れられます。 一週間後に経過します。" "Enabling broch mode": "ブロッホモードを有効にすると、攻撃に対する一時的な要塞が提供されます。 既知のインスタンスによる投稿のみが受け入れられます。 一週間後に経過します。",
"Instance Settings": "インスタンス設定",
"Video Settings": "ビデオ設定",
"Filtering and Blocking": "フィルタリングとブロッキング",
"Role Assignment": "役割の割り当て",
"Background Images": "背景画像",
"Contact Details": "連絡先の詳細"
} }

View File

@ -386,5 +386,11 @@
"pronoun": "pronoun", "pronoun": "pronoun",
"Type of instance": "Type of instance", "Type of instance": "Type of instance",
"Security": "Security", "Security": "Security",
"Enabling broch mode": "Enabling broch mode provides a temporary fortification against attack. Only posts by already known instances will be accepted. If not turned off, it elapses after a week." "Enabling broch mode": "Enabling broch mode provides a temporary fortification against attack. Only posts by already known instances will be accepted. If not turned off, it elapses after a week.",
"Instance Settings": "Instance Settings",
"Video Settings": "Video Settings",
"Filtering and Blocking": "Filtering and Blocking",
"Role Assignment": "Role Assignment",
"Background Images": "Background Images",
"Contact Details": "Contact Details"
} }

View File

@ -390,5 +390,11 @@
"pronoun": "pronome", "pronoun": "pronome",
"Type of instance": "Tipo de instância", "Type of instance": "Tipo de instância",
"Security": "Segurança", "Security": "Segurança",
"Enabling broch mode": "Habilitar o modo broch fornece uma fortificação temporária contra ataques. Somente postagens de instâncias já conhecidas serão aceitas. Decorre depois de uma semana." "Enabling broch mode": "Habilitar o modo broch fornece uma fortificação temporária contra ataques. Somente postagens de instâncias já conhecidas serão aceitas. Decorre depois de uma semana.",
"Instance Settings": "Configurações de instância",
"Video Settings": "Configurações de vídeo",
"Filtering and Blocking": "Filtragem e Bloqueio",
"Role Assignment": "Atribuição de Função",
"Background Images": "Imagens de fundo",
"Contact Details": "Detalhes do contato"
} }

View File

@ -390,5 +390,11 @@
"pronoun": "местоимение", "pronoun": "местоимение",
"Type of instance": "Тип экземпляра", "Type of instance": "Тип экземпляра",
"Security": "Безопасность", "Security": "Безопасность",
"Enabling broch mode": "Включение режима брошюры обеспечивает временную защиту от атак. Будут приниматься только сообщения от уже известных экземпляров. Проходит через неделю." "Enabling broch mode": "Включение режима брошюры обеспечивает временную защиту от атак. Будут приниматься только сообщения от уже известных экземпляров. Проходит через неделю.",
"Instance Settings": "Настройки экземпляра",
"Video Settings": "Настройки видео",
"Filtering and Blocking": "Фильтрация и блокировка",
"Role Assignment": "Назначение ролей",
"Background Images": "Фоновые изображения",
"Contact Details": "Контактная информация"
} }

View File

@ -390,5 +390,11 @@
"pronoun": "代词", "pronoun": "代词",
"Type of instance": "实例类型", "Type of instance": "实例类型",
"Security": "安全", "Security": "安全",
"Enabling broch mode": "启用broch模式可提供针对攻击的临时防御。 仅接受已知实例的帖子。 一个星期后就过去了。" "Enabling broch mode": "启用broch模式可提供针对攻击的临时防御。 仅接受已知实例的帖子。 一个星期后就过去了。",
"Instance Settings": "实例设定",
"Video Settings": "影片设定",
"Filtering and Blocking": "过滤和阻止",
"Role Assignment": "角色分配",
"Background Images": "背景图片",
"Contact Details": "联系方式"
} }

View File

@ -1211,7 +1211,7 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
'<input type="range" min="1" max="100" ' + \ '<input type="range" min="1" max="100" ' + \
'class="slider" name="skillValue' + \ 'class="slider" name="skillValue' + \
str(skillCtr) + '" value="50"></p>' str(skillCtr) + '" value="50"></p>'
skillsStr += ' </div>\n' skillsStr += ' </div></details>\n'
cssFilename = baseDir + '/epicyon-profile.css' cssFilename = baseDir + '/epicyon-profile.css'
if os.path.isfile(baseDir + '/epicyon.css'): if os.path.isfile(baseDir + '/epicyon.css'):
@ -1232,6 +1232,9 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
getConfigParam(baseDir, 'instanceDescriptionShort') getConfigParam(baseDir, 'instanceDescriptionShort')
instanceTitle = \ instanceTitle = \
getConfigParam(baseDir, 'instanceTitle') getConfigParam(baseDir, 'instanceTitle')
instanceStr = '<details><summary class="cw">' + \
translate['Instance Settings'] + '</summary>\n'
instanceStr += '<div class="container">' instanceStr += '<div class="container">'
instanceStr += \ instanceStr += \
' <label class="labels">' + \ ' <label class="labels">' + \
@ -1348,7 +1351,7 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
' <input type="checkbox" class="profilecheckbox" ' + \ ' <input type="checkbox" class="profilecheckbox" ' + \
'name="newsInstance" ' + newsInstanceStr + '> ' + \ 'name="newsInstance" ' + newsInstanceStr + '> ' + \
translate['This is a news instance'] + '<br>\n' translate['This is a news instance'] + '<br>\n'
instanceStr += ' </div>\n' instanceStr += ' </div></details>\n'
# Role assignments section # Role assignments section
moderators = '' moderators = ''
@ -1357,7 +1360,9 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
with open(moderatorsFile, "r") as f: with open(moderatorsFile, "r") as f:
moderators = f.read() moderators = f.read()
# site moderators # site moderators
roleAssignStr = '<div class="container">' roleAssignStr = '<details><summary class="cw">' + \
translate['Role Assignment'] + '</summary>\n'
roleAssignStr += '<div class="container">'
roleAssignStr += ' <b><label class="labels">' + \ roleAssignStr += ' <b><label class="labels">' + \
translate['Moderators'] + '</label></b><br>\n' translate['Moderators'] + '</label></b><br>\n'
roleAssignStr += ' ' + \ roleAssignStr += ' ' + \
@ -1382,10 +1387,12 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
' <textarea id="message" name="editors" placeholder="" ' + \ ' <textarea id="message" name="editors" placeholder="" ' + \
'style="height:200px" spellcheck="false">' + \ 'style="height:200px" spellcheck="false">' + \
editors + '</textarea>' editors + '</textarea>'
roleAssignStr += ' </div>\n' roleAssignStr += ' </div></details>\n'
# Video section # Video section
peertubeStr = ' <div class="container">\n' peertubeStr = ' <details><summary class="cw">' + \
translate['Video Settings'] + '</summary>\n'
peertubeStr += ' <div class="container">\n'
peertubeStr += \ peertubeStr += \
' <b><label class="labels">' + \ ' <b><label class="labels">' + \
translate['Peertube Instances'] + '</label></b>\n' translate['Peertube Instances'] + '</label></b>\n'
@ -1409,7 +1416,7 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
peertubeStr += \ peertubeStr += \
' <input type="text" name="ytdomain" value="' + \ ' <input type="text" name="ytdomain" value="' + \
YTReplacementDomain + '">\n' YTReplacementDomain + '">\n'
peertubeStr += ' </div>\n' peertubeStr += ' </div></details>\n'
instanceTitle = \ instanceTitle = \
getConfigParam(baseDir, 'instanceTitle') getConfigParam(baseDir, 'instanceTitle')
@ -1470,6 +1477,12 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
editProfileForm += \ editProfileForm += \
' <textarea id="message" name="bio" style="height:200px" ' + \ ' <textarea id="message" name="bio" style="height:200px" ' + \
'spellcheck="true">' + bioStr + '</textarea>\n' 'spellcheck="true">' + bioStr + '</textarea>\n'
editProfileForm += \
' <label class="labels">' + translate['Avatar image'] + \
'</label>\n'
editProfileForm += \
' <input type="file" id="avatar" name="avatar"'
editProfileForm += ' accept="' + imageFormats + '">\n'
alsoKnownAsStr = '' alsoKnownAsStr = ''
if actorJson.get('alsoKnownAs'): if actorJson.get('alsoKnownAs'):
@ -1536,6 +1549,8 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
editProfileForm += ' </div>\n' editProfileForm += ' </div>\n'
# Contact information # Contact information
editProfileForm += ' <details><summary class="cw">' + \
translate['Contact Details'] + '</summary>\n'
editProfileForm += '<div class="container">' editProfileForm += '<div class="container">'
editProfileForm += '<label class="labels">' + \ editProfileForm += '<label class="labels">' + \
translate['Email'] + '</label><br>\n' translate['Email'] + '</label><br>\n'
@ -1588,20 +1603,16 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
editProfileForm += '<a href="/users/' + nickname + \ editProfileForm += '<a href="/users/' + nickname + \
'/followingaccounts"><label class="labels">' + \ '/followingaccounts"><label class="labels">' + \
translate['Following'] + '</label></a><br>\n' translate['Following'] + '</label></a><br>\n'
editProfileForm += ' </div>\n' editProfileForm += ' </div></details>\n'
# Customize images and banners # Customize images and banners
editProfileForm += ' <details><summary class="cw">' + \
translate['Background Images'] + '</summary>\n'
editProfileForm += ' <div class="container">\n' editProfileForm += ' <div class="container">\n'
idx = 'The files attached below should be no larger than ' + \ idx = 'The files attached below should be no larger than ' + \
'10MB in total uploaded at once.' '10MB in total uploaded at once.'
editProfileForm += \ editProfileForm += \
' <label class="labels">' + translate[idx] + '</label><br><br>\n' ' <label class="labels">' + translate[idx] + '</label><br><br>\n'
editProfileForm += \
' <label class="labels">' + translate['Avatar image'] + \
'</label>\n'
editProfileForm += \
' <input type="file" id="avatar" name="avatar"'
editProfileForm += ' accept="' + imageFormats + '">\n'
if not newsInstance: if not newsInstance:
editProfileForm += \ editProfileForm += \
@ -1633,9 +1644,11 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
editProfileForm += 'name="right_col_image"' editProfileForm += 'name="right_col_image"'
editProfileForm += ' accept="' + imageFormats + '">\n' editProfileForm += ' accept="' + imageFormats + '">\n'
editProfileForm += ' </div>\n' editProfileForm += ' </div></details>\n'
# Change password # Change password
editProfileForm += ' <details><summary class="cw">' + \
translate['Change Password'] + '</summary>\n'
editProfileForm += ' <div class="container">\n' editProfileForm += ' <div class="container">\n'
editProfileForm += \ editProfileForm += \
'<label class="labels">' + translate['Change Password'] + \ '<label class="labels">' + translate['Change Password'] + \
@ -1647,9 +1660,11 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
'</label><br>\n' '</label><br>\n'
editProfileForm += \ editProfileForm += \
' <input type="text" name="passwordconfirm" value="">\n' ' <input type="text" name="passwordconfirm" value="">\n'
editProfileForm += ' </div>\n' editProfileForm += ' </div></details>\n'
# Filtering and blocking section # Filtering and blocking section
editProfileForm += '<details><summary class="cw">' + \
translate['Filtering and Blocking'] + '</summary>\n'
editProfileForm += ' <div class="container">\n' editProfileForm += ' <div class="container">\n'
editProfileForm += \ editProfileForm += \
' <b><label class="labels">' + \ ' <b><label class="labels">' + \
@ -1722,7 +1737,11 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
'style="height:100px" spellcheck="false">' + \ 'style="height:100px" spellcheck="false">' + \
gitProjectsStr + '</textarea>\n' gitProjectsStr + '</textarea>\n'
editProfileForm += ' </div>\n' editProfileForm += ' </div></details>\n'
# Skills section
editProfileForm += '<details><summary class="cw">' + \
translate['Skills'] + '</summary>\n'
editProfileForm += ' <div class="container">\n' editProfileForm += ' <div class="container">\n'
editProfileForm += \ editProfileForm += \
' <b><label class="labels">' + \ ' <b><label class="labels">' + \