nodebb-theme-harmony 1.2.49 → 1.2.51

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": "1.2.49",
3
+ "version": "1.2.51",
4
4
  "nbbpm": {
5
5
  "compatibility": "^3.7.0"
6
6
  },
@@ -40,7 +40,7 @@
40
40
  </div>
41
41
  </div>
42
42
 
43
- <div class="card">
43
+ <div class="card mb-3">
44
44
  <h5 class="card-header">
45
45
  [[user:info.email-history]]
46
46
  </h5>
@@ -55,6 +55,42 @@
55
55
  </ul>
56
56
  </div>
57
57
  </div>
58
+
59
+ {{{ if isAdminOrGlobalModerator }}}
60
+ <div class="card">
61
+ <h5 class="card-header">
62
+ [[user:info.moderation-note]]
63
+ </h5>
64
+ <div class="card-body">
65
+ <textarea component="account/moderation-note" class="form-control mb-3" aria-label="[[user:info.moderation-note]]"></textarea>
66
+
67
+ <button class="btn btn-sm float-end btn-success" component="account/save-moderation-note">[[user:info.moderation-note.add]]</button>
68
+ <br/>
69
+ <div component="account/moderation-note/list">
70
+ {{{ each moderationNotes }}}
71
+ <hr/>
72
+
73
+ <div>
74
+ <a href="{{{ if ./user.userslug }}}{config.relative_path}/user/{./user.userslug}{{{ else }}}#{{{ end }}}">{buildAvatar(./user, "24px", true)}</a>
75
+ <strong>
76
+ <a href="{{{ if ./user.userslug }}}{config.relative_path}/user/{./user.userslug}{{{ else }}}#{{{ end }}}" itemprop="author" data-username="{./user.username}" data-uid="{./user.uid}">{./user.username}</a>
77
+ </strong>
78
+
79
+ <div class="visible-xs-inline-block visible-sm-inline-block visible-md-inline-block visible-lg-inline-block">
80
+ <span class="timeago" title="{./timestampISO}"></span>
81
+ </div>
82
+ <br />
83
+
84
+ <div class="content">
85
+ {./note}
86
+ </div>
87
+ </div>
88
+ {{{ end }}}
89
+ </div>
90
+ <!-- IMPORT partials/paginator.tpl -->
91
+ </div>
92
+ </div>
93
+ {{{ end }}}
58
94
  </div>
59
95
  <div class="col-sm-6 mb-3">
60
96
  <div class="card mb-3">
@@ -97,23 +133,36 @@
97
133
  <div class="card-body">
98
134
  {{{ if history.bans.length }}}
99
135
  <ul class="ban-history list-unstyled">
100
- {{{each history.bans}}}
101
- <li>
102
- <p>
103
- <a href="{config.relative_path}/user/{./user.userslug}">{buildAvatar(./user, "24px", true)}</a>
104
- <strong>
105
- <a href="{{{ if ./user.userslug }}}{config.relative_path}/user/{./user.userslug}{{{ else }}}#{{{ end }}}" itemprop="author" data-username="{./user.username}" data-uid="{./user.uid}">{./user.username}</a>
106
- </strong>
107
- <span class="timestamp timeago" title="{./timestampISO}"></span> &mdash; {isoTimeToLocaleString(./timestampISO, config.userLang)}<br />
136
+ {{{ each history.bans }}}
137
+ <li class="mb-4 border-bottom">
138
+ <div class="mb-1 d-flex align-items-center justify-content-between">
139
+ <div>
140
+ <a href="{config.relative_path}/user/{./user.userslug}">{buildAvatar(./user, "24px", true)}</a>
141
+ <strong>
142
+ <a href="{{{ if ./user.userslug }}}{config.relative_path}/user/{./user.userslug}{{{ else }}}#{{{ end }}}" itemprop="author" data-username="{./user.username}" data-uid="{./user.uid}">{./user.username}</a>
143
+ </strong>
144
+ <span class="timestamp timeago" title="{./timestampISO}"></span>
145
+ </div>
146
+ {{{ if (./type != "unban") }}}
147
+ <span class="badge text-bg-danger">[[user:banned]]</span>
148
+ {{{ else }}}
149
+ <span class="badge text-bg-success">[[user:unbanned]]</span>
150
+ {{{ end }}}
151
+ </div>
152
+ <p class="mb-1">
153
+ <span class="reason">[[user:info.banned-reason-label]]: <strong>{./reason}</strong></span>
154
+ </p>
155
+ <p class="">
108
156
  {{{ if ./until }}}
