nodebb-theme-harmony 3.0.14 → 3.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package-lock.json +1023 -0
- package/package.json +1 -1
- package/scss/mobilebar.scss +1 -1
- package/templates/account/blocks.tpl +6 -6
- package/templates/account/categories.tpl +9 -9
- package/templates/account/consent.tpl +21 -21
- package/templates/account/edit/password.tpl +8 -8
- package/templates/account/edit/username.tpl +6 -6
- package/templates/account/edit.tpl +22 -22
- package/templates/account/followers.tpl +2 -2
- package/templates/account/following.tpl +2 -2
- package/templates/account/groups.tpl +2 -2
- package/templates/account/info.tpl +33 -33
- package/templates/account/posts.tpl +7 -7
- package/templates/account/profile.tpl +6 -6
- package/templates/account/sessions.tpl +1 -1
- package/templates/account/settings.tpl +55 -55
- package/templates/account/shares.tpl +1 -1
- package/templates/account/theme.tpl +15 -16
- package/templates/account/topics.tpl +6 -6
- package/templates/account/uploads.tpl +3 -3
- package/templates/admin/plugins/harmony.tpl +14 -14
- package/templates/category.tpl +7 -7
- package/templates/header.tpl +1 -1
- package/templates/notifications.tpl +1 -1
- package/templates/partials/account/admin-menu.tpl +8 -8
- package/templates/partials/account/header.tpl +12 -10
- package/templates/partials/account/session-list.tpl +3 -3
- package/templates/partials/account/sidebar-left.tpl +18 -18
- package/templates/partials/buttons/newTopic.tpl +1 -1
- package/templates/partials/categories/item.tpl +2 -2
- package/templates/partials/categories/lastpost.tpl +3 -3
- package/templates/partials/category/subcategory.tpl +2 -2
- package/templates/partials/header/brand.tpl +2 -2
- package/templates/partials/mobile-nav.tpl +2 -2
- package/templates/partials/notifications_list.tpl +3 -3
- package/templates/partials/paginator.tpl +10 -10
- package/templates/partials/posts_list_item.tpl +1 -1
- package/templates/partials/quick-category-search-results.tpl +4 -4
- package/templates/partials/quick-search-results.tpl +4 -4
- package/templates/partials/sidebar/chats.tpl +5 -5
- package/templates/partials/sidebar/drafts.tpl +3 -3
- package/templates/partials/sidebar/logged-in-menu.tpl +4 -4
- package/templates/partials/sidebar/logged-out-menu.tpl +10 -10
- package/templates/partials/sidebar/notifications.tpl +5 -5
- package/templates/partials/sidebar/search-mobile.tpl +5 -5
- package/templates/partials/sidebar/search.tpl +5 -5
- package/templates/partials/sidebar/user-menu.tpl +20 -20
- package/templates/partials/sidebar-left.tpl +2 -2
- package/templates/partials/skin-switcher.tpl +3 -3
- package/templates/partials/topic/crosspost.tpl +2 -2
- package/templates/partials/topic/event.tpl +3 -3
- package/templates/partials/topic/mark-unread.tpl +1 -1
- package/templates/partials/topic/navigator-mobile.tpl +4 -4
- package/templates/partials/topic/post-editor.tpl +1 -1
- package/templates/partials/topic/post-menu.tpl +1 -1
- package/templates/partials/topic/post.tpl +17 -17
- package/templates/partials/topic/quickreply.tpl +7 -5
- package/templates/partials/topic/reply-button.tpl +5 -5
- package/templates/partials/topic/selection-tooltip.tpl +1 -1
- package/templates/partials/topic/sort.tpl +4 -4
- package/templates/partials/topic/stats.tpl +11 -11
- package/templates/partials/topic/tools.tpl +1 -1
- package/templates/partials/topic/watch.tpl +9 -9
- package/templates/partials/topic-list-bar.tpl +12 -12
- package/templates/partials/topics_list.tpl +13 -13
- package/templates/partials/users_list_menu.tpl +6 -6
- package/templates/popular.tpl +1 -1
- package/templates/recent.tpl +3 -3
- package/templates/tag.tpl +2 -2
- package/templates/tags.tpl +3 -3
- package/templates/top.tpl +1 -1
- package/templates/topic.tpl +5 -5
- package/templates/unread.tpl +2 -2
- package/templates/users.tpl +4 -4
- package/templates/world.tpl +9 -9
- package/templates/partials/topic/post-placeholder.tpl +0 -15
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
<div component="category/posts" class="ps-2 text-xs d-flex flex-column h-100 gap-1">
|
|
5
5
|
<div class="text-nowrap text-truncate">
|
|
6
6
|
<a class="text-decoration-none avatar-tooltip" title="{./user.displayname}" href="{config.relative_path}/user/{./user.userslug}">{{buildAvatar(posts.user, "18px", true)}}</a>
|
|
7
|
-
<a class="permalink text-muted timeago text-xs" href="{config.relative_path}/topic/{./topic.slug}{{{ if ./index }}}/{./index}{{{ end }}}" title="{./timestampISO}" aria-label="
|
|
7
|
+
<a class="permalink text-muted timeago text-xs" href="{config.relative_path}/topic/{./topic.slug}{{{ if ./index }}}/{./index}{{{ end }}}" title="{./timestampISO}" aria-label="{{tx("global:lastpost")}}"></a>
|
|
8
8
|
</div>
|
|
9
9
|
<div class="post-content text-xs text-break line-clamp-sm-2 lh-sm position-relative flex-fill">
|
|
10
|
-
<a class="stretched-link" tabindex="-1" href="{config.relative_path}/topic/{./topic.slug}{{{ if ./index }}}/{./index}{{{ end }}}" aria-label="
|
|
10
|
+
<a class="stretched-link" tabindex="-1" href="{config.relative_path}/topic/{./topic.slug}{{{ if ./index }}}/{./index}{{{ end }}}" aria-label="{{tx("global:lastpost")}}"></a>
|
|
11
11
|
{{txEscape(./content)}}
|
|
12
12
|
</div>
|
|
13
13
|
</div>
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
{{{ if !./posts.length }}}
|
|
18
18
|
<div component="category/posts" class="ps-2">
|
|
19
19
|
<div class="post-content overflow-hidden text-xs">
|
|
20
|
-
|
|
20
|
+
{{tx("category:no-new-posts")}}
|
|
21
21
|
</div>
|
|
22
22
|
</div>
|
|
23
23
|
{{{ end }}}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
{{{ if hasMoreSubCategories }}}
|
|
4
4
|
<div class="mb-2"><!-- IMPORT partials/category/selector-dropdown-left.tpl --></div>
|
|
5
5
|
{{{ else }}}
|
|
6
|
-
<h3 class="fs-6 fw-semibold">
|
|
6
|
+
<h3 class="fs-6 fw-semibold">{{tx("category:subcategories")}}</h3>
|
|
7
7
|
{{{ end }}}
|
|
8
8
|
|
|
9
9
|
<ul component="category/subcategory/container" class="categories-list list-unstyled" itemscope itemtype="http://www.schema.org/ItemList">
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
{{{end}}}
|
|
14
14
|
</ul>
|
|
15
15
|
{{{ if (hasMoreSubCategories && children.length) }}}
|
|
16
|
-
<button class="btn btn-ghost btn-sm ff-secondary mb-2" component="category/load-more-subcategories">
|
|
16
|
+
<button class="btn btn-ghost btn-sm ff-secondary mb-2" component="category/load-more-subcategories">{{tx("category:x-more-categories", subCategoriesLeft)}}</button>
|
|
17
17
|
{{{ end }}}
|
|
18
18
|
</div>
|
|
19
19
|
{{{ end }}}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
{{{ if (brand:logo || config.showSiteTitle) }}}
|
|
5
5
|
<div component="brand/wrapper" class="d-flex align-items-center gap-3 p-2 rounded-1 align-content-stretch ">
|
|
6
6
|
{{{ if brand:logo }}}
|
|
7
|
-
<a component="brand/anchor" href="{{{ if brand:logo:url }}}{brand:logo:url}{{{ else }}}{relative_path}/{{{ end }}}" title="
|
|
8
|
-
<img component="brand/logo" alt="{{{ if brand:logo:alt }}}{brand:logo:alt}{{{ else }}}
|
|
7
|
+
<a component="brand/anchor" href="{{{ if brand:logo:url }}}{brand:logo:url}{{{ else }}}{relative_path}/{{{ end }}}" title="{{tx("global:header.brand-logo")}}">
|
|
8
|
+
<img component="brand/logo" alt="{{{ if brand:logo:alt }}}{brand:logo:alt}{{{ else }}}{{tx("global:header.brand-logo")}}{{{ end }}}" class="{brand:logo:display}" src="{brand:logo}?{config.cache-buster}" />
|
|
9
9
|
</a>
|
|
10
10
|
{{{ end }}}
|
|
11
11
|
|
|
@@ -72,14 +72,14 @@
|
|
|
72
72
|
{{{ end }}}
|
|
73
73
|
|
|
74
74
|
{{{ if allowRegistration }}}
|
|
75
|
-
<li class="nav-item mx-2" title="
|
|
75
|
+
<li class="nav-item mx-2" title="{{tx("global:register")}}">
|
|
76
76
|
<a class="nav-link" href="{relative_path}/register">
|
|
77
77
|
<i class="fa fa-fw fa-user-plus"></i>
|
|
78
78
|
</a>
|
|
79
79
|
</li>
|
|
80
80
|
{{{ end }}}
|
|
81
81
|
|
|
82
|
-
<li class="nav-item mx-2" title="
|
|
82
|
+
<li class="nav-item mx-2" title="{{tx("global:login")}}">
|
|
83
83
|
<a class="nav-link" href="{relative_path}/login">
|
|
84
84
|
<i class="fa fa-fw fa-sign-in"></i>
|
|
85
85
|
</a>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<div class="no-notifs text-center p-4 d-flex flex-column {{{ if notifications.length }}}hidden{{{ end }}}">
|
|
2
2
|
<div class="p-4"><i class="fa-solid fa-wind fs-2 text-muted"></i></div>
|
|
3
|
-
<div class="text-xs fw-semibold text-muted">
|
|
3
|
+
<div class="text-xs fw-semibold text-muted">{{tx("notifications:no-notifs")}}</div>
|
|
4
4
|
</div>
|
|
5
5
|
|
|
6
6
|
{{{ each notifications }}}
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
<div>
|
|
37
37
|
{{{ if ./nid }}}
|
|
38
38
|
<button class="mark-read btn btn-ghost btn-sm d-flex align-items-center justify-content-center flex-grow-0 flex-shrink-0 p-1" style="width: 1.5rem; height: 1.5rem;">
|
|
39
|
-
<i class="unread fa fa-2xs fa-circle text-primary {{{ if ./read }}}hidden{{{ end }}}" aria-label="
|
|
40
|
-
<i class="read fa fa-2xs fa-circle-o text-secondary {{{ if !./read }}}hidden{{{ end }}}" aria-label="
|
|
39
|
+
<i class="unread fa fa-2xs fa-circle text-primary {{{ if ./read }}}hidden{{{ end }}}" aria-label="{{tx("unread:mark-as-read")}}"></i>
|
|
40
|
+
<i class="read fa fa-2xs fa-circle-o text-secondary {{{ if !./read }}}hidden{{{ end }}}" aria-label="{{tx("unread:mark-as-unread")}}"></i>
|
|
41
41
|
</button>
|
|
42
42
|
{{{ end }}}
|
|
43
43
|
</div>
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
<nav component="pagination" class="pagination-container mt-3{{{ if !pagination.pages.length }}} hidden{{{ end }}}" aria-label="
|
|
1
|
+
<nav component="pagination" class="pagination-container mt-3{{{ if !pagination.pages.length }}} hidden{{{ end }}}" aria-label="{{tx("global:pagination")}}">
|
|
2
2
|
<ul class="pagination pagination-sm gap-1 hidden-xs hidden-sm justify-content-center">
|
|
3
3
|
<li class="page-item previous {{{ if !pagination.prev.active }}} opacity-50 pe-none{{{ end }}}">
|
|
4
|
-
<a class="page-link rounded fw-secondary px-3 border-0" href="?{pagination.prev.qs}" data-page="{pagination.prev.page}" aria-label="
|
|
4
|
+
<a class="page-link rounded fw-secondary px-3 border-0" href="?{pagination.prev.qs}" data-page="{pagination.prev.page}" aria-label="{{tx("global:pagination.previouspage")}}"><i class="fa fa-chevron-left"></i> </a>
|
|
5
5
|
</li>
|
|
6
6
|
|
|
7
7
|
{{{each pagination.pages}}}
|
|
8
8
|
{{{ if ./separator }}}
|
|
9
9
|
<li component="pagination/select-page" class="page-item page select-page">
|
|
10
|
-
<a class="page-link rounded fw-secondary px-3 border-0" href="#" aria-label="
|
|
10
|
+
<a class="page-link rounded fw-secondary px-3 border-0" href="#" aria-label="{{tx("global:pagination.go-to-page")}}"><i class="fa fa-ellipsis-h"></i></a>
|
|
11
11
|
</li>
|
|
12
12
|
{{{ else }}}
|
|
13
13
|
<li class="page-item page{{{ if ./active }}} active{{{ end }}}" >
|
|
14
|
-
<a class="page-link rounded fw-secondary px-3 border-0" href="?{./qs}" data-page="{./page}" aria-label="
|
|
14
|
+
<a class="page-link rounded fw-secondary px-3 border-0" href="?{./qs}" data-page="{./page}" aria-label="{{tx("global:pagination.page-x", ./page)}}">{./page}</a>
|
|
15
15
|
</li>
|
|
16
16
|
{{{ end }}}
|
|
17
17
|
{{{end}}}
|
|
18
18
|
|
|
19
19
|
<li class="page-item next {{{ if !pagination.next.active }}} opacity-50 pe-none{{{ end }}}">
|
|
20
|
-
<a class="page-link rounded fw-secondary px-3 border-0" href="?{pagination.next.qs}" data-page="{pagination.next.page}" aria-label="
|
|
20
|
+
<a class="page-link rounded fw-secondary px-3 border-0" href="?{pagination.next.qs}" data-page="{pagination.next.page}" aria-label="{{tx("global:pagination.nextpage")}}"> <i class="fa fa-chevron-right"></i></a>
|
|
21
21
|
</li>
|
|
22
22
|
</ul>
|
|
23
23
|
|
|
24
24
|
{{{ if !template.topic }}}
|
|
25
25
|
<ul class="pagination hidden-md hidden-lg justify-content-center gap-3">
|
|
26
26
|
<li class="page-item first{{{ if !pagination.prev.active }}} opacity-50 pe-none{{{ end }}}">
|
|
27
|
-
<a class="page-link fw-secondary border-0" href="?{pagination.first.qs}" data-page="1" aria-label="
|
|
27
|
+
<a class="page-link fw-secondary border-0" href="?{pagination.first.qs}" data-page="1" aria-label="{{tx("global:pagination.firstpage")}}"><i class="fa fa-fast-backward"></i> </a>
|
|
28
28
|
</li>
|
|
29
29
|
|
|
30
30
|
<li class="page-item previous{{{ if !pagination.prev.active }}} opacity-50 pe-none{{{ end }}}">
|
|
31
|
-
<a class="page-link fw-secondary border-0" href="?{pagination.prev.qs}" data-page="{pagination.prev.page}" aria-label="
|
|
31
|
+
<a class="page-link fw-secondary border-0" href="?{pagination.prev.qs}" data-page="{pagination.prev.page}" aria-label="{{tx("global:pagination.previouspage")}}"><i class="fa fa-chevron-left"></i> </a>
|
|
32
32
|
</li>
|
|
33
33
|
|
|
34
34
|
<li component="pagination/select-page" class="page-item page select-page">
|
|
35
|
-
<a class="page-link fw-secondary border-0" href="#" aria-label="
|
|
35
|
+
<a class="page-link fw-secondary border-0" href="#" aria-label="{{tx("global:pagination.go-to-page")}}">{pagination.currentPage} / {pagination.pageCount}</a>
|
|
36
36
|
</li>
|
|
37
37
|
|
|
38
38
|
<li class="page-item next{{{ if !pagination.next.active }}} opacity-50 pe-none{{{ end }}}">
|
|
39
|
-
<a class="page-link fw-secondary border-0" href="?{pagination.next.qs}" data-page="{pagination.next.page}" aria-label="
|
|
39
|
+
<a class="page-link fw-secondary border-0" href="?{pagination.next.qs}" data-page="{pagination.next.page}" aria-label="{{tx("global:pagination.nextpage")}}"> <i class="fa fa-chevron-right"></i></a>
|
|
40
40
|
</li>
|
|
41
41
|
|
|
42
42
|
<li class="page-item last{{{ if !pagination.next.active }}} opacity-50 pe-none{{{ end }}}">
|
|
43
|
-
<a class="page-link fw-secondary border-0" href="?{pagination.last.qs}" data-page="{pagination.pageCount}" aria-label="
|
|
43
|
+
<a class="page-link fw-secondary border-0" href="?{pagination.last.qs}" data-page="{pagination.pageCount}" aria-label="{{tx("global:pagination.lastpage")}}"><i class="fa fa-fast-forward"></i> </a>
|
|
44
44
|
</li>
|
|
45
45
|
</ul>
|
|
46
46
|
{{{ end }}}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<li component="post" class="posts-list-item {{{ if ./deleted }}} deleted{{{ else }}}{{{ if ./topic.deleted }}} deleted{{{ end }}}{{{ end }}}{{{ if ./topic.scheduled }}} scheduled{{{ end }}}" data-pid="{./pid}" data-uid="{./uid}">
|
|
2
2
|
<hr/>
|
|
3
3
|
<a class="topic-title fw-semibold fs-5 mb-2 text-reset text-break d-block" href="{config.relative_path}/post/{encodeURIComponent(./pid)}">
|
|
4
|
-
{{{ if ./isMainPost }}}<i class="fa fa-book text-muted"
|
|
4
|
+
{{{ if ./isMainPost }}}<i class="fa fa-book text-muted"></i> {{{ end }}}{./topic.title}
|
|
5
5
|
</a>
|
|
6
6
|
|
|
7
7
|
<div class="post-body d-flex flex-column gap-1 mb-2">
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{{{ if (multiplePages && !config.theme.topMobilebar) }}}
|
|
2
2
|
<div class="show-more-container">
|
|
3
3
|
<div class="text-center d-block d-md-none">
|
|
4
|
-
<a href="{url}" class="btn btn-sm btn-primary">
|
|
4
|
+
<a href="{url}" class="btn btn-sm btn-primary">{{tx("search:see-more-results", matchCount)}}</a>
|
|
5
5
|
</div>
|
|
6
6
|
<li role="separator" class="dropdown-divider d-block d-md-none"></li>
|
|
7
7
|
</div>
|
|
@@ -35,16 +35,16 @@
|
|
|
35
35
|
|
|
36
36
|
{{{ if multiplePages }}}
|
|
37
37
|
<div class="text-center mt-2 d-none d-md-block">
|
|
38
|
-
<a href="{url}" class="btn btn-sm btn-primary">
|
|
38
|
+
<a href="{url}" class="btn btn-sm btn-primary">{{tx("search:see-more-results", matchCount)}}</a>
|
|
39
39
|
</div>
|
|
40
40
|
{{{ end }}}
|
|
41
41
|
{{{ if (multiplePages && config.theme.topMobilebar) }}}
|
|
42
42
|
<div class="text-center mt-2 d-block d-md-none">
|
|
43
|
-
<a href="{url}" class="btn btn-sm btn-primary">
|
|
43
|
+
<a href="{url}" class="btn btn-sm btn-primary">{{tx("search:see-more-results", matchCount)}}</a>
|
|
44
44
|
</div>
|
|
45
45
|
{{{ end }}}
|
|
46
46
|
|
|
47
47
|
{{{if !categories.length}}}
|
|
48
|
-
<div class="text-center no-results py-2 py-md-0">
|
|
48
|
+
<div class="text-center no-results py-2 py-md-0">{{tx("search:no-matches")}}</div>
|
|
49
49
|
<li role="separator" class="dropdown-divider d-block d-md-none"></li>
|
|
50
50
|
{{{end}}}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{{{ if (multiplePages && !config.theme.topMobilebar) }}}
|
|
2
2
|
<div class="show-more-container">
|
|
3
3
|
<div class="text-center d-block d-md-none">
|
|
4
|
-
<a href="{url}" class="btn btn-sm btn-primary">
|
|
4
|
+
<a href="{url}" class="btn btn-sm btn-primary">{{tx("search:see-more-results", matchCount)}}</a>
|
|
5
5
|
</div>
|
|
6
6
|
<li role="separator" class="dropdown-divider d-block d-md-none"></li>
|
|
7
7
|
</div>
|
|
@@ -35,16 +35,16 @@
|
|
|
35
35
|
|
|
36
36
|
{{{ if multiplePages }}}
|
|
37
37
|
<div class="text-center mt-2 d-none d-md-block">
|
|
38
|
-
<a href="{url}" class="btn btn-sm btn-primary">
|
|
38
|
+
<a href="{url}" class="btn btn-sm btn-primary">{{tx("search:see-more-results", matchCount)}}</a>
|
|
39
39
|
</div>
|
|
40
40
|
{{{ end }}}
|
|
41
41
|
{{{ if (multiplePages && config.theme.topMobilebar) }}}
|
|
42
42
|
<div class="text-center mt-2 d-block d-md-none">
|
|
43
|
-
<a href="{url}" class="btn btn-sm btn-primary">
|
|
43
|
+
<a href="{url}" class="btn btn-sm btn-primary">{{tx("search:see-more-results", matchCount)}}</a>
|
|
44
44
|
</div>
|
|
45
45
|
{{{ end }}}
|
|
46
46
|
|
|
47
47
|
{{{if !posts.length}}}
|
|
48
|
-
<div class="text-center no-results py-2 py-md-0">
|
|
48
|
+
<div class="text-center no-results py-2 py-md-0">{{tx("search:no-matches")}}</div>
|
|
49
49
|
<li role="separator" class="dropdown-divider d-block d-md-none"></li>
|
|
50
50
|
{{{end}}}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
<a data-bs-toggle="dropdown" href="#" role="button" class="nav-link d-flex gap-2 justify-content-between align-items-center position-relative" component="chat/dropdown" aria-haspopup="true" aria-expanded="false" aria-label="
|
|
1
|
+
<a data-bs-toggle="dropdown" href="#" role="button" class="nav-link d-flex gap-2 justify-content-between align-items-center position-relative" component="chat/dropdown" aria-haspopup="true" aria-expanded="false" aria-label="{{tx("global:header.chats")}}">
|
|
2
2
|
<span class="d-flex gap-2 align-items-center text-nowrap truncate-open">
|
|
3
3
|
<span class="position-relative">
|
|
4
4
|
<i component="chat/icon" class="fa fa-fw {{{ if unreadCount.chat}}}fa-comment{{{ else }}}fa-comment-o{{{ end }}} unread-count" data-content="{unreadCount.chat}"></i>
|
|
5
5
|
<span component="chat/count" class="visible-closed position-absolute top-0 start-100 translate-middle badge rounded-1 bg-primary {{{ if !unreadCount.chat }}}hidden{{{ end }}}">{unreadCount.chat}</span>
|
|
6
6
|
</span>
|
|
7
|
-
<span class="nav-text small visible-open fw-semibold">
|
|
7
|
+
<span class="nav-text small visible-open fw-semibold">{{tx("global:header.chats")}}</span>
|
|
8
8
|
</span>
|
|
9
9
|
<span component="chat/count" class="visible-open badge rounded-1 bg-primary {{{ if !unreadCount.chat }}}hidden{{{ end }}}">{unreadCount.chat}</span>
|
|
10
10
|
</a>
|
|
@@ -35,11 +35,11 @@
|
|
|
35
35
|
<li class="dropdown-divider"></li>
|
|
36
36
|
<li>
|
|
37
37
|
<div class="d-flex justify-content-center gap-1 flex-wrap">
|
|
38
|
-
<a component="chats/mark-all-read" role="button" href="#" class="btn btn-sm btn-light mark-all-read flex-fill text-nowrap text-truncate ff-secondary"><i class="fa fa-check-double"></i>
|
|
38
|
+
<a component="chats/mark-all-read" role="button" href="#" class="btn btn-sm btn-light mark-all-read flex-fill text-nowrap text-truncate ff-secondary"><i class="fa fa-check-double"></i> {{tx("modules:chat.mark-all-read")}}</a>
|
|
39
39
|
<!-- on md and up see all chats button goes to last room -->
|
|
40
|
-
<a class="d-none d-md-inline btn btn-sm btn-primary flex-fill text-nowrap text-truncate ff-secondary" href="{relative_path}/user/{user.userslug}/chats{{{ if user.lastRoomId }}}/{user.lastRoomId}{{{ end }}}"><i class="fa fa-list"></i>
|
|
40
|
+
<a class="d-none d-md-inline btn btn-sm btn-primary flex-fill text-nowrap text-truncate ff-secondary" href="{relative_path}/user/{user.userslug}/chats{{{ if user.lastRoomId }}}/{user.lastRoomId}{{{ end }}}"><i class="fa fa-list"></i> {{tx("modules:chat.see-all")}}</a>
|
|
41
41
|
<!-- on xs&sm the see all chats button goes to the list of chats -->
|
|
42
|
-
<a class="d-inline d-md-none btn btn-sm btn-primary flex-fill text-nowrap text-truncate ff-secondary" href="{relative_path}/user/{user.userslug}/chats"><i class="fa fa-list"></i>
|
|
42
|
+
<a class="d-inline d-md-none btn btn-sm btn-primary flex-fill text-nowrap text-truncate ff-secondary" href="{relative_path}/user/{user.userslug}/chats"><i class="fa fa-list"></i> {{tx("modules:chat.see-all")}}</a>
|
|
43
43
|
</div>
|
|
44
44
|
</li>
|
|
45
45
|
</ul>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<i component="drafts/icon" class="fa fa-fw fa-pen-to-square unread-count"></i>
|
|
5
5
|
<span component="drafts/count" class="visible-closed position-absolute top-0 start-100 translate-middle badge rounded-1 bg-primary hidden">0</span>
|
|
6
6
|
</span>
|
|
7
|
-
<span class="nav-text small visible-open fw-semibold">
|
|
7
|
+
<span class="nav-text small visible-open fw-semibold">{{tx("global:header.drafts")}}</span>
|
|
8
8
|
</span>
|
|
9
9
|
<span component="drafts/count" class="visible-open badge rounded-1 bg-primary hidden">0</span>
|
|
10
10
|
</a>
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
</div>
|
|
21
21
|
<div class="hidden no-drafts text-center p-4 d-flex flex-column">
|
|
22
22
|
<div class="p-4"><i class="fa-solid fa-wind fs-2 text-muted"></i></div>
|
|
23
|
-
<div class="text-xs fw-semibold text-muted">
|
|
23
|
+
<div class="text-xs fw-semibold text-muted">{{tx("modules:composer.no-drafts")}}</div>
|
|
24
24
|
</div>
|
|
25
25
|
<div class="draft-item-container">
|
|
26
26
|
{{{ each drafts }}}
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
<div class="d-flex gap-1 justify-content-between ff-base">
|
|
32
32
|
<a href="#" class="d-flex flex-column flex-grow-1 gap-2 justify-content-start align-items-start btn btn-ghost btn-sm ff-sans text-start" component="drafts/open" data-save-id="{./save_id}" role="menuitem">
|
|
33
33
|
{{{ if (./action == "topics.post") }}}
|
|
34
|
-
<div class="text text-xs fw-semibold line-clamp-2 text-break">{{{ if ./title}}}{./title}{{{ else }}}
|
|
34
|
+
<div class="text text-xs fw-semibold line-clamp-2 text-break">{{{ if ./title}}}{./title}{{{ else }}}{{tx("topic:composer.untitled-topic")}}{{{ end }}}</div>
|
|
35
35
|
{{{ end }}}
|
|
36
36
|
|
|
37
37
|
{{{ if (./action == "posts.reply") }}}
|
|
@@ -3,21 +3,21 @@
|
|
|
3
3
|
</li>
|
|
4
4
|
|
|
5
5
|
{{{ if (config.searchEnabled && user.privileges.search:content) }}}
|
|
6
|
-
<li component="sidebar/search" class="nav-item mx-2 search dropstart position-relative" title="
|
|
6
|
+
<li component="sidebar/search" class="nav-item mx-2 search dropstart position-relative" title="{{tx("global:header.search")}}" role="menuitem">
|
|
7
7
|
<!-- IMPORT partials/sidebar/search.tpl -->
|
|
8
8
|
</li>
|
|
9
9
|
{{{ end }}}
|
|
10
10
|
|
|
11
|
-
<li component="notifications" class="nav-item mx-2 notifications dropstart" title="
|
|
11
|
+
<li component="notifications" class="nav-item mx-2 notifications dropstart" title="{{tx("global:header.notifications")}}" role="menuitem">
|
|
12
12
|
<!-- IMPORT partials/sidebar/notifications.tpl -->
|
|
13
13
|
</li>
|
|
14
14
|
|
|
15
15
|
{{{ if canChat }}}
|
|
16
|
-
<li class="nav-item mx-2 chats dropstart" title="
|
|
16
|
+
<li class="nav-item mx-2 chats dropstart" title="{{tx("global:header.chats")}}" role="menuitem">
|
|
17
17
|
<!-- IMPORT partials/sidebar/chats.tpl -->
|
|
18
18
|
</li>
|
|
19
19
|
{{{ end }}}
|
|
20
20
|
|
|
21
|
-
<li component="sidebar/drafts" class="nav-item mx-2 drafts dropstart" title="
|
|
21
|
+
<li component="sidebar/drafts" class="nav-item mx-2 drafts dropstart" title="{{tx("global:header.drafts")}}" role="menuitem">
|
|
22
22
|
<!-- IMPORT partials/sidebar/drafts.tpl -->
|
|
23
23
|
</li>
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
|
|
2
|
-
<li class="nav-item mx-2 order-last order-md-first" title="
|
|
3
|
-
<a class="nav-link" href="{relative_path}/login" aria-label="
|
|
2
|
+
<li class="nav-item mx-2 order-last order-md-first" title="{{tx("global:login")}}" role="menuitem">
|
|
3
|
+
<a class="nav-link" href="{relative_path}/login" aria-label="{{tx("global:login")}}">
|
|
4
4
|
<span class="d-flex gap-2 align-items-center text-nowrap truncate-open">
|
|
5
5
|
<span class="position-relative">
|
|
6
6
|
<i class="fa fa-fw fa-sign-in"></i>
|
|
7
7
|
</span>
|
|
8
|
-
<span class="nav-text small visible-open fw-semibold">
|
|
8
|
+
<span class="nav-text small visible-open fw-semibold">{{tx("global:login")}}</span>
|
|
9
9
|
</span>
|
|
10
10
|
</a>
|
|
11
11
|
</li>
|
|
12
12
|
<hr class="my-2 mx-2 visible-open">
|
|
13
13
|
{{{ if allowRegistration }}}
|
|
14
|
-
<li class="nav-item mx-2" title="
|
|
15
|
-
<span class="text-xs visible-open">
|
|
16
|
-
<a class="nav-link" href="{relative_path}/register" aria-label="
|
|
14
|
+
<li class="nav-item mx-2" title="{{tx("global:register")}}" role="menuitem">
|
|
15
|
+
<span class="text-xs visible-open">{{tx("login:dont-have-account")}}</span>
|
|
16
|
+
<a class="nav-link" href="{relative_path}/register" aria-label="{{tx("global:register")}}">
|
|
17
17
|
<span class="d-flex gap-2 align-items-center text-nowrap truncate-open">
|
|
18
18
|
<span class="position-relative">
|
|
19
19
|
<i class="fa fa-fw fa-user-plus"></i>
|
|
20
20
|
</span>
|
|
21
|
-
<span class="nav-text small visible-open fw-semibold">
|
|
21
|
+
<span class="nav-text small visible-open fw-semibold">{{tx("global:register")}}</span>
|
|
22
22
|
</span>
|
|
23
23
|
</a>
|
|
24
24
|
</li>
|
|
@@ -27,14 +27,14 @@
|
|
|
27
27
|
|
|
28
28
|
{{{ if config.searchEnabled }}}
|
|
29
29
|
{{{ if user.privileges.search:content }}}
|
|
30
|
-
<li component="sidebar/search" class="nav-item mx-2 search dropstart position-relative" title="
|
|
30
|
+
<li component="sidebar/search" class="nav-item mx-2 search dropstart position-relative" title="{{tx("global:header.search")}}" role="menuitem">
|
|
31
31
|
<!-- IMPORT partials/sidebar/search.tpl -->
|
|
32
32
|
</li>
|
|
33
33
|
{{{ else }}}
|
|
34
34
|
<li component="sidebar/search" class="visible-open nav-item mx-2 search">
|
|
35
|
-
<div class="d-flex gap-2 py-1 px-2 align-items-center" title="
|
|
35
|
+
<div class="d-flex gap-2 py-1 px-2 align-items-center" title="{{tx("themes/harmony:login-register-to-search")}}">
|
|
36
36
|
<i class="fa fa-fw fa-search"></i>
|
|
37
|
-
<span class="nav-text visible-open text-xs">
|
|
37
|
+
<span class="nav-text visible-open text-xs">{{tx("themes/harmony:login-register-to-search")}}</span>
|
|
38
38
|
</div>
|
|
39
39
|
</li>
|
|
40
40
|
{{{ end }}}
|
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
<i component="notifications/icon" class="fa fa-fw {{{ if unreadCount.notification}}}fa-bell{{{ else }}}fa-bell-o{{{ end }}} unread-count" data-content="{unreadCount.notification}"></i>
|
|
5
5
|
<span component="notifications/count" class="visible-closed position-absolute top-0 start-100 translate-middle badge rounded-1 bg-primary {{{ if !unreadCount.notification }}}hidden{{{ end }}}">{unreadCount.notification}</span>
|
|
6
6
|
</span>
|
|
7
|
-
<span class="nav-text small visible-open fw-semibold truncate-text">
|
|
7
|
+
<span class="nav-text small visible-open fw-semibold truncate-text">{{tx("global:header.notifications")}}</span>
|
|
8
8
|
</span>
|
|
9
9
|
<span component="notifications/count" class="visible-open badge rounded-1 bg-primary {{{ if !unreadCount.notification }}}hidden{{{ end }}}">{unreadCount.notification}</span>
|
|
10
10
|
</a>
|
|
11
11
|
<ul class="notifications-dropdown dropdown-menu p-1 shadow" role="menu">
|
|
12
12
|
{{{ if !config.hideReadNotifications }}}
|
|
13
13
|
<li class="d-flex gap-1 align-items-center">
|
|
14
|
-
<button type="button" class="btn btn-ghost btn-sm ff-secondary active px-3" data-filter="all">
|
|
15
|
-
<button type="button" class="btn btn-ghost btn-sm ff-secondary d-flex align-items-center gap-2" data-filter="unread">
|
|
14
|
+
<button type="button" class="btn btn-ghost btn-sm ff-secondary active px-3" data-filter="all">{{tx("notifications:all")}}</button>
|
|
15
|
+
<button type="button" class="btn btn-ghost btn-sm ff-secondary d-flex align-items-center gap-2" data-filter="unread">{{tx("unread:title")}} <span component="notifications/count" class="{{{ if !unreadCount.notification }}}hidden{{{ end }}}">{unreadCount.notification}</span></button>
|
|
16
16
|
</li>
|
|
17
17
|
<li class="dropdown-divider"></li>
|
|
18
18
|
{{{ end }}}
|
|
@@ -49,8 +49,8 @@
|
|
|
49
49
|
<li class="dropdown-divider"></li>
|
|
50
50
|
<li>
|
|
51
51
|
<div class="d-flex justify-content-center gap-1 flex-wrap">
|
|
52
|
-
<a role="button" href="#" class="btn btn-sm btn-light mark-all-read flex-fill text-nowrap text-truncate ff-secondary"><i class="fa fa-check-double"></i>
|
|
53
|
-
<a class="btn btn-sm btn-primary flex-fill text-nowrap text-truncate ff-secondary" href="{relative_path}/notifications"><i class="fa fa-list"></i>
|
|
52
|
+
<a role="button" href="#" class="btn btn-sm btn-light mark-all-read flex-fill text-nowrap text-truncate ff-secondary"><i class="fa fa-check-double"></i> {{tx("notifications:mark-all-read")}}</a>
|
|
53
|
+
<a class="btn btn-sm btn-primary flex-fill text-nowrap text-truncate ff-secondary" href="{relative_path}/notifications"><i class="fa fa-list"></i> {{tx("notifications:see-all")}}</a>
|
|
54
54
|
</div>
|
|
55
55
|
</li>
|
|
56
56
|
</ul>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<a component="search/button" id="search-button" href="#" role="button" class="nav-link text-truncate" data-bs-toggle="dropdown" title="
|
|
1
|
+
<a component="search/button" id="search-button" href="#" role="button" class="nav-link text-truncate" data-bs-toggle="dropdown" title="{{tx("global:header.search")}}" aria-haspopup="true" aria-expanded="false">
|
|
2
2
|
<i class="fa fa-search fa-fw"></i>
|
|
3
|
-
<span class="nav-text visible-open px-2 fw-semibold">
|
|
3
|
+
<span class="nav-text visible-open px-2 fw-semibold">{{tx("global:search")}}</span>
|
|
4
4
|
</a>
|
|
5
5
|
<div class="search-dropdown dropdown-menu p-2 shadow" role="menu">
|
|
6
6
|
<form component="search/form" id="search-form" class="d-flex justify-content-end align-items-center" role="search" method="GET">
|
|
@@ -16,14 +16,14 @@
|
|
|
16
16
|
</div>
|
|
17
17
|
|
|
18
18
|
<div class="d-flex gap-1 input-container">
|
|
19
|
-
<input autocomplete="off" type="text" class="form-control" placeholder="
|
|
19
|
+
<input autocomplete="off" type="text" class="form-control" placeholder="{{tx("global:search")}}" name="query" value="" aria-label="{{tx("search:type-to-search")}}">
|
|
20
20
|
|
|
21
|
-
<a class="nav-link d-flex justify-content-center align-items-center advanced-search-link" href="{config.relative_path}/search" title="
|
|
21
|
+
<a class="nav-link d-flex justify-content-center align-items-center advanced-search-link" href="{config.relative_path}/search" title="{{tx("search:advanced-search")}}">
|
|
22
22
|
<i class="fa fa-gears fa-fw text-muted"></i>
|
|
23
23
|
</a>
|
|
24
24
|
</div>
|
|
25
25
|
|
|
26
|
-
<button type="submit" class="btn btn-outline-secondary hide">
|
|
26
|
+
<button type="submit" class="btn btn-outline-secondary hide">{{tx("global:search")}}</button>
|
|
27
27
|
</div>
|
|
28
28
|
</form>
|
|
29
29
|
</div>
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
<a component="search/button" id="search-button" href="#" role="button" class="nav-link d-flex gap-2 align-items-center text-truncate" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" aria-label="
|
|
1
|
+
<a component="search/button" id="search-button" href="#" role="button" class="nav-link d-flex gap-2 align-items-center text-truncate" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" aria-label="{{tx("global:search")}}">
|
|
2
2
|
<span>
|
|
3
3
|
<i class="fa fa-search fa-fw"></i>
|
|
4
4
|
</span>
|
|
5
|
-
<span class="nav-text small visible-open fw-semibold">
|
|
5
|
+
<span class="nav-text small visible-open fw-semibold">{{tx("global:search")}}</span>
|
|
6
6
|
</a>
|
|
7
7
|
<div class="search-dropdown dropdown-menu p-2 shadow" role="menu">
|
|
8
8
|
<form component="search/form" id="search-form" class="d-flex justify-content-end align-items-center" role="search" method="GET">
|
|
9
9
|
<div component="search/fields" class="w-100" id="search-fields">
|
|
10
10
|
<div class="d-flex gap-1">
|
|
11
|
-
<input autocomplete="off" type="text" class="form-control" placeholder="
|
|
11
|
+
<input autocomplete="off" type="text" class="form-control" placeholder="{{tx("global:search")}}" name="query" value="" aria-label="{{tx("search:type-to-search")}}">
|
|
12
12
|
|
|
13
|
-
<a class="btn btn-ghost advanced-search-link p-2" href="{config.relative_path}/search" title="
|
|
13
|
+
<a class="btn btn-ghost advanced-search-link p-2" href="{config.relative_path}/search" title="{{tx("search:advanced-search")}}">
|
|
14
14
|
<i class="fa fa-gears text-muted"></i>
|
|
15
15
|
</a>
|
|
16
16
|
</div>
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<div class="text-center loading-indicator"><i class="fa fa-spinner fa-spin"></i></div>
|
|
25
25
|
<div class="quick-search-results-container"></div>
|
|
26
26
|
</div>
|
|
27
|
-
<button type="submit" class="btn btn-outline-secondary hide">
|
|
27
|
+
<button type="submit" class="btn btn-outline-secondary hide">{{tx("global:search")}}</button>
|
|
28
28
|
</div>
|
|
29
29
|
</form>
|
|
30
30
|
</div>
|
|
@@ -1,90 +1,90 @@
|
|
|
1
|
-
<a component="header/avatar" id="user_dropdown" href="#" role="button" class="nav-link d-flex gap-2 align-items-center text-truncate" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" aria-label="
|
|
1
|
+
<a component="header/avatar" id="user_dropdown" href="#" role="button" class="nav-link d-flex gap-2 align-items-center text-truncate" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" aria-label="{{tx("user:user-menu")}}" style="padding: 2px 4px;">
|
|
2
2
|
{{buildAvatar(user, "28px", true)}}
|
|
3
3
|
<span id="user-header-name" class="nav-text small visible-open fw-semibold">{user.username}</span>
|
|
4
4
|
</a>
|
|
5
5
|
<ul id="user-control-list" component="header/usercontrol" class="overscroll-behavior-contain user-dropdown dropdown-menu shadow p-1 text-sm ff-base" role="menu">
|
|
6
6
|
<li>
|
|
7
|
-
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" component="header/profilelink" href="{relative_path}/user/{user.userslug}" role="menuitem" aria-label="
|
|
8
|
-
<span component="user/status" class="flex-shrink-0 border border-white border-2 rounded-circle status {user.status}"><span class="visually-hidden">
|
|
7
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" component="header/profilelink" href="{relative_path}/user/{user.userslug}" role="menuitem" aria-label="{{tx("user:profile")}}">
|
|
8
|
+
<span component="user/status" class="flex-shrink-0 border border-white border-2 rounded-circle status {user.status}"><span class="visually-hidden">{{tx(concat("global:", user.status))}}</span></span>
|
|
9
9
|
<span class="fw-semibold" component="header/username">{user.username}</span>
|
|
10
10
|
</a>
|
|
11
11
|
</li>
|
|
12
12
|
<li role="presentation" class="dropdown-divider"></li>
|
|
13
|
-
<li><h6 class="dropdown-header text-xs">
|
|
13
|
+
<li><h6 class="dropdown-header text-xs">{{tx("global:status")}}</h6></li>
|
|
14
14
|
<li>
|
|
15
15
|
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-2 {{{ if user.online }}}selected{{{ end }}}" data-status="online" role="menuitem">
|
|
16
16
|
<span component="user/status" class="flex-shrink-0 border border-white border-2 rounded-circle status online"></span>
|
|
17
|
-
<span class="flex-grow-1">
|
|
18
|
-
<i class="fa-solid fa-check text-secondary flex-shrink-0" aria-label="
|
|
17
|
+
<span class="flex-grow-1">{{tx("global:online")}}</span>
|
|
18
|
+
<i class="fa-solid fa-check text-secondary flex-shrink-0" aria-label="{{tx("global:selected")}}"></i>
|
|
19
19
|
</a>
|
|
20
20
|
</li>
|
|
21
21
|
<li>
|
|
22
22
|
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-2 {{{ if user.away }}}selected{{{ end }}}" data-status="away" role="menuitem">
|
|
23
23
|
<span component="user/status" class="flex-shrink-0 border border-white border-2 rounded-circle status away"></span>
|
|
24
|
-
<span class="flex-grow-1">
|
|
25
|
-
<i class="fa-solid fa-check text-secondary flex-shrink-0"><span class="visually-hidden">
|
|
24
|
+
<span class="flex-grow-1">{{tx("global:away")}}</span>
|
|
25
|
+
<i class="fa-solid fa-check text-secondary flex-shrink-0"><span class="visually-hidden">{{tx("global:selected")}}</span></i>
|
|
26
26
|
</a>
|
|
27
27
|
</li>
|
|
28
28
|
<li>
|
|
29
29
|
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-2 {{{ if user.dnd }}}selected{{{ end }}}" data-status="dnd" role="menuitem">
|
|
30
30
|
<span component="user/status" class="flex-shrink-0 border border-white border-2 rounded-circle status dnd"></span>
|
|
31
|
-
<span class="flex-grow-1">
|
|
31
|
+
<span class="flex-grow-1">{{tx("global:dnd")}}</span>
|
|
32
32
|
<i class="fa-solid fa-check text-secondary flex-shrink-0"></i>
|
|
33
33
|
</a>
|
|
34
34
|
</li>
|
|
35
35
|
<li>
|
|
36
36
|
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-2 {{{ if user.offline }}}selected{{{ end }}}" data-status="offline" role="menuitem">
|
|
37
37
|
<span component="user/status" class="flex-shrink-0 border border-white border-2 rounded-circle status offline"></span>
|
|
38
|
-
<span class="flex-grow-1">
|
|
38
|
+
<span class="flex-grow-1">{{tx("global:invisible")}}</span>
|
|
39
39
|
<i class="fa-solid fa-check text-secondary flex-shrink-0"></i>
|
|
40
40
|
</a>
|
|
41
41
|
</li>
|
|
42
42
|
<li role="presentation" class="dropdown-divider"></li>
|
|
43
43
|
<li>
|
|
44
44
|
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/user/{user.userslug}/bookmarks" role="menuitem">
|
|
45
|
-
<i class="fa fa-fw fa-bookmark text-secondary"></i> <span>
|
|
45
|
+
<i class="fa fa-fw fa-bookmark text-secondary"></i> <span>{{tx("user:bookmarks")}}</span>
|
|
46
46
|
</a>
|
|
47
47
|
</li>
|
|
48
48
|
<li>
|
|
49
49
|
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" component="header/profilelink/edit" href="{relative_path}/user/{user.userslug}/edit" role="menuitem">
|
|
50
|
-
<i class="fa fa-fw fa-edit text-secondary"></i> <span>
|
|
50
|
+
<i class="fa fa-fw fa-edit text-secondary"></i> <span>{{tx("user:edit-profile")}}</span>
|
|
51
51
|
</a>
|
|
52
52
|
</li>
|
|
53
53
|
<li>
|
|
54
54
|
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" component="header/profilelink/settings" href="{relative_path}/user/{user.userslug}/settings" role="menuitem">
|
|
55
|
-
<i class="fa fa-fw fa-gear text-secondary"></i> <span>
|
|
55
|
+
<i class="fa fa-fw fa-gear text-secondary"></i> <span>{{tx("user:settings")}}</span>
|
|
56
56
|
</a>
|
|
57
57
|
</li>
|
|
58
58
|
{{{ if showModMenu }}}
|
|
59
59
|
<li role="presentation" class="dropdown-divider"></li>
|
|
60
|
-
<li><h6 class="dropdown-header text-xs">
|
|
60
|
+
<li><h6 class="dropdown-header text-xs">{{tx("pages:moderator-tools")}}</h6></li>
|
|
61
61
|
<li>
|
|
62
62
|
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/flags" role="menuitem">
|
|
63
|
-
<i class="fa fa-fw fa-flag text-secondary"></i> <span>
|
|
63
|
+
<i class="fa fa-fw fa-flag text-secondary"></i> <span>{{tx("pages:flagged-content")}}</span>
|
|
64
64
|
</a>
|
|
65
65
|
</li>
|
|
66
66
|
<li>
|
|
67
67
|
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/post-queue" role="menuitem">
|
|
68
|
-
<i class="fa fa-fw fa-list-alt text-secondary"></i> <span>
|
|
68
|
+
<i class="fa fa-fw fa-list-alt text-secondary"></i> <span>{{tx("pages:post-queue")}}</span>
|
|
69
69
|
</a>
|
|
70
70
|
</li>
|
|
71
71
|
{{{ if registrationQueueEnabled }}}
|
|
72
72
|
<li>
|
|
73
73
|
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/registration-queue" role="menuitem">
|
|
74
|
-
<i class="fa fa-fw fa-list-alt text-secondary"></i> <span>
|
|
74
|
+
<i class="fa fa-fw fa-list-alt text-secondary"></i> <span>{{tx("pages:registration-queue")}}</span>
|
|
75
75
|
</a>
|
|
76
76
|
</li>
|
|
77
77
|
{{{ end }}}
|
|
78
78
|
<li>
|
|
79
79
|
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/ip-blacklist" role="menuitem">
|
|
80
|
-
<i class="fa fa-fw fa-ban text-secondary"></i> <span>
|
|
80
|
+
<i class="fa fa-fw fa-ban text-secondary"></i> <span>{{tx("pages:ip-blacklist")}}</span>
|
|
81
81
|
</a>
|
|
82
82
|
</li>
|
|
83
83
|
{{{ else }}}
|
|
84
84
|
{{{ if postQueueEnabled }}}
|
|
85
85
|
<li>
|
|
86
86
|
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/post-queue" role="menuitem">
|
|
87
|
-
<i class="fa fa-fw fa-list-alt text-secondary"></i> <span>
|
|
87
|
+
<i class="fa fa-fw fa-list-alt text-secondary"></i> <span>{{tx("pages:post-queue")}}</span>
|
|
88
88
|
</a>
|
|
89
89
|
</li>
|
|
90
90
|
{{{ end }}}
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
<input type="hidden" name="_csrf" value="{config.csrf_token}">
|
|
97
97
|
<input type="hidden" name="noscript" value="true">
|
|
98
98
|
<button type="submit" class="dropdown-item rounded-1 d-flex align-items-center gap-2">
|
|
99
|
-
<i class="fa fa-fw fa-sign-out text-secondary"></i><span>
|
|
99
|
+
<i class="fa fa-fw fa-sign-out text-secondary"></i><span>{{tx("global:logout")}}</span>
|
|
100
100
|
</button>
|
|
101
101
|
</form>
|
|
102
102
|
</li>
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
{{{ end }}}
|
|
31
31
|
|
|
32
32
|
<div class="sidebar-toggle m-2 d-none d-lg-block">
|
|
33
|
-
<a href="#" role="button" component="sidebar/toggle" class="nav-link d-flex gap-2 align-items-center p-2 pointer w-100 text-nowrap" title="
|
|
33
|
+
<a href="#" role="button" component="sidebar/toggle" class="nav-link d-flex gap-2 align-items-center p-2 pointer w-100 text-nowrap" title="{{tx("themes/harmony:expand")}}" aria-label="{{tx("themes/harmony:sidebar-toggle")}}">
|
|
34
34
|
<i class="fa fa-fw fa-angles-right"></i>
|
|
35
35
|
<i class="fa fa-fw fa-angles-left"></i>
|
|
36
|
-
<span class="nav-text visible-open fw-semibold small lh-1">
|
|
36
|
+
<span class="nav-text visible-open fw-semibold small lh-1">{{tx("themes/harmony:collapse")}}</span>
|
|
37
37
|
</a>
|
|
38
38
|
</div>
|
|
39
39
|
</div>
|