nodebb-theme-harmony 0.0.10 → 0.0.12
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/library.js +1 -0
- package/package.json +1 -1
- package/public/harmony.js +10 -1
- package/scss/account.scss +0 -3
- package/scss/common.scss +9 -0
- package/scss/modules/bottom-sheet.scss +1 -1
- package/scss/modules/topic-navigator.scss +0 -6
- package/scss/sidebar.scss +19 -25
- package/scss/skins.scss +8 -1
- package/templates/account/blocks.tpl +2 -2
- package/templates/account/categories.tpl +27 -21
- package/templates/account/consent.tpl +10 -64
- package/templates/account/edit/password.tpl +29 -24
- package/templates/account/edit/username.tpl +25 -20
- package/templates/account/edit.tpl +48 -58
- package/templates/account/followers.tpl +2 -3
- package/templates/account/following.tpl +2 -3
- package/templates/account/groups.tpl +2 -3
- package/templates/account/info.tpl +4 -5
- package/templates/account/posts.tpl +4 -4
- package/templates/account/profile.tpl +9 -9
- package/templates/account/sessions.tpl +2 -3
- package/templates/account/settings.tpl +119 -136
- package/templates/account/theme.tpl +7 -4
- package/templates/account/topics.tpl +17 -16
- package/templates/account/uploads.tpl +4 -8
- package/templates/groups/details.tpl +3 -20
- package/templates/groups/list.tpl +10 -9
- package/templates/header.tpl +3 -21
- package/templates/login.tpl +1 -1
- package/templates/notifications.tpl +4 -4
- package/templates/partials/account/header.tpl +58 -47
- package/templates/partials/account/sidebar-left.tpl +5 -5
- package/templates/partials/buttons/newTopic.tpl +1 -3
- package/templates/partials/categories/item.tpl +1 -8
- package/templates/partials/category/sort.tpl +3 -3
- package/templates/partials/category/subcategory.tpl +1 -1
- package/templates/partials/category/tools.tpl +3 -3
- package/templates/partials/category/watch.tpl +7 -7
- package/templates/partials/category-filter-content.tpl +4 -4
- package/templates/partials/category-selector-content.tpl +10 -9
- package/templates/partials/chats/message-window.tpl +10 -8
- package/templates/partials/groups/sidebar-left.tpl +1 -1
- package/templates/partials/header/brand.tpl +19 -0
- package/templates/partials/notifications_list.tpl +5 -5
- package/templates/partials/post_bar.tpl +4 -4
- package/templates/partials/sidebar/drafts.tpl +16 -5
- package/templates/partials/sidebar/logged-in-menu.tpl +23 -0
- package/templates/partials/sidebar/user-menu.tpl +1 -1
- package/templates/partials/sidebar-left.tpl +2 -2
- package/templates/partials/sidebar-right.tpl +2 -24
- package/templates/partials/tags_list.tpl +3 -2
- package/templates/partials/topic/navigator.tpl +2 -2
- package/templates/partials/topic/post-menu.tpl +2 -4
- package/templates/partials/topic/post.tpl +13 -13
- package/templates/partials/topic/reply-button.tpl +3 -3
- package/templates/partials/topic/sort.tpl +3 -3
- package/templates/partials/topic/tools.tpl +3 -3
- package/templates/partials/topic/watch.tpl +17 -16
- package/templates/partials/topic-filters.tpl +3 -3
- package/templates/partials/topic-list-bar.tpl +7 -11
- package/templates/partials/topic-terms.tpl +3 -3
- package/templates/partials/topics_list.tpl +4 -4
- package/templates/partials/users/item.tpl +27 -25
- package/templates/partials/users_list_menu.tpl +1 -1
- package/templates/tags.tpl +12 -8
- package/templates/topic.tpl +1 -3
- package/templates/users.tpl +4 -5
- package/templates/chat.tpl +0 -41
|
@@ -10,19 +10,30 @@
|
|
|
10
10
|
</a>
|
|
11
11
|
<ul class="drafts-dropdown dropdown-menu p-1 shadow">
|
|
12
12
|
<li>
|
|
13
|
-
<ul component="drafts/list" class="draft-list list-unstyled d-flex flex-column gap-1">
|
|
13
|
+
<ul component="drafts/list" class="draft-list list-unstyled d-flex flex-column gap-1 pe-1">
|
|
14
14
|
<li class="no-drafts text-center p-2">[[modules:composer.no-drafts]]</li>
|
|
15
15
|
|
|
16
16
|
{{{ each drafts }}}
|
|
17
17
|
{{{ if !@first}}}
|
|
18
18
|
<hr class="m-0"/>
|
|
19
19
|
{{{ end }}}
|
|
20
|
-
<li class="
|
|
21
|
-
<div class="d-flex gap-1 justify-content-between">
|
|
22
|
-
<div class="d-flex flex-column" component="drafts/open" data-save-id="{./save_id}">
|
|
20
|
+
<li class="" data-save-id="{./save_id}">
|
|
21
|
+
<div class="d-flex gap-1 justify-content-between ff-base">
|
|
22
|
+
<div class="dropdown-item rounded-1 p-2 d-flex flex-column gap-2 pointer" component="drafts/open" data-save-id="{./save_id}">
|
|
23
|
+
{{{ if (./action == "topics.post") }}}
|
|
23
24
|
{{{ if ./title}}}
|
|
24
|
-
<div class="text text-xs fw-semibold">{./title}</div>
|
|
25
|
+
<div class="text text-xs fw-semibold line-clamp-2">{./title}</div>
|
|
25
26
|
{{{ end }}}
|
|
27
|
+
{{{ end }}}
|
|
28
|
+
|
|
29
|
+
{{{ if (./action == "posts.reply") }}}
|
|
30
|
+
<div class="text text-xs fw-semibold line-clamp-2">[[topic:composer.replying_to, "{./title}"]]</div>
|
|
31
|
+
{{{ end }}}
|
|
32
|
+
|
|
33
|
+
{{{ if (./action == "posts.edit") }}}
|
|
34
|
+
<div class="text text-xs fw-semibold line-clamp-2">[[topic:composer.editing]]</div>
|
|
35
|
+
{{{ end }}}
|
|
36
|
+
|
|
26
37
|
{{{ if ./text }}}
|
|
27
38
|
<div class="text text-sm line-clamp-3">{./text}</div>
|
|
28
39
|
{{{ end }}}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<li id="user_label" class="nav-item mx-2 dropstart usermenu" title="[[global:header.profile]]">
|
|
2
|
+
<!-- IMPORT partials/sidebar/user-menu.tpl -->
|
|
3
|
+
</li>
|
|
4
|
+
|
|
5
|
+
{{{ if config.searchEnabled }}}
|
|
6
|
+
<li component="sidebar/search" class="nav-item mx-2 search dropstart position-relative">
|
|
7
|
+
<!-- IMPORT partials/sidebar/search.tpl -->
|
|
8
|
+
</li>
|
|
9
|
+
{{{ end }}}
|
|
10
|
+
|
|
11
|
+
<li component="notifications" class="nav-item mx-2 notifications dropstart">
|
|
12
|
+
<!-- IMPORT partials/sidebar/notifications.tpl -->
|
|
13
|
+
</li>
|
|
14
|
+
|
|
15
|
+
{{{ if canChat }}}
|
|
16
|
+
<li class="nav-item mx-2 chats dropstart">
|
|
17
|
+
<!-- IMPORT partials/sidebar/chats.tpl -->
|
|
18
|
+
</li>
|
|
19
|
+
{{{ end }}}
|
|
20
|
+
|
|
21
|
+
<li component="sidebar/drafts" class="nav-item mx-2 drafts dropstart">
|
|
22
|
+
<!-- IMPORT partials/sidebar/drafts.tpl -->
|
|
23
|
+
</li>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<label class="nav-link nav-btn text-truncate d-flex gap-2 align-items-center" data-bs-toggle="dropdown" id="user_dropdown" role="button">
|
|
1
|
+
<label class="nav-link nav-btn text-truncate d-flex gap-2 align-items-center" data-bs-toggle="dropdown" id="user_dropdown" role="button" component="header/avatar">
|
|
2
2
|
{buildAvatar(user, "20px", true)}
|
|
3
3
|
<span id="user-header-name" class="nav-text small visible-open fw-semibold">{user.username}</span>
|
|
4
4
|
</label>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<nav class="text-dark bg-light sidebar sidebar-left vh-100 d-none d-md-flex flex-column justify-content-between sticky-top ff-secondary">
|
|
1
|
+
<nav class="text-dark bg-light sidebar sidebar-left start-0 border-end vh-100 d-none d-md-flex flex-column justify-content-between sticky-top ff-secondary">
|
|
2
2
|
<ul id="main-nav" class="list-unstyled d-flex flex-column w-100 gap-2 mt-2">
|
|
3
3
|
{{{ each navigation }}}
|
|
4
4
|
<!-- IF function.displayMenuItem, @index -->
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
</ul>
|
|
30
30
|
<div class="w-100">
|
|
31
31
|
<!-- IMPORT partials/skin-switcher.tpl -->
|
|
32
|
-
<div class="sidebar-toggle m-2">
|
|
32
|
+
<div class="sidebar-toggle m-2 d-none d-lg-block">
|
|
33
33
|
<a href="#" role="button" component="sidebar/toggle" class="nav-btn d-flex gap-2 align-items-center p-2 pointer nav-link w-100 text-nowrap">
|
|
34
34
|
<i class="fa fa-fw fa-angles-right"></i>
|
|
35
35
|
<i class="fa fa-fw fa-angles-left"></i>
|
|
@@ -1,29 +1,7 @@
|
|
|
1
|
-
<nav class="text-dark bg-light sidebar sidebar-right vh-100 d-none d-md-flex flex-column sticky-top ff-secondary">
|
|
1
|
+
<nav class="text-dark bg-light sidebar sidebar-right end-0 border-start vh-100 d-none d-md-flex flex-column sticky-top ff-secondary">
|
|
2
2
|
{{{ if config.loggedIn }}}
|
|
3
3
|
<ul id="logged-in-menu" class="list-unstyled d-flex flex-column w-100 gap-2 mt-2">
|
|
4
|
-
|
|
5
|
-
<!-- IMPORT partials/sidebar/user-menu.tpl -->
|
|
6
|
-
</li>
|
|
7
|
-
|
|
8
|
-
{{{ if config.searchEnabled }}}
|
|
9
|
-
<li component="sidebar/search" class="nav-item mx-2 search dropstart position-relative">
|
|
10
|
-
<!-- IMPORT partials/sidebar/search.tpl -->
|
|
11
|
-
</li>
|
|
12
|
-
{{{ end }}}
|
|
13
|
-
|
|
14
|
-
<li component="notifications" class="nav-item mx-2 notifications dropstart">
|
|
15
|
-
<!-- IMPORT partials/sidebar/notifications.tpl -->
|
|
16
|
-
</li>
|
|
17
|
-
|
|
18
|
-
{{{ if canChat }}}
|
|
19
|
-
<li class="nav-item mx-2 chats dropstart">
|
|
20
|
-
<!-- IMPORT partials/sidebar/chats.tpl -->
|
|
21
|
-
</li>
|
|
22
|
-
{{{ end }}}
|
|
23
|
-
|
|
24
|
-
<li component="sidebar/drafts" class="nav-item mx-2 drafts dropstart">
|
|
25
|
-
<!-- IMPORT partials/sidebar/drafts.tpl -->
|
|
26
|
-
</li>
|
|
4
|
+
<!-- IMPORT partials/sidebar/logged-in-menu.tpl -->
|
|
27
5
|
</ul>
|
|
28
6
|
{{{ else }}}
|
|
29
7
|
<ul id="logged-out-menu" class="list-unstyled d-flex flex-column w-100 gap-2 mt-2">
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
{{{each tags}}}
|
|
2
|
-
<h5 class="
|
|
3
|
-
<a href="{config.relative_path}/tags/{tags.valueEncoded}" data-tag="{tags.valueEscaped}"><span class="tag-item text-muted text-uppercase text-nowrap tag-class-{tags.class} me-2" data-tag="{tags.valueEscaped}">{tags.valueEscaped}</span
|
|
2
|
+
<h5 class="tag-container fw-bold d-flex">
|
|
3
|
+
<a class="text-truncate" href="{config.relative_path}/tags/{tags.valueEncoded}" data-tag="{tags.valueEscaped}"><span class="tag-item text-muted text-uppercase text-nowrap tag-class-{tags.class} me-2" data-tag="{tags.valueEscaped}">{tags.valueEscaped}</span></a>
|
|
4
|
+
<span class="tag-topic-count text-primary text-nowrap human-readable-number" title="{tags.score}">{tags.score}</span>
|
|
4
5
|
</h5>
|
|
5
6
|
{{{end}}}
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
<a href="#" class="nav-link border-0 p-2" data-action="scrollUp"><i class="fa fa-fw fa-angle-up"></i></a>
|
|
4
4
|
<div class="track d-inline-block flex-grow-1 position-relative">
|
|
5
5
|
<div class="unread d-inline-block position-absolute">
|
|
6
|
-
<div class="meta small position-absolute top-50 translate-middle-y text-nowrap fw-semibold">
|
|
6
|
+
<div class="visible-open meta small position-absolute top-50 translate-middle-y text-nowrap fw-semibold">
|
|
7
7
|
<a href="{url}"></a>
|
|
8
8
|
</div>
|
|
9
9
|
</div>
|
|
10
10
|
<div class="handle d-inline-block position-absolute">
|
|
11
11
|
<div class="knob d-inline-block rounded-circle translate-middle"></div>
|
|
12
|
-
<div class="meta small position-absolute text-nowrap fw-semibold">
|
|
12
|
+
<div class="visible-open meta small position-absolute text-nowrap fw-semibold">
|
|
13
13
|
<p class="index text-body mb-0"></p>
|
|
14
14
|
<p class="timestamp text-secondary timeago mb-0"></p>
|
|
15
15
|
</div>
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
<span component="post/tools" class="dropdown moderator-tools bottom-sheet d-inline-block<!-- IF !posts.display_post_menu -->hidden<!-- ENDIF !posts.display_post_menu -->">
|
|
4
|
-
<a class="btn btn-link dropdown-toggle d-block" href="#" data-bs-toggle="dropdown"><i class="fa fa-fw fa-ellipsis-v"></i></a>
|
|
1
|
+
<span component="post/tools" class="dropdown moderator-tools bottom-sheet d-inline-block {{{ if !./display_post_menu }}}hidden{{{ end }}}">
|
|
2
|
+
<a class="btn-ghost-sm dropdown-toggle d-block" href="#" data-bs-toggle="dropdown"><i class="fa fa-fw fa-ellipsis-v text-primary"></i></a>
|
|
5
3
|
<ul class="dropdown-menu dropdown-menu-end" role="menu">
|
|
6
4
|
<li class="dropdown-item placeholder-wave">
|
|
7
5
|
<div class="placeholder" style="width: 20px;"> </div>
|
|
@@ -93,26 +93,26 @@
|
|
|
93
93
|
|
|
94
94
|
<div component="post/replies/container" class="mt-2 col-11 border rounded-1 p-3"></div>
|
|
95
95
|
|
|
96
|
-
<div component="post/actions" class="d-flex justify-content-end post-tools">
|
|
96
|
+
<div component="post/actions" class="d-flex justify-content-end gap-1 post-tools">
|
|
97
97
|
<!-- IMPORT partials/topic/reactions.tpl -->
|
|
98
|
-
<a component="post/reply" href="#" class="btn
|
|
99
|
-
<a component="post/quote" href="#" class="btn
|
|
98
|
+
<a component="post/reply" href="#" class="btn-ghost-sm user-select-none {{{ if !privileges.topics:reply }}}hidden{{{ end }}}" title="[[topic:reply]]"><i class="fa fa-reply text-primary"></i></a>
|
|
99
|
+
<a component="post/quote" href="#" class="btn-ghost-sm user-select-none {{{ if !privileges.topics:reply }}}hidden{{{ end }}}" title="[[topic:quote]]"><i class="fa fa-quote-right text-primary"></i></a>
|
|
100
100
|
|
|
101
|
-
|
|
102
|
-
<div class="d-flex votes align-items-
|
|
103
|
-
<a component="post/upvote" href="#" class="btn
|
|
104
|
-
<i class="fa fa-chevron-up"></i>
|
|
101
|
+
{{{ if !reputation:disabled }}}
|
|
102
|
+
<div class="d-flex votes align-items-stretch">
|
|
103
|
+
<a component="post/upvote" href="#" class="btn-ghost-sm {{{ if posts.upvoted }}}upvoted{{{ end }}}">
|
|
104
|
+
<i class="fa fa-chevron-up text-primary"></i>
|
|
105
105
|
</a>
|
|
106
106
|
|
|
107
|
-
<div class="d-inline-block px-3" component="post/vote-count" data-votes="{posts.votes}">{posts.votes}</div>
|
|
107
|
+
<div class="d-inline-block px-3 btn-ghost-sm" component="post/vote-count" data-votes="{posts.votes}">{posts.votes}</div>
|
|
108
108
|
|
|
109
|
-
|
|
110
|
-
<a component="post/downvote" href="#" class="btn
|
|
111
|
-
<i class="fa fa-chevron-down"></i>
|
|
109
|
+
{{{ if !downvote:disabled }}}
|
|
110
|
+
<a component="post/downvote" href="#" class="btn-ghost-sm {{{ if posts.downvoted }}}downvoted{{{ end }}}">
|
|
111
|
+
<i class="fa fa-chevron-down text-primary"></i>
|
|
112
112
|
</a>
|
|
113
|
-
|
|
113
|
+
{{{ end }}}
|
|
114
114
|
</div>
|
|
115
|
-
|
|
115
|
+
{{{ end }}}
|
|
116
116
|
|
|
117
117
|
<!-- IMPORT partials/topic/post-menu.tpl -->
|
|
118
118
|
</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<div component="topic/reply/container" class="btn-group action-bar bottom-sheet
|
|
2
|
-
<a href="{config.relative_path}/compose?tid={tid}&title={title}" class="d-flex align-items-center btn btn-primary px-3
|
|
3
|
-
<button type="button" class="btn btn-sm btn-primary dropdown-toggle
|
|
1
|
+
<div component="topic/reply/container" class="btn-group action-bar bottom-sheet {{{ if !privileges.topics:reply }}}hidden{{{ end }}}">
|
|
2
|
+
<a href="{config.relative_path}/compose?tid={tid}&title={title}" 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 visible-xs-inline"></i><span class="visible-md-inline visible-lg-inline"> [[topic:reply]]</span></a>
|
|
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
6
|
<ul class="dropdown-menu dropdown-menu-end" role="menu">
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<div class="btn-group bottom-sheet" component="thread/sort">
|
|
2
|
-
<button class="btn
|
|
2
|
+
<button class="btn-ghost-sm d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
3
3
|
<span class="d-flex gap-2 align-items-center">
|
|
4
|
-
<i class="fa fa-fw fa-arrow-down-wide-short
|
|
5
|
-
<span class="d-none d-md-inline
|
|
4
|
+
<i class="fa fa-fw fa-arrow-down-wide-short text-primary"></i>
|
|
5
|
+
<span class="d-none d-md-inline fw-semibold">[[topic:sort_by]]</span>
|
|
6
6
|
</span>
|
|
7
7
|
</button>
|
|
8
8
|
<ul class="dropdown-menu">
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{{{ if privileges.view_thread_tools }}}
|
|
2
2
|
<div class="btn-group thread-tools bottom-sheet">
|
|
3
|
-
<button class="btn
|
|
4
|
-
<i class="fa fa-fw fa-gear
|
|
5
|
-
<span class="d-none d-md-inline
|
|
3
|
+
<button class="btn-ghost-sm d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
4
|
+
<i class="fa fa-fw fa-gear link-primary"></i>
|
|
5
|
+
<span class="d-none d-md-inline fw-semibold">[[topic:thread_tools.title]]</span>
|
|
6
6
|
</button>
|
|
7
7
|
<ul class="dropdown-menu">
|
|
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>
|
|
@@ -1,26 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
{{{ if config.loggedIn }}}
|
|
2
2
|
<div class="btn-group topic-watch-dropdown bottom-sheet" component="topic/watch">
|
|
3
|
-
<button class="btn
|
|
4
|
-
<span component="topic/following/menu" class="d-flex gap-2 align-items-center
|
|
5
|
-
<i class="fa fa-fw fa-bell-o
|
|
6
|
-
<span class="d-none d-md-inline
|
|
3
|
+
<button class="btn-ghost-sm d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
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>
|
|
6
|
+
<span class="d-none d-md-inline fw-semibold">[[topic:watching]]</span>
|
|
7
7
|
</span>
|
|
8
8
|
|
|
9
|
-
<span component="topic/not-following/menu" class="d-flex gap-2 align-items-center
|
|
10
|
-
<i class="fa fa-fw fa-bell-slash-o
|
|
11
|
-
<span class="d-none d-md-inline
|
|
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>
|
|
11
|
+
<span class="d-none d-md-inline fw-semibold">[[topic:not-watching]]</span>
|
|
12
12
|
</span>
|
|
13
13
|
|
|
14
|
-
<span component="topic/ignoring/menu" class="d-flex gap-2 align-items-center
|
|
15
|
-
<i class="fa fa-fw fa-eye-slash
|
|
16
|
-
<span class="d-none d-md-inline
|
|
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>
|
|
16
|
+
<span class="d-none d-md-inline fw-semibold">[[topic:ignoring]]</span>
|
|
17
17
|
</span>
|
|
18
|
-
|
|
19
18
|
</button>
|
|
20
19
|
<ul class="dropdown-menu">
|
|
21
|
-
<li><a class="dropdown-item" href="#" component="topic/following"><i component="topic/following/check" class="fa fa-fw
|
|
22
|
-
|
|
23
|
-
<li><a class="dropdown-item" href="#" component="topic/
|
|
20
|
+
<li><a class="dropdown-item" href="#" component="topic/following"><i component="topic/following/check" class="fa fa-fw {{{ if isFollowing }}}fa-check{{{ end }}}"></i><i class="fa fa-fw fa-bell-o"></i> [[topic:watching]]<p class="help-text text-muted"><small>[[topic:watching.description]]</small></p></a></li>
|
|
21
|
+
|
|
22
|
+
<li><a class="dropdown-item" href="#" component="topic/not-following"><i component="topic/not-following/check" class="fa fa-fw {{{ if isNotFollowing }}}fa-check{{{ end }}}"></i><i class="fa fa-fw fa-bell-slash-o"></i> [[topic:not-watching]]<p class="help-text text-muted"><small>[[topic:not-watching.description]]</small></p></a></li>
|
|
23
|
+
|
|
24
|
+
<li><a class="dropdown-item" href="#" component="topic/ignoring"><i component="topic/ignoring/check" class="fa fa-fw {{{ if isIgnoring }}}fa-check{{{ end }}}"></i><i class="fa fa-fw fa-eye-slash"></i> [[topic:ignoring]]<p class="help-text text-muted"><small>[[topic:ignoring.description]]</small></p></a></li>
|
|
24
25
|
</ul>
|
|
25
26
|
</div>
|
|
26
|
-
|
|
27
|
+
{{{ end }}}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<div class="btn-group bottom-sheet{{{ if !filters.length }}} hidden{{{ end }}}">
|
|
2
|
-
<button type="button" class="btn
|
|
3
|
-
<i class="fa fa-fw fa-filter
|
|
4
|
-
<span class="visible-md-inline visible-lg-inline
|
|
2
|
+
<button type="button" class="btn-ghost-sm d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown">
|
|
3
|
+
<i class="fa fa-fw fa-filter link-primary"></i>
|
|
4
|
+
<span class="visible-md-inline visible-lg-inline fw-semibold">{selectedFilter.name}</span>
|
|
5
5
|
</button>
|
|
6
6
|
<ul class="dropdown-menu" role="menu">
|
|
7
7
|
{{{each filters}}}
|
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
<!-- IMPORT partials/category/tools.tpl -->
|
|
24
24
|
|
|
25
25
|
{{{ if (!feeds:disableRSS && rssFeedUrl) }}}
|
|
26
|
-
<a class="btn
|
|
26
|
+
<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>
|
|
27
27
|
{{{ end }}}
|
|
28
28
|
|
|
29
|
-
<a href="{config.relative_path}{{{ if template.category }}}{url}{{{ else }}}/{selectedFilter.url}{querystring}{{{ end }}}" class="d-inline-block">
|
|
29
|
+
<a href="{config.relative_path}{{{ if template.category }}}{url}{{{ else }}}/{selectedFilter.url}{querystring}{{{ end }}}" class="d-inline-block text-decoration-none">
|
|
30
30
|
<div class="alert alert-warning h-100 m-0 px-2 py-1 d-flex align-items-center hide" id="new-topics-alert"></div>
|
|
31
31
|
</a>
|
|
32
32
|
</ul>
|
|
@@ -34,21 +34,17 @@
|
|
|
34
34
|
<div class="d-flex gap-1 align-items-stretch">
|
|
35
35
|
{{{ if template.category }}}
|
|
36
36
|
{{{ if privileges.topics:create }}}
|
|
37
|
-
<a href="{config.relative_path}/compose?cid={cid}" component="category/post" id="new_topic" class="btn btn-primary text-nowrap" data-ajaxify="false" role="button">[[category:new_topic_button]]</a>
|
|
38
|
-
{{{ else }}}
|
|
39
|
-
{{{ if !loggedIn }}}
|
|
40
|
-
<a component="category/post/guest" href="{config.relative_path}/login" class="btn btn-primary">[[category:guest-login-post]]</a>
|
|
41
|
-
{{{ end }}}
|
|
37
|
+
<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>
|
|
42
38
|
{{{ end }}}
|
|
43
39
|
{{{ else }}}
|
|
44
40
|
{{{ if canPost }}}
|
|
45
41
|
<!-- IMPORT partials/buttons/newTopic.tpl -->
|
|
46
|
-
{{{ else }}}
|
|
47
|
-
{{{ if !loggedIn }}}
|
|
48
|
-
<a component="category/post/guest" href="{config.relative_path}/login" class="btn btn-primary">[[category:guest-login-post]]</a>
|
|
49
|
-
{{{ end }}}
|
|
50
42
|
{{{ end }}}
|
|
51
43
|
{{{ end }}}
|
|
44
|
+
<!-- only show login button if not logged in and doesn't have any posting privilege -->
|
|
45
|
+
{{{ if (!loggedIn && (!privileges.topics:create && !canPost))}}}
|
|
46
|
+
<a component="category/post/guest" href="{config.relative_path}/login" class="btn btn-primary">[[category:guest-login-post]]</a>
|
|
47
|
+
{{{ end }}}
|
|
52
48
|
</div>
|
|
53
49
|
</div>
|
|
54
50
|
</nav>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<div class="btn-group bottom-sheet {{{ if !terms.length }}}hidden{{{ end }}}">
|
|
2
|
-
<button type="button" class="btn
|
|
3
|
-
<i class="fa fa-fw fa-clock
|
|
4
|
-
<span class="visible-md-inline visible-lg-inline
|
|
2
|
+
<button type="button" class="btn-ghost-sm d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown">
|
|
3
|
+
<i class="fa fa-fw fa-clock text-primary"></i>
|
|
4
|
+
<span class="visible-md-inline visible-lg-inline fw-semibold">{selectedTerm.name}</span>
|
|
5
5
|
</button>
|
|
6
6
|
<ul class="dropdown-menu" role="menu">
|
|
7
7
|
{{{each terms}}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<ul component="category" class="list-unstyled topic-list pt-
|
|
1
|
+
<ul component="category" class="list-unstyled topic-list pt-4 overflow-auto position-relative" itemscope itemtype="http://www.schema.org/ItemList" data-nextstart="{nextStart}" data-set="{set}">
|
|
2
2
|
|
|
3
3
|
{{{ each topics }}}
|
|
4
4
|
<li component="category/topic" class="category-item position-relative {function.generateTopicClass}" <!-- IMPORT partials/data/category.tpl -->>
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
{{{ end }}}
|
|
57
57
|
|
|
58
58
|
{{{ if ./tags.length }}}
|
|
59
|
-
<span class="lh-1 tag-list hidden-xs d-flex gap-2 me-2 mb-1">
|
|
59
|
+
<span class="lh-1 tag-list hidden-xs d-flex flex-wrap gap-2 me-2 mb-1 ">
|
|
60
60
|
{{{ each ./tags }}}
|
|
61
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
62
|
{{{ end }}}
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
</div>
|
|
71
71
|
</div>
|
|
72
72
|
|
|
73
|
-
<div class="col-md-2 d-none d-
|
|
73
|
+
<div class="col-md-2 d-none d-lg-flex stats text-muted gap-2 px-0">
|
|
74
74
|
{{{ if !reputation:disabled }}}
|
|
75
75
|
<div class="stats-votes flex-1">
|
|
76
76
|
<div class="align-items-center card card-header px-0 py-2 border-0 rounded-1">
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
</div>
|
|
94
94
|
</div>
|
|
95
95
|
|
|
96
|
-
<div class="col-md-3 col-sm-3 teaser
|
|
96
|
+
<div class="col-md-3 col-sm-3 teaser d-none d-md-block overflow-hidden" component="topic/teaser">
|
|
97
97
|
<div class="lastpost background-link-container border-start border-2 h-100" style="border-color: {./category.bgColor}!important;">
|
|
98
98
|
<a class="background-link" href="{config.relative_path}/topic/{./slug}/{./teaser.index}"></a>
|
|
99
99
|
{{{ if ./unreplied }}}
|
|
@@ -1,37 +1,39 @@
|
|
|
1
1
|
<a href="{config.relative_path}/user/{./userslug}" class="btn-ghost align-items-start justify-content-start">
|
|
2
2
|
{buildAvatar(@value, "48px", true, "flex-shrink-0")}
|
|
3
|
-
<div class="d-flex flex-column text-truncate
|
|
3
|
+
<div class="d-flex flex-column text-truncate">
|
|
4
4
|
<div class="fw-semibold text-truncate" title="{./displayname}">{./displayname}</div>
|
|
5
5
|
<div class="text-xs text-muted text-truncate">@{./username}</div>
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
<
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
<div class="align-self-start">
|
|
8
|
+
{{{ if section_online }}}
|
|
9
|
+
<div class="card card-header border rounded-1 py-0 px-1 text-xs">
|
|
10
|
+
<span class="timeago" title="{./lastonlineISO}"></span>
|
|
11
|
+
</div>
|
|
12
|
+
{{{ end }}}
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
{{{ if section_joindate }}}
|
|
15
|
+
<div class="card card-header border rounded-1 py-0 px-1 text-xs">
|
|
16
|
+
<span class="timeago" title="{./joindateISO}"></span>
|
|
17
|
+
</div>
|
|
18
|
+
{{{ end }}}
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
{{{ if section_sort-reputation }}}
|
|
21
|
+
<div class="card card-header border rounded-1 py-0 px-1 text-xs">
|
|
22
|
+
<span class="formatted-number">{./reputation}</span>
|
|
23
|
+
</div>
|
|
24
|
+
{{{ end }}}
|
|
24
25
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
{{{ if section_sort-posts }}}
|
|
27
|
+
<div class="card card-header border rounded-1 py-0 px-1 text-xs">
|
|
28
|
+
<span class="formatted-number">{./postcount}</span>
|
|
29
|
+
</div>
|
|
30
|
+
{{{ end }}}
|
|
30
31
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
{{{ if section_flagged }}}
|
|
33
|
+
<div class="card card-header border rounded-1 py-0 px-1 text-xs">
|
|
34
|
+
<span class="formatted-number">{./flags}</span>
|
|
35
|
+
</div>
|
|
36
|
+
{{{ end }}}
|
|
34
37
|
</div>
|
|
35
|
-
{{{ end }}}
|
|
36
38
|
</div>
|
|
37
39
|
</a>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<div component="user/list/menu" class="text-sm d-flex align-items-center gap-2">
|
|
1
|
+
<div component="user/list/menu" class="text-sm d-flex flex-wrap align-items-center gap-2">
|
|
2
2
|
<a class="btn-ghost fw-semibold" href="{config.relative_path}/users?section=online">[[global:online]]</a>
|
|
3
3
|
|
|
4
4
|
<a class="btn-ghost fw-semibold" href="{config.relative_path}/users?section=sort-posts">[[users:top_posters]]</a>
|
package/templates/tags.tpl
CHANGED
|
@@ -8,12 +8,16 @@
|
|
|
8
8
|
{{{ if displayTagSearch }}}
|
|
9
9
|
{{{ if tags.length }}}
|
|
10
10
|
<div class="row justify-content-end mb-3">
|
|
11
|
-
<div class="col-lg-
|
|
12
|
-
<div class="
|
|
13
|
-
<
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
<div class="col-lg-6">
|
|
12
|
+
<div class="d-flex justify-content-end">
|
|
13
|
+
<div>
|
|
14
|
+
<div class="input-group">
|
|
15
|
+
<input type="text" class="form-control form-control-sm" placeholder="[[global:search]]" id="tag-search">
|
|
16
|
+
<button class="btn btn-primary btn-sm" type="button">
|
|
17
|
+
<i class="fa fa-search"></i>
|
|
18
|
+
</button>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
17
21
|
</div>
|
|
18
22
|
</div>
|
|
19
23
|
</div>
|
|
@@ -24,8 +28,8 @@
|
|
|
24
28
|
<div class="alert alert-warning">[[tags:no_tags]]</div>
|
|
25
29
|
{{{ end }}}
|
|
26
30
|
|
|
27
|
-
<div class="category
|
|
28
|
-
<div class="
|
|
31
|
+
<div class="category">
|
|
32
|
+
<div class="tag-list row row-cols-2 row-cols-lg-3 row-cols-xl-4 row-cols-xxl-5 gx-3 gy-2" data-nextstart="{nextStart}">
|
|
29
33
|
<!-- IMPORT partials/tags_list.tpl -->
|
|
30
34
|
</div>
|
|
31
35
|
</div>
|
package/templates/topic.tpl
CHANGED
|
@@ -6,9 +6,7 @@
|
|
|
6
6
|
</div>
|
|
7
7
|
{{{ end }}}
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
<h2 component="post/header" class="fs-2 mb-1 {{{ if config.centerHeaderElements }}}text-center{{{ end }}}" itemprop="name">
|
|
9
|
+
<h2 component="post/header" class="fs-2 mb-0 {{{ if config.centerHeaderElements }}}text-center{{{ end }}}" itemprop="name">
|
|
12
10
|
<span class="topic-title" component="topic/title">{title}</span>
|
|
13
11
|
</h2>
|
|
14
12
|
|
package/templates/users.tpl
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
<!-- IMPORT partials/breadcrumbs.tpl -->
|
|
2
1
|
<div data-widget-area="header">
|
|
3
2
|
{{{each widgets.header}}}
|
|
4
3
|
{{widgets.header.html}}
|
|
@@ -6,14 +5,14 @@
|
|
|
6
5
|
</div>
|
|
7
6
|
<div class="users">
|
|
8
7
|
<h2 class="fw-semibold">[[global:users]]</h2>
|
|
9
|
-
<div class="
|
|
10
|
-
<div class="
|
|
8
|
+
<div class="d-flex flex-wrap justify-content-between">
|
|
9
|
+
<div class="mb-2 mb-md-0">
|
|
11
10
|
<!-- IMPORT partials/users_list_menu.tpl -->
|
|
12
11
|
</div>
|
|
13
|
-
<div class="
|
|
12
|
+
<div class="">
|
|
14
13
|
<div class="d-flex justify-content-end gap-2">
|
|
15
14
|
{{{ if showInviteButton }}}
|
|
16
|
-
<button component="user/invite" class="btn btn-
|
|
15
|
+
<button component="user/invite" class="btn btn-primary btn-sm"><i class="fa fa-user-plus"></i> [[users:invite]]</button>
|
|
17
16
|
{{{ end }}}
|
|
18
17
|
{{{ if displayUserSearch }}}
|
|
19
18
|
<div class="search">
|
package/templates/chat.tpl
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
<div id="chat-modal" class="chat-modal d-flex flex-nowrap modal hide" tabindex="-1" role="dialog" aria-labelledby="Chat" aria-hidden="true" data-backdrop="none">
|
|
2
|
-
<div class="modal-dialog">
|
|
3
|
-
<div class="modal-content">
|
|
4
|
-
<div class="modal-header d-flex">
|
|
5
|
-
<div class="fs-5 flex-grow-1" component="chat/room/name"><!-- IF roomName -->{roomName}<!-- ELSE -->{usernames}<!-- ENDIF roomName --></div>
|
|
6
|
-
<button type="button" class="btn btn-outline d-none d-md-flex" data-action="maximize">
|
|
7
|
-
<span aria-hidden="true"><i class="fa fa-fw fa-expand"></i></span>
|
|
8
|
-
<span class="sr-only">[[modules:chat.maximize]]</span>
|
|
9
|
-
</button>
|
|
10
|
-
<button type="button" class="btn btn-outline d-none d-md-flex" data-action="minimize">
|
|
11
|
-
<span aria-hidden="true"><i class="fa fa-fw fa-minus"></i></span>
|
|
12
|
-
<span class="sr-only">[[modules:chat.minimize]]</span>
|
|
13
|
-
</button>
|
|
14
|
-
<!-- IMPORT partials/chats/options.tpl -->
|
|
15
|
-
|
|
16
|
-
<button id="chat-close-btn" type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
17
|
-
</div>
|
|
18
|
-
|
|
19
|
-
<div class="modal-body d-flex flex-column" style="height: 500px;">
|
|
20
|
-
<div class="position-relative">
|
|
21
|
-
<div component="chat/messages/scroll-up-alert" class="position-absolute scroll-up-alert alert alert-info hidden w-100" role="button" style="z-index: 1;">[[modules:chat.scroll-up-alert]]</div>
|
|
22
|
-
</div>
|
|
23
|
-
<ul class="chat-content p-0 m-0 list-unstyled d-flex flex-column overflow-auto flex-grow-1" component="chat/messages">
|
|
24
|
-
<!-- IMPORT partials/chats/messages.tpl -->
|
|
25
|
-
</ul>
|
|
26
|
-
|
|
27
|
-
<div component="chat/composer" class="d-flex">
|
|
28
|
-
<div class="flex-grow-1 position-relative">
|
|
29
|
-
<textarea component="chat/input" placeholder="[[modules:chat.placeholder]]" class="form-control chat-input mousetrap" rows="2"></textarea>
|
|
30
|
-
<span component="chat/message/remaining" class="text-muted position-absolute me-1 mb-1" style="right: 0px; bottom:0px;">{maximumChatMessageLength}</span>
|
|
31
|
-
</div>
|
|
32
|
-
<button class="btn btn-primary" type="button" data-action="send"><i class="fa fa-fw fa-2x fa-paper-plane"></i></button>
|
|
33
|
-
<form component="chat/upload" method="post" enctype="multipart/form-data">
|
|
34
|
-
<input type="file" name="files[]" multiple class="hidden"/>
|
|
35
|
-
</form>
|
|
36
|
-
</div>
|
|
37
|
-
</div>
|
|
38
|
-
<div class="imagedrop"><div>[[topic:composer.drag_and_drop_images]]</div></div>
|
|
39
|
-
</div>
|
|
40
|
-
</div>
|
|
41
|
-
</div>
|