nodebb-theme-harmony 1.0.0-beta.4 → 1.0.0-beta.40
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/languages/en-GB/harmony.json +5 -1
- package/library.js +21 -7
- package/package.json +1 -1
- package/public/harmony.js +107 -9
- package/public/settings.js +1 -0
- package/scss/common.scss +46 -4
- package/scss/harmony.scss +2 -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/paginator.scss +24 -0
- package/scss/overrides.scss +3 -1
- package/scss/search.scss +8 -0
- package/scss/sidebar.scss +7 -4
- package/scss/topic.scss +22 -12
- package/templates/account/blocks.tpl +35 -41
- package/templates/account/categories.tpl +23 -30
- 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 +193 -198
- package/templates/account/theme.tpl +34 -25
- package/templates/account/topics.tpl +33 -38
- package/templates/account/uploads.tpl +33 -40
- package/templates/categories.tpl +1 -1
- package/templates/category.tpl +12 -13
- package/templates/flags/detail.tpl +24 -25
- package/templates/flags/list.tpl +11 -11
- package/templates/footer.tpl +2 -2
- package/templates/groups/details.tpl +20 -17
- package/templates/groups/members.tpl +0 -2
- 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/breadcrumbs.tpl +6 -6
- package/templates/partials/categories/item.tpl +19 -18
- package/templates/partials/categories/lastpost.tpl +2 -2
- package/templates/partials/{category-filter-content.tpl → category/filter-dropdown-content.tpl} +8 -6
- package/templates/partials/{category-selector-content.tpl → category/selector-dropdown-content.tpl} +3 -3
- package/templates/partials/category/subcategory.tpl +1 -1
- package/templates/partials/category/tags.tpl +0 -2
- package/templates/partials/category/watch.tpl +28 -4
- package/templates/partials/chats/message-window.tpl +1 -0
- package/templates/partials/chats/message.tpl +4 -6
- package/templates/partials/cookie-consent.tpl +5 -5
- package/templates/partials/flags/filters.tpl +1 -1
- 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 +1 -1
- package/templates/partials/mobile-footer.tpl +69 -61
- package/templates/partials/paginator.tpl +9 -9
- package/templates/partials/post_bar.tpl +6 -5
- package/templates/partials/posts_list_item.tpl +5 -5
- package/templates/partials/quick-search-results.tpl +1 -1
- package/templates/partials/search-filters.tpl +184 -0
- package/templates/partials/search-results.tpl +28 -32
- package/templates/partials/sidebar/chats.tpl +2 -2
- package/templates/partials/sidebar/drafts.tpl +42 -34
- package/templates/partials/sidebar/logged-in-menu.tpl +5 -5
- package/templates/partials/sidebar/notifications.tpl +3 -3
- package/templates/partials/sidebar/search.tpl +1 -1
- package/templates/partials/sidebar/user-menu.tpl +1 -1
- package/templates/partials/sidebar-left.tpl +13 -10
- package/templates/partials/sidebar-right.tpl +1 -1
- package/templates/partials/skin-switcher.tpl +2 -2
- package/templates/partials/tags_list.tpl +6 -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 +48 -0
- package/templates/partials/topic/post-editor.tpl +0 -2
- package/templates/partials/topic/post-menu-list.tpl +35 -37
- package/templates/partials/topic/post.tpl +27 -10
- package/templates/partials/topic/quickreply.tpl +6 -6
- package/templates/partials/topic/reply-button.tpl +1 -1
- package/templates/partials/topic/topic-menu-list.tpl +16 -18
- package/templates/partials/topic/watch.tpl +28 -4
- package/templates/partials/topic-list-bar.tpl +7 -7
- package/templates/partials/topics_list.tpl +41 -41
- package/templates/partials/users/filter-dropdown-content.tpl +20 -0
- package/templates/popular.tpl +1 -1
- package/templates/post-queue.tpl +112 -0
- package/templates/recent.tpl +1 -1
- package/templates/search.tpl +39 -177
- package/templates/tags.tpl +1 -1
- package/templates/top.tpl +1 -1
- package/templates/topic.tpl +4 -4
- package/templates/unread.tpl +1 -1
- package/templates/users.tpl +1 -1
- package/templates/modules/usercard.tpl +0 -39
- package/templates/partials/acceptTos.tpl +0 -11
- 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,23 +1,23 @@
|
|
|
1
|
-
<li id="user_label" class="nav-item mx-2 dropstart usermenu" title="
|
|
1
|
+
<li id="user_label" class="nav-item mx-2 dropstart usermenu" title="{user.username}">
|
|
2
2
|
<!-- IMPORT partials/sidebar/user-menu.tpl -->
|
|
3
3
|
</li>
|
|
4
4
|
|
|
5
5
|
{{{ if config.searchEnabled }}}
|
|
6
|
-
<li component="sidebar/search" class="nav-item mx-2 search dropstart position-relative">
|
|
6
|
+
<li component="sidebar/search" class="nav-item mx-2 search dropstart position-relative" title="[[global:header.search]]">
|
|
7
7
|
<!-- IMPORT partials/sidebar/search.tpl -->
|
|
8
8
|
</li>
|
|
9
9
|
{{{ end }}}
|
|
10
10
|
|
|
11
|
-
<li component="notifications" class="nav-item mx-2 notifications dropstart">
|
|
11
|
+
<li component="notifications" class="nav-item mx-2 notifications dropstart" title="[[global:header.notifications]]">
|
|
12
12
|
<!-- IMPORT partials/sidebar/notifications.tpl -->
|
|
13
13
|
</li>
|
|
14
14
|
|
|
15
15
|
{{{ if canChat }}}
|
|
16
|
-
<li class="nav-item mx-2 chats dropstart">
|
|
16
|
+
<li class="nav-item mx-2 chats dropstart" title="[[global:header.chats]]">
|
|
17
17
|
<!-- IMPORT partials/sidebar/chats.tpl -->
|
|
18
18
|
</li>
|
|
19
19
|
{{{ end }}}
|
|
20
20
|
|
|
21
|
-
<li component="sidebar/drafts" class="nav-item mx-2 drafts dropstart">
|
|
21
|
+
<li component="sidebar/drafts" class="nav-item mx-2 drafts dropstart" title="[[global:header.drafts]]">
|
|
22
22
|
<!-- IMPORT partials/sidebar/drafts.tpl -->
|
|
23
23
|
</li>
|
|
@@ -1,16 +1,16 @@
|
|
|
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">
|
|
13
|
+
<ul component="notifications/list" class="notification-list list-unstyled overscroll-behavior-contain">
|
|
14
14
|
<li class="mb-2 placeholder-wave">
|
|
15
15
|
<div class="text-sm placeholder col-11"> </div>
|
|
16
16
|
<div class="text-sm placeholder col-5"> </div><br />
|
|
@@ -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,7 +2,7 @@
|
|
|
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" aria-labelledby="user_dropdown">
|
|
6
6
|
<li>
|
|
7
7
|
<a class="dropdown-item rounded-1 d-flex align-items-center gap-1" component="header/profilelink" href="{relative_path}/user/{user.userslug}">
|
|
8
8
|
<div class="text-center"><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></div>
|
|
@@ -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-md-flex flex-column justify-content-between sticky-top ff-secondary">
|
|
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-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 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,25 +12,28 @@
|
|
|
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
|
|
21
|
+
{{{ if ./dropdown }}}
|
|
22
22
|
<ul class="dropdown-menu shadow">
|
|
23
|
-
{
|
|
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
|
+
{{{ if !config.disableCustomUserSkins }}}
|
|
31
32
|
<!-- IMPORT partials/skin-switcher.tpl -->
|
|
33
|
+
{{{ end }}}
|
|
34
|
+
|
|
32
35
|
<div class="sidebar-toggle m-2 d-none d-lg-block">
|
|
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">
|
|
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:toggle-sidebars]]">
|
|
34
37
|
<i class="fa fa-fw fa-angles-right"></i>
|
|
35
38
|
<i class="fa fa-fw fa-angles-left"></i>
|
|
36
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-md-flex flex-column sticky-top ff-secondary">
|
|
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-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
4
|
<!-- IMPORT partials/sidebar/logged-in-menu.tpl -->
|
|
@@ -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>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{{{each tags}}}
|
|
2
|
-
<
|
|
3
|
-
<
|
|
4
|
-
<span class="tag-
|
|
5
|
-
</
|
|
2
|
+
<div class="tag-container d-flex">
|
|
3
|
+
<div class="d-flex gap-2 align-items-center text-truncate">
|
|
4
|
+
<a class="fs-5 badge border text-bg-light text-truncate text-decoration-none" 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}" data-tag="{tags.valueEscaped}">{tags.valueEscaped}</span></a>
|
|
5
|
+
<span class="tag-topic-count text-secondary fw-semibold text-nowrap human-readable-number" title="{tags.score}">{tags.score}</span>
|
|
6
|
+
</div>
|
|
7
|
+
</div>
|
|
6
8
|
{{{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,48 @@
|
|
|
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="lh-1 px-2">
|
|
8
|
+
<i class="fa fa-angle-double-up pointer fa-fw pagetop fs-5" style="z-index: 1;"></i>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
<a href="#" class="text-reset dropdown-toggle d-inline-block px-3 text-decoration-none" data-bs-toggle="dropdown">
|
|
12
|
+
<span class="pagination-text position-relative fw-bold"></span>
|
|
13
|
+
</a>
|
|
14
|
+
|
|
15
|
+
<div class="lh-1 px-2">
|
|
16
|
+
<i class="fa fa-angle-double-down pointer fa-fw pagebottom fs-5" style="z-index: 1;"></i>
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
<ul class="dropdown-menu p-0" role="menu" style="width: 100%;">
|
|
20
|
+
<li class="p-3">
|
|
21
|
+
<div class="row">
|
|
22
|
+
<div class="col-8 post-content overflow-hidden mb-3" style="height: 350px;"></div>
|
|
23
|
+
<div class="col-4 ps-0 text-end">
|
|
24
|
+
<div class="scroller-content">
|
|
25
|
+
<span class="pointer pagetop">[[topic:first-post]] <i class="fa fa-angle-double-up"></i></span>
|
|
26
|
+
<div class="scroller-container border-gray-200" style="height: 300px; border-right: 3px solid; margin-right: 5.5px;">
|
|
27
|
+
<div class="scroller-thumb position-relative text-nowrap" style="height: 40px;right: -6px; padding-right: 15px; margin-right: -15px;">
|
|
28
|
+
<span class="thumb-text text-sm fw-bold user-select-none position-relative pe-2" style="top: -15px;"></span>
|
|
29
|
+
<div class="rounded-2 scroller-thumb-icon bg-primary d-inline-block position-relative" style="width: 9px; height:40px;"></div>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
<span class="pointer pagebottom">[[topic:last-post]] <i class="fa fa-angle-double-down"></i></span>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
<div class="row">
|
|
37
|
+
<div class="col-6">
|
|
38
|
+
<button id="myNextPostBtn" class="btn btn-outline-secondary form-control text-truncate" disabled>[[topic:go-to-my-next-post]]</button>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="col-6">
|
|
41
|
+
<input type="number" class="form-control" id="indexInput" placeholder="[[global:pagination.enter_index]]">
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
</li>
|
|
45
|
+
</ul>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
@@ -1,84 +1,82 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
<!-- IF posts.display_moderator_tools -->
|
|
1
|
+
{{{ if posts.display_moderator_tools }}}
|
|
4
2
|
<li>
|
|
5
3
|
<a class="dropdown-item" component="post/edit" role="menuitem" tabindex="-1" href="#">
|
|
6
4
|
<span class="menu-icon"><i class="fa fa-fw fa-pencil"></i></span> [[topic:edit]]
|
|
7
5
|
</a>
|
|
8
6
|
</li>
|
|
9
|
-
<li
|
|
10
|
-
<a class="dropdown-item" component="post/delete" role="menuitem" tabindex="-1" href="#" class="
|
|
7
|
+
<li {{{ if posts.deleted }}}hidden{{{ end }}}>
|
|
8
|
+
<a class="dropdown-item" component="post/delete" role="menuitem" tabindex="-1" href="#" class="{{{ if posts.deleted }}}hidden{{{ end }}}">
|
|
11
9
|
<span class="menu-icon"><i class="fa fa-fw fa-trash-o"></i><span> [[topic:delete]]
|
|
12
10
|
</a>
|
|
13
11
|
</li>
|
|
14
|
-
<li
|
|
15
|
-
<a class="dropdown-item" component="post/restore" role="menuitem" tabindex="-1" href="#" class="
|
|
12
|
+
<li {{{ if !posts.deleted }}}hidden{{{ end }}}>
|
|
13
|
+
<a class="dropdown-item" component="post/restore" role="menuitem" tabindex="-1" href="#" class="{{{ if !posts.deleted }}}hidden{{{ end }}}">
|
|
16
14
|
<span class="menu-icon"><i class="fa fa-fw fa-history"></i><span> [[topic:restore]]
|
|
17
15
|
</a>
|
|
18
16
|
</li>
|
|
19
|
-
|
|
20
|
-
<li
|
|
21
|
-
<a class="dropdown-item" component="post/purge" role="menuitem" tabindex="-1" href="#" class="
|
|
17
|
+
{{{ if posts.display_purge_tools }}}
|
|
18
|
+
<li {{{ if !posts.deleted }}}hidden{{{ end }}}>
|
|
19
|
+
<a class="dropdown-item" component="post/purge" role="menuitem" tabindex="-1" href="#" class="{{{ if !posts.deleted }}}hidden{{{ end }}}">
|
|
22
20
|
<span class="menu-icon"><i class="fa fa-fw fa-eraser"></i></span> [[topic:purge]]
|
|
23
21
|
</a>
|
|
24
22
|
</li>
|
|
25
|
-
|
|
23
|
+
{{{ end }}}
|
|
26
24
|
|
|
27
|
-
|
|
25
|
+
{{{ if posts.display_move_tools }}}
|
|
28
26
|
<li>
|
|
29
27
|
<a class="dropdown-item" component="post/move" role="menuitem" tabindex="-1" href="#">
|
|
30
28
|
<span class="menu-icon"><i class="fa fa-fw fa-arrows"></i></span> [[topic:move]]
|
|
31
29
|
</a>
|
|
32
30
|
</li>
|
|
33
|
-
|
|
31
|
+
{{{ end }}}
|
|
34
32
|
|
|
35
|
-
|
|
33
|
+
{{{ if posts.display_change_owner_tools }}}
|
|
36
34
|
<li>
|
|
37
35
|
<a class="dropdown-item" component="post/change-owner" role="menuitem" tabindex="-1" href="#">
|
|
38
36
|
<span class="menu-icon"><i class="fa fa-fw fa-user"></i></span> [[topic:change-owner]]
|
|
39
37
|
</a>
|
|
40
38
|
</li>
|
|
41
|
-
|
|
39
|
+
{{{ end }}}
|
|
42
40
|
|
|
43
|
-
|
|
41
|
+
{{{ if posts.ip }}}
|
|
44
42
|
<li>
|
|
45
43
|
<a class="dropdown-item" component="post/copy-ip" role="menuitem" tabindex="-1" href="#" data-clipboard-text="{posts.ip}">
|
|
46
44
|
<span class="menu-icon" ><i class="fa fa-fw fa-copy"></i></span> [[topic:copy-ip]] {posts.ip}
|
|
47
45
|
</a>
|
|
48
46
|
</li>
|
|
49
|
-
|
|
47
|
+
{{{ if posts.display_ip_ban }}}
|
|
50
48
|
<li>
|
|
51
49
|
<a class="dropdown-item" component="post/ban-ip" role="menuitem" tabindex="-1" href="#" data-ip="{posts.ip}">
|
|
52
50
|
<span class="menu-icon"><i class="fa fa-fw fa-ban"></i></span> [[topic:ban-ip]] {posts.ip}
|
|
53
51
|
</a>
|
|
54
52
|
</li>
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
{{{ end }}}
|
|
54
|
+
{{{ end }}}
|
|
55
|
+
{{{ end }}}
|
|
58
56
|
|
|
59
|
-
{{{each posts.tools}}}
|
|
57
|
+
{{{ each posts.tools }}}
|
|
60
58
|
<li {{{ if ./disabled }}}class="disabled" {{{ end }}}>
|
|
61
59
|
<a class="dropdown-item" {{{ if ./action}}}component="{./action}"{{{ end }}} role="menuitem" tabindex="-1" href="{{{ if ./href }}}{./href}{{{ else }}}#{{{ end }}}">
|
|
62
|
-
<span class="menu-icon"><i class="fa fa-fw {
|
|
60
|
+
<span class="menu-icon"><i class="fa fa-fw {./icon}"></i></span> {{./html}}
|
|
63
61
|
</a>
|
|
64
62
|
</li>
|
|
65
|
-
{{{end}}}
|
|
63
|
+
{{{ end }}}
|
|
66
64
|
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
{{{ if !posts.deleted }}}
|
|
66
|
+
{{{ if posts.display_history }}}
|
|
69
67
|
<li>
|
|
70
68
|
<a class="dropdown-item" component="post/view-history" role="menuitem" tabindex="-1" href="#">
|
|
71
69
|
<span class="menu-icon"><i class="fa fa-fw fa-history"></i></span> [[topic:view-history]]
|
|
72
70
|
</a>
|
|
73
71
|
</li>
|
|
74
|
-
|
|
72
|
+
{{{ end }}}
|
|
75
73
|
|
|
76
74
|
{{{ if config.loggedIn }}}
|
|
77
75
|
<li>
|
|
78
76
|
<a class="dropdown-item" component="post/bookmark" role="menuitem" tabindex="-1" href="#" data-bookmarked="{posts.bookmarked}">
|
|
79
77
|
<span class="menu-icon">
|
|
80
|
-
<i component="post/bookmark/on" class="fa fa-fw fa-heart
|
|
81
|
-
<i component="post/bookmark/off" class="fa fa-fw fa-heart-o
|
|
78
|
+
<i component="post/bookmark/on" class="fa fa-fw fa-heart {{{ if !posts.bookmarked }}}hidden{{{ end }}}"></i>
|
|
79
|
+
<i component="post/bookmark/off" class="fa fa-fw fa-heart-o {{{ if posts.bookmarked }}}hidden{{{ end }}}"></i>
|
|
82
80
|
</span>
|
|
83
81
|
<span class="bookmark-text">[[topic:bookmark]]</span>
|
|
84
82
|
<span component="post/bookmark-count" class="bookmarkCount badge" data-bookmarks="{posts.bookmarks}">{posts.bookmarks}</span>
|
|
@@ -92,16 +90,16 @@
|
|
|
92
90
|
</a>
|
|
93
91
|
</li>
|
|
94
92
|
|
|
95
|
-
|
|
96
|
-
|
|
93
|
+
{{{ if postSharing.length }}}
|
|
94
|
+
{{{ if config.loggedIn }}}<li class="dropdown-divider"></li>{{{ end }}}
|
|
97
95
|
<li class="dropdown-header">[[topic:share_this_post]]</li>
|
|
98
|
-
|
|
99
|
-
{{{each postSharing}}}
|
|
96
|
+
{{{ end }}}
|
|
97
|
+
{{{ each postSharing }}}
|
|
100
98
|
<li>
|
|
101
|
-
<a class="dropdown-item" role="menuitem" component="share/{
|
|
99
|
+
<a class="dropdown-item" role="menuitem" component="share/{./id}" tabindex="-1" href="#"><span class="menu-icon"><i class="fa fa-fw {./class}"></i></span> {./name}</a>
|
|
102
100
|
</li>
|
|
103
|
-
{{{end}}}
|
|
104
|
-
|
|
101
|
+
{{{ end }}}
|
|
102
|
+
{{{ end }}}
|
|
105
103
|
|
|
106
104
|
{{{ if posts.display_flag_tools }}}
|
|
107
105
|
<li class="dropdown-divider"></li>
|
|
@@ -120,7 +118,7 @@
|
|
|
120
118
|
{{{ end }}}
|
|
121
119
|
{{{ end }}}
|
|
122
120
|
|
|
123
|
-
|
|
121
|
+
{{{ if posts.display_moderator_tools }}}
|
|
124
122
|
{{{ if posts.flags.exists }}}
|
|
125
123
|
<li>
|
|
126
124
|
<a class="dropdown-item" role="menuitem" tabindex="-1" href="{config.relative_path}/flags/{posts.flags.flagId}"><i class="fa fa-fw fa-exclamation-circle"></i> [[topic:view-flag-report]]</a>
|
|
@@ -131,4 +129,4 @@
|
|
|
131
129
|
</li>
|
|
132
130
|
{{{ end }}}
|
|
133
131
|
{{{ end }}}
|
|
134
|
-
|
|
132
|
+
{{{ end }}}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
{{{ if (!./index && widgets.mainpost-header.length) }}}
|
|
2
|
+
<div data-widget-area="mainpost-header">
|
|
3
|
+
{{{ each widgets.mainpost-header }}}
|
|
4
|
+
{widgets.mainpost-header.html}
|
|
5
|
+
{{{ end }}}
|
|
6
|
+
</div>
|
|
7
|
+
{{{ end }}}
|
|
8
|
+
|
|
1
9
|
<div class="d-flex align-items-start gap-3">
|
|
2
10
|
<div class="icon py-1 bg-body d-none d-sm-block">
|
|
3
11
|
<a class="d-inline-block position-relative text-decoration-none" href="{{{ if ./user.userslug }}}{config.relative_path}/user/{./user.userslug}{{{ else }}}#{{{ end }}}">
|
|
@@ -25,14 +33,14 @@
|
|
|
25
33
|
{{{ end }}}
|
|
26
34
|
{{{ end }}}
|
|
27
35
|
|
|
28
|
-
|
|
36
|
+
{{{ if posts.user.banned }}}
|
|
29
37
|
<span class="badge bg-danger rounded-1">[[user:banned]]</span>
|
|
30
|
-
|
|
38
|
+
{{{ end }}}
|
|
31
39
|
|
|
32
40
|
<div class="d-flex gap-1 hidden-xs align-items-center">
|
|
33
41
|
{{{ if posts.toPid }}}
|
|
34
42
|
<span class="text-muted">replied to</span><!-- FIX THIS, DOES NOT l10n PROPERLY -->
|
|
35
|
-
<a component="post/parent" data-topid="{posts.toPid}" href="{config.relative_path}/post/{posts.toPid}"
|
|
43
|
+
<a component="post/parent" data-topid="{posts.toPid}" href="{config.relative_path}/post/{posts.toPid}">{{{ if posts.parent.username }}}{posts.parent.username}{{{ else }}}[[global:guest]]{{{ end }}}</a>
|
|
36
44
|
{{{ else }}}
|
|
37
45
|
<span class="text-muted">wrote</span><!-- FIX THIS, DOES NOT l10n PROPERLY -->
|
|
38
46
|
{{{ end }}}
|
|
@@ -45,16 +53,17 @@
|
|
|
45
53
|
|
|
46
54
|
<div>
|
|
47
55
|
<span>
|
|
48
|
-
|
|
56
|
+
{{{ if posts.user.custom_profile_info.length }}}
|
|
49
57
|
|
|
|
50
|
-
{{{each posts.user.custom_profile_info}}}
|
|
58
|
+
{{{ each posts.user.custom_profile_info }}}
|
|
51
59
|
{posts.user.custom_profile_info.content}
|
|
52
|
-
{{{end}}}
|
|
53
|
-
|
|
60
|
+
{{{ end }}}
|
|
61
|
+
{{{ end }}}
|
|
54
62
|
</span>
|
|
55
63
|
</div>
|
|
56
64
|
<div class="d-flex align-items-center gap-1 flex-grow-1 justify-content-end">
|
|
57
65
|
<span class="bookmarked opacity-0 text-primary"><i class="fa fa-bookmark-o"></i></span>
|
|
66
|
+
<a href="{config.relative_path}/post/{./pid}" class="post-index text-muted d-none d-md-inline">#{increment(./index, "1")}</a>
|
|
58
67
|
</div>
|
|
59
68
|
</div>
|
|
60
69
|
|
|
@@ -74,7 +83,7 @@
|
|
|
74
83
|
<a component="post/reply-count" data-target-component="post/replies/container" href="#" class="d-flex gap-2 align-items-center mt-2 btn-outline border rounded-1 p-1 threaded-replies user-select-none float-start text-muted text-decoration-none {{{ if !posts.replies.count }}}hidden{{{ end }}}">
|
|
75
84
|
<span component="post/reply-count/avatars" class="avatars d-inline-flex gap-1 align-items-top {{{ if posts.replies.hasMore }}}hasMore{{{ end }}}">
|
|
76
85
|
{{{each posts.replies.users}}}
|
|
77
|
-
<span>{buildAvatar(posts.replies.users, "20px", true, "")}</span>
|
|
86
|
+
<span>{buildAvatar(posts.replies.users, "20px", true, "avatar-tooltip")}</span>
|
|
78
87
|
{{{end}}}
|
|
79
88
|
{{{ if posts.replies.hasMore}}}
|
|
80
89
|
<span><i class="fa fa-ellipsis"></i></span>
|
|
@@ -104,7 +113,7 @@
|
|
|
104
113
|
<i class="fa fa-chevron-up text-primary"></i>
|
|
105
114
|
</a>
|
|
106
115
|
|
|
107
|
-
<div class="d-inline-block px-
|
|
116
|
+
<div class="d-inline-block px-2 mx-1 btn-ghost-sm" component="post/vote-count" data-votes="{posts.votes}">{posts.votes}</div>
|
|
108
117
|
|
|
109
118
|
{{{ if !downvote:disabled }}}
|
|
110
119
|
<a component="post/downvote" href="#" class="btn-ghost-sm {{{ if posts.downvoted }}}downvoted{{{ end }}}">
|
|
@@ -116,4 +125,12 @@
|
|
|
116
125
|
|
|
117
126
|
<!-- IMPORT partials/topic/post-menu.tpl -->
|
|
118
127
|
</div>
|
|
119
|
-
</div>
|
|
128
|
+
</div>
|
|
129
|
+
|
|
130
|
+
{{{ if (!./index && widgets.mainpost-footer.length) }}}
|
|
131
|
+
<div data-widget-area="mainpost-footer">
|
|
132
|
+
{{{ each widgets.mainpost-footer }}}
|
|
133
|
+
{widgets.mainpost-footer.html}
|
|
134
|
+
{{{ end }}}
|
|
135
|
+
</div>
|
|
136
|
+
{{{ end }}}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
{{{ if privileges.topics:reply }}}
|
|
2
2
|
<div component="topic/quickreply/container" class="quick-reply d-flex gap-3">
|
|
3
3
|
<div class="icon hidden-xs">
|
|
4
|
-
<a class="d-inline-block position-relative" href="
|
|
4
|
+
<a class="d-inline-block position-relative" href="{{{ if loggedInUser.userslug }}}{config.relative_path}/user/{loggedInUser.userslug}{{{ else }}}#{{{ end }}}">
|
|
5
5
|
{buildAvatar(loggedInUser, "48px", true, "", "user/picture")}
|
|
6
6
|
{{{ if loggedInUser.status }}}<span component="user/status" class="position-absolute translate-middle-y badge border border-white border-2 rounded-circle status {loggedInUser.status}"><span class="visually-hidden">[[global:{loggedInUser.status}]]</span></span>{{{ end }}}
|
|
7
7
|
</a>
|
|
@@ -9,14 +9,14 @@
|
|
|
9
9
|
<form class="flex-grow-1 d-flex flex-column gap-2" method="post" action="{config.relative_path}/compose">
|
|
10
10
|
<input type="hidden" name="tid" value="{tid}" />
|
|
11
11
|
<input type="hidden" name="_csrf" value="{config.csrf_token}" />
|
|
12
|
-
<div class="quickreply-message">
|
|
12
|
+
<div class="quickreply-message position-relative">
|
|
13
13
|
<textarea rows="4" name="content" component="topic/quickreply/text" class="form-control mousetrap" placeholder="[[modules:composer.textarea.placeholder]]"></textarea>
|
|
14
14
|
<div class="imagedrop"><div>[[topic:composer.drag_and_drop_images]]</div></div>
|
|
15
15
|
</div>
|
|
16
16
|
<div>
|
|
17
|
-
<div class="
|
|
17
|
+
<div class="d-flex justify-content-end gap-2">
|
|
18
|
+
<button type="submit" component="topic/quickreply/expand" class="btn btn-sm btn-outline" formmethod="get"><i class="fa fa-expand"></i></button>
|
|
18
19
|
<button type="submit" component="topic/quickreply/button" class="btn btn-sm btn-primary">[[topic:post-quick-reply]]</button>
|
|
19
|
-
<button type="submit" component="topic/quickreply/expand" class="btn btn-sm btn-primary" formmethod="get"><i class="fa fa-expand"></i></button>
|
|
20
20
|
</div>
|
|
21
21
|
</div>
|
|
22
22
|
</form>
|
|
@@ -25,4 +25,4 @@
|
|
|
25
25
|
</form>
|
|
26
26
|
|
|
27
27
|
</div>
|
|
28
|
-
|
|
28
|
+
{{{ end }}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<div component="topic/reply/container" class="btn-group action-bar
|
|
1
|
+
<div component="topic/reply/container" class="btn-group action-bar {{{ if !privileges.topics:reply }}}hidden{{{ end }}}">
|
|
2
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 d-sm-block d-md-none"></i><span class="d-none d-md-block"> [[topic:reply]]</span></a>
|
|
3
3
|
<button type="button" class="btn btn-sm btn-primary dropdown-toggle" data-bs-toggle="dropdown">
|
|
4
4
|
<span class="caret"></span>
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
-
|
|
3
1
|
{{{ if privileges.editable }}}
|
|
4
|
-
<li
|
|
5
|
-
<li
|
|
6
|
-
<li
|
|
7
|
-
<li
|
|
2
|
+
<li {{{ if locked }}}hidden{{{ end }}}><a component="topic/lock" href="#" class="dropdown-item {{{ if locked }}}hidden{{{ end }}}"><i class="fa fa-fw fa-lock"></i> [[topic:thread_tools.lock]]</a></li>
|
|
3
|
+
<li {{{ if !locked }}}hidden{{{ end }}}><a component="topic/unlock" href="#" class="dropdown-item {{{ if !locked }}}hidden{{{ end }}}"><i class="fa fa-fw fa-unlock"></i> [[topic:thread_tools.unlock]]</a></li>
|
|
4
|
+
<li {{{ if pinned }}}hidden{{{ end }}}><a component="topic/pin" href="#" class="dropdown-item {{{ if pinned }}}hidden{{{ end }}}"><i class="fa fa-fw fa-thumb-tack"></i> [[topic:thread_tools.pin]]</a></li>
|
|
5
|
+
<li {{{ if !pinned }}}hidden{{{ end }}}><a component="topic/unpin" href="#" class="dropdown-item {{{ if !pinned }}}hidden{{{ end }}}"><i class="fa fa-fw fa-thumb-tack fa-rotate-90"></i> [[topic:thread_tools.unpin]]</a></li>
|
|
8
6
|
|
|
9
7
|
<li><a component="topic/move" class="dropdown-item" href="#"><i class="fa fa-fw fa-arrows"></i> [[topic:thread_tools.move]]</a></li>
|
|
10
8
|
<li><a component="topic/merge" class="dropdown-item" href="#"><i class="fa fa-fw fa-code-fork"></i> [[topic:thread_tools.merge]]</a></li>
|
|
@@ -16,19 +14,19 @@
|
|
|
16
14
|
<li class="dropdown-divider"></li>
|
|
17
15
|
{{{ end }}}
|
|
18
16
|
|
|
19
|
-
|
|
20
|
-
<li
|
|
17
|
+
{{{ if privileges.deletable }}}
|
|
18
|
+
<li {{{ if deleted }}}hidden{{{ end }}}><a component="topic/delete" href="#" class="dropdown-item {{{ if deleted }}}hidden{{{ end }}}"><i class="fa fa-fw fa-trash-o"></i> [[topic:thread_tools.delete]]</a></li>
|
|
21
19
|
{{{ if !scheduled }}}
|
|
22
|
-
<li
|
|
20
|
+
<li {{{ if !deleted }}}hidden{{{ end }}}><a component="topic/restore" href="#" class="dropdown-item {{{ if !deleted }}}hidden{{{ end }}}"><i class="fa fa-fw fa-history"></i> [[topic:thread_tools.restore]]</a></li>
|
|
21
|
+
{{{ end }}}
|
|
22
|
+
{{{ if privileges.purge }}}
|
|
23
|
+
<li {{{ if !deleted }}}hidden{{{ end }}}><a component="topic/purge" href="#" class="dropdown-item {{{ if !deleted }}}hidden{{{ end }}}"><i class="fa fa-fw fa-eraser"></i> [[topic:thread_tools.purge]]</a></li>
|
|
23
24
|
{{{ end }}}
|
|
24
|
-
|
|
25
|
-
<li <!-- IF !deleted -->hidden<!-- ENDIF !deleted -->><a component="topic/purge" href="#" class="dropdown-item <!-- IF !deleted -->hidden<!-- ENDIF !deleted -->"><i class="fa fa-fw fa-eraser"></i> [[topic:thread_tools.purge]]</a></li>
|
|
26
|
-
<!-- END -->
|
|
27
|
-
<!-- IF privileges.isAdminOrMod -->
|
|
25
|
+
{{{ if privileges.isAdminOrMod }}}
|
|
28
26
|
<li><a component="topic/delete/posts" class="dropdown-item" href="#"><i class="fa fa-fw fa-trash-o"></i> [[topic:thread_tools.delete-posts]]</a></li>
|
|
29
|
-
|
|
27
|
+
{{{ end }}}
|
|
30
28
|
|
|
31
|
-
{{{each thread_tools}}}
|
|
32
|
-
<li><a href="#" class="dropdown-item {
|
|
33
|
-
{{{end}}}
|
|
34
|
-
|
|
29
|
+
{{{ each thread_tools }}}
|
|
30
|
+
<li><a href="#" class="dropdown-item {./class}"><i class="fa fa-fw {./icon}"></i> {./title}</a></li>
|
|
31
|
+
{{{ end }}}
|
|
32
|
+
{{{ end }}}
|