nodebb-theme-harmony 0.0.9 → 0.0.10

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.
@@ -1,231 +1,235 @@
1
- <!-- THIS FILE IS STILL PERSONA -->
2
-
3
1
  <div class="account">
4
2
  <!-- IMPORT partials/account/header.tpl -->
5
3
 
6
- <div class="row">
7
- <div class="col-12 col-md-6">
8
- <!-- IF !disableCustomUserSkins -->
9
- <h4>[[user:select-skin]]</h4>
10
- <div class="card card-body mb-3">
11
- <select class="form-select" id="bootswatchSkin" data-property="bootswatchSkin">
12
- {{{each bootswatchSkinOptions}}}
13
- <option value="{bootswatchSkinOptions.value}" <!-- IF bootswatchSkinOptions.selected -->selected<!-- ENDIF bootswatchSkinOptions.selected -->>{bootswatchSkinOptions.name}</option>
14
- {{{end}}}
15
- </select>
16
- </div>
17
- <!-- ENDIF !disableCustomUserSkins -->
18
-
19
- <!-- IF allowUserHomePage -->
20
- <h4>[[user:select-homepage]]</h4>
21
- <div class="card card-body mb-3">
22
- <div class="mb-2">
23
- <label for="homePageRoute">[[user:homepage]]</label>
24
- <select class="form-select" id="homePageRoute" data-property="homePageRoute">
25
- <option value="none">None</option>
26
- {{{each homePageRoutes}}}
27
- <option value="{homePageRoutes.route}" <!-- IF homePageRoutes.selected -->selected="1"<!-- ENDIF homePageRoutes.selected -->>{homePageRoutes.name}</option>
28
- {{{end}}}
29
- </select>
30
- <p class="form-text">[[user:homepage_description]]</p>
31
- </div>
32
- <div id="homePageCustom" class="mb-2" style="display: none;">
33
- <label for="homePageCustom">[[user:custom_route]]</label>
34
- <input type="text" class="form-control" data-property="homePageCustom" id="homePageCustom" value="{settings.homePageRoute}"/>
35
- <p class="form-text">[[user:custom_route_help]]</p>
36
- </div>
37
- </div>
38
- <!-- ENDIF allowUserHomePage -->
39
-
40
- <h4>[[global:privacy]]</h4>
41
- <div class="card card-body mb-3">
42
- <!-- IF !hideEmail -->
43
- <div class="form-check">
44
- <input class="form-check-input" type="checkbox" data-property="showemail" <!-- IF settings.showemail -->checked <!-- ENDIF settings.showemail -->/>
45
- <strong>
46
- <label class="form-check-label">[[user:show_email]]</label>
47
- </strong>
48
- </div>
49
- <!-- ENDIF !hideEmail -->
50
-
51
- <!-- IF !hideFullname -->
52
- <div class="form-check">
53
- <input class="form-check-input" type="checkbox" data-property="showfullname" <!-- IF settings.showfullname -->checked<!-- ENDIF settings.showfullname -->/>
54
- <strong>
55
- <label class="form-check-label">[[user:show_fullname]]</label>
56
- </strong>
57
- </div>
58
- <!-- ENDIF !hideFullname -->
59
- <!-- IF !config.disableChat -->
60
- <div class="form-check">
61
- <input class="form-check-input" type="checkbox" data-property="restrictChat" <!-- IF settings.restrictChat -->checked<!-- ENDIF settings.restrictChat -->/>
62
- <strong>
63
- <label class="form-check-label">[[user:restrict_chats]]</label>
64
- </strong>
65
- </div>
66
- <!-- ENDIF !config.disableChat -->
67
- </div>
68
-
69
- <h4>[[user:browsing]]</h4>
70
- <div class="card card-body mb-3">
71
- <div class="form-check">
72
- <input class="form-check-input" type="checkbox" data-property="openOutgoingLinksInNewTab" <!-- IF settings.openOutgoingLinksInNewTab -->checked<!-- ENDIF settings.openOutgoingLinksInNewTab -->/>
73
- <strong>
74
- <label class="form-check-label">[[user:open_links_in_new_tab]]</label>
75
- </strong>
76
- </div>
77
- <!-- IF inTopicSearchAvailable -->
78
- <div class="form-check">
79
- <input class="form-check-input" type="checkbox" data-property="topicSearchEnabled" <!-- IF settings.topicSearchEnabled -->checked<!-- ENDIF settings.topicSearchEnabled -->/>
80
- <strong>
81
- <label class="form-check-label">[[user:enable_topic_searching]]</label>
82
- </strong>
83
- </div>
84
- <p class="form-text">[[user:topic_search_help]]</p>
85
- <!-- ENDIF inTopicSearchAvailable -->
86
- <div class="form-check">
87
- <input class="form-check-input" type="checkbox" data-property="updateUrlWithPostIndex" {{{ if settings.updateUrlWithPostIndex }}}checked{{{ end }}}/>
88
- <strong>
89
- <label class="form-check-label">[[user:update_url_with_post_index]]</label>
90
- </strong>
91
- </div>
92
- <div class="form-check">
93
- <input class="form-check-input" type="checkbox" data-property="scrollToMyPost" <!-- IF settings.scrollToMyPost -->checked<!-- ENDIF settings.scrollToMyPost -->/>
94
- <strong>
95
- <label class="form-check-label">[[user:scroll_to_my_post]]</label>
96
- </strong>
97
- </div>
98
- </div>
99
-
100
- <h4>[[global:pagination]]</h4>
101
- <div class="card card-body mb-3">
102
- <div class="mb-2 form-check">
103
- <input type="checkbox" class="form-check-input" data-property="usePagination" <!-- IF settings.usePagination -->checked<!-- ENDIF settings.usePagination -->> <strong><label class="form-check-label">[[user:paginate_description]]</label></strong>
104
- </div>
105
- <div class="mb-3">
106
- <strong><label class="form-label">[[user:topics_per_page]] ([[user:max_items_per_page, {maxTopicsPerPage}]])</label></strong>
107
- <input type="text" class="form-control" data-property="topicsPerPage" value="{settings.topicsPerPage}">
108
- </div>
109
- <div class="">
110
- <strong><label class="form-label">[[user:posts_per_page]] ([[user:max_items_per_page, {maxPostsPerPage}]])</label></strong>
111
- <input type="text" class="form-control" data-property="postsPerPage" value="{settings.postsPerPage}">
112
- </div>
113
- </div>
114
-
115
- <!-- IF !disableEmailSubscriptions -->
116
- <h4>[[global:email]]</h4>
117
- <div class="card card-body mb-3">
118
- <div class="mb-2">
119
- <label for="dailyDigestFreq">[[user:digest_label]]</label>
120
- <select class="form-select" id="dailyDigestFreq" data-property="dailyDigestFreq" autocomplete="off">
121
- {{{each dailyDigestFreqOptions}}}
122
- <option value="{dailyDigestFreqOptions.value}" <!-- IF dailyDigestFreqOptions.selected -->selected="1"<!-- ENDIF dailyDigestFreqOptions.selected -->>{dailyDigestFreqOptions.name}</option>
123
- {{{end}}}
124
- </select>
125
- <p class="form-text">[[user:digest_description]]</p>
126
- </div>
127
- </div>
128
- <!-- ENDIF !disableEmailSubscriptions -->
4
+ <div class="row gx-5">
5
+ <!-- IMPORT partials/account/sidebar-left.tpl -->
129
6
 
