nodebb-theme-harmony 1.0.0 → 1.0.2
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/README.md +12 -1
- package/languages/en-GB/harmony.json +6 -1
- package/library.js +56 -25
- package/package.json +1 -1
- package/plugin.json +0 -1
- package/public/harmony.js +165 -41
- package/public/settings.js +1 -0
- package/screenshots/categories.png +0 -0
- package/screenshots/recent.png +0 -0
- package/screenshots/topic.png +0 -0
- package/scss/account.scss +1 -1
- package/scss/chats.scss +81 -26
- package/scss/common.scss +84 -10
- package/scss/flags.scss +5 -0
- package/scss/groups.scss +2 -2
- package/scss/harmony.scss +3 -0
- package/scss/mixins.scss +7 -3
- package/scss/modals.scss +5 -3
- package/scss/modules/bottom-sheet.scss +1 -1
- package/scss/modules/composer.scss +0 -4
- package/scss/modules/cover.scss +1 -11
- package/scss/modules/filters.scss +8 -0
- package/scss/modules/paginator.scss +24 -0
- package/scss/modules/tags.scss +2 -2
- package/scss/modules/topic-navigator.scss +18 -42
- package/scss/modules/topics-list.scss +32 -17
- package/scss/modules/user-menu.scss +6 -0
- package/scss/overrides.scss +4 -1
- package/scss/sidebar.scss +61 -8
- package/scss/topic.scss +39 -13
- package/templates/account/blocks.tpl +35 -40
- package/templates/account/categories.tpl +47 -29
- package/templates/account/consent.tpl +66 -10
- package/templates/account/edit/password.tpl +25 -30
- package/templates/account/edit/username.tpl +21 -26
- package/templates/account/edit.tpl +105 -116
- package/templates/account/followers.tpl +12 -19
- package/templates/account/following.tpl +12 -18
- package/templates/account/groups.tpl +12 -17
- package/templates/account/info.tpl +178 -206
- package/templates/account/posts.tpl +31 -36
- package/templates/account/profile.tpl +82 -72
- package/templates/account/sessions.tpl +8 -30
- package/templates/account/settings.tpl +222 -203
- package/templates/account/theme.tpl +39 -25
- package/templates/account/topics.tpl +36 -38
- package/templates/account/uploads.tpl +33 -40
- package/templates/admin/plugins/harmony.tpl +21 -3
- package/templates/categories.tpl +3 -6
- package/templates/category.tpl +13 -14
- package/templates/chats.tpl +9 -10
- package/templates/flags/detail.tpl +160 -193
- package/templates/flags/list.tpl +3 -70
- package/templates/footer.tpl +2 -2
- package/templates/groups/details.tpl +22 -19
- package/templates/groups/list.tpl +1 -1
- package/templates/groups/members.tpl +0 -2
- package/templates/header.tpl +2 -2
- package/templates/login.tpl +4 -4
- package/templates/notifications.tpl +5 -5
- package/templates/partials/account/admin-menu.tpl +9 -9
- package/templates/partials/account/category-item.tpl +14 -17
- package/templates/partials/account/footer.tpl +3 -0
- package/templates/partials/account/header.tpl +78 -81
- package/templates/partials/account/session-list.tpl +18 -0
- package/templates/partials/account/sidebar-left.tpl +31 -25
- package/templates/partials/breadcrumbs.tpl +6 -6
- package/templates/partials/buttons/newTopic.tpl +1 -1
- package/templates/partials/categories/item.tpl +31 -27
- package/templates/partials/categories/lastpost.tpl +7 -7
- package/templates/partials/category/filter-dropdown-content.tpl +37 -0
- package/templates/partials/{category-selector-content.tpl → category/selector-dropdown-content.tpl} +7 -7
- package/templates/partials/category/sort.tpl +22 -7
- package/templates/partials/category/subcategory.tpl +2 -3
- package/templates/partials/category/tags.tpl +0 -2
- package/templates/partials/category/tools.tpl +28 -25
- package/templates/partials/category/watch.tpl +39 -6
- package/templates/partials/chats/dropdown.tpl +4 -1
- package/templates/partials/chats/message-window.tpl +12 -8
- package/templates/partials/chats/message.tpl +8 -10
- package/templates/partials/chats/options.tpl +14 -6
- package/templates/partials/chats/recent_room.tpl +41 -32
- package/templates/partials/cookie-consent.tpl +5 -5
- package/templates/partials/flags/bulk-actions.tpl +9 -0
- package/templates/partials/flags/filters.tpl +165 -78
- package/templates/partials/flags/results.tpl +38 -0
- package/templates/partials/groups/admin.tpl +4 -4
- package/templates/partials/groups/badge.tpl +1 -1
- package/templates/partials/groups/invited.tpl +1 -1
- package/templates/partials/groups/list.tpl +2 -2
- package/templates/partials/groups/memberlist.tpl +2 -2
- package/templates/partials/groups/sidebar-left.tpl +10 -10
- package/templates/partials/header/brand.tpl +9 -2
- package/templates/partials/mobile-footer.tpl +69 -61
- package/templates/partials/notifications_list.tpl +11 -8
- package/templates/partials/paginator.tpl +11 -9
- package/templates/partials/post_bar.tpl +26 -24
- package/templates/partials/posts_list_item.tpl +5 -5
- package/templates/partials/quick-search-results.tpl +3 -3
- package/templates/partials/search-filters.tpl +184 -0
- package/templates/partials/search-results.tpl +28 -35
- package/templates/partials/sidebar/chats.tpl +26 -34
- package/templates/partials/sidebar/drafts.tpl +45 -34
- package/templates/partials/sidebar/logged-in-menu.tpl +5 -5
- package/templates/partials/sidebar/logged-out-menu.tpl +1 -1
- package/templates/partials/sidebar/notifications.tpl +30 -9
- package/templates/partials/sidebar/search-mobile.tpl +1 -1
- package/templates/partials/sidebar/search.tpl +1 -1
- package/templates/partials/sidebar/user-menu.tpl +38 -29
- package/templates/partials/sidebar-left.tpl +14 -11
- package/templates/partials/sidebar-right.tpl +1 -3
- package/templates/partials/skin-switcher.tpl +3 -3
- package/templates/partials/tags/filter-dropdown-content.tpl +34 -0
- package/templates/partials/tags_list.tpl +4 -4
- package/templates/partials/topic/browsing-users.tpl +0 -2
- package/templates/partials/topic/event.tpl +1 -1
- package/templates/partials/topic/navigation-post.tpl +5 -9
- package/templates/partials/topic/navigator-mobile.tpl +62 -0
- package/templates/partials/topic/navigator.tpl +23 -17
- package/templates/partials/topic/post-editor.tpl +0 -2
- package/templates/partials/topic/post-menu-list.tpl +60 -62
- package/templates/partials/topic/post-menu.tpl +16 -11
- package/templates/partials/topic/post.tpl +45 -27
- package/templates/partials/topic/quickreply.tpl +8 -8
- package/templates/partials/topic/reply-button.tpl +7 -7
- package/templates/partials/topic/sort.tpl +17 -5
- package/templates/partials/topic/tools.tpl +2 -2
- package/templates/partials/topic/topic-menu-list.tpl +22 -24
- package/templates/partials/topic/watch.tpl +42 -9
- package/templates/partials/topic-filters.tpl +6 -3
- package/templates/partials/topic-list-bar.tpl +50 -46
- package/templates/partials/topic-terms.tpl +6 -3
- package/templates/partials/topics_list.tpl +88 -93
- package/templates/partials/userFilter-placeholders.tpl +5 -0
- package/templates/partials/users/filter-dropdown-content.tpl +23 -0
- package/templates/partials/users/item.tpl +25 -27
- package/templates/partials/users_list.tpl +1 -1
- package/templates/popular.tpl +3 -1
- package/templates/post-queue.tpl +166 -0
- package/templates/recent.tpl +3 -2
- package/templates/register.tpl +4 -4
- package/templates/search.tpl +39 -177
- package/templates/tags.tpl +3 -3
- package/templates/top.tpl +3 -1
- package/templates/topic.tpl +86 -69
- package/templates/unread.tpl +3 -1
- package/templates/users.tpl +7 -3
- package/templates/modules/usercard.tpl +0 -39
- package/templates/partials/acceptTos.tpl +0 -11
- package/templates/partials/category-filter-content.tpl +0 -30
- package/templates/partials/category-filter-right.tpl +0 -5
- package/templates/partials/category-filter.tpl +0 -3
- package/templates/partials/category-selector-right.tpl +0 -5
- package/templates/partials/category-selector.tpl +0 -3
- package/templates/partials/slideout-menu.tpl +0 -6
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
<div component="topic/reply/container" class="btn-group action-bar
|
|
2
|
-
<a href="{config.relative_path}/compose?tid={tid}
|
|
1
|
+
<div component="topic/reply/container" class="btn-group action-bar {{{ if !privileges.topics:reply }}}hidden{{{ end }}}">
|
|
2
|
+
<a href="{config.relative_path}/compose?tid={tid}" class="d-flex align-items-center btn btn-sm btn-primary px-3 fw-semibold " component="topic/reply" data-ajaxify="false" role="button"><i class="fa fa-reply d-sm-block d-md-none"></i><span class="d-none d-md-block"> [[topic:reply]]</span></a>
|
|
3
3
|
<button type="button" class="btn btn-sm btn-primary dropdown-toggle" data-bs-toggle="dropdown">
|
|
4
4
|
<span class="caret"></span>
|
|
5
5
|
</button>
|
|
6
|
-
<ul class="dropdown-menu dropdown-menu-end" role="menu">
|
|
7
|
-
<li><a class="dropdown-item" href="#" component="topic/reply-as-topic">[[topic:reply-as-topic]]</a></li>
|
|
6
|
+
<ul class="dropdown-menu dropdown-menu-end p-1 text-sm" role="menu">
|
|
7
|
+
<li><a class="dropdown-item rounded-1" href="#" component="topic/reply-as-topic">[[topic:reply-as-topic]]</a></li>
|
|
8
8
|
</ul>
|
|
9
9
|
</div>
|
|
10
10
|
|
|
11
11
|
{{{ if loggedIn }}}
|
|
12
12
|
{{{ if !privileges.topics:reply }}}
|
|
13
13
|
{{{ if locked }}}
|
|
14
|
-
<a component="topic/reply/locked" class="d-flex gap-2 align-items-center fw-semibold btn btn-primary disabled" disabled><i class="fa fa-lock"></i> [[topic:locked]]</a>
|
|
14
|
+
<a component="topic/reply/locked" class="d-flex gap-2 align-items-center fw-semibold btn btn-sm btn-primary disabled" disabled><i class="fa fa-lock"></i> [[topic:locked]]</a>
|
|
15
15
|
{{{ end }}}
|
|
16
16
|
{{{ end }}}
|
|
17
17
|
|
|
18
18
|
{{{ if !locked }}}
|
|
19
|
-
<a component="topic/reply/locked" class="d-flex gap-2 align-items-center fw-semibold btn btn-primary disabled hidden" disabled><i class="fa fa-lock"></i> [[topic:locked]]</a>
|
|
19
|
+
<a component="topic/reply/locked" class="d-flex gap-2 align-items-center fw-semibold btn btn-sm btn-primary disabled hidden" disabled><i class="fa fa-lock"></i> [[topic:locked]]</a>
|
|
20
20
|
{{{ end }}}
|
|
21
21
|
{{{ else }}}
|
|
22
22
|
{{{ if !privileges.topics:reply }}}
|
|
23
|
-
<a component="topic/reply/guest" href="{config.relative_path}/login" class="d-flex align-items-center fw-semibold btn btn-primary">[[topic:guest-login-reply]]</a>
|
|
23
|
+
<a component="topic/reply/guest" href="{config.relative_path}/login" class="d-flex align-items-center fw-semibold btn btn-sm btn-primary">[[topic:guest-login-reply]]</a>
|
|
24
24
|
{{{ end }}}
|
|
25
25
|
{{{ end }}}
|
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
<div class="btn-group bottom-sheet" component="thread/sort">
|
|
2
|
-
<button class="btn-ghost-sm d-flex gap-2
|
|
2
|
+
<button class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
3
3
|
<span class="d-flex gap-2 align-items-center">
|
|
4
4
|
<i class="fa fa-fw fa-arrow-down-wide-short text-primary"></i>
|
|
5
5
|
<span class="d-none d-md-inline fw-semibold">[[topic:sort_by]]</span>
|
|
6
6
|
</span>
|
|
7
7
|
</button>
|
|
8
|
-
<ul class="dropdown-menu">
|
|
9
|
-
<li><a class="dropdown-item" href="#" class="oldest_to_newest" data-sort="oldest_to_newest"
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
<ul class="dropdown-menu p-1 text-sm">
|
|
9
|
+
<li><a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="#" class="oldest_to_newest" data-sort="oldest_to_newest">
|
|
10
|
+
<span class="flex-grow-1">[[topic:oldest_to_newest]]</span>
|
|
11
|
+
<i class="flex-shrink-0 fa fa-fw"></i>
|
|
12
|
+
</a>
|
|
13
|
+
</li>
|
|
14
|
+
<li><a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="#" class="newest_to_oldest" data-sort="newest_to_oldest">
|
|
15
|
+
<span class="flex-grow-1">[[topic:newest_to_oldest]]</span>
|
|
16
|
+
<i class="flex-shrink-0 fa fa-fw"></i>
|
|
17
|
+
</a>
|
|
18
|
+
</li>
|
|
19
|
+
<li><a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="#" class="most_votes" data-sort="most_votes">
|
|
20
|
+
<span class="flex-grow-1">[[topic:most_votes]]</span>
|
|
21
|
+
<i class="flex-shrink-0 fa fa-fw"></i>
|
|
22
|
+
</a>
|
|
23
|
+
</li>
|
|
12
24
|
</ul>
|
|
13
25
|
</div>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{{{ if privileges.view_thread_tools }}}
|
|
2
2
|
<div class="btn-group thread-tools bottom-sheet">
|
|
3
|
-
<button class="btn-ghost-sm d-flex gap-2
|
|
3
|
+
<button class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
4
4
|
<i class="fa fa-fw fa-gear link-primary"></i>
|
|
5
5
|
<span class="d-none d-md-inline fw-semibold">[[topic:thread_tools.title]]</span>
|
|
6
6
|
</button>
|
|
7
|
-
<ul class="dropdown-menu">
|
|
7
|
+
<ul class="dropdown-menu p-1 text-sm">
|
|
8
8
|
<li class="placeholder-wave"><a class="dropdown-item d-flex gap-2" href="#"><div class="placeholder bg-secondary rounded-1" style="width: 1em;"></div><div class="placeholder bg-secondary rounded-1 col-8"></div></a></li>
|
|
9
9
|
<li class="placeholder-wave"><a class="dropdown-item d-flex gap-2" href="#"><div class="placeholder bg-secondary rounded-1" style="width: 1em;"></div><div class="placeholder bg-secondary rounded-1 col-8"></div></a></li>
|
|
10
10
|
<li class="placeholder-wave"><a class="dropdown-item d-flex gap-2" href="#"><div class="placeholder bg-secondary rounded-1" style="width: 1em;"></div><div class="placeholder bg-secondary rounded-1 col-8"></div></a></li>
|
|
@@ -1,34 +1,32 @@
|
|
|
1
|
-
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
-
|
|
3
1
|
{{{ if privileges.editable }}}
|
|
4
|
-
<li
|
|
5
|
-
<li
|
|
6
|
-
<li
|
|
7
|
-
<li
|
|
2
|
+
<li {{{ if locked }}}hidden{{{ end }}}><a component="topic/lock" href="#" class="dropdown-item rounded-1 d-flex align-items-center gap-2 {{{ if locked }}}hidden{{{ end }}}"><i class="fa fa-fw text-muted fa-lock"></i> [[topic:thread_tools.lock]]</a></li>
|
|
3
|
+
<li {{{ if !locked }}}hidden{{{ end }}}><a component="topic/unlock" href="#" class="dropdown-item rounded-1 d-flex align-items-center gap-2 {{{ if !locked }}}hidden{{{ end }}}"><i class="fa fa-fw text-muted fa-unlock"></i> [[topic:thread_tools.unlock]]</a></li>
|
|
4
|
+
<li {{{ if pinned }}}hidden{{{ end }}}><a component="topic/pin" href="#" class="dropdown-item rounded-1 d-flex align-items-center gap-2 {{{ if pinned }}}hidden{{{ end }}}"><i class="fa fa-fw text-muted fa-thumb-tack"></i> [[topic:thread_tools.pin]]</a></li>
|
|
5
|
+
<li {{{ if !pinned }}}hidden{{{ end }}}><a component="topic/unpin" href="#" class="dropdown-item rounded-1 d-flex align-items-center gap-2 {{{ if !pinned }}}hidden{{{ end }}}"><i class="fa fa-fw text-muted fa-thumb-tack fa-rotate-90"></i> [[topic:thread_tools.unpin]]</a></li>
|
|
8
6
|
|
|
9
|
-
<li><a component="topic/move" class="dropdown-item" href="#"><i class="fa fa-fw fa-arrows"></i> [[topic:thread_tools.move]]</a></li>
|
|
10
|
-
<li><a component="topic/merge" class="dropdown-item" href="#"><i class="fa fa-fw fa-code-fork"></i> [[topic:thread_tools.merge]]</a></li>
|
|
11
|
-
<li><a component="topic/fork" class="dropdown-item" href="#"><i class="fa fa-fw fa-code-fork"></i> [[topic:thread_tools.fork]]</a></li>
|
|
7
|
+
<li><a component="topic/move" class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="#"><i class="fa fa-fw text-muted fa-arrows"></i> [[topic:thread_tools.move]]</a></li>
|
|
8
|
+
<li><a component="topic/merge" class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="#"><i class="fa fa-fw text-muted fa-code-fork"></i> [[topic:thread_tools.merge]]</a></li>
|
|
9
|
+
<li><a component="topic/fork" class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="#"><i class="fa fa-fw text-muted fa-code-fork"></i> [[topic:thread_tools.fork]]</a></li>
|
|
12
10
|
{{{ if !scheduled }}}
|
|
13
|
-
<li><a component="topic/move-posts" class="dropdown-item" href="#"><i class="fa fa-fw fa-arrows"></i> [[topic:thread_tools.move-posts]]</a></li>
|
|
11
|
+
<li><a component="topic/move-posts" class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="#"><i class="fa fa-fw text-muted fa-arrows"></i> [[topic:thread_tools.move-posts]]</a></li>
|
|
14
12
|
{{{ end }}}
|
|
15
|
-
<li><a component="topic/mark-unread-for-all" class="dropdown-item" href="#"><i class="fa fa-fw fa-inbox"></i> [[topic:thread_tools.markAsUnreadForAll]]</a></li>
|
|
13
|
+
<li><a component="topic/mark-unread-for-all" class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="#"><i class="fa fa-fw text-muted fa-inbox"></i> [[topic:thread_tools.markAsUnreadForAll]]</a></li>
|
|
16
14
|
<li class="dropdown-divider"></li>
|
|
17
15
|
{{{ end }}}
|
|
18
16
|
|
|
19
|
-
|
|
20
|
-
<li
|
|
17
|
+
{{{ if privileges.deletable }}}
|
|
18
|
+
<li {{{ if deleted }}}hidden{{{ end }}}><a component="topic/delete" href="#" class="dropdown-item rounded-1 d-flex align-items-center gap-2 {{{ if deleted }}}hidden{{{ end }}}"><i class="fa fa-fw text-muted fa-trash-o"></i> [[topic:thread_tools.delete]]</a></li>
|
|
21
19
|
{{{ if !scheduled }}}
|
|
22
|
-
<li
|
|
20
|
+
<li {{{ if !deleted }}}hidden{{{ end }}}><a component="topic/restore" href="#" class="dropdown-item rounded-1 d-flex align-items-center gap-2 {{{ if !deleted }}}hidden{{{ end }}}"><i class="fa fa-fw text-muted fa-history"></i> [[topic:thread_tools.restore]]</a></li>
|
|
21
|
+
{{{ end }}}
|
|
22
|
+
{{{ if privileges.purge }}}
|
|
23
|
+
<li {{{ if !deleted }}}hidden{{{ end }}}><a component="topic/purge" href="#" class="dropdown-item rounded-1 d-flex align-items-center gap-2 {{{ if !deleted }}}hidden{{{ end }}}"><i class="fa fa-fw text-muted fa-eraser"></i> [[topic:thread_tools.purge]]</a></li>
|
|
24
|
+
{{{ end }}}
|
|
25
|
+
{{{ if privileges.isAdminOrMod }}}
|
|
26
|
+
<li><a component="topic/delete/posts" class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="#"><i class="fa fa-fw text-muted fa-trash-o"></i> [[topic:thread_tools.delete-posts]]</a></li>
|
|
23
27
|
{{{ end }}}
|
|
24
|
-
<!-- IF privileges.purge -->
|
|
25
|
-
<li <!-- IF !deleted -->hidden<!-- ENDIF !deleted -->><a component="topic/purge" href="#" class="dropdown-item <!-- IF !deleted -->hidden<!-- ENDIF !deleted -->"><i class="fa fa-fw fa-eraser"></i> [[topic:thread_tools.purge]]</a></li>
|
|
26
|
-
<!-- END -->
|
|
27
|
-
<!-- IF privileges.isAdminOrMod -->
|
|
28
|
-
<li><a component="topic/delete/posts" class="dropdown-item" href="#"><i class="fa fa-fw fa-trash-o"></i> [[topic:thread_tools.delete-posts]]</a></li>
|
|
29
|
-
<!-- ENDIF privileges.isAdminOrMod -->
|
|
30
28
|
|
|
31
|
-
{{{each thread_tools}}}
|
|
32
|
-
<li><a href="#" class="dropdown-item {
|
|
33
|
-
{{{end}}}
|
|
34
|
-
|
|
29
|
+
{{{ each thread_tools }}}
|
|
30
|
+
<li><a href="#" class="dropdown-item rounded-1 d-flex align-items-center gap-2 {./class}"><i class="fa fa-fw text-muted {./icon}"></i> {./title}</a></li>
|
|
31
|
+
{{{ end }}}
|
|
32
|
+
{{{ end }}}
|
|
@@ -1,27 +1,60 @@
|
|
|
1
1
|
{{{ if config.loggedIn }}}
|
|
2
|
-
<div class="btn-group
|
|
3
|
-
<button class="btn-ghost-sm d-flex gap-2
|
|
2
|
+
<div class="btn-group bottom-sheet" component="topic/watch">
|
|
3
|
+
<button class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
4
4
|
<span component="topic/following/menu" class="d-flex gap-2 align-items-center{{{ if !isFollowing }}} hidden{{{ end }}}">
|
|
5
|
-
<i class="fa fa-fw fa-bell-o link-primary"></i>
|
|
5
|
+
<i class="flex-shrink-0 fa fa-fw fa-bell-o link-primary"></i>
|
|
6
6
|
<span class="d-none d-md-inline fw-semibold">[[topic:watching]]</span>
|
|
7
7
|
</span>
|
|
8
8
|
|
|
9
9
|
<span component="topic/not-following/menu" class="d-flex gap-2 align-items-center{{{ if !isNotFollowing}}} hidden{{{ end }}}">
|
|
10
|
-
<i class="fa fa-fw fa-bell-slash-o link-primary"></i>
|
|
10
|
+
<i class="flex-shrink-0 fa fa-fw fa-bell-slash-o link-primary"></i>
|
|
11
11
|
<span class="d-none d-md-inline fw-semibold">[[topic:not-watching]]</span>
|
|
12
12
|
</span>
|
|
13
13
|
|
|
14
14
|
<span component="topic/ignoring/menu" class="d-flex gap-2 align-items-center{{{ if !isIgnoring }}} hidden{{{ end }}}">
|
|
15
|
-
<i class="fa fa-fw fa-eye-slash link-primary"></i>
|
|
15
|
+
<i class="flex-shrink-0 fa fa-fw fa-eye-slash link-primary"></i>
|
|
16
16
|
<span class="d-none d-md-inline fw-semibold">[[topic:ignoring]]</span>
|
|
17
17
|
</span>
|
|
18
18
|
</button>
|
|
19
|
-
<ul class="dropdown-menu">
|
|
20
|
-
<li
|
|
19
|
+
<ul class="dropdown-menu p-1 text-sm">
|
|
20
|
+
<li>
|
|
21
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2 p-2" href="#" component="topic/following">
|
|
22
|
+
<div class="flex-grow-1 d-flex flex-column">
|
|
23
|
+
<span class="d-flex align-items-center gap-2">
|
|
24
|
+
<i class="flex-shrink-0 fa fa-fw fa-bell-o"></i>
|
|
25
|
+
<span class="flex-grow-1 fw-semibold">[[topic:watching]]</span>
|
|
26
|
+
</span>
|
|
27
|
+
<div class="help-text text-muted text-xs">[[topic:watching.description]]</div>
|
|
28
|
+
</div>
|
|
29
|
+
<span class="flex-shrink-0"><i component="topic/following/check" class="fa fa-fw {{{ if isFollowing }}}fa-check{{{ end }}}"></i></span>
|
|
30
|
+
</a>
|
|
31
|
+
</li>
|
|
21
32
|
|
|
22
|
-
<li
|
|
33
|
+
<li>
|
|
34
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2 p-2" href="#" component="topic/not-following">
|
|
35
|
+
<div class="flex-grow-1 d-flex flex-column">
|
|
36
|
+
<span class="d-flex align-items-center gap-2">
|
|
37
|
+
<i class="flex-shrink-0 fa fa-fw fa-bell-slash-o"></i>
|
|
38
|
+
<span class="flex-grow-1 fw-semibold">[[topic:not-watching]]</span>
|
|
39
|
+
</span>
|
|
40
|
+
<div class="help-text text-muted text-xs">[[topic:not-watching.description]]</div>
|
|
41
|
+
</div>
|
|
42
|
+
<span class="flex-shrink-0"><i component="topic/not-following/check" class="fa fa-fw {{{ if isNotFollowing }}}fa-check{{{ end }}}"></i></span>
|
|
43
|
+
</a>
|
|
44
|
+
</li>
|
|
23
45
|
|
|
24
|
-
<li
|
|
46
|
+
<li>
|
|
47
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2 p-2" href="#" component="topic/ignoring">
|
|
48
|
+
<div class="flex-grow-1 d-flex flex-column">
|
|
49
|
+
<span class="d-flex align-items-center gap-2">
|
|
50
|
+
<i class="flex-shrink-0 fa fa-fw fa-eye-slash"></i>
|
|
51
|
+
<span class="flex-grow-1 fw-semibold">[[topic:ignoring]]</span>
|
|
52
|
+
</span>
|
|
53
|
+
<div class="help-text text-muted text-xs">[[topic:ignoring.description]]</div>
|
|
54
|
+
</div>
|
|
55
|
+
<span class="flex-shrink-0"><i component="topic/ignoring/check" class="fa fa-fw {{{ if isIgnoring }}}fa-check{{{ end }}}"></i></span>
|
|
56
|
+
</a>
|
|
57
|
+
</li>
|
|
25
58
|
</ul>
|
|
26
59
|
</div>
|
|
27
60
|
{{{ end }}}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
<div class="btn-group bottom-sheet{{{ if !filters.length }}} hidden{{{ end }}}">
|
|
2
|
-
<button type="button" class="btn-ghost-sm d-flex gap-2
|
|
2
|
+
<button type="button" class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown">
|
|
3
3
|
<i class="fa fa-fw fa-filter link-primary"></i>
|
|
4
4
|
<span class="visible-md-inline visible-lg-inline fw-semibold">{selectedFilter.name}</span>
|
|
5
5
|
</button>
|
|
6
|
-
<ul class="dropdown-menu" role="menu">
|
|
6
|
+
<ul class="dropdown-menu p-1 text-sm" role="menu">
|
|
7
7
|
{{{each filters}}}
|
|
8
8
|
<li role="presentation" class="category {{{if filters.selected}}}selected{{{end}}}">
|
|
9
|
-
<a class="dropdown-item" role="menu-item" href="{config.relative_path}/{filters.url}"
|
|
9
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="menu-item" href="{config.relative_path}/{filters.url}">
|
|
10
|
+
<div class="flex-grow-1">{filters.name}</div>
|
|
11
|
+
<i class="flex-shrink-0 fa fa-fw {{{ if filters.selected }}}fa-check{{{ end }}}"></i>
|
|
12
|
+
</a>
|
|
10
13
|
</li>
|
|
11
14
|
{{{end}}}
|
|
12
15
|
</ul>
|
|
@@ -1,50 +1,54 @@
|
|
|
1
|
-
<
|
|
2
|
-
<
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
1
|
+
<div class="{{{ if config.theme.stickyToolbar }}}sticky-tools{{{ end }}} mb-3">
|
|
2
|
+
<nav class="topic-list-header navbar navbar-expand p-0 border-0 rounded">
|
|
3
|
+
<div class="card card-header flex-row p-2 gap-1 border rounded w-100 align-items-center">
|
|
4
|
+
<ul component="category/controls" class="navbar-nav me-auto gap-2 align-items-start flex-wrap">
|
|
5
|
+
{{{ if template.category }}}
|
|
6
|
+
<!-- IMPORT partials/category/watch.tpl -->
|
|
7
|
+
<!-- IMPORT partials/tags/filter-dropdown-left.tpl -->
|
|
8
|
+
<!-- IMPORT partials/category/sort.tpl -->
|
|
9
|
+
{{{ end }}}
|
|
10
|
+
{{{ if (template.popular || template.top)}}}
|
|
11
|
+
<!-- IMPORT partials/topic-terms.tpl -->
|
|
12
|
+
{{{ end }}}
|
|
13
|
+
{{{ if (template.unread || (template.recent || (template.popular || template.top))) }}}
|
|
14
|
+
<!-- IMPORT partials/topic-filters.tpl -->
|
|
15
|
+
<!-- IMPORT partials/category/filter-dropdown-left.tpl -->
|
|
16
|
+
<!-- IMPORT partials/tags/filter-dropdown-left.tpl -->
|
|
17
|
+
{{{ end }}}
|
|
18
|
+
{{{ if template.unread }}}
|
|
19
|
+
<div class="markread btn-group {{{ if !topics.length }}}hidden{{{ end }}}">
|
|
20
|
+
<!-- IMPORT partials/category/selector-dropdown-left.tpl -->
|
|
21
|
+
</div>
|
|
22
|
+
{{{ end }}}
|
|
23
|
+
{{{ if template.tag }}}
|
|
24
|
+
<!-- IMPORT partials/category/filter-dropdown-left.tpl -->
|
|
25
|
+
{{{ end }}}
|
|
26
|
+
<!-- IMPORT partials/category/tools.tpl -->
|
|
24
27
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
{{{ if (!feeds:disableRSS && rssFeedUrl) }}}
|
|
29
|
+
<a class="btn-ghost-sm d-none d-lg-flex align-self-stretch" target="_blank" href="{rssFeedUrl}" itemprop="item"><i class="fa fa-rss text-primary"></i></a>
|
|
30
|
+
{{{ end }}}
|
|
28
31
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
<a href="{config.relative_path}{{{ if template.category }}}{url}{{{ else }}}/{selectedFilter.url}{querystring}{{{ end }}}" class="btn btn-secondary fw-semibold position-absolute top-100 translate-middle-x start-50 mt-1 hide" style="--bs-btn-padding-y: .25rem; --bs-btn-padding-x: .5rem; --bs-btn-font-size: .75rem;" id="new-topics-alert">
|
|
33
|
+
<i class="fa fa-fw fa-arrow-up"></i> [[recent:load-new-posts]]
|
|
34
|
+
</a>
|
|
35
|
+
</ul>
|
|
33
36
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
37
|
+
<div class="d-flex gap-1 align-items-center">
|
|
38
|
+
{{{ if template.category }}}
|
|
39
|
+
{{{ if privileges.topics:create }}}
|
|
40
|
+
<a href="{config.relative_path}/compose?cid={cid}" component="category/post" id="new_topic" class="btn btn-primary btn-sm text-nowrap" data-ajaxify="false" role="button">[[category:new_topic_button]]</a>
|
|
41
|
+
{{{ end }}}
|
|
42
|
+
{{{ else }}}
|
|
43
|
+
{{{ if canPost }}}
|
|
44
|
+
<!-- IMPORT partials/buttons/newTopic.tpl -->
|
|
45
|
+
{{{ end }}}
|
|
46
|
+
{{{ end }}}
|
|
47
|
+
<!-- only show login button if not logged in and doesn't have any posting privilege -->
|
|
48
|
+
{{{ if (!loggedIn && (!privileges.topics:create && !canPost))}}}
|
|
49
|
+
<a component="category/post/guest" href="{config.relative_path}/login" class="btn btn-sm btn-primary">[[category:guest-login-post]]</a>
|
|
50
|
+
{{{ end }}}
|
|
51
|
+
</div>
|
|
48
52
|
</div>
|
|
49
|
-
</
|
|
50
|
-
</
|
|
53
|
+
</nav>
|
|
54
|
+
</div>
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
<div class="btn-group bottom-sheet {{{ if !terms.length }}}hidden{{{ end }}}">
|
|
2
|
-
<button type="button" class="btn-ghost-sm d-flex gap-2
|
|
2
|
+
<button type="button" class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown">
|
|
3
3
|
<i class="fa fa-fw fa-clock text-primary"></i>
|
|
4
4
|
<span class="visible-md-inline visible-lg-inline fw-semibold">{selectedTerm.name}</span>
|
|
5
5
|
</button>
|
|
6
|
-
<ul class="dropdown-menu" role="menu">
|
|
6
|
+
<ul class="dropdown-menu p-1 text-sm" role="menu">
|
|
7
7
|
{{{each terms}}}
|
|
8
8
|
<li role="presentation" class="category">
|
|
9
|
-
<a class="dropdown-item" role="menu-item" href="{config.relative_path}/{terms.url}"
|
|
9
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="menu-item" href="{config.relative_path}/{terms.url}">
|
|
10
|
+
<div class="flex-grow-1">{terms.name}</div>
|
|
11
|
+
<i class="flex-shrink-0 fa fa-fw {{{ if terms.selected }}}fa-check{{{ end }}}"></i>
|
|
12
|
+
</a>
|
|
10
13
|
</li>
|
|
11
14
|
{{{end}}}
|
|
12
15
|
</ul>
|
|
@@ -1,127 +1,122 @@
|
|
|
1
|
-
<ul component="category" class="list
|
|
1
|
+
<ul component="category" class="topics-list list-unstyled" itemscope itemtype="http://www.schema.org/ItemList" data-nextstart="{nextStart}" data-set="{set}">
|
|
2
2
|
|
|
3
3
|
{{{ each topics }}}
|
|
4
|
-
<li component="category/topic" class="category-item position-relative {function.generateTopicClass}" <!-- IMPORT partials/data/category.tpl -->>
|
|
4
|
+
<li component="category/topic" class="category-item position-relative w-100 border-bottom py-3 py-lg-4 gap-1 d-flex flex-column flex-lg-row align-items-start {function.generateTopicClass}" <!-- IMPORT partials/data/category.tpl -->>
|
|
5
5
|
<link itemprop="url" content="{config.relative_path}/topic/{./slug}" />
|
|
6
6
|
<meta itemprop="name" content="{function.stripTags, ./title}" />
|
|
7
7
|
<meta itemprop="itemListOrder" content="descending" />
|
|
8
8
|
<meta itemprop="position" content="{./index}" />
|
|
9
|
-
<a id="{./index}" data-index="{./index}" component="topic/anchor"></a>
|
|
9
|
+
<a id="{./index}" data-index="{./index}" component="topic/anchor" class="position-absolute"></a>
|
|
10
10
|
|
|
11
|
-
<div class="row">
|
|
12
|
-
<div class="col-md-7 col-sm-9 col-12 content d-flex">
|
|
13
|
-
<div class="me-3">
|
|
14
|
-
<div class="avatar">
|
|
15
|
-
<a href="{{{ if ./user.userslug }}}{config.relative_path}/user/{./user.userslug}{{{ else }}}#{{{ end }}}" class="text-decoration-none">
|
|
16
|
-
{{{ if ./thumbs.length }}}
|
|
17
|
-
<img src="{./thumbs.0.url}" class="not-responsive" />
|
|
18
|
-
{{{ else }}}
|
|
19
|
-
{buildAvatar(./user, "40px", true, "not-responsive")}
|
|
20
|
-
{{{ end }}}
|
|
21
|
-
</a>
|
|
22
|
-
</div>
|
|
23
|
-
</div>
|
|
24
|
-
<div class="d-flex flex-column gap-1">
|
|
25
|
-
<h2 component="topic/header" class="title mb-1 {{{ if showSelect }}}me-4{{{ end }}} me-md-0 text-md fw-bold">
|
|
26
|
-
{{{ if topics.noAnchor }}}
|
|
27
|
-
<span>{./title}</span>
|
|
28
|
-
{{{ else }}}
|
|
29
|
-
<a class="text-reset" href="{config.relative_path}/topic/{./slug}{{{ if ./bookmark }}}/{./bookmark}{{{ end }}}">{./title}</a>
|
|
30
|
-
{{{ end }}}
|
|
31
|
-
</h2>
|
|
32
|
-
<div class="info d-flex align-items-center flex-wrap">
|
|
33
|
-
<span component="topic/labels" class="d-flex mb-1">
|
|
34
|
-
<span component="topic/scheduled" class="me-2 badge border border-gray-300 text-primary {{{ if !./scheduled }}}hidden{{{ end }}}">
|
|
35
|
-
<i class="fa fa-clock-o"></i>
|
|
36
|
-
[[topic:scheduled]]
|
|
37
|
-
</span>
|
|
38
|
-
<span component="topic/pinned" class="me-2 badge border border-gray-300 text-primary {{{ if (./scheduled || !./pinned) }}}hidden{{{ end }}}">
|
|
39
|
-
<i class="fa fa-thumb-tack"></i>
|
|
40
|
-
{{{ if !./pinExpiry }}}[[topic:pinned]]{{{ else }}}[[topic:pinned-with-expiry, {./pinExpiryISO}]]{{{ end }}}
|
|
41
|
-
</span>
|
|
42
|
-
<span component="topic/locked" class="me-2 badge border border-gray-300 text-primary {{{ if !./locked }}}hidden{{{ end }}}">
|
|
43
|
-
<i class="fa fa-lock"></i>
|
|
44
|
-
[[topic:locked]]
|
|
45
|
-
</span>
|
|
46
|
-
<span class="me-2 badge border border-gray-300 text-primary {{{ if !./oldCid }}}hidden{{{ end }}}">
|
|
47
|
-
<i class="fa fa-arrow-circle-right"></i>
|
|
48
|
-
[[topic:moved]]
|
|
49
|
-
</span>
|
|
50
|
-
{{{each ./icons}}}<span class="me-2">{@value}</span>{{{end}}}
|
|
51
|
-
</span>
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
{{{ if !template.category }}}
|
|
55
|
-
<a class="lh-1 me-2 mb-1" href="{config.relative_path}/category/{./category.slug}">{function.buildCategoryLabel, ./category, "border"}</a>
|
|
56
|
-
{{{ end }}}
|
|
57
|
-
|
|
58
|
-
{{{ if ./tags.length }}}
|
|
59
|
-
<span class="lh-1 tag-list hidden-xs d-flex flex-wrap gap-2 me-2 mb-1 ">
|
|
60
|
-
{{{ each ./tags }}}
|
|
61
|
-
<a href="{config.relative_path}/tags/{./valueEncoded}"><span class="badge border border-gray-300 text-xs fw-normal tag tag-class-{./class}" data-tag="{./value}">{./valueEscaped}</span></a>
|
|
62
|
-
{{{ end }}}
|
|
63
|
-
</span>
|
|
64
|
-
{{{ end }}}
|
|
65
|
-
|
|
66
|
-
<span class="hidden-xs text-xs timeago text-muted me-2 mb-1" title="{./timestampISO}"></span>
|
|
67
11
|
|
|
68
|
-
|
|
69
|
-
|
|
12
|
+
<div class="d-flex p-0 col-lg-7 gap-2 gap-lg-3 align-items-start">
|
|
13
|
+
<div class="flex-shrink-0 position-relative">
|
|
14
|
+
<a class="text-decoration-none" href="{{{ if ./user.userslug }}}{config.relative_path}/user/{./user.userslug}{{{ else }}}#{{{ end }}}">
|
|
15
|
+
{buildAvatar(./user, "40px", true, "avatar avatar-tooltip")}
|
|
16
|
+
</a>
|
|
17
|
+
{{{ if showSelect }}}
|
|
18
|
+
<div class="checkbox position-absolute top-100 start-50 translate-middle-x pt-2 m-0 d-none d-lg-flex" style="max-width:max-content">
|
|
19
|
+
<i component="topic/select" class="fa text-muted pointer fa-square-o p-1"></i>
|
|
70
20
|
</div>
|
|
21
|
+
{{{ end }}}
|
|
71
22
|
</div>
|
|
23
|
+
<div class="flex-grow-1 d-flex flex-wrap gap-1">
|
|
24
|
+
<h3 component="topic/header" class="title text-break fs-5 fw-semibold m-0 tracking-tight w-100 {{{ if showSelect }}}me-4 me-lg-0{{{ end }}}">
|
|
25
|
+
{{{ if topics.noAnchor }}}
|
|
26
|
+
<span>{./title}</span>
|
|
27
|
+
{{{ else }}}
|
|
28
|
+
<a class="text-reset" href="{config.relative_path}/topic/{./slug}{{{ if ./bookmark }}}/{./bookmark}{{{ end }}}">{./title}</a>
|
|
29
|
+
{{{ end }}}
|
|
30
|
+
</h3>
|
|
31
|
+
<span component="topic/labels" class="d-flex flex-wrap gap-1">
|
|
32
|
+
<span component="topic/scheduled" class="badge border border-gray-300 text-primary {{{ if !./scheduled }}}hidden{{{ end }}}">
|
|
33
|
+
<i class="fa fa-clock-o"></i>
|
|
34
|
+
[[topic:scheduled]]
|
|
35
|
+
</span>
|
|
36
|
+
<span component="topic/pinned" class="badge border border-gray-300 text-primary {{{ if (./scheduled || !./pinned) }}}hidden{{{ end }}}">
|
|
37
|
+
<i class="fa fa-thumb-tack"></i>
|
|
38
|
+
{{{ if !./pinExpiry }}}[[topic:pinned]]{{{ else }}}[[topic:pinned-with-expiry, {./pinExpiryISO}]]{{{ end }}}
|
|
39
|
+
</span>
|
|
40
|
+
<span component="topic/locked" class="badge border border-gray-300 text-primary {{{ if !./locked }}}hidden{{{ end }}}">
|
|
41
|
+
<i class="fa fa-lock"></i>
|
|
42
|
+
[[topic:locked]]
|
|
43
|
+
</span>
|
|
44
|
+
<span class="badge border border-gray-300 text-primary {{{ if !./oldCid }}}hidden{{{ end }}}">
|
|
45
|
+
<i class="fa fa-arrow-circle-right"></i>
|
|
46
|
+
[[topic:moved]]
|
|
47
|
+
</span>
|
|
48
|
+
{{{each ./icons}}}<span class="lh-1">{@value}</span>{{{end}}}
|
|
49
|
+
{{{ if !template.category }}}
|
|
50
|
+
<a class="lh-1" href="{config.relative_path}/category/{./category.slug}">{function.buildCategoryLabel, ./category, "border"}</a>
|
|
51
|
+
{{{ end }}}
|
|
52
|
+
{{{ if ./tags.length }}}
|
|
53
|
+
<span class="lh-1 tag-list hidden-xs d-flex flex-wrap gap-1">
|
|
54
|
+
{{{ each ./tags }}}
|
|
55
|
+
<a href="{config.relative_path}/tags/{./valueEncoded}"><span class="badge border border-gray-300 fw-normal tag tag-class-{./class}" data-tag="{./value}">{./valueEscaped}</span></a>
|
|
56
|
+
{{{ end }}}
|
|
57
|
+
</span>
|
|
58
|
+
{{{ end }}}
|
|
59
|
+
<a href="{config.relative_path}/topic/{./slug}" class="hidden-xs badge bg-transparent text-muted fw-normal timeago" title="{./timestampISO}"></a>
|
|
60
|
+
{{{ if !config.theme.mobileTopicTeasers}}}
|
|
61
|
+
<span class="visible-xs-inline badge bg-transparent text-muted fw-normal timeago" title="{{{ if ./teaser.timestampISO }}}{./teaser.timestampISO}{{{ else }}}{./timestampISO}{{{ end }}}"></span>
|
|
62
|
+
{{{ end }}}
|
|
63
|
+
</span>
|
|
64
|
+
</div>
|
|
65
|
+
{{{ if ./thumbs.length }}}
|
|
66
|
+
<a class="position-relative text-decoration-none flex-shrink-0 d-none d-xl-block" href="{config.relative_path}/topic/{./slug}{{{ if ./bookmark }}}/{./bookmark}{{{ end }}}">
|
|
67
|
+
<img class="topic-thumb rounded-1" style="width:auto;height: 3.33rem;" src="{./thumbs.0.url}"/>
|
|
68
|
+
<span data-numthumbs="{./thumbs.length}" class="px-1 position-absolute top-0 start-100 translate-middle badge rounded bg-info" style="z-index: 1;">+{increment(./thumbs.length, "-1")}</span>
|
|
69
|
+
</a>
|
|
70
|
+
{{{ end }}}
|
|
71
|
+
</div>
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
<div class="d-flex p-0 col-lg-5 align-content-stretch">
|
|
74
|
+
<div class="meta stats d-none d-lg-grid col-6 gap-1 pe-2 text-muted" style="grid-template-columns: 1fr 1fr 1fr;">
|
|
74
75
|
{{{ if !reputation:disabled }}}
|
|
75
|
-
<div class="stats-votes flex-
|
|
76
|
-
<
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
</div>
|
|
76
|
+
<div class="stats-votes card card-header border-0 p-2 overflow-hidden rounded-1 d-flex flex-column align-items-center">
|
|
77
|
+
<span class="human-readable-number fs-5 ff-secondary lh-1" title="{./votes}" data-toFixed="0">{./votes}</span>
|
|
78
|
+
<span class="d-none d-xl-flex text-lowercase text-xs">[[global:votes]]</span>
|
|
79
|
+
<i class="d-xl-none fa fa-fw text-xs text-muted opacity-75 fa-chevron-up"></i>
|
|
80
80
|
</div>
|
|
81
81
|
{{{ end }}}
|
|
82
|
-
<div class="stats-postcount flex-
|
|
83
|
-
<
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
</div>
|
|
82
|
+
<div class="stats-postcount card card-header border-0 p-2 overflow-hidden rounded-1 d-flex flex-column align-items-center">
|
|
83
|
+
<span class="human-readable-number fs-5 ff-secondary lh-1" title="{./postcount}" data-toFixed="0">{./postcount}</span>
|
|
84
|
+
<span class="d-none d-xl-flex text-lowercase text-xs">[[global:posts]]</span>
|
|
85
|
+
<i class="d-xl-none fa fa-fw text-xs text-muted opacity-75 fa-message"></i>
|
|
87
86
|
</div>
|
|
88
|
-
<div class="stats-viewcount flex-
|
|
89
|
-
<
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
</div>
|
|
87
|
+
<div class="stats-viewcount card card-header border-0 p-2 overflow-hidden rounded-1 d-flex flex-column align-items-center">
|
|
88
|
+
<span class="human-readable-number fs-5 ff-secondary lh-1" title="{./viewcount}" data-toFixed="0">{./viewcount}</span>
|
|
89
|
+
<span class="d-none d-xl-flex text-lowercase text-xs">[[global:views]]</span>
|
|
90
|
+
<i class="d-xl-none fa fa-fw text-xs text-muted opacity-75 fa-eye"></i>
|
|
93
91
|
</div>
|
|
94
92
|
</div>
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
<div class="lastpost background-link-container border-start border-2 h-100" style="border-color: {./category.bgColor}!important;">
|
|
93
|
+
<div component="topic/teaser" class="meta teaser col-lg-6 {{{ if !config.theme.mobileTopicTeasers }}}d-none d-lg-block{{{ end }}}">
|
|
94
|
+
<div class="lastpost background-link-container border-start border-2 lh-sm h-100" style="border-color: {./category.bgColor}!important;">
|
|
98
95
|
<a class="background-link" href="{config.relative_path}/topic/{./slug}/{./teaser.index}"></a>
|
|
99
96
|
{{{ if ./unreplied }}}
|
|
100
|
-
<
|
|
97
|
+
<div class="ps-2 text-xs">
|
|
101
98
|
[[category:no_replies]]
|
|
102
|
-
</
|
|
99
|
+
</div>
|
|
103
100
|
{{{ else }}}
|
|
104
101
|
{{{ if ./teaser.pid }}}
|
|
105
|
-
<
|
|
106
|
-
<a href="{config.relative_path}/user/{./teaser.user.userslug}" class="text-decoration-none">{buildAvatar(./teaser.user, "18px", true, "not-responsive")}</a>
|
|
102
|
+
<div class="ps-2">
|
|
103
|
+
<a href="{config.relative_path}/user/{./teaser.user.userslug}" class="text-decoration-none">{buildAvatar(./teaser.user, "18px", true, "avatar-tooltip not-responsive")}</a>
|
|
107
104
|
<a class="permalink text-muted timeago text-xs" href="{config.relative_path}/topic/{./slug}/{./teaser.index}" title="{./teaser.timestampISO}">
|
|
108
105
|
</a>
|
|
109
|
-
</
|
|
110
|
-
<div class="post-content
|
|
106
|
+
</div>
|
|
107
|
+
<div class="post-content text-xs ps-2 line-clamp-sm-2 lh-sm text-break">
|
|
111
108
|
{./teaser.content}
|
|
112
109
|
</div>
|
|
113
110
|
{{{ end }}}
|
|
114
111
|
{{{ end }}}
|
|
115
112
|
</div>
|
|
116
113
|
</div>
|
|
117
|
-
|
|
118
|
-
{{{ if showSelect }}}
|
|
119
|
-
<div class="position-absolute top-0 end-0 w-auto p-0">
|
|
120
|
-
<i component="topic/select" class="fa fa-square-o fs-5 text-muted pointer"></i>
|
|
121
|
-
</div>
|
|
122
|
-
{{{ end }}}
|
|
123
114
|
</div>
|
|
124
|
-
|
|
115
|
+
{{{ if showSelect }}}
|
|
116
|
+
<div class="checkbox position-absolute top-0 end-0 mt-3 m-0 d-flex d-lg-none" style="max-width:max-content">
|
|
117
|
+
<i component="topic/select" class="fa fa-square-o text-muted pointer p-1"></i>
|
|
118
|
+
</div>
|
|
119
|
+
{{{ end }}}
|
|
125
120
|
</li>
|
|
126
121
|
{{{end}}}
|
|
127
122
|
</ul>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<div class="placeholder-wave w-100 d-flex gap-2">
|
|
2
|
+
<button class="btn btn-light btn-sm border placeholder col-3"></button>
|
|
3
|
+
<button class="btn btn-light btn-sm border placeholder col-4"></button>
|
|
4
|
+
<button class="btn btn-light btn-sm border placeholder col-3"></button>
|
|
5
|
+
</div>
|