109
- <span class="expiry">[[user:info.banned-until, {isoTimeToLocaleString(./untilISO, config.userLang)}]]</span><br />
157
+ <span class="expiry">[[user:info.banned-until, {isoTimeToLocaleString(./untilISO, config.userLang)}]]</span>
110
158
  {{{ else }}}
111
- <span class="expiry">[[user:info.banned-permanently]]</span><br />
159
+ {{{ if (./type != "unban") }}}
160
+ <span class="expiry">[[user:info.banned-permanently]]</span>
161
+ {{{ end }}}
112
162
  {{{ end }}}
113
- <span class="reason"><strong>[[user:info.banned-reason-label]]</strong>: {./reason}</span>
114
163
  </p>
115
164
  </li>
116
- {{{end}}}
165
+ {{{ end }}}
117
166
  </ul>
118
167
  {{{ else }}}
119
168
  <div class="alert alert-success">[[user:info.no-ban-history]]</div>
@@ -139,18 +188,28 @@
139
188
  {{{ if history.mutes.length }}}
140
189
  <ul class="ban-history list-unstyled">
141
190
  {{{ each history.mutes }}}
142
- <li>
143
- <p>
144
- <a href="{config.relative_path}/user/{./user.userslug}">{buildAvatar(./user, "24px", true)}</a>
145
- <strong>
146
- <a href="{{{ if ./user.userslug }}}{config.relative_path}/user/{./user.userslug}{{{ else }}}#{{{ end }}}" itemprop="author" data-username="{./user.username}" data-uid="{./user.uid}">{./user.username}</a>
147
- </strong>
148
- <span class="timestamp timeago" title="{./timestampISO}"></span> &mdash; {isoTimeToLocaleString(./timestampISO, config.userLang)}<br />
191
+ <li class="mb-4 border-bottom">
192
+ <div class="mb-1 d-flex align-items-center justify-content-between">
193
+ <div>
194
+ <a href="{config.relative_path}/user/{./user.userslug}">{buildAvatar(./user, "24px", true)}</a>
195
+ <strong>
196
+ <a href="{{{ if ./user.userslug }}}{config.relative_path}/user/{./user.userslug}{{{ else }}}#{{{ end }}}" itemprop="author" data-username="{./user.username}" data-uid="{./user.uid}">{./user.username}</a>
197
+ </strong>
198
+ <span class="timestamp timeago" title="{./timestampISO}"></span>
199
+ </div>
200
+ {{{ if (./type != "unmute") }}}
201
+ <span class="badge text-bg-danger">[[user:muted]]</span>
202
+ {{{ else }}}
203
+ <span class="badge text-bg-success">[[user:unmuted]]</span>
204
+ {{{ end }}}
205
+ </div>
206
+ <p class="mb-1">
207
+ <span class="reason">[[user:info.banned-reason-label]]: <strong>{./reason}</strong></span>
208
+ </p>
209
+ <p class="">
149
210
  {{{ if ./until }}}
150
- <span class="expiry">[[user:info.muted-until, {isoTimeToLocaleString(./untilISO, config.userLang)}]]</span><br />
211
+ <span class="expiry">[[user:info.muted-until, {isoTimeToLocaleString(./untilISO, config.userLang)}]]</span>
151
212
  {{{ end }}}
