nodebb-theme-harmony 2.0.0-pre.4 → 2.0.0-pre.41
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/README.md +3 -0
- package/library.js +1 -7
- package/package.json +2 -2
- package/plugin.json +1 -2
- package/public/harmony.js +17 -20
- package/scss/common.scss +2 -8
- package/scss/harmony.scss +0 -1
- package/scss/header.scss +1 -1
- package/scss/mixins.scss +12 -5
- package/scss/modules/topics-list.scss +1 -1
- package/scss/overrides.scss +2 -0
- package/scss/topic.scss +3 -11
- package/templates/account/blocks.tpl +18 -7
- package/templates/account/categories.tpl +1 -1
- package/templates/account/consent.tpl +2 -2
- package/templates/account/edit/password.tpl +8 -8
- package/templates/account/edit/username.tpl +2 -3
- package/templates/account/edit.tpl +24 -4
- package/templates/account/info.tpl +142 -73
- package/templates/account/posts.tpl +7 -7
- package/templates/account/profile.tpl +16 -1
- package/templates/account/read.tpl +1 -0
- package/templates/account/settings.tpl +5 -5
- package/templates/account/topics.tpl +6 -5
- package/templates/admin/plugins/harmony.tpl +1 -0
- package/templates/footer.tpl +1 -1
- package/templates/groups/list.tpl +6 -6
- package/templates/notifications.tpl +1 -1
- package/templates/partials/account/header.tpl +6 -6
- package/templates/partials/account/sidebar-left.tpl +21 -16
- package/templates/partials/breadcrumbs-json-ld.tpl +15 -25
- package/templates/partials/buttons/newTopic.tpl +1 -1
- package/templates/partials/categories/item.tpl +3 -3
- package/templates/partials/category/subcategory.tpl +1 -1
- package/templates/partials/groups/memberlist.tpl +1 -1
- package/templates/partials/groups/sidebar-left.tpl +5 -5
- package/templates/partials/header/brand.tpl +3 -1
- package/templates/partials/mobile-footer.tpl +3 -6
- package/templates/partials/notifications_list.tpl +2 -2
- package/templates/partials/post_bar.tpl +3 -5
- package/templates/partials/posts_list_item.tpl +1 -1
- package/templates/partials/quick-search-results.tpl +4 -4
- package/templates/partials/search-filters.tpl +2 -2
- package/templates/partials/search-results.tpl +1 -1
- package/templates/partials/sidebar/chats.tpl +2 -2
- package/templates/partials/sidebar/drafts.tpl +1 -1
- package/templates/partials/sidebar/notifications.tpl +2 -2
- package/templates/partials/sidebar/search.tpl +2 -2
- package/templates/partials/sidebar-left.tpl +2 -5
- package/templates/partials/tags_list.tpl +3 -3
- package/templates/partials/topic/event.tpl +1 -1
- package/templates/partials/topic/navigator.tpl +2 -2
- package/templates/partials/topic/post-menu-list.tpl +25 -1
- package/templates/partials/topic/post-menu.tpl +3 -29
- package/templates/partials/topic/post.tpl +109 -102
- package/templates/partials/topic/quickreply.tpl +2 -2
- package/templates/partials/topic/reply-button.tpl +4 -2
- package/templates/partials/topic/sort.tpl +1 -1
- package/templates/partials/topic/tools.tpl +2 -6
- package/templates/partials/topic/watch.tpl +1 -1
- package/templates/partials/topic-filters.tpl +1 -1
- package/templates/partials/topic-list-bar.tpl +7 -7
- package/templates/partials/topic-terms.tpl +1 -1
- package/templates/partials/topics_list.tpl +10 -2
- package/templates/partials/users/item.tpl +2 -2
- package/templates/partials/users_list_menu.tpl +5 -5
- package/templates/post-queue.tpl +6 -2
- package/templates/topic.tpl +81 -88
- package/templates/users.tpl +1 -1
- package/templates/world.tpl +21 -0
- package/scss/modules/bottom-sheet.scss +0 -52
- package/templates/flags/detail.tpl +0 -179
- package/templates/flags/list.tpl +0 -6
- package/templates/login.tpl +0 -102
- package/templates/partials/category/filter-dropdown-content.tpl +0 -37
- package/templates/partials/category/selector-dropdown-content.tpl +0 -35
- package/templates/partials/category/sort.tpl +0 -39
- package/templates/partials/category/tools.tpl +0 -89
- package/templates/partials/category/watch.tpl +0 -67
- package/templates/partials/flags/bulk-actions.tpl +0 -9
- package/templates/partials/flags/filters.tpl +0 -186
- package/templates/partials/flags/results.tpl +0 -38
- package/templates/partials/groups/filter-dropdown-content.tpl +0 -25
- package/templates/partials/tags/filter-dropdown-content.tpl +0 -34
- package/templates/partials/tags/watch.tpl +0 -42
- package/templates/partials/users/filter-dropdown-content.tpl +0 -23
- package/templates/register.tpl +0 -104
package/README.md
CHANGED
|
@@ -10,6 +10,9 @@ Issues are tracked in [the main project issue tracker](https://github.com/NodeBB
|
|
|
10
10
|
## Screenshots
|
|
11
11
|
|
|
12
12
|
### Categories
|
|
13
|
+
|
|
14
|
+
_The cards in the header are added by the recent cards plugin. https://github.com/NodeBB-Community/nodebb-plugin-recent-cards_
|
|
15
|
+
|
|
13
16
|
<img height="450" src="screenshots/categories.png">
|
|
14
17
|
|
|
15
18
|
### Recent
|
package/library.js
CHANGED
|
@@ -181,10 +181,4 @@ library.saveUserSettings = async function (hookData) {
|
|
|
181
181
|
library.filterMiddlewareRenderHeader = async function (hookData) {
|
|
182
182
|
hookData.templateData.bootswatchSkinOptions = await meta.css.getSkinSwitcherOptions(hookData.req.uid);
|
|
183
183
|
return hookData;
|
|
184
|
-
};
|
|
185
|
-
|
|
186
|
-
library.filterTeasersConfigureStripTags = function (hookData) {
|
|
187
|
-
// teasers have a stretched-link to go to last post, the anchors in them are not clickable
|
|
188
|
-
hookData.tags.push('a');
|
|
189
|
-
return hookData;
|
|
190
|
-
};
|
|
184
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nodebb-theme-harmony",
|
|
3
|
-
"version": "2.0.0-pre.
|
|
3
|
+
"version": "2.0.0-pre.41",
|
|
4
4
|
"nbbpm": {
|
|
5
5
|
"compatibility": "^3.7.0"
|
|
6
6
|
},
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@fontsource/poppins": "5.0.8"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"eslint": "^
|
|
44
|
+
"eslint": "^9.0.0",
|
|
45
45
|
"eslint-config-nodebb": "^0.2.0",
|
|
46
46
|
"eslint-plugin-import": "^2.24.2"
|
|
47
47
|
}
|
package/plugin.json
CHANGED
|
@@ -8,8 +8,7 @@
|
|
|
8
8
|
{ "hook": "filter:settings.get", "method": "getAdminSettings"},
|
|
9
9
|
{ "hook": "filter:user.saveSettings", "method": "saveUserSettings" },
|
|
10
10
|
{ "hook": "filter:user.profileMenu", "method": "addProfileItem" },
|
|
11
|
-
{ "hook": "filter:middleware.renderHeader", "method": "filterMiddlewareRenderHeader" }
|
|
12
|
-
{ "hook": "filter:teasers.configureStripTags", "method": "filterTeasersConfigureStripTags"}
|
|
11
|
+
{ "hook": "filter:middleware.renderHeader", "method": "filterMiddlewareRenderHeader" }
|
|
13
12
|
],
|
|
14
13
|
"scripts": [
|
|
15
14
|
"public/harmony.js"
|
package/public/harmony.js
CHANGED
|
@@ -65,17 +65,14 @@ $(document).ready(function () {
|
|
|
65
65
|
const bottomBar = $('[component="bottombar"]');
|
|
66
66
|
const $body = $('body');
|
|
67
67
|
const $window = $(window);
|
|
68
|
-
$body.on('shown.bs.dropdown', '.sticky-tools', function () {
|
|
69
|
-
bottomBar.
|
|
70
|
-
});
|
|
71
|
-
$body.on('hidden.bs.dropdown', '.sticky-tools', function () {
|
|
72
|
-
bottomBar.removeClass('hidden');
|
|
68
|
+
$body.on('shown.bs.dropdown hidden.bs.dropdown', '.sticky-tools', function () {
|
|
69
|
+
bottomBar.toggleClass('hidden', $(this).find('.dropdown-menu.show').length);
|
|
73
70
|
});
|
|
74
71
|
function isSearchVisible() {
|
|
75
72
|
return !!$('[component="bottombar"] [component="sidebar/search"] .search-dropdown.show').length;
|
|
76
73
|
}
|
|
77
74
|
|
|
78
|
-
let lastScrollTop =
|
|
75
|
+
let lastScrollTop = $window.scrollTop();
|
|
79
76
|
let newPostsLoaded = false;
|
|
80
77
|
|
|
81
78
|
function onWindowScroll() {
|
|
@@ -89,7 +86,7 @@ $(document).ready(function () {
|
|
|
89
86
|
const diff = Math.abs(st - lastScrollTop);
|
|
90
87
|
const scrolledDown = st > lastScrollTop;
|
|
91
88
|
const scrolledUp = st < lastScrollTop;
|
|
92
|
-
if (diff >
|
|
89
|
+
if (diff > 10) {
|
|
93
90
|
bottomBar.css({
|
|
94
91
|
bottom: !scrolledUp && scrolledDown ?
|
|
95
92
|
-bottomBar.find('.bottombar-nav').outerHeight(true) :
|
|
@@ -118,8 +115,10 @@ $(document).ready(function () {
|
|
|
118
115
|
});
|
|
119
116
|
hooks.on('action:ajaxify.end', function () {
|
|
120
117
|
$window.off('scroll', delayedScroll);
|
|
121
|
-
|
|
122
|
-
|
|
118
|
+
if (config.theme.autohideBottombar) {
|
|
119
|
+
bottomBar.css({ bottom: 0 });
|
|
120
|
+
setTimeout(enableAutohide, 250);
|
|
121
|
+
}
|
|
123
122
|
});
|
|
124
123
|
});
|
|
125
124
|
}
|
|
@@ -255,20 +254,18 @@ $(document).ready(function () {
|
|
|
255
254
|
return;
|
|
256
255
|
}
|
|
257
256
|
['notifications', 'chat'].forEach((type) => {
|
|
258
|
-
const countEl =
|
|
259
|
-
if (!countEl) {
|
|
257
|
+
const countEl = $(`nav.sidebar [component="${type}/count"]`).first();
|
|
258
|
+
if (!countEl.length) {
|
|
260
259
|
return;
|
|
261
260
|
}
|
|
262
|
-
const count = parseInt(countEl.
|
|
261
|
+
const count = parseInt(countEl.text(), 10);
|
|
263
262
|
if (count > 1) {
|
|
264
|
-
const listEls =
|
|
265
|
-
listEls.
|
|
266
|
-
const placeholder =
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
listEl.insertBefore(cloneEl, placeholder);
|
|
271
|
-
}
|
|
263
|
+
const listEls = $(`.dropdown-menu [component="${type}/list"]`);
|
|
264
|
+
listEls.each((index, el) => {
|
|
265
|
+
const placeholder = $(el).children().first();
|
|
266
|
+
for (let x = 0; x < count - 1; x++) {
|
|
267
|
+
const cloneEl = placeholder.clone(true);
|
|
268
|
+
cloneEl.insertAfter(placeholder);
|
|
272
269
|
}
|
|
273
270
|
});
|
|
274
271
|
}
|
package/scss/common.scss
CHANGED
|
@@ -90,13 +90,6 @@ body:not(.page-user) {
|
|
|
90
90
|
background-color: initial;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
.btn-link {
|
|
94
|
-
&:hover, &.active {
|
|
95
|
-
background-color: var(--btn-ghost-hover-color);
|
|
96
|
-
text-decoration: none;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
93
|
.flex-basis-md-200 {
|
|
101
94
|
@include media-breakpoint-up(md) {
|
|
102
95
|
flex-basis: 200px!important;
|
|
@@ -124,6 +117,7 @@ body:not(.page-user) {
|
|
|
124
117
|
[component="chat/message/body"],
|
|
125
118
|
[component="post/content"],
|
|
126
119
|
[component="topic/teaser"] .post-content,
|
|
127
|
-
[component="category/posts"] .post-content
|
|
120
|
+
[component="category/posts"] .post-content,
|
|
121
|
+
.post-queue.posts-list .post-content {
|
|
128
122
|
a { text-decoration: underline;}
|
|
129
123
|
}
|
package/scss/harmony.scss
CHANGED
package/scss/header.scss
CHANGED
package/scss/mixins.scss
CHANGED
|
@@ -5,18 +5,25 @@
|
|
|
5
5
|
line-height: calc(var(--avatar-size) - 4px);
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
[component="user/
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
[component="user/locality"] {
|
|
9
|
+
transform: translate(-75%, -100%);
|
|
10
|
+
z-index: 2;
|
|
11
|
+
background-color: $body-bg;
|
|
12
|
+
font-size: .5rem;
|
|
13
|
+
}
|
|
11
14
|
|
|
15
|
+
[component="user/status"] {
|
|
16
|
+
transform: translate(-80%, -100%);
|
|
12
17
|
z-index: 2;
|
|
13
18
|
}
|
|
14
19
|
|
|
15
20
|
@include media-breakpoint-up(sm) {
|
|
16
21
|
[component="user/status"] {
|
|
17
22
|
padding: 5px;
|
|
18
|
-
|
|
19
|
-
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
[component="user/locality"] {
|
|
26
|
+
font-size: .75rem;
|
|
20
27
|
}
|
|
21
28
|
}
|
|
22
29
|
}
|
package/scss/overrides.scss
CHANGED
package/scss/topic.scss
CHANGED
|
@@ -9,11 +9,6 @@ body.template-topic {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
.posts {
|
|
12
|
-
// fixes code blocks pushing content out on mobile
|
|
13
|
-
@include media-breakpoint-down(md) {
|
|
14
|
-
max-width: calc(100vw - $grid-gutter-width);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
12
|
&.timeline {
|
|
18
13
|
@include timeline-style;
|
|
19
14
|
}
|
|
@@ -27,10 +22,6 @@ body.template-topic {
|
|
|
27
22
|
}
|
|
28
23
|
}
|
|
29
24
|
|
|
30
|
-
> [component="post"] > [component="post/footer"] {
|
|
31
|
-
margin-left: calc($spacer * 2.5);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
25
|
[component="post"] {
|
|
35
26
|
&.selected .post-container {
|
|
36
27
|
background-color: mix($body-bg, $body-color, 90%);
|
|
@@ -101,6 +92,7 @@ body.template-topic {
|
|
|
101
92
|
&:last-of-type {
|
|
102
93
|
padding-bottom: 0;
|
|
103
94
|
.post-footer {
|
|
95
|
+
padding-bottom: 0!important;
|
|
104
96
|
border-bottom: none !important;
|
|
105
97
|
}
|
|
106
98
|
}
|
|
@@ -113,7 +105,7 @@ body.template-topic {
|
|
|
113
105
|
}
|
|
114
106
|
}
|
|
115
107
|
|
|
116
|
-
@include media-breakpoint-up(
|
|
108
|
+
@include media-breakpoint-up(lg) {
|
|
117
109
|
body.template-topic {
|
|
118
110
|
.topic .posts {
|
|
119
111
|
[component="post"] {
|
|
@@ -129,7 +121,7 @@ body.template-topic {
|
|
|
129
121
|
opacity: 1;
|
|
130
122
|
}
|
|
131
123
|
&:hover {
|
|
132
|
-
> .post-footer > [component="post/actions"] {
|
|
124
|
+
> div > .post-container > [component="post/footer"] > div > [component="post/actions"] {
|
|
133
125
|
opacity: 1;
|
|
134
126
|
}
|
|
135
127
|
}
|
|
@@ -7,14 +7,21 @@
|
|
|
7
7
|
<input class="form-control form-control-sm" type="text" id="user-search" placeholder="[[users:enter-username]]" data-bs-toggle="dropdown" autocomplete="off" aria-haspopup="true" aria-expanded="false"/>
|
|
8
8
|
|
|
9
9
|
<ul component="blocks/search/list" class="dropdown-menu dropdown-menu-end p-1 text-sm block-edit overflow-auto" style="max-height:300px;" role="menu">
|
|
10
|
-
<li
|
|
10
|
+
<li component="blocks/start-typing">
|
|
11
|
+
<a href="#" class="dropdown-item rounded-1" role="menuitem">[[admin/menu:search.start-typing]]</a>
|
|
12
|
+
</li>
|
|
13
|
+
<li component="blocks/no-users" class="hidden">
|
|
14
|
+
<a href="#" class="dropdown-item rounded-1" role="menuitem">[[users:no-users-found]]</a>
|
|
15
|
+
</li>
|
|
11
16
|
{{{ each edit }}}
|
|
12
|
-
<li>
|
|
13
|
-
<div class="dropdown-item d-flex flex-nowrap gap-
|
|
17
|
+
<li component="blocks/search/match">
|
|
18
|
+
<div class="dropdown-item rounded-1 d-flex flex-nowrap gap-4 justify-content-between align-items-center" role="menuitem">
|
|
14
19
|
<div class="text-truncate">
|
|
15
20
|
<a href="{config.relative_path}/uid/{./uid}" class="text-decoration-none">{buildAvatar(edit, "24px", true)} {./username}</a>
|
|
16
21
|
</div>
|
|
17
|
-
|
|
22
|
+
|
|
23
|
+
<button class="btn btn-sm btn-outline-danger text-nowrap {{{ if ./isBlocked }}}hidden{{{ end }}}" data-uid="{./uid}" data-action="block">[[user:block-user]]</button>
|
|
24
|
+
<button class="btn btn-sm btn-outline-primary text-nowrap {{{ if !./isBlocked }}}hidden{{{ end }}}" data-uid="{./uid}" data-action="unblock">[[user:unblock-user]]</button>
|
|
18
25
|
</div>
|
|
19
26
|
</li>
|
|
20
27
|
{{{ end }}}
|
|
@@ -28,12 +35,16 @@
|
|
|
28
35
|
</div>
|
|
29
36
|
</div>
|
|
30
37
|
<div class="users">
|
|
31
|
-
<div
|
|
38
|
+
<div class="alert alert-warning text-center m-0"{{{ if users.length }}} style="display: none;"{{{ end }}}>[[user:has-no-blocks]]</div>
|
|
39
|
+
|
|
40
|
+
<div id="users-container" class="row row-cols-2 row-cols-lg-3 row-cols-xl-4 g-3">
|
|
32
41
|
{{{ each users }}}
|
|
33
|
-
|
|
42
|
+
<div class="d-flex flex-column gap-1">
|
|
43
|
+
<!-- IMPORT partials/users/item.tpl -->
|
|
44
|
+
<button class="btn btn-sm btn-outline-primary text-nowrap mx-auto" data-uid="{./uid}" data-action="unblock">[[user:unblock-user]]</button>
|
|
45
|
+
</div>
|
|
34
46
|
{{{ end }}}
|
|
35
47
|
</div>
|
|
36
|
-
<div class="alert alert-warning text-center"{{{ if users.length }}} style="display: none;"{{{ end }}}>[[user:has-no-blocks]]</div>
|
|
37
48
|
<!-- IMPORT partials/paginator.tpl -->
|
|
38
49
|
</div>
|
|
39
50
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<div class="d-flex gap-1">
|
|
9
9
|
<div class="btn-group bottom-sheet" component="category/watch/all">
|
|
10
|
-
<button class="btn-ghost-sm ff-secondary fw-semibold dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" type="button">
|
|
10
|
+
<button class="btn btn-ghost btn-sm ff-secondary fw-semibold dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" type="button">
|
|
11
11
|
<span>[[user:change-all]]</span>
|
|
12
12
|
</button>
|
|
13
13
|
<ul class="dropdown-menu p-1 text-sm dropdown-menu-end" role="menu">
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
<div class="row">
|
|
10
10
|
<div class="col-sm-6">
|
|
11
11
|
{{{ if gdpr_consent }}}
|
|
12
|
-
<div class="alert alert-success">
|
|
13
|
-
<i class="fa fa-check float-end fa-3x"></i>
|
|
12
|
+
<div class="alert alert-success d-flex gap-3">
|
|
14
13
|
[[user:consent.received]]
|
|
14
|
+
<i class="fa fa-check fa-3x"></i>
|
|
15
15
|
</div>
|
|
16
16
|
{{{ else }}}
|
|
17
17
|
<div class="alert alert-warning">
|
|
@@ -7,22 +7,22 @@
|
|
|
7
7
|
<!-- disables autocomplete on FF --><input type="password" style="display:none">
|
|
8
8
|
|
|
9
9
|
{{{ if isSelf }}}
|
|
10
|
-
<div class="mb-
|
|
11
|
-
<label class="form-label fw-semibold text-
|
|
10
|
+
<div class="mb-3">
|
|
11
|
+
<label class="form-label fw-semibold text-sm" for="inputCurrentPassword">[[user:current-password]]</label>
|
|
12
12
|
<input autocomplete="off" class="form-control" type="password" id="inputCurrentPassword" placeholder="[[user:current-password]]" value="" {{{ if !hasPassword }}} disabled{{{ end }}}>
|
|
13
13
|
</div>
|
|
14
14
|
{{{ end }}}
|
|
15
15
|
|
|
16
|
-
<div class="mb-
|
|
17
|
-
<label class="form-label fw-semibold text-
|
|
16
|
+
<div class="mb-3">
|
|
17
|
+
<label class="form-label fw-semibold text-sm" for="inputNewPassword">[[user:new-password]]</label>
|
|
18
18
|
<input class="form-control" type="password" id="inputNewPassword" placeholder="[[user:password]]" value="">
|
|
19
|
-
<span class="form-
|
|
19
|
+
<span class="form-text" id="password-notify"></span>
|
|
20
20
|
</div>
|
|
21
21
|
|
|
22
|
-
<div class="mb-
|
|
23
|
-
<label class="form-label fw-semibold text-
|
|
22
|
+
<div class="mb-3">
|
|
23
|
+
<label class="form-label fw-semibold text-sm" for="inputNewPasswordAgain">[[user:confirm-password]]</label>
|
|
24
24
|
<input class="form-control" type="password" id="inputNewPasswordAgain" placeholder="[[user:confirm-password]]" value="">
|
|
25
|
-
<span class="form-
|
|
25
|
+
<span class="form-text" id="password-confirm-notify"></span>
|
|
26
26
|
</div>
|
|
27
27
|
|
|
28
28
|
<div class="form-actions">
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<div class="row">
|
|
5
5
|
<div class="col-12 col-lg-4">
|
|
6
6
|
<form class="edit-form">
|
|
7
|
-
<div class="mb-
|
|
7
|
+
<div class="mb-3">
|
|
8
8
|
<label class="form-label fw-semibold text-sm" for="inputNewUsername">[[user:username]]</label>
|
|
9
9
|
<input class="form-control" type="text" id="inputNewUsername" placeholder="[[user:username]]" value="{username}">
|
|
10
10
|
</div>
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<!-- disables autocomplete on FF --><input type="password" style="display:none">
|
|
13
13
|
|
|
14
14
|
{{{ if isSelf }}}
|
|
15
|
-
<div class="mb-
|
|
15
|
+
<div class="mb-3">
|
|
16
16
|
<label class="form-label fw-semibold text-sm" for="inputCurrentPassword">[[user:current-password]]</label>
|
|
17
17
|
<input autocomplete="off" class="form-control" type="password" id="inputCurrentPassword" placeholder="[[user:current-password]]" value=""{{{ if !hasPassword }}} disabled{{{ end }}}>
|
|
18
18
|
</div>
|
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
|
|
21
21
|
<input type="hidden" name="uid" id="inputUID" value="{uid}" />
|
|
22
22
|
|
|
23
|
-
<br/>
|
|
24
23
|
<div class="form-actions">
|
|
25
24
|
<button id="submitBtn" class="btn btn-primary btn-block"><i class="hide fa fa-spinner fa-spin"></i> [[user:change-username]]</button>
|
|
26
25
|
</div>
|
|
@@ -29,6 +29,26 @@
|
|
|
29
29
|
<input class="form-control" type="date" id="birthday" name="birthday" value="{birthday}" placeholder="mm/dd/yyyy">
|
|
30
30
|
</div>
|
|
31
31
|
|
|
32
|
+
{{{ each customUserFields }}}
|
|
33
|
+
<div class="mb-3">
|
|
34
|
+
<label class="form-label fw-bold" for="{./key}">{./name}</label>
|
|
35
|
+
{{{ if ((./type == "input-text") || (./type == "input-link")) }}}
|
|
36
|
+
<input class="form-control" type="text" id="{./key}" name="{./key}" value="{./value}">
|
|
37
|
+
{{{ end }}}
|
|
38
|
+
|
|
39
|
+
{{{ if (./type == "input-number") }}}
|
|
40
|
+
<input class="form-control" type="number" id="{./key}" name="{./key}" value="{./value}">
|
|
41
|
+
{{{ end }}}
|
|
42
|
+
{{{ if (./type == "select") }}}
|
|
43
|
+
<select class="form-select" id="{./key}" name="{./key}">
|
|
44
|
+
{{{ each ./select-options}}}
|
|
45
|
+
<option value="{./value}" {{{ if ./selected }}}selected{{{ end }}}>{./value}</option>
|
|
46
|
+
{{{ end }}}
|
|
47
|
+
</select>
|
|
48
|
+
{{{ end }}}
|
|
49
|
+
</div>
|
|
50
|
+
{{{ end }}}
|
|
51
|
+
|
|
32
52
|
<div class="mb-3">
|
|
33
53
|
<label class="form-label fw-bold" for="groupTitle">[[user:grouptitle]]</label>
|
|
34
54
|
|
|
@@ -37,11 +57,11 @@
|
|
|
37
57
|
<div component="group/badge/item" class="d-flex gap-2 justify-content-between align-items-center" data-value="{./displayName}" data-selected="{./selected}">
|
|
38
58
|
<!-- IMPORT partials/groups/badge.tpl -->
|
|
39
59
|
<div class="d-flex gap-1">
|
|
40
|
-
<button component="group/toggle/hide" type="button" class="btn-ghost-sm {{{ if !./selected }}}hidden{{{ end }}}" title="[[user:hide-group-title]]"><i class="fa fa-fw fa-eye"></i></button>
|
|
41
|
-
<button component="group/toggle/show" type="button" class="btn-ghost-sm {{{ if ./selected }}}hidden{{{ end }}}" title="[[user:show-group-title]]"><i class="fa fa-fw fa-eye-slash"></i></button>
|
|
60
|
+
<button component="group/toggle/hide" type="button" class="btn btn-ghost btn-sm {{{ if !./selected }}}hidden{{{ end }}}" title="[[user:hide-group-title]]"><i class="fa fa-fw fa-eye"></i></button>
|
|
61
|
+
<button component="group/toggle/show" type="button" class="btn btn-ghost btn-sm {{{ if ./selected }}}hidden{{{ end }}}" title="[[user:show-group-title]]"><i class="fa fa-fw fa-eye-slash"></i></button>
|
|
42
62
|
{{{ if allowMultipleBadges }}}
|
|
43
|
-
<button component="group/order/up" type="button" class="btn-ghost-sm" title="[[user:order-group-up]]"><i class="fa fa-fw fa-chevron-up"></i></button>
|
|
44
|
-
<button component="group/order/down" type="button" class="btn-ghost-sm" title="[[user:order-group-down]]"><i class="fa fa-fw fa-chevron-down"></i></button>
|
|
63
|
+
<button component="group/order/up" type="button" class="btn btn-ghost btn-sm" title="[[user:order-group-up]]"><i class="fa fa-fw fa-chevron-up"></i></button>
|
|
64
|
+
<button component="group/order/down" type="button" class="btn btn-ghost btn-sm" title="[[user:order-group-down]]"><i class="fa fa-fw fa-chevron-down"></i></button>
|
|
45
65
|
{{{ end }}}
|
|
46
66
|
</div>
|
|
47
67
|
</div>
|