nodebb-theme-harmony 1.0.0-beta.23 → 1.0.0-beta.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/library.js +10 -0
- package/package.json +1 -1
- package/public/harmony.js +3 -1
- package/scss/common.scss +20 -0
- package/templates/account/blocks.tpl +1 -1
- package/templates/account/categories.tpl +1 -1
- package/templates/account/consent.tpl +1 -1
- package/templates/account/edit/password.tpl +1 -1
- package/templates/account/edit/username.tpl +1 -1
- package/templates/account/edit.tpl +1 -1
- package/templates/account/followers.tpl +1 -1
- package/templates/account/following.tpl +1 -1
- package/templates/account/groups.tpl +1 -1
- package/templates/account/info.tpl +1 -1
- package/templates/account/posts.tpl +1 -1
- package/templates/account/profile.tpl +1 -1
- package/templates/account/sessions.tpl +1 -1
- package/templates/account/settings.tpl +1 -1
- package/templates/account/theme.tpl +1 -1
- package/templates/account/topics.tpl +1 -1
- package/templates/account/uploads.tpl +1 -1
- package/templates/partials/topic/post.tpl +17 -1
- package/templates/partials/topics_list.tpl +1 -1
package/library.js
CHANGED
|
@@ -77,6 +77,16 @@ library.defineWidgetAreas = async function (areas) {
|
|
|
77
77
|
});
|
|
78
78
|
|
|
79
79
|
areas = areas.concat([
|
|
80
|
+
{
|
|
81
|
+
name: 'Main post header',
|
|
82
|
+
template: 'topic.tpl',
|
|
83
|
+
location: 'mainpost-header',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: 'Main post footer',
|
|
87
|
+
template: 'topic.tpl',
|
|
88
|
+
location: 'mainpost-footer',
|
|
89
|
+
},
|
|
80
90
|
{
|
|
81
91
|
name: 'Sidebar Footer',
|
|
82
92
|
template: 'global',
|
package/package.json
CHANGED
package/public/harmony.js
CHANGED
|
@@ -85,7 +85,9 @@ $(document).ready(function () {
|
|
|
85
85
|
}
|
|
86
86
|
draftItems.reverse().forEach((draft) => {
|
|
87
87
|
if (draft) {
|
|
88
|
-
draft.text =
|
|
88
|
+
draft.text = utils.escapeHTML(
|
|
89
|
+
draft.text.replace(/(?:\r\n|\r|\n)/g, '<br>')
|
|
90
|
+
);
|
|
89
91
|
}
|
|
90
92
|
});
|
|
91
93
|
|
package/scss/common.scss
CHANGED
|
@@ -23,6 +23,26 @@ body {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
body:not(.page-user) {
|
|
27
|
+
#content {
|
|
28
|
+
transition: opacity 150ms linear;
|
|
29
|
+
&.ajaxifying {
|
|
30
|
+
-moz-opacity: 0;
|
|
31
|
+
opacity: 0;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
.page-user {
|
|
36
|
+
#content {
|
|
37
|
+
transition: opacity 150ms linear;
|
|
38
|
+
&.ajaxifying .account-content {
|
|
39
|
+
transition: opacity 150ms linear;
|
|
40
|
+
-moz-opacity: 0;
|
|
41
|
+
opacity: 0;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
26
46
|
.sticky-tools {
|
|
27
47
|
position: sticky;
|
|
28
48
|
z-index: 3;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<!-- IMPORT partials/account/header.tpl -->
|
|
3
3
|
<div class="d-flex flex-column flex-md-row">
|
|
4
4
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
5
|
-
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
5
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
6
6
|
<div class="d-flex justify-content-between mb-3">
|
|
7
7
|
<h3 class="fw-semibold fs-5">[[pages:account/blocks, {username}]]</h3>
|
|
8
8
|
<div class="justify-content-end">
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<h3 class="fw-semibold fs-5">{title}</h3>
|
|
8
8
|
|
|
9
9
|
<div class="row">
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<h3 class="fw-semibold fs-5">[[user:consent.title]]</h3>
|
|
8
8
|
|
|
9
9
|
<p class="lead">[[user:consent.lead]]</p>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<h3 class="fw-semibold fs-5">{{{ if isSelf }}}[[user:change_password]]{{{ else }}}[[pages:{template.name}, {username}]]{{{ end }}}</h3>
|
|
8
8
|
|
|
9
9
|
<form class="edit-form">
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<h3 class="fw-semibold fs-5">{{{ if isSelf }}}[[user:change_username]]{{{ else }}}[[pages:{template.name}, {username}]]{{{ end }}}</h3>
|
|
8
8
|
|
|
9
9
|
<form class="form-horizontal edit-form">
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<div class="d-flex justify-content-between mb-3">
|
|
8
8
|
<h3 class="fw-semibold fs-5">{{{ if isSelf }}}[[user:edit-profile]]{{{ else }}}[[pages:account/edit, {username}]]{{{ end }}}</h3>
|
|
9
9
|
<button id="submitBtn" class="btn btn-primary">[[global:save_changes]]</button>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<h3 class="fw-semibold fs-5">[[pages:{template.name}, {username}]]</h3>
|
|
8
8
|
|
|
9
9
|
{{{ if !users.length }}}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<h3 class="fw-semibold fs-5">[[pages:{template.name}, {username}]]</h3>
|
|
8
8
|
|
|
9
9
|
{{{ if !users.length }}}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<h3 class="fw-semibold fs-5">[[pages:{template.name}, {username}]]</h3>
|
|
8
8
|
|
|
9
9
|
<div class="groups">
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
{{{ if sessions.length }}}
|
|
8
8
|
<div class="mb-3">
|
|
9
9
|
<h4>[[global:sessions]]</h4>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<div class="d-flex flex-wrap justify-content-between align-items-center gap-2 mb-3">
|
|
8
8
|
<h3 class="fw-semibold fs-5 mb-0">[[global:posts]]</h3>
|
|
9
9
|
<div class="d-flex flex-wrap gap-1">
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
6
|
|
|
7
|
-
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
8
8
|
{{{ if aboutme }}}
|
|
9
9
|
<div component="aboutme" class="text-sm text-break">
|
|
10
10
|
{aboutmeParsed}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<p class="lead">[[user:sessions.description]]</p>
|
|
8
8
|
<hr />
|
|
9
9
|
<ul class="list-group" component="user/sessions">
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<div class="mb-3 d-flex justify-content-between">
|
|
8
8
|
<h3 class="fw-semibold fs-5">{{{ if isSelf }}}[[pages:account/settings]]{{{ else }}}[[pages:account/settings-of, {username}]]{{{ end }}}</h3>
|
|
9
9
|
<button id="submitBtn" class="btn btn-primary">[[global:save_changes]]</button>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<div class="mb-3 d-flex justify-content-between">
|
|
8
8
|
<h3 class="fw-semibold fs-5">[[harmony:settings.title]]</h3>
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<div class="d-flex justify-content-between align-items-center mb-3">
|
|
8
8
|
<div class="d-flex gap-1">
|
|
9
9
|
<h3 class="fw-semibold fs-5 mb-0">[[global:topics]]</h3>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<!-- IMPORT partials/account/header.tpl -->
|
|
3
3
|
<div class="d-flex flex-column flex-md-row">
|
|
4
4
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
5
|
-
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
5
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
6
6
|
<h3 class="fw-semibold fs-5">{title}</h3>
|
|
7
7
|
|
|
8
8
|
<!-- IF privateUploads -->
|
|
@@ -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 }}}">
|
|
@@ -116,4 +124,12 @@
|
|
|
116
124
|
|
|
117
125
|
<!-- IMPORT partials/topic/post-menu.tpl -->
|
|
118
126
|
</div>
|
|
119
|
-
</div>
|
|
127
|
+
</div>
|
|
128
|
+
|
|
129
|
+
{{{ if (!./index && widgets.mainpost-footer.length) }}}
|
|
130
|
+
<div data-widget-area="mainpost-footer">
|
|
131
|
+
{{{ each widgets.mainpost-footer }}}
|
|
132
|
+
{widgets.mainpost-footer.html}
|
|
133
|
+
{{{ end }}}
|
|
134
|
+
</div>
|
|
135
|
+
{{{ end }}}
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
</div>
|
|
94
94
|
</div>
|
|
95
95
|
|
|
96
|
-
<div class="col-md-3 col-sm-3 teaser d-none d-md-block overflow-hidden" component="topic/teaser">
|
|
96
|
+
<div class="col-md-3 col-sm-3 teaser d-none d-md-block overflow-hidden align-self-start" component="topic/teaser">
|
|
97
97
|
<div class="lastpost background-link-container border-start border-2 h-100" style="border-color: {./category.bgColor}!important;">
|
|
98
98
|
<a class="background-link" href="{config.relative_path}/topic/{./slug}/{./teaser.index}"></a>
|
|
99
99
|
{{{ if ./unreplied }}}
|