152
-
153
- <span class="reason"><strong>[[user:info.banned-reason-label]]</strong>: {./reason}</span>
154
213
  </p>
155
214
  </li>
156
215
  {{{ end }}}
@@ -160,42 +219,6 @@
160
219
  {{{ end }}}
161
220
  </div>
162
221
  </div>
163
-
164
- {{{ if isAdminOrGlobalModerator }}}
165
- <div class="card">
166
- <h5 class="card-header">
167
- [[user:info.moderation-note]]
168
- </h5>
169
- <div class="card-body">
170
- <textarea component="account/moderation-note" class="form-control mb-3" aria-label="[[user:info.moderation-note]]"></textarea>
171
-
172
- <button class="btn btn-sm float-end btn-success" component="account/save-moderation-note">[[user:info.moderation-note.add]]</button>
173
- <br/>
174
- <div component="account/moderation-note/list">
175
- {{{ each moderationNotes }}}
176
- <hr/>
177
-
178
- <div>
179
- <a href="{{{ if ./user.userslug }}}{config.relative_path}/user/{./user.userslug}{{{ else }}}#{{{ end }}}">{buildAvatar(./user, "24px", true)}</a>
180
- <strong>
181
- <a href="{{{ if ./user.userslug }}}{config.relative_path}/user/{./user.userslug}{{{ else }}}#{{{ end }}}" itemprop="author" data-username="{./user.username}" data-uid="{./user.uid}">{./user.username}</a>
182
- </strong>
183
-
184
- <div class="visible-xs-inline-block visible-sm-inline-block visible-md-inline-block visible-lg-inline-block">
185
- <span class="timeago" title="{./timestampISO}"></span>
186
- </div>
187
- <br />
188
-
189
- <div class="content">
190
- {./note}
191
- </div>
192
- </div>
193
- {{{ end }}}
194
- </div>
195
- <!-- IMPORT partials/paginator.tpl -->
196
- </div>
197
- </div>
198
- {{{ end }}}
199
222
  </div>
200
223
  </div>
201
224
 
@@ -9,7 +9,7 @@
9
9
  </div>
10
10
  {{{ end }}}
11
11
 
12
- <ul id="quick-search-results" class="quick-search-results list-unstyled mb-0 p-0 pe-1 overflow-auto overscroll-behavior-contain ff-base ghost-scrollbar" style="max-width: 400px; max-height: 500px;">
12
+ <ul id="quick-search-results" class="quick-search-results list-unstyled mb-0 p-0 pe-1 overflow-auto overscroll-behavior-contain ff-base ghost-scrollbar" style="max-width: {dropdown.maxWidth}; max-height: {dropdown.maxHeight};">
13
13
  <li role="separator" class="dropdown-divider d-none d-md-block"></li>
14
14
  {{{ each posts }}}
15
15
  <li data-tid="{posts.topic.tid}" data-pid="{posts.pid}" class="d-flex flex-column gap-1">
@@ -106,7 +106,7 @@
106
106
  {{{ else }}}
107
107
  {{{ if ./teaser.pid }}}
108
108
  <div class="ps-2">
109
- <a href="{config.relative_path}/user/{./teaser.user.userslug}" class="text-decoration-none">{buildAvatar(./teaser.user, "18px", true, "avatar-tooltip not-responsive")}</a>
109
+ <a href="{{{ if ./teaser.user.userslug }}}{config.relative_path}/user/{./teaser.user.userslug}{{{ else }}}#{{{ end }}}" class="text-decoration-none">{buildAvatar(./teaser.user, "18px", true, "avatar-tooltip not-responsive")}</a>
110
110
  <a class="permalink text-muted timeago text-xs" href="{config.relative_path}/topic/{./slug}/{./teaser.index}" title="{./teaser.timestampISO}" aria-label="[[global:lastpost]]"></a>
111
111
  </div>
112
112
  <div class="post-content text-xs ps-2 line-clamp-sm-2 lh-sm text-break position-relative flex-fill">