130
- {{{each customSettings}}}
131
- <h4>{customSettings.title}</h4>
132
- <div class="card card-body mb-3">
133
- {customSettings.content}
7
+ <div class="col-12 col-md-9 col-lg-10 ps-md-5">
8
+ <div class="form-actions mb-3 d-flex justify-content-end sticky-lg-top" style="top: 1rem;">
9
+ <button id="submitBtn" class="btn btn-primary">[[global:save_changes]]</button>
134
10
  </div>
135
- {{{end}}}
136
-
137
- </div>
138
-
139
- <div class="col-12 col-md-6">
140
- <h4>[[global:language]]</h4>
141
- <div class="card card-body mb-3">
142
- <div class="row">
143
- <div class="mb-2 col-lg-12">
144
- <select data-property="userLang" class="form-select">
145
- {{{each languages}}}
146
- <option value="{languages.code}" <!-- IF languages.selected -->selected<!-- ENDIF languages.selected -->>{languages.name} ({languages.code})</option>
11
+ <div class="row">
12
+ <div class="col-12 col-md-6">
13
+ <!-- IF !disableCustomUserSkins -->
14
+ <h4>[[user:select-skin]]</h4>
15
+ <div class="card card-body mb-3">
16
+ <select class="form-select" id="bootswatchSkin" data-property="bootswatchSkin">
17
+ {{{each bootswatchSkinOptions}}}
18
+ <option value="{bootswatchSkinOptions.value}" <!-- IF bootswatchSkinOptions.selected -->selected<!-- ENDIF bootswatchSkinOptions.selected -->>{bootswatchSkinOptions.name}</option>
147
19
  {{{end}}}
148
20
  </select>
149
21
  </div>
