nodebb-theme-harmony 1.1.72 → 1.1.73
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 +1 -1
- package/templates/account/blocks.tpl +3 -3
- package/templates/account/categories.tpl +1 -1
- package/templates/account/consent.tpl +15 -15
- package/templates/account/edit/password.tpl +7 -7
- package/templates/account/edit/username.tpl +4 -4
- package/templates/account/edit.tpl +7 -7
- package/templates/account/followers.tpl +1 -1
- package/templates/account/following.tpl +1 -1
- package/templates/account/groups.tpl +1 -1
- package/templates/account/info.tpl +4 -4
- package/templates/account/profile.tpl +1 -1
- package/templates/account/settings.tpl +31 -31
- package/templates/account/theme.tpl +1 -1
- package/templates/category.tpl +1 -1
- package/templates/chat.tpl +1 -1
- package/templates/chats.tpl +1 -1
- package/templates/flags/detail.tpl +7 -7
- package/templates/groups/details.tpl +2 -2
- package/templates/groups/list.tpl +9 -9
- package/templates/login.tpl +5 -5
- package/templates/notifications.tpl +1 -1
- package/templates/partials/account/admin-menu.tpl +8 -8
- package/templates/partials/account/header.tpl +1 -1
- package/templates/partials/account/session-list.tpl +1 -1
- package/templates/partials/account/sidebar-left.tpl +3 -3
- package/templates/partials/buttons/newTopic.tpl +1 -1
- package/templates/partials/categories/lastpost.tpl +1 -1
- package/templates/partials/category/filter-dropdown-content.tpl +2 -2
- package/templates/partials/category/selector-dropdown-content.tpl +1 -1
- package/templates/partials/category/sort.tpl +6 -6
- package/templates/partials/category/tools.tpl +13 -13
- package/templates/partials/chats/dropdown.tpl +1 -1
- package/templates/partials/chats/message-window.tpl +1 -1
- package/templates/partials/flags/filters.tpl +1 -1
- package/templates/partials/groups/admin.tpl +10 -10
- package/templates/partials/groups/pending.tpl +2 -2
- package/templates/partials/notifications_list.tpl +1 -1
- package/templates/partials/post_bar.tpl +1 -1
- package/templates/partials/search-results.tpl +1 -1
- package/templates/partials/sidebar/chats.tpl +3 -3
- package/templates/partials/sidebar/drafts.tpl +1 -1
- package/templates/partials/sidebar/logged-out-menu.tpl +1 -1
- package/templates/partials/sidebar/notifications.tpl +2 -2
- package/templates/partials/topic/navigator-mobile.tpl +1 -1
- package/templates/partials/topic/post-editor.tpl +1 -1
- package/templates/partials/topic/post-menu-list.tpl +1 -1
- package/templates/partials/topic/post.tpl +2 -2
- package/templates/partials/topic/quickreply.tpl +1 -1
- package/templates/partials/topic/sort.tpl +7 -7
- package/templates/partials/topic/tools.tpl +1 -1
- package/templates/partials/topic/topic-menu-list.tpl +14 -14
- package/templates/partials/topic-list-bar.tpl +1 -1
- package/templates/partials/topics_list.tpl +1 -1
- package/templates/partials/users_list_menu.tpl +3 -3
- package/templates/popular.tpl +1 -1
- package/templates/post-queue.tpl +8 -8
- package/templates/recent.tpl +1 -1
- package/templates/register.tpl +8 -8
- package/templates/tag.tpl +2 -2
- package/templates/tags.tpl +1 -1
- package/templates/top.tpl +1 -1
- package/templates/unread.tpl +2 -2
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<div class="justify-content-end">
|
|
5
5
|
<div class="dropdown">
|
|
6
6
|
<div class="input-group">
|
|
7
|
-
<input class="form-control form-control-sm" type="text" id="user-search" placeholder="[[users:
|
|
7
|
+
<input class="form-control form-control-sm" type="text" id="user-search" placeholder="[[users:enter-username]]" data-bs-toggle="dropdown" autocomplete="off"/>
|
|
8
8
|
|
|
9
9
|
<ul component="blocks/search/list" class="dropdown-menu dropdown-menu-end p-1 text-sm block-edit overflow-auto" style="max-height:300px;">
|
|
10
10
|
<li><a href="#" class="dropdown-item">[[admin/menu:search.start-typing]]</a></li>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<div class="text-truncate">
|
|
15
15
|
<a href="{config.relative_path}/uid/{./uid}" class="text-decoration-none">{buildAvatar(edit, "24px", true)} {./username}</a>
|
|
16
16
|
</div>
|
|
17
|
-
<button class="btn btn-sm btn-primary text-nowrap" data-uid="{./uid}" data-action="toggle">[[user:
|
|
17
|
+
<button class="btn btn-sm btn-primary text-nowrap" data-uid="{./uid}" data-action="toggle">[[user:block-toggle]]</button>
|
|
18
18
|
</div>
|
|
19
19
|
</li>
|
|
20
20
|
{{{ end }}}
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
<!-- IMPORT partials/users/item.tpl -->
|
|
34
34
|
{{{ end }}}
|
|
35
35
|
</div>
|
|
36
|
-
<div class="alert alert-warning text-center"{{{ if users.length }}} style="display: none;"{{{ end }}}>[[user:
|
|
36
|
+
<div class="alert alert-warning text-center"{{{ if users.length }}} style="display: none;"{{{ end }}}>[[user:has-no-blocks]]</div>
|
|
37
37
|
<!-- IMPORT partials/paginator.tpl -->
|
|
38
38
|
</div>
|
|
39
39
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<div class="d-flex gap-1">
|
|
9
9
|
<div class="btn-group bottom-sheet" component="category/watch/all">
|
|
10
10
|
<button class="btn-ghost-sm fw-semibold dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
11
|
-
<span>[[user:
|
|
11
|
+
<span>[[user:change-all]]</span>
|
|
12
12
|
</button>
|
|
13
13
|
<ul class="dropdown-menu p-1 text-sm dropdown-menu-end">
|
|
14
14
|
<li><a class="dropdown-item rounded-1 d-flex flex-column p-2" href="#" component="category/watching" data-state="watching">
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
</div>
|
|
16
16
|
{{{ else }}}
|
|
17
17
|
<div class="alert alert-warning">
|
|
18
|
-
[[user:consent.
|
|
18
|
+
[[user:consent.not-received]]
|
|
19
19
|
<br /><br />
|
|
20
20
|
<div class="text-center">
|
|
21
21
|
<button class="btn btn-warning" data-action="consent">[[user:consent.give]]</button>
|
|
@@ -24,11 +24,11 @@
|
|
|
24
24
|
{{{ end }}}
|
|
25
25
|
<div class="card">
|
|
26
26
|
<div class="card-body">
|
|
27
|
-
<p>[[user:consent.
|
|
27
|
+
<p>[[user:consent.email-intro]]</p>
|
|
28
28
|
{{{ if digest.enabled }}}
|
|
29
|
-
<p>[[user:consent.
|
|
29
|
+
<p>[[user:consent.digest-frequency, {digest.frequency}]]</p>
|
|
30
30
|
{{{ else }}}
|
|
31
|
-
<p>[[user:consent.
|
|
31
|
+
<p>[[user:consent.digest-off]]</p>
|
|
32
32
|
{{{ end }}}
|
|
33
33
|
|
|
34
34
|
<div class="d-grid">
|
|
@@ -43,26 +43,26 @@
|
|
|
43
43
|
<div class="col-sm-6">
|
|
44
44
|
<div class="card">
|
|
45
45
|
<div class="card-body">
|
|
46
|
-
<p><strong>[[user:consent.
|
|
47
|
-
<p>[[user:consent.
|
|
48
|
-
<p><strong>[[user:consent.
|
|
49
|
-
<p>[[user:consent.
|
|
50
|
-
<p><strong>[[user:consent.
|
|
51
|
-
<p>[[user:consent.
|
|
52
|
-
<p><strong>[[user:consent.
|
|
53
|
-
<p>[[user:consent.
|
|
46
|
+
<p><strong>[[user:consent.right-of-access]]</strong></p>
|
|
47
|
+
<p>[[user:consent.right-of-access-description]]</p>
|
|
48
|
+
<p><strong>[[user:consent.right-to-rectification]]</strong></p>
|
|
49
|
+
<p>[[user:consent.right-to-rectification-description]]</p>
|
|
50
|
+
<p><strong>[[user:consent.right-to-erasure]]</strong></p>
|
|
51
|
+
<p>[[user:consent.right-to-erasure-description]]</p>
|
|
52
|
+
<p><strong>[[user:consent.right-to-data-portability]]</strong></p>
|
|
53
|
+
<p>[[user:consent.right-to-data-portability-description]]</p>
|
|
54
54
|
|
|
55
55
|
<hr />
|
|
56
56
|
|
|
57
57
|
<div class="btn-group-vertical d-grid">
|
|
58
58
|
<a data-action="export-profile" class="btn btn-outline-secondary">
|
|
59
|
-
<i class="fa fa-download"></i> [[user:consent.
|
|
59
|
+
<i class="fa fa-download"></i> [[user:consent.export-profile]]
|
|
60
60
|
</a>
|
|
61
61
|
<a data-action="export-posts" class="btn btn-outline-secondary">
|
|
62
|
-
<i class="fa fa-download"></i> [[user:consent.
|
|
62
|
+
<i class="fa fa-download"></i> [[user:consent.export-posts]]
|
|
63
63
|
</a>
|
|
64
64
|
<a data-action="export-uploads" class="btn btn-outline-secondary">
|
|
65
|
-
<i class="fa fa-download"></i> [[user:consent.
|
|
65
|
+
<i class="fa fa-download"></i> [[user:consent.export-uploads]]
|
|
66
66
|
</a>
|
|
67
67
|
</div>
|
|
68
68
|
</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<!-- IMPORT partials/account/header.tpl -->
|
|
2
2
|
|
|
3
|
-
<h3 class="fw-semibold fs-5">{{{ if isSelf }}}[[user:
|
|
3
|
+
<h3 class="fw-semibold fs-5">{{{ if isSelf }}}[[user:change-password]]{{{ else }}}[[pages:{template.name}, {username}]]{{{ end }}}</h3>
|
|
4
4
|
<div class="row">
|
|
5
5
|
<div class="col-12 col-lg-4">
|
|
6
6
|
<form class="edit-form">
|
|
@@ -8,25 +8,25 @@
|
|
|
8
8
|
|
|
9
9
|
{{{ if isSelf }}}
|
|
10
10
|
<div class="mb-2">
|
|
11
|
-
<label class="form-label fw-semibold text-xm" for="inputCurrentPassword">[[user:
|
|
12
|
-
<input autocomplete="off" class="form-control" type="password" id="inputCurrentPassword" placeholder="[[user:
|
|
11
|
+
<label class="form-label fw-semibold text-xm" for="inputCurrentPassword">[[user:current-password]]</label>
|
|
12
|
+
<input autocomplete="off" class="form-control" type="password" id="inputCurrentPassword" placeholder="[[user:current-password]]" value="" {{{ if !hasPassword }}} disabled{{{ end }}}>
|
|
13
13
|
</div>
|
|
14
14
|
{{{ end }}}
|
|
15
15
|
|
|
16
16
|
<div class="mb-2">
|
|
17
|
-
<label class="form-label fw-semibold text-xm" for="inputNewPassword">[[user:
|
|
17
|
+
<label class="form-label fw-semibold text-xm" for="inputNewPassword">[[user:new-password]]</label>
|
|
18
18
|
<input class="form-control" type="password" id="inputNewPassword" placeholder="[[user:password]]" value="">
|
|
19
19
|
<span class="form-feedback" id="password-notify"></span>
|
|
20
20
|
</div>
|
|
21
21
|
|
|
22
22
|
<div class="mb-2">
|
|
23
|
-
<label class="form-label fw-semibold text-xm" for="inputNewPasswordAgain">[[user:
|
|
24
|
-
<input class="form-control" type="password" id="inputNewPasswordAgain" placeholder="[[user:
|
|
23
|
+
<label class="form-label fw-semibold text-xm" for="inputNewPasswordAgain">[[user:confirm-password]]</label>
|
|
24
|
+
<input class="form-control" type="password" id="inputNewPasswordAgain" placeholder="[[user:confirm-password]]" value="">
|
|
25
25
|
<span class="form-feedback" id="password-confirm-notify"></span>
|
|
26
26
|
</div>
|
|
27
27
|
|
|
28
28
|
<div class="form-actions">
|
|
29
|
-
<button id="changePasswordBtn" class="btn btn-primary btn-block"><i class="hide fa fa-spinner fa-spin"></i> [[user:
|
|
29
|
+
<button id="changePasswordBtn" class="btn btn-primary btn-block"><i class="hide fa fa-spinner fa-spin"></i> [[user:change-password]]</button>
|
|
30
30
|
</div>
|
|
31
31
|
</form>
|
|
32
32
|
</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<!-- IMPORT partials/account/header.tpl -->
|
|
2
2
|
|
|
3
|
-
<h3 class="fw-semibold fs-5">{{{ if isSelf }}}[[user:
|
|
3
|
+
<h3 class="fw-semibold fs-5">{{{ if isSelf }}}[[user:change-username]]{{{ else }}}[[pages:{template.name}, {username}]]{{{ end }}}</h3>
|
|
4
4
|
<div class="row">
|
|
5
5
|
<div class="col-12 col-lg-4">
|
|
6
6
|
<form class="edit-form">
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
|
|
14
14
|
{{{ if isSelf }}}
|
|
15
15
|
<div class="mb-2">
|
|
16
|
-
<label class="form-label fw-semibold text-sm" for="inputCurrentPassword">[[user:
|
|
17
|
-
<input autocomplete="off" class="form-control" type="password" id="inputCurrentPassword" placeholder="[[user:
|
|
16
|
+
<label class="form-label fw-semibold text-sm" for="inputCurrentPassword">[[user:current-password]]</label>
|
|
17
|
+
<input autocomplete="off" class="form-control" type="password" id="inputCurrentPassword" placeholder="[[user:current-password]]" value=""{{{ if !hasPassword }}} disabled{{{ end }}}>
|
|
18
18
|
</div>
|
|
19
19
|
{{{ end }}}
|
|
20
20
|
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
|
|
23
23
|
<br/>
|
|
24
24
|
<div class="form-actions">
|
|
25
|
-
<button id="submitBtn" class="btn btn-primary btn-block"><i class="hide fa fa-spinner fa-spin"></i> [[user:
|
|
25
|
+
<button id="submitBtn" class="btn btn-primary btn-block"><i class="hide fa fa-spinner fa-spin"></i> [[user:change-username]]</button>
|
|
26
26
|
</div>
|
|
27
27
|
</form>
|
|
28
28
|
</div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
<div class="d-flex justify-content-between py-1 mb-3 align-items-center position-sticky top-0 bg-body">
|
|
4
4
|
<h3 class="fw-semibold fs-5 mb-0">{{{ if isSelf }}}[[user:edit-profile]]{{{ else }}}[[pages:account/edit, {username}]]{{{ end }}}</h3>
|
|
5
|
-
<button id="submitBtn" class="btn btn-sm btn-primary">[[global:
|
|
5
|
+
<button id="submitBtn" class="btn btn-sm btn-primary">[[global:save-changes]]</button>
|
|
6
6
|
</div>
|
|
7
7
|
<div class="row">
|
|
8
8
|
<div class="col-xl-6 col-12">
|
|
@@ -68,16 +68,16 @@
|
|
|
68
68
|
<div class="text-center">
|
|
69
69
|
<ul class="list-group mb-3 text-sm text-nowrap">
|
|
70
70
|
{{{ if allowProfilePicture }}}
|
|
71
|
-
<a component="profile/change/picture" href="#" class="list-group-item px-1 text-decoration-none">[[user:
|
|
71
|
+
<a component="profile/change/picture" href="#" class="list-group-item px-1 text-decoration-none">[[user:change-picture]]</a>
|
|
72
72
|
{{{ end }}}
|
|
73
73
|
{{{ if !username:disableEdit }}}
|
|
74
|
-
<a href="{config.relative_path}/user/{userslug}/edit/username" class="list-group-item px-1 text-decoration-none">[[user:
|
|
74
|
+
<a href="{config.relative_path}/user/{userslug}/edit/username" class="list-group-item px-1 text-decoration-none">[[user:change-username]]</a>
|
|
75
75
|
{{{ end }}}
|
|
76
76
|
{{{ if !email:disableEdit }}}
|
|
77
|
-
<a href="{config.relative_path}/user/{userslug}/edit/email" class="list-group-item px-1 text-decoration-none">[[user:
|
|
77
|
+
<a href="{config.relative_path}/user/{userslug}/edit/email" class="list-group-item px-1 text-decoration-none">[[user:change-email]]</a>
|
|
78
78
|
{{{ end }}}
|
|
79
79
|
{{{ if canChangePassword }}}
|
|
80
|
-
<a href="{config.relative_path}/user/{userslug}/edit/password" class="list-group-item px-1 text-decoration-none">[[user:
|
|
80
|
+
<a href="{config.relative_path}/user/{userslug}/edit/password" class="list-group-item px-1 text-decoration-none">[[user:change-password]]</a>
|
|
81
81
|
{{{ end }}}
|
|
82
82
|
{{{ each editButtons }}}
|
|
83
83
|
<a href="{config.relative_path}{./link}" class="list-group-item px-1 text-decoration-none">{./text}</a>
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
|
|
87
87
|
{{{ if config.requireEmailConfirmation }}}
|
|
88
88
|
{{{ if (email && isSelf) }}}
|
|
89
|
-
<a id="confirm-email" href="#" class="btn btn-warning {{{ if email:confirmed }}}hide{{{ end }}}">[[user:
|
|
89
|
+
<a id="confirm-email" href="#" class="btn btn-warning {{{ if email:confirmed }}}hide{{{ end }}}">[[user:confirm-email]]</a><br/><br/>
|
|
90
90
|
{{{ end }}}
|
|
91
91
|
{{{ end }}}
|
|
92
92
|
</div>
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
<hr/>
|
|
113
113
|
{{{ if (allowAccountDelete && isSelf) }}}
|
|
114
114
|
<div class="d-flex justify-content-center">
|
|
115
|
-
<button id="deleteAccountBtn" class="btn btn-danger">[[user:
|
|
115
|
+
<button id="deleteAccountBtn" class="btn btn-danger">[[user:delete-account]]</button>
|
|
116
116
|
</div>
|
|
117
117
|
{{{ end }}}
|
|
118
118
|
</div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<h3 class="fw-semibold fs-5">[[pages:{template.name}, {username}]]</h3>
|
|
3
3
|
|
|
4
4
|
{{{ if !users.length }}}
|
|
5
|
-
<div class="alert alert-warning text-center">[[user:
|
|
5
|
+
<div class="alert alert-warning text-center">[[user:has-no-follower]]</div>
|
|
6
6
|
{{{ end }}}
|
|
7
7
|
|
|
8
8
|
<div class="row row-cols-2 row-cols-lg-3 row-cols-xl-4 g-4">
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<h3 class="fw-semibold fs-5">[[pages:{template.name}, {username}]]</h3>
|
|
4
4
|
|
|
5
5
|
{{{ if !users.length }}}
|
|
6
|
-
<div class="alert alert-warning text-center">[[user:
|
|
6
|
+
<div class="alert alert-warning text-center">[[user:follows-no-one]]</div>
|
|
7
7
|
{{{ end }}}
|
|
8
8
|
|
|
9
9
|
<div class="row row-cols-2 row-cols-lg-3 row-cols-xl-4 g-4">
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<div class="groups">
|
|
6
6
|
<div component="groups/container" id="groups-list" class="row">
|
|
7
7
|
{{{ if !groups.length }}}
|
|
8
|
-
<div class="alert alert-warning text-center">[[groups:
|
|
8
|
+
<div class="alert alert-warning text-center">[[groups:no-groups-found]]</div>
|
|
9
9
|
{{{ else }}}
|
|
10
10
|
<!-- IMPORT partials/groups/list.tpl -->
|
|
11
11
|
{{{ end }}}
|
|
@@ -88,10 +88,10 @@
|
|
|
88
88
|
[[user:info.ban-history]]
|
|
89
89
|
|
|
90
90
|
{{{ if (!banned && !isSelf) }}}
|
|
91
|
-
<button class="btn btn-sm float-end btn-danger" component="account/ban">[[user:
|
|
91
|
+
<button class="btn btn-sm float-end btn-danger" component="account/ban">[[user:ban-account]]</button>
|
|
92
92
|
{{{ end }}}
|
|
93
93
|
{{{ if (banned && !isSelf) }}}
|
|
94
|
-
<button class="btn btn-sm float-end btn-success" component="account/unban">[[user:
|
|
94
|
+
<button class="btn btn-sm float-end btn-success" component="account/unban">[[user:unban-account]]</button>
|
|
95
95
|
{{{ end }}}
|
|
96
96
|
</h5>
|
|
97
97
|
<div class="card-body">
|
|
@@ -127,11 +127,11 @@
|
|
|
127
127
|
|
|
128
128
|
{{{ if !muted }}}
|
|
129
129
|
{{{ if !isSelf }}}
|
|
130
|
-
<button class="btn btn-sm float-end btn-danger" component="account/mute">[[user:
|
|
130
|
+
<button class="btn btn-sm float-end btn-danger" component="account/mute">[[user:mute-account]]</button>
|
|
131
131
|
{{{ end }}}
|
|
132
132
|
{{{ else }}}
|
|
133
133
|
{{{ if !isSelf }}}
|
|
134
|
-
<button class="btn btn-sm float-end btn-success" component="account/unmute">[[user:
|
|
134
|
+
<button class="btn btn-sm float-end btn-success" component="account/unmute">[[user:unmute-account]]</button>
|
|
135
135
|
{{{ end }}}
|
|
136
136
|
{{{ end }}}
|
|
137
137
|
</h5>
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
{{{ end }}}
|
|
35
35
|
<div class="stat">
|
|
36
36
|
<div class="align-items-center justify-content-center card card-header px-0 py-3 border-0 rounded-1 h-100">
|
|
37
|
-
<span class="stat-label text-xs fw-semibold">[[user:
|
|
37
|
+
<span class="stat-label text-xs fw-semibold">[[user:profile-views]]</span>
|
|
38
38
|
<span class="fs-2 ff-secondary" title="
|
|
39
39
|
{profileviews}">{humanReadableNumber(profileviews)}</span>
|
|
40
40
|
</div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
<div class="d-flex justify-content-between py-1 mb-3 align-items-center position-sticky top-0 bg-body">
|
|
4
4
|
<h3 class="fw-semibold fs-5 mb-0">{{{ if isSelf }}}[[pages:account/settings]]{{{ else }}}[[pages:account/settings-of, {username}]]{{{ end }}}</h3>
|
|
5
|
-
<button id="submitBtn" class="btn btn-sm btn-primary">[[global:
|
|
5
|
+
<button id="submitBtn" class="btn btn-sm btn-primary">[[global:save-changes]]</button>
|
|
6
6
|
</div>
|
|
7
7
|
<div class="row">
|
|
8
8
|
<div class="col-12 col-md-6">
|
|
@@ -28,12 +28,12 @@
|
|
|
28
28
|
<option value="{./route}" {{{ if ./selected }}}selected="1"{{{ end }}}>{./name}</option>
|
|
29
29
|
{{{ end }}}
|
|
30
30
|
</select>
|
|
31
|
-
<p class="form-text text-xs">[[user:
|
|
31
|
+
<p class="form-text text-xs">[[user:homepage-description]]</p>
|
|
32
32
|
</div>
|
|
33
33
|
<div id="homePageCustom" class="mb-2" style="display: none;">
|
|
34
|
-
<label class="form-label" for="homePageCustom">[[user:
|
|
34
|
+
<label class="form-label" for="homePageCustom">[[user:custom-route]]</label>
|
|
35
35
|
<input type="text" class="form-control form-control-sm" data-property="homePageCustom" id="homePageCustom" value="{settings.homePageRoute}"/>
|
|
36
|
-
<p class="form-text text-xs">[[user:
|
|
36
|
+
<p class="form-text text-xs">[[user:custom-route-help]]</p>
|
|
37
37
|
</div>
|
|
38
38
|
</div>
|
|
39
39
|
<hr/>
|
|
@@ -44,20 +44,20 @@
|
|
|
44
44
|
{{{ if !hideEmail }}}
|
|
45
45
|
<div class="form-check">
|
|
46
46
|
<input class="form-check-input" type="checkbox" data-property="showemail" {{{ if settings.showemail }}}checked {{{ end }}}/>
|
|
47
|
-
<label class="form-check-label text-sm">[[user:
|
|
47
|
+
<label class="form-check-label text-sm">[[user:show-email]]</label>
|
|
48
48
|
</div>
|
|
49
49
|
{{{ end }}}
|
|
50
50
|
|
|
51
51
|
{{{ if !hideFullname }}}
|
|
52
52
|
<div class="form-check">
|
|
53
53
|
<input class="form-check-input" type="checkbox" data-property="showfullname" {{{ if settings.showfullname }}}checked{{{ end }}}/>
|
|
54
|
-
<label class="form-check-label text-sm">[[user:
|
|
54
|
+
<label class="form-check-label text-sm">[[user:show-fullname]]</label>
|
|
55
55
|
</div>
|
|
56
56
|
{{{ end }}}
|
|
57
57
|
{{{ if !config.disableChat }}}
|
|
58
58
|
<div class="form-check">
|
|
59
59
|
<input class="form-check-input" type="checkbox" data-property="restrictChat" {{{ if settings.restrictChat }}}checked{{{ end }}}/>
|
|
60
|
-
<label class="form-check-label text-sm">[[user:
|
|
60
|
+
<label class="form-check-label text-sm">[[user:restrict-chats]]</label>
|
|
61
61
|
</div>
|
|
62
62
|
{{{ end }}}
|
|
63
63
|
</div>
|
|
@@ -67,23 +67,23 @@
|
|
|
67
67
|
<div class="">
|
|
68
68
|
<div class="form-check">
|
|
69
69
|
<input class="form-check-input" type="checkbox" data-property="openOutgoingLinksInNewTab" {{{ if settings.openOutgoingLinksInNewTab }}}checked{{{ end }}}/>
|
|
70
|
-
<label class="form-check-label">[[user:
|
|
70
|
+
<label class="form-check-label">[[user:open-links-in-new-tab]]</label>
|
|
71
71
|
</div>
|
|
72
72
|
{{{ if inTopicSearchAvailable }}}
|
|
73
73
|
<div class="form-check">
|
|
74
74
|
<input class="form-check-input" type="checkbox" data-property="topicSearchEnabled" {{{ if settings.topicSearchEnabled }}}checked{{{ end }}}/>
|
|
75
|
-
<label class="form-check-label">[[user:
|
|
75
|
+
<label class="form-check-label">[[user:enable-topic-searching]]</label>
|
|
76
76
|
</div>
|
|
77
|
-
<p class="form-text text-xs">[[user:
|
|
77
|
+
<p class="form-text text-xs">[[user:topic-search-help]]</p>
|
|
78
78
|
{{{ end }}}
|
|
79
79
|
|
|
80
80
|
<div class="form-check">
|
|
81
81
|
<input class="form-check-input" type="checkbox" data-property="updateUrlWithPostIndex" {{{ if settings.updateUrlWithPostIndex }}}checked{{{ end }}}/>
|
|
82
|
-
<label class="form-check-label">[[user:
|
|
82
|
+
<label class="form-check-label">[[user:update-url-with-post-index]]</label>
|
|
83
83
|
</div>
|
|
84
84
|
<div class="form-check">
|
|
85
85
|
<input class="form-check-input" type="checkbox" data-property="scrollToMyPost" {{{ if settings.scrollToMyPost }}}checked{{{ end }}}/>
|
|
86
|
-
<label class="form-check-label">[[user:
|
|
86
|
+
<label class="form-check-label">[[user:scroll-to-my-post]]</label>
|
|
87
87
|
</div>
|
|
88
88
|
</div>
|
|
89
89
|
<hr/>
|
|
@@ -92,14 +92,14 @@
|
|
|
92
92
|
<div class="">
|
|
93
93
|
<div class="mb-2 form-check">
|
|
94
94
|
<input type="checkbox" class="form-check-input" data-property="usePagination" {{{ if settings.usePagination }}}checked{{{ end }}}>
|
|
95
|
-
<label class="form-check-label">[[user:
|
|
95
|
+
<label class="form-check-label">[[user:paginate-description]]</label>
|
|
96
96
|
</div>
|
|
97
97
|
<div class="mb-2">
|
|
98
|
-
<label class="form-label">[[user:
|
|
98
|
+
<label class="form-label">[[user:topics-per-page]] ([[user:max-items-per-page, {maxTopicsPerPage}]])</label>
|
|
99
99
|
<input type="text" class="form-control form-control-sm" data-property="topicsPerPage" value="{settings.topicsPerPage}">
|
|
100
100
|
</div>
|
|
101
101
|
<div class="">
|
|
102
|
-
<label class="form-label">[[user:
|
|
102
|
+
<label class="form-label">[[user:posts-per-page]] ([[user:max-items-per-page, {maxPostsPerPage}]])</label>
|
|
103
103
|
<input type="text" class="form-control form-control-sm" data-property="postsPerPage" value="{settings.postsPerPage}">
|
|
104
104
|
</div>
|
|
105
105
|
</div>
|
|
@@ -111,19 +111,19 @@
|
|
|
111
111
|
<div class="mb-2">
|
|
112
112
|
<label class="form-label">[[user:category-topic-sort]]</label>
|
|
113
113
|
<select class="form-select form-select-sm" data-property="categoryTopicSort">
|
|
114
|
-
<option value="newest_to_oldest" {{{ if (settings.categoryTopicSort == "newest_to_oldest") }}}selected{{{ end }}}>[[topic:
|
|
115
|
-
<option value="oldest_to_newest" {{{ if (settings.categoryTopicSort == "oldest_to_newest") }}}selected{{{ end }}}>[[topic:
|
|
116
|
-
<option value="most_posts" {{{ if (settings.categoryTopicSort == "most_posts") }}}selected{{{ end }}}>[[topic:
|
|
117
|
-
<option value="most_votes" {{{ if (settings.categoryTopicSort == "most_votes") }}}selected{{{ end }}}>[[topic:
|
|
118
|
-
<option value="most_views" {{{ if (settings.categoryTopicSort == "most_views") }}}selected{{{ end }}}>[[topic:
|
|
114
|
+
<option value="newest_to_oldest" {{{ if (settings.categoryTopicSort == "newest_to_oldest") }}}selected{{{ end }}}>[[topic:newest-to-oldest]]</option>
|
|
115
|
+
<option value="oldest_to_newest" {{{ if (settings.categoryTopicSort == "oldest_to_newest") }}}selected{{{ end }}}>[[topic:oldest-to-newest]]</option>
|
|
116
|
+
<option value="most_posts" {{{ if (settings.categoryTopicSort == "most_posts") }}}selected{{{ end }}}>[[topic:most-posts]]</option>
|
|
117
|
+
<option value="most_votes" {{{ if (settings.categoryTopicSort == "most_votes") }}}selected{{{ end }}}>[[topic:most-votes]]</option>
|
|
118
|
+
<option value="most_views" {{{ if (settings.categoryTopicSort == "most_views") }}}selected{{{ end }}}>[[topic:most-views]]</option>
|
|
119
119
|
</select>
|
|
120
120
|
</div>
|
|
121
121
|
<div class="">
|
|
122
122
|
<label class="form-label">[[user:topic-post-sort]]</label>
|
|
123
123
|
<select class="form-select form-select-sm" data-property="topicPostSort">
|
|
124
|
-
<option value="oldest_to_newest" {{{ if (settings.topicPostSort == "oldest_to_newest") }}}selected{{{ end }}}>[[topic:
|
|
125
|
-
<option value="newest_to_oldest" {{{ if (settings.topicPostSort == "newest_to_oldest") }}}selected{{{ end }}}>[[topic:
|
|
126
|
-
<option value="most_votes" {{{ if (settings.topicPostSort == "most_votes") }}}selected{{{ end }}}>[[topic:
|
|
124
|
+
<option value="oldest_to_newest" {{{ if (settings.topicPostSort == "oldest_to_newest") }}}selected{{{ end }}}>[[topic:oldest-to-newest]]</option>
|
|
125
|
+
<option value="newest_to_oldest" {{{ if (settings.topicPostSort == "newest_to_oldest") }}}selected{{{ end }}}>[[topic:newest-to-oldest]]</option>
|
|
126
|
+
<option value="most_votes" {{{ if (settings.topicPostSort == "most_votes") }}}selected{{{ end }}}>[[topic:most-votes]]</option>
|
|
127
127
|
</select>
|
|
128
128
|
</div>
|
|
129
129
|
</div>
|
|
@@ -133,13 +133,13 @@
|
|
|
133
133
|
<h6 class="fw-bold">[[global:email]]</h6>
|
|
134
134
|
<div class="">
|
|
135
135
|
<div class="mb-2">
|
|
136
|
-
<label class="form-label" for="dailyDigestFreq">[[user:
|
|
136
|
+
<label class="form-label" for="dailyDigestFreq">[[user:digest-label]]</label>
|
|
137
137
|
<select class="form-select form-select-sm" id="dailyDigestFreq" data-property="dailyDigestFreq" autocomplete="off">
|
|
138
138
|
{{{each dailyDigestFreqOptions}}}
|
|
139
139
|
<option value="{./value}" {{{ if ./selected }}}selected="1"{{{ end }}}>{./name}</option>
|
|
140
140
|
{{{end}}}
|
|
141
141
|
</select>
|
|
142
|
-
<p class="form-text text-xs">[[user:
|
|
142
|
+
<p class="form-text text-xs">[[user:digest-description]]</p>
|
|
143
143
|
</div>
|
|
144
144
|
</div>
|
|
145
145
|
{{{ end }}}
|
|
@@ -166,7 +166,7 @@
|
|
|
166
166
|
</div>
|
|
167
167
|
<hr/>
|
|
168
168
|
{{{ if (isAdmin && isSelf) }}}
|
|
169
|
-
<h6 class="fw-bold">[[user:
|
|
169
|
+
<h6 class="fw-bold">[[user:acp-language]]</h6>
|
|
170
170
|
<div class="">
|
|
171
171
|
<select data-property="acpLang" class="form-select form-select-sm">
|
|
172
172
|
{{{each acpLanguages}}}
|
|
@@ -181,11 +181,11 @@
|
|
|
181
181
|
<div class="">
|
|
182
182
|
<div class="form-check">
|
|
183
183
|
<input class="form-check-input" type="checkbox" data-property="followTopicsOnCreate" {{{ if settings.followTopicsOnCreate }}}checked{{{ end }}}/>
|
|
184
|
-
<label class="form-check-label">[[user:
|
|
184
|
+
<label class="form-check-label">[[user:follow-topics-you-create]]</label>
|
|
185
185
|
</div>
|
|
186
186
|
<div class="form-check">
|
|
187
187
|
<input class="form-check-input" type="checkbox" data-property="followTopicsOnReply" {{{ if settings.followTopicsOnReply }}}checked{{{ end }}}/>
|
|
188
|
-
<label class="form-check-label">[[user:
|
|
188
|
+
<label class="form-check-label">[[user:follow-topics-you-reply-to]]</label>
|
|
189
189
|
</div>
|
|
190
190
|
<div class="mb-2">
|
|
191
191
|
<label class="form-label">[[user:default-category-watch-state]]</label>
|
|
@@ -208,9 +208,9 @@
|
|
|
208
208
|
<div class="mb-2 col-5">
|
|
209
209
|
<select class="form-select form-select-sm" data-property="{./name}">
|
|
210
210
|
<option value="none" {{{ if ./none }}}selected{{{ end }}}>[[notifications:none]]</option>
|
|
211
|
-
<option value="notification" {{{ if ./notification }}}selected{{{ end }}}>[[notifications:
|
|
212
|
-
<option value="email" {{{ if ./email }}}selected{{{ end }}}>[[notifications:
|
|
213
|
-
<option value="notificationemail" {{{ if ./notificationemail }}}selected{{{ end }}}>[[notifications:
|
|
211
|
+
<option value="notification" {{{ if ./notification }}}selected{{{ end }}}>[[notifications:notification-only]]</option>
|
|
212
|
+
<option value="email" {{{ if ./email }}}selected{{{ end }}}>[[notifications:email-only]]</option>
|
|
213
|
+
<option value="notificationemail" {{{ if ./notificationemail }}}selected{{{ end }}}>[[notifications:notification-and-email]]</option>
|
|
214
214
|
</select>
|
|
215
215
|
</div>
|
|
216
216
|
</div>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<div class="mb-3 d-flex justify-content-between">
|
|
4
4
|
<h3 class="fw-semibold fs-5">[[themes/harmony:settings.title]]</h3>
|
|
5
5
|
|
|
6
|
-
<button id="save" type="button" class="btn btn-primary">[[global:
|
|
6
|
+
<button id="save" type="button" class="btn btn-primary">[[global:save-changes]]</button>
|
|
7
7
|
</div>
|
|
8
8
|
|
|
9
9
|
<form id="theme-settings" role="form">
|
package/templates/category.tpl
CHANGED
package/templates/chat.tpl
CHANGED
package/templates/chats.tpl
CHANGED
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
<div component="chat/main-wrapper" class="flex-grow-1 ms-md-2 ps-md-2 border-1 border-start-md h-100" style="min-width: 0;" data-roomid="{roomId}">
|
|
51
51
|
<!-- IMPORT partials/chats/message-window.tpl -->
|
|
52
52
|
</div>
|
|
53
|
-
<div class="imagedrop"><div>[[topic:composer.
|
|
53
|
+
<div class="imagedrop"><div>[[topic:composer.drag-and-drop-images]]</div></div>
|
|
54
54
|
</div>
|
|
@@ -21,17 +21,17 @@
|
|
|
21
21
|
{{{ end }}}
|
|
22
22
|
<li class="dropdown-divider"></li>
|
|
23
23
|
{{{ if privileges.ban }}}
|
|
24
|
-
<li class="{{{ if target.user.banned }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="ban">[[user:
|
|
25
|
-
<li class="{{{ if !target.user.banned }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="unban">[[user:
|
|
24
|
+
<li class="{{{ if target.user.banned }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="ban">[[user:ban-account]]</a></li>
|
|
25
|
+
<li class="{{{ if !target.user.banned }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="unban">[[user:unban-account]]</a></li>
|
|
26
26
|
{{{ end }}}
|
|
27
27
|
{{{ if privileges.mute}}}
|
|
28
|
-
<li class="{{{ if target.user.muted }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="mute">[[user:
|
|
29
|
-
<li class="{{{ if !target.user.muted }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="unmute">[[user:
|
|
28
|
+
<li class="{{{ if target.user.muted }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="mute">[[user:mute-account]]</a></li>
|
|
29
|
+
<li class="{{{ if !target.user.muted }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="unmute">[[user:unmute-account]]</a></li>
|
|
30
30
|
{{{ end }}}
|
|
31
31
|
{{{ if privileges.admin:users }}}
|
|
32
|
-
<li><a class="dropdown-item rounded-1" href="#" data-action="delete-account">[[user:
|
|
33
|
-
<li><a class="dropdown-item rounded-1" href="#" data-action="delete-content">[[user:
|
|
34
|
-
<li><a class="dropdown-item rounded-1" href="#" data-action="delete-all">[[user:
|
|
32
|
+
<li><a class="dropdown-item rounded-1" href="#" data-action="delete-account">[[user:delete-account-as-admin]]</a></li>
|
|
33
|
+
<li><a class="dropdown-item rounded-1" href="#" data-action="delete-content">[[user:delete-content]]</a></li>
|
|
34
|
+
<li><a class="dropdown-item rounded-1" href="#" data-action="delete-all">[[user:delete-all]]</a></li>
|
|
35
35
|
{{{ end }}}
|
|
36
36
|
</ul>
|
|
37
37
|
</div>
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
<div class="tab-pane fade show active" id="groups-posts" role="tabpanel">
|
|
50
50
|
<h3 class="fw-semibold fs-5 mb-0">[[global:posts]]</h3>
|
|
51
51
|
{{{ if !posts.length }}}
|
|
52
|
-
<div class="alert alert-info">[[groups:details.
|
|
52
|
+
<div class="alert alert-info">[[groups:details.has-no-posts]]</div>
|
|
53
53
|
{{{ end }}}
|
|
54
54
|
<!-- IMPORT partials/posts_list.tpl -->
|
|
55
55
|
</div>
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
</div>
|
|
71
71
|
|
|
72
72
|
<div class="tab-pane fade" id="groups-admin" role="tabpanel">
|
|
73
|
-
<h3 class="fw-semibold fs-5 mb-3">[[groups:details.
|
|
73
|
+
<h3 class="fw-semibold fs-5 mb-3">[[groups:details.owner-options]]</h3>
|
|
74
74
|
<!-- IMPORT partials/groups/admin.tpl -->
|
|
75
75
|
</div>
|
|
76
76
|
{{{ end }}}
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
<div class="d-flex flex-wrap justify-content-between">
|
|
9
9
|
<div class="mb-2 mb-md-0">
|
|
10
10
|
<div class="text-sm d-flex flex-wrap align-items-center gap-2">
|
|
11
|
-
[[topic:
|
|
11
|
+
[[topic:sort-by]]
|
|
12
12
|
<div class="d-flex gap-2">
|
|
13
|
-
<a href="?sort=alpha" class="btn-ghost fw-semibold {{{ if (sort == "alpha") }}}active{{{ end }}}">[[groups:details.
|
|
14
|
-
<a href="?sort=count" class="btn-ghost fw-semibold {{{ if (sort == "count") }}}active{{{ end }}}">[[groups:details.
|
|
15
|
-
<a href="?sort=date" class="btn-ghost fw-semibold {{{ if (sort == "date") }}}active{{{ end }}}">[[groups:details.
|
|
13
|
+
<a href="?sort=alpha" class="btn-ghost fw-semibold {{{ if (sort == "alpha") }}}active{{{ end }}}">[[groups:details.group-name]]</a>
|
|
14
|
+
<a href="?sort=count" class="btn-ghost fw-semibold {{{ if (sort == "count") }}}active{{{ end }}}">[[groups:details.member-count]]</a>
|
|
15
|
+
<a href="?sort=date" class="btn-ghost fw-semibold {{{ if (sort == "date") }}}active{{{ end }}}">[[groups:details.creation-date]]</a>
|
|
16
16
|
</div>
|
|
17
17
|
</div>
|
|
18
18
|
</div>
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
<div class="d-flex justify-content-end gap-2">
|
|
21
21
|
<div class="">
|
|
22
22
|
{{{ if allowGroupCreation }}}
|
|
23
|
-
<button class="btn btn-primary btn-sm text-nowrap" data-action="new"><i class="fa fa-users"></i> [[groups:
|
|
23
|
+
<button class="btn btn-primary btn-sm text-nowrap" data-action="new"><i class="fa fa-users"></i> [[groups:new-group]]</button>
|
|
24
24
|
{{{ end }}}
|
|
25
25
|
<select class="form-select hidden" id="search-sort">
|
|
26
|
-
<option value="alpha">[[groups:details.
|
|
27
|
-
<option value="count">[[groups:details.
|
|
28
|
-
<option value="date">[[groups:details.
|
|
26
|
+
<option value="alpha">[[groups:details.group-name]]</option>
|
|
27
|
+
<option value="count">[[groups:details.member-count]]</option>
|
|
28
|
+
<option value="date">[[groups:details.creation-date]]</option>
|
|
29
29
|
</select>
|
|
30
30
|
</div>
|
|
31
31
|
<div class="">
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
{{{ else }}}
|
|
49
49
|
<div class="col-12">
|
|
50
50
|
<div class="alert alert-warning">
|
|
51
|
-
[[groups:
|
|
51
|
+
[[groups:no-groups-found]]
|
|
52
52
|
</div>
|
|
53
53
|
</div>
|
|
54
54
|
{{{ end }}}
|