nodebb-theme-harmony 1.0.0-beta.9 → 1.0.0-beta.90
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 +5 -1
- package/library.js +25 -25
- package/package.json +1 -1
- package/plugin.json +0 -1
- package/public/harmony.js +148 -9
- 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 +53 -25
- package/scss/common.scss +78 -9
- 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 +6 -1
- 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/topic-navigator.scss +16 -42
- package/scss/modules/topics-list.scss +164 -16
- package/scss/modules/user-menu.scss +6 -0
- package/scss/overrides.scss +4 -1
- package/scss/sidebar.scss +39 -11
- package/scss/topic.scss +30 -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 +66 -73
- package/templates/account/sessions.tpl +8 -30
- package/templates/account/settings.tpl +222 -203
- package/templates/account/theme.tpl +35 -26
- package/templates/account/topics.tpl +36 -38
- package/templates/account/uploads.tpl +33 -40
- package/templates/admin/plugins/harmony.tpl +17 -3
- package/templates/categories.tpl +2 -2
- package/templates/category.tpl +13 -14
- package/templates/chats.tpl +7 -8
- package/templates/flags/detail.tpl +160 -193
- package/templates/flags/list.tpl +4 -70
- package/templates/footer.tpl +2 -2
- package/templates/groups/details.tpl +21 -18
- package/templates/groups/list.tpl +1 -1
- package/templates/groups/members.tpl +0 -2
- package/templates/header.tpl +2 -2
- package/templates/login.tpl +2 -2
- package/templates/notifications.tpl +1 -1
- 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 +6 -0
- package/templates/partials/breadcrumbs.tpl +6 -6
- package/templates/partials/buttons/newTopic.tpl +1 -1
- package/templates/partials/categories/item.tpl +30 -23
- package/templates/partials/categories/lastpost.tpl +2 -2
- 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 +7 -7
- package/templates/partials/category/subcategory.tpl +1 -1
- package/templates/partials/category/tags.tpl +0 -2
- package/templates/partials/category/tools.tpl +28 -25
- package/templates/partials/category/watch.tpl +30 -6
- package/templates/partials/chats/dropdown.tpl +4 -1
- package/templates/partials/chats/message-window.tpl +8 -7
- package/templates/partials/chats/message.tpl +4 -6
- 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 +163 -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/memberlist.tpl +1 -1
- package/templates/partials/groups/sidebar-left.tpl +1 -1
- package/templates/partials/header/brand.tpl +9 -2
- package/templates/partials/mobile-footer.tpl +69 -64
- 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 -32
- package/templates/partials/sidebar/chats.tpl +22 -33
- 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 +29 -8
- package/templates/partials/sidebar/search.tpl +1 -1
- package/templates/partials/sidebar/user-menu.tpl +38 -29
- package/templates/partials/sidebar-left.tpl +11 -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 +31 -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 +21 -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 +43 -25
- package/templates/partials/topic/quickreply.tpl +5 -5
- package/templates/partials/topic/reply-button.tpl +3 -3
- 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 +30 -6
- 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 +54 -61
- 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 +2 -2
- 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
|
@@ -1,25 +1,46 @@
|
|
|
1
|
-
<a data-bs-toggle="dropdown" href="#" role="button" class="nav-link nav-btn d-flex gap-2 justify-content-between align-items-center position-relative"
|
|
1
|
+
<a data-bs-toggle="dropdown" href="#" role="button" class="nav-link nav-btn d-flex gap-2 justify-content-between align-items-center position-relative">
|
|
2
2
|
<span class="d-flex gap-2 align-items-center text-nowrap truncate-open">
|
|
3
3
|
<span class="position-relative">
|
|
4
4
|
<i component="notifications/icon" class="fa fa-fw {{{ if unreadCount.notification}}}fa-bell{{{ else }}}fa-bell-o{{{ end }}} unread-count" data-content="{unreadCount.notification}"></i>
|
|
5
5
|
<span component="notifications/count" class="visible-closed position-absolute top-0 start-100 translate-middle badge rounded-1 bg-primary {{{ if !unreadCount.notification }}}hidden{{{ end }}}">{unreadCount.notification}</span>
|
|
6
6
|
</span>
|
|
7
|
-
<span class="nav-text small visible-open fw-semibold">[[global:header.notifications]]</span>
|
|
7
|
+
<span class="nav-text small visible-open fw-semibold truncate-text">[[global:header.notifications]]</span>
|
|
8
8
|
</span>
|
|
9
9
|
<span component="notifications/count" class="visible-open badge rounded-1 bg-primary {{{ if !unreadCount.notification }}}hidden{{{ end }}}">{unreadCount.notification}</span>
|
|
10
10
|
</a>
|
|
11
11
|
<ul class="notifications-dropdown dropdown-menu p-1 shadow">
|
|
12
12
|
<li>
|
|
13
|
-
<ul component="notifications/list" class="notification-list list-unstyled">
|
|
14
|
-
<li class="mb-2
|
|
15
|
-
<div class="
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
<ul component="notifications/list" class="list-container notification-list list-unstyled overscroll-behavior-contain ff-base">
|
|
14
|
+
<li class="mb-2 p-1">
|
|
15
|
+
<div class="d-flex gap-1 justify-content-between">
|
|
16
|
+
<div class="d-flex gap-2 flex-grow-1 placeholder-wave">
|
|
17
|
+
<div class="placeholder" style="width: 32px; height: 32px;"></div>
|
|
18
|
+
<div class="flex-grow-1">
|
|
19
|
+
<div class="d-flex flex-column">
|
|
20
|
+
<div class="text-sm">
|
|
21
|
+
<span class="placeholder placeholder-sm col-4"></span>
|
|
22
|
+
<span class="placeholder placeholder-sm col-6"></span>
|
|
23
|
+
<span class="placeholder placeholder-sm col-7"></span>
|
|
24
|
+
<span class="placeholder placeholder-sm col-2"></span>
|
|
25
|
+
<span class="placeholder placeholder-sm col-5"></span>
|
|
26
|
+
</div>
|
|
27
|
+
<div class="text-xs">
|
|
28
|
+
<div class="placeholder placeholder-xs col-6"></div>
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
<div>
|
|
34
|
+
<button class="mark-read btn-ghost-sm" style="width: 1.5rem; height: 1.5rem;">
|
|
35
|
+
<i class="unread fa fa-2xs fa-circle text-primary"></i>
|
|
36
|
+
</button>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
18
39
|
</li>
|
|
19
40
|
</ul>
|
|
20
41
|
</li>
|
|
21
42
|
<li class="dropdown-divider"></li>
|
|
22
|
-
<li
|
|
43
|
+
<li>
|
|
23
44
|
<div class="d-flex justify-content-center gap-1 flex-wrap">
|
|
24
45
|
<a role="button" href="#" class="btn btn-sm btn-light mark-all-read flex-fill text-nowrap text-truncate ff-secondary"><i class="fa fa-check-double"></i> [[notifications:mark_all_read]]</a>
|
|
25
46
|
<a class="btn btn-sm btn-primary flex-fill text-nowrap text-truncate ff-secondary" href="{relative_path}/notifications"><i class="fa fa-list"></i> [[notifications:see_all]]</a>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<a component="search/button" id="search-button" href="#" role="button" class="nav-link nav-btn d-flex gap-2 align-items-center text-truncate" data-bs-toggle="dropdown"
|
|
1
|
+
<a component="search/button" id="search-button" href="#" role="button" class="nav-link nav-btn d-flex gap-2 align-items-center text-truncate" data-bs-toggle="dropdown">
|
|
2
2
|
<span>
|
|
3
3
|
<i class="fa fa-search fa-fw"></i>
|
|
4
4
|
</span>
|
|
@@ -2,73 +2,82 @@
|
|
|
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>
|
|
5
|
-
<ul id="user-control-list" component="header/usercontrol" class="user-dropdown dropdown-menu shadow p-1 text-sm" aria-labelledby="user_dropdown">
|
|
5
|
+
<ul id="user-control-list" component="header/usercontrol" class="overscroll-behavior-contain user-dropdown dropdown-menu shadow p-1 text-sm ff-base" aria-labelledby="user_dropdown">
|
|
6
6
|
<li>
|
|
7
|
-
<a class="dropdown-item rounded-1 d-flex align-items-center gap-
|
|
8
|
-
<
|
|
7
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" component="header/profilelink" href="{relative_path}/user/{user.userslug}">
|
|
8
|
+
<span component="user/status" class="badge border border-white border-2 rounded-circle status {user.status}"><span class="visually-hidden">[[global:{user.status}]]</span></span>
|
|
9
9
|
<span class="fw-semibold" component="header/username">{user.username}</span>
|
|
10
10
|
</a>
|
|
11
11
|
</li>
|
|
12
12
|
<li role="presentation" class="dropdown-divider"></li>
|
|
13
13
|
<li><h6 class="dropdown-header text-xs">[[global:status]]</h6></li>
|
|
14
14
|
<li>
|
|
15
|
-
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-
|
|
16
|
-
<
|
|
17
|
-
<span
|
|
15
|
+
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-2 {{{ if user.online }}}selected{{{ end }}}" data-status="online">
|
|
16
|
+
<span component="user/status" class="badge border border-white border-2 rounded-circle status online"><span class="visually-hidden">[[global:online]]</span></span>
|
|
17
|
+
<span class="flex-1">[[global:online]]</span>
|
|
18
|
+
<i class="fa-solid fa-check text-muted flex-grow-0"></i>
|
|
18
19
|
</a>
|
|
19
20
|
</li>
|
|
20
21
|
<li>
|
|
21
|
-
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-
|
|
22
|
-
<
|
|
23
|
-
<span
|
|
22
|
+
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-2 {{{ if user.away }}}selected{{{ end }}}" data-status="away">
|
|
23
|
+
<span component="user/status" class="badge border border-white border-2 rounded-circle status away"><span class="visually-hidden">[[global:away]]</span></span>
|
|
24
|
+
<span class="flex-1">[[global:away]]</span>
|
|
25
|
+
<i class="fa-solid fa-check text-muted flex-grow-0"></i>
|
|
24
26
|
</a>
|
|
25
27
|
</li>
|
|
26
28
|
<li>
|
|
27
|
-
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-
|
|
28
|
-
<
|
|
29
|
-
<span
|
|
29
|
+
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-2 {{{ if user.dnd }}}selected{{{ end }}}" data-status="dnd">
|
|
30
|
+
<span component="user/status" class="badge border border-white border-2 rounded-circle status dnd"><span class="visually-hidden">[[global:dnd]]</span></span>
|
|
31
|
+
<span class="flex-1">[[global:dnd]]</span>
|
|
32
|
+
<i class="fa-solid fa-check text-muted flex-grow-0"></i>
|
|
30
33
|
</a>
|
|
31
34
|
</li>
|
|
32
35
|
<li>
|
|
33
|
-
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-
|
|
34
|
-
<
|
|
35
|
-
<span
|
|
36
|
+
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-2 {{{ if user.offline }}}selected{{{ end }}}" data-status="offline">
|
|
37
|
+
<span component="user/status" class="badge border border-white border-2 rounded-circle status offline"><span class="visually-hidden">[[global:invisible]]</span></span>
|
|
38
|
+
<span class="flex-1">[[global:invisible]]</span>
|
|
39
|
+
<i class="fa-solid fa-check text-muted flex-grow-0"></i>
|
|
36
40
|
</a>
|
|
37
41
|
</li>
|
|
38
42
|
<li role="presentation" class="dropdown-divider"></li>
|
|
39
43
|
<li>
|
|
40
|
-
<a class="dropdown-item rounded-1
|
|
41
|
-
<i class="fa fa-fw fa-
|
|
44
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/user/{user.userslug}/bookmarks">
|
|
45
|
+
<i class="fa fa-fw fa-bookmark text-muted"></i> <span>[[user:bookmarks]]</span>
|
|
42
46
|
</a>
|
|
43
47
|
</li>
|
|
44
48
|
<li>
|
|
45
|
-
<a class="dropdown-item rounded-1" component="header/profilelink/
|
|
46
|
-
<i class="fa fa-fw fa-
|
|
49
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" component="header/profilelink/edit" href="{relative_path}/user/{user.userslug}/edit">
|
|
50
|
+
<i class="fa fa-fw fa-edit text-muted"></i> <span>[[user:edit-profile]]</span>
|
|
51
|
+
</a>
|
|
52
|
+
</li>
|
|
53
|
+
<li>
|
|
54
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" component="header/profilelink/settings" href="{relative_path}/user/{user.userslug}/settings">
|
|
55
|
+
<i class="fa fa-fw fa-gear text-muted"></i> <span>[[user:settings]]</span>
|
|
47
56
|
</a>
|
|
48
57
|
</li>
|
|
49
58
|
{{{ if showModMenu }}}
|
|
50
59
|
<li role="presentation" class="dropdown-divider"></li>
|
|
51
60
|
<li><h6 class="dropdown-header text-xs">[[pages:moderator-tools]]</h6></li>
|
|
52
61
|
<li>
|
|
53
|
-
<a class="dropdown-item rounded-1" href="{relative_path}/flags">
|
|
54
|
-
<i class="fa fa-fw fa-flag"></i> <span>[[pages:flagged-content]]</span>
|
|
62
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/flags">
|
|
63
|
+
<i class="fa fa-fw fa-flag text-muted"></i> <span>[[pages:flagged-content]]</span>
|
|
55
64
|
</a>
|
|
56
65
|
</li>
|
|
57
66
|
<li>
|
|
58
|
-
<a class="dropdown-item rounded-1" href="{relative_path}/post-queue">
|
|
59
|
-
<i class="fa fa-fw fa-list-alt"></i> <span>[[pages:post-queue]]</span>
|
|
67
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/post-queue">
|
|
68
|
+
<i class="fa fa-fw fa-list-alt text-muted"></i> <span>[[pages:post-queue]]</span>
|
|
60
69
|
</a>
|
|
61
70
|
</li>
|
|
62
71
|
<li>
|
|
63
|
-
<a class="dropdown-item rounded-1" href="{relative_path}/ip-blacklist">
|
|
64
|
-
<i class="fa fa-fw fa-ban"></i> <span>[[pages:ip-blacklist]]</span>
|
|
72
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/ip-blacklist">
|
|
73
|
+
<i class="fa fa-fw fa-ban text-muted"></i> <span>[[pages:ip-blacklist]]</span>
|
|
65
74
|
</a>
|
|
66
75
|
</li>
|
|
67
76
|
{{{ else }}}
|
|
68
77
|
{{{ if postQueueEnabled }}}
|
|
69
78
|
<li>
|
|
70
|
-
<a class="dropdown-item rounded-1" href="{relative_path}/post-queue">
|
|
71
|
-
<i class="fa fa-fw fa-list-alt"></i> <span>[[pages:post-queue]]</span>
|
|
79
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/post-queue">
|
|
80
|
+
<i class="fa fa-fw fa-list-alt text-muted"></i> <span>[[pages:post-queue]]</span>
|
|
72
81
|
</a>
|
|
73
82
|
</li>
|
|
74
83
|
{{{ end }}}
|
|
@@ -79,8 +88,8 @@
|
|
|
79
88
|
<form method="post" action="{relative_path}/logout">
|
|
80
89
|
<input type="hidden" name="_csrf" value="{config.csrf_token}">
|
|
81
90
|
<input type="hidden" name="noscript" value="true">
|
|
82
|
-
<button type="submit" class="dropdown-item rounded-1">
|
|
83
|
-
<i class="fa fa-fw fa-sign-out"></i><span>
|
|
91
|
+
<button type="submit" class="dropdown-item rounded-1 d-flex align-items-center gap-2">
|
|
92
|
+
<i class="fa fa-fw fa-sign-out text-muted"></i><span>[[global:logout]]</span>
|
|
84
93
|
</button>
|
|
85
94
|
</form>
|
|
86
95
|
</li>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
<nav class="{{{ if config.openSidebars}}}open{{{ end }}} text-dark bg-light sidebar sidebar-left start-0 border-end vh-100 d-none d-
|
|
1
|
+
<nav class="{{{ if config.theme.openSidebars}}}open{{{ end }}} text-dark bg-light sidebar sidebar-left start-0 border-end vh-100 d-none d-lg-flex flex-column justify-content-between sticky-top">
|
|
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 displayMenuItem(@root, @index) }}}
|
|
5
5
|
<li class="nav-item mx-2 {./class}{{{ if ./dropdown }}} dropend{{{ end }}}" title="{./title}">
|
|
6
|
-
<a class="nav-link nav-btn navigation-link d-flex gap-2 justify-content-between align-items-center {{{ if
|
|
6
|
+
<a class="nav-link nav-btn navigation-link d-flex gap-2 justify-content-between align-items-center {{{ if ./dropdown }}}dropdown-toggle{{{ end }}}"
|
|
7
7
|
{{{ if ./dropdown }}} href="#" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" {{{ else }}} href="{./route}"{{{ end }}} {{{ if ./id }}}id="{./id}"{{{ end }}}{{{ if ./targetBlank }}} target="_blank"{{{ end }}}>
|
|
8
8
|
<span class="d-flex gap-2 align-items-center text-nowrap truncate-open">
|
|
9
9
|
<span class="position-relative">
|
|
@@ -12,20 +12,20 @@
|
|
|
12
12
|
<span component="navigation/count" class="visible-closed position-absolute top-0 start-100 translate-middle badge rounded-1 bg-primary {{{ if !./content }}}hidden{{{ end }}}">{./content}</span>
|
|
13
13
|
{{{ end }}}
|
|
14
14
|
</span>
|
|
15
|
-
{{{ if
|
|
16
|
-
<span class="nav-text small visible-open fw-semibold text-truncate">{
|
|
15
|
+
{{{ if ./text }}}
|
|
16
|
+
<span class="nav-text small visible-open fw-semibold text-truncate">{./text}</span>
|
|
17
17
|
{{{ end }}}
|
|
18
18
|
</span>
|
|
19
19
|
<span component="navigation/count" class="visible-open badge rounded-1 bg-primary {{{ if !./content }}}hidden{{{ end }}}">{./content}</span>
|
|
20
20
|
</a>
|
|
21
|
-
{{{ if
|
|
22
|
-
<ul class="dropdown-menu shadow">
|
|
23
|
-
{
|
|
21
|
+
{{{ if ./dropdown }}}
|
|
22
|
+
<ul class="dropdown-menu p-1 shadow">
|
|
23
|
+
{./dropdownContent}
|
|
24
24
|
</ul>
|
|
25
25
|
{{{ end }}}
|
|
26
26
|
</li>
|
|
27
|
-
|
|
28
|
-
{{{end}}}
|
|
27
|
+
{{{ end }}}
|
|
28
|
+
{{{ end }}}
|
|
29
29
|
</ul>
|
|
30
30
|
<div class="w-100">
|
|
31
31
|
{{{ if !config.disableCustomUserSkins }}}
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
{{{ end }}}
|
|
34
34
|
|
|
35
35
|
<div class="sidebar-toggle m-2 d-none d-lg-block">
|
|
36
|
-
<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">
|
|
36
|
+
<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" title="[[harmony:expand]]">
|
|
37
37
|
<i class="fa fa-fw fa-angles-right"></i>
|
|
38
38
|
<i class="fa fa-fw fa-angles-left"></i>
|
|
39
39
|
<span class="nav-text visible-open fw-semibold small lh-1">[[harmony:collapse]]</span>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<nav class="{{{ if config.openSidebars}}}open{{{ end }}} text-dark bg-light sidebar sidebar-right end-0 border-start vh-100 d-none d-
|
|
1
|
+
<nav class="{{{ if config.theme.openSidebars}}}open{{{ end }}} text-dark bg-light sidebar sidebar-right end-0 border-start vh-100 d-none d-lg-flex flex-column sticky-top">
|
|
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
4
|
<!-- IMPORT partials/sidebar/logged-in-menu.tpl -->
|
|
@@ -9,8 +9,6 @@
|
|
|
9
9
|
</ul>
|
|
10
10
|
{{{ end }}}
|
|
11
11
|
|
|
12
|
-
<!-- IMPORT partials/topic/navigator.tpl -->
|
|
13
|
-
|
|
14
12
|
<div class="visible-open small text-secondary mt-auto" data-widget-area="sidebar-footer">
|
|
15
13
|
{{{each widgets.sidebar-footer}}}
|
|
16
14
|
{{./html}}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<div class="dropend m-2" component="skinSwitcher">
|
|
2
|
-
<a data-bs-toggle="dropdown" href="#" role="button" class="nav-link nav-btn position-relative"
|
|
1
|
+
<div class="dropend m-2" component="skinSwitcher" title="[[harmony:skins]]">
|
|
2
|
+
<a data-bs-toggle="dropdown" href="#" role="button" class="nav-link nav-btn position-relative">
|
|
3
3
|
<span class="justify-content-between w-100">
|
|
4
4
|
<span class="d-flex gap-2 align-items-center text-nowrap truncate-open">
|
|
5
5
|
<span>
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
</span>
|
|
11
11
|
</a>
|
|
12
12
|
|
|
13
|
-
<ul class="dropdown-menu overflow-auto">
|
|
13
|
+
<ul class="dropdown-menu p-1 text-sm overflow-auto">
|
|
14
14
|
<div class="d-flex px-2">
|
|
15
15
|
<div>
|
|
16
16
|
<li class="dropdown-header">Light</li>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<button type="button" class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown">
|
|
2
|
+
{{{ if selectedTag }}}
|
|
3
|
+
<span class="d-inline-flex align-items-center gap-1">
|
|
4
|
+
<i class="fa fa-fw fa-tags link-primary"></i>
|
|
5
|
+
<span class="visible-md-inline visible-lg-inline fw-semibold">{selectedTag.label}</span>
|
|
6
|
+
</span>
|
|
7
|
+
{{{ else }}}
|
|
8
|
+
<i class="fa fa-fw fa-tags link-primary"></i>
|
|
9
|
+
<span class="visible-md-inline visible-lg-inline fw-semibold">[[tags:all-tags]]</span>
|
|
10
|
+
{{{ end }}}
|
|
11
|
+
</button>
|
|
12
|
+
<div component="tag/filter/search" class="hidden position-absolute top-0">
|
|
13
|
+
<input type="text" class="form-control form-control-sm" placeholder="[[search:type-to-search]]" autocomplete="off">
|
|
14
|
+
</div>
|
|
15
|
+
<ul component="tag/filter/list" class="dropdown-menu p-1 text-sm overflow-auto" role="menu" style="max-height: 500px;">
|
|
16
|
+
<li role="presentation" data-tag="">
|
|
17
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="menu-item" href="#"><span class="flex-1">[[tags:all-tags]]</span><i component="tag/select/icon" class="fa fa-fw fa-check {{{if selectedTag }}}invisible{{{ end }}}"></i></a>
|
|
18
|
+
</li>
|
|
19
|
+
{{{ each tagItems }}}
|
|
20
|
+
<li role="presentation" data-tag="{./valueEscaped}">
|
|
21
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="menu-item" href="#">
|
|
22
|
+
<span component="tag-markup" class="flex-1">
|
|
23
|
+
<div class="d-inline-flex align-items-center gap-1">
|
|
24
|
+
{./valueEscaped}
|
|
25
|
+
</div>
|
|
26
|
+
</span>
|
|
27
|
+
<i component="tag/select/icon" class="fa fa-fw fa-check {{{ if !./selected }}}invisible{{{ end }}}"></i>
|
|
28
|
+
</a>
|
|
29
|
+
</li>
|
|
30
|
+
{{{ end }}}
|
|
31
|
+
</ul>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{{{each tags}}}
|
|
2
|
-
<
|
|
3
|
-
<
|
|
4
|
-
<
|
|
5
|
-
</
|
|
2
|
+
<a href="{config.relative_path}/tags/{./valueEncoded}" data-tag="{./valueEscaped}" class="btn-ghost flex-column gap-0 align-items-start justify-content-start text-truncate p-2 ff-base">
|
|
3
|
+
<div class="fw-semibold text-nowrap tag-item w-100 text-truncate">{./valueEscaped}</div>
|
|
4
|
+
<div class="text-xs text-muted text-nowrap tag-topic-count">[[global:x-topics, {./score}]]</div>
|
|
5
|
+
</a>
|
|
6
6
|
{{{end}}}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div class="timeline-badge">
|
|
3
3
|
<i class="fa {{{ if ./icon }}}{./icon}{{{ else }}}fa-circle{{{ end }}} small"></i>
|
|
4
4
|
</div>
|
|
5
|
-
<span class="timeline-text small">
|
|
5
|
+
<span class="timeline-text small d-flex align-items-center gap-1 flex-wrap">
|
|
6
6
|
{./text}
|
|
7
7
|
</span>
|
|
8
8
|
{{{ if privileges.isAdminOrMod }}}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
<a href="<!-- IF post.user.userslug -->{config.relative_path}/user/{post.user.userslug}<!-- ELSE -->#<!-- ENDIF post.user.userslug -->">
|
|
6
|
-
{buildAvatar(post.user, "24px", true, "", "user/picture")} {post.user.username}
|
|
1
|
+
<div class="d-flex gap-2 mb-2 justify-content-between align-items-center flex-nowrap">
|
|
2
|
+
<div class="icon text-truncate">
|
|
3
|
+
<a href="{{{ if post.user.userslug }}}{config.relative_path}/user/{post.user.userslug}{{{else }}}#{{{ end }}}">
|
|
4
|
+
{buildAvatar(post.user, "24px", true)} {post.user.username}
|
|
7
5
|
</a>
|
|
8
6
|
</div>
|
|
9
|
-
<
|
|
10
|
-
<span class="timeago" title="{post.timestampISO}"></span>
|
|
11
|
-
</small>
|
|
7
|
+
<span class="timeago text-nowrap text-sm" title="{post.timestampISO}"></span>
|
|
12
8
|
</div>
|
|
13
9
|
|
|
14
10
|
<div>{post.content}</div>
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<div class="d-flex w-100">
|
|
2
|
+
<div class="pagination-block text-bg-light m-2 rounded-1 border border-gray-300 w-100" style="height:30px;">
|
|
3
|
+
<div class="position-relative">
|
|
4
|
+
<div class="progress-bar rounded-1 bg-info d-block position-absolute" style="height:28px;"></div>
|
|
5
|
+
</div>
|
|
6
|
+
<div class="wrapper dropup-center d-flex align-items-center justify-content-between w-100 h-100" style="padding: 5px 0px;">
|
|
7
|
+
<div class="d-flex">
|
|
8
|
+
<div class="lh-1 px-2">
|
|
9
|
+
<i class="fa fa-angles-left pointer fa-fw pagetop fs-5" style="z-index: 1;"></i>
|
|
10
|
+
</div>
|
|
11
|
+
{{{ if config.usePagination }}}
|
|
12
|
+
<div class="lh-1 px-2">
|
|
13
|
+
<i class="fa fa-angle-left pointer fa-fw pageprev fs-5" style="z-index: 1;"></i>
|
|
14
|
+
</div>
|
|
15
|
+
{{{ end }}}
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
<a href="#" class="text-reset dropdown-toggle d-inline-block px-3 text-decoration-none" data-bs-toggle="dropdown">
|
|
19
|
+
<span class="d-inline-flex gap-2 align-items-center pagination-text position-relative fw-bold"></span>
|
|
20
|
+
</a>
|
|
21
|
+
|
|
22
|
+
<div class="d-flex">
|
|
23
|
+
{{{ if config.usePagination }}}
|
|
24
|
+
<div class="lh-1 px-2">
|
|
25
|
+
<i class="fa fa-angle-right pointer fa-fw pagenext fs-5" style="z-index: 1;"></i>
|
|
26
|
+
</div>
|
|
27
|
+
{{{ end }}}
|
|
28
|
+
<div class="lh-1 px-2">
|
|
29
|
+
<i class="fa fa-angles-right pointer fa-fw pagebottom fs-5" style="z-index: 1;"></i>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
<ul class="dropdown-menu p-0" role="menu" style="width: 100%;">
|
|
34
|
+
<li class="p-3">
|
|
35
|
+
<div class="row">
|
|
36
|
+
<div class="col-8 post-content overflow-hidden mb-3" style="height: 350px;"></div>
|
|
37
|
+
<div class="col-4 ps-0 text-end">
|
|
38
|
+
<div class="scroller-content">
|
|
39
|
+
<span class="pointer pagetop">[[topic:first-post]] <i class="fa fa-angle-double-up"></i></span>
|
|
40
|
+
<div class="scroller-container border-gray-200" style="height: 300px;">
|
|
41
|
+
<div class="scroller-thumb position-relative text-nowrap" style="height: 40px;">
|
|
42
|
+
<span class="thumb-text text-sm fw-bold user-select-none position-relative pe-2" style="top: -15px;"></span>
|
|
43
|
+
<div class="rounded-2 scroller-thumb-icon bg-primary d-inline-block position-relative" style="width: 9px; height:40px;"></div>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
<span class="pointer pagebottom">[[topic:last-post]] <i class="fa fa-angle-double-down"></i></span>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="row">
|
|
51
|
+
<div class="col-6">
|
|
52
|
+
<button id="myNextPostBtn" class="btn btn-outline-secondary form-control text-truncate" disabled>[[topic:go-to-my-next-post]]</button>
|
|
53
|
+
</div>
|
|
54
|
+
<div class="col-6">
|
|
55
|
+
<input type="number" class="form-control" id="indexInput" placeholder="[[global:pagination.enter_index]]">
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</li>
|
|
59
|
+
</ul>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
@@ -1,20 +1,24 @@
|
|
|
1
|
-
<div class="d-
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
<
|
|
1
|
+
<div class="pagination-block d-none d-lg-block flex-1 mb-2">
|
|
2
|
+
<div class="ps-1 ps-md-0 d-inline-block sticky-top" style="top:6rem;z-index:1;">
|
|
3
|
+
<div class="scroller-content d-flex gap-2 flex-column align-items-start">
|
|
4
|
+
<div class="pointer pagetop btn-ghost-sm d-inline-flex" style="padding: 4px;"><i class="fa fa-chevron-up"></i></div>
|
|
5
|
+
<div class="scroller-container position-relative">
|
|
6
|
+
<div class="scroller-thumb d-flex gap-2 text-nowrap position-relative" style="height: 40px;">
|
|
7
|
+
<div class="scroller-thumb-icon bg-primary rounded d-inline-block" style="width:9px; height: 40px;"></div>
|
|
8
|
+
<div>
|
|
9
|
+
<p class="small thumb-text d-none d-md-inline-block ff-secondary fw-semibold user-select-none mb-0"></p>
|
|
10
|
+
<p class="meta thumb-timestamp timeago text-xs text-muted ff-secondary fw-semibold mb-0 user-select-none"></p>
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
<div class="unread d-inline-block position-absolute bottom-0">
|
|
15
|
+
<div class="meta small position-absolute top-50 translate-middle-y text-nowrap fw-semibold ms-2">
|
|
16
|
+
<a class="text-decoration-none" href="{url}"></a>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
15
19
|
</div>
|
|
20
|
+
<div class="pointer pagebottom btn-ghost-sm d-inline-flex" style="padding: 4px;"><i class="fa fa-chevron-down"></i></div>
|
|
16
21
|
</div>
|
|
17
22
|
</div>
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
</div>
|
|
23
|
+
</div>
|
|
24
|
+
|