150
- </div>
151
- <!-- IF isAdmin -->
152
- <!-- IF isSelf -->
153
- <label>[[user:acp_language]]</label>
154
- <div class="row">
155
- <div class="mb-2 col-lg-12">
156
- <select data-property="acpLang" class="form-select">
157
- {{{each acpLanguages}}}
158
- <option value="{acpLanguages.code}" <!-- IF acpLanguages.selected -->selected<!-- ENDIF acpLanguages.selected -->>{acpLanguages.name} ({acpLanguages.code})</option>
159
- {{{end}}}
160
- </select>
22
+ <!-- ENDIF !disableCustomUserSkins -->
23
+
24
+ <!-- IF allowUserHomePage -->
25
+ <h4>[[user:select-homepage]]</h4>
26
+ <div class="card card-body mb-3">
27
+ <div class="mb-2">
28
+ <label for="homePageRoute">[[user:homepage]]</label>
29
+ <select class="form-select" id="homePageRoute" data-property="homePageRoute">
30
+ <option value="none">None</option>
31
+ {{{each homePageRoutes}}}
32
+ <option value="{homePageRoutes.route}" <!-- IF homePageRoutes.selected -->selected="1"<!-- ENDIF homePageRoutes.selected -->>{homePageRoutes.name}</option>
33
+ {{{end}}}
34
+ </select>
35
+ <p class="form-text">[[user:homepage_description]]</p>
36
+ </div>
37
+ <div id="homePageCustom" class="mb-2" style="display: none;">
38
+ <label for="homePageCustom">[[user:custom_route]]</label>
39
+ <input type="text" class="form-control" data-property="homePageCustom" id="homePageCustom" value="{settings.homePageRoute}"/>
40
+ <p class="form-text">[[user:custom_route_help]]</p>
41
+ </div>
42
+ </div>
43
+ <!-- ENDIF allowUserHomePage -->
44
+
45
+ <h4>[[global:privacy]]</h4>
46
+ <div class="card card-body mb-3">
47
+ <!-- IF !hideEmail -->
48
+ <div class="form-check">
49
+ <input class="form-check-input" type="checkbox" data-property="showemail" <!-- IF settings.showemail -->checked <!-- ENDIF settings.showemail -->/>
50
+ <strong>
51
+ <label class="form-check-label">[[user:show_email]]</label>
52
+ </strong>
53
+ </div>
54
+ <!-- ENDIF !hideEmail -->
55
+
56
+ <!-- IF !hideFullname -->
57
+ <div class="form-check">
58
+ <input class="form-check-input" type="checkbox" data-property="showfullname" <!-- IF settings.showfullname -->checked<!-- ENDIF settings.showfullname -->/>
59
+ <strong>
60
+ <label class="form-check-label">[[user:show_fullname]]</label>
61
+ </strong>
62
+ </div>
63
+ <!-- ENDIF !hideFullname -->
64
+ <!-- IF !config.disableChat -->
65
+ <div class="form-check">
66
+ <input class="form-check-input" type="checkbox" data-property="restrictChat" <!-- IF settings.restrictChat -->checked<!-- ENDIF settings.restrictChat -->/>
67
+ <strong>
68
+ <label class="form-check-label">[[user:restrict_chats]]</label>
69
+ </strong>
70
+ </div>
71
+ <!-- ENDIF !config.disableChat -->
161
72
  </div>
162
- </div>
163
- <!-- ENDIF isSelf -->
164
- <!-- ENDIF isAdmin -->
165
- </div>
166
73
 
