nodebb-theme-harmony 1.2.28 → 1.2.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodebb-theme-harmony",
3
- "version": "1.2.28",
3
+ "version": "1.2.29",
4
4
  "nbbpm": {
5
5
  "compatibility": "^3.5.0"
6
6
  },
@@ -7,28 +7,29 @@
7
7
  <div class="row">
8
8
  <div class="col-xl-6 col-12">
9
9
  <form role="form" component="profile/edit/form">
10
- <div class="mb-2">
10
+ <div class="mb-3">
11
11
  <label class="form-label fw-bold" for="fullname">[[user:fullname]]</label>
12
12
  <input class="form-control" type="text" id="fullname" name="fullname" placeholder="[[user:fullname]]" value="{fullname}">
13
13
  </div>
14
+
14
15
  {{{ if allowWebsite }}}
15
- <div class="mb-2">
16
+ <div class="mb-3">
16
17
  <label class="form-label fw-bold" for="website">[[user:website]]</label>
17
18
  <input class="form-control" type="text" id="website" name="website" placeholder="http://..." value="{website}">
18
19
  </div>
19
20
  {{{ end }}}
20
21
 
21
- <div class="mb-2">
22
+ <div class="mb-3">
22
23
  <label class="form-label fw-bold" for="location">[[user:location]]</label>
23
24
  <input class="form-control" type="text" id="location" name="location" placeholder="[[user:location]]" value="{location}">
24
25
  </div>
25
26
 
26
- <div class="mb-2">
27
+ <div class="mb-3">
27
28
  <label class="form-label fw-bold" for="birthday">[[user:birthday]]</label>
28
29
  <input class="form-control" type="date" id="birthday" name="birthday" value="{birthday}" placeholder="mm/dd/yyyy">
29
30
  </div>
30
31
 
31
- <div class="mb-2">
32
+ <div class="mb-3">
32
33
  <label class="form-label fw-bold" for="groupTitle">[[user:grouptitle]]</label>
33
34
 
34
35
  <div class="d-flex flex-column gap-2" component="group/badge/list">
@@ -49,14 +50,14 @@
49
50
  </div>
50
51
 
51
52
  {{{ if allowAboutMe }}}
52
- <div class="mb-2">
53
+ <div class="mb-3">
53
54
  <label class="form-label fw-bold" for="aboutme">[[user:aboutme]]</label> <small><label id="aboutMeCharCountLeft"></label></small>
54
55
  <textarea class="form-control" id="aboutme" name="aboutme" rows="5">{aboutme}</textarea>
55
56
  </div>
56
57
  {{{ end }}}
57
58
 
58
59
  {{{ if (allowSignature && !disableSignatures) }}}
59
- <div class="mb-2">
60
+ <div class="mb-3">
60
61
  <label class="form-label fw-bold" for="signature">[[user:signature]]</label> <small><label id="signatureCharCountLeft"></label></small>
61
62
  <textarea class="form-control" id="signature" name="signature" rows="5">{signature}</textarea>
62
63
  </div>
@@ -7,133 +7,134 @@
7
7
  <div class="row">
8
8
  <div class="col-12 col-md-6">
9
9
  {{{ if !disableCustomUserSkins }}}
10
- <h6 class="fw-bold">[[user:select-skin]]</h6>
11
- <div class="">
12
- <select class="form-select form-select-sm" id="bootswatchSkin" data-property="bootswatchSkin">
13
- {{{each bootswatchSkinOptions}}}
14
- <option value="{bootswatchSkinOptions.value}" {{{ if bootswatchSkinOptions.selected }}}selected{{{ end }}}>{bootswatchSkinOptions.name}</option>
15
- {{{end}}}
16
- </select>
17
- </div>
10
+ <label for="bootswatchSkin" class="form-label fw-bold">[[user:select-skin]]</label>
11
+ <select class="form-select form-select-sm" id="bootswatchSkin" data-property="bootswatchSkin">
12
+ {{{each bootswatchSkinOptions}}}
13
+ <option value="{bootswatchSkinOptions.value}" {{{ if bootswatchSkinOptions.selected }}}selected{{{ end }}}>{bootswatchSkinOptions.name}</option>
14
+ {{{end}}}
15
+ </select>
16
+
18
17
  <hr/>
19
18
  {{{ end }}}
20
19
 
21
20
  {{{ if allowUserHomePage }}}
