nodebb-theme-persona 13.3.15 → 13.3.17

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-persona",
3
- "version": "13.3.15",
3
+ "version": "13.3.17",
4
4
  "nbbpm": {
5
5
  "compatibility": "^3.7.0"
6
6
  },
package/scss/account.scss CHANGED
@@ -344,34 +344,3 @@
344
344
  font-size:20px;
345
345
  font-weight:bold;
346
346
  }
347
-
348
- .page-user-info {
349
- .recent-flags {
350
- padding-left: 0;
351
-
352
- .title {
353
- font-weight: bold;
354
- }
355
-
356
- .timestamp {
357
- font-size: 1.25rem;
358
- font-style: italic;
359
- color: $gray-600;
360
- }
361
- }
362
-
363
- .ban-history {
364
- padding-left: 0;
365
-
366
- li {
367
- border-bottom: 1px solid $gray-200;
368
- margin-bottom: 1rem;
369
- }
370
-
371
- .expiry {
372
- font-size: 1.25rem;
373
- font-style: italic;
374
- color: $gray-600;
375
- }
376
- }
377
- }
@@ -59,7 +59,7 @@
59
59
  </div>
60
60
  </div>
61
61
 
62
- <div class="card">
62
+ <div class="card mb-3">
63
63
  <h5 class="card-header">
64
64
  [[user:info.email-history]]
65
65
  </h5>
@@ -74,6 +74,43 @@
74
74
  </ul>
75
75
  </div>
76
76
  </div>
77
+ <!-- IF isAdminOrGlobalModerator -->
78
+ <div class="card">
79
+ <h5 class="card-header">
80
+ [[user:info.moderation-note]]
81
+ </h5>
82
+ <div class="card-body">
83
+ <textarea component="account/moderation-note" class="form-control"></textarea>
84
+ <br/>
85
+ <button class="btn btn-sm float-end btn-success" component="account/save-moderation-note">[[user:info.moderation-note.add]]</button>
86
+ <br/>
87
+ <div component="account/moderation-note/list">
88
+ {{{each moderationNotes}}}
89
+ <hr/>
90
+
91
+ <div class="clearfix">
92
+ <div class="float-start">
93
+ <a href="<!-- IF moderationNotes.user.userslug -->{config.relative_path}/user/{moderationNotes.user.userslug}<!-- ELSE -->#<!-- ENDIF moderationNotes.user.userslug -->">{buildAvatar(moderationNotes.user, "24px", true)}</a>
94
+ <strong>
95
+ <a href="<!-- IF moderationNotes.user.userslug -->{config.relative_path}/user/{moderationNotes.user.userslug}<!-- ELSE -->#<!-- ENDIF moderationNotes.user.userslug -->" itemprop="author" data-username="{moderationNotes.user.username}" data-uid="{moderationNotes.user.uid}">{moderationNotes.user.username}</a>
96
+ </strong>
97
+
98
+ <div class="visible-xs-inline-block visible-sm-inline-block visible-md-inline-block visible-lg-inline-block">
99
+ <span class="timeago" title="{moderationNotes.timestampISO}"></span>
100
+ </div>
101
+ <br />
102
+
103
+ <div class="content">
104
+ {moderationNotes.note}
105
+ </div>
106
+ </div>
107
+ </div>
108
+ {{{end}}}
109
+ </div>
110
+ <!-- IMPORT partials/paginator.tpl -->
111
+ </div>
112
+ </div>
113
+ <!-- ENDIF isAdminOrGlobalModerator -->
77
114
  </div>
78
115
  <div class="col-sm-6">
79
116
  <div class="card mb-3">
@@ -83,18 +120,41 @@
83
120
  <div class="card-body">
84
121
  <!-- IF history.flags.length -->
85
122
  <ul class="recent-flags list-unstyled">
86
- {{{each history.flags}}}
87
- <li>
88
- <p>
123
+ {{{ each history.flags }}}
124
+ <li class="mb-4 border-bottom">
125
+ <div class="mb-1 d-flex align-items-center justify-content-between">
126
+ <div>
127
+ {{{ if (./type == "user")}}}
128
+ <span class="badge text-bg-info">[[user:info.profile]]</span>
129
+ {{{ else }}}
130
+ <span class="badge text-bg-info">[[user:info.post]]</span>
131
+ {{{ end }}}
132
+ <span class="timestamp timeago" title="{./timestampISO}"></span>
133
+ </div>
134
+
135
+ <a href="{config.relative_path}/flags/{./flagId}" class="badge badge border border-gray-300 text-body">[[user:info.view-flag]]</a>
136
+ </div>
137
+
138
+ {{{ if (./type == "post") }}}
139
+ <p class="mb-1">
89
140
  {{{ if history.flags.targetPurged }}}