167
- <h4>[[topic:watch]]</h4>
168
- <div class="card card-body mb-3">
169
- <div class="form-check">
170
- <input class="form-check-input" type="checkbox" data-property="followTopicsOnCreate" <!-- IF settings.followTopicsOnCreate -->checked <!-- ENDIF settings.followTopicsOnCreate -->/>
171
- <strong>
172
- <label class="form-check-label">[[user:follow_topics_you_create]]</label>
173
- </strong>
174
- </div>
175
- <div class="form-check">
176
- <input class="form-check-input" type="checkbox" data-property="followTopicsOnReply" <!-- IF settings.followTopicsOnReply -->checked<!-- ENDIF settings.followTopicsOnReply -->/>
177
- <strong>
178
- <label class="form-check-label">[[user:follow_topics_you_reply_to]]</label>
179
- </strong>
180
- </div>
181
- <div class="mb-2">
182
- <label>[[user:default-category-watch-state]]</label>
183
- <select class="form-select" data-property="categoryWatchState">
184
- <option value="watching" <!-- IF categoryWatchState.watching -->selected<!-- ENDIF categoryWatchState.watching -->>[[category:watching]]</option>
185
- <option value="notwatching" <!-- IF categoryWatchState.notwatching -->selected<!-- ENDIF categoryWatchState.notwatching -->>[[category:not-watching]]</option>
186
- <option value="ignoring" <!-- IF categoryWatchState.ignoring -->selected<!-- ENDIF categoryWatchState.ignoring -->>[[category:ignoring]]</option>
187
- </select>
188
- </div>
189
- </div>
74
+ <h4>[[user:browsing]]</h4>
75
+ <div class="card card-body mb-3">
76
+ <div class="form-check">
77
+ <input class="form-check-input" type="checkbox" data-property="openOutgoingLinksInNewTab" <!-- IF settings.openOutgoingLinksInNewTab -->checked<!-- ENDIF settings.openOutgoingLinksInNewTab -->/>
78
+ <strong>
79
+ <label class="form-check-label">[[user:open_links_in_new_tab]]</label>
80
+ </strong>
81
+ </div>
82
+ <!-- IF inTopicSearchAvailable -->
83
+ <div class="form-check">
84
+ <input class="form-check-input" type="checkbox" data-property="topicSearchEnabled" <!-- IF settings.topicSearchEnabled -->checked<!-- ENDIF settings.topicSearchEnabled -->/>
85
+ <strong>
86
+ <label class="form-check-label">[[user:enable_topic_searching]]</label>
87
+ </strong>
88
+ </div>
89
+ <p class="form-text">[[user:topic_search_help]]</p>
90
+ <!-- ENDIF inTopicSearchAvailable -->
91
+ <div class="form-check">
92
+ <input class="form-check-input" type="checkbox" data-property="updateUrlWithPostIndex" {{{ if settings.updateUrlWithPostIndex }}}checked{{{ end }}}/>
93
+ <strong>
94
+ <label class="form-check-label">[[user:update_url_with_post_index]]</label>
95
+ </strong>
96
+ </div>
97
+ <div class="form-check">
98
+ <input class="form-check-input" type="checkbox" data-property="scrollToMyPost" <!-- IF settings.scrollToMyPost -->checked<!-- ENDIF settings.scrollToMyPost -->/>
99
+ <strong>
100
+ <label class="form-check-label">[[user:scroll_to_my_post]]</label>
101
+ </strong>
102
+ </div>
103
+ </div>
190
104
 
105
+ <h4>[[global:pagination]]</h4>
106
+ <div class="card card-body mb-3">
107
+ <div class="mb-2 form-check">
108
+ <input type="checkbox" class="form-check-input" data-property="usePagination" <!-- IF settings.usePagination -->checked<!-- ENDIF settings.usePagination -->> <strong><label class="form-check-label">[[user:paginate_description]]</label></strong>
109
+ </div>
110
+ <div class="mb-3">
111
+ <strong><label class="form-label">[[user:topics_per_page]] ([[user:max_items_per_page, {maxTopicsPerPage}]])</label></strong>
112
+ <input type="text" class="form-control" data-property="topicsPerPage" value="{settings.topicsPerPage}">
113
+ </div>
114
+ <div class="">
115
+ <strong><label class="form-label">[[user:posts_per_page]] ([[user:max_items_per_page, {maxPostsPerPage}]])</label></strong>
116
+ <input type="text" class="form-control" data-property="postsPerPage" value="{settings.postsPerPage}">
117
+ </div>
118
+ </div>
191
119
 
192
- <h4>[[user:notifications]]</h4>
193
- <div class="card card-body mb-3">
194
- {{{each notificationSettings}}}
195
- <div class="row mb-3">
196
- <div class="col-7">
197
- <label>{notificationSettings.label}</label>
120
+ <!-- IF !disableEmailSubscriptions -->
121
+ <h4>[[global:email]]</h4>
122
+ <div class="card card-body mb-3">
123
+ <div class="mb-2">
124
+ <label for="dailyDigestFreq">[[user:digest_label]]</label>
125
+ <select class="form-select" id="dailyDigestFreq" data-property="dailyDigestFreq" autocomplete="off">
126
+ {{{each dailyDigestFreqOptions}}}
127
+ <option value="{dailyDigestFreqOptions.value}" <!-- IF dailyDigestFreqOptions.selected -->selected="1"<!-- ENDIF dailyDigestFreqOptions.selected -->>{dailyDigestFreqOptions.name}</option>
128
+ {{{end}}}
129
+ </select>
130
+ <p class="form-text">[[user:digest_description]]</p>
131
+ </div>
198
132
  </div>