22
- <h6 class="fw-bold">[[user:select-homepage]]</h6>
23
- <div class="">
24
- <div class="mb-2">
25
- <select class="form-select form-select-sm" id="homePageRoute" data-property="homePageRoute">
26
- <option value="none">None</option>
27
- {{{ each homePageRoutes }}}
28
- <option value="{./route}" {{{ if ./selected }}}selected="1"{{{ end }}}>{./name}</option>
29
- {{{ end }}}
30
- </select>
31
- <p class="form-text text-xs">[[user:homepage-description]]</p>
32
- </div>
33
- <div id="homePageCustom" class="mb-2" style="display: none;">
34
- <label class="form-label" for="homePageCustom">[[user:custom-route]]</label>
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:custom-route-help]]</p>
37
- </div>
21
+ <label for="homePageRoute" class="form-label fw-bold">[[user:select-homepage]]</label>
22
+
23
+ <div class="mb-2">
24
+ <select class="form-select form-select-sm" id="homePageRoute" data-property="homePageRoute">
25
+ <option value="none">None</option>
26
+ {{{ each homePageRoutes }}}
27
+ <option value="{./route}" {{{ if ./selected }}}selected="1"{{{ end }}}>{./name}</option>
28
+ {{{ end }}}
29
+ </select>
30
+ <p class="form-text text-xs">[[user:homepage-description]]</p>
38
31
  </div>
32
+ <div id="homePageCustomContainer" class="mb-2" style="display: none;">
33
+ <label class="form-label fw-bold" for="homePageCustom">[[user:custom-route]]</label>
34
+ <input type="text" class="form-control form-control-sm" data-property="homePageCustom" id="homePageCustom" value="{settings.homePageRoute}"/>
35
+ <p class="form-text text-xs">[[user:custom-route-help]]</p>
36
+ </div>
37
+
39
38
  <hr/>
40
39
  {{{ end }}}
41
40
 
42
41
  <h6 class="fw-bold">[[global:privacy]]</h6>
43
- <div class="">
44
- {{{ if !hideEmail }}}
45
- <div class="form-check">
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:show-email]]</label>
48
- </div>
49
- {{{ end }}}
50
42
 
51
- {{{ if !hideFullname }}}
52
- <div class="form-check">
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:show-fullname]]</label>
55
- </div>
56
- {{{ end }}}
57
- {{{ if !config.disableChat }}}
58
- <div class="form-check">
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:restrict-chats]]</label>
61
- </div>
62
- {{{ end }}}
43
+ {{{ if !hideEmail }}}
44
+ <div class="form-check form-switch">
45
+ <input class="form-check-input" type="checkbox" role="switch" id="showemail" data-property="showemail" {{{ if settings.showemail }}}checked {{{ end }}}/>
46
+ <label class="form-check-label text-sm" for="showemail">[[user:show-email]]</label>
63
47
  </div>
48
+ {{{ end }}}
49
+
50
+ {{{ if !hideFullname }}}
51
+ <div class="form-check form-switch">
52
+ <input class="form-check-input" type="checkbox" role="switch" id="showfullname" data-property="showfullname" {{{ if settings.showfullname }}}checked{{{ end }}}/>
53
+ <label class="form-check-label text-sm" for="showfullname">[[user:show-fullname]]</label>
54
+ </div>
55
+ {{{ end }}}
56
+
57
+ {{{ if !config.disableChat }}}
58
+ <div class="form-check form-switch">
59
+ <input class="form-check-input" type="checkbox" role="switch" id="restrictChat" data-property="restrictChat" {{{ if settings.restrictChat }}}checked{{{ end }}}/>
60
+ <label class="form-check-label text-sm" for="restrictChat">[[user:restrict-chats]]</label>
61
+ </div>
62
+ {{{ end }}}
63
+
64
64
  <hr/>
65
65
 
66
66
  <h6 class="fw-bold">[[user:browsing]]</h6>
67
- <div class="">
68
- <div class="form-check">
69
- <input class="form-check-input" type="checkbox" data-property="openOutgoingLinksInNewTab" {{{ if settings.openOutgoingLinksInNewTab }}}checked{{{ end }}}/>
70
- <label class="form-check-label">[[user:open-links-in-new-tab]]</label>
71
- </div>
72
- {{{ if inTopicSearchAvailable }}}
73
- <div class="form-check">
74
- <input class="form-check-input" type="checkbox" data-property="topicSearchEnabled" {{{ if settings.topicSearchEnabled }}}checked{{{ end }}}/>
75
- <label class="form-check-label">[[user:enable-topic-searching]]</label>
76
- </div>
77
- <p class="form-text text-xs">[[user:topic-search-help]]</p>
78
- {{{ end }}}
79
67
 
