nodebb-theme-harmony 2.1.14 → 2.1.16
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nodebb-theme-harmony",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.16",
|
|
4
4
|
"nbbpm": {
|
|
5
5
|
"compatibility": "^4.0.0"
|
|
6
6
|
},
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@fontsource/poppins": "5.0.8"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"eslint": "9.
|
|
44
|
+
"eslint": "9.29.0",
|
|
45
45
|
"eslint-config-nodebb": "^1.1.4"
|
|
46
46
|
}
|
|
47
47
|
}
|
package/scss/modules/cover.scss
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<span class="resize p-2 m-2 rounded-1 text-bg-light opacity-75"><i class="fa fa-fw fa-arrows"></i></span>
|
|
8
8
|
<span class="remove p-2 m-2 rounded-1 text-bg-light opacity-75"><i class="fa fa-fw fa-times"></i></span>
|
|
9
9
|
</div>
|
|
10
|
-
<
|
|
10
|
+
<a href="#" class="save btn btn-primary">[[groups:cover-save]] <i class="fa fa-fw fa-floppy-o"></i></a>
|
|
11
11
|
<div class="indicator text-bg-primary">[[groups:cover-saving]] <i class="fa fa-fw fa-refresh fa-spin"></i></div>
|
|
12
12
|
{{{ end }}}
|
|
13
13
|
</div>
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<a href="#" class="resize p-2 m-2 rounded-1 text-bg-light opacity-75"><i class="fa fa-fw fa-arrows"></i></a>
|
|
9
9
|
<a href="#" class="remove p-2 m-2 rounded-1 text-bg-light opacity-75"><i class="fa fa-fw fa-times"></i></a>
|
|
10
10
|
</div>
|
|
11
|
-
<a href="#" class="save
|
|
11
|
+
<a href="#" class="save btn btn-primary">[[groups:cover-save]] <i class="fa fa-fw fa-floppy-o"></i></a>
|
|
12
12
|
<div class="indicator text-bg-primary">[[groups:cover-saving]] <i class="fa fa-fw fa-refresh fa-spin"></i></div>
|
|
13
13
|
{{{ end }}}
|
|
14
14
|
{{{ end }}}
|
package/templates/topic.tpl
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
<div class="d-flex flex-column gap-3">
|
|
25
25
|
<div class="d-flex gap-2 flex-wrap">
|
|
26
|
-
<div class="d-flex flex-column gap-3 flex-
|
|
26
|
+
<div class="d-flex flex-column gap-3 flex-1">
|
|
27
27
|
<h1 component="post/header" class="tracking-tight fw-semibold fs-3 mb-0 text-break {{{ if config.theme.centerHeaderElements }}}text-center{{{ end }}}">
|
|
28
28
|
<span class="topic-title" component="topic/title">{title}</span>
|
|
29
29
|
</h1>
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
<div class="d-flex gap-2"><!-- IMPORT partials/topic/stats.tpl --></div>
|
|
50
50
|
</div>
|
|
51
51
|
</div>
|
|
52
|
-
<div class="d-flex flex-wrap gap-2 align-items-
|
|
52
|
+
<div class="d-flex flex-wrap gap-2 align-items-start mt-2 hidden-empty" component="topic/thumb/list"><!-- IMPORT partials/topic/thumbs.tpl --></div>
|
|
53
53
|
</div>
|
|
54
54
|
|
|
55
55
|
<div class="row mb-4 mb-lg-0">
|
package/templates/post-queue.tpl
DELETED
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
<div class="flex-fill">
|
|
2
|
-
{{{ if isAdmin }}}
|
|
3
|
-
{{{ if !enabled }}}
|
|
4
|
-
<div class="alert alert-info">
|
|
5
|
-
[[post-queue:enabling-help, {config.relative_path}/admin/settings/post#post-queue]]
|
|
6
|
-
</div>
|
|
7
|
-
{{{ end }}}
|
|
8
|
-
{{{ else }}}
|
|
9
|
-
<div>
|
|
10
|
-
<p class="lead">[[post-queue:public-intro]]</p>
|
|
11
|
-
<p>[[post-queue:public-description]]</p>
|
|
12
|
-
<hr />
|
|
13
|
-
</div>
|
|
14
|
-
{{{ end }}}
|
|
15
|
-
|
|
16
|
-
{{{ if (!singlePost && posts.length) }}}
|
|
17
|
-
<div class="btn-toolbar justify-content-end mb-3">
|
|
18
|
-
<div class="me-2">
|
|
19
|
-
<!-- IMPORT partials/category/filter-dropdown-right.tpl -->
|
|
20
|
-
</div>
|
|
21
|
-
|
|
22
|
-
<div class="btn-group bottom-sheet" component="post-queue/bulk-actions">
|
|
23
|
-
<button type="button" class="btn btn-ghost btn-sm ff-secondary dropdown-toggle d-flex align-items-center gap-2" data-bs-toggle="dropdown" autocomplete="off" aria-haspopup="true" aria-expanded="false">
|
|
24
|
-
<i class="fa fa-clone text-primary"></i><span class="fw-semibold"> [[post-queue:bulk-actions]]</span>
|
|
25
|
-
</button>
|
|
26
|
-
<ul class="dropdown-menu p-1 text-sm dropdown-menu-end" role="menu">
|
|
27
|
-
{{{ if canAccept }}}
|
|
28
|
-
<li><a class="dropdown-item rounded-1" href="#" data-action="accept-all" role="menuitem">[[post-queue:accept-all]]</a></li>
|
|
29
|
-
<li><a class="dropdown-item rounded-1" href="#" data-action="accept-selected" role="menuitem">[[post-queue:accept-selected]]</a></li>
|
|
30
|
-
<li class="dropdown-divider"></li>
|
|
31
|
-
<li><a class="dropdown-item rounded-1" href="#" data-action="reject-all" role="menuitem">[[post-queue:reject-all]]</a></li>
|
|
32
|
-
<li><a class="dropdown-item rounded-1" href="#" data-action="reject-selected" role="menuitem">[[post-queue:reject-selected]]</a></li>
|
|
33
|
-
{{{ else }}}
|
|
34
|
-
<li><a class="dropdown-item rounded-1" href="#" data-action="reject-all" role="menuitem">[[post-queue:remove-all]]</a></li>
|
|
35
|
-
<li><a class="dropdown-item rounded-1" href="#" data-action="reject-selected" role="menuitem">[[post-queue:remove-selected]]</a></li>
|
|
36
|
-
{{{ end }}}
|
|
37
|
-
</ul>
|
|
38
|
-
</div>
|
|
39
|
-
</div>
|
|
40
|
-
{{{ end }}}
|
|
41
|
-
|
|
42
|
-
<div class="post-queue posts-list">
|
|
43
|
-
{{{ if !posts.length }}}
|
|
44
|
-
{{{ if !singlePost }}}
|
|
45
|
-
<div class="mx-auto">
|
|
46
|
-
<div class="d-flex flex-column gap-3 justify-content-center text-center">
|
|
47
|
-
<div class="mx-auto p-4 bg-light border rounded">
|
|
48
|
-
<i class="text-secondary fa fa-fw fa-4x fa-seedling"></i>
|
|
49
|
-
</div>
|
|
50
|
-
[[post-queue:no-queued-posts]]
|
|
51
|
-
</div>
|
|
52
|
-
</div>
|
|
53
|
-
{{{ else }}}
|
|
54
|
-
<div class="alert alert-info d-flex align-items-md-center d-flex flex-column flex-md-row">
|
|
55
|
-
<p class="mb-md-0">[[post-queue:no-single-post]]</p>
|
|
56
|
-
<div class="d-grid ms-md-auto">
|
|
57
|
-
<a class="btn btn-sm btn-primary flex-shrink text-nowrap" href=".">[[post-queue:back-to-list]]</a>
|
|
58
|
-
</div>
|
|
59
|
-
</div>
|
|
60
|
-
{{{ end }}}
|
|
61
|
-
{{{ end }}}
|
|
62
|
-
|
|
63
|
-
{{{ each posts }}}
|
|
64
|
-
<div class="card mb-4" data-id="{./id}" data-uid="{./user.uid}">
|
|
65
|
-
<div class="row g-0">
|
|
66
|
-
<div class="col-lg-3 bg-card-cap rounded-start">
|
|
67
|
-
<ul class="list-unstyled ps-0 mb-0 border-end h-100">
|
|
68
|
-
<li class="card-body border-bottom position-relative">
|
|
69
|
-
{{{ if !singlePost }}}
|
|
70
|
-
<input id="{./id}" type="checkbox" class="form-check-input" autocomplete="off" />
|
|
71
|
-
{{{ end }}}
|
|
72
|
-
<label for="{./id}" class="small stretched-link">
|
|
73
|
-
{{{ if posts.data.tid }}}[[post-queue:reply]]{{{ else }}}[[post-queue:topic]]{{{ end }}}
|
|
74
|
-
</label>
|
|
75
|
-
</li>
|
|
76
|
-
<li class="card-body d-flex flex-column gap-1 border-bottom">
|
|
77
|
-
<div class="d-flex text-xs fw-semibold align-items-center">
|
|
78
|
-
[[post-queue:user]]
|
|
79
|
-
{{{ if ((privileges.ban || privileges.mute) || privileges.admin:users) }}}
|
|
80
|
-
<div class="ms-auto btn-group bottom-sheet">
|
|
81
|
-
<button href="#" class="btn btn-ghost btn-sm ff-secondary border text-xs dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">[[global:actions]]</button>
|
|
82
|
-
<ul class="dropdown-menu p-1 text-sm" role="menu">
|
|
83
|
-
{{{ if privileges.view:users:info }}}
|
|
84
|
-
<li><a class="dropdown-item rounded-1" href="{config.relative_path}/user/{./user.userslug}/info" role="menuitem">[[user:account-info]]</a></li>
|
|
85
|
-
{{{ end }}}
|
|
86
|
-
{{{ if privileges.ban }}}
|
|
87
|
-
<li class="{{{ if target.user.banned }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="ban" role="menuitem">[[user:ban-account]]</a></li>
|
|
88
|
-
<li class="{{{ if !target.user.banned }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="unban" role="menuitem">[[user:unban-account]]</a></li>
|
|
89
|
-
{{{ end }}}
|
|
90
|
-
{{{ if privileges.mute}}}
|
|
91
|
-
<li class="{{{ if target.user.muted }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="mute" role="menuitem">[[user:mute-account]]</a></li>
|
|
92
|
-
<li class="{{{ if !target.user.muted }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="unmute" role="menuitem">[[user:unmute-account]]</a></li>
|
|
93
|
-
{{{ end }}}
|
|
94
|
-
{{{ if privileges.admin:users }}}
|
|
95
|
-
<li><a class="dropdown-item rounded-1" href="#" data-action="delete-account" role="menuitem">[[user:delete-account-as-admin]]</a></li>
|
|
96
|
-
<li><a class="dropdown-item rounded-1" href="#" data-action="delete-content" role="menuitem">[[user:delete-content]]</a></li>
|
|
97
|
-
<li><a class="dropdown-item rounded-1" href="#" data-action="delete-all" role="menuitem">[[user:delete-all]]</a></li>
|
|
98
|
-
{{{ end }}}
|
|
99
|
-
</ul>
|
|
100
|
-
</div>
|
|
101
|
-
{{{ end }}}
|
|
102
|
-
</div>
|
|
103
|
-
<div class="small">
|
|
104
|
-
{{{ if posts.user.userslug}}}
|
|
105
|
-
<a class="text-decoration-none" href="{config.relative_path}/uid/{posts.user.uid}">{buildAvatar(posts.user, "24px", true, "not-responsive")} {posts.user.username}</a>
|
|
106
|
-
{{{ else }}}
|
|
107
|
-
{posts.user.username}
|
|
108
|
-
{{{ end }}}
|
|
109
|
-
</div>
|
|
110
|
-
<div>
|
|
111
|
-
<span class="badge text-body border border-gray-300 stats text-xs">
|
|
112
|
-
<span title="{posts.user.postcount}" class="fw-bold">{humanReadableNumber(posts.user.postcount)}</span>
|
|
113
|
-
<span class="text-lowercase fw-normal">[[global:posts]]</span>
|
|
114
|
-
</span>
|
|
115
|
-
<span class="badge text-body border border-gray-300 stats text-xs">
|
|
116
|
-
<span title="{posts.user.reputation}" class="fw-bold">{humanReadableNumber(posts.user.reputation)}</span>
|
|
117
|
-
<span class="text-lowercase fw-normal">[[global:reputation]]</span>
|
|
118
|
-
</span>
|
|
119
|
-
<span class="badge text-body border border-gray-300 stats text-xs">
|
|
120
|
-
<span class="text-lowercase fw-normal">[[user:joined]]</span>
|
|
121
|
-
<span title="{posts.user.joindateISO}" class="timeago fw-bold"></span>
|
|
122
|
-
</span>
|
|
123
|
-
</div>
|
|
124
|
-
</li>
|
|
125
|
-
<li class="card-body border-bottom">
|
|
126
|
-
<div class="text-xs fw-semibold mb-1">[[post-queue:when]]</div>
|
|
127
|
-
<span class="small timeago" title={posts.data.timestampISO}></span>
|
|
128
|
-
</li>
|
|
129
|
-
<li class="card-body border-bottom">
|
|
130
|
-
<div class="text-xs fw-semibold mb-1">
|
|
131
|
-
{{{ if posts.data.tid }}}[[post-queue:topic]]{{{ else }}}[[post-queue:title]]{{{ end }}}
|
|
132
|
-
</div>
|
|
133
|
-
<span class="small topic-title text-break">
|
|
134
|
-
{{{ if posts.data.tid }}}
|
|
135
|
-
<div class="d-flex flex-column align-items-start gap-1">
|
|
136
|
-
<a href="{config.relative_path}/topic/{posts.data.tid}">{posts.topic.title}</a>
|
|
137
|
-
<span class="badge text-body border border-gray-300 stats text-xs">
|
|
138
|
-
<span class="text-lowercase fw-normal">[[global:lastpost]]</span>
|
|
139
|
-
<span title="{posts.topic.lastposttimeISO}" class="timeago fw-bold"></span>
|
|
140
|
-
</span>
|
|
141
|
-
</div>
|
|
142
|
-
{{{ end }}}
|
|
143
|
-
<span class="title-text">{posts.data.title}</span>
|
|
144
|
-
</span>
|
|
145
|
-
{{{if !posts.data.tid}}}
|
|
146
|
-
<div class="topic-title-editable hidden">
|
|
147
|
-
<input class="form-control" type="text" value="{posts.data.title}"/>
|
|
148
|
-
</div>
|
|
149
|
-
{{{end}}}
|
|
150
|
-
</li>
|
|
151
|
-
<li class="card-body border-bottom">
|
|
152
|
-
<div class="text-xs fw-semibold mb-1">
|
|
153
|
-
[[post-queue:category]]
|
|
154
|
-
</div>
|
|
155
|
-
<div class="topic-category small">
|
|
156
|
-
<a href="{config.relative_path}/category/{posts.category.slug}">
|
|
157
|
-
<div class="category-item d-inline-block">
|
|
158
|
-
{buildCategoryIcon(./category, "24px", "rounded-circle")}
|
|
159
|
-
{posts.category.name}
|
|
160
|
-
</div>
|
|
161
|
-
</a>
|
|
162
|
-
</div>
|
|
163
|
-
</li>
|
|
164
|
-
<li class="card-body">
|
|
165
|
-
{{{ if canAccept }}}
|
|
166
|
-
<div class="row row-cols-2 g-1">
|
|
167
|
-
<div class="col d-grid">
|
|
168
|
-
<button class="btn btn-success btn-sm" data-action="accept"><i class="fa fa-fw fa-check"></i> [[post-queue:accept]] </button>
|
|
169
|
-
</div>
|
|
170
|
-
<div class="col d-grid">
|
|
171
|
-
<button class="btn btn-danger btn-sm" data-action="reject"><i class="fa fa-fw fa-times"></i> [[post-queue:reject]]</button>
|
|
172
|
-
</div>
|
|
173
|
-
{{{ if !posts.data.tid }}}
|
|
174
|
-
<div class="col d-grid">
|
|
175
|
-
<button class="btn btn-light btn-sm" data-action="editTitle"><i class="fa fa-fw fa-edit"></i> [[post-queue:title]]</button>
|
|
176
|
-
</div>
|
|
177
|
-
{{{ end }}}
|
|
178
|
-
<div class="col d-grid">
|
|
179
|
-
<button class="btn btn-light btn-sm" data-action="editContent"><i class="fa fa-fw fa-edit"></i> [[post-queue:content]]</button>
|
|
180
|
-
</div>
|
|
181
|
-
{{{if posts.data.cid}}}
|
|
182
|
-
<div class="col d-grid">
|
|
183
|
-
<button class="btn btn-light btn-sm" data-action="editCategory"><i class="fa fa-fw fa-edit"></i> [[post-queue:category]]</button>
|
|
184
|
-
</div>
|
|
185
|
-
{{{ end }}}
|
|
186
|
-
<div class="col d-grid">
|
|
187
|
-
<button class="btn btn-light btn-sm" data-action="notify"><i class="fa fa-fw fa-bell-o"></i> [[post-queue:notify]]</button>
|
|
188
|
-
</div>
|
|
189
|
-
</div>
|
|
190
|
-
{{{ else }}}
|
|
191
|
-
<button class="btn btn-danger btn-sm" data-action="reject"><i class="fa fa-fw fa-times"></i> [[post-queue:remove]]</button>
|
|
192
|
-
{{{ end }}}
|
|
193
|
-
</li>
|
|
194
|
-
</ul>
|
|
195
|
-
</div>
|
|
196
|
-
<div class="col-lg-9 d-flex flex-column">
|
|
197
|
-
<div class="post-content mb-auto text-break p-3 pb-0 h-100">{posts.data.content}</div>
|
|
198
|
-
<div class="post-content-editable flex-grow-1 hidden">
|
|
199
|
-
<textarea class="form-control w-100 h-100 p-3">{posts.data.rawContent}</textarea>
|
|
200
|
-
</div>
|
|
201
|
-
<div component="post-queue/link-container" class="hidden border-top mx-3 py-3">
|
|
202
|
-
<label class="text-secondary form-text mb-2">[[post-queue:links-in-this-post]]</label>
|
|
203
|
-
<ul component="post-queue/link-container/list" class="text-sm"></ul>
|
|
204
|
-
</div>
|
|
205
|
-
</div>
|
|
206
|
-
</div>
|
|
207
|
-
</div>
|
|
208
|
-
{{{ end }}}
|
|
209
|
-
</div>
|
|
210
|
-
|
|
211
|
-
<!-- IMPORT partials/paginator.tpl -->
|
|
212
|
-
</div>
|