tweak login ui

This commit is contained in:
Your Name 2024-06-23 17:36:19 -04:00 committed by Henri Dickson
parent aa8fa01209
commit 3795081098
6 changed files with 387 additions and 269 deletions

View file

@ -1,19 +1,85 @@
.login-page {
input:invalid {
border: var(--pico-primary) dashed 2px;
article {
header {
text-align: center;
}
}
input:invalid {
background-image: var(--pico-icon-invalid);
padding-right: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem)!important;
padding-left: var(--pico-form-element-spacing-horizontal);
padding-inline-start: var(--pico-form-element-spacing-horizontal)!important;
padding-inline-end: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem)!important;
background-position: center right .75rem;
background-size: 1rem auto;
background-repeat: no-repeat;
}
mark {
padding: 0;
}
:where(.autoComplete_wrapper)+small {
display: block;
width: 100%;
color: var(--pico-muted-color);
}
.autoComplete_wrapper {
position: relative;
}
.autoComplete_wrapper>input {
margin-bottom:0;
}
.autoComplete_wrapper > ul {
position: absolute;
max-height: 226px;
overflow-y: scroll;
top: 100%;
left: 0;
right: 0;
padding: 0;
margin: 0.25rem 0 0 0;
border-radius: 0.6rem;
background-color: var(--pico-background-color);
box-shadow: 0 3px 6px rgba(149, 157, 165, 0.15);
border: 1px solid rgba(33, 33, 33, 0.07);
z-index: 1000;
outline: none;
}
.autoComplete_wrapper > ul[hidden],
.autoComplete_wrapper > ul:empty {
display: block;
opacity: 0;
transform: scale(0);
}
.autoComplete_wrapper > ul > li {
margin: 0.3rem;
padding: 0.3rem 0.5rem;
list-style: none;
text-align: left;
font-size: 1rem;
color: var(--pico-muted-color);
transition: all 0.1s ease-in-out;
border-radius: 0.35rem;
--background-color: rgba(255, 255, 255, 1);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
transition: all 0.2s ease;
}
.autoComplete_wrapper>ul li {
list-style: none;
padding: 0 var(--pico-spacing);
.autoComplete_wrapper > ul > li::selection {
--color: rgba(#ffffff, 0);
--background-color: rgba(#ffffff, 0);
}
.autoComplete_wrapper > ul > li mark {
background-color: transparent;
--color: rgba(255, 122, 122, 1);
font-weight: bold;
}
.autoComplete_wrapper > ul > li mark::selection {
--color: rgba(#ffffff, 0);
--background-color: rgba(#ffffff, 0);
}
.autoComplete_wrapper>ul>li:hover {

View file

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-06-20 21:41-0400\n"
"POT-Creation-Date: 2024-06-23 17:34-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -675,7 +675,7 @@ msgstr "显示更多"
#: catalog/templates/_item_reviews.html:47
#: catalog/templates/podcast_episode_data.html:44
#: social/templates/events.html:43 social/templates/feed_data.html:44
#: social/templates/feed_events.html:131
#: social/templates/feed_events.html:133
msgid "nothing more."
msgstr "没有更多内容了。"
@ -1470,7 +1470,7 @@ msgstr "开发者"
msgid "Source Code"
msgstr "源代码"
#: common/templates/_footer.html:16 users/templates/users/login.html:166
#: common/templates/_footer.html:16 users/templates/users/login.html:161
#, python-format
msgid "You are visiting an alternative domain for %(site_name)s, please always use <a href=\"%(site_url)s%(request.get_full_path)s\">original version</a> if possible."
msgstr "这是%(site_name)s的临时镜像请尽可能使用<a href=\"%(site_url)s%(request.get_full_path)s\">原始站点</a>。"
@ -2761,54 +2761,42 @@ msgstr "分享我的收藏单"
msgid "shared {username}'s collection"
msgstr "分享 {username} 的收藏单"
#: mastodon/models.py:14
#: mastodon/models.py:7
msgid "site domain name"
msgstr "实例域名"
#: mastodon/models.py:15
#: mastodon/models.py:8
msgid "domain for api call"
msgstr "实例API域名"
#: mastodon/models.py:16
#: mastodon/models.py:9
msgid "type and verion"
msgstr "实例版本"
#: mastodon/models.py:17
#: mastodon/models.py:10
msgid "in-site app id"
msgstr "实例应用id"
#: mastodon/models.py:18
#: mastodon/models.py:11
msgid "client id"
msgstr "实例应用Client ID"
#: mastodon/models.py:19
#: mastodon/models.py:12
msgid "client secret"
msgstr "实例应用Client Secret"
#: mastodon/models.py:20
#: mastodon/models.py:13
msgid "vapid key"
msgstr "实例应用VAPID Key"
#: mastodon/models.py:22
#: mastodon/models.py:15
msgid "0: custom emoji; 1: unicode moon; 2: text"
msgstr "实例表情模式"
#: mastodon/models.py:25
#: mastodon/models.py:18
msgid "max toot len"
msgstr "帖文长度限制"
#: mastodon/models.py:38
msgid "username and original site"
msgstr "用户标识"
#: mastodon/models.py:40
msgid "local database id"
msgstr "本地标识"
#: mastodon/models.py:42
msgid "target site domain name"
msgstr "目标实例域名"
#: social/templates/activity/comment_child_item.html:12
#: social/templates/feed_events.html:40
msgid "play"
@ -3016,7 +3004,7 @@ msgstr "仅书影音"
msgid "Notifications"
msgstr "通知"
#: social/templates/feed_data.html:48 social/templates/feed_events.html:135
#: social/templates/feed_data.html:48 social/templates/feed_events.html:137
#, python-format
msgid "Find and mark some books/movies/podcasts/games, <a href=\"%(import_url)s\">import your data</a> from Goodreads/Letterboxd/Douban, follow some fellow %(site_name)s users on the fediverse, so their recent activities and yours will show up here."
msgstr "搜索并标记一些书影音/播客/游戏,<a href=\"%(import_url)s\">导入你的豆瓣、Letterboxd或Goodreads记录</a>,去联邦宇宙(长毛象)关注一些正在使用%(site_name)s的用户这里就会显示你和她们的近期动态。"
@ -3301,7 +3289,7 @@ msgstr "必填限英文字母数字下划线最多30个字符。"
msgid "A user with that username already exists."
msgstr "使用该用户名的用户已存在。"
#: users/models/user.py:92 users/templates/users/login.html:60
#: users/models/user.py:92
msgid "email address"
msgstr "电子邮件地址"
@ -3568,12 +3556,11 @@ msgstr "无法找到用户,请确认拼写正确;也可能服务器正忙,
msgid "Searching the fediverse"
msgstr "正在搜索联邦宇宙"
#: users/templates/users/login.html:16 users/templates/users/login.html:84
#: users/templates/users/register.html:8
#: users/templates/users/login.html:16 users/templates/users/register.html:8
msgid "Register"
msgstr "注册"
#: users/templates/users/login.html:16 users/templates/users/login.html:84
#: users/templates/users/login.html:16
msgid "Login"
msgstr "登录"
@ -3582,58 +3569,86 @@ msgstr "登录"
msgid "back to your home page."
msgstr "返回首页"
#: users/templates/users/login.html:69
msgid "domain name of your instance, e.g. mastodon.social"
#: users/templates/users/login.html:56
msgid "Email"
msgstr "电子邮件"
#: users/templates/users/login.html:61
msgid "Fediverse (Mastodon)"
msgstr "联邦宇宙(有时也被称为长毛象)"
#: users/templates/users/login.html:71
msgid "Threads"
msgstr "Threads"
#: users/templates/users/login.html:74
msgid "Bluesky"
msgstr "Bluesky"
#: users/templates/users/login.html:89
msgid "Enter your email address"
msgstr "输入电子邮件地址"
#: users/templates/users/login.html:91
msgid "Verify Email"
msgstr "验证电子邮件"
#: users/templates/users/login.html:106
msgid "domain of your instance, e.g. mastodon.social"
msgstr "实例域名(不含@和@之前的部分)如mastodon.social"
#: users/templates/users/login.html:78
msgid "Login Method"
msgstr "选择登录方式"
#: users/templates/users/login.html:79
msgid "Fediverse Identity"
msgstr "联邦宇宙授权"
#: users/templates/users/login.html:80
msgid "Email Verification"
msgstr "电子邮件验证"
#: users/templates/users/login.html:112
msgid "select or input domain name of your instance (excl. @)"
msgstr "输入或选择实例域名(不含@和@之前的部分)"
msgid "Please enter domain of your instance; e.g. if your id is <i>@neodb@mastodon.social</i>, only enter <i>mastodon.social</i>."
msgstr "请输入你的实例域名(不含@和@之前的部分);如果你的联邦账号是<i>@neodb@mastodon.social</i>只需要在此输入<i>mastodon.social</i>。"
#: users/templates/users/login.html:145
msgid "Authorize"
msgstr "授权"
#: users/templates/users/login.html:115 users/templates/users/login.html:145
msgid "Authorize via Fediverse instance"
msgstr "去联邦实例授权注册或登录"
#: users/templates/users/login.html:150
#: users/templates/users/login.html:117
msgid "If you don't have a <a href=\"https://joinmastodon.org/servers\" target=\"_blank\">Fediverse (Mastodon) account</a> yet, you may register or login with Email first, and link it with Fediverse (Mastodon) later in account settings."
msgstr "如果你还没有或不便注册<a href=\"https://joinmastodon.org/servers\" target=\"_blank\">联邦实例</a>账号,也可先通过电子邮件或其它平台注册登录,未来再作关联。"
#: users/templates/users/login.html:127
msgid "Authorize via Threads"
msgstr "去Threads授权注册或登录"
#: users/templates/users/login.html:128
msgid "If you have already account here registered via a different way, you may login through there and link with your Threads account in account settings."
msgstr "如果你已通过其它方式注册过本站帐号请用该方式登录后再关联Threads。"
#: users/templates/users/login.html:137
msgid "Authorize via Bluesky"
msgstr "去Bluesky授权注册或登录"
#: users/templates/users/login.html:138
msgid "If you have already account here registered via a different way, you may login through there and link with your Bluesky account in account settings."
msgstr "如果你已通过其它方式注册过本站帐号请用该方式登录后再关联Bluesky。"
#: users/templates/users/login.html:151
msgid "Valid invitation code, please login or register."
msgstr "邀请链接有效,可注册新用户"
#: users/templates/users/login.html:152
#: users/templates/users/login.html:153
msgid "Please use invitation link to register a new account; existing user may login."
msgstr "本站目前为邀请注册,已有账户可直接登入,新用户请使用有效邀请链接注册"
#: users/templates/users/login.html:154
#: users/templates/users/login.html:155
msgid "Invitation code invalid or expired."
msgstr "邀请链接无效,已有账户可直接登入,新用户请使用有效邀请链接注册"
#: users/templates/users/login.html:159
msgid "Select Email Verification if you don't have a <a href=\"https://joinmastodon.org/servers\" target=\"_blank\">Fediverse account</a>."
msgstr "如不便或尚未<a href=\"https://joinmastodon.org/zh/servers\" target=\"_blank\">注册联邦宇宙</a>,也可以在上方选择「电子邮件验证」注册登录本站。"
#: users/templates/users/login.html:161
msgid "Enter your email address to register or sign in if you don't have a Fediverse account, or have associated your email with your Fediverse account before; otherwise please sign in via Fediverse, and associate your email address once logged in."
msgstr "现有用户通过联邦宇宙登录后关联电子邮件地址,即可通过邮件登录本站;如不便使用联邦宇宙,也可在此输入邮件地址注册账号,未来再关联到联邦宇宙。"
#: users/templates/users/login.html:168
#: users/templates/users/login.html:163
msgid "Loading timed out, please check your network (VPN) settings."
msgstr "部分模块加载超时,请检查网络(翻墙)设置。"
#: users/templates/users/login.html:174
#: users/templates/users/login.html:169
msgid "Using this site implies consent of our <a href=\"/pages/rules/\">rules</a> and <a href=\"/pages/terms/\">terms</a>, and use of cookies to provide necessary functionality."
msgstr "继续访问或注册视为同意<a href=\"/pages/rules/\">站规</a>与<a href=\"/pages/terms/\">协议</a>及使用cookie提供必要功能"
#: users/templates/users/login.html:175
msgid "select or input domain name of your instance (excl. @)"
msgstr "输入或选择实例域名(不含@和@之前的部分)"
#: users/templates/users/preferences.html:26
msgid "Default view once logged in"
msgstr "登录后默认显示"

View file

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-06-20 21:41-0400\n"
"POT-Creation-Date: 2024-06-23 17:34-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -675,7 +675,7 @@ msgstr "顯示更多"
#: catalog/templates/_item_reviews.html:47
#: catalog/templates/podcast_episode_data.html:44
#: social/templates/events.html:43 social/templates/feed_data.html:44
#: social/templates/feed_events.html:131
#: social/templates/feed_events.html:133
msgid "nothing more."
msgstr "沒有更多內容了。"
@ -1470,7 +1470,7 @@ msgstr "開發者"
msgid "Source Code"
msgstr "源代碼"
#: common/templates/_footer.html:16 users/templates/users/login.html:166
#: common/templates/_footer.html:16 users/templates/users/login.html:161
#, python-format
msgid "You are visiting an alternative domain for %(site_name)s, please always use <a href=\"%(site_url)s%(request.get_full_path)s\">original version</a> if possible."
msgstr "這是%(site_name)s的臨時鏡像請儘可能使用<a href=\"%(site_url)s%(request.get_full_path)s\">原始站點</a>。"
@ -2761,54 +2761,42 @@ msgstr "分享我的收藏單"
msgid "shared {username}'s collection"
msgstr "分享 {username} 的收藏單"
#: mastodon/models.py:14
#: mastodon/models.py:7
msgid "site domain name"
msgstr "實例域名"
#: mastodon/models.py:15
#: mastodon/models.py:8
msgid "domain for api call"
msgstr "實例API域名"
#: mastodon/models.py:16
#: mastodon/models.py:9
msgid "type and verion"
msgstr "實例版本"
#: mastodon/models.py:17
#: mastodon/models.py:10
msgid "in-site app id"
msgstr "實例應用id"
#: mastodon/models.py:18
#: mastodon/models.py:11
msgid "client id"
msgstr "實例應用Client ID"
#: mastodon/models.py:19
#: mastodon/models.py:12
msgid "client secret"
msgstr "實例應用Client Secret"
#: mastodon/models.py:20
#: mastodon/models.py:13
msgid "vapid key"
msgstr "實例應用VAPID Key"
#: mastodon/models.py:22
#: mastodon/models.py:15
msgid "0: custom emoji; 1: unicode moon; 2: text"
msgstr "實例表情模式"
#: mastodon/models.py:25
#: mastodon/models.py:18
msgid "max toot len"
msgstr "帖文長度限制"
#: mastodon/models.py:38
msgid "username and original site"
msgstr "用戶標識"
#: mastodon/models.py:40
msgid "local database id"
msgstr "本地標識"
#: mastodon/models.py:42
msgid "target site domain name"
msgstr "目標實例域名"
#: social/templates/activity/comment_child_item.html:12
#: social/templates/feed_events.html:40
msgid "play"
@ -3016,7 +3004,7 @@ msgstr "僅書影音"
msgid "Notifications"
msgstr "通知"
#: social/templates/feed_data.html:48 social/templates/feed_events.html:135
#: social/templates/feed_data.html:48 social/templates/feed_events.html:137
#, python-format
msgid "Find and mark some books/movies/podcasts/games, <a href=\"%(import_url)s\">import your data</a> from Goodreads/Letterboxd/Douban, follow some fellow %(site_name)s users on the fediverse, so their recent activities and yours will show up here."
msgstr "搜索並標記一些書影音/播客/遊戲,<a href=\"%(import_url)s\">導入你的豆瓣、Letterboxd或Goodreads記錄</a>,去聯邦宇宙(長毛象)關注一些正在使用%(site_name)s的用戶這裏就會顯示你和她們的近期動態。"
@ -3301,7 +3289,7 @@ msgstr "必填限英文字母數字下劃線最多30個字符。"
msgid "A user with that username already exists."
msgstr "使用該用戶名的用戶已存在。"
#: users/models/user.py:92 users/templates/users/login.html:60
#: users/models/user.py:92
msgid "email address"
msgstr "電子郵件地址"
@ -3568,12 +3556,11 @@ msgstr "無法找到用戶,請確認拼寫正確;也可能服務器正忙,
msgid "Searching the fediverse"
msgstr "正在搜索聯邦宇宙"
#: users/templates/users/login.html:16 users/templates/users/login.html:84
#: users/templates/users/register.html:8
#: users/templates/users/login.html:16 users/templates/users/register.html:8
msgid "Register"
msgstr "註冊"
#: users/templates/users/login.html:16 users/templates/users/login.html:84
#: users/templates/users/login.html:16
msgid "Login"
msgstr "登錄"
@ -3582,58 +3569,86 @@ msgstr "登錄"
msgid "back to your home page."
msgstr "返回首頁"
#: users/templates/users/login.html:69
msgid "domain name of your instance, e.g. mastodon.social"
#: users/templates/users/login.html:56
msgid "Email"
msgstr "電子郵件"
#: users/templates/users/login.html:61
msgid "Fediverse (Mastodon)"
msgstr "聯邦宇宙(有時也被稱爲長毛象)"
#: users/templates/users/login.html:71
msgid "Threads"
msgstr "Threads"
#: users/templates/users/login.html:74
msgid "Bluesky"
msgstr "Bluesky"
#: users/templates/users/login.html:89
msgid "Enter your email address"
msgstr "輸入電子郵件地址"
#: users/templates/users/login.html:91
msgid "Verify Email"
msgstr "驗證電子郵件"
#: users/templates/users/login.html:106
msgid "domain of your instance, e.g. mastodon.social"
msgstr "實例域名(不含@和@之前的部分)如mastodon.social"
#: users/templates/users/login.html:78
msgid "Login Method"
msgstr "選擇登錄方式"
#: users/templates/users/login.html:79
msgid "Fediverse Identity"
msgstr "聯邦宇宙授權"
#: users/templates/users/login.html:80
msgid "Email Verification"
msgstr "電子郵件驗證"
#: users/templates/users/login.html:112
msgid "select or input domain name of your instance (excl. @)"
msgstr "輸入或選擇實例域名(不含@和@之前的部分)"
msgid "Please enter domain of your instance; e.g. if your id is <i>@neodb@mastodon.social</i>, only enter <i>mastodon.social</i>."
msgstr "請輸入你的實例域名(不含@和@之前的部分);如果你的聯邦賬號是<i>@neodb@mastodon.social</i>只需要在此輸入<i>mastodon.social</i>。"
#: users/templates/users/login.html:145
msgid "Authorize"
msgstr "授權"
#: users/templates/users/login.html:115 users/templates/users/login.html:145
msgid "Authorize via Fediverse instance"
msgstr "去聯邦實例授權註冊或登錄"
#: users/templates/users/login.html:150
#: users/templates/users/login.html:117
msgid "If you don't have a <a href=\"https://joinmastodon.org/servers\" target=\"_blank\">Fediverse (Mastodon) account</a> yet, you may register or login with Email first, and link it with Fediverse (Mastodon) later in account settings."
msgstr "如果你還沒有或不便註冊<a href=\"https://joinmastodon.org/servers\" target=\"_blank\">聯邦實例</a>賬號,也可先通過電子郵件或其它平臺註冊登錄,未來再作關聯。"
#: users/templates/users/login.html:127
msgid "Authorize via Threads"
msgstr "去Threads授權註冊或登錄"
#: users/templates/users/login.html:128
msgid "If you have already account here registered via a different way, you may login through there and link with your Threads account in account settings."
msgstr "如果你已通過其它方式註冊過本站帳號請用該方式登錄後再關聯Threads。"
#: users/templates/users/login.html:137
msgid "Authorize via Bluesky"
msgstr "去Bluesky授權註冊或登錄"
#: users/templates/users/login.html:138
msgid "If you have already account here registered via a different way, you may login through there and link with your Bluesky account in account settings."
msgstr "如果你已通過其它方式註冊過本站帳號請用該方式登錄後再關聯Bluesky。"
#: users/templates/users/login.html:151
msgid "Valid invitation code, please login or register."
msgstr "邀請鏈接有效,可註冊新用戶"
#: users/templates/users/login.html:152
#: users/templates/users/login.html:153
msgid "Please use invitation link to register a new account; existing user may login."
msgstr "本站目前爲邀請註冊,已有賬戶可直接登入,新用戶請使用有效邀請鏈接註冊"
#: users/templates/users/login.html:154
#: users/templates/users/login.html:155
msgid "Invitation code invalid or expired."
msgstr "邀請鏈接無效,已有賬戶可直接登入,新用戶請使用有效邀請鏈接註冊"
#: users/templates/users/login.html:159
msgid "Select Email Verification if you don't have a <a href=\"https://joinmastodon.org/servers\" target=\"_blank\">Fediverse account</a>."
msgstr "如不便或尚未<a href=\"https://joinmastodon.org/zh/servers\" target=\"_blank\">註冊聯邦宇宙</a>,也可以在上方選擇「電子郵件驗證」註冊登錄本站。"
#: users/templates/users/login.html:161
msgid "Enter your email address to register or sign in if you don't have a Fediverse account, or have associated your email with your Fediverse account before; otherwise please sign in via Fediverse, and associate your email address once logged in."
msgstr "現有用戶通過聯邦宇宙登錄後關聯電子郵件地址,即可通過郵件登錄本站;如不便使用聯邦宇宙,也可在此輸入郵件地址註冊賬號,未來再關聯到聯邦宇宙。"
#: users/templates/users/login.html:168
#: users/templates/users/login.html:163
msgid "Loading timed out, please check your network (VPN) settings."
msgstr "部分模塊加載超時,請檢查網絡(翻牆)設置。"
#: users/templates/users/login.html:174
#: users/templates/users/login.html:169
msgid "Using this site implies consent of our <a href=\"/pages/rules/\">rules</a> and <a href=\"/pages/terms/\">terms</a>, and use of cookies to provide necessary functionality."
msgstr "繼續訪問或註冊視爲同意<a href=\"/pages/rules/\">站規</a>與<a href=\"/pages/terms/\">協議</a>及使用cookie提供必要功能"
#: users/templates/users/login.html:175
msgid "select or input domain name of your instance (excl. @)"
msgstr "輸入或選擇實例域名(不含@和@之前的部分)"
#: users/templates/users/preferences.html:26
msgid "Default view once logged in"
msgstr "登錄後默認顯示"

View file

@ -3,13 +3,6 @@ from django.utils import timezone
from django.utils.translation import gettext_lazy as _
class MastodonError(Exception):
instance: str
def __init__(self, *args: object) -> None:
super().__init__(args)
class MastodonApplication(models.Model):
domain_name = models.CharField(_("site domain name"), max_length=200, unique=True)
api_domain = models.CharField(_("domain for api call"), max_length=200, blank=True)
@ -31,24 +24,3 @@ class MastodonApplication(models.Model):
def __str__(self):
return self.domain_name
class CrossSiteUserInfo(models.Model):
# username@original_site
uid = models.CharField(_("username and original site"), max_length=200)
# pk in the boofilsic db
local_id = models.PositiveIntegerField(_("local database id"))
# target site domain name
target_site = models.CharField(_("target site domain name"), max_length=100)
# target site id
site_id = models.CharField(max_length=100, blank=False)
class Meta:
constraints = [
models.UniqueConstraint(
fields=["uid", "target_site"], name="unique_cross_site_user_info"
)
]
def __str__(self):
return f"{self.uid}({self.local_id}) in {self.target_site}({self.site_id})"

View file

@ -70,7 +70,7 @@
{% trans "wrote a note" %}
{% endif %}
</span>
{% if piece and piece.classname != 'note' %}
{% if piece and item and piece.classname != 'note' %}
<article>{% include "_item_card.html" with item=item allow_embed=1 %}</article>
{% endif %}
<div>{{ post.summary|default:'' }}</div>

View file

@ -43,74 +43,140 @@
</head>
<body>
<article>
<header style="text-align: center;">
<header>
<img src="{{ site_logo }}" class="logo" alt="logo">
</header>
<div>
{% if request.user.is_authenticated %}
<a href="{{ request.session.next_url | default:'/' }}" class="button">{% trans 'back to your home page.' %}</a>
{% else %}
<form action="{% url 'users:connect' %}" method="post">
{% elif allow_any_site %}
<div role="group">
<button class="platform outline" _="on click add .outline to .platform then remove .outline from me then hide
<form/>
then show #login-email" id="platform-email" title="{% trans "Email" %}">
<i class="fa-solid fa-envelope"></i>
</button>
<button class="platform outline" _="on click add .outline to .platform then remove .outline from me then hide
<form/>
then show #login-mastodon" id="platform-mastodon" title="{% trans "Fediverse (Mastodon)" %}">
<svg xmlns="http://www.w3.org/2000/svg"
viewBox="64 163 873 873"
style="width: 1em;
color: var(--pico-color);
padding-bottom: 0.2em">
<path d="M539 176q-32 0 -55 22t-25 55t20.5 58t56 27t58.5 -20.5t27 -56t-20.5 -59t-56.5 -26.5h-5zM452 271l-232 118q20 20 25 48l231 -118q-19 -20 -24 -48zM619 298q-13 25 -38 38l183 184q13 -25 39 -38zM477 320l-135 265l40 40l143 -280q-28 -5 -48 -25zM581 336 q-22 11 -46 10l-8 -1l21 132l56 9zM155 370q-32 0 -55 22.5t-25 55t20.5 58t56.5 27t59 -21t26.5 -56t-21 -58.5t-55.5 -27h-6zM245 438q1 9 1 18q-1 19 -10 35l132 21l26 -50zM470 474l-26 51l311 49q-1 -8 -1 -17q1 -19 10 -36zM842 480q-32 1 -55 23t-24.5 55t21 58 t56 27t58.5 -20.5t27 -56.5t-20.5 -59t-56.5 -27h-6zM236 493q-13 25 -39 38l210 210l51 -25zM196 531q-21 11 -44 10l-9 -1l40 256q21 -10 45 -9l8 1zM560 553l48 311q21 -10 44 -9l10 1l-46 -294zM755 576l-118 60l8 56l135 -68q-20 -20 -25 -48zM781 625l-119 231 q28 5 48 25l119 -231q-28 -5 -48 -25zM306 654l-68 134q28 5 48 25l60 -119zM568 671l-281 143q19 20 24 48l265 -135zM513 771l-51 25l106 107q13 -25 39 -38zM222 795q-32 0 -55.5 22.5t-25 55t21 57.5t56 27t58.5 -20.5t27 -56t-20.5 -58.5t-56.5 -27h-5zM311 863 q2 9 1 18q-1 19 -9 35l256 41q-1 -9 -1 -18q1 -18 10 -35zM646 863q-32 0 -55 22.5t-24.5 55t20.5 58t56 27t59 -21t27 -56t-20.5 -58.5t-56.5 -27h-6z" />
</svg>
<!--<i class="fa-brands fa-mastodon"></i>-->
</button>
<!-- <button class="platform outline" _="on click add .outline to .platform then remove .outline from me then hide <form/> then show #login-threads" id="platform-threads" title="{% trans "Threads" %}">
<i class="fa-brands fa-threads"></i>
</button>
<button class="platform outline" _="on click add .outline to .platform then remove .outline from me then hide <form/> then show #login-bluesky" id="platform-bluesky" title="{% trans "Bluesky" %}">
<i class="fa-brands fa-bluesky" style="font-size:85%"></i>
</button> -->
</div>
<form id="login-email"
style="display:none"
action="{% url 'users:connect' %}"
method="post"
onsubmit="return login(this);">
{% csrf_token %}
{% if allow_any_site %}
<input name="method" value="email" type="hidden" />
<input required
name="email"
id="email"
type="email"
placeholder="{% trans "email address" %}"
disabled
autocomplete="email"
style="display:none" />
placeholder="{% trans 'Enter your email address' %}"
autocomplete="email" />
<input type='submit' value="{% trans 'Verify Email' %}" />
</form>
<form id="login-mastodon"
style="display:none"
action="{% url 'users:connect' %}"
method="post"
onsubmit="return login(this);">
{% csrf_token %}
<input name="method" value="mastodon" type="hidden" />
<input required
type="text"
name="domain"
id="domain"
autofocus
pattern="(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,})"
placeholder="{% trans "domain name of your instance, e.g. mastodon.social" %}"
placeholder="{% trans 'domain of your instance, e.g. mastodon.social' %}"
autocorrect="off"
autocapitalize="off"
autocomplete="off"
spellcheck="false" />
<div role="group" style="width:100%">
<select style="width:max-content"
required
onchange="switch_login()"
name="method">
<option disabled value="">{% trans "Login Method" %}</option>
<option selected value="fedi">{% trans "Fediverse Identity" %}</option>
<option value="email">{% trans "Email Verification" %}</option>
<small id="mastodon">
{% blocktrans %}Please enter domain of your instance; e.g. if your id is <i>@neodb@mastodon.social</i>, only enter <i>mastodon.social</i>.{% endblocktrans %}
</small>
<br>
<input type='submit' value="{% trans 'Authorize via Fediverse instance' %}" />
<small>
{% blocktrans %}If you don't have a <a href="https://joinmastodon.org/servers" target="_blank">Fediverse (Mastodon) account</a> yet, you may register or login with Email first, and link it with Fediverse (Mastodon) later in account settings.{% endblocktrans %}
</small>
</form>
<form id="login-threads"
style="display:none"
action="{% url 'users:connect' %}"
method="post"
onsubmit="return login(this);">
{% csrf_token %}
<input name="method" value="threads" type="hidden" />
<input type='submit' value="{% trans 'Authorize via Threads' %}" />
<small>{% trans "If you have already account here registered via a different way, you may login through there and link with your Threads account in account settings." %}</small>
</form>
<form id="login-bluesky"
style="display:none"
action="{% url 'users:connect' %}"
method="post"
onsubmit="return login(this);">
{% csrf_token %}
<input name="method" value="bluesky" type="hidden" />
<input type='submit' value="{% trans 'Authorize via Bluesky' %}" />
<small>{% trans "If you have already account here registered via a different way, you may login through there and link with your Bluesky account in account settings." %}</small>
</form>
{% else %}
<form>
<select name="domain">
{% for site in sites %}<option value="{{ site }}">@{{ site }}</option>{% endfor %}
</select>
<input style="width:100%"
type='submit'
value="{% trans 'Register' %} / {% trans "Login" %}"
id="loginButton"
disabled />
<input type='submit'
value="{% trans 'Authorize via Fediverse instance' %}"
id="loginButton" />
</form>
{% endif %}
{% if invite_status %}
<small>
{% if invite_status == 1 %}
<i class="fa-solid fa-circle-check"></i> {% trans "Valid invitation code, please login or register." %}
{% elif invite_status == -1 %}
<i class="fa-solid fa-person-circle-question"></i> {% trans "Please use invitation link to register a new account; existing user may login." %}
{% elif invite_status == -2 %}
<i class="fa-solid fa-circle-xmark"></i> {% trans "Invitation code invalid or expired." %}
{% endif %}
</small>
{% endif %}
<small class="hide_unless_alter_domain">
<br>
{% blocktrans %}You are visiting an alternative domain for {{ site_name }}, please always use <a href="{{ site_url }}{{ request.get_full_path }}">original version</a> if possible.{% endblocktrans %}
</small>
<div class="delayed">{% trans "Loading timed out, please check your network (VPN) settings." %}</div>
</div>
</article>
<footer>
<br>
<small>
{% blocktrans %}Using this site implies consent of our <a href="/pages/rules/">rules</a> and <a href="/pages/terms/">terms</a>, and use of cookies to provide necessary functionality.{% endblocktrans %}
</small>
</footer>
{{ sites|json_script:"sites-data" }}
<script>
function switch_login(){
if ($('select').val() == 'email') {
$('#domain').prop("disabled", true);
$('#domain').hide();
$('#email').prop("disabled", false);
$('#email').show();
$('#email')[0].focus();
//$('#domain').val('');
$('#fedi-tips').hide();
$('#email-tips').show();
} else {
$('#email').prop("disabled", true);
$('#email').hide();
$('#domain').prop("disabled", false);
$('#domain').show();
$('#domain')[0].focus();
//$('#email').val('');
$('#fedi-tips').show();
$('#email-tips').hide();
}
}
const sites = JSON.parse(document.getElementById('sites-data').textContent);
const autoCompleteJS = new autoComplete({ placeHolder: "{% trans "select or input domain name of your instance (excl. @)" %}",
const autoCompleteJS = new autoComplete({ placeHolder: "{% trans 'select or input domain name of your instance (excl. @)' %}",
selector: "#domain",
// wrapper: false,
data: {
src: sites
},
@ -128,51 +194,35 @@
}
}
});
function login(f){
localStorage.login_method = $(f).find('input[name="method"]').val();
localStorage.mastodon_domain = $('#domain').val();
localStorage.email = $('#email').val();
return true;
}
$(()=>{
var method = localStorage.login_method;
if (!!method) {
$('#domain').val(localStorage.mastodon_domain);
$('#email').val(localStorage.email);
} else {
// restire cookie from previous versions
var d = Cookies.get('mastodon_domain');
if (d) {
if (d == "@") {
$('select').val('email');
switch_login()
method = "email";
} else {
method = "mastodon";
$('#domain').val(Cookies.get('mastodon_domain'));
}
}
}
if (!!method) {
$('#platform-' + method).removeClass('outline');
$('#login-' + method).show();
}
})
</script>
{% else %}
<select name="domain">
{% for site in sites %}<option value="{{ site }}">@{{ site }}</option>{% endfor %}
</select>
<input type='submit' value="{% trans 'Authorize' %}" id="loginButton" />
{% endif %}
{% if invite_status %}
<small>
{% if invite_status == 1 %}
<i class="fa-solid fa-circle-check"></i> {% trans "Valid invitation code, please login or register." %}
{% elif invite_status == -1 %}
<i class="fa-solid fa-person-circle-question"></i> {% trans "Please use invitation link to register a new account; existing user may login." %}
{% elif invite_status == -2 %}
<i class="fa-solid fa-circle-xmark"></i> {% trans "Invitation code invalid or expired." %}
{% endif %}
</small>
{% endif %}
<small id="fedi-tips">
{% blocktrans %}Select Email Verification if you don't have a <a href="https://joinmastodon.org/servers" target="_blank">Fediverse account</a>.{% endblocktrans %}
</small>
<small id="email-tips" style="display:none;">{% trans "Enter your email address to register or sign in if you don't have a Fediverse account, or have associated your email with your Fediverse account before; otherwise please sign in via Fediverse, and associate your email address once logged in." %}</small>
</form>
{% endif %}
<small class="hide_unless_alter_domain">
<br>
{% blocktrans %}You are visiting an alternative domain for {{ site_name }}, please always use <a href="{{ site_url }}{{ request.get_full_path }}">original version</a> if possible.{% endblocktrans %}
</small>
<div class="delayed">{% trans "Loading timed out, please check your network (VPN) settings." %}</div>
</div>
</article>
<footer>
<br>
<small>
{% blocktrans %}Using this site implies consent of our <a href="/pages/rules/">rules</a> and <a href="/pages/terms/">terms</a>, and use of cookies to provide necessary functionality.{% endblocktrans %}
</small>
</footer>
</body>
</html>