nodebb-theme-harmony 1.1.105 → 1.1.107

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