90
141
  <div>[[flags:target-purged]]</div>
91
142
  {{{ else }}}
92
- <a class="title" href="{config.relative_path}/post/{../pid}">{../title}</a><br />
143
+ <a class="title" href="{config.relative_path}/post/{./pid}">{./title}</a>
93
144
  {{{ end }}}
94
- <span class="timestamp">[[flags:flagged-timeago-readable, {../timestampISO}, {isoTimeToLocaleString(./timestampISO, config.userLang)}]]</span>
95
145
  </p>
146
+ {{{ end }}}
147
+
148
+ <div class="d-flex gap-2 align-items-center mb-3">
149
+ <span class="text-sm">[[user:info.reported-by]]</span>
150
+ <div class="d-flex text-nowrap">
151
+ {{{ each ./reports }}}
152
+ <a style="width: 18px; z-index: 3;" class="text-decoration-none" href="{config.relative_path}/user/{./reporter.userslug}">{buildAvatar(./reporter, "24px", true)}</a>
153
+ {{{ end }}}
154
+ </div>
155
+ </div>
96
156
  </li>
97
- {{{end}}}
157
+ {{{ end }}}
98
158
  </ul>
99
159
  <!-- ELSE -->
100
160
  <div class="alert alert-success">[[user:info.no-flags]]</div>
@@ -119,23 +179,36 @@
119
179
  <div class="card-body">
120
180
  <!-- IF history.bans.length -->
121
181
  <ul class="ban-history list-unstyled">
122
- {{{each history.bans}}}
123
- <li>
124
- <p>
125
- <a href="{config.relative_path}/user/{history.bans.user.userslug}">{buildAvatar(history.bans.user, "24px", true)}</a>
126
- <strong>
127
- <a href="<!-- IF history.bans.user.userslug -->{config.relative_path}/user/{history.bans.user.userslug}<!-- ELSE -->#<!-- ENDIF history.bans.user.userslug -->" itemprop="author" data-username="{history.bans.user.username}" data-uid="{history.bans.user.uid}">{history.bans.user.username}</a>
128
- </strong>
129
- <span class="timestamp timeago" title="{../timestampISO}"></span> &mdash; {isoTimeToLocaleString(./timestampISO, config.userLang)}<br />
130
- <!-- IF ../until -->
131
- <span class="expiry">[[user:info.banned-until, isoTimeToLocaleString{./untilISO, config.userLang)}]]</span><br />
132
- <!-- ELSE -->
133
- <span class="expiry">[[user:info.banned-permanently]]</span><br />
134
- <!-- ENDIF ../until -->
135
- <span class="reason"><strong>[[user:info.banned-reason-label]]</strong>: {../reason}</span>
182
+ {{{ each history.bans }}}
183
+ <li class="mb-4 border-bottom">
184
+ <div class="mb-1 d-flex align-items-center justify-content-between">
185
+ <div>
186
+ <a href="{config.relative_path}/user/{./user.userslug}">{buildAvatar(./user, "24px", true)}</a>
187
+ <strong>
188
+ <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>
189
+ </strong>
190
+ <span class="timestamp timeago" title="{./timestampISO}"></span>
191
+ </div>
192
+ {{{ if (./type != "unban") }}}
193
+ <span class="badge text-bg-danger">[[user:banned]]</span>
194
+ {{{ else }}}
195
+ <span class="badge text-bg-success">[[user:unbanned]]</span>
196
+ {{{ end }}}
197
+ </div>
198
+ <p class="mb-1">
199
+ <span class="reason">[[user:info.banned-reason-label]]: <strong>{./reason}</strong></span>
200
+ </p>
201
+ <p class="">
202
+ {{{ if ./until }}}
203
+ <span class="expiry">[[user:info.banned-until, {isoTimeToLocaleString(./untilISO, config.userLang)}]]</span>
204
+ {{{ else }}}
205
+ {{{ if (./type != "unban") }}}
206
+ <span class="expiry">[[user:info.banned-permanently]]</span>
207
+ {{{ end }}}
208
+ {{{ end }}}
136
209
  </p>
137
210
  </li>
138
- {{{end}}}
211
+ {{{ end }}}
139
212
  </ul>
140
213
  <!-- ELSE -->
141
214
  <div class="alert alert-success">[[user:info.no-ban-history]]</div>
@@ -161,21 +234,31 @@
161
234
  {{{ if history.mutes.length }}}