199
- <div class="mb-2 col-5">
200
- <select class="form-select" data-property="{notificationSettings.name}">
201
- <option value="none" <!-- IF notificationSettings.none -->selected<!-- ENDIF notificationSettings.none -->>[[notifications:none]]</option>
202
- <option value="notification" <!-- IF notificationSettings.notification -->selected<!-- ENDIF notificationSettings.notification -->>[[notifications:notification_only]]</option>
203
- <option value="email" <!-- IF notificationSettings.email -->selected<!-- ENDIF notificationSettings.email -->>[[notifications:email_only]]</option>
204
- <option value="notificationemail" <!-- IF notificationSettings.notificationemail -->selected<!-- ENDIF notificationSettings.notificationemail -->>[[notifications:notification_and_email]]</option>
205
- </select>
133
+ <!-- ENDIF !disableEmailSubscriptions -->
134
+
135
+ {{{each customSettings}}}
136
+ <h4>{customSettings.title}</h4>
137
+ <div class="card card-body mb-3">
138
+ {customSettings.content}
206
139
  </div>
140
+ {{{end}}}
141
+
207
142
  </div>
208
- {{{end}}}
209
143
 
210
- <div class="row">
211
- <div class="col-7">
212
- <label for="upvote-notif-freq">[[user:upvote-notif-freq]]</label>
144
+ <div class="col-12 col-md-6">
145
+ <h4>[[global:language]]</h4>
146
+ <div class="card card-body mb-3">
147
+ <div class="row">
148
+ <div class="mb-2 col-lg-12">
149
+ <select data-property="userLang" class="form-select">
150
+ {{{each languages}}}
151
+ <option value="{languages.code}" <!-- IF languages.selected -->selected<!-- ENDIF languages.selected -->>{languages.name} ({languages.code})</option>
152
+ {{{end}}}
153
+ </select>
154
+ </div>
155
+ </div>
156
+ <!-- IF isAdmin -->
157
+ <!-- IF isSelf -->
158
+ <label>[[user:acp_language]]</label>
159
+ <div class="row">
160
+ <div class="mb-2 col-lg-12">
161
+ <select data-property="acpLang" class="form-select">
162
+ {{{each acpLanguages}}}
163
+ <option value="{acpLanguages.code}" <!-- IF acpLanguages.selected -->selected<!-- ENDIF acpLanguages.selected -->>{acpLanguages.name} ({acpLanguages.code})</option>
164
+ {{{end}}}
165
+ </select>
166
+ </div>
167
+ </div>
168
+ <!-- ENDIF isSelf -->
169
+ <!-- ENDIF isAdmin -->
213
170
  </div>
