nodebb-theme-persona 11.4.2 → 12.0.0
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/less/account.less +0 -6
- package/less/chats.less +18 -38
- package/less/groups.less +1 -1
- package/less/header.less +48 -23
- package/less/mobile.less +12 -6
- package/less/modules/taskbar.less +2 -6
- package/less/style.less +0 -11
- package/less/topic.less +1 -7
- package/package.json +2 -2
- package/plugin.json +4 -7
- package/public/persona.js +2 -6
- package/templates/footer.tpl +0 -4
- package/templates/header.tpl +1 -1
- package/templates/modules/taskbar.tpl +2 -2
- package/templates/partials/account/menu.tpl +12 -2
- package/templates/partials/chats/dropdown.tpl +14 -10
- package/templates/partials/chats/recent_room.tpl +10 -8
- package/templates/partials/notifications_list.tpl +6 -4
- package/templates/partials/topic/post-menu.tpl +4 -4
- package/templates/partials/users_list.tpl +45 -45
- package/templates/post-queue.tpl +82 -82
package/less/account.less
CHANGED
package/less/chats.less
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
.chats-full, .chat-modal {
|
|
23
23
|
display: flex;
|
|
24
24
|
flex-wrap: nowrap;
|
|
25
|
-
height: calc(100vh - var(--panel-offset)
|
|
25
|
+
height: calc(100vh - var(--panel-offset));
|
|
26
26
|
|
|
27
27
|
[component="chat/nav-wrapper"] {
|
|
28
28
|
flex: 1;
|
|
@@ -157,8 +157,7 @@
|
|
|
157
157
|
}
|
|
158
158
|
|
|
159
159
|
.chat-list {
|
|
160
|
-
margin-top: -
|
|
161
|
-
margin-left: -1px;
|
|
160
|
+
margin-top: -5px;
|
|
162
161
|
}
|
|
163
162
|
|
|
164
163
|
.chats-list {
|
|
@@ -174,10 +173,10 @@
|
|
|
174
173
|
}
|
|
175
174
|
|
|
176
175
|
> li {
|
|
176
|
+
display: flex;
|
|
177
177
|
position: relative;
|
|
178
178
|
clear: both;
|
|
179
179
|
list-style-type: none;
|
|
180
|
-
padding: 0.5em;
|
|
181
180
|
height: 80px;
|
|
182
181
|
.pointer;
|
|
183
182
|
|
|
@@ -195,36 +194,29 @@
|
|
|
195
194
|
&.unread {
|
|
196
195
|
background: lighten(@brand-primary, 35%);
|
|
197
196
|
border-bottom: 0;
|
|
198
|
-
|
|
199
197
|
}
|
|
200
198
|
|
|
201
199
|
.teaser-content {
|
|
202
|
-
display: block;
|
|
203
|
-
white-space: nowrap;
|
|
204
|
-
overflow: hidden;
|
|
205
|
-
text-overflow: ellipsis;
|
|
206
200
|
font-size: 13px;
|
|
207
201
|
opacity: 0.8;
|
|
208
202
|
}
|
|
209
203
|
|
|
210
|
-
.
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
text-overflow: ellipsis;
|
|
214
|
-
display: block;
|
|
215
|
-
[component="chat/title"] {
|
|
204
|
+
.notification-chat-content {
|
|
205
|
+
.room-name {
|
|
206
|
+
white-space: nowrap;
|
|
216
207
|
overflow: hidden;
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
208
|
+
text-overflow: ellipsis;
|
|
209
|
+
display: block;
|
|
210
|
+
[component="chat/title"] {
|
|
211
|
+
overflow: hidden;
|
|
212
|
+
white-space: nowrap;
|
|
213
|
+
text-overflow: ellipsis;
|
|
214
|
+
max-width: 350px;
|
|
215
|
+
display: inline-block;
|
|
216
|
+
}
|
|
221
217
|
}
|
|
222
218
|
}
|
|
223
219
|
|
|
224
|
-
.teaser-content, .room-name {
|
|
225
|
-
padding-left: 80px;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
220
|
&.bg-primary {
|
|
229
221
|
background: @brand-primary;
|
|
230
222
|
border-bottom: 0;
|
|
@@ -244,8 +236,8 @@
|
|
|
244
236
|
|
|
245
237
|
.teaser-timestamp {
|
|
246
238
|
font-size: 10px;
|
|
247
|
-
margin-top:
|
|
248
|
-
margin-right:
|
|
239
|
+
margin-top: .5rem;
|
|
240
|
+
margin-right: .5rem;
|
|
249
241
|
}
|
|
250
242
|
|
|
251
243
|
a {
|
|
@@ -307,26 +299,14 @@
|
|
|
307
299
|
}
|
|
308
300
|
|
|
309
301
|
.main-avatar {
|
|
310
|
-
position: absolute;
|
|
311
|
-
top: 0px;
|
|
312
|
-
left: 0px;
|
|
313
|
-
|
|
314
302
|
.avatar {
|
|
315
303
|
height: 80px;
|
|
316
304
|
width: 80px;
|
|
317
305
|
font-size: 40px;
|
|
318
306
|
border-radius: 0;
|
|
307
|
+
background: @gray-lighter;
|
|
319
308
|
}
|
|
320
309
|
}
|
|
321
|
-
|
|
322
|
-
.avatar-placeholder {
|
|
323
|
-
height: 80px;
|
|
324
|
-
width: 80px;
|
|
325
|
-
background: @gray-lighter;
|
|
326
|
-
position: absolute;
|
|
327
|
-
top: 0px;
|
|
328
|
-
left: 0px;
|
|
329
|
-
}
|
|
330
310
|
}
|
|
331
311
|
}
|
|
332
312
|
|
package/less/groups.less
CHANGED
package/less/header.less
CHANGED
|
@@ -9,36 +9,51 @@
|
|
|
9
9
|
max-height: 250px;
|
|
10
10
|
padding: 0;
|
|
11
11
|
|
|
12
|
-
li.no-notifs {
|
|
13
|
-
text-align: center;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
12
|
li {
|
|
13
|
+
display: flex;
|
|
14
|
+
gap: 1rem;
|
|
17
15
|
width: 400px;
|
|
18
16
|
text-align: left;
|
|
19
17
|
list-style-type: none;
|
|
20
|
-
padding: 0.5em;
|
|
21
|
-
clear: both;
|
|
18
|
+
padding: .75em 0.5em;
|
|
22
19
|
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
&:hover {
|
|
21
|
+
background-color: @dropdown-link-hover-bg;
|
|
25
22
|
}
|
|
26
23
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
margin: 0;
|
|
30
|
-
text-overflow: ellipsis;
|
|
24
|
+
&.loading-text, &.no-notifs {
|
|
25
|
+
justify-content: center;
|
|
31
26
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
margin-right: 60px;
|
|
35
|
-
display: block;
|
|
36
|
-
min-height: 32px;
|
|
27
|
+
a {
|
|
28
|
+
color: inherit;
|
|
37
29
|
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.notification-chat-content {
|
|
33
|
+
flex: 1;
|
|
34
|
+
|
|
35
|
+
a {
|
|
36
|
+
white-space: normal;
|
|
37
|
+
margin: 0;
|
|
38
|
+
text-overflow: ellipsis;
|
|
39
|
+
|
|
40
|
+
.text {
|
|
41
|
+
margin-left: 40px;
|
|
42
|
+
margin-right: 60px;
|
|
43
|
+
display: block;
|
|
44
|
+
min-height: 32px;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.notification-chat-controls {
|
|
50
|
+
display: flex;
|
|
51
|
+
flex-direction: column;
|
|
52
|
+
align-items: center;
|
|
53
|
+
gap: .5rem;
|
|
54
|
+
|
|
38
55
|
.relTime {
|
|
39
56
|
font-size: 10px;
|
|
40
|
-
margin-top: 10px;
|
|
41
|
-
margin-right: 10px;
|
|
42
57
|
}
|
|
43
58
|
}
|
|
44
59
|
|
|
@@ -61,7 +76,11 @@
|
|
|
61
76
|
}
|
|
62
77
|
|
|
63
78
|
&.unread {
|
|
64
|
-
|
|
79
|
+
background-color: @state-warning-bg;
|
|
80
|
+
|
|
81
|
+
&:hover {
|
|
82
|
+
background-color: darken(@state-warning-bg, 5%);
|
|
83
|
+
}
|
|
65
84
|
|
|
66
85
|
.mark-read:after {
|
|
67
86
|
font-weight: 900;
|
|
@@ -76,14 +95,20 @@
|
|
|
76
95
|
> li {
|
|
77
96
|
.pointer;
|
|
78
97
|
width: 500px;
|
|
79
|
-
padding
|
|
98
|
+
padding: 0;
|
|
80
99
|
margin: 0;
|
|
100
|
+
gap: 0;
|
|
101
|
+
overflow-y: hidden;
|
|
102
|
+
|
|
103
|
+
.notification-chat-content {
|
|
104
|
+
padding: 0.5rem;
|
|
105
|
+
overflow: hidden;
|
|
106
|
+
text-overflow: ellipsis;
|
|
107
|
+
}
|
|
81
108
|
|
|
82
109
|
.teaser-content {
|
|
83
110
|
white-space: nowrap;
|
|
84
111
|
max-height: 19px;
|
|
85
|
-
padding-left: 90px;
|
|
86
|
-
padding-right: 10px;
|
|
87
112
|
}
|
|
88
113
|
|
|
89
114
|
&:not(:last-child) {
|
package/less/mobile.less
CHANGED
|
@@ -34,11 +34,6 @@
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
@media (max-width: @screen-md-max) {
|
|
37
|
-
body {
|
|
38
|
-
padding-top: 0;
|
|
39
|
-
padding-bottom: 0;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
37
|
#panel {
|
|
43
38
|
background-color: inherit;
|
|
44
39
|
min-height: 100%;
|
|
@@ -180,7 +175,9 @@
|
|
|
180
175
|
text-overflow: ellipsis;
|
|
181
176
|
}
|
|
182
177
|
.teaser-timestamp {
|
|
183
|
-
|
|
178
|
+
font-size: 10px;
|
|
179
|
+
margin-right: 0.5rem;
|
|
180
|
+
margin-top: 0.5rem;
|
|
184
181
|
}
|
|
185
182
|
}
|
|
186
183
|
}
|
|
@@ -196,6 +193,15 @@
|
|
|
196
193
|
.unread {
|
|
197
194
|
background-color: inherit;
|
|
198
195
|
}
|
|
196
|
+
|
|
197
|
+
.notification-chat-content {
|
|
198
|
+
padding-top: 10px;
|
|
199
|
+
padding-right: 20px;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.notification-chat-controls {
|
|
203
|
+
display: none;
|
|
204
|
+
}
|
|
199
205
|
}
|
|
200
206
|
.chat-list .unread .room-name::after,
|
|
201
207
|
.notification-list-mobile .unread a::after {
|
package/less/style.less
CHANGED
package/less/topic.less
CHANGED
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
}
|
|
42
42
|
.topic-header {
|
|
43
43
|
position: sticky;
|
|
44
|
-
top: calc(var(--panel-offset)
|
|
44
|
+
top: calc(var(--panel-offset) - 20px);
|
|
45
45
|
background-color: @body-bg;
|
|
46
46
|
z-index: @zindex-navbar;
|
|
47
47
|
margin-left: -15px;
|
|
@@ -50,12 +50,6 @@
|
|
|
50
50
|
padding-right: 15px;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
@media (max-width: @screen-md-max) {
|
|
54
|
-
.topic-header {
|
|
55
|
-
top: calc(var(--panel-offset) + @navbar-height - 70px);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
53
|
.topic-info {
|
|
60
54
|
border-bottom: 1px solid @post-border-color;
|
|
61
55
|
margin-bottom: 10px;
|
package/package.json
CHANGED
package/plugin.json
CHANGED
|
@@ -9,16 +9,13 @@
|
|
|
9
9
|
{ "hook": "filter:topic.build", "method": "addUserToTopic" }
|
|
10
10
|
],
|
|
11
11
|
"scripts": [
|
|
12
|
-
"public/persona.js",
|
|
13
|
-
"public/settings.js",
|
|
14
12
|
"public/modules/autohidingnavbar.js",
|
|
15
|
-
"public/
|
|
13
|
+
"public/persona.js"
|
|
16
14
|
],
|
|
17
15
|
"modules": {
|
|
18
|
-
"
|
|
16
|
+
"../admin/plugins/persona.js": "public/admin.js",
|
|
17
|
+
"persona/quickreply.js": "public/modules/quickreply.js",
|
|
18
|
+
"../client/account/theme.js": "public/settings.js"
|
|
19
19
|
},
|
|
20
|
-
"acpScripts": [
|
|
21
|
-
"public/admin.js"
|
|
22
|
-
],
|
|
23
20
|
"languages": "languages"
|
|
24
21
|
}
|
package/public/persona.js
CHANGED
|
@@ -31,13 +31,9 @@ $(document).ready(function () {
|
|
|
31
31
|
(parseInt(headerStyle.marginTop, 10) || 0) +
|
|
32
32
|
(parseInt(headerStyle.marginBottom, 10) || 0);
|
|
33
33
|
|
|
34
|
-
// body element itself introduces a hardcoded 70px padding on desktop resolution
|
|
35
|
-
if (env === 'lg') {
|
|
36
|
-
offset -= 70;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
34
|
offset = Math.max(0, offset);
|
|
40
35
|
document.documentElement.style.setProperty('--panel-offset', `${offset}px`);
|
|
36
|
+
localStorage.setItem('panelOffset', offset);
|
|
41
37
|
}
|
|
42
38
|
|
|
43
39
|
var lastBSEnv = '';
|
|
@@ -207,7 +203,7 @@ $(document).ready(function () {
|
|
|
207
203
|
return;
|
|
208
204
|
}
|
|
209
205
|
|
|
210
|
-
require(['pulling', 'storage', 'alerts', 'search'], function (Pulling, Storage, alerts, search) {
|
|
206
|
+
require(['pulling/build/pulling-drawer', 'storage', 'alerts', 'search'], function (Pulling, Storage, alerts, search) {
|
|
211
207
|
if (!Pulling) {
|
|
212
208
|
return;
|
|
213
209
|
}
|
package/templates/footer.tpl
CHANGED
package/templates/header.tpl
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
|
-
<html lang="{function.localeToHTML, userLang, defaultLang}" {{{if languageDirection}}}data-dir="{languageDirection}" style="direction: {languageDirection};
|
|
2
|
+
<html lang="{function.localeToHTML, userLang, defaultLang}" {{{if languageDirection}}}data-dir="{languageDirection}" style="direction: {languageDirection};"{{{end}}}>
|
|
3
3
|
<head>
|
|
4
4
|
<title>{browserTitle}</title>
|
|
5
5
|
{{{each metaTags}}}{function.buildMetaTag}{{{end}}}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<div id="taskbar" class="taskbar navbar-fixed-bottom">
|
|
2
|
-
<div class="navbar-inner"><ul class="nav navbar-nav
|
|
1
|
+
<div id="taskbar" class="taskbar navbar-fixed-bottom">
|
|
2
|
+
<div class="navbar-inner"><ul class="nav navbar-nav"></ul></div>
|
|
3
3
|
</div>
|
|
@@ -33,16 +33,26 @@
|
|
|
33
33
|
<!-- ENDIF canEdit -->
|
|
34
34
|
|
|
35
35
|
<!-- IF !isSelf -->
|
|
36
|
-
|
|
36
|
+
{{{ if (canBan || canMute) }}}
|
|
37
37
|
<li role="separator" class="divider"></li>
|
|
38
38
|
<li class="dropdown-header">[[user:admin_actions_label]]</li>
|
|
39
|
+
{{{ end }}}
|
|
40
|
+
{{{ if canBan }}}
|
|
39
41
|
<li class="<!-- IF banned -->hide<!-- ENDIF banned -->">
|
|
40
42
|
<a component="account/ban" href="#">[[user:ban_account]]</a>
|
|
41
43
|
</li>
|
|
42
44
|
<li class="<!-- IF !banned -->hide<!-- ENDIF !banned -->">
|
|
43
45
|
<a component="account/unban" href="#">[[user:unban_account]]</a>
|
|
44
46
|
</li>
|
|
45
|
-
|
|
47
|
+
{{{ end }}}
|
|
48
|
+
{{{ if canMute }}}
|
|
49
|
+
<li class="<!-- IF muted -->hide<!-- ENDIF muted -->">
|
|
50
|
+
<a component="account/mute" href="#">[[user:mute_account]]</a>
|
|
51
|
+
</li>
|
|
52
|
+
<li class="<!-- IF !muted -->hide<!-- ENDIF !muted -->">
|
|
53
|
+
<a component="account/unmute" href="#">[[user:unmute_account]]</a>
|
|
54
|
+
</li>
|
|
55
|
+
{{{ end }}}
|
|
46
56
|
<!-- IF isAdmin -->
|
|
47
57
|
<li>
|
|
48
58
|
<a component="account/delete-account" href="#" class="">[[user:delete_account_as_admin]]</a>
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
<!-- IF rooms.length -->
|
|
2
2
|
{{{each rooms}}}
|
|
3
3
|
<li class="<!-- IF ../unread -->unread<!-- ENDIF ../unread -->" data-roomid="{rooms.roomId}">
|
|
4
|
-
<strong class="room-name">
|
|
5
|
-
<!-- IF !rooms.lastUser.uid -->
|
|
6
|
-
<span>[[modules:chat.no-users-in-room]]</span>
|
|
7
|
-
<!-- ELSE -->
|
|
8
|
-
<!-- IF rooms.roomName -->{rooms.roomName}<!-- ELSE -->{rooms.usernames}<!-- ENDIF rooms.roomName -->
|
|
9
|
-
<!-- ENDIF !rooms.lastUser.uid -->
|
|
10
|
-
</strong>
|
|
11
|
-
<div class="avatar-placeholder"></div>
|
|
12
4
|
{{{each rooms.users}}}
|
|
13
5
|
<!-- IF @first -->
|
|
14
6
|
<div class="main-avatar">
|
|
@@ -25,8 +17,20 @@
|
|
|
25
17
|
{{{end}}}
|
|
26
18
|
</ul>
|
|
27
19
|
|
|
28
|
-
<
|
|
29
|
-
|
|
20
|
+
<div class="notification-chat-content">
|
|
21
|
+
<strong class="room-name">
|
|
22
|
+
<!-- IF !rooms.lastUser.uid -->
|
|
23
|
+
<span>[[modules:chat.no-users-in-room]]</span>
|
|
24
|
+
<!-- ELSE -->
|
|
25
|
+
<!-- IF rooms.roomName -->{rooms.roomName}<!-- ELSE -->{rooms.usernames}<!-- ENDIF rooms.roomName -->
|
|
26
|
+
<!-- ENDIF !rooms.lastUser.uid -->
|
|
27
|
+
</strong>
|
|
28
|
+
<span class="teaser-content">
|
|
29
|
+
<strong class="teaser-username">{rooms.teaser.user.username}:</strong>
|
|
30
|
+
{rooms.teaser.content}
|
|
31
|
+
</span>
|
|
32
|
+
</div>
|
|
33
|
+
<div class="teaser-timestamp notification-chat-controls">{rooms.teaser.timeago}</div>
|
|
30
34
|
</li>
|
|
31
35
|
{{{end}}}
|
|
32
36
|
<!-- ELSE -->
|
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
<li component="chat/recent/room" data-roomid="{rooms.roomId}" class="<!-- IF rooms.unread -->unread<!-- ENDIF rooms.unread -->">
|
|
2
|
-
<strong class="room-name">
|
|
3
|
-
<!-- IF !rooms.lastUser.uid -->
|
|
4
|
-
<span>[[modules:chat.no-users-in-room]]</span>
|
|
5
|
-
<!-- ELSE -->
|
|
6
|
-
<span component="chat/title"><!-- IF rooms.roomName -->{rooms.roomName}<!-- ELSE -->{rooms.usernames}<!-- ENDIF rooms.roomName --></span>
|
|
7
|
-
<!-- ENDIF !rooms.lastUser.uid -->
|
|
8
|
-
</strong>
|
|
9
|
-
<div class="avatar-placeholder"></div>
|
|
10
2
|
{{{each rooms.users}}}
|
|
11
3
|
<!-- IF @first -->
|
|
12
4
|
<div class="main-avatar">
|
|
@@ -22,4 +14,14 @@
|
|
|
22
14
|
</li>
|
|
23
15
|
{{{end}}}
|
|
24
16
|
</ul>
|
|
17
|
+
|
|
18
|
+
<div class="notification-chat-content">
|
|
19
|
+
<strong class="room-name">
|
|
20
|
+
<!-- IF !rooms.lastUser.uid -->
|
|
21
|
+
<span>[[modules:chat.no-users-in-room]]</span>
|
|
22
|
+
<!-- ELSE -->
|
|
23
|
+
<span component="chat/title"><!-- IF rooms.roomName -->{rooms.roomName}<!-- ELSE -->{rooms.usernames}<!-- ENDIF rooms.roomName --></span>
|
|
24
|
+
<!-- ENDIF !rooms.lastUser.uid -->
|
|
25
|
+
</strong>
|
|
26
|
+
</div>
|
|
25
27
|
</li>
|
|
@@ -13,11 +13,13 @@
|
|
|
13
13
|
<a href="{config.relative_path}/user/{notifications.user.userslug}"><div class="pull-left avatar avatar-md avatar-rounded" style="background-color: {notifications.user.icon:bgColor};">{notifications.user.icon:text}</div></a>
|
|
14
14
|
<!-- ENDIF notifications.image -->
|
|
15
15
|
|
|
16
|
-
{
|
|
17
|
-
<a href="{notifications.path}" class="deco-none">
|
|
16
|
+
<a href="{notifications.path}" class="notification-chat-content deco-none">
|
|
18
17
|
<span class="text">{notifications.bodyShort}</span>
|
|
19
|
-
<span class="pull-right relTime">{notifications.timeago}</span>
|
|
20
18
|
</a>
|
|
21
|
-
|
|
19
|
+
|
|
20
|
+
<div class="notification-chat-controls">
|
|
21
|
+
{{{ if ./nid }}}<div class="mark-read" aria-label="Mark Read"></div>{{{ end }}}
|
|
22
|
+
<span class="relTime">{notifications.timeago}</span>
|
|
23
|
+
</div>
|
|
22
24
|
</li>
|
|
23
25
|
{{{end}}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<span component="post/tools" class="dropdown moderator-tools bottom-sheet <!-- IF !posts.display_post_menu -->hidden<!-- ENDIF !posts.display_post_menu -->">
|
|
2
|
-
<a href="#" data-toggle="dropdown" data-ajaxify="false"><i class="fa fa-fw fa-ellipsis-v"></i></a>
|
|
3
|
-
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
|
|
4
|
-
</span>
|
|
1
|
+
<span component="post/tools" class="dropdown moderator-tools bottom-sheet <!-- IF !posts.display_post_menu -->hidden<!-- ENDIF !posts.display_post_menu -->">
|
|
2
|
+
<a href="#" data-toggle="dropdown" data-ajaxify="false"><i class="fa fa-fw fa-ellipsis-v"></i></a>
|
|
3
|
+
<ul class="dropdown-menu dropdown-menu-right hidden" role="menu"></ul>
|
|
4
|
+
</span>
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
{{{each users}}}
|
|
2
|
-
<li class="users-box registered-user" data-uid="{users.uid}">
|
|
3
|
-
<a href="{config.relative_path}/user/{users.userslug}">{buildAvatar(users, "lg", true)}</a>
|
|
4
|
-
<br/>
|
|
5
|
-
<div class="user-info">
|
|
6
|
-
<span>
|
|
7
|
-
<i component="user/status" class="fa fa-circle status {users.status}" title="[[global:{users.status}]]"></i>
|
|
8
|
-
<a href="{config.relative_path}/user/{users.userslug}">{users.username}</a>
|
|
9
|
-
</span>
|
|
10
|
-
<br/>
|
|
11
|
-
|
|
12
|
-
<!-- IF section_online -->
|
|
13
|
-
<div class="lastonline">
|
|
14
|
-
<span class="timeago" title="{users.lastonlineISO}"></span>
|
|
15
|
-
</div>
|
|
16
|
-
<!-- ENDIF section_online -->
|
|
17
|
-
|
|
18
|
-
<!-- IF section_joindate -->
|
|
19
|
-
<div class="joindate">
|
|
20
|
-
<span class="timeago" title="{users.joindateISO}"></span>
|
|
21
|
-
</div>
|
|
22
|
-
<!-- ENDIF section_joindate -->
|
|
23
|
-
|
|
24
|
-
<!-- IF section_sort-reputation -->
|
|
25
|
-
<div class="reputation">
|
|
26
|
-
<i class="fa fa-star"></i>
|
|
27
|
-
<span class="formatted-number">{users.reputation}</span>
|
|
28
|
-
</div>
|
|
29
|
-
<!-- ENDIF section_sort-reputation -->
|
|
30
|
-
|
|
31
|
-
<!-- IF section_sort-posts -->
|
|
32
|
-
<div class="post-count">
|
|
33
|
-
<i class="fa fa-pencil"></i>
|
|
34
|
-
<span class="formatted-number">{users.postcount}</span>
|
|
35
|
-
</div>
|
|
36
|
-
<!-- ENDIF section_sort-posts -->
|
|
37
|
-
|
|
38
|
-
<!-- IF section_flagged -->
|
|
39
|
-
<div class="flag-count">
|
|
40
|
-
<i class="fa fa-flag"></i>
|
|
41
|
-
<span><a class="formatted-number" href="{config.relative_path}/flags?targetUid={users.uid}">{users.flags}</a></span>
|
|
42
|
-
</div>
|
|
43
|
-
<!-- ENDIF section_flagged -->
|
|
44
|
-
</div>
|
|
45
|
-
</li>
|
|
1
|
+
{{{each users}}}
|
|
2
|
+
<li class="users-box registered-user" data-uid="{users.uid}">
|
|
3
|
+
<a href="{config.relative_path}/user/{users.userslug}">{buildAvatar(users, "lg", true)}</a>
|
|
4
|
+
<br/>
|
|
5
|
+
<div class="user-info">
|
|
6
|
+
<span>
|
|
7
|
+
<i component="user/status" class="fa fa-circle status {users.status}" title="[[global:{users.status}]]"></i>
|
|
8
|
+
<a href="{config.relative_path}/user/{users.userslug}">{users.username}</a>
|
|
9
|
+
</span>
|
|
10
|
+
<br/>
|
|
11
|
+
|
|
12
|
+
<!-- IF section_online -->
|
|
13
|
+
<div class="lastonline">
|
|
14
|
+
<span class="timeago" title="{users.lastonlineISO}"></span>
|
|
15
|
+
</div>
|
|
16
|
+
<!-- ENDIF section_online -->
|
|
17
|
+
|
|
18
|
+
<!-- IF section_joindate -->
|
|
19
|
+
<div class="joindate">
|
|
20
|
+
<span class="timeago" title="{users.joindateISO}"></span>
|
|
21
|
+
</div>
|
|
22
|
+
<!-- ENDIF section_joindate -->
|
|
23
|
+
|
|
24
|
+
<!-- IF section_sort-reputation -->
|
|
25
|
+
<div class="reputation">
|
|
26
|
+
<i class="fa fa-star"></i>
|
|
27
|
+
<span class="formatted-number">{users.reputation}</span>
|
|
28
|
+
</div>
|
|
29
|
+
<!-- ENDIF section_sort-reputation -->
|
|
30
|
+
|
|
31
|
+
<!-- IF section_sort-posts -->
|
|
32
|
+
<div class="post-count">
|
|
33
|
+
<i class="fa fa-pencil"></i>
|
|
34
|
+
<span class="formatted-number">{users.postcount}</span>
|
|
35
|
+
</div>
|
|
36
|
+
<!-- ENDIF section_sort-posts -->
|
|
37
|
+
|
|
38
|
+
<!-- IF section_flagged -->
|
|
39
|
+
<div class="flag-count">
|
|
40
|
+
<i class="fa fa-flag"></i>
|
|
41
|
+
<span><a class="formatted-number" href="{config.relative_path}/flags?targetUid={users.uid}">{users.flags}</a></span>
|
|
42
|
+
</div>
|
|
43
|
+
<!-- ENDIF section_flagged -->
|
|
44
|
+
</div>
|
|
45
|
+
</li>
|
|
46
46
|
{{{end}}}
|
package/templates/post-queue.tpl
CHANGED
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
<!-- IMPORT partials/breadcrumbs.tpl -->
|
|
2
|
-
<div class="btn-toolbar">
|
|
3
|
-
<!-- IMPORT partials/category-filter-right.tpl -->
|
|
4
|
-
</div>
|
|
5
|
-
<hr/>
|
|
6
|
-
<div class="row">
|
|
7
|
-
<div class="col-xs-12">
|
|
8
|
-
<div class="post-queue preventSlideout posts-list">
|
|
9
|
-
{{{ if !posts.length }}}
|
|
10
|
-
{{{ if isAdmin }}}
|
|
11
|
-
<p class="panel-body">
|
|
12
|
-
[[post-queue:description, {config.relative_path}/admin/settings/post#post-queue]]
|
|
13
|
-
</p>
|
|
14
|
-
{{{ end }}}
|
|
15
|
-
{{{ end }}}
|
|
16
|
-
|
|
17
|
-
{{{ each posts }}}
|
|
18
|
-
<div class="panel panel-default" data-id="{posts.id}">
|
|
19
|
-
<div class="panel-heading">
|
|
20
|
-
<strong>{{{ if posts.data.tid }}}[[post-queue:reply]]{{{ else }}}[[post-queue:topic]]{{{ end }}}</strong>
|
|
21
|
-
<span class="timeago pull-right" title={posts.data.timestampISO}></span>
|
|
22
|
-
</div>
|
|
23
|
-
<div class="panel-body">
|
|
24
|
-
|
|
25
|
-
<div class="row">
|
|
26
|
-
<div class="col-lg-2 col-xs-12">
|
|
27
|
-
<strong>[[post-queue:user]]</strong>
|
|
28
|
-
<div>
|
|
29
|
-
{{{ if posts.user.userslug}}}
|
|
30
|
-
<a href="{config.relative_path}/uid/{posts.user.uid}">{buildAvatar(posts.user, "24", true, "not-responsive")} {posts.user.username}</a>
|
|
31
|
-
{{{ else }}}
|
|
32
|
-
{posts.user.username}
|
|
33
|
-
{{{ end }}}
|
|
34
|
-
</div>
|
|
35
|
-
</div>
|
|
36
|
-
<div class="col-lg-3 col-xs-12">
|
|
37
|
-
<strong>[[post-queue:category]]{{{ if posts.data.cid}}} <i class="fa fa-fw fa-edit" data-toggle="tooltip" title="[[post-queue:category-editable]]"></i>{{{ end }}}</strong>
|
|
38
|
-
<div class="topic-category" {{{if posts.data.cid}}}data-editable="editable"{{{end}}}">
|
|
39
|
-
<a href="{config.relative_path}/category/{posts.category.slug}"><!-- IF posts.category.icon --><span class="fa-stack"><i style="color: {posts.category.bgColor};" class="fa fa-circle fa-stack-2x"></i><i style="color: {posts.category.color};" class="fa fa-stack-1x fa-fw {posts.category.icon}"></i></span><!-- ENDIF posts.category.icon --> {posts.category.name}</a>
|
|
40
|
-
</div>
|
|
41
|
-
</div>
|
|
42
|
-
<div class="col-lg-7 col-xs-12">
|
|
43
|
-
<strong>{{{ if posts.data.tid }}}[[post-queue:topic]]{{{ else }}}[[post-queue:title]] <i class="fa fa-fw fa-edit" data-toggle="tooltip" title="[[post-queue:title-editable]]"></i>{{{ end }}}</strong>
|
|
44
|
-
<div class="topic-title">
|
|
45
|
-
{{{ if posts.data.tid }}}
|
|
46
|
-
<a href="{config.relative_path}/topic/{posts.data.tid}">{posts.topic.title}</a>
|
|
47
|
-
{{{ end }}}
|
|
48
|
-
<span class="title-text">{posts.data.title}</span>
|
|
49
|
-
</div>
|
|
50
|
-
{{{if !posts.data.tid}}}
|
|
51
|
-
<div class="topic-title-editable hidden">
|
|
52
|
-
<input class="form-control" type="text" value="{posts.data.title}"/>
|
|
53
|
-
</div>
|
|
54
|
-
{{{end}}}
|
|
55
|
-
</div>
|
|
56
|
-
</div>
|
|
57
|
-
<hr/>
|
|
58
|
-
<div>
|
|
59
|
-
<strong>[[post-queue:content]] <i class="fa fa-fw fa-edit" data-toggle="tooltip" title="[[post-queue:content-editable]]"></i></strong>
|
|
60
|
-
<div class="post-content">{posts.data.content}</div>
|
|
61
|
-
<div class="post-content-editable hidden">
|
|
62
|
-
<textarea class="form-control">{posts.data.rawContent}</textarea>
|
|
63
|
-
</div>
|
|
64
|
-
</div>
|
|
65
|
-
</div>
|
|
66
|
-
<div class="panel-footer text-right">
|
|
67
|
-
<div>
|
|
68
|
-
{{{ if canAccept }}}
|
|
69
|
-
<button class="btn btn-danger btn-xs" data-action="reject"><i class="fa fa-fw fa-times"></i> [[post-queue:reject]]</button>
|
|
70
|
-
<button class="btn btn-info btn-xs" data-action="notify"><i class="fa fa-fw fa-bell-o"></i> [[post-queue:notify]]</button>
|
|
71
|
-
<button class="btn btn-success btn-xs" data-action="accept"><i class="fa fa-fw fa-check"></i> [[post-queue:accept]] </button>
|
|
72
|
-
{{{ else }}}
|
|
73
|
-
<button class="btn btn-danger btn-xs" data-action="reject"><i class="fa fa-fw fa-times"></i> [[post-queue:remove]]</button>
|
|
74
|
-
{{{ end }}}
|
|
75
|
-
</div>
|
|
76
|
-
</div>
|
|
77
|
-
</div>
|
|
78
|
-
{{{ end }}}
|
|
79
|
-
</div>
|
|
80
|
-
|
|
81
|
-
<!-- IMPORT partials/paginator.tpl -->
|
|
82
|
-
</div>
|
|
1
|
+
<!-- IMPORT partials/breadcrumbs.tpl -->
|
|
2
|
+
<div class="btn-toolbar">
|
|
3
|
+
<!-- IMPORT partials/category-filter-right.tpl -->
|
|
4
|
+
</div>
|
|
5
|
+
<hr/>
|
|
6
|
+
<div class="row">
|
|
7
|
+
<div class="col-xs-12">
|
|
8
|
+
<div class="post-queue preventSlideout posts-list">
|
|
9
|
+
{{{ if !posts.length }}}
|
|
10
|
+
{{{ if isAdmin }}}
|
|
11
|
+
<p class="panel-body">
|
|
12
|
+
[[post-queue:description, {config.relative_path}/admin/settings/post#post-queue]]
|
|
13
|
+
</p>
|
|
14
|
+
{{{ end }}}
|
|
15
|
+
{{{ end }}}
|
|
16
|
+
|
|
17
|
+
{{{ each posts }}}
|
|
18
|
+
<div class="panel panel-default" data-id="{posts.id}">
|
|
19
|
+
<div class="panel-heading">
|
|
20
|
+
<strong>{{{ if posts.data.tid }}}[[post-queue:reply]]{{{ else }}}[[post-queue:topic]]{{{ end }}}</strong>
|
|
21
|
+
<span class="timeago pull-right" title={posts.data.timestampISO}></span>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="panel-body">
|
|
24
|
+
|
|
25
|
+
<div class="row">
|
|
26
|
+
<div class="col-lg-2 col-xs-12">
|
|
27
|
+
<strong>[[post-queue:user]]</strong>
|
|
28
|
+
<div>
|
|
29
|
+
{{{ if posts.user.userslug}}}
|
|
30
|
+
<a href="{config.relative_path}/uid/{posts.user.uid}">{buildAvatar(posts.user, "24", true, "not-responsive")} {posts.user.username}</a>
|
|
31
|
+
{{{ else }}}
|
|
32
|
+
{posts.user.username}
|
|
33
|
+
{{{ end }}}
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
<div class="col-lg-3 col-xs-12">
|
|
37
|
+
<strong>[[post-queue:category]]{{{ if posts.data.cid}}} <i class="fa fa-fw fa-edit" data-toggle="tooltip" title="[[post-queue:category-editable]]"></i>{{{ end }}}</strong>
|
|
38
|
+
<div class="topic-category" {{{if posts.data.cid}}}data-editable="editable"{{{end}}}">
|
|
39
|
+
<a href="{config.relative_path}/category/{posts.category.slug}"><!-- IF posts.category.icon --><span class="fa-stack"><i style="color: {posts.category.bgColor};" class="fa fa-circle fa-stack-2x"></i><i style="color: {posts.category.color};" class="fa fa-stack-1x fa-fw {posts.category.icon}"></i></span><!-- ENDIF posts.category.icon --> {posts.category.name}</a>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
<div class="col-lg-7 col-xs-12">
|
|
43
|
+
<strong>{{{ if posts.data.tid }}}[[post-queue:topic]]{{{ else }}}[[post-queue:title]] <i class="fa fa-fw fa-edit" data-toggle="tooltip" title="[[post-queue:title-editable]]"></i>{{{ end }}}</strong>
|
|
44
|
+
<div class="topic-title">
|
|
45
|
+
{{{ if posts.data.tid }}}
|
|
46
|
+
<a href="{config.relative_path}/topic/{posts.data.tid}">{posts.topic.title}</a>
|
|
47
|
+
{{{ end }}}
|
|
48
|
+
<span class="title-text">{posts.data.title}</span>
|
|
49
|
+
</div>
|
|
50
|
+
{{{if !posts.data.tid}}}
|
|
51
|
+
<div class="topic-title-editable hidden">
|
|
52
|
+
<input class="form-control" type="text" value="{posts.data.title}"/>
|
|
53
|
+
</div>
|
|
54
|
+
{{{end}}}
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
<hr/>
|
|
58
|
+
<div>
|
|
59
|
+
<strong>[[post-queue:content]] <i class="fa fa-fw fa-edit" data-toggle="tooltip" title="[[post-queue:content-editable]]"></i></strong>
|
|
60
|
+
<div class="post-content">{posts.data.content}</div>
|
|
61
|
+
<div class="post-content-editable hidden">
|
|
62
|
+
<textarea class="form-control">{posts.data.rawContent}</textarea>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
<div class="panel-footer text-right">
|
|
67
|
+
<div>
|
|
68
|
+
{{{ if canAccept }}}
|
|
69
|
+
<button class="btn btn-danger btn-xs" data-action="reject"><i class="fa fa-fw fa-times"></i> [[post-queue:reject]]</button>
|
|
70
|
+
<button class="btn btn-info btn-xs" data-action="notify"><i class="fa fa-fw fa-bell-o"></i> [[post-queue:notify]]</button>
|
|
71
|
+
<button class="btn btn-success btn-xs" data-action="accept"><i class="fa fa-fw fa-check"></i> [[post-queue:accept]] </button>
|
|
72
|
+
{{{ else }}}
|
|
73
|
+
<button class="btn btn-danger btn-xs" data-action="reject"><i class="fa fa-fw fa-times"></i> [[post-queue:remove]]</button>
|
|
74
|
+
{{{ end }}}
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
{{{ end }}}
|
|
79
|
+
</div>
|
|
80
|
+
|
|
81
|
+
<!-- IMPORT partials/paginator.tpl -->
|
|
82
|
+
</div>
|
|
83
83
|
</div>
|