nodebb-theme-harmony 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/languages/en-GB/harmony.json +5 -0
- package/library.js +101 -26
- package/package.json +5 -2
- package/plugin.json +14 -2
- package/public/harmony.js +101 -0
- package/scss/account.scss +38 -0
- package/scss/chats.scss +72 -0
- package/scss/common.scss +65 -0
- package/scss/fonts.scss +17 -0
- package/scss/groups.scss +30 -0
- package/scss/harmony.scss +23 -3
- package/scss/header.scss +16 -0
- package/scss/mixins.scss +183 -0
- package/scss/modals.scss +4 -0
- package/scss/modules/bottom-sheet.scss +52 -0
- package/scss/modules/breadcrumbs.scss +16 -0
- package/scss/modules/composer.scss +21 -0
- package/scss/modules/cover.scss +115 -0
- package/scss/modules/tags.scss +6 -0
- package/scss/modules/topic-navigator.scss +61 -0
- package/scss/modules/topics-list.scss +20 -0
- package/scss/modules/user-menu.scss +5 -0
- package/scss/overrides.scss +65 -0
- package/scss/sidebar.scss +125 -0
- package/scss/skins.scss +13 -0
- package/scss/status.scss +25 -0
- package/scss/topic.scss +128 -0
- package/templates/account/best.tpl +0 -2
- package/templates/account/blocks.tpl +31 -26
- package/templates/account/bookmarks.tpl +0 -2
- package/templates/account/categories.tpl +1 -3
- package/templates/account/controversial.tpl +0 -2
- package/templates/account/downvoted.tpl +0 -2
- package/templates/account/followers.tpl +14 -10
- package/templates/account/following.tpl +14 -10
- package/templates/account/groups.tpl +13 -11
- package/templates/account/ignored.tpl +0 -2
- package/templates/account/posts.tpl +29 -10
- package/templates/account/profile.tpl +76 -159
- package/templates/account/topics.tpl +32 -21
- package/templates/account/uploads.tpl +38 -35
- package/templates/account/upvoted.tpl +0 -2
- package/templates/account/watched.tpl +0 -2
- package/templates/admin/plugins/harmony.tpl +17 -0
- package/templates/categories.tpl +5 -5
- package/templates/category.tpl +26 -26
- package/templates/chat.tpl +9 -9
- package/templates/chats.tpl +5 -7
- package/templates/footer.tpl +11 -7
- package/templates/groups/details.tpl +76 -62
- package/templates/groups/list.tpl +16 -11
- package/templates/header.tpl +34 -21
- package/templates/login.tpl +51 -45
- package/templates/partials/account/admin-menu.tpl +36 -0
- package/templates/partials/account/category-item.tpl +17 -17
- package/templates/partials/account/header.tpl +77 -35
- package/templates/partials/account/sidebar-left.tpl +82 -0
- package/templates/partials/breadcrumbs.tpl +4 -12
- package/templates/partials/categories/item.tpl +48 -44
- package/templates/partials/categories/lastpost.tpl +17 -19
- package/templates/partials/categories/link.tpl +5 -13
- package/templates/partials/category/sort.tpl +4 -7
- package/templates/partials/category/subcategory.tpl +4 -4
- package/templates/partials/category/tools.tpl +6 -9
- package/templates/partials/category/watch.tpl +7 -11
- package/templates/partials/category-filter-content.tpl +5 -6
- package/templates/partials/category-filter.tpl +0 -2
- package/templates/partials/category-selector-content.tpl +4 -5
- package/templates/partials/category-selector.tpl +0 -2
- package/templates/partials/chats/dropdown.tpl +24 -32
- package/templates/partials/chats/message-window.tpl +7 -7
- package/templates/partials/chats/message.tpl +34 -34
- package/templates/partials/chats/recent_room.tpl +16 -29
- package/templates/partials/chats/system-message.tpl +4 -4
- package/templates/partials/chats/user.tpl +1 -3
- package/templates/partials/groups/admin.tpl +82 -175
- package/templates/partials/groups/badge.tpl +1 -3
- package/templates/partials/groups/invited.tpl +31 -0
- package/templates/partials/groups/list.tpl +14 -21
- package/templates/partials/groups/memberlist.tpl +28 -24
- package/templates/partials/groups/pending.tpl +28 -0
- package/templates/partials/groups/sidebar-left.tpl +27 -0
- package/templates/partials/mobile-footer.tpl +70 -0
- package/templates/partials/notifications_list.tpl +19 -27
- package/templates/partials/paginator.tpl +22 -24
- package/templates/partials/post_bar.tpl +23 -18
- package/templates/partials/posts_list.tpl +0 -2
- package/templates/partials/posts_list_item.tpl +14 -29
- package/templates/partials/quick-search-results.tpl +36 -25
- package/templates/partials/search-results.tpl +4 -1
- package/templates/partials/sidebar/chats.tpl +53 -0
- package/templates/partials/sidebar/drafts.tpl +41 -0
- package/templates/partials/sidebar/logged-out-menu.tpl +38 -0
- package/templates/partials/sidebar/notifications.tpl +28 -0
- package/templates/partials/sidebar/search-mobile.tpl +29 -0
- package/templates/partials/sidebar/search.tpl +30 -0
- package/templates/partials/sidebar/user-menu.tpl +87 -0
- package/templates/partials/sidebar-left.tpl +40 -0
- package/templates/partials/sidebar-right.tpl +41 -0
- package/templates/partials/skin-switcher.tpl +35 -0
- package/templates/partials/tags_list.tpl +0 -2
- package/templates/partials/toast.tpl +6 -8
- package/templates/partials/topic/event.tpl +4 -20
- package/templates/partials/topic/navigator.tpl +20 -41
- package/templates/partials/topic/necro-post.tpl +5 -4
- package/templates/partials/topic/post-menu.tpl +23 -2
- package/templates/partials/topic/post-placeholder.tpl +15 -0
- package/templates/partials/topic/post.tpl +67 -64
- package/templates/partials/topic/quickreply.tpl +12 -14
- package/templates/partials/topic/reactions.tpl +0 -2
- package/templates/partials/topic/reply-button.tpl +16 -20
- package/templates/partials/topic/selection-tooltip.tpl +0 -2
- package/templates/partials/topic/sort.tpl +8 -6
- package/templates/partials/topic/stats.tpl +15 -14
- package/templates/partials/topic/tag.tpl +1 -3
- package/templates/partials/topic/tags.tpl +1 -5
- package/templates/partials/topic/tools.tpl +13 -0
- package/templates/partials/topic/watch.tpl +15 -13
- package/templates/partials/topic-filters.tpl +4 -5
- package/templates/partials/topic-list-bar.tpl +54 -0
- package/templates/partials/topic-terms.tpl +4 -5
- package/templates/partials/topics_list.tpl +109 -100
- package/templates/partials/users/item.tpl +7 -0
- package/templates/partials/users_list.tpl +11 -60
- package/templates/partials/users_list_menu.tpl +10 -18
- package/templates/popular.tpl +1 -18
- package/templates/recent.tpl +8 -24
- package/templates/register.tpl +74 -60
- package/templates/tag.tpl +3 -15
- package/templates/tags.tpl +3 -4
- package/templates/top.tpl +1 -18
- package/templates/topic.tpl +39 -43
- package/templates/unread.tpl +1 -22
- package/templates/users.tpl +17 -17
- package/templates/admin/plugins/persona.tpl +0 -29
- package/templates/partials/account/menu.tpl +0 -103
- package/templates/partials/header/user-menu.tpl +0 -87
- package/templates/partials/menu.tpl +0 -188
- package/templates/partials/thread_tools.tpl +0 -10
|
@@ -1,60 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
<
|
|
4
|
-
{
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
<a href="{config.relative_path}/user/{users.userslug}">{users.username}</a>
|
|
13
|
-
</span>
|
|
14
|
-
</div>
|
|
15
|
-
<!-- IF section_online -->
|
|
16
|
-
<div class="lastonline">
|
|
17
|
-
<span class="timeago" title="{users.lastonlineISO}"></span>
|
|
18
|
-
</div>
|
|
19
|
-
<!-- ENDIF section_online -->
|
|
20
|
-
|
|
21
|
-
<!-- IF section_joindate -->
|
|
22
|
-
<div class="joindate">
|
|
23
|
-
<span class="timeago" title="{users.joindateISO}"></span>
|
|
24
|
-
</div>
|
|
25
|
-
<!-- ENDIF section_joindate -->
|
|
26
|
-
|
|
27
|
-
<!-- IF section_sort-reputation -->
|
|
28
|
-
<div class="reputation">
|
|
29
|
-
<i class="fa fa-star"></i>
|
|
30
|
-
<span class="formatted-number">{users.reputation}</span>
|
|
31
|
-
</div>
|
|
32
|
-
<!-- ENDIF section_sort-reputation -->
|
|
33
|
-
|
|
34
|
-
<!-- IF section_sort-posts -->
|
|
35
|
-
<div class="post-count">
|
|
36
|
-
<i class="fa fa-pencil"></i>
|
|
37
|
-
<span class="formatted-number">{users.postcount}</span>
|
|
38
|
-
</div>
|
|
39
|
-
<!-- ENDIF section_sort-posts -->
|
|
40
|
-
|
|
41
|
-
<!-- IF section_flagged -->
|
|
42
|
-
<div class="flag-count">
|
|
43
|
-
<i class="fa fa-flag"></i>
|
|
44
|
-
<span><a class="formatted-number" href="{config.relative_path}/flags?targetUid={users.uid}">{users.flags}</a></span>
|
|
45
|
-
</div>
|
|
46
|
-
<!-- ENDIF section_flagged -->
|
|
47
|
-
</div>
|
|
48
|
-
</li>
|
|
49
|
-
{{{end}}}
|
|
50
|
-
<!-- IF anonymousUserCount -->
|
|
51
|
-
<li class="users-box anon-user text-center pb-3" style="width: 102px;">
|
|
52
|
-
<span class="avatar avatar-rounded text-bg-secondary" component="avatar/icon" style="--avatar-size: 64px;">G</span>
|
|
53
|
-
<br/>
|
|
54
|
-
<div class="user-info">
|
|
55
|
-
<span id="online_anon_count">{anonymousUserCount}</span>
|
|
56
|
-
<span>[[global:guests]]</span>
|
|
57
|
-
</div>
|
|
58
|
-
</li>
|
|
59
|
-
<!-- ENDIF anonymousUserCount -->
|
|
60
|
-
</ul>
|
|
1
|
+
<div id="users-container" class="users-container row row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-5 g-2">
|
|
2
|
+
{{{ each users }}}
|
|
3
|
+
<a href="{config.relative_path}/user/{./userslug}" class="btn-ghost align-items-start">
|
|
4
|
+
{buildAvatar(@value, "48px", true)}
|
|
5
|
+
<div class="d-flex flex-1 flex-column">
|
|
6
|
+
<div class="fw-semibold">{./displayname}</div>
|
|
7
|
+
<div class="text-xs text-muted">@{./username}</div>
|
|
8
|
+
</div>
|
|
9
|
+
</a>
|
|
10
|
+
{{{ end }}}
|
|
11
|
+
</div>
|
|
@@ -1,23 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
<div component="user/list/menu" class="text-sm d-flex align-items-center gap-2">
|
|
2
|
+
<a class="btn-ghost fw-semibold" href="{config.relative_path}/users?section=online">[[global:online]]</a>
|
|
3
|
+
|
|
4
|
+
<a class="btn-ghost fw-semibold" href="{config.relative_path}/users?section=sort-posts">[[users:top_posters]]</a>
|
|
2
5
|
|
|
3
|
-
<ul class="nav nav-pills">
|
|
4
|
-
<li class="nav-item">
|
|
5
|
-
<a class="nav-link" href="{config.relative_path}/users?section=online">[[global:online]]</a>
|
|
6
|
-
</li>
|
|
7
|
-
<li class="nav-item">
|
|
8
|
-
<a class="nav-link" href="{config.relative_path}/users?section=sort-posts">[[users:top_posters]]</a>
|
|
9
|
-
</li>
|
|
10
6
|
{{{ if !reputation:disabled }}}
|
|
11
|
-
<
|
|
12
|
-
<a class="nav-link" href="{config.relative_path}/users?section=sort-reputation">[[users:most_reputation]]</a>
|
|
13
|
-
</li>
|
|
7
|
+
<a class="btn-ghost fw-semibold" href="{config.relative_path}/users?section=sort-reputation">[[users:most_reputation]]</a>
|
|
14
8
|
{{{ end }}}
|
|
9
|
+
|
|
15
10
|
{{{ if isAdminOrGlobalMod }}}
|
|
16
|
-
<
|
|
17
|
-
|
|
18
|
-
</
|
|
19
|
-
<li class="nav-item">
|
|
20
|
-
<a class="nav-link" href="{config.relative_path}/users?section=banned">[[user:banned]]</a>
|
|
21
|
-
</li>
|
|
11
|
+
<a class="btn-ghost fw-semibold" href="{config.relative_path}/users?section=flagged">[[users:most_flags]]</a>
|
|
12
|
+
|
|
13
|
+
<a class="btn-ghost fw-semibold" href="{config.relative_path}/users?section=banned">[[user:banned]]</a>
|
|
22
14
|
{{{ end }}}
|
|
23
|
-
</
|
|
15
|
+
</div>
|
package/templates/popular.tpl
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
-
|
|
3
1
|
<!-- IMPORT partials/breadcrumbs.tpl -->
|
|
4
2
|
<div data-widget-area="header">
|
|
5
3
|
{{{each widgets.header}}}
|
|
@@ -7,22 +5,7 @@
|
|
|
7
5
|
{{{end}}}
|
|
8
6
|
</div>
|
|
9
7
|
<div class="popular">
|
|
10
|
-
|
|
11
|
-
<div class="d-flex gap-1 align-items-stretch">
|
|
12
|
-
{{{ if canPost }}}
|
|
13
|
-
<!-- IMPORT partials/buttons/newTopic.tpl -->
|
|
14
|
-
{{{ else }}}
|
|
15
|
-
<a component="category/post/guest" href="{config.relative_path}/login" class="btn btn-primary">[[category:guest-login-post]]</a>
|
|
16
|
-
{{{ end }}}
|
|
17
|
-
</div>
|
|
18
|
-
<div class="d-flex gap-1 align-items-stretch">
|
|
19
|
-
<!-- IMPORT partials/topic-terms.tpl -->
|
|
20
|
-
<!-- IMPORT partials/topic-filters.tpl -->
|
|
21
|
-
<!-- IMPORT partials/category-filter-right.tpl -->
|
|
22
|
-
<!-- IMPORT partials/category/tools.tpl -->
|
|
23
|
-
</div>
|
|
24
|
-
</div>
|
|
25
|
-
|
|
8
|
+
<!-- IMPORT partials/topic-list-bar.tpl -->
|
|
26
9
|
<div class="category">
|
|
27
10
|
{{{ if !topics.length }}}
|
|
28
11
|
<div class="alert alert-warning" id="category-no-topics">[[recent:no_popular_topics]]</div>
|
package/templates/recent.tpl
CHANGED
|
@@ -1,39 +1,23 @@
|
|
|
1
|
-
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
-
|
|
3
1
|
<!-- IMPORT partials/breadcrumbs.tpl -->
|
|
2
|
+
|
|
4
3
|
<div data-widget-area="header">
|
|
5
4
|
{{{each widgets.header}}}
|
|
6
5
|
{{widgets.header.html}}
|
|
7
6
|
{{{end}}}
|
|
8
7
|
</div>
|
|
8
|
+
|
|
9
9
|
<div class="recent">
|
|
10
|
-
|
|
11
|
-
<div class="d-flex gap-1 align-items-stretch">
|
|
12
|
-
{{{ if canPost }}}
|
|
13
|
-
<!-- IMPORT partials/buttons/newTopic.tpl -->
|
|
14
|
-
{{{ else }}}
|
|
15
|
-
<a component="category/post/guest" href="{config.relative_path}/login" class="btn btn-primary">[[category:guest-login-post]]</a>
|
|
16
|
-
{{{ end }}}
|
|
17
|
-
<a href="{config.relative_path}/{selectedFilter.url}{querystring}" class="d-inline-block">
|
|
18
|
-
<div class="alert alert-warning h-100 m-0 px-2 py-1 d-flex align-items-center hide" id="new-topics-alert"></div>
|
|
19
|
-
</a>
|
|
20
|
-
</div>
|
|
21
|
-
<div class="d-flex gap-1 align-items-stretch">
|
|
22
|
-
<!-- IMPORT partials/topic-filters.tpl -->
|
|
23
|
-
<!-- IMPORT partials/category-filter-right.tpl -->
|
|
24
|
-
<!-- IMPORT partials/category/tools.tpl -->
|
|
25
|
-
</div>
|
|
26
|
-
</div>
|
|
10
|
+
<!-- IMPORT partials/topic-list-bar.tpl -->
|
|
27
11
|
|
|
28
12
|
<div class="category">
|
|
29
|
-
|
|
13
|
+
{{{ if !topics.length }}}
|
|
30
14
|
<div class="alert alert-warning" id="category-no-topics">[[recent:no_recent_topics]]</div>
|
|
31
|
-
|
|
15
|
+
{{{ end }}}
|
|
32
16
|
|
|
33
17
|
<!-- IMPORT partials/topics_list.tpl -->
|
|
34
18
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
19
|
+
{{{ if config.usePagination }}}
|
|
20
|
+
<!-- IMPORT partials/paginator.tpl -->
|
|
21
|
+
{{{ end }}}
|
|
38
22
|
</div>
|
|
39
23
|
</div>
|
package/templates/register.tpl
CHANGED
|
@@ -1,80 +1,94 @@
|
|
|
1
|
-
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
-
|
|
3
|
-
<!-- IMPORT partials/breadcrumbs.tpl -->
|
|
4
1
|
<div data-widget-area="header">
|
|
5
2
|
{{{each widgets.header}}}
|
|
6
3
|
{{widgets.header.html}}
|
|
7
4
|
{{{end}}}
|
|
8
5
|
</div>
|
|
9
6
|
<div class="row register">
|
|
10
|
-
<div class="
|
|
11
|
-
<
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
<label for="username" class="col-lg-2 col-form-label">[[register:username]]</label>
|
|
20
|
-
<div class="col-lg-10">
|
|
21
|
-
<input class="form-control" type="text" placeholder="[[register:username_placeholder]]" name="username" id="username" autocorrect="off" autocapitalize="off" autocomplete="off" />
|
|
22
|
-
<span class="register-feedback" id="username-notify"></span>
|
|
23
|
-
<span class="form-text">[[register:help.username_restrictions, {minimumUsernameLength}, {maximumUsernameLength}]]</span>
|
|
24
|
-
</div>
|
|
7
|
+
<div class="d-flex flex-column gap-2 {{{ if widgets.sidebar.length }}}col-lg-9 col-sm-12{{{ else }}}col-lg-12{{{ end }}}">
|
|
8
|
+
<h2 class="tracking-tight fw-semibold text-center">[[global:register]]</h2>
|
|
9
|
+
<div class="row justify-content-center gap-5">
|
|
10
|
+
|
|
11
|
+
<div class="col-12 col-md-3 px-md-0">
|
|
12
|
+
<div class="register-block">
|
|
13
|
+
<div class="alert alert-danger{{{ if !error }}} hidden{{{ end }}}" id="register-error-notify" >
|
|
14
|
+
<strong>[[error:registration-error]]</strong>
|
|
15
|
+
<p>{error}</p>
|
|
25
16
|
</div>
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
<div class="
|
|
29
|
-
<
|
|
30
|
-
<
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
<
|
|
34
|
-
</
|
|
17
|
+
|
|
18
|
+
<form component="register/local" class="d-flex flex-column gap-3" role="form" action="{config.relative_path}/register" method="post">
|
|
19
|
+
<div class="mb-2 d-flex flex-column gap-2">
|
|
20
|
+
<label for="username">[[register:username]]</label>
|
|
21
|
+
<div class="d-flex flex-column">
|
|
22
|
+
<input class="form-control" type="text" placeholder="[[register:username_placeholder]]" name="username" id="username" autocorrect="off" autocapitalize="off" autocomplete="off" />
|
|
23
|
+
<span class="register-feedback text-xs text-danger" id="username-notify"></span>
|
|
24
|
+
<span class="form-text text-xs">[[register:help.username_restrictions, {minimumUsernameLength}, {maximumUsernameLength}]]</span>
|
|
25
|
+
</div>
|
|
35
26
|
</div>
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
27
|
+
|
|
28
|
+
<div class="mb-2 d-flex flex-column gap-2">
|
|
29
|
+
<label for="password">[[register:password]]</label>
|
|
30
|
+
<div class="d-flex flex-column">
|
|
31
|
+
<input class="form-control" type="password" placeholder="[[register:password_placeholder]]" name="password" id="password" />
|
|
32
|
+
<span class="register-feedback text-xs text-danger" id="password-notify"></span>
|
|
33
|
+
<span class="form-text text-xs">[[register:help.minimum_password_length, {minimumPasswordLength}]]</span>
|
|
34
|
+
<p id="caps-lock-warning" class="text-danger hidden">
|
|
35
|
+
<i class="fa fa-exclamation-triangle"></i> [[login:caps-lock-enabled]]
|
|
36
|
+
</p>
|
|
37
|
+
</div>
|
|
42
38
|
</div>
|
|
43
|
-
</div>
|
|
44
39
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
<div class="mb-2 d-flex flex-column gap-2">
|
|
41
|
+
<label for="password-confirm">[[register:confirm_password]]</label>
|
|
42
|
+
<div>
|
|
43
|
+
<input class="form-control" type="password" placeholder="[[register:confirm_password_placeholder]]" name="password-confirm" id="password-confirm" />
|
|
44
|
+
<span class="register-feedback text-xs text-danger" id="password-confirm-notify"></span>
|
|
45
|
+
</div>
|
|
50
46
|
</div>
|
|
51
|
-
</div>
|
|
52
|
-
{{{end}}}
|
|
53
47
|
|
|
54
|
-
|
|
55
|
-
<div class="
|
|
56
|
-
<
|
|
48
|
+
{{{ each regFormEntry }}}
|
|
49
|
+
<div class="mb-2 regFormEntry d-flex flex-column gap-2">
|
|
50
|
+
<label for="register-{regFormEntry.styleName}">{regFormEntry.label}</label>
|
|
51
|
+
<div id="register-{regFormEntry.styleName}">{{regFormEntry.html}}</div>
|
|
57
52
|
</div>
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
53
|
+
{{{ end }}}
|
|
54
|
+
|
|
55
|
+
<button class="btn btn-primary" id="register" type="submit">[[register:register_now_button]]</button>
|
|
56
|
+
<hr/>
|
|
57
|
+
|
|
58
|
+
<span class="text-sm">[[register:already-have-account]]</span>
|
|
59
|
+
<a class="btn btn-outline-light text-body" href="{config.relative_path}/login">[[global:login]]</a>
|
|
60
|
+
|
|
61
|
+
<input id="token" type="hidden" name="token" value="" />
|
|
62
|
+
<input id="noscript" type="hidden" name="noscript" value="true" />
|
|
63
|
+
<input type="hidden" name="_csrf" value="{config.csrf_token}" />
|
|
64
|
+
</form>
|
|
65
|
+
</div>
|
|
63
66
|
</div>
|
|
64
|
-
</div>
|
|
65
67
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
68
|
+
{{{ if alternate_logins }}}
|
|
69
|
+
<div class="col-12 col-md-3 px-md-0">
|
|
70
|
+
<div class="alt-register-block d-flex flex-column gap-2">
|
|
71
|
+
<label>[[register:alternative_registration]]</label>
|
|
72
|
+
<ul class="alt-logins list-unstyled">
|
|
73
|
+
{{{ each authentication }}}
|
|
74
|
+
<li class="{./name} mb-2">
|
|
75
|
+
<a class="btn btn-outline-light d-flex align-items-center" rel="nofollow noopener noreferrer" target="_top" href="{config.relative_path}{./url}">
|
|
76
|
+
{{{ if ./icons.svg }}}
|
|
77
|
+
{./icons.svg}
|
|
78
|
+
{{{ else }}}
|
|
79
|
+
<i class="{./icons.normal}" style="color:{./color};"></i>
|
|
80
|
+
{{{ end }}}
|
|
81
|
+
{{{ if ./labels.register }}}
|
|
82
|
+
<div class="flex-1 text-body text-sm">{./labels.register}</div>
|
|
83
|
+
{{{ end }}}
|
|
84
|
+
</a>
|
|
85
|
+
</li>
|
|
86
|
+
{{{ end }}}
|
|
87
|
+
</ul>
|
|
88
|
+
</div>
|
|
75
89
|
</div>
|
|
90
|
+
{{{ end }}}
|
|
76
91
|
</div>
|
|
77
|
-
{{{ end }}}
|
|
78
92
|
</div>
|
|
79
93
|
<div data-widget-area="sidebar" class="col-lg-3 col-sm-12 {{{ if !widgets.sidebar.length }}}hidden{{{ end }}}">
|
|
80
94
|
{{{each widgets.sidebar}}}
|
package/templates/tag.tpl
CHANGED
|
@@ -1,25 +1,13 @@
|
|
|
1
|
-
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
-
|
|
3
1
|
<!-- IMPORT partials/breadcrumbs.tpl -->
|
|
2
|
+
|
|
4
3
|
<div data-widget-area="header">
|
|
5
4
|
{{{each widgets.header}}}
|
|
6
5
|
{{widgets.header.html}}
|
|
7
6
|
{{{end}}}
|
|
8
7
|
</div>
|
|
8
|
+
|
|
9
9
|
<div class="tag">
|
|
10
|
-
|
|
11
|
-
<div class="d-flex gap-1 align-items-stretch">
|
|
12
|
-
{{{ if loggedIn }}}
|
|
13
|
-
<!-- IMPORT partials/buttons/newTopic.tpl -->
|
|
14
|
-
{{{ else }}}
|
|
15
|
-
<a component="category/post/guest" href="{config.relative_path}/login" class="btn btn-primary">[[category:guest-login-post]]</a>
|
|
16
|
-
{{{ end }}}
|
|
17
|
-
</div>
|
|
18
|
-
<div class="d-flex gap-1 align-items-stretch">
|
|
19
|
-
<!-- IMPORT partials/category-filter-right.tpl -->
|
|
20
|
-
<!-- IMPORT partials/category/tools.tpl -->
|
|
21
|
-
</div>
|
|
22
|
-
</div>
|
|
10
|
+
<!-- IMPORT partials/topic-list-bar.tpl -->
|
|
23
11
|
|
|
24
12
|
<div class="category">
|
|
25
13
|
{{{ if !topics.length }}}
|
package/templates/tags.tpl
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
-
|
|
3
1
|
<!-- IMPORT partials/breadcrumbs.tpl -->
|
|
4
2
|
<div data-widget-area="header">
|
|
5
3
|
{{{each widgets.header}}}
|
|
@@ -7,13 +5,14 @@
|
|
|
7
5
|
{{{end}}}
|
|
8
6
|
</div>
|
|
9
7
|
<div class="tags">
|
|
8
|
+
<h2 class="fw-semibold">[[pages:tags]]</h2>
|
|
10
9
|
{{{ if displayTagSearch }}}
|
|
11
10
|
{{{ if tags.length }}}
|
|
12
11
|
<div class="row justify-content-end mb-3">
|
|
13
12
|
<div class="col-lg-3">
|
|
14
13
|
<div class="input-group">
|
|
15
|
-
<input type="text" class="form-control" placeholder="[[global:search]]" id="tag-search">
|
|
16
|
-
<button class="btn btn-primary" type="button">
|
|
14
|
+
<input type="text" class="form-control form-control-sm" placeholder="[[global:search]]" id="tag-search">
|
|
15
|
+
<button class="btn btn-primary btn-sm" type="button">
|
|
17
16
|
<i class="fa fa-search"></i>
|
|
18
17
|
</button>
|
|
19
18
|
</div>
|
package/templates/top.tpl
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
-
|
|
3
1
|
<!-- IMPORT partials/breadcrumbs.tpl -->
|
|
4
2
|
<div data-widget-area="header">
|
|
5
3
|
{{{each widgets.header}}}
|
|
@@ -7,22 +5,7 @@
|
|
|
7
5
|
{{{end}}}
|
|
8
6
|
</div>
|
|
9
7
|
<div class="top">
|
|
10
|
-
|
|
11
|
-
<div class="d-flex gap-1 align-items-stretch">
|
|
12
|
-
{{{ if canPost }}}
|
|
13
|
-
<!-- IMPORT partials/buttons/newTopic.tpl -->
|
|
14
|
-
{{{ else }}}
|
|
15
|
-
<a component="category/post/guest" href="{config.relative_path}/login" class="btn btn-primary">[[category:guest-login-post]]</a>
|
|
16
|
-
{{{ end }}}
|
|
17
|
-
</div>
|
|
18
|
-
<div class="d-flex gap-1 align-items-stretch">
|
|
19
|
-
<!-- IMPORT partials/topic-terms.tpl -->
|
|
20
|
-
<!-- IMPORT partials/topic-filters.tpl -->
|
|
21
|
-
<!-- IMPORT partials/category-filter-right.tpl -->
|
|
22
|
-
<!-- IMPORT partials/category/tools.tpl -->
|
|
23
|
-
</div>
|
|
24
|
-
</div>
|
|
25
|
-
|
|
8
|
+
<!-- IMPORT partials/topic-list-bar.tpl -->
|
|
26
9
|
<div class="category">
|
|
27
10
|
{{{ if !topics.length }}}
|
|
28
11
|
<div class="alert alert-warning" id="category-no-topics">[[top:no_top_topics]]</div>
|
package/templates/topic.tpl
CHANGED
|
@@ -1,50 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
{{{ if widgets.header.length }}}
|
|
3
2
|
<div data-widget-area="header">
|
|
4
3
|
{{{each widgets.header}}}
|
|
5
4
|
{{widgets.header.html}}
|
|
6
5
|
{{{end}}}
|
|
7
6
|
</div>
|
|
8
|
-
|
|
9
|
-
<div class="topic {{{ if widgets.sidebar.length }}}col-lg-9 col-sm-12{{{ else }}}col-lg-12{{{ end }}}">
|
|
10
|
-
<div class="topic-header sticky-top">
|
|
11
|
-
<h1 component="post/header" class="" itemprop="name">
|
|
12
|
-
<span class="topic-title">
|
|
13
|
-
<span component="topic/labels">
|
|
14
|
-
<i component="topic/scheduled" class="fa fa-clock-o {{{ if !scheduled }}}hidden{{{ end }}}" title="[[topic:scheduled]]"></i>
|
|
15
|
-
<i component="topic/pinned" class="fa fa-thumb-tack {{{ if (scheduled || !pinned) }}}hidden{{{ end }}}" title="{{{ if !pinExpiry }}}[[topic:pinned]]{{{ else }}}[[topic:pinned-with-expiry, {pinExpiryISO}]]{{{ end }}}"></i>
|
|
16
|
-
<i component="topic/locked" class="fa fa-lock {{{ if !locked }}}hidden{{{ end }}}" title="[[topic:locked]]"></i>
|
|
17
|
-
<i class="fa fa-arrow-circle-right {{{ if !oldCid }}}hidden{{{ end }}}" title="{{{ if privileges.isAdminOrMod }}}[[topic:moved-from, {oldCategory.name}]]{{{ else }}}[[topic:moved]]{{{ end }}}"></i>
|
|
18
|
-
{{{each icons}}}<span class="align-middle">{@value}</span>{{{end}}}
|
|
19
|
-
</span>
|
|
20
|
-
<span component="topic/title">{title}</span>
|
|
21
|
-
</span>
|
|
22
|
-
</h1>
|
|
7
|
+
{{{ end }}}
|
|
23
8
|
|
|
24
|
-
|
|
25
|
-
<div class="category-item d-inline-block">
|
|
26
|
-
{buildCategoryIcon(category, "24px", "rounded-circle")}
|
|
27
|
-
<a href="{config.relative_path}/category/{category.slug}">{category.name}</a>
|
|
28
|
-
</div>
|
|
9
|
+
<!-- IMPORT partials/breadcrumbs.tpl -->
|
|
29
10
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
11
|
+
<h2 component="post/header" class="fs-2 mb-1 {{{ if config.centerHeaderElements }}}text-center{{{ end }}}" itemprop="name">
|
|
12
|
+
<span class="topic-title" component="topic/title">{title}</span>
|
|
13
|
+
</h2>
|
|
14
|
+
|
|
15
|
+
<div class="topic-info d-flex gap-2 align-items-center flex-wrap {{{ if config.centerHeaderElements }}}justify-content-center{{{ end }}}">
|
|
16
|
+
<span component="topic/labels" class="d-flex gap-2">
|
|
17
|
+
<span component="topic/scheduled" class="badge badge border border-gray-300 text-primary {{{ if !scheduled }}}hidden{{{ end }}}">
|
|
18
|
+
<i class="fa fa-clock-o"></i>
|
|
19
|
+
[[topic:scheduled]]
|
|
20
|
+
</span>
|
|
21
|
+
<span component="topic/pinned" class="badge badge border border-gray-300 text-primary {{{ if (scheduled || !pinned) }}}hidden{{{ end }}}">
|
|
22
|
+
<i class="fa fa-thumb-tack"></i>
|
|
23
|
+
{{{ if !pinExpiry }}}[[topic:pinned]]{{{ else }}}[[topic:pinned-with-expiry, {pinExpiryISO}]]{{{ end }}}
|
|
24
|
+
</span>
|
|
25
|
+
<span component="topic/locked" class="badge badge border border-gray-300 text-primary {{{ if !locked }}}hidden{{{ end }}}">
|
|
26
|
+
<i class="fa fa-lock"></i>
|
|
27
|
+
[[topic:locked]]
|
|
28
|
+
</span>
|
|
29
|
+
<span class="badge badge border border-gray-300 text-primary {{{ if !oldCid }}}hidden{{{ end }}}">
|
|
30
|
+
<i class="fa fa-arrow-circle-right"></i>
|
|
31
|
+
{{{ if privileges.isAdminOrMod }}}[[topic:moved-from, {oldCategory.name}]]{{{ else }}}[[topic:moved]]{{{ end }}}
|
|
32
|
+
</span>
|
|
33
|
+
{{{each icons}}}<span class="align-middle">{@value}</span>{{{end}}}
|
|
34
|
+
</span>
|
|
35
|
+
<a class="lh-1" href="{config.relative_path}/category/{category.slug}">{function.buildCategoryLabel, category, "border"}</a>
|
|
36
|
+
<div class="lh-1 tags tag-list d-flex hidden-xs gap-2"><!-- IMPORT partials/topic/tags.tpl --></div>
|
|
37
|
+
<div class="d-flex hidden-xs gap-2">
|
|
38
|
+
<!-- IMPORT partials/topic/stats.tpl -->
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<div class="row">
|
|
43
|
+
<div class="topic {{{ if widgets.sidebar.length }}}col-lg-9 col-sm-12{{{ else }}}col-lg-12{{{ end }}}">
|
|
44
|
+
<!-- IMPORT partials/post_bar.tpl -->
|
|
44
45
|
|
|
45
|
-
<!-- IMPORT partials/post_bar.tpl -->
|
|
46
|
-
</div>
|
|
47
|
-
</div>
|
|
48
46
|
{{{ if merger }}}
|
|
49
47
|
<!-- IMPORT partials/topic/merged-message.tpl -->
|
|
50
48
|
{{{ end }}}
|
|
@@ -53,9 +51,9 @@
|
|
|
53
51
|
<!-- IMPORT partials/topic/deleted-message.tpl -->
|
|
54
52
|
{{{ end }}}
|
|
55
53
|
|
|
56
|
-
<ul component="topic" class="posts timeline" data-tid="{tid}" data-cid="{cid}">
|
|
54
|
+
<ul component="topic" class="posts timeline mt-sm-4 p-0 py-3" data-tid="{tid}" data-cid="{cid}">
|
|
57
55
|
{{{each posts}}}
|
|
58
|
-
<li component="post" class="{{{ if posts.deleted }}}deleted{{{ end }}} {{{ if posts.selfPost }}}self-post{{{ end }}} {{{ if posts.topicOwnerPost }}}topic-owner-post{{{ end }}}" <!-- IMPORT partials/data/topic.tpl -->>
|
|
56
|
+
<li component="post" class="pt-4 {{{ if posts.deleted }}}deleted{{{ end }}} {{{ if posts.selfPost }}}self-post{{{ end }}} {{{ if posts.topicOwnerPost }}}topic-owner-post{{{ end }}}" <!-- IMPORT partials/data/topic.tpl -->>
|
|
59
57
|
<a component="post/anchor" data-index="{posts.index}" id="{posts.index}"></a>
|
|
60
58
|
|
|
61
59
|
<meta itemprop="datePublished" content="{posts.timestampISO}">
|
|
@@ -85,8 +83,6 @@
|
|
|
85
83
|
{{{ if config.usePagination }}}
|
|
86
84
|
<!-- IMPORT partials/paginator.tpl -->
|
|
87
85
|
{{{ end }}}
|
|
88
|
-
|
|
89
|
-
<!-- IMPORT partials/topic/navigator.tpl -->
|
|
90
86
|
</div>
|
|
91
87
|
<div data-widget-area="sidebar" class="col-lg-3 col-sm-12 {{{ if !widgets.sidebar.length }}}hidden{{{ end }}}">
|
|
92
88
|
{{{each widgets.sidebar}}}
|
package/templates/unread.tpl
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
-
|
|
3
1
|
<!-- IMPORT partials/breadcrumbs.tpl -->
|
|
4
2
|
<div data-widget-area="header">
|
|
5
3
|
{{{each widgets.header}}}
|
|
@@ -7,26 +5,7 @@
|
|
|
7
5
|
{{{end}}}
|
|
8
6
|
</div>
|
|
9
7
|
<div class="unread">
|
|
10
|
-
|
|
11
|
-
<div class="d-flex gap-1 align-items-stretch">
|
|
12
|
-
<!-- IMPORT partials/buttons/newTopic.tpl -->
|
|
13
|
-
<a href="{config.relative_path}/{selectedFilter.url}{querystring}" class="d-inline-block">
|
|
14
|
-
<div class="alert alert-warning h-100 m-0 px-2 py-1 d-flex align-items-center hide" id="new-topics-alert"></div>
|
|
15
|
-
</a>
|
|
16
|
-
</div>
|
|
17
|
-
|
|
18
|
-
<div class="d-flex gap-1 align-items-stretch">
|
|
19
|
-
<!-- IMPORT partials/topic-filters.tpl -->
|
|
20
|
-
<!-- IMPORT partials/category-filter-right.tpl -->
|
|
21
|
-
|
|
22
|
-
<div class="markread btn-group {{{ if !topics.length }}}hidden{{{ end }}}">
|
|
23
|
-
<!-- IMPORT partials/category-selector-right.tpl -->
|
|
24
|
-
</div>
|
|
25
|
-
|
|
26
|
-
<!-- IMPORT partials/category/tools.tpl -->
|
|
27
|
-
</div>
|
|
28
|
-
</div>
|
|
29
|
-
|
|
8
|
+
<!-- IMPORT partials/topic-list-bar.tpl -->
|
|
30
9
|
<div class="category">
|
|
31
10
|
<div id="category-no-topics" class="alert alert-warning {{{ if topics.length }}}hidden{{{ end }}}">[[unread:no_unread_topics]]</div>
|
|
32
11
|
|
package/templates/users.tpl
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
-
|
|
3
1
|
<!-- IMPORT partials/breadcrumbs.tpl -->
|
|
4
2
|
<div data-widget-area="header">
|
|
5
3
|
{{{each widgets.header}}}
|
|
@@ -7,28 +5,30 @@
|
|
|
7
5
|
{{{end}}}
|
|
8
6
|
</div>
|
|
9
7
|
<div class="users">
|
|
10
|
-
<
|
|
8
|
+
<h2 class="fw-semibold">[[global:users]]</h2>
|
|
9
|
+
<div class="row justify-content-between">
|
|
11
10
|
<div class="col-lg-6">
|
|
12
11
|
<!-- IMPORT partials/users_list_menu.tpl -->
|
|
13
12
|
</div>
|
|
14
|
-
<div class="col-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
</
|
|
13
|
+
<div class="col-lg-6 text-end">
|
|
14
|
+
<div class="d-flex justify-content-end gap-2">
|
|
15
|
+
{{{ if showInviteButton }}}
|
|
16
|
+
<button component="user/invite" class="btn btn-success btn-sm"><i class="fa fa-users"></i> [[users:invite]]</button>
|
|
17
|
+
{{{ end }}}
|
|
18
|
+
{{{ if displayUserSearch }}}
|
|
19
|
+
<div class="search">
|
|
20
|
+
<div class="input-group">
|
|
21
|
+
<input class="form-control form-control-sm" id="search-user" type="text" placeholder="[[global:search]]"/>
|
|
22
|
+
<button class="btn btn-primary btn-sm" type="button">
|
|
23
|
+
<i component="user/search/icon" class="fa fa-search"></i>
|
|
24
|
+
</button>
|
|
25
|
+
</div>
|
|
27
26
|
</div>
|
|
27
|
+
{{{ end }}}
|
|
28
28
|
</div>
|
|
29
29
|
</div>
|
|
30
|
-
<!-- ENDIF displayUserSearch -->
|
|
31
30
|
</div>
|
|
31
|
+
<hr/>
|
|
32
32
|
|
|
33
33
|
<!-- IMPORT partials/users_list.tpl -->
|
|
34
34
|
|