80
- <div class="form-check">
81
- <input class="form-check-input" type="checkbox" data-property="updateUrlWithPostIndex" {{{ if settings.updateUrlWithPostIndex }}}checked{{{ end }}}/>
82
- <label class="form-check-label">[[user:update-url-with-post-index]]</label>
83
- </div>
84
- <div class="form-check">
85
- <input class="form-check-input" type="checkbox" data-property="scrollToMyPost" {{{ if settings.scrollToMyPost }}}checked{{{ end }}}/>
86
- <label class="form-check-label">[[user:scroll-to-my-post]]</label>
87
- </div>
68
+ <div class="form-check form-switch">
69
+ <input class="form-check-input" type="checkbox" role="switch" id="openOutgoingLinksInNewTab" data-property="openOutgoingLinksInNewTab" {{{ if settings.openOutgoingLinksInNewTab }}}checked{{{ end }}}/>
70
+ <label class="form-check-label text-sm" for="openOutgoingLinksInNewTab">[[user:open-links-in-new-tab]]</label>
71
+ </div>
72
+
73
+ {{{ if inTopicSearchAvailable }}}
74
+ <div class="form-check form-switch">
75
+ <input class="form-check-input" type="checkbox" role="switch" id="topicSearchEnabled" data-property="topicSearchEnabled" {{{ if settings.topicSearchEnabled }}}checked{{{ end }}}/>
76
+ <label class="form-check-label text-sm" for="topicSearchEnabled">[[user:enable-topic-searching]]</label>
77
+ </div>
78
+ <p class="form-text text-xs">[[user:topic-search-help]]</p>
79
+ {{{ end }}}
80
+
81
+ <div class="form-check form-switch">
82
+ <input class="form-check-input" type="checkbox" role="switch" id="updateUrlWithPostIndex" data-property="updateUrlWithPostIndex" {{{ if settings.updateUrlWithPostIndex }}}checked{{{ end }}}/>
83
+ <label class="form-check-label text-sm" for="updateUrlWithPostIndex">[[user:update-url-with-post-index]]</label>
84
+ </div>
85
+
86
+ <div class="form-check form-switch">
87
+ <input class="form-check-input" type="checkbox" role="switch" id="scrollToMyPost" data-property="scrollToMyPost" {{{ if settings.scrollToMyPost }}}checked{{{ end }}}/>
88
+ <label class="form-check-label text-sm" for="scrollToMyPost">[[user:scroll-to-my-post]]</label>
88
89
  </div>
90
+
89
91
  <hr/>
90
92
 
91
93
  <h6 class="fw-bold">[[global:pagination]]</h6>
94
+
95
+ <div class="mb-2 form-check form-switch">
96
+ <input type="checkbox" role="switch" id="usePagination" class="form-check-input" data-property="usePagination" {{{ if settings.usePagination }}}checked{{{ end }}}>
97
+ <label class="form-check-label text-sm" for="usePagination">[[user:paginate-description]]</label>
98
+ </div>
99
+ <div class="mb-2">
100
+ <label class="form-label text-sm" for="topicsPerPage">[[user:topics-per-page]] ([[user:max-items-per-page, {maxTopicsPerPage}]])</label>
101
+ <input type="text" class="form-control form-control-sm" id="topicsPerPage" data-property="topicsPerPage" value="{settings.topicsPerPage}">
102
+ </div>
92
103
  <div class="">
93
- <div class="mb-2 form-check">
94
- <input type="checkbox" class="form-check-input" data-property="usePagination" {{{ if settings.usePagination }}}checked{{{ end }}}>
95
- <label class="form-check-label">[[user:paginate-description]]</label>
96
- </div>
97
- <div class="mb-2">
98
- <label class="form-label">[[user:topics-per-page]] ([[user:max-items-per-page, {maxTopicsPerPage}]])</label>
99
- <input type="text" class="form-control form-control-sm" data-property="topicsPerPage" value="{settings.topicsPerPage}">
100
- </div>
101
- <div class="">
102
- <label class="form-label">[[user:posts-per-page]] ([[user:max-items-per-page, {maxPostsPerPage}]])</label>
103
- <input type="text" class="form-control form-control-sm" data-property="postsPerPage" value="{settings.postsPerPage}">
104
- </div>
104
+ <label class="form-label text-sm" for="postsPerPage">[[user:posts-per-page]] ([[user:max-items-per-page, {maxPostsPerPage}]])</label>
105
+ <input type="text" class="form-control form-control-sm" id="postsPerPage" data-property="postsPerPage" value="{settings.postsPerPage}">
105
106
  </div>
106
107
 
107
108
  <hr/>
108
109
 
109
110
  <h6 class="fw-bold">[[global:sort]]</h6>