162
235
  <ul class="ban-history list-unstyled">
163
236
  {{{ each history.mutes }}}
164
- <li>
165
- <p>
166
- <a href="{config.relative_path}/user/{history.mutes.user.userslug}">{buildAvatar(history.mutes.user, "24px", true)}</a>
167
- <strong>
168
- <a href="<!-- IF history.mutes.user.userslug -->{config.relative_path}/user/{history.mutes.user.userslug}<!-- ELSE -->#<!-- ENDIF history.mutes.user.userslug -->" itemprop="author" data-username="{history.mutes.user.username}" data-uid="{history.mutes.user.uid}">{history.mutes.user.username}</a>
169
- </strong>
170
- <span class="timestamp timeago" title="{../timestampISO}"></span> &mdash; {isoTimeToLocaleString(./timestampISO, config.userLang)}<br />
171
- {{{ if ../until }}}
172
- <span class="expiry">[[user:info.muted-until, {isoTimeToLocaleString(./untilISO, config.userLang)}]]</span><br />
237
+ <li class="mb-4 border-bottom">
238
+ <div class="mb-1 d-flex align-items-center justify-content-between">
239
+ <div>
240
+ <a href="{config.relative_path}/user/{./user.userslug}">{buildAvatar(./user, "24px", true)}</a>
241
+ <strong>
242
+ <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>
243
+ </strong>
244
+ <span class="timestamp timeago" title="{./timestampISO}"></span>
245
+ </div>
246
+ {{{ if (./type != "unmute") }}}
247
+ <span class="badge text-bg-danger">[[user:muted]]</span>
248
+ {{{ else }}}
249
+ <span class="badge text-bg-success">[[user:unmuted]]</span>
250
+ {{{ end }}}
251
+ </div>
252
+ <p class="mb-1">
253
+ <span class="reason">[[user:info.banned-reason-label]]: <strong>{./reason}</strong></span>
254
+ </p>
255
+ <p class="">
256
+ {{{ if ./until }}}
257
+ <span class="expiry">[[user:info.muted-until, {isoTimeToLocaleString(./untilISO, config.userLang)}]]</span>
173
258
  {{{ end }}}
174
-
175
- <span class="reason"><strong>[[user:info.banned-reason-label]]</strong>: {../reason}</span>
176
259
  </p>
177
260
  </li>
178
- {{{end}}}
261
+ {{{ end }}}
179
262
  </ul>
180
263
  {{{ else }}}
181
264
  <div class="alert alert-success">[[user:info.no-mute-history]]</div>
@@ -183,43 +266,6 @@
183
266
  </div>
184
267
  </div>
185
268
 
186
- <!-- IF isAdminOrGlobalModerator -->
187
- <div class="card">
188
- <h5 class="card-header">
189
- [[user:info.moderation-note]]
190
- </h5>
191
- <div class="card-body">
192
- <textarea component="account/moderation-note" class="form-control"></textarea>
193
- <br/>
194
- <button class="btn btn-sm float-end btn-success" component="account/save-moderation-note">[[user:info.moderation-note.add]]</button>
195
- <br/>
196
- <div component="account/moderation-note/list">
197
- {{{each moderationNotes}}}
198
- <hr/>
199
-
200
- <div class="clearfix">
201
- <div class="float-start">
202
- <a href="<!-- IF moderationNotes.user.userslug -->{config.relative_path}/user/{moderationNotes.user.userslug}<!-- ELSE -->#<!-- ENDIF moderationNotes.user.userslug -->">{buildAvatar(moderationNotes.user, "24px", true)}</a>
203
- <strong>
204
- <a href="<!-- IF moderationNotes.user.userslug -->{config.relative_path}/user/{moderationNotes.user.userslug}<!-- ELSE -->#<!-- ENDIF moderationNotes.user.userslug -->" itemprop="author" data-username="{moderationNotes.user.username}" data-uid="{moderationNotes.user.uid}">{moderationNotes.user.username}</a>
205
- </strong>
206
-
207
- <div class="visible-xs-inline-block visible-sm-inline-block visible-md-inline-block visible-lg-inline-block">
208
- <span class="timeago" title="{moderationNotes.timestampISO}"></span>
209
- </div>
210
- <br />
211
-
212
- <div class="content">
213
- {moderationNotes.note}
214
- </div>
215
- </div>
216
- </div>
217
- {{{end}}}
218
- </div>
219
- <!-- IMPORT partials/paginator.tpl -->
220
- </div>
221
- </div>
222
- <!-- ENDIF isAdminOrGlobalModerator -->
223
269
  </div>
224
270
  </div>
225
271