nodebb-theme-harmony 2.0.0 → 2.0.1
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/.eslintrc +3 -3
- package/README.md +22 -22
- package/lib/controllers.js +29 -29
- package/library.js +183 -183
- package/package.json +48 -48
- package/plugin.json +24 -24
- package/public/.eslintrc +3 -3
- package/public/admin.js +15 -15
- package/public/harmony.js +287 -287
- package/public/settings.js +31 -31
- package/renovate.json +6 -6
- package/scss/account.scss +27 -27
- package/scss/category.scss +3 -3
- package/scss/chats.scss +11 -11
- package/scss/common.scss +122 -122
- package/scss/fonts.scss +19 -19
- package/scss/groups.scss +22 -22
- package/scss/harmony.scss +24 -24
- package/scss/header.scss +15 -15
- package/scss/mixins.scss +183 -183
- package/scss/modals.scss +6 -6
- package/scss/modules/breadcrumbs.scss +15 -15
- package/scss/modules/cover.scss +102 -102
- package/scss/modules/filters.scss +7 -7
- package/scss/modules/nprogress.scss +80 -80
- package/scss/modules/paginator.scss +23 -23
- package/scss/modules/tags.scss +5 -5
- package/scss/modules/topic-navigator.scss +52 -52
- package/scss/modules/topics-list.scss +40 -40
- package/scss/modules/user-menu.scss +10 -10
- package/scss/overrides.scss +65 -65
- package/scss/sidebar.scss +188 -188
- package/scss/skins.scss +58 -58
- package/scss/status.scss +24 -24
- package/scss/topic.scss +130 -130
- package/templates/account/blocks.tpl +51 -51
- package/templates/account/categories.tpl +63 -63
- package/templates/account/consent.tpl +73 -73
- package/templates/account/edit/password.tpl +34 -34
- package/templates/account/edit/username.tpl +29 -29
- package/templates/account/edit.tpl +137 -137
- package/templates/account/followers.tpl +14 -14
- package/templates/account/following.tpl +15 -15
- package/templates/account/groups.tpl +15 -15
- package/templates/account/info.tpl +270 -270
- package/templates/account/posts.tpl +35 -35
- package/templates/account/profile.tpl +92 -92
- package/templates/account/sessions.tpl +8 -8
- package/templates/account/settings.tpl +236 -236
- package/templates/account/shares.tpl +19 -19
- package/templates/account/tags.tpl +12 -12
- package/templates/account/theme.tpl +63 -63
- package/templates/account/topics.tpl +44 -44
- package/templates/account/uploads.tpl +37 -37
- package/templates/admin/plugins/harmony.tpl +57 -57
- package/templates/categories.tpl +29 -29
- package/templates/category.tpl +72 -72
- package/templates/footer.tpl +17 -17
- package/templates/groups/details.tpl +86 -86
- package/templates/groups/list.tpl +58 -58
- package/templates/groups/members.tpl +9 -9
- package/templates/header.tpl +45 -45
- package/templates/notifications.tpl +32 -32
- package/templates/partials/account/admin-menu.tpl +36 -36
- package/templates/partials/account/category-item.tpl +22 -22
- package/templates/partials/account/footer.tpl +2 -2
- package/templates/partials/account/header.tpl +98 -98
- package/templates/partials/account/session-list.tpl +18 -18
- package/templates/partials/account/sidebar-left.tpl +116 -116
- package/templates/partials/breadcrumbs-json-ld.tpl +15 -15
- package/templates/partials/breadcrumbs.tpl +12 -12
- package/templates/partials/buttons/newTopic.tpl +22 -22
- package/templates/partials/categories/item.tpl +56 -56
- package/templates/partials/categories/lastpost.tpl +24 -24
- package/templates/partials/categories/link.tpl +4 -4
- package/templates/partials/category/subcategory.tpl +18 -18
- package/templates/partials/category/tags.tpl +3 -3
- package/templates/partials/cookie-consent.tpl +6 -6
- package/templates/partials/groups/admin.tpl +95 -95
- package/templates/partials/groups/invited.tpl +32 -32
- package/templates/partials/groups/list.tpl +15 -15
- package/templates/partials/groups/memberlist.tpl +46 -46
- package/templates/partials/groups/pending.tpl +29 -29
- package/templates/partials/groups/sidebar-left.tpl +27 -27
- package/templates/partials/header/brand.tpl +27 -27
- package/templates/partials/mobile-footer.tpl +95 -95
- package/templates/partials/notifications_list.tpl +44 -44
- package/templates/partials/paginator.tpl +46 -46
- package/templates/partials/post_bar.tpl +27 -27
- package/templates/partials/posts_list.tpl +7 -7
- package/templates/partials/posts_list_item.tpl +19 -19
- package/templates/partials/quick-search-results.tpl +46 -46
- package/templates/partials/search-filters.tpl +183 -183
- package/templates/partials/search-results.tpl +54 -54
- package/templates/partials/sidebar/chats.tpl +45 -45
- package/templates/partials/sidebar/drafts.tpl +63 -63
- package/templates/partials/sidebar/logged-in-menu.tpl +22 -22
- package/templates/partials/sidebar/logged-out-menu.tpl +44 -44
- package/templates/partials/sidebar/notifications.tpl +49 -49
- package/templates/partials/sidebar/search-mobile.tpl +28 -28
- package/templates/partials/sidebar/search.tpl +30 -30
- package/templates/partials/sidebar/user-menu.tpl +103 -103
- package/templates/partials/sidebar-left.tpl +39 -39
- package/templates/partials/sidebar-right.tpl +16 -16
- package/templates/partials/skin-switcher.tpl +50 -50
- package/templates/partials/tags_list.tpl +7 -7
- package/templates/partials/toast.tpl +19 -19
- package/templates/partials/topic/event.tpl +12 -12
- package/templates/partials/topic/navigation-post.tpl +9 -9
- package/templates/partials/topic/navigator-mobile.tpl +61 -61
- package/templates/partials/topic/navigator.tpl +26 -26
- package/templates/partials/topic/necro-post.tpl +5 -5
- package/templates/partials/topic/post-menu-list.tpl +156 -156
- package/templates/partials/topic/post-menu.tpl +4 -4
- package/templates/partials/topic/post-placeholder.tpl +14 -14
- package/templates/partials/topic/post.tpl +146 -146
- package/templates/partials/topic/quickreply.tpl +28 -28
- package/templates/partials/topic/reply-button.tpl +26 -26
- package/templates/partials/topic/selection-tooltip.tpl +2 -2
- package/templates/partials/topic/sort.tpl +27 -27
- package/templates/partials/topic/stats.tpl +14 -14
- package/templates/partials/topic/thumbs.tpl +4 -4
- package/templates/partials/topic/tools.tpl +8 -8
- package/templates/partials/topic/topic-menu-list.tpl +73 -73
- package/templates/partials/topic/watch.tpl +59 -59
- package/templates/partials/topic-filters.tpl +15 -15
- package/templates/partials/topic-list-bar.tpl +54 -54
- package/templates/partials/topic-terms.tpl +15 -15
- package/templates/partials/topics_list.tpl +131 -131
- package/templates/partials/users/item.tpl +39 -39
- package/templates/partials/users_list.tpl +4 -4
- package/templates/partials/users_list_menu.tpl +14 -14
- package/templates/popular.tpl +34 -34
- package/templates/post-queue.tpl +211 -211
- package/templates/recent.tpl +42 -42
- package/templates/search.tpl +46 -46
- package/templates/tag.tpl +34 -34
- package/templates/tags.tpl +49 -49
- package/templates/top.tpl +34 -34
- package/templates/topic.tpl +123 -123
- package/templates/unread.tpl +31 -31
- package/templates/users.tpl +39 -39
- package/templates/world.tpl +66 -66
- package/theme.json +6 -6
- package/package-lock.json +0 -2338
|
@@ -1,236 +1,236 @@
|
|
|
1
|
-
<!-- IMPORT partials/account/header.tpl -->
|
|
2
|
-
|
|
3
|
-
<div class="d-flex justify-content-between py-1 mb-3 align-items-center position-sticky top-0 bg-body">
|
|
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:save-changes]]</button>
|
|
6
|
-
</div>
|
|
7
|
-
<div class="row">
|
|
8
|
-
<div class="col-12 col-md-6">
|
|
9
|
-
{{{ if !disableCustomUserSkins }}}
|
|
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
|
-
|
|
17
|
-
<hr/>
|
|
18
|
-
{{{ end }}}
|
|
19
|
-
|
|
20
|
-
{{{ if allowUserHomePage }}}
|
|
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>
|
|
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
|
-
|
|
38
|
-
<hr/>
|
|
39
|
-
{{{ end }}}
|
|
40
|
-
|
|
41
|
-
<h6 class="fw-bold">[[global:privacy]]</h6>
|
|
42
|
-
|
|
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>
|
|
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
|
-
<hr/>
|
|
65
|
-
|
|
66
|
-
<h6 class="fw-bold">[[user:browsing]]</h6>
|
|
67
|
-
|
|
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>
|
|
89
|
-
</div>
|
|
90
|
-
|
|
91
|
-
<hr/>
|
|
92
|
-
|
|
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>
|
|
103
|
-
<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}">
|
|
106
|
-
</div>
|
|
107
|
-
|
|
108
|
-
<hr/>
|
|
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="recently_replied" {{{ if (settings.categoryTopicSort == "recently_replied") }}}selected{{{ end }}}>[[topic:recently-replied]]</option>
|
|
116
|
-
<option value="recently_created" {{{ if (settings.categoryTopicSort == "recently_created") }}}selected{{{ end }}}>[[topic:recently-created]]</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>
|
|
122
|
-
<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
|
-
</div>
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
{{{ if !disableEmailSubscriptions }}}
|
|
133
|
-
<hr/>
|
|
134
|
-
<h6 class="fw-bold">[[global:email]]</h6>
|
|
135
|
-
<div>
|
|
136
|
-
<div class="mb-2">
|
|
137
|
-
<label class="form-label text-sm" for="dailyDigestFreq">[[user:digest-label]]</label>
|
|
138
|
-
<select class="form-select form-select-sm" id="dailyDigestFreq" data-property="dailyDigestFreq" autocomplete="off">
|
|
139
|
-
{{{each dailyDigestFreqOptions}}}
|
|
140
|
-
<option value="{./value}" {{{ if ./selected }}}selected="1"{{{ end }}}>{./name}</option>
|
|
141
|
-
{{{end}}}
|
|
142
|
-
</select>
|
|
143
|
-
<p class="form-text text-xs">[[user:digest-description]]</p>
|
|
144
|
-
</div>
|
|
145
|
-
</div>
|
|
146
|
-
{{{ end }}}
|
|
147
|
-
|
|
148
|
-
{{{ each customSettings}}}
|
|
149
|
-
<hr/>
|
|
150
|
-
<h6 class="fw-bold">{./title}</h6>
|
|
151
|
-
<div>
|
|
152
|
-
{./content}
|
|
153
|
-
</div>
|
|
154
|
-
{{{end}}}
|
|
155
|
-
<hr class="d-block d-md-none"/>
|
|
156
|
-
</div>
|
|
157
|
-
|
|
158
|
-
<div class="col-12 col-md-6">
|
|
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
|
-
|
|
166
|
-
<hr/>
|
|
167
|
-
|
|
168
|
-
{{{ if (isAdmin && isSelf) }}}
|
|
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
|
-
|
|
176
|
-
<hr/>
|
|
177
|
-
{{{ end }}}
|
|
178
|
-
|
|
179
|
-
<h6 class="fw-bold">[[topic:watch]]</h6>
|
|
180
|
-
<div>
|
|
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>
|
|
184
|
-
</div>
|
|
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>
|
|
188
|
-
</div>
|
|
189
|
-
<div class="mb-2">
|
|
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">
|
|
192
|
-
<option value="tracking" {{{ if categoryWatchState.tracking }}}selected{{{ end }}}>[[category:tracking]]</option>
|
|
193
|
-
<option value="notwatching" {{{ if categoryWatchState.notwatching }}}selected{{{ end }}}>[[category:not-watching]]</option>
|
|
194
|
-
<option value="ignoring" {{{ if categoryWatchState.ignoring }}}selected{{{ end }}}>[[category:ignoring]]</option>
|
|
195
|
-
</select>
|
|
196
|
-
</div>
|
|
197
|
-
</div>
|
|
198
|
-
<hr/>
|
|
199
|
-
|
|
200
|
-
<h6 class="fw-bold">[[user:notifications]]</h6>
|
|
201
|
-
<div>
|
|
202
|
-
{{{ each notificationSettings }}}
|
|
203
|
-
<div class="row mb-3 align-items-center">
|
|
204
|
-
<div class="col-7">
|
|
205
|
-
<label class="text-sm" for="{./name}">{./label}</label>
|
|
206
|
-
</div>
|
|
207
|
-
<div class="col-5">
|
|
208
|
-
<select class="form-select form-select-sm" id="{./name}" data-property="{./name}">
|
|
209
|
-
<option value="none" {{{ if ./none }}}selected{{{ end }}}>[[notifications:none]]</option>
|
|
210
|
-
<option value="notification" {{{ if ./notification }}}selected{{{ end }}}>[[notifications:notification-only]]</option>
|
|
211
|
-
<option value="email" {{{ if ./email }}}selected{{{ end }}}>[[notifications:email-only]]</option>
|
|
212
|
-
<option value="notificationemail" {{{ if ./notificationemail }}}selected{{{ end }}}>[[notifications:notification-and-email]]</option>
|
|
213
|
-
</select>
|
|
214
|
-
</div>
|
|
215
|
-
</div>
|
|
216
|
-
{{{end}}}
|
|
217
|
-
|
|
218
|
-
<div class="row align-items-center">
|
|
219
|
-
<div class="col-7">
|
|
220
|
-
<label class="text-sm" for="upvote-notif-freq">[[user:upvote-notif-freq]]</label>
|
|
221
|
-
</div>
|
|
222
|
-
<div class="col-5">
|
|
223
|
-
<select class="form-select form-select-sm" id="upvote-notif-freq" name="upvote-notif-freq" data-property="upvoteNotifFreq">
|
|
224
|
-
{{{ each upvoteNotifFreq }}}
|
|
225
|
-
<option value="{./name}" {{{ if ./selected }}}selected{{{ end }}}>
|
|
226
|
-
[[user:upvote-notif-freq.{./name}]]
|
|
227
|
-
</option>
|
|
228
|
-
{{{end}}}
|
|
229
|
-
</select>
|
|
230
|
-
</div>
|
|
231
|
-
</div>
|
|
232
|
-
</div>
|
|
233
|
-
</div>
|
|
234
|
-
</div>
|
|
235
|
-
|
|
236
|
-
<!-- IMPORT partials/account/footer.tpl -->
|
|
1
|
+
<!-- IMPORT partials/account/header.tpl -->
|
|
2
|
+
|
|
3
|
+
<div class="d-flex justify-content-between py-1 mb-3 align-items-center position-sticky top-0 bg-body">
|
|
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:save-changes]]</button>
|
|
6
|
+
</div>
|
|
7
|
+
<div class="row">
|
|
8
|
+
<div class="col-12 col-md-6">
|
|
9
|
+
{{{ if !disableCustomUserSkins }}}
|
|
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
|
+
|
|
17
|
+
<hr/>
|
|
18
|
+
{{{ end }}}
|
|
19
|
+
|
|
20
|
+
{{{ if allowUserHomePage }}}
|
|
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>
|
|
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
|
+
|
|
38
|
+
<hr/>
|
|
39
|
+
{{{ end }}}
|
|
40
|
+
|
|
41
|
+
<h6 class="fw-bold">[[global:privacy]]</h6>
|
|
42
|
+
|
|
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>
|
|
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
|
+
<hr/>
|
|
65
|
+
|
|
66
|
+
<h6 class="fw-bold">[[user:browsing]]</h6>
|
|
67
|
+
|
|
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>
|
|
89
|
+
</div>
|
|
90
|
+
|
|
91
|
+
<hr/>
|
|
92
|
+
|
|
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>
|
|
103
|
+
<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}">
|
|
106
|
+
</div>
|
|
107
|
+
|
|
108
|
+
<hr/>
|
|
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="recently_replied" {{{ if (settings.categoryTopicSort == "recently_replied") }}}selected{{{ end }}}>[[topic:recently-replied]]</option>
|
|
116
|
+
<option value="recently_created" {{{ if (settings.categoryTopicSort == "recently_created") }}}selected{{{ end }}}>[[topic:recently-created]]</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>
|
|
122
|
+
<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
|
+
</div>
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
{{{ if !disableEmailSubscriptions }}}
|
|
133
|
+
<hr/>
|
|
134
|
+
<h6 class="fw-bold">[[global:email]]</h6>
|
|
135
|
+
<div>
|
|
136
|
+
<div class="mb-2">
|
|
137
|
+
<label class="form-label text-sm" for="dailyDigestFreq">[[user:digest-label]]</label>
|
|
138
|
+
<select class="form-select form-select-sm" id="dailyDigestFreq" data-property="dailyDigestFreq" autocomplete="off">
|
|
139
|
+
{{{each dailyDigestFreqOptions}}}
|
|
140
|
+
<option value="{./value}" {{{ if ./selected }}}selected="1"{{{ end }}}>{./name}</option>
|
|
141
|
+
{{{end}}}
|
|
142
|
+
</select>
|
|
143
|
+
<p class="form-text text-xs">[[user:digest-description]]</p>
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
{{{ end }}}
|
|
147
|
+
|
|
148
|
+
{{{ each customSettings}}}
|
|
149
|
+
<hr/>
|
|
150
|
+
<h6 class="fw-bold">{./title}</h6>
|
|
151
|
+
<div>
|
|
152
|
+
{./content}
|
|
153
|
+
</div>
|
|
154
|
+
{{{end}}}
|
|
155
|
+
<hr class="d-block d-md-none"/>
|
|
156
|
+
</div>
|
|
157
|
+
|
|
158
|
+
<div class="col-12 col-md-6">
|
|
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
|
+
|
|
166
|
+
<hr/>
|
|
167
|
+
|
|
168
|
+
{{{ if (isAdmin && isSelf) }}}
|
|
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
|
+
|
|
176
|
+
<hr/>
|
|
177
|
+
{{{ end }}}
|
|
178
|
+
|
|
179
|
+
<h6 class="fw-bold">[[topic:watch]]</h6>
|
|
180
|
+
<div>
|
|
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>
|
|
184
|
+
</div>
|
|
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>
|
|
188
|
+
</div>
|
|
189
|
+
<div class="mb-2">
|
|
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">
|
|
192
|
+
<option value="tracking" {{{ if categoryWatchState.tracking }}}selected{{{ end }}}>[[category:tracking]]</option>
|
|
193
|
+
<option value="notwatching" {{{ if categoryWatchState.notwatching }}}selected{{{ end }}}>[[category:not-watching]]</option>
|
|
194
|
+
<option value="ignoring" {{{ if categoryWatchState.ignoring }}}selected{{{ end }}}>[[category:ignoring]]</option>
|
|
195
|
+
</select>
|
|
196
|
+
</div>
|
|
197
|
+
</div>
|
|
198
|
+
<hr/>
|
|
199
|
+
|
|
200
|
+
<h6 class="fw-bold">[[user:notifications]]</h6>
|
|
201
|
+
<div>
|
|
202
|
+
{{{ each notificationSettings }}}
|
|
203
|
+
<div class="row mb-3 align-items-center">
|
|
204
|
+
<div class="col-7">
|
|
205
|
+
<label class="text-sm" for="{./name}">{./label}</label>
|
|
206
|
+
</div>
|
|
207
|
+
<div class="col-5">
|
|
208
|
+
<select class="form-select form-select-sm" id="{./name}" data-property="{./name}">
|
|
209
|
+
<option value="none" {{{ if ./none }}}selected{{{ end }}}>[[notifications:none]]</option>
|
|
210
|
+
<option value="notification" {{{ if ./notification }}}selected{{{ end }}}>[[notifications:notification-only]]</option>
|
|
211
|
+
<option value="email" {{{ if ./email }}}selected{{{ end }}}>[[notifications:email-only]]</option>
|
|
212
|
+
<option value="notificationemail" {{{ if ./notificationemail }}}selected{{{ end }}}>[[notifications:notification-and-email]]</option>
|
|
213
|
+
</select>
|
|
214
|
+
</div>
|
|
215
|
+
</div>
|
|
216
|
+
{{{end}}}
|
|
217
|
+
|
|
218
|
+
<div class="row align-items-center">
|
|
219
|
+
<div class="col-7">
|
|
220
|
+
<label class="text-sm" for="upvote-notif-freq">[[user:upvote-notif-freq]]</label>
|
|
221
|
+
</div>
|
|
222
|
+
<div class="col-5">
|
|
223
|
+
<select class="form-select form-select-sm" id="upvote-notif-freq" name="upvote-notif-freq" data-property="upvoteNotifFreq">
|
|
224
|
+
{{{ each upvoteNotifFreq }}}
|
|
225
|
+
<option value="{./name}" {{{ if ./selected }}}selected{{{ end }}}>
|
|
226
|
+
[[user:upvote-notif-freq.{./name}]]
|
|
227
|
+
</option>
|
|
228
|
+
{{{end}}}
|
|
229
|
+
</select>
|
|
230
|
+
</div>
|
|
231
|
+
</div>
|
|
232
|
+
</div>
|
|
233
|
+
</div>
|
|
234
|
+
</div>
|
|
235
|
+
|
|
236
|
+
<!-- IMPORT partials/account/footer.tpl -->
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
<!-- IMPORT partials/account/header.tpl -->
|
|
2
|
-
|
|
3
|
-
<div class="d-flex justify-content-between align-items-center mb-3">
|
|
4
|
-
<div class="d-flex gap-1">
|
|
5
|
-
<h3 class="fw-semibold fs-5">[[pages:account/shares, {username}]]</h3>
|
|
6
|
-
</div>
|
|
7
|
-
</div>
|
|
8
|
-
|
|
9
|
-
{{{ if !topics.length }}}
|
|
10
|
-
<div class="alert alert-warning text-center">{noItemsFoundKey}</div>
|
|
11
|
-
{{{ end }}}
|
|
12
|
-
|
|
13
|
-
<div class="category">
|
|
14
|
-
<!-- IMPORT partials/topics_list.tpl -->
|
|
15
|
-
{{{ if config.usePagination }}}
|
|
16
|
-
<!-- IMPORT partials/paginator.tpl -->
|
|
17
|
-
{{{ end }}}
|
|
18
|
-
</div>
|
|
19
|
-
|
|
1
|
+
<!-- IMPORT partials/account/header.tpl -->
|
|
2
|
+
|
|
3
|
+
<div class="d-flex justify-content-between align-items-center mb-3">
|
|
4
|
+
<div class="d-flex gap-1">
|
|
5
|
+
<h3 class="fw-semibold fs-5">[[pages:account/shares, {username}]]</h3>
|
|
6
|
+
</div>
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
{{{ if !topics.length }}}
|
|
10
|
+
<div class="alert alert-warning text-center">{noItemsFoundKey}</div>
|
|
11
|
+
{{{ end }}}
|
|
12
|
+
|
|
13
|
+
<div class="category">
|
|
14
|
+
<!-- IMPORT partials/topics_list.tpl -->
|
|
15
|
+
{{{ if config.usePagination }}}
|
|
16
|
+
<!-- IMPORT partials/paginator.tpl -->
|
|
17
|
+
{{{ end }}}
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
20
|
<!-- IMPORT partials/account/footer.tpl -->
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
<!-- IMPORT partials/account/header.tpl -->
|
|
2
|
-
|
|
3
|
-
<div class="d-flex justify-content-between align-items-center mb-3">
|
|
4
|
-
<div class="d-flex gap-1">
|
|
5
|
-
<h3 class="fw-semibold fs-5 mb-0">{title}</h3>
|
|
6
|
-
</div>
|
|
7
|
-
</div>
|
|
8
|
-
|
|
9
|
-
<div>
|
|
10
|
-
<input component="tags/watch" type="text" class="form-control">
|
|
11
|
-
</div>
|
|
12
|
-
|
|
1
|
+
<!-- IMPORT partials/account/header.tpl -->
|
|
2
|
+
|
|
3
|
+
<div class="d-flex justify-content-between align-items-center mb-3">
|
|
4
|
+
<div class="d-flex gap-1">
|
|
5
|
+
<h3 class="fw-semibold fs-5 mb-0">{title}</h3>
|
|
6
|
+
</div>
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
<div>
|
|
10
|
+
<input component="tags/watch" type="text" class="form-control">
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
13
|
<!-- IMPORT partials/account/footer.tpl -->
|