111
+
112
+ <div class="mb-2">
113
+ <label class="form-label text-sm" for="categoryTopicSort">[[user:category-topic-sort]]</label>
114
+ <select class="form-select form-select-sm" id="categoryTopicSort" data-property="categoryTopicSort">
115
+ <option value="newest_to_oldest" {{{ if (settings.categoryTopicSort == "newest_to_oldest") }}}selected{{{ end }}}>[[topic:newest-to-oldest]]</option>
116
+ <option value="oldest_to_newest" {{{ if (settings.categoryTopicSort == "oldest_to_newest") }}}selected{{{ end }}}>[[topic:oldest-to-newest]]</option>
117
+ <option value="most_posts" {{{ if (settings.categoryTopicSort == "most_posts") }}}selected{{{ end }}}>[[topic:most-posts]]</option>
118
+ <option value="most_votes" {{{ if (settings.categoryTopicSort == "most_votes") }}}selected{{{ end }}}>[[topic:most-votes]]</option>
119
+ <option value="most_views" {{{ if (settings.categoryTopicSort == "most_views") }}}selected{{{ end }}}>[[topic:most-views]]</option>
120
+ </select>
121
+ </div>
110
122
  <div class="">
111
- <div class="mb-2">
112
- <label class="form-label">[[user:category-topic-sort]]</label>
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: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
- </select>
120
- </div>
121
- <div class="">
122
- <label class="form-label">[[user:topic-post-sort]]</label>
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: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
- </select>
128
- </div>
123
+ <label class="form-label text-sm" for="topicPostSort">[[user:topic-post-sort]]</label>
124
+ <select class="form-select form-select-sm" id="topicPostSort" data-property="topicPostSort">
125
+ <option value="oldest_to_newest" {{{ if (settings.topicPostSort == "oldest_to_newest") }}}selected{{{ end }}}>[[topic:oldest-to-newest]]</option>
126
+ <option value="newest_to_oldest" {{{ if (settings.topicPostSort == "newest_to_oldest") }}}selected{{{ end }}}>[[topic:newest-to-oldest]]</option>
127
+ <option value="most_votes" {{{ if (settings.topicPostSort == "most_votes") }}}selected{{{ end }}}>[[topic:most-votes]]</option>
128
+ </select>
129
129
  </div>
130
130
 
131
+
131
132
  {{{ if !disableEmailSubscriptions }}}
132
133
  <hr/>
133
134
  <h6 class="fw-bold">[[global:email]]</h6>
134
135
  <div class="">
135
136
  <div class="mb-2">
136
- <label class="form-label" for="dailyDigestFreq">[[user:digest-label]]</label>
137
+ <label class="form-label text-sm" for="dailyDigestFreq">[[user:digest-label]]</label>
137
138
  <select class="form-select form-select-sm" id="dailyDigestFreq" data-property="dailyDigestFreq" autocomplete="off">
138
139
  {{{each dailyDigestFreqOptions}}}
139
140
  <option value="{./value}" {{{ if ./selected }}}selected="1"{{{ end }}}>{./name}</option>
@@ -150,46 +151,44 @@
150
151
  <div class="">
151
152
  {./content}
152
153
  </div>
153
-
154
154
  {{{end}}}
155
155
  <hr class="d-block d-md-none"/>
156
156
  </div>
157
157
 
158
158
  <div class="col-12 col-md-6">
159
- <h6 class="fw-bold">[[global:language]]</h6>
160
- <div class="">
161
- <select data-property="userLang" class="form-select form-select-sm mb-2">
162
- {{{each languages}}}
163
- <option value="{./code}" {{{ if ./selected }}}selected{{{ end }}}>{./name} ({./code})</option>
164
- {{{end}}}
165
- </select>
166
- </div>
159
+ <label class="form-label fw-bold" for="userLang">[[global:language]]</label>
160
+ <select id="userLang" data-property="userLang" class="form-select form-select-sm mb-2">
161
+ {{{each languages}}}
162
+ <option value="{./code}" {{{ if ./selected }}}selected{{{ end }}}>{./name} ({./code})</option>
163
+ {{{end}}}
164
+ </select>
165
+
167
166
  <hr/>
167
+
168
168
  {{{ if (isAdmin && isSelf) }}}
169
- <h6 class="fw-bold">[[user:acp-language]]</h6>
170
- <div class="">
171
- <select data-property="acpLang" class="form-select form-select-sm">
172
- {{{each acpLanguages}}}
173
- <option value="{./code}" {{{ if ./selected }}}selected{{{ end }}}>{./name} ({./code})</option>
174
- {{{end}}}
175
- </select>
176
- </div>
169
+ <label class="form-label fw-bold" for="acpLang">[[user:acp-language]]</label>
170
+ <select id="acpLang" data-property="acpLang" class="form-select form-select-sm">
171
+ {{{each acpLanguages}}}
172
+ <option value="{./code}" {{{ if ./selected }}}selected{{{ end }}}>{./name} ({./code})</option>
173
+ {{{end}}}
174
+ </select>
175
+
177
176
  <hr/>
