nodebb-theme-harmony 1.0.0-beta.30 → 1.0.0-beta.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/templates/account/blocks.tpl +35 -41
- package/templates/account/categories.tpl +23 -29
- package/templates/account/consent.tpl +61 -67
- package/templates/account/edit/password.tpl +25 -30
- package/templates/account/edit/username.tpl +21 -26
- package/templates/account/edit.tpl +109 -116
- package/templates/account/followers.tpl +12 -19
- package/templates/account/following.tpl +12 -18
- package/templates/account/groups.tpl +12 -17
- package/templates/account/info.tpl +182 -188
- package/templates/account/posts.tpl +31 -36
- package/templates/account/profile.tpl +66 -73
- package/templates/account/sessions.tpl +8 -13
- package/templates/account/settings.tpl +193 -198
- package/templates/account/theme.tpl +20 -27
- package/templates/account/topics.tpl +33 -38
- package/templates/account/uploads.tpl +35 -40
- package/templates/partials/account/footer.tpl +3 -0
- package/templates/partials/account/header.tpl +78 -74
- package/templates/partials/tags_list.tpl +1 -1
|
@@ -1,132 +1,125 @@
|
|
|
1
|
-
|
|
2
|
-
<!-- IMPORT partials/account/header.tpl -->
|
|
1
|
+
<!-- IMPORT partials/account/header.tpl -->
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
<div class="d-flex justify-content-between mb-3">
|
|
4
|
+
<h3 class="fw-semibold fs-5">{{{ if isSelf }}}[[user:edit-profile]]{{{ else }}}[[pages:account/edit, {username}]]{{{ end }}}</h3>
|
|
5
|
+
<button id="submitBtn" class="btn btn-primary">[[global:save_changes]]</button>
|
|
6
|
+
</div>
|
|
7
|
+
<div class="row">
|
|
8
|
+
<div class="col-xl-6 col-12">
|
|
9
|
+
<form role="form" component="profile/edit/form">
|
|
10
|
+
<div class="mb-2">
|
|
11
|
+
<label class="form-label fw-bold" for="fullname">[[user:fullname]]</label>
|
|
12
|
+
<input class="form-control" type="text" id="fullname" name="fullname" placeholder="[[user:fullname]]" value="{fullname}">
|
|
10
13
|
</div>
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
</div>
|
|
18
|
-
<!-- IF allowWebsite -->
|
|
19
|
-
<div class="mb-2">
|
|
20
|
-
<label class="form-label fw-bold" for="website">[[user:website]]</label>
|
|
21
|
-
<input class="form-control" type="text" id="website" name="website" placeholder="http://..." value="{website}">
|
|
22
|
-
</div>
|
|
23
|
-
<!-- ENDIF allowWebsite -->
|
|
24
|
-
|
|
25
|
-
<div class="mb-2">
|
|
26
|
-
<label class="form-label fw-bold" for="location">[[user:location]]</label>
|
|
27
|
-
<input class="form-control" type="text" id="location" name="location" placeholder="[[user:location]]" value="{location}">
|
|
28
|
-
</div>
|
|
29
|
-
|
|
30
|
-
<div class="mb-2">
|
|
31
|
-
<label class="form-label fw-bold" for="birthday">[[user:birthday]]</label>
|
|
32
|
-
<input class="form-control" type="date" id="birthday" name="birthday" value="{birthday}" placeholder="mm/dd/yyyy">
|
|
33
|
-
</div>
|
|
14
|
+
<!-- IF allowWebsite -->
|
|
15
|
+
<div class="mb-2">
|
|
16
|
+
<label class="form-label fw-bold" for="website">[[user:website]]</label>
|
|
17
|
+
<input class="form-control" type="text" id="website" name="website" placeholder="http://..." value="{website}">
|
|
18
|
+
</div>
|
|
19
|
+
<!-- ENDIF allowWebsite -->
|
|
34
20
|
|
|
35
|
-
|
|
36
|
-
|
|
21
|
+
<div class="mb-2">
|
|
22
|
+
<label class="form-label fw-bold" for="location">[[user:location]]</label>
|
|
23
|
+
<input class="form-control" type="text" id="location" name="location" placeholder="[[user:location]]" value="{location}">
|
|
24
|
+
</div>
|
|
37
25
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
<option value="{groups.displayName}" <!-- IF groups.selected -->selected<!-- ENDIF groups.selected -->>{groups.userTitle}</option>
|
|
43
|
-
<!-- ENDIF groups.userTitleEnabled -->
|
|
44
|
-
{{{end}}}
|
|
45
|
-
</select>
|
|
46
|
-
<!-- IF allowMultipleBadges -->
|
|
47
|
-
<div class="d-none d-md-block">
|
|
48
|
-
<span class="form-text">[[user:group-order-help]]</span>
|
|
49
|
-
<i role="button" component="group/order/up" class="fa fa-chevron-up"></i> <i role="button" component="group/order/down" class="fa fa-chevron-down"></i>
|
|
50
|
-
</div>
|
|
51
|
-
<!-- ENDIF -->
|
|
52
|
-
</div>
|
|
26
|
+
<div class="mb-2">
|
|
27
|
+
<label class="form-label fw-bold" for="birthday">[[user:birthday]]</label>
|
|
28
|
+
<input class="form-control" type="date" id="birthday" name="birthday" value="{birthday}" placeholder="mm/dd/yyyy">
|
|
29
|
+
</div>
|
|
53
30
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
<label class="form-label fw-bold" for="aboutme">[[user:aboutme]]</label> <small><label id="aboutMeCharCountLeft"></label></small>
|
|
57
|
-
<textarea class="form-control" id="aboutme" name="aboutme" rows="5">{aboutme}</textarea>
|
|
58
|
-
</div>
|
|
59
|
-
<!-- ENDIF allowAboutMe -->
|
|
31
|
+
<div class="mb-2">
|
|
32
|
+
<label class="form-label fw-bold" for="groupTitle">[[user:grouptitle]]</label>
|
|
60
33
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
34
|
+
<select class="form-select mb-1" id="groupTitle" name="groupTitle" <!-- IF allowMultipleBadges --> size="{groupSelectSize}" multiple<!-- ENDIF allowMultipleBadges -->>
|
|
35
|
+
<option value="">[[user:no-group-title]]</option>
|
|
36
|
+
{{{each groups}}}
|
|
37
|
+
<!-- IF groups.userTitleEnabled -->
|
|
38
|
+
<option value="{groups.displayName}" <!-- IF groups.selected -->selected<!-- ENDIF groups.selected -->>{groups.userTitle}</option>
|
|
39
|
+
<!-- ENDIF groups.userTitleEnabled -->
|
|
40
|
+
{{{end}}}
|
|
41
|
+
</select>
|
|
42
|
+
<!-- IF allowMultipleBadges -->
|
|
43
|
+
<div class="d-none d-md-block">
|
|
44
|
+
<span class="form-text">[[user:group-order-help]]</span>
|
|
45
|
+
<i role="button" component="group/order/up" class="fa fa-chevron-up"></i> <i role="button" component="group/order/down" class="fa fa-chevron-down"></i>
|
|
71
46
|
</div>
|
|
47
|
+
<!-- ENDIF -->
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
<!-- IF allowAboutMe -->
|
|
51
|
+
<div class="mb-2">
|
|
52
|
+
<label class="form-label fw-bold" for="aboutme">[[user:aboutme]]</label> <small><label id="aboutMeCharCountLeft"></label></small>
|
|
53
|
+
<textarea class="form-control" id="aboutme" name="aboutme" rows="5">{aboutme}</textarea>
|
|
54
|
+
</div>
|
|
55
|
+
<!-- ENDIF allowAboutMe -->
|
|
72
56
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
<!-- ENDIF !email:disableEdit -->
|
|
85
|
-
<!-- IF canChangePassword -->
|
|
86
|
-
<a href="{config.relative_path}/user/{userslug}/edit/password" class="list-group-item px-1 text-decoration-none">[[user:change_password]]</a>
|
|
87
|
-
<!-- ENDIF canChangePassword -->
|
|
88
|
-
{{{each editButtons}}}
|
|
89
|
-
<a href="{config.relative_path}{editButtons.link}" class="list-group-item px-1 text-decoration-none">{editButtons.text}</a>
|
|
90
|
-
{{{end}}}
|
|
91
|
-
</ul>
|
|
57
|
+
<!-- IF allowSignature -->
|
|
58
|
+
<!-- IF !disableSignatures -->
|
|
59
|
+
<div class="mb-2">
|
|
60
|
+
<label class="form-label fw-bold" for="signature">[[user:signature]]</label> <small><label id="signatureCharCountLeft"></label></small>
|
|
61
|
+
<textarea class="form-control" id="signature" name="signature" rows="5">{signature}</textarea>
|
|
62
|
+
</div>
|
|
63
|
+
<!-- ENDIF !disableSignatures -->
|
|
64
|
+
<!-- ENDIF allowSignature -->
|
|
65
|
+
</form>
|
|
66
|
+
<hr class="visible-xs visible-sm"/>
|
|
67
|
+
</div>
|
|
92
68
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
69
|
+
<div class="col-xl-6 col-12">
|
|
70
|
+
<div class="text-center">
|
|
71
|
+
<ul class="list-group mb-3 text-sm text-nowrap">
|
|
72
|
+
<!-- IF allowProfilePicture -->
|
|
73
|
+
<a component="profile/change/picture" href="#" class="list-group-item px-1 text-decoration-none">[[user:change_picture]]</a>
|
|
74
|
+
<!-- ENDIF allowProfilePicture -->
|
|
75
|
+
<!-- IF !username:disableEdit -->
|
|
76
|
+
<a href="{config.relative_path}/user/{userslug}/edit/username" class="list-group-item px-1 text-decoration-none">[[user:change_username]]</a>
|
|
77
|
+
<!-- ENDIF !username:disableEdit -->
|
|
78
|
+
<!-- IF !email:disableEdit -->
|
|
79
|
+
<a href="{config.relative_path}/user/{userslug}/edit/email" class="list-group-item px-1 text-decoration-none">[[user:change_email]]</a>
|
|
80
|
+
<!-- ENDIF !email:disableEdit -->
|
|
81
|
+
<!-- IF canChangePassword -->
|
|
82
|
+
<a href="{config.relative_path}/user/{userslug}/edit/password" class="list-group-item px-1 text-decoration-none">[[user:change_password]]</a>
|
|
83
|
+
<!-- ENDIF canChangePassword -->
|
|
84
|
+
{{{each editButtons}}}
|
|
85
|
+
<a href="{config.relative_path}{editButtons.link}" class="list-group-item px-1 text-decoration-none">{editButtons.text}</a>
|
|
86
|
+
{{{end}}}
|
|
87
|
+
</ul>
|
|
101
88
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
{../name}
|
|
111
|
-
</a>
|
|
112
|
-
<!-- IF ../deauthUrl -->
|
|
113
|
-
<a data-component="{../component}" class="btn btn-outline-secondary btn-sm" href="{../deauthUrl}">[[user:sso.dissociate]]</a>
|
|
114
|
-
<!-- END -->
|
|
115
|
-
</div>
|
|
116
|
-
{{{end}}}
|
|
117
|
-
</div>
|
|
118
|
-
{{{ end }}}
|
|
89
|
+
<!-- IF config.requireEmailConfirmation -->
|
|
90
|
+
<!-- IF email -->
|
|
91
|
+
<!-- IF isSelf -->
|
|
92
|
+
<a id="confirm-email" href="#" class="btn btn-warning <!-- IF email:confirmed -->hide<!-- ENDIF email:confirmed -->">[[user:confirm_email]]</a><br/><br/>
|
|
93
|
+
<!-- ENDIF isSelf -->
|
|
94
|
+
<!-- ENDIF email -->
|
|
95
|
+
<!-- ENDIF config.requireEmailConfirmation -->
|
|
96
|
+
</div>
|
|
119
97
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
98
|
+
{{{ if sso.length }}}
|
|
99
|
+
<label class="form-label text-sm fw-semibold">[[user:sso.title]]</label>
|
|
100
|
+
<div class="list-group">
|
|
101
|
+
{{{each sso}}}
|
|
102
|
+
<div class="list-group-item d-flex justify-content-between">
|
|
103
|
+
<a class="text-sm text-reset text-decoration-none" data-component="{../component}" href="{../url}" target="<!-- IF ../associated -->_blank<!-- ELSE -->_top<!-- ENDIF ../associated -->">
|
|
104
|
+
<!-- IF ../icon --><i class="fa {../icon}"></i><!-- ENDIF ../icon -->
|
|
105
|
+
<!-- IF ../associated -->[[user:sso.associated]]<!-- ELSE -->[[user:sso.not-associated]]<!-- ENDIF ../associated -->
|
|
106
|
+
{../name}
|
|
107
|
+
</a>
|
|
108
|
+
<!-- IF ../deauthUrl -->
|
|
109
|
+
<a data-component="{../component}" class="btn btn-outline-secondary btn-sm" href="{../deauthUrl}">[[user:sso.dissociate]]</a>
|
|
110
|
+
<!-- END -->
|
|
127
111
|
</div>
|
|
112
|
+
{{{end}}}
|
|
113
|
+
</div>
|
|
114
|
+
{{{ end }}}
|
|
115
|
+
|
|
116
|
+
<hr/>
|
|
117
|
+
{{{ if (allowAccountDelete && isSelf) }}}
|
|
118
|
+
<div class="d-flex justify-content-end">
|
|
119
|
+
<button id="deleteAccountBtn" class="btn btn-danger">[[user:delete_account]]</button>
|
|
128
120
|
</div>
|
|
121
|
+
{{{ end }}}
|
|
129
122
|
</div>
|
|
130
123
|
</div>
|
|
131
124
|
|
|
132
|
-
|
|
125
|
+
<!-- IMPORT partials/account/footer.tpl -->
|
|
@@ -1,22 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
<!-- IMPORT partials/account/header.tpl -->
|
|
2
|
+
<h3 class="fw-semibold fs-5">[[pages:{template.name}, {username}]]</h3>
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
<h3 class="fw-semibold fs-5">[[pages:{template.name}, {username}]]</h3>
|
|
4
|
+
{{{ if !users.length }}}
|
|
5
|
+
<div class="alert alert-warning text-center">[[user:has_no_follower]]</div>
|
|
6
|
+
{{{ end }}}
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
<div class="row row-cols-2 row-cols-lg-3 row-cols-xl-4 g-2">
|
|
9
|
+
{{{ each users }}}
|
|
10
|
+
<!-- IMPORT partials/users/item.tpl -->
|
|
11
|
+
{{{end}}}
|
|
12
|
+
</div>
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<!-- IMPORT partials/users/item.tpl -->
|
|
16
|
-
{{{end}}}
|
|
17
|
-
</div>
|
|
18
|
-
|
|
19
|
-
<!-- IMPORT partials/paginator.tpl -->
|
|
20
|
-
</div>
|
|
21
|
-
</div>
|
|
22
|
-
</div>
|
|
14
|
+
<!-- IMPORT partials/paginator.tpl -->
|
|
15
|
+
<!-- IMPORT partials/account/footer.tpl -->
|
|
@@ -1,22 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
<!-- IMPORT partials/account/header.tpl -->
|
|
1
|
+
<!-- IMPORT partials/account/header.tpl -->
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
|
-
<h3 class="fw-semibold fs-5">[[pages:{template.name}, {username}]]</h3>
|
|
3
|
+
<h3 class="fw-semibold fs-5">[[pages:{template.name}, {username}]]</h3>
|
|
8
4
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
{{{ if !users.length }}}
|
|
6
|
+
<div class="alert alert-warning text-center">[[user:follows_no_one]]</div>
|
|
7
|
+
{{{ end }}}
|
|
12
8
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
<div class="row row-cols-2 row-cols-lg-3 row-cols-xl-4 g-2">
|
|
10
|
+
{{{ each users }}}
|
|
11
|
+
<!-- IMPORT partials/users/item.tpl -->
|
|
12
|
+
{{{end}}}
|
|
13
|
+
</div>
|
|
18
14
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
</div>
|
|
22
|
-
</div>
|
|
15
|
+
<!-- IMPORT partials/paginator.tpl -->
|
|
16
|
+
<!-- IMPORT partials/account/footer.tpl -->
|
|
@@ -1,20 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
<!-- IMPORT partials/account/header.tpl -->
|
|
1
|
+
<!-- IMPORT partials/account/header.tpl -->
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
-
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
|
-
<h3 class="fw-semibold fs-5">[[pages:{template.name}, {username}]]</h3>
|
|
3
|
+
<h3 class="fw-semibold fs-5">[[pages:{template.name}, {username}]]</h3>
|
|
8
4
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
</div>
|
|
17
|
-
</div>
|
|
18
|
-
</div>
|
|
5
|
+
<div class="groups">
|
|
6
|
+
<div component="groups/container" id="groups-list" class="row">
|
|
7
|
+
{{{ if !groups.length }}}
|
|
8
|
+
<div class="alert alert-warning text-center">[[groups:no_groups_found]]</div>
|
|
9
|
+
{{{ else }}}
|
|
10
|
+
<!-- IMPORT partials/groups/list.tpl -->
|
|
11
|
+
{{{ end }}}
|
|
19
12
|
</div>
|
|
20
|
-
</div>
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
<!-- IMPORT partials/account/footer.tpl -->
|