nodebb-theme-harmony 1.0.0 → 1.0.1
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 +36 -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 +74 -68
- 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
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<button type="button" class="btn-ghost-sm dropdown-toggle" data-bs-toggle="dropdown">
|
|
2
|
+
{{{ if selectedUser }}}
|
|
3
|
+
<span class="fw-semibold">{buildAvatar(selectedUser, "20px", true, "not-responsive")} {selectedUser.username}</span>
|
|
4
|
+
{{{ else }}}
|
|
5
|
+
<span class="fw-semibold">[[users:all-users]]</span>
|
|
6
|
+
{{{ end }}} <span class="caret"></span>
|
|
7
|
+
</button>
|
|
8
|
+
<ul class="dropdown-menu p-1 text-sm" role="menu">
|
|
9
|
+
<li role="presentation" class="user {{{ if !selectedUser}}}selected{{{end}}}">
|
|
10
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="menu-item" href="{config.relative_path}/{allUsersUrl}">
|
|
11
|
+
<div class="flex-grow-1">[[users:all-users]]</div>
|
|
12
|
+
<i class="flex-shrink-0 fa fa-fw {{{ if !selectedUser }}}fa-check{{{ end }}}"></i>
|
|
13
|
+
</a>
|
|
14
|
+
</li>
|
|
15
|
+
{{{ each users }}}
|
|
16
|
+
<li role="presentation" class="user {{{ if ./selected}}}selected{{{end}}}">
|
|
17
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="menu-item" href="{config.relative_path}/{./url}">
|
|
18
|
+
<div class="flex-grow-1 d-inline-flex gap-1 align-items-center">{buildAvatar(@value, "24px", true, "not-responsive")} {./username}</div>
|
|
19
|
+
<i class="flex-shrink-0 fa fa-fw {{{ if ./selected }}}fa-check{{{ end }}}"></i>
|
|
20
|
+
</a>
|
|
21
|
+
</li>
|
|
22
|
+
{{{end}}}
|
|
23
|
+
</ul>
|
|
@@ -1,39 +1,37 @@
|
|
|
1
|
-
<a href="{config.relative_path}/user/{./userslug}" class="btn-ghost align-items-start justify-content-start">
|
|
1
|
+
<a href="{config.relative_path}/user/{./userslug}" class="btn-ghost align-items-start justify-content-start p-2 ff-base">
|
|
2
2
|
{buildAvatar(@value, "48px", true, "flex-shrink-0")}
|
|
3
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
|
-
|
|
12
|
-
{{{ end }}}
|
|
7
|
+
{{{ if section_online }}}
|
|
8
|
+
<div class="text-xs text-muted text-truncate">
|
|
9
|
+
<span class="timeago" title="{./lastonlineISO}"></span>
|
|
10
|
+
</div>
|
|
11
|
+
{{{ end }}}
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
{{{ if section_joindate }}}
|
|
14
|
+
<div class="text-xs text-muted text-truncate">
|
|
15
|
+
<span class="timeago" title="{./joindateISO}"></span>
|
|
16
|
+
</div>
|
|
17
|
+
{{{ end }}}
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
{{{ if section_sort-reputation }}}
|
|
20
|
+
<div class="text-xs text-muted text-truncate">
|
|
21
|
+
<span class="formatted-number">{./reputation}</span>
|
|
22
|
+
</div>
|
|
23
|
+
{{{ end }}}
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
{{{ if section_sort-posts }}}
|
|
26
|
+
<div class="text-xs text-muted text-truncate">
|
|
27
|
+
<span class="formatted-number">{./postcount}</span>
|
|
28
|
+
</div>
|
|
29
|
+
{{{ end }}}
|
|
31
30
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
</div>
|
|
36
|
-
{{{ end }}}
|
|
31
|
+
{{{ if section_flagged }}}
|
|
32
|
+
<div class="text-xs text-muted text-truncate">
|
|
33
|
+
<span class="formatted-number">{./flags}</span>
|
|
37
34
|
</div>
|
|
35
|
+
{{{ end }}}
|
|
38
36
|
</div>
|
|
39
37
|
</a>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<div id="users-container" class="users-container row row-cols-2 row-cols-
|
|
1
|
+
<div id="users-container" class="users-container row row-cols-2 row-cols-lg-3 row-cols-xl-4 g-4">
|
|
2
2
|
{{{ each users }}}
|
|
3
3
|
<!-- IMPORT partials/users/item.tpl -->
|
|
4
4
|
{{{ end }}}
|
package/templates/popular.tpl
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
{{{ if widgets.header.length }}}
|
|
1
2
|
<div data-widget-area="header">
|
|
2
3
|
{{{each widgets.header}}}
|
|
3
4
|
{{widgets.header.html}}
|
|
4
5
|
{{{end}}}
|
|
5
6
|
</div>
|
|
7
|
+
{{{ end }}}
|
|
6
8
|
<div class="popular">
|
|
7
9
|
<!-- IMPORT partials/topic-list-bar.tpl -->
|
|
8
10
|
<div class="category">
|
|
9
11
|
{{{ if !topics.length }}}
|
|
10
|
-
<div class="alert alert-
|
|
12
|
+
<div class="alert alert-info" id="category-no-topics">[[recent:no_popular_topics]]</div>
|
|
11
13
|
{{{ end }}}
|
|
12
14
|
|
|
13
15
|
<!-- IMPORT partials/topics_list.tpl -->
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
<!-- IMPORT partials/breadcrumbs.tpl -->
|
|
2
|
+
|
|
3
|
+
<div class="btn-toolbar justify-content-end">
|
|
4
|
+
<div class="me-2">
|
|
5
|
+
<!-- IMPORT partials/category/filter-dropdown-right.tpl -->
|
|
6
|
+
</div>
|
|
7
|
+
{{{ if (!singlePost && posts.length) }}}
|
|
8
|
+
<div class="btn-group bottom-sheet" component="post-queue/bulk-actions">
|
|
9
|
+
<button type="button" class="btn-ghost-sm dropdown-toggle" data-bs-toggle="dropdown" autocomplete="off" aria-haspopup="true" aria-expanded="false">
|
|
10
|
+
<i class="fa fa-clone"></i><span class="fw-semibold"> [[post-queue:bulk-actions]]</span>
|
|
11
|
+
</button>
|
|
12
|
+
<ul class="dropdown-menu p-1 text-sm dropdown-menu-end">
|
|
13
|
+
{{{ if canAccept }}}
|
|
14
|
+
<li><a class="dropdown-item rounded-1" href="#" data-action="accept-all">[[post-queue:accept-all]]</a></li>
|
|
15
|
+
<li><a class="dropdown-item rounded-1" href="#" data-action="accept-selected">[[post-queue:accept-selected]]</a></li>
|
|
16
|
+
<li class="dropdown-divider"></li>
|
|
17
|
+
<li><a class="dropdown-item rounded-1" href="#" data-action="reject-all">[[post-queue:reject-all]]</a></li>
|
|
18
|
+
<li><a class="dropdown-item rounded-1" href="#" data-action="reject-selected">[[post-queue:reject-selected]]</a></li>
|
|
19
|
+
{{{ else }}}
|
|
20
|
+
<li><a class="dropdown-item rounded-1" href="#" data-action="reject-all">[[post-queue:remove-all]]</a></li>
|
|
21
|
+
<li><a class="dropdown-item rounded-1" href="#" data-action="reject-selected">[[post-queue:remove-selected]]</a></li>
|
|
22
|
+
{{{ end }}}
|
|
23
|
+
</ul>
|
|
24
|
+
</div>
|
|
25
|
+
{{{ end }}}
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<div class="post-queue posts-list">
|
|
29
|
+
{{{ if (!posts.length && isAdmin) }}}
|
|
30
|
+
{{{ if !singlePost }}}
|
|
31
|
+
<div class="alert alert-info">
|
|
32
|
+
[[post-queue:no-queued-posts]]
|
|
33
|
+
{{{ if !enabled }}}<p>[[post-queue:enabling-help, {config.relative_path}/admin/settings/post#post-queue]]</p>{{{ end }}}
|
|
34
|
+
</div>
|
|
35
|
+
{{{ else }}}
|
|
36
|
+
<div class="alert alert-info d-flex align-items-md-center d-flex flex-column flex-md-row">
|
|
37
|
+
<p class="mb-md-0">[[post-queue:no-single-post]]</p>
|
|
38
|
+
<div class="d-grid ms-md-auto">
|
|
39
|
+
<a class="btn btn-sm btn-primary flex-shrink text-nowrap" href=".">[[post-queue:back-to-list]]</a>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
{{{ end }}}
|
|
43
|
+
{{{ end }}}
|
|
44
|
+
|
|
45
|
+
{{{ each posts }}}
|
|
46
|
+
<div class="card mb-4" data-id="{./id}" data-uid="{./user.uid}">
|
|
47
|
+
<div class="row g-0">
|
|
48
|
+
<div class="col-sm-4 col-md-3 bg-card-cap rounded-start">
|
|
49
|
+
<ul class="list-unstyled ps-0 mb-0 border-end h-100">
|
|
50
|
+
<li class="card-body border-bottom position-relative">
|
|
51
|
+
{{{ if !singlePost }}}
|
|
52
|
+
<input id="{./id}" type="checkbox" class="form-check-input" autocomplete="off" />
|
|
53
|
+
{{{ end }}}
|
|
54
|
+
<label for="{./id}" class="small stretched-link">
|
|
55
|
+
{{{ if posts.data.tid }}}[[post-queue:reply]]{{{ else }}}[[post-queue:topic]]{{{ end }}}
|
|
56
|
+
</label>
|
|
57
|
+
</li>
|
|
58
|
+
<li class="card-body border-bottom">
|
|
59
|
+
<div class="d-flex text-xs fw-semibold mb-1 align-items-center">
|
|
60
|
+
[[post-queue:user]]
|
|
61
|
+
{{{ if ((privileges.ban || privileges.mute) || privileges.admin:users) }}}
|
|
62
|
+
<div class="ms-auto btn-group bottom-sheet">
|
|
63
|
+
<button href="#" class="btn btn-outline-sm text-xs dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Actions</button>
|
|
64
|
+
<ul class="dropdown-menu p-1 text-sm">
|
|
65
|
+
{{{ if privileges.ban }}}
|
|
66
|
+
<li class="{{{ if target.user.banned }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="ban">[[user:ban_account]]</a></li>
|
|
67
|
+
<li class="{{{ if !target.user.banned }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="unban">[[user:unban_account]]</a></li>
|
|
68
|
+
{{{ end }}}
|
|
69
|
+
{{{ if privileges.mute}}}
|
|
70
|
+
<li class="{{{ if target.user.muted }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="mute">[[user:mute_account]]</a></li>
|
|
71
|
+
<li class="{{{ if !target.user.muted }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="unmute">[[user:unmute_account]]</a></li>
|
|
72
|
+
{{{ end }}}
|
|
73
|
+
{{{ if privileges.admin:users }}}
|
|
74
|
+
<li><a class="dropdown-item rounded-1" href="#" data-action="delete-account">[[user:delete_account_as_admin]]</a></li>
|
|
75
|
+
<li><a class="dropdown-item rounded-1" href="#" data-action="delete-content">[[user:delete_content]]</a></li>
|
|
76
|
+
<li><a class="dropdown-item rounded-1" href="#" data-action="delete-all">[[user:delete_all]]</a></li>
|
|
77
|
+
{{{ end }}}
|
|
78
|
+
</ul>
|
|
79
|
+
</div>
|
|
80
|
+
{{{ end }}}
|
|
81
|
+
</div>
|
|
82
|
+
<div class="small">
|
|
83
|
+
{{{ if posts.user.userslug}}}
|
|
84
|
+
<a class="text-decoration-none" href="{config.relative_path}/uid/{posts.user.uid}">{buildAvatar(posts.user, "24px", true, "not-responsive")} {posts.user.username}</a>
|
|
85
|
+
{{{ else }}}
|
|
86
|
+
{posts.user.username}
|
|
87
|
+
{{{ end }}}
|
|
88
|
+
</div>
|
|
89
|
+
</li>
|
|
90
|
+
<li class="card-body border-bottom">
|
|
91
|
+
<div class="text-xs fw-semibold mb-1">[[post-queue:when]]</div>
|
|
92
|
+
<span class="small timeago" title={posts.data.timestampISO}></span>
|
|
93
|
+
</li>
|
|
94
|
+
<li class="card-body border-bottom">
|
|
95
|
+
<div class="text-xs fw-semibold mb-1">
|
|
96
|
+
{{{ if posts.data.tid }}}[[post-queue:topic]]{{{ else }}}[[post-queue:title]]{{{ end }}}
|
|
97
|
+
</div>
|
|
98
|
+
<span class="small topic-title text-break">
|
|
99
|
+
{{{ if posts.data.tid }}}
|
|
100
|
+
<a href="{config.relative_path}/topic/{posts.data.tid}">{posts.topic.title}</a>
|
|
101
|
+
{{{ end }}}
|
|
102
|
+
<span class="title-text">{posts.data.title}</span>
|
|
103
|
+
</span>
|
|
104
|
+
{{{if !posts.data.tid}}}
|
|
105
|
+
<div class="topic-title-editable hidden">
|
|
106
|
+
<input class="form-control" type="text" value="{posts.data.title}"/>
|
|
107
|
+
</div>
|
|
108
|
+
{{{end}}}
|
|
109
|
+
</li>
|
|
110
|
+
<li class="card-body border-bottom">
|
|
111
|
+
<div class="text-xs fw-semibold mb-1">
|
|
112
|
+
[[post-queue:category]]
|
|
113
|
+
</div>
|
|
114
|
+
<div class="topic-category small">
|
|
115
|
+
<a href="{config.relative_path}/category/{posts.category.slug}">
|
|
116
|
+
<div class="category-item d-inline-block">
|
|
117
|
+
{buildCategoryIcon(./category, "24px", "rounded-circle")}
|
|
118
|
+
{posts.category.name}
|
|
119
|
+
</div>
|
|
120
|
+
</a>
|
|
121
|
+
</div>
|
|
122
|
+
</li>
|
|
123
|
+
<li class="card-body">
|
|
124
|
+
{{{ if canAccept }}}
|
|
125
|
+
<div class="row row-cols-2 g-1">
|
|
126
|
+
<div class="col d-grid">
|
|
127
|
+
<button class="btn btn-success btn-sm" data-action="accept"><i class="fa fa-fw fa-check"></i> [[post-queue:accept]] </button>
|
|
128
|
+
</div>
|
|
129
|
+
<div class="col d-grid">
|
|
130
|
+
<button class="btn btn-danger btn-sm" data-action="reject"><i class="fa fa-fw fa-times"></i> [[post-queue:reject]]</button>
|
|
131
|
+
</div>
|
|
132
|
+
{{{ if !posts.data.tid }}}
|
|
133
|
+
<div class="col d-grid">
|
|
134
|
+
<button class="btn btn-light btn-sm" data-action="editTitle"><i class="fa fa-fw fa-edit"></i> [[post-queue:title]]</button>
|
|
135
|
+
</div>
|
|
136
|
+
{{{ end }}}
|
|
137
|
+
<div class="col d-grid">
|
|
138
|
+
<button class="btn btn-light btn-sm" data-action="editContent"><i class="fa fa-fw fa-edit"></i> [[post-queue:content]]</button>
|
|
139
|
+
</div>
|
|
140
|
+
{{{if posts.data.cid}}}
|
|
141
|
+
<div class="col d-grid">
|
|
142
|
+
<button class="btn btn-light btn-sm" data-action="editCategory"><i class="fa fa-fw fa-edit"></i> [[post-queue:category]]</button>
|
|
143
|
+
</div>
|
|
144
|
+
{{{ end }}}
|
|
145
|
+
<div class="col d-grid">
|
|
146
|
+
<button class="btn btn-light btn-sm" data-action="notify"><i class="fa fa-fw fa-bell-o"></i> [[post-queue:notify]]</button>
|
|
147
|
+
</div>
|
|
148
|
+
</div>
|
|
149
|
+
{{{ else }}}
|
|
150
|
+
<button class="btn btn-danger btn-sm" data-action="reject"><i class="fa fa-fw fa-times"></i> [[post-queue:remove]]</button>
|
|
151
|
+
{{{ end }}}
|
|
152
|
+
</li>
|
|
153
|
+
</ul>
|
|
154
|
+
</div>
|
|
155
|
+
<div class="col-sm-8 col-md-9 d-flex flex-column">
|
|
156
|
+
<div class="post-content mb-auto text-break p-3 pb-0 h-100">{posts.data.content}</div>
|
|
157
|
+
<div class="post-content-editable flex-grow-1 hidden">
|
|
158
|
+
<textarea class="form-control w-100 h-100 p-3">{posts.data.rawContent}</textarea>
|
|
159
|
+
</div>
|
|
160
|
+
</div>
|
|
161
|
+
</div>
|
|
162
|
+
</div>
|
|
163
|
+
{{{ end }}}
|
|
164
|
+
</div>
|
|
165
|
+
|
|
166
|
+
<!-- IMPORT partials/paginator.tpl -->
|
package/templates/recent.tpl
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
+
{{{ if widgets.header.length }}}
|
|
1
2
|
<div data-widget-area="header">
|
|
2
3
|
{{{each widgets.header}}}
|
|
3
4
|
{{widgets.header.html}}
|
|
4
5
|
{{{end}}}
|
|
5
6
|
</div>
|
|
6
|
-
|
|
7
|
+
{{{ end }}}
|
|
7
8
|
<div class="recent">
|
|
8
9
|
<!-- IMPORT partials/topic-list-bar.tpl -->
|
|
9
10
|
|
|
10
11
|
<div class="category">
|
|
11
12
|
{{{ if !topics.length }}}
|
|
12
|
-
<div class="alert alert-
|
|
13
|
+
<div class="alert alert-info" id="category-no-topics">[[recent:no_recent_topics]]</div>
|
|
13
14
|
{{{ end }}}
|
|
14
15
|
|
|
15
16
|
<!-- IMPORT partials/topics_list.tpl -->
|
package/templates/register.tpl
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<h2 class="tracking-tight fw-semibold text-center">[[global:register]]</h2>
|
|
9
9
|
<div class="row justify-content-center gap-5">
|
|
10
10
|
|
|
11
|
-
<div class="col-12 col-md-3 px-md-0">
|
|
11
|
+
<div class="col-12 col-md-5 col-lg-3 px-md-0">
|
|
12
12
|
<div class="register-block">
|
|
13
13
|
<div class="alert alert-danger{{{ if !error }}} hidden{{{ end }}}" id="register-error-notify" >
|
|
14
14
|
<strong>[[error:registration-error]]</strong>
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
</div>
|
|
67
67
|
|
|
68
68
|
{{{ if alternate_logins }}}
|
|
69
|
-
<div class="col-12 col-md-3 px-md-0">
|
|
69
|
+
<div class="col-12 col-md-5 col-lg-3 px-md-0">
|
|
70
70
|
<div class="alt-register-block d-flex flex-column gap-2">
|
|
71
71
|
<label>[[register:alternative_registration]]</label>
|
|
72
72
|
<ul class="alt-logins list-unstyled">
|
|
@@ -76,10 +76,10 @@
|
|
|
76
76
|
{{{ if ./icons.svg }}}
|
|
77
77
|
{./icons.svg}
|
|
78
78
|
{{{ else }}}
|
|
79
|
-
<i class="{./icons.normal}" style="color:{./color};"></i>
|
|
79
|
+
<i class="flex-shrink-0 {./icons.normal}" style="color:{./color};"></i>
|
|
80
80
|
{{{ end }}}
|
|
81
81
|
{{{ if ./labels.register }}}
|
|
82
|
-
<div class="flex-1 text-body text-sm">{./labels.register}</div>
|
|
82
|
+
<div class="flex-grow-1 text-body text-sm">{./labels.register}</div>
|
|
83
83
|
{{{ end }}}
|
|
84
84
|
</a>
|
|
85
85
|
</li>
|
package/templates/search.tpl
CHANGED
|
@@ -1,183 +1,45 @@
|
|
|
1
|
-
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
-
|
|
3
1
|
<div class="search">
|
|
4
|
-
<div class="row">
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
<label class="form-label"> </label>
|
|
37
|
-
<button type="submit" class="btn btn-primary form-control">[[global:search]]</button>
|
|
38
|
-
</div>
|
|
39
|
-
</div>
|
|
40
|
-
</div>
|
|
41
|
-
|
|
42
|
-
<div class="card">
|
|
43
|
-
<h5 class="card-header pointer" data-bs-toggle="collapse" data-bs-target=".search-options">
|
|
44
|
-
<i class="fa fa-sort"></i> [[search:advanced-search]]
|
|
45
|
-
</h5>
|
|
46
|
-
<div class="collapse search-options {{{ if expandSearch }}}show{{{ end }}}">
|
|
47
|
-
<div class="card-body">
|
|
48
|
-
<div class="mb-2 post-search-item">
|
|
49
|
-
<div class="row">
|
|
50
|
-
<div class="col-md-6">
|
|
51
|
-
<label class="form-label">[[search:in-categories]]</label>
|
|
52
|
-
<select multiple class="form-select" id="posted-in-categories" size="{allCategoriesCount}">
|
|
53
|
-
{{{each allCategories}}}
|
|
54
|
-
<option value="{allCategories.value}">{allCategories.text}</option>
|
|
55
|
-
{{{end}}}
|
|
56
|
-
</select>
|
|
57
|
-
<div class="form-check">
|
|
58
|
-
<input id="search-children" class="form-check-input" type="checkbox"/>
|
|
59
|
-
<label class="form-check-label" for="search-children">[[search:search-child-categories]]</label>
|
|
60
|
-
</div>
|
|
61
|
-
</div>
|
|
62
|
-
<div class="col-md-6">
|
|
63
|
-
<div class="mb-2 post-search-item">
|
|
64
|
-
<div class="row">
|
|
65
|
-
<div class="col-md-6">
|
|
66
|
-
<label class="form-label">[[search:posted-by]]</label>
|
|
67
|
-
<div>
|
|
68
|
-
<input type="text" class="form-control" id="posted-by-user">
|
|
69
|
-
</div>
|
|
70
|
-
</div>
|
|
71
|
-
<div class="col-md-6">
|
|
72
|
-
<label class="form-label">[[search:has-tags]]</label>
|
|
73
|
-
<div>
|
|
74
|
-
<input type="text" class="form-control" id="has-tags">
|
|
75
|
-
</div>
|
|
76
|
-
</div>
|
|
77
|
-
</div>
|
|
78
|
-
</div>
|
|
79
|
-
|
|
80
|
-
<div class="mb-2 post-search-item">
|
|
81
|
-
<label class="form-label">[[search:reply-count]]</label>
|
|
82
|
-
<div class="row">
|
|
83
|
-
<div class="col-md-6">
|
|
84
|
-
<select id="reply-count-filter" class="form-select">
|
|
85
|
-
<option value="atleast">[[search:at-least]]</option>
|
|
86
|
-
<option value="atmost">[[search:at-most]]</option>
|
|
87
|
-
</select>
|
|
88
|
-
</div>
|
|
89
|
-
<div class="col-md-6">
|
|
90
|
-
<input type="text" class="form-control" id="reply-count">
|
|
91
|
-
</div>
|
|
92
|
-
</div>
|
|
93
|
-
</div>
|
|
94
|
-
|
|
95
|
-
<div class="mb-2 post-search-item">
|
|
96
|
-
<label class="form-label">[[search:post-time]]</label>
|
|
97
|
-
<div class="row">
|
|
98
|
-
<div class="col-md-6">
|
|
99
|
-
<select id="post-time-filter" class="form-select">
|
|
100
|
-
<option value="newer">[[search:newer-than]]</option>
|
|
101
|
-
<option value="older">[[search:older-than]]</option>
|
|
102
|
-
</select>
|
|
103
|
-
</div>
|
|
104
|
-
<div class="col-md-6">
|
|
105
|
-
<select id="post-time-range" class="form-select">
|
|
106
|
-
<option value="">[[search:any-date]]</option>
|
|
107
|
-
<option value="86400">[[search:yesterday]]</option>
|
|
108
|
-
<option value="604800">[[search:one-week]]</option>
|
|
109
|
-
<option value="1209600">[[search:two-weeks]]</option>
|
|
110
|
-
<option value="2592000">[[search:one-month]]</option>
|
|
111
|
-
<option value="7776000">[[search:three-months]]</option>
|
|
112
|
-
<option value="15552000">[[search:six-months]]</option>
|
|
113
|
-
<option value="31104000">[[search:one-year]]</option>
|
|
114
|
-
</select>
|
|
115
|
-
</div>
|
|
116
|
-
</div>
|
|
117
|
-
</div>
|
|
118
|
-
|
|
119
|
-
<div class="mb-2 post-search-item">
|
|
120
|
-
<label class="form-label">[[search:sort-by]]</label>
|
|
121
|
-
<div class="row">
|
|
122
|
-
<div class="col-md-6">
|
|
123
|
-
<select id="post-sort-by" class="form-select">
|
|
124
|
-
<option value="relevance">[[search:relevance]]</option>
|
|
125
|
-
<option value="timestamp">[[search:post-time]]</option>
|
|
126
|
-
<option value="votes">[[search:votes]]</option>
|
|
127
|
-
<option value="topic.lastposttime">[[search:last-reply-time]]</option>
|
|
128
|
-
<option value="topic.title">[[search:topic-title]]</option>
|
|
129
|
-
<option value="topic.postcount">[[search:number-of-replies]]</option>
|
|
130
|
-
<option value="topic.viewcount">[[search:number-of-views]]</option>
|
|
131
|
-
<option value="topic.votes">[[search:topic-votes]]</option>
|
|
132
|
-
<option value="topic.timestamp">[[search:topic-start-date]]</option>
|
|
133
|
-
<option value="user.username">[[search:username]]</option>
|
|
134
|
-
<option value="category.name">[[search:category]]</option>
|
|
135
|
-
</select>
|
|
136
|
-
</div>
|
|
137
|
-
<div class="col-md-6">
|
|
138
|
-
<select id="post-sort-direction" class="form-select">
|
|
139
|
-
<option value="desc">[[search:descending]]</option>
|
|
140
|
-
<option value="asc">[[search:ascending]]</option>
|
|
141
|
-
</select>
|
|
142
|
-
</div>
|
|
143
|
-
</div>
|
|
144
|
-
</div>
|
|
145
|
-
|
|
146
|
-
<div class="mb-2 post-search-item">
|
|
147
|
-
<label class="form-label">[[search:show-results-as]]</label>
|
|
148
|
-
<div class="radio">
|
|
149
|
-
<label>
|
|
150
|
-
<input type="radio" name="options" id="show-as-posts" checked>
|
|
151
|
-
[[global:posts]]
|
|
152
|
-
</label>
|
|
153
|
-
</div>
|
|
154
|
-
<div class="radio">
|
|
155
|
-
<label>
|
|
156
|
-
<input type="radio" name="options" id="show-as-topics">
|
|
157
|
-
[[global:topics]]
|
|
158
|
-
</label>
|
|
159
|
-
</div>
|
|
160
|
-
</div>
|
|
161
|
-
</div>
|
|
162
|
-
</div>
|
|
163
|
-
</div>
|
|
164
|
-
|
|
165
|
-
<div class="btn-group">
|
|
166
|
-
<button type="submit" class="btn btn-primary">[[global:search]]</button>
|
|
167
|
-
<a class="btn btn-outline-secondary" id="save-preferences" href="#">[[search:save-preferences]]</a>
|
|
168
|
-
<a class="btn btn-outline-secondary" id="clear-preferences" href="#">[[search:clear-preferences]]</a>
|
|
169
|
-
</div>
|
|
170
|
-
</div>
|
|
171
|
-
</div>
|
|
172
|
-
</div>
|
|
2
|
+
<div id="advanced-search" class="d-flex flex-column flex-md-row">
|
|
3
|
+
<!-- sidebar -->
|
|
4
|
+
<div class="flex-shrink-0 pe-2 border-end-md text-sm mb-3" style="flex-basis: 240px!important;">
|
|
5
|
+
<form action="{config.relative_path}/search" method="get" class="nav sticky-md-top d-flex flex-row flex-md-column flex-wrap gap-3 pe-md-3" style="top: 1rem; z-index: 1;">
|
|
6
|
+
<h2 class="fw-semibold tracking-tight mb-0">[[global:search]]</h2>
|
|
7
|
+
|
|
8
|
+
<input id="search-input" name="term" type="text" class="form-control fw-semibold py-2 ps-2 pe-3" id="search-input" placeholder="[[search:type-to-search]]">
|
|
9
|
+
|
|
10
|
+
<select id="search-in" name="in" class="form-select text-sm py-2 ps-2 pe-3">
|
|
11
|
+
<option value="titlesposts">[[search:in-titles-posts]]</option>
|
|
12
|
+
<option value="titles">[[search:in-titles]]</option>
|
|
13
|
+
<option value="posts">[[search:in-posts]]</option>
|
|
14
|
+
<option value="categories">[[search:in-categories]]</option>
|
|
15
|
+
{{{if privileges.search:users}}}
|
|
16
|
+
<option value="users">[[search:in-users]]</option>
|
|
17
|
+
{{{end}}}
|
|
18
|
+
{{{if privileges.search:tags}}}
|
|
19
|
+
<option value="tags">[[search:in-tags]]</option>
|
|
20
|
+
{{{end}}}
|
|
21
|
+
</select>
|
|
22
|
+
|
|
23
|
+
<select id="match-words-filter" name="matchWords" class="post-search-item form-select text-sm py-2 ps-2 pe-3">
|
|
24
|
+
<option value="all">[[search:match-all-words]]</option>
|
|
25
|
+
<option value="any">[[search:match-any-word]]</option>
|
|
26
|
+
</select>
|
|
27
|
+
|
|
28
|
+
<select id="show-results-as" name="showAs" class="post-search-item form-select text-sm py-2 ps-2 pe-3">
|
|
29
|
+
<option value="posts" selected>[[search:show-results-as-posts]]</option>
|
|
30
|
+
<option value="topics">[[search:show-results-as-topics]]</option>
|
|
31
|
+
</select>
|
|
32
|
+
|
|
33
|
+
<button type="submit" class="btn btn-primary fw-semibold form-control py-2 px-3">[[global:search]]</button>
|
|
173
34
|
</form>
|
|
174
|
-
|
|
175
|
-
<!-- IMPORT partials/search-results.tpl -->
|
|
176
35
|
</div>
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
36
|
+
|
|
37
|
+
<!-- filters and search results -->
|
|
38
|
+
<div class="flex-grow-1 ps-md-2 ps-lg-5" style="min-width:0;">
|
|
39
|
+
<div class="d-flex flex-column gap-3">
|
|
40
|
+
<!-- IMPORT partials/search-filters.tpl -->
|
|
41
|
+
<!-- IMPORT partials/search-results.tpl -->
|
|
42
|
+
</div>
|
|
181
43
|
</div>
|
|
182
44
|
</div>
|
|
183
45
|
</div>
|
package/templates/tags.tpl
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
{{{end}}}
|
|
5
5
|
</div>
|
|
6
6
|
<div class="tags">
|
|
7
|
-
<
|
|
7
|
+
<h3 class="fw-semibold">[[pages:tags]]</h3>
|
|
8
8
|
{{{ if displayTagSearch }}}
|
|
9
9
|
{{{ if tags.length }}}
|
|
10
10
|
<div class="row justify-content-end mb-3">
|
|
@@ -23,13 +23,13 @@
|
|
|
23
23
|
</div>
|
|
24
24
|
{{{ end }}}
|
|
25
25
|
{{{ end }}}
|
|
26
|
-
|
|
26
|
+
<hr/>
|
|
27
27
|
{{{ if !tags.length }}}
|
|
28
28
|
<div class="alert alert-warning">[[tags:no_tags]]</div>
|
|
29
29
|
{{{ end }}}
|
|
30
30
|
|
|
31
31
|
<div class="category">
|
|
32
|
-
<div class="tag-list row row-cols-2 row-cols-lg-
|
|
32
|
+
<div class="tag-list row row-cols-2 row-cols-lg-4 row-cols-xl-5 gx-3 gy-2" data-nextstart="{nextStart}">
|
|
33
33
|
<!-- IMPORT partials/tags_list.tpl -->
|
|
34
34
|
</div>
|
|
35
35
|
</div>
|
package/templates/top.tpl
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
{{{ if widgets.header.length }}}
|
|
1
2
|
<div data-widget-area="header">
|
|
2
3
|
{{{each widgets.header}}}
|
|
3
4
|
{{widgets.header.html}}
|
|
4
5
|
{{{end}}}
|
|
5
6
|
</div>
|
|
7
|
+
{{{ end }}}
|
|
6
8
|
<div class="top">
|
|
7
9
|
<!-- IMPORT partials/topic-list-bar.tpl -->
|
|
8
10
|
<div class="category">
|
|
9
11
|
{{{ if !topics.length }}}
|
|
10
|
-
<div class="alert alert-
|
|
12
|
+
<div class="alert alert-info" id="category-no-topics">[[top:no_top_topics]]</div>
|
|
11
13
|
{{{ end }}}
|
|
12
14
|
|
|
13
15
|
<!-- IMPORT partials/topics_list.tpl -->
|