178
177
  {{{ end }}}
179
178
 
180
179
  <h6 class="fw-bold">[[topic:watch]]</h6>
181
180
  <div class="">
182
- <div class="form-check">
183
- <input class="form-check-input" type="checkbox" data-property="followTopicsOnCreate" {{{ if settings.followTopicsOnCreate }}}checked{{{ end }}}/>
184
- <label class="form-check-label">[[user:follow-topics-you-create]]</label>
181
+ <div class="form-check form-switch">
182
+ <input class="form-check-input" type="checkbox" role="switch" id="followTopicsOnCreate" data-property="followTopicsOnCreate" {{{ if settings.followTopicsOnCreate }}}checked{{{ end }}}/>
183
+ <label class="form-check-label text-sm" for="followTopicsOnCreate">[[user:follow-topics-you-create]]</label>
185
184
  </div>
186
- <div class="form-check">
187
- <input class="form-check-input" type="checkbox" data-property="followTopicsOnReply" {{{ if settings.followTopicsOnReply }}}checked{{{ end }}}/>
188
- <label class="form-check-label">[[user:follow-topics-you-reply-to]]</label>
185
+ <div class="form-check form-switch">
186
+ <input class="form-check-input" type="checkbox" role="switch" id="followTopicsOnReply" data-property="followTopicsOnReply" {{{ if settings.followTopicsOnReply }}}checked{{{ end }}}/>
187
+ <label class="form-check-label text-sm" for="followTopicsOnReply">[[user:follow-topics-you-reply-to]]</label>
189
188
  </div>
190
189
  <div class="mb-2">
191
- <label class="form-label">[[user:default-category-watch-state]]</label>
192
- <select class="form-select form-select-sm" data-property="categoryWatchState">
190
+ <label class="form-label text-sm" for="categoryWatchState">[[user:default-category-watch-state]]</label>
191
+ <select class="form-select form-select-sm" id="categoryWatchState" data-property="categoryWatchState">
193
192
  <option value="tracking" {{{ if categoryWatchState.tracking }}}selected{{{ end }}}>[[category:tracking]]</option>
194
193
  <option value="notwatching" {{{ if categoryWatchState.notwatching }}}selected{{{ end }}}>[[category:not-watching]]</option>
195
194
  <option value="ignoring" {{{ if categoryWatchState.ignoring }}}selected{{{ end }}}>[[category:ignoring]]</option>
@@ -199,14 +198,14 @@
199
198
  <hr/>
200
199
 
201
200
  <h6 class="fw-bold">[[user:notifications]]</h6>
202
- <div class="">
203
- {{{each notificationSettings}}}
204
- <div class="row mb-3">
201
+ <div>
202
+ {{{ each notificationSettings }}}
203
+ <div class="row mb-3 align-items-center">
205
204
  <div class="col-7">
206
- <label class="text-sm">{./label}</label>
205
+ <label class="text-sm" for="{./name}">{./label}</label>
207
206
  </div>
208
- <div class="mb-2 col-5">
209
- <select class="form-select form-select-sm" data-property="{./name}">
207
+ <div class="col-5">
208
+ <select class="form-select form-select-sm" id="{./name}" data-property="{./name}">
210
209
  <option value="none" {{{ if ./none }}}selected{{{ end }}}>[[notifications:none]]</option>
211
210
  <option value="notification" {{{ if ./notification }}}selected{{{ end }}}>[[notifications:notification-only]]</option>
212
211
  <option value="email" {{{ if ./email }}}selected{{{ end }}}>[[notifications:email-only]]</option>
@@ -216,11 +215,11 @@
216
215
  </div>
217
216
  {{{end}}}
218
217
 
219
- <div class="row">
218
+ <div class="row align-items-center">
220
219
  <div class="col-7">
221
220
  <label class="text-sm" for="upvote-notif-freq">[[user:upvote-notif-freq]]</label>
222
221
  </div>
223
- <div class="mb-2 col-5">
222
+ <div class="col-5">
224
223
  <select class="form-select form-select-sm" id="upvote-notif-freq" name="upvote-notif-freq" data-property="upvoteNotifFreq">
225
224
  {{{ each upvoteNotifFreq }}}
226
225
  <option value="{./name}" {{{ if ./selected }}}selected{{{ end }}}>