214
- <div class="mb-2 col-5">
215
- <select class="form-select" id="upvote-notif-freq" name="upvote-notif-freq" data-property="upvoteNotifFreq">
216
- {{{each upvoteNotifFreq}}}
217
- <option value="{upvoteNotifFreq.name}" <!-- IF upvoteNotifFreq.selected -->selected<!-- ENDIF upvoteNotifFreq.selected -->>
218
- [[user:upvote-notif-freq.{upvoteNotifFreq.name}]]
219
- </option>
220
- {{{end}}}
221
- </select>
171
+
172
+ <h4>[[topic:watch]]</h4>
173
+ <div class="card card-body mb-3">
174
+ <div class="form-check">
175
+ <input class="form-check-input" type="checkbox" data-property="followTopicsOnCreate" <!-- IF settings.followTopicsOnCreate -->checked <!-- ENDIF settings.followTopicsOnCreate -->/>
176
+ <strong>
177
+ <label class="form-check-label">[[user:follow_topics_you_create]]</label>
178
+ </strong>
179
+ </div>
180
+ <div class="form-check">
181
+ <input class="form-check-input" type="checkbox" data-property="followTopicsOnReply" <!-- IF settings.followTopicsOnReply -->checked<!-- ENDIF settings.followTopicsOnReply -->/>
182
+ <strong>
183
+ <label class="form-check-label">[[user:follow_topics_you_reply_to]]</label>
184
+ </strong>
185
+ </div>
186
+ <div class="mb-2">
187
+ <label>[[user:default-category-watch-state]]</label>
188
+ <select class="form-select" data-property="categoryWatchState">
189
+ <option value="watching" <!-- IF categoryWatchState.watching -->selected<!-- ENDIF categoryWatchState.watching -->>[[category:watching]]</option>
190
+ <option value="notwatching" <!-- IF categoryWatchState.notwatching -->selected<!-- ENDIF categoryWatchState.notwatching -->>[[category:not-watching]]</option>
191
+ <option value="ignoring" <!-- IF categoryWatchState.ignoring -->selected<!-- ENDIF categoryWatchState.ignoring -->>[[category:ignoring]]</option>
192
+ </select>
193
+ </div>
194
+ </div>
195
+
196
+
197
+ <h4>[[user:notifications]]</h4>
198
+ <div class="card card-body mb-3">
199
+ {{{each notificationSettings}}}
200
+ <div class="row mb-3">
201
+ <div class="col-7">
202
+ <label>{notificationSettings.label}</label>
203
+ </div>
204
+ <div class="mb-2 col-5">
205
+ <select class="form-select" data-property="{notificationSettings.name}">
206
+ <option value="none" <!-- IF notificationSettings.none -->selected<!-- ENDIF notificationSettings.none -->>[[notifications:none]]</option>
207
+ <option value="notification" <!-- IF notificationSettings.notification -->selected<!-- ENDIF notificationSettings.notification -->>[[notifications:notification_only]]</option>
208
+ <option value="email" <!-- IF notificationSettings.email -->selected<!-- ENDIF notificationSettings.email -->>[[notifications:email_only]]</option>
209
+ <option value="notificationemail" <!-- IF notificationSettings.notificationemail -->selected<!-- ENDIF notificationSettings.notificationemail -->>[[notifications:notification_and_email]]</option>
210
+ </select>
211
+ </div>
212
+ </div>
213
+ {{{end}}}
214
+
215
+ <div class="row">
216
+ <div class="col-7">
217
+ <label for="upvote-notif-freq">[[user:upvote-notif-freq]]</label>
218
+ </div>
219
+ <div class="mb-2 col-5">
220
+ <select class="form-select" id="upvote-notif-freq" name="upvote-notif-freq" data-property="upvoteNotifFreq">
221
+ {{{each upvoteNotifFreq}}}
222
+ <option value="{upvoteNotifFreq.name}" <!-- IF upvoteNotifFreq.selected -->selected<!-- ENDIF upvoteNotifFreq.selected -->>
223
+ [[user:upvote-notif-freq.{upvoteNotifFreq.name}]]
224
+ </option>
225
+ {{{end}}}
226
+ </select>
227
+ </div>
228
+ </div>
222
229
  </div>
223
230
  </div>
224
231
  </div>
232
+
225
233
  </div>
226
234
  </div>
227
- <div class="form-actions">
228
- <a id="submitBtn" href="#" class="btn btn-primary">[[global:save_changes]]</a>
229
- </div>
230
235
  </div>
231
-
@@ -1,29 +1,30 @@
1
- <!-- THIS FILE IS STILL PERSONA -->
2
-
3
1
  <div class="account">
4
2
  <!-- IMPORT partials/account/header.tpl -->
5
3
 
6
- <p>[[persona:settings.intro]]</p>
4
+ <div class="row gx-5">
5
+ <!-- IMPORT partials/account/sidebar-left.tpl -->
7
6
 
8
- <hr />
7
+ <div class="col-12 col-md-9 col-lg-10 ps-md-5">
8
+ <h3 class="fw-semibold fs-5">[[harmony:settings.title]]</h3>
9
9
 
10
- <form id="theme-settings" role="form">
11
- <div class="checkbox">
12
- <label>
13
- <input type="checkbox" id="persona:menus:legacy-layout" name="persona:menus:legacy-layout"> <strong>[[persona:settings.mobile-menu-side]]</strong>
14
- </label>
15
- </div><br />
10
+ <form id="theme-settings" role="form">
11
+ <div class="form-check mb-2">
12
+ <input class="form-check-input" type="checkbox" id="enableQuickReply" name="enableQuickReply" {{{ if config.enableQuickReply }}}checked{{{ end }}}>
13
+ <label class="form-check-label">[[harmony:settings.enableQuickReply]]</label>
14
+ </div>
16
15
 
17
- <div class="form-group">
18
- <label for="persona:navbar:autohide">[[persona:settings.autoHidingNavbar]]</label>
19
- <select multiple class="form-control" name="persona:navbar:autohide" id="persona:navbar:autohide">
20
- <option value="xs">[[persona:settings.autoHidingNavbar-xs]]</option>
21
- <option value="sm">[[persona:settings.autoHidingNavbar-sm]]</option>
22
- <option value="md">[[persona:settings.autoHidingNavbar-md]]</option>
23
- <option value="lg">[[persona:settings.autoHidingNavbar-lg]]</option>
24
- </select>
25
- </div>
16
+ <div class="form-check mb-2">
17
+ <input class="form-check-input" type="checkbox" id="centerHeaderElements" name="centerHeaderElements" {{{ if config.centerHeaderElements }}}checked{{{ end }}}>
18
+ <label class="form-check-label">[[harmony:settings.centerHeaderElements]]</label>
19
+ </div>
26
20
 
