nodebb-theme-harmony 0.0.10 → 0.0.12
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/library.js +1 -0
- package/package.json +1 -1
- package/public/harmony.js +10 -1
- package/scss/account.scss +0 -3
- package/scss/common.scss +9 -0
- package/scss/modules/bottom-sheet.scss +1 -1
- package/scss/modules/topic-navigator.scss +0 -6
- package/scss/sidebar.scss +19 -25
- package/scss/skins.scss +8 -1
- package/templates/account/blocks.tpl +2 -2
- package/templates/account/categories.tpl +27 -21
- package/templates/account/consent.tpl +10 -64
- package/templates/account/edit/password.tpl +29 -24
- package/templates/account/edit/username.tpl +25 -20
- package/templates/account/edit.tpl +48 -58
- package/templates/account/followers.tpl +2 -3
- package/templates/account/following.tpl +2 -3
- package/templates/account/groups.tpl +2 -3
- package/templates/account/info.tpl +4 -5
- package/templates/account/posts.tpl +4 -4
- package/templates/account/profile.tpl +9 -9
- package/templates/account/sessions.tpl +2 -3
- package/templates/account/settings.tpl +119 -136
- package/templates/account/theme.tpl +7 -4
- package/templates/account/topics.tpl +17 -16
- package/templates/account/uploads.tpl +4 -8
- package/templates/groups/details.tpl +3 -20
- package/templates/groups/list.tpl +10 -9
- package/templates/header.tpl +3 -21
- package/templates/login.tpl +1 -1
- package/templates/notifications.tpl +4 -4
- package/templates/partials/account/header.tpl +58 -47
- package/templates/partials/account/sidebar-left.tpl +5 -5
- package/templates/partials/buttons/newTopic.tpl +1 -3
- package/templates/partials/categories/item.tpl +1 -8
- package/templates/partials/category/sort.tpl +3 -3
- package/templates/partials/category/subcategory.tpl +1 -1
- package/templates/partials/category/tools.tpl +3 -3
- package/templates/partials/category/watch.tpl +7 -7
- package/templates/partials/category-filter-content.tpl +4 -4
- package/templates/partials/category-selector-content.tpl +10 -9
- package/templates/partials/chats/message-window.tpl +10 -8
- package/templates/partials/groups/sidebar-left.tpl +1 -1
- package/templates/partials/header/brand.tpl +19 -0
- package/templates/partials/notifications_list.tpl +5 -5
- package/templates/partials/post_bar.tpl +4 -4
- package/templates/partials/sidebar/drafts.tpl +16 -5
- package/templates/partials/sidebar/logged-in-menu.tpl +23 -0
- package/templates/partials/sidebar/user-menu.tpl +1 -1
- package/templates/partials/sidebar-left.tpl +2 -2
- package/templates/partials/sidebar-right.tpl +2 -24
- package/templates/partials/tags_list.tpl +3 -2
- package/templates/partials/topic/navigator.tpl +2 -2
- package/templates/partials/topic/post-menu.tpl +2 -4
- package/templates/partials/topic/post.tpl +13 -13
- package/templates/partials/topic/reply-button.tpl +3 -3
- package/templates/partials/topic/sort.tpl +3 -3
- package/templates/partials/topic/tools.tpl +3 -3
- package/templates/partials/topic/watch.tpl +17 -16
- package/templates/partials/topic-filters.tpl +3 -3
- package/templates/partials/topic-list-bar.tpl +7 -11
- package/templates/partials/topic-terms.tpl +3 -3
- package/templates/partials/topics_list.tpl +4 -4
- package/templates/partials/users/item.tpl +27 -25
- package/templates/partials/users_list_menu.tpl +1 -1
- package/templates/tags.tpl +12 -8
- package/templates/topic.tpl +1 -3
- package/templates/users.tpl +4 -5
- package/templates/chat.tpl +0 -41
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
<div class="account">
|
|
2
2
|
<!-- IMPORT partials/account/header.tpl -->
|
|
3
3
|
|
|
4
|
-
<div class="
|
|
4
|
+
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
|
|
7
|
-
<div class="col-12 col-md-9 col-lg-10 ps-md-5">
|
|
6
|
+
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
8
7
|
<h3 class="fw-semibold fs-5">[[pages:{template.name}, {username}]]</h3>
|
|
9
8
|
|
|
10
9
|
{{{ if !users.length }}}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
<div class="account">
|
|
2
2
|
<!-- IMPORT partials/account/header.tpl -->
|
|
3
3
|
|
|
4
|
-
<div class="
|
|
4
|
+
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
|
|
7
|
-
<div class="col-12 col-md-9 col-lg-10 ps-md-5">
|
|
6
|
+
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
8
7
|
<h3 class="fw-semibold fs-5">[[pages:{template.name}, {username}]]</h3>
|
|
9
8
|
|
|
10
9
|
<div class="groups">
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
<div class="account">
|
|
2
2
|
<!-- IMPORT partials/account/header.tpl -->
|
|
3
3
|
|
|
4
|
-
<div class="
|
|
4
|
+
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
|
|
7
|
-
<div class="col-12 col-md-9 col-lg-10 ps-md-5">
|
|
6
|
+
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
8
7
|
{{{ if sessions.length }}}
|
|
9
8
|
<div class="mb-3">
|
|
10
9
|
<h4>[[global:sessions]]</h4>
|
|
@@ -32,7 +31,7 @@
|
|
|
32
31
|
{{{ end }}}
|
|
33
32
|
|
|
34
33
|
<div class="row">
|
|
35
|
-
<div class="col-sm-6">
|
|
34
|
+
<div class="col-sm-6 mb-3">
|
|
36
35
|
<div class="card mb-3">
|
|
37
36
|
<h5 class="card-header">
|
|
38
37
|
[[global:recentips]]
|
|
@@ -78,7 +77,7 @@
|
|
|
78
77
|
</div>
|
|
79
78
|
</div>
|
|
80
79
|
</div>
|
|
81
|
-
<div class="col-sm-6">
|
|
80
|
+
<div class="col-sm-6 mb-3">
|
|
82
81
|
<div class="card mb-3">
|
|
83
82
|
<h5 class="card-header">
|
|
84
83
|
[[user:info.latest-flags]]
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<div class="account">
|
|
2
2
|
<!-- IMPORT partials/account/header.tpl -->
|
|
3
3
|
|
|
4
|
-
<div class="
|
|
4
|
+
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
<div class="
|
|
7
|
-
<div class="d-flex justify-content-between align-items-center mb-3">
|
|
6
|
+
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
|
+
<div class="d-flex flex-wrap justify-content-between align-items-center gap-2 mb-3">
|
|
8
8
|
<h3 class="fw-semibold fs-5 mb-0">[[global:posts]]</h3>
|
|
9
|
-
<div class="d-flex gap-1">
|
|
9
|
+
<div class="d-flex flex-wrap gap-1">
|
|
10
10
|
<a href="{config.relative_path}/user/{userslug}/posts" class="btn-ghost-sm fw-semibold {{{ if template.account/posts }}}active{{{ end }}}">[[global:header.recent]]</a>
|
|
11
11
|
{{{ if !reputation:disabled }}}
|
|
12
12
|
<a href="{config.relative_path}/user/{userslug}/best"class="btn-ghost-sm fw-semibold {{{ if template.account/best }}}active{{{ end }}}">[[global:best]]</a>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<div class="account mx-auto">
|
|
2
2
|
<!-- IMPORT partials/account/header.tpl -->
|
|
3
3
|
|
|
4
|
-
<div class="
|
|
4
|
+
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
6
|
|
|
7
|
-
<div class="
|
|
7
|
+
<div class="flex-1 ps-md-2 ps-lg-5">
|
|
8
8
|
{{{ if aboutme }}}
|
|
9
9
|
<div component="aboutme" class="text-sm">
|
|
10
10
|
{aboutmeParsed}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
{{{ end }}}
|
|
13
13
|
|
|
14
14
|
<div class="account-stats container">
|
|
15
|
-
<div class="row row-cols-2 row-cols-
|
|
15
|
+
<div class="row row-cols-2 row-cols-xl-3 row-cols-xxl-4 g-2">
|
|
16
16
|
{{{ if !reputation:disabled }}}
|
|
17
17
|
<div class="stat">
|
|
18
18
|
<div class="align-items-center justify-content-center card card-header px-0 py-3 border-0 rounded-1 h-100">
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
|
|
32
32
|
<div class="stat">
|
|
33
33
|
<div class="align-items-center justify-content-center card card-header px-0 py-3 border-0 rounded-1 h-100 gap-2">
|
|
34
|
-
<span class="stat-label text-xs fw-semibold"><i class="text-muted fa-solid fa-
|
|
34
|
+
<span class="stat-label text-xs fw-semibold"><i class="text-muted fa-solid fa-user-plus"></i> <span>[[user:joined]]</span></span>
|
|
35
35
|
<span class="timeago fs-6 ff-secondary" title="{joindateISO}"></span>
|
|
36
36
|
</div>
|
|
37
37
|
</div>
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
<div class="stat">
|
|
40
40
|
<div class="align-items-center justify-content-center card card-header px-0 py-3 border-0 rounded-1 h-100 gap-2">
|
|
41
41
|
<span class="stat-label text-xs fw-semibold"><i class="text-muted fa-solid fa-clock"></i> <span>[[user:lastonline]]</span></span>
|
|
42
|
-
<span class="timeago fs-6 ff-secondary" title="{lastonlineISO}"></span>
|
|
42
|
+
<span class="timeago text-center text-break w-100 px-2 fs-6 ff-secondary" title="{lastonlineISO}"></span>
|
|
43
43
|
</div>
|
|
44
44
|
</div>
|
|
45
45
|
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
<div class="stat">
|
|
48
48
|
<div class="align-items-center justify-content-center card card-header px-0 py-3 border-0 rounded-1 h-100 gap-2">
|
|
49
49
|
<span class="stat-label text-xs fw-semibold"><i class="text-muted fa-solid fa-envelope"></i> <span>[[user:email]]</span> {{{ if emailHidden}}}<span class="text-lowercase">([[global:hidden]])</span>{{{ end }}}</span>
|
|
50
|
-
<span class="text-sm text-break ff-secondary">{email}</span>
|
|
50
|
+
<span class="text-sm text-center text-break w-100 px-2 ff-secondary">{email}</span>
|
|
51
51
|
</div>
|
|
52
52
|
</div>
|
|
53
53
|
{{{ end }}}
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
<div class="stat">
|
|
57
57
|
<div class="align-items-center justify-content-center card card-header px-0 py-3 border-0 rounded-1 h-100 gap-2">
|
|
58
58
|
<span class="stat-label text-xs fw-semibold"><i class="text-muted fa-solid fa-globe"></i> <span>[[user:website]]</span></span>
|
|
59
|
-
<a class="text-sm text-break ff-secondary text-underline text-reset" href="{websiteLink}" rel="nofollow noopener noreferrer">{websiteName}</a>
|
|
59
|
+
<a class="text-sm text-center text-break w-100 px-2 ff-secondary text-underline text-reset" href="{websiteLink}" rel="nofollow noopener noreferrer">{websiteName}</a>
|
|
60
60
|
</div>
|
|
61
61
|
</div>
|
|
62
62
|
{{{ end }}}
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
<div class="stat">
|
|
66
66
|
<div class="align-items-center justify-content-center card card-header px-0 py-3 border-0 rounded-1 h-100 gap-2">
|
|
67
67
|
<span class="stat-label text-xs fw-semibold"><i class="text-muted fa-solid fa-map-pin"></i> <span>[[user:location]]</span></span>
|
|
68
|
-
<span class="fs-6 ff-secondary">{location}</span>
|
|
68
|
+
<span class="text-center text-break w-100 px-2 fs-6 ff-secondary">{location}</span>
|
|
69
69
|
</div>
|
|
70
70
|
</div>
|
|
71
71
|
{{{ end }}}
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
{{{ if age }}}
|
|
74
74
|
<div class="stat">
|
|
75
75
|
<div class="align-items-center justify-content-center card card-header px-0 py-3 border-0 rounded-1 h-100 gap-2">
|
|
76
|
-
<span class="stat-label text-xs fw-semibold"><span>[[user:age]]</span></span>
|
|
76
|
+
<span class="stat-label text-xs fw-semibold"><span><i class="text-muted fa-solid fa-cake-candles"></i> [[user:age]]</span></span>
|
|
77
77
|
<span class="fs-6 ff-secondary">{age}</span>
|
|
78
78
|
</div>
|
|
79
79
|
</div>
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
<div class="account">
|
|
2
2
|
<!-- IMPORT partials/account/header.tpl -->
|
|
3
3
|
|
|
4
|
-
<div class="
|
|
4
|
+
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
|
|
7
|
-
<div class="col-12 col-md-9 col-lg-10 ps-md-5">
|
|
6
|
+
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
8
7
|
<p class="lead">[[user:sessions.description]]</p>
|
|
9
8
|
<hr />
|
|
10
9
|
<ul class="list-group" component="user/sessions">
|
|
@@ -1,212 +1,196 @@
|
|
|
1
1
|
<div class="account">
|
|
2
2
|
<!-- IMPORT partials/account/header.tpl -->
|
|
3
3
|
|
|
4
|
-
<div class="
|
|
4
|
+
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
|
+
<div class="mb-3 d-flex justify-content-between">
|
|
8
|
+
<h3 class="fw-semibold fs-5">{{{ if isSelf }}}[[pages:account/settings]]{{{ else }}}[[pages:account/settings-of, {username}]]{{{ end }}}</h3>
|
|
9
9
|
<button id="submitBtn" class="btn btn-primary">[[global:save_changes]]</button>
|
|
10
10
|
</div>
|
|
11
11
|
<div class="row">
|
|
12
12
|
<div class="col-12 col-md-6">
|
|
13
|
-
|
|
14
|
-
<
|
|
15
|
-
<div class="
|
|
16
|
-
<select class="form-select" id="bootswatchSkin" data-property="bootswatchSkin">
|
|
13
|
+
{{{ if !disableCustomUserSkins }}}
|
|
14
|
+
<h6 class="fw-bold">[[user:select-skin]]</h6>
|
|
15
|
+
<div class="">
|
|
16
|
+
<select class="form-select form-select-sm" id="bootswatchSkin" data-property="bootswatchSkin">
|
|
17
17
|
{{{each bootswatchSkinOptions}}}
|
|
18
|
-
<option value="{bootswatchSkinOptions.value}"
|
|
18
|
+
<option value="{bootswatchSkinOptions.value}" {{{ if bootswatchSkinOptions.selected }}}selected{{{ end }}}>{bootswatchSkinOptions.name}</option>
|
|
19
19
|
{{{end}}}
|
|
20
20
|
</select>
|
|
21
21
|
</div>
|
|
22
|
-
|
|
22
|
+
<hr/>
|
|
23
|
+
{{{ end }}}
|
|
23
24
|
|
|
24
|
-
|
|
25
|
-
<
|
|
26
|
-
<div class="
|
|
25
|
+
{{{ if allowUserHomePage }}}
|
|
26
|
+
<h6 class="fw-bold">[[user:select-homepage]]</h6>
|
|
27
|
+
<div class="">
|
|
27
28
|
<div class="mb-2">
|
|
28
|
-
<
|
|
29
|
-
<select class="form-select" id="homePageRoute" data-property="homePageRoute">
|
|
29
|
+
<select class="form-select form-select-sm" id="homePageRoute" data-property="homePageRoute">
|
|
30
30
|
<option value="none">None</option>
|
|
31
31
|
{{{each homePageRoutes}}}
|
|
32
32
|
<option value="{homePageRoutes.route}" <!-- IF homePageRoutes.selected -->selected="1"<!-- ENDIF homePageRoutes.selected -->>{homePageRoutes.name}</option>
|
|
33
33
|
{{{end}}}
|
|
34
34
|
</select>
|
|
35
|
-
<p class="form-text">[[user:homepage_description]]</p>
|
|
35
|
+
<p class="form-text text-xs">[[user:homepage_description]]</p>
|
|
36
36
|
</div>
|
|
37
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>
|
|
38
|
+
<label class="form-label" for="homePageCustom">[[user:custom_route]]</label>
|
|
39
|
+
<input type="text" class="form-control form-control-sm" data-property="homePageCustom" id="homePageCustom" value="{settings.homePageRoute}"/>
|
|
40
|
+
<p class="form-text text-xs">[[user:custom_route_help]]</p>
|
|
41
41
|
</div>
|
|
42
42
|
</div>
|
|
43
|
-
|
|
43
|
+
<hr/>
|
|
44
|
+
{{{ end }}}
|
|
44
45
|
|
|
45
|
-
<
|
|
46
|
-
<div class="
|
|
47
|
-
|
|
46
|
+
<h6 class="fw-bold">[[global:privacy]]</h6>
|
|
47
|
+
<div class="">
|
|
48
|
+
{{{ if !hideEmail }}}
|
|
48
49
|
<div class="form-check">
|
|
49
|
-
<input class="form-check-input" type="checkbox" data-property="showemail"
|
|
50
|
-
<
|
|
51
|
-
<label class="form-check-label">[[user:show_email]]</label>
|
|
52
|
-
</strong>
|
|
50
|
+
<input class="form-check-input" type="checkbox" data-property="showemail" {{{ if settings.showemail }}}checked {{{ end }}}/>
|
|
51
|
+
<label class="form-check-label text-sm">[[user:show_email]]</label>
|
|
53
52
|
</div>
|
|
54
|
-
|
|
53
|
+
{{{ end }}}
|
|
55
54
|
|
|
56
|
-
|
|
55
|
+
{{{ if !hideFullname }}}
|
|
57
56
|
<div class="form-check">
|
|
58
|
-
<input class="form-check-input" type="checkbox" data-property="showfullname"
|
|
59
|
-
<
|
|
60
|
-
<label class="form-check-label">[[user:show_fullname]]</label>
|
|
61
|
-
</strong>
|
|
57
|
+
<input class="form-check-input" type="checkbox" data-property="showfullname" {{{ if settings.showfullname }}}checked{{{ end }}}/>
|
|
58
|
+
<label class="form-check-label text-sm">[[user:show_fullname]]</label>
|
|
62
59
|
</div>
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
{{{ end }}}
|
|
61
|
+
{{{ if !config.disableChat }}}
|
|
65
62
|
<div class="form-check">
|
|
66
|
-
<input class="form-check-input" type="checkbox" data-property="restrictChat"
|
|
67
|
-
<
|
|
68
|
-
<label class="form-check-label">[[user:restrict_chats]]</label>
|
|
69
|
-
</strong>
|
|
63
|
+
<input class="form-check-input" type="checkbox" data-property="restrictChat" {{{ if settings.restrictChat }}}checked{{{ end }}}/>
|
|
64
|
+
<label class="form-check-label text-sm">[[user:restrict_chats]]</label>
|
|
70
65
|
</div>
|
|
71
|
-
|
|
66
|
+
{{{ end }}}
|
|
72
67
|
</div>
|
|
68
|
+
<hr/>
|
|
73
69
|
|
|
74
|
-
<
|
|
75
|
-
<div class="
|
|
70
|
+
<h6 class="fw-bold">[[user:browsing]]</h6>
|
|
71
|
+
<div class="">
|
|
76
72
|
<div class="form-check">
|
|
77
|
-
<input class="form-check-input" type="checkbox" data-property="openOutgoingLinksInNewTab"
|
|
78
|
-
<
|
|
79
|
-
<label class="form-check-label">[[user:open_links_in_new_tab]]</label>
|
|
80
|
-
</strong>
|
|
73
|
+
<input class="form-check-input" type="checkbox" data-property="openOutgoingLinksInNewTab" {{{ if settings.openOutgoingLinksInNewTab }}}checked{{{ end }}}/>
|
|
74
|
+
<label class="form-check-label">[[user:open_links_in_new_tab]]</label>
|
|
81
75
|
</div>
|
|
82
|
-
|
|
76
|
+
{{{ if inTopicSearchAvailable }}}
|
|
83
77
|
<div class="form-check">
|
|
84
|
-
<input class="form-check-input" type="checkbox" data-property="topicSearchEnabled"
|
|
85
|
-
<
|
|
86
|
-
<label class="form-check-label">[[user:enable_topic_searching]]</label>
|
|
87
|
-
</strong>
|
|
78
|
+
<input class="form-check-input" type="checkbox" data-property="topicSearchEnabled" {{{ if settings.topicSearchEnabled }}}checked{{{ end }}}/>
|
|
79
|
+
<label class="form-check-label">[[user:enable_topic_searching]]</label>
|
|
88
80
|
</div>
|
|
89
|
-
<p class="form-text">[[user:topic_search_help]]</p>
|
|
90
|
-
|
|
81
|
+
<p class="form-text text-xs">[[user:topic_search_help]]</p>
|
|
82
|
+
{{{ end }}}
|
|
83
|
+
|
|
91
84
|
<div class="form-check">
|
|
92
85
|
<input class="form-check-input" type="checkbox" data-property="updateUrlWithPostIndex" {{{ if settings.updateUrlWithPostIndex }}}checked{{{ end }}}/>
|
|
93
|
-
<
|
|
94
|
-
<label class="form-check-label">[[user:update_url_with_post_index]]</label>
|
|
95
|
-
</strong>
|
|
86
|
+
<label class="form-check-label">[[user:update_url_with_post_index]]</label>
|
|
96
87
|
</div>
|
|
97
88
|
<div class="form-check">
|
|
98
|
-
<input class="form-check-input" type="checkbox" data-property="scrollToMyPost"
|
|
99
|
-
<
|
|
100
|
-
<label class="form-check-label">[[user:scroll_to_my_post]]</label>
|
|
101
|
-
</strong>
|
|
89
|
+
<input class="form-check-input" type="checkbox" data-property="scrollToMyPost" {{{ if settings.scrollToMyPost }}}checked{{{ end }}}/>
|
|
90
|
+
<label class="form-check-label">[[user:scroll_to_my_post]]</label>
|
|
102
91
|
</div>
|
|
103
92
|
</div>
|
|
93
|
+
<hr/>
|
|
104
94
|
|
|
105
|
-
<
|
|
106
|
-
<div class="
|
|
95
|
+
<h6 class="fw-bold">[[global:pagination]]</h6>
|
|
96
|
+
<div class="">
|
|
107
97
|
<div class="mb-2 form-check">
|
|
108
|
-
<input type="checkbox" class="form-check-input" data-property="usePagination"
|
|
98
|
+
<input type="checkbox" class="form-check-input" data-property="usePagination" {{{ if settings.usePagination }}}checked{{{ end }}}>
|
|
99
|
+
<label class="form-check-label">[[user:paginate_description]]</label>
|
|
109
100
|
</div>
|
|
110
|
-
<div class="mb-
|
|
111
|
-
<
|
|
112
|
-
<input type="text" class="form-control" data-property="topicsPerPage" value="{settings.topicsPerPage}">
|
|
101
|
+
<div class="mb-2">
|
|
102
|
+
<label class="form-label">[[user:topics_per_page]] ([[user:max_items_per_page, {maxTopicsPerPage}]])</label>
|
|
103
|
+
<input type="text" class="form-control form-control-sm" data-property="topicsPerPage" value="{settings.topicsPerPage}">
|
|
113
104
|
</div>
|
|
114
105
|
<div class="">
|
|
115
|
-
<
|
|
116
|
-
<input type="text" class="form-control" data-property="postsPerPage" value="{settings.postsPerPage}">
|
|
106
|
+
<label class="form-label">[[user:posts_per_page]] ([[user:max_items_per_page, {maxPostsPerPage}]])</label>
|
|
107
|
+
<input type="text" class="form-control form-control-sm" data-property="postsPerPage" value="{settings.postsPerPage}">
|
|
117
108
|
</div>
|
|
118
109
|
</div>
|
|
119
110
|
|
|
120
|
-
|
|
121
|
-
<
|
|
122
|
-
<
|
|
111
|
+
{{{ if !disableEmailSubscriptions }}}
|
|
112
|
+
<hr/>
|
|
113
|
+
<h6 class="fw-bold">[[global:email]]</h6>
|
|
114
|
+
<div class="">
|
|
123
115
|
<div class="mb-2">
|
|
124
|
-
<label for="dailyDigestFreq">[[user:digest_label]]</label>
|
|
125
|
-
<select class="form-select" id="dailyDigestFreq" data-property="dailyDigestFreq" autocomplete="off">
|
|
116
|
+
<label class="form-label" for="dailyDigestFreq">[[user:digest_label]]</label>
|
|
117
|
+
<select class="form-select form-select-sm" id="dailyDigestFreq" data-property="dailyDigestFreq" autocomplete="off">
|
|
126
118
|
{{{each dailyDigestFreqOptions}}}
|
|
127
|
-
<option value="{
|
|
119
|
+
<option value="{./value}" {{{ if ./selected }}}selected="1"{{{ end }}}>{./name}</option>
|
|
128
120
|
{{{end}}}
|
|
129
121
|
</select>
|
|
130
|
-
<p class="form-text">[[user:digest_description]]</p>
|
|
122
|
+
<p class="form-text text-xs">[[user:digest_description]]</p>
|
|
131
123
|
</div>
|
|
132
124
|
</div>
|
|
133
|
-
|
|
125
|
+
{{{ end }}}
|
|
134
126
|
|
|
135
|
-
{{{each customSettings}}}
|
|
136
|
-
<
|
|
137
|
-
<
|
|
138
|
-
|
|
127
|
+
{{{ each customSettings}}}
|
|
128
|
+
<hr/>
|
|
129
|
+
<h6 class="fw-bold">{./title}</h6>
|
|
130
|
+
<div class="">
|
|
131
|
+
{./content}
|
|
139
132
|
</div>
|
|
140
|
-
{{{end}}}
|
|
141
133
|
|
|
134
|
+
{{{end}}}
|
|
135
|
+
<hr class="d-block d-md-none"/>
|
|
142
136
|
</div>
|
|
143
137
|
|
|
144
138
|
<div class="col-12 col-md-6">
|
|
145
|
-
<
|
|
146
|
-
<div class="
|
|
147
|
-
<
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
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 -->
|
|
139
|
+
<h6 class="fw-bold">[[global:language]]</h6>
|
|
140
|
+
<div class="">
|
|
141
|
+
<select data-property="userLang" class="form-select form-select-sm mb-2">
|
|
142
|
+
{{{each languages}}}
|
|
143
|
+
<option value="{./code}" {{{ if ./selected }}}selected{{{ end }}}>{./name} ({./code})</option>
|
|
144
|
+
{{{end}}}
|
|
145
|
+
</select>
|
|
170
146
|
</div>
|
|
147
|
+
<hr/>
|
|
148
|
+
{{{ if (isAdmin && isSelf) }}}
|
|
149
|
+
<h6 class="fw-bold">[[user:acp_language]]</h6>
|
|
150
|
+
<div class="">
|
|
151
|
+
<select data-property="acpLang" class="form-select form-select-sm">
|
|
152
|
+
{{{each acpLanguages}}}
|
|
153
|
+
<option value="{./code}" {{{ if ./selected }}}selected{{{ end }}}>{./name} ({./code})</option>
|
|
154
|
+
{{{end}}}
|
|
155
|
+
</select>
|
|
156
|
+
</div>
|
|
157
|
+
<hr/>
|
|
158
|
+
{{{ end }}}
|
|
171
159
|
|
|
172
|
-
<
|
|
173
|
-
<div class="
|
|
160
|
+
<h6 class="fw-bold">[[topic:watch]]</h6>
|
|
161
|
+
<div class="">
|
|
174
162
|
<div class="form-check">
|
|
175
|
-
<input class="form-check-input" type="checkbox" data-property="followTopicsOnCreate"
|
|
176
|
-
<
|
|
177
|
-
<label class="form-check-label">[[user:follow_topics_you_create]]</label>
|
|
178
|
-
</strong>
|
|
163
|
+
<input class="form-check-input" type="checkbox" data-property="followTopicsOnCreate" {{{ if settings.followTopicsOnCreate }}}checked{{{ end }}}/>
|
|
164
|
+
<label class="form-check-label">[[user:follow_topics_you_create]]</label>
|
|
179
165
|
</div>
|
|
180
166
|
<div class="form-check">
|
|
181
|
-
<input class="form-check-input" type="checkbox" data-property="followTopicsOnReply"
|
|
182
|
-
|
|
183
|
-
<label class="form-check-label">[[user:follow_topics_you_reply_to]]</label>
|
|
184
|
-
</strong>
|
|
167
|
+
<input class="form-check-input" type="checkbox" data-property="followTopicsOnReply" {{{ if settings.followTopicsOnReply }}}checked{{{ end }}}/>
|
|
168
|
+
<label class="form-check-label">[[user:follow_topics_you_reply_to]]</label>
|
|
185
169
|
</div>
|
|
186
170
|
<div class="mb-2">
|
|
187
|
-
<label>[[user:default-category-watch-state]]</label>
|
|
188
|
-
<select class="form-select" data-property="categoryWatchState">
|
|
189
|
-
<option value="watching"
|
|
190
|
-
<option value="notwatching"
|
|
191
|
-
<option value="ignoring"
|
|
171
|
+
<label class="form-label">[[user:default-category-watch-state]]</label>
|
|
172
|
+
<select class="form-select form-select-sm" data-property="categoryWatchState">
|
|
173
|
+
<option value="watching" {{{ if categoryWatchState.watching }}}selected{{{ end }}}>[[category:watching]]</option>
|
|
174
|
+
<option value="notwatching" {{{ if categoryWatchState.notwatching }}}selected{{{ end }}}>[[category:not-watching]]</option>
|
|
175
|
+
<option value="ignoring" {{{ if categoryWatchState.ignoring }}}selected{{{ end }}}>[[category:ignoring]]</option>
|
|
192
176
|
</select>
|
|
193
177
|
</div>
|
|
194
178
|
</div>
|
|
179
|
+
<hr/>
|
|
195
180
|
|
|
196
|
-
|
|
197
|
-
<
|
|
198
|
-
<div class="card card-body mb-3">
|
|
181
|
+
<h6 class="fw-bold">[[user:notifications]]</h6>
|
|
182
|
+
<div class="">
|
|
199
183
|
{{{each notificationSettings}}}
|
|
200
184
|
<div class="row mb-3">
|
|
201
185
|
<div class="col-7">
|
|
202
|
-
<label>{
|
|
186
|
+
<label class="text-sm">{./label}</label>
|
|
203
187
|
</div>
|
|
204
188
|
<div class="mb-2 col-5">
|
|
205
|
-
<select class="form-select" data-property="{
|
|
206
|
-
<option value="none"
|
|
207
|
-
<option value="notification"
|
|
208
|
-
<option value="email"
|
|
209
|
-
<option value="notificationemail"
|
|
189
|
+
<select class="form-select form-select-sm" data-property="{./name}">
|
|
190
|
+
<option value="none" {{{ if ./none }}}selected{{{ end }}}>[[notifications:none]]</option>
|
|
191
|
+
<option value="notification" {{{ if ./notification }}}selected{{{ end }}}>[[notifications:notification_only]]</option>
|
|
192
|
+
<option value="email" {{{ if ./email }}}selected{{{ end }}}>[[notifications:email_only]]</option>
|
|
193
|
+
<option value="notificationemail" {{{ if ./notificationemail }}}selected{{{ end }}}>[[notifications:notification_and_email]]</option>
|
|
210
194
|
</select>
|
|
211
195
|
</div>
|
|
212
196
|
</div>
|
|
@@ -214,13 +198,13 @@
|
|
|
214
198
|
|
|
215
199
|
<div class="row">
|
|
216
200
|
<div class="col-7">
|
|
217
|
-
<label for="upvote-notif-freq">[[user:upvote-notif-freq]]</label>
|
|
201
|
+
<label class="text-sm" for="upvote-notif-freq">[[user:upvote-notif-freq]]</label>
|
|
218
202
|
</div>
|
|
219
203
|
<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="{
|
|
223
|
-
[[user:upvote-notif-freq.{
|
|
204
|
+
<select class="form-select form-select-sm" id="upvote-notif-freq" name="upvote-notif-freq" data-property="upvoteNotifFreq">
|
|
205
|
+
{{{ each upvoteNotifFreq }}}
|
|
206
|
+
<option value="{./name}" {{{ if ./selected }}}selected{{{ end }}}>
|
|
207
|
+
[[user:upvote-notif-freq.{./name}]]
|
|
224
208
|
</option>
|
|
225
209
|
{{{end}}}
|
|
226
210
|
</select>
|
|
@@ -229,7 +213,6 @@
|
|
|
229
213
|
</div>
|
|
230
214
|
</div>
|
|
231
215
|
</div>
|
|
232
|
-
|
|
233
216
|
</div>
|
|
234
217
|
</div>
|
|
235
218
|
</div>
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
<div class="account">
|
|
2
2
|
<!-- IMPORT partials/account/header.tpl -->
|
|
3
3
|
|
|
4
|
-
<div class="
|
|
4
|
+
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
+
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
|
+
<div class="mb-3 d-flex justify-content-between">
|
|
8
|
+
<h3 class="fw-semibold fs-5">[[harmony:settings.title]]</h3>
|
|
6
9
|
|
|
7
|
-
|
|
8
|
-
|
|
10
|
+
<button id="save" type="button" class="btn btn-primary">[[global:save_changes]]</button>
|
|
11
|
+
</div>
|
|
9
12
|
|
|
10
13
|
<form id="theme-settings" role="form">
|
|
11
14
|
<div class="form-check mb-2">
|
|
@@ -23,7 +26,7 @@
|
|
|
23
26
|
<label class="form-check-label">[[harmony:settings.stickyToolbar]]</label>
|
|
24
27
|
</div>
|
|
25
28
|
|
|
26
|
-
|
|
29
|
+
|
|
27
30
|
</form>
|
|
28
31
|
</div>
|
|
29
32
|
</div>
|
|
@@ -1,32 +1,33 @@
|
|
|
1
1
|
<div class="account">
|
|
2
2
|
<!-- IMPORT partials/account/header.tpl -->
|
|
3
3
|
|
|
4
|
-
<div class="
|
|
4
|
+
<div class="d-flex flex-column flex-md-row">
|
|
5
5
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
<div class="
|
|
6
|
+
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<div class="d-flex justify-content-between align-items-center mb-3">
|
|
8
|
-
<h3 class="fw-semibold fs-5 mb-0">[[global:topics]]</h3>
|
|
9
8
|
<div class="d-flex gap-1">
|
|
10
|
-
<
|
|
9
|
+
<h3 class="fw-semibold fs-5 mb-0">[[global:topics]]</h3>
|
|
10
|
+
{{{ if showSort }}}
|
|
11
|
+
<div class="btn-group bottom-sheet" component="thread/sort">
|
|
12
|
+
<button title="[[global:sort]]" class="btn-ghost-sm dropdown-toggle" data-bs-toggle="dropdown" type="button"><i class="fa-solid fa-arrow-up-wide-short"></i></button>
|
|
13
|
+
<ul class="dropdown-menu">
|
|
14
|
+
{{{each sortOptions }}}
|
|
15
|
+
<li><a class="dropdown-item" href="{config.relative_path}{./url}"><i class="fa fa-fw {{{if ./selected}}}fa-check{{{end}}}"></i>{./name}</a></li>
|
|
16
|
+
{{{end}}}
|
|
17
|
+
</ul>
|
|
18
|
+
</div>
|
|
19
|
+
{{{ end }}}
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
<div class="d-flex gap-1">
|
|
11
23
|
{{{ if canEdit }}}
|
|
24
|
+
<a href="{config.relative_path}/user/{userslug}/topics" class="btn-ghost-sm fw-semibold {{{ if template.account/topics }}}active{{{ end }}}">[[global:header.recent]]</a>
|
|
12
25
|
<a href="{config.relative_path}/user/{userslug}/watched"class="btn-ghost-sm fw-semibold {{{ if template.account/watched }}}active{{{ end }}}">[[user:watched]]</a>
|
|
13
26
|
<a href="{config.relative_path}/user/{userslug}/ignored" class="btn-ghost-sm fw-semibold {{{ if template.account/ignored }}}active{{{ end }}}">[[user:ignored]]</a>
|
|
14
27
|
{{{ end }}}
|
|
15
28
|
</div>
|
|
16
29
|
</div>
|
|
17
30
|
|
|
18
|
-
{{{ if showSort }}}
|
|
19
|
-
<div class="btn-toolbar justify-content-end mb-2">
|
|
20
|
-
<div class="btn-group bottom-sheet" component="thread/sort">
|
|
21
|
-
<button class="btn-ghost-sm dropdown-toggle" data-bs-toggle="dropdown" type="button"><span>[[topic:sort_by]]</span></button>
|
|
22
|
-
<ul class="dropdown-menu dropdown-menu-end">
|
|
23
|
-
{{{each sortOptions }}}
|
|
24
|
-
<li><a class="dropdown-item" href="{config.relative_path}{sortOptions.url}"><i class="fa fa-fw {{{if sortOptions.selected}}}fa-check{{{end}}}"></i>{sortOptions.name}</a></li>
|
|
25
|
-
{{{end}}}
|
|
26
|
-
</ul>
|
|
27
|
-
</div>
|
|
28
|
-
</div>
|
|
29
|
-
{{{ end }}}
|
|
30
31
|
|
|
31
32
|
{{{ if !topics.length }}}
|
|
32
33
|
<div class="alert alert-warning text-center">{noItemsFoundKey}</div>
|