27
- <button id="save" type="button" class="btn btn-primary">[[global:save_changes]]</button>
28
- </form>
21
+ <div class="form-check mb-2">
22
+ <input class="form-check-input" type="checkbox" id="stickyToolbar" name="stickyToolbar" {{{ if config.stickyToolbar }}}checked{{{ end }}}>
23
+ <label class="form-check-label">[[harmony:settings.stickyToolbar]]</label>
24
+ </div>
25
+
26
+ <button id="save" type="button" class="btn btn-primary">[[global:save_changes]]</button>
27
+ </form>
28
+ </div>
29
+ </div>
29
30
  </div>
@@ -10,6 +10,10 @@
10
10
  <input type="checkbox" class="form-check-input" id="centerHeaderElements" name="centerHeaderElements" />
11
11
  <label for="centerHeaderElements" class="form-check-label">Center header elements</label>
12
12
  </div>
13
+ <div class="form-check form-switch">
14
+ <input type="checkbox" class="form-check-input" id="stickyToolbar" name="stickyToolbar" />
15
+ <label for="stickyToolbar" class="form-check-label">Sticky toolbar on topic and category pages</label>
16
+ </div>
13
17
  </form>
14
18
  </div>
15
19
  </div>
@@ -1,5 +1,5 @@
1
1
  <div class="col-12 col-md-3 col-lg-2 border-end-md text-sm mb-3">
2
- <div class="sticky-top d-flex flex-row flex-md-column flex-wrap gap-1" style="z-index: 1;">
2
+ <div class="sticky-top d-flex flex-row flex-md-column flex-wrap gap-1" style="top: 1rem;z-index: 1;">
3
3
  <a href="{config.relative_path}/user/{userslug}" class="btn-ghost fw-semibold {{{ if template.account/profile }}}active{{{ end }}}">
4
4
  <div class="flex-1">[[global:about]]</div>
5
5
  </a>
@@ -20,28 +20,33 @@
20
20
  <div class="flex-1">[[global:topics]]</div>
21
21
  <span class="text-xs human-readable-number" title="{counts.topics}">{counts.topics}</span>
22
22
  </a>
23
- <a href="{config.relative_path}/user/{userslug}/groups" class="btn-ghost fw-semibold">
23
+ <a href="{config.relative_path}/user/{userslug}/groups" class="btn-ghost fw-semibold
24
+ {{{ if template.account/groups }}}active{{{ end }}}">
24
25
  <div class="flex-1">[[global:header.groups]]</div>
25
26
  <span class="text-xs human-readable-number" title="{counts.groups}">{counts.groups}</span>
26
27
  </a>
27
28
 
28
- <a href="{config.relative_path}/user/{userslug}/followers" class="btn-ghost fw-semibold">
29
+ <a href="{config.relative_path}/user/{userslug}/followers" class="btn-ghost fw-semibold
30
+ {{{ if template.account/followers }}}active{{{ end }}}">
29
31
  <div class="flex-1">[[user:followers]]</div>
30
32
  <span class="text-xs human-readable-number" title="{counts.followers}">{counts.followers}</span>
31
33
  </a>
32
34
 
33
- <a href="{config.relative_path}/user/{userslug}/following" class="btn-ghost fw-semibold">
35
+ <a href="{config.relative_path}/user/{userslug}/following" class="btn-ghost fw-semibold
36
+ {{{ if template.account/following }}}active{{{ end }}}">
34
37
  <div class="flex-1">[[user:following]]</div>
35
38
  <span class="text-xs human-readable-number" title="{counts.following}">{counts.following}</span>
36
39
  </a>
37
40
 
38
41
  {{{ if canEdit }}}
39
- <a href="{config.relative_path}/user/{userslug}/blocks" class="btn-ghost fw-semibold">
42
+ <a href="{config.relative_path}/user/{userslug}/blocks" class="btn-ghost fw-semibold
43
+ {{{ if template.account/blocks }}}active{{{ end }}}">
40
44
  <div class="flex-1">[[user:blocked-users]]</div>
41
45
  <span class="text-xs human-readable-number" title="{counts.blocks}">{counts.blocks}</span>
42
46
  </a>
43
47
 
44
- <a href="{config.relative_path}/user/{userslug}/uploads" class="btn-ghost fw-semibold">
48
+ <a href="{config.relative_path}/user/{userslug}/uploads" class="btn-ghost fw-semibold
49
+ {{{ if template.account/uploads }}}active{{{ end }}}">
45
50
  <div class="flex-1">[[global:uploads]]</div>
46
51
  <span class="text-xs human-readable-number" title="{counts.uploaded}">{counts.uploaded}</span>
47
52
  </a>
@@ -65,16 +70,18 @@
65
70
  {{{ end }}}
66
71
 
67
72
  {{{ if canEdit }}}
68
- <a href="{config.relative_path}/user/{userslug}/edit" class="btn-ghost-sm text-xs">
73
+ <a href="{config.relative_path}/user/{userslug}/edit" class="btn-ghost-sm text-xs
74
+ {{{ if template.account/edit }}}active{{{ end }}}">
69
75
  <div class="flex-1">[[user:edit-profile]]</div>
70
76
  </a>
71
- <a href="{config.relative_path}/user/{userslug}/settings" class="btn-ghost-sm text-xs">
77
+ <a href="{config.relative_path}/user/{userslug}/settings" class="btn-ghost-sm text-xs
78
+ {{{ if template.account/settings }}}active{{{ end }}}">
72
79
  <div class="flex-1">[[user:settings]]</div>
73
80
  </a>
74
81
  {{{ end }}}
75
82
 
76
83
  {{{ each profile_links }}}
77
- <a href="{config.relative_path}/user/{userslug}/{./route}" class="btn-ghost-sm text-xs plugin-link {{{ if ./public }}}public{{{ else }}}private{{{ end }}}" id="{./id}">
84
+ <a href="{config.relative_path}/user/{userslug}/{./route}" class="btn-ghost-sm text-xs plugin-link {{{ if ./public }}}public{{{ else }}}private{{{ end }}} {url} {{{ if (url == ./url) }}}active{{{ end }}}" id="{./id}">
78
85
  <div class="flex-1">{./name}</div>
79
86
  </a>
80
87
  {{{end}}}
@@ -26,7 +26,7 @@
26
26
  </div>
27
27
  </div>
28
28
  <!-- ELSE -->
29
- <div class="alert alert-info me-3">
30
- [[modules:chat.no-messages]]
29
+ <div class="text-center p-2">
30
+ [[modules:chat.no_active]]
31
31
  </div>
32
32
  <!-- ENDIF roomId -->
@@ -80,13 +80,11 @@
80
80
 
81
81
  <div class="mb-3">
82
82
  <label class="form-label" for="memberPostCids">[[groups:details.member-post-cids]]</label>
83
- <div class="row">
84
- <div class="col-md-6">
85
- <input id="memberPostCids" type="text" class="form-control" value="{group.memberPostCids}">
86
- </div>
87
- <div class="col-md-6 member-post-cids-selector">
83
+ <div class="d-flex gap-1">
84
+ <div class="member-post-cids-selector">
88
85
  <!-- IMPORT partials/category-selector.tpl -->
89
86
  </div>
87
+ <input id="memberPostCids" type="text" class="form-control" value="{group.memberPostCids}">
90
88
  </div>
91
89
  </div>
92
90
 
@@ -1,4 +1,4 @@
1
- <nav class="sticky-tools navbar navbar-expand mt-4 p-0 border-0 rounded topic-main-buttons">
1
+ <nav class="{{{ if config.stickyToolbar }}}sticky-tools{{{ end }}} navbar navbar-expand mt-4 p-0 border-0 rounded topic-main-buttons">
2
2
  <div class="card card-header flex-row p-2 border rounded ff-secondary w-100">
3
3
  <ul class="navbar-nav me-auto gap-2 align-items-center">
4
4
  {{{ if loggedIn }}}
@@ -1,4 +1,4 @@
1
- <nav class="topic-list-header sticky-tools navbar navbar-expand p-0 border-0 rounded">
1
+ <nav class="topic-list-header {{{ if config.stickyToolbar }}} sticky-tools{{{ end }}} navbar navbar-expand p-0 border-0 rounded">
2
2
  <div class="card card-header flex-row p-2 border rounded ff-secondary w-100">
3
3
  <ul class="navbar-nav me-auto gap-2 align-items-center">
4
4
  {{{ if template.category }}}
@@ -1,7 +1,5 @@
1
1
  <!-- THIS FILE IS STILL PERSONA -->
2
2
 
3
- <!-- IMPORT partials/breadcrumbs.tpl -->
4
-
5
3
  <div class="search">
6
4
  <div class="row">
7
5
  <div class="{{{ if widgets.sidebar.length }}}col-lg-9 col-sm-12{{{ else }}}col-lg-12{{{ end }}}">