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
package/library.js
CHANGED
|
@@ -99,6 +99,7 @@ library.getThemeConfig = async function (config) {
|
|
|
99
99
|
config.enableQuickReply = themeConfig.enableQuickReply === 'on';
|
|
100
100
|
config.centerHeaderElements = themeConfig.centerHeaderElements === 'on';
|
|
101
101
|
config.stickyToolbar = themeConfig.stickyToolbar === 'on';
|
|
102
|
+
config.openDraftsOnPageLoad = false;
|
|
102
103
|
return config;
|
|
103
104
|
};
|
|
104
105
|
|
package/package.json
CHANGED
package/public/harmony.js
CHANGED
|
@@ -76,13 +76,20 @@ $(document).ready(function () {
|
|
|
76
76
|
|
|
77
77
|
async function renderDraftList() {
|
|
78
78
|
const draftListEl = $('[component="drafts/list"]');
|
|
79
|
-
draftListEl.
|
|
79
|
+
draftListEl.children(':not(.no-drafts)').remove();
|
|
80
80
|
|
|
81
81
|
const draftItems = drafts.listAvailable();
|
|
82
|
+
console.log('harmony sees', draftItems);
|
|
82
83
|
if (!draftItems.length) {
|
|
83
84
|
draftListEl.find('.no-drafts').removeClass('hidden');
|
|
84
85
|
return;
|
|
85
86
|
}
|
|
87
|
+
draftItems.reverse().forEach((draft) => {
|
|
88
|
+
if (draft) {
|
|
89
|
+
draft.text = draft.text.replace(/(?:\r\n|\r|\n)/g, '<br>');
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
console.log(draftItems);
|
|
86
93
|
const html = await app.parseAndTranslate('partials/sidebar/drafts', 'drafts', { drafts: draftItems });
|
|
87
94
|
draftListEl.find('.no-drafts').addClass('hidden');
|
|
88
95
|
draftListEl.append(html).find('.timeago').timeago();
|
|
@@ -97,6 +104,8 @@ $(document).ready(function () {
|
|
|
97
104
|
|
|
98
105
|
draftsEl.on('click', '[component="drafts/delete"]', function () {
|
|
99
106
|
drafts.removeDraft($(this).attr('data-save-id'));
|
|
107
|
+
renderDraftList();
|
|
108
|
+
return false;
|
|
100
109
|
});
|
|
101
110
|
|
|
102
111
|
$(window).on('action:composer.drafts.save', updateBadgeCount);
|
package/scss/account.scss
CHANGED
package/scss/common.scss
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
body {
|
|
3
3
|
overflow-y: scroll;
|
|
4
4
|
}
|
|
5
|
+
.ff-base {
|
|
6
|
+
font-family: $font-family-base;
|
|
7
|
+
}
|
|
5
8
|
.ff-secondary {
|
|
6
9
|
font-family: $font-family-secondary;
|
|
7
10
|
}
|
|
@@ -75,3 +78,9 @@ body {
|
|
|
75
78
|
font-size: 0.875rem;
|
|
76
79
|
line-height: 1.25rem;
|
|
77
80
|
}
|
|
81
|
+
|
|
82
|
+
.flex-basis-md-200 {
|
|
83
|
+
@include media-breakpoint-up(md) {
|
|
84
|
+
flex-basis: 200px!important;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
.meta {
|
|
19
|
-
display: none;
|
|
20
19
|
top: -8px;
|
|
21
20
|
left: calc($spacer + 8px);
|
|
22
21
|
font-size: 13px;
|
|
@@ -38,7 +37,6 @@
|
|
|
38
37
|
transition: $transition-base;
|
|
39
38
|
|
|
40
39
|
.meta {
|
|
41
|
-
display: none;
|
|
42
40
|
left: calc($spacer + 8px);
|
|
43
41
|
font-size: 13px;
|
|
44
42
|
}
|
|
@@ -54,8 +52,4 @@
|
|
|
54
52
|
[component="topic/navigator"].d-sm-flex.mt-auto + .mt-auto {
|
|
55
53
|
margin-top: 0 !important;
|
|
56
54
|
}
|
|
57
|
-
|
|
58
|
-
.handle .meta, .unread .meta {
|
|
59
|
-
display: block;
|
|
60
|
-
}
|
|
61
55
|
}
|
package/scss/sidebar.scss
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.skin-noskin {
|
|
2
2
|
// only using colors when there is no bootswatch skin applied
|
|
3
|
-
.sidebar, .bottombar {
|
|
3
|
+
nav.sidebar, .bottombar {
|
|
4
4
|
color: $secondary !important;
|
|
5
5
|
background-color: $light !important;
|
|
6
6
|
}
|
|
@@ -15,22 +15,24 @@
|
|
|
15
15
|
.sidebar {
|
|
16
16
|
$hover-color: mix($light, $dark, 90);
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
@include media-breakpoint-up(lg) {
|
|
19
|
+
&.open {
|
|
20
|
+
min-width: 200px;
|
|
21
|
+
max-width: 200px;
|
|
22
|
+
width: 200px;
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
24
|
+
.sidebar-toggle {
|
|
25
|
+
.fa-angles-right { display: none; }
|
|
26
|
+
.fa-angles-left { display: inline-block; }
|
|
27
|
+
}
|
|
28
|
+
.visible-open { display: initial; }
|
|
29
|
+
.visible-closed { display: none; }
|
|
30
|
+
hr.visible-open { display: block; }
|
|
31
|
+
.truncate-open {
|
|
32
|
+
overflow: hidden;
|
|
33
|
+
text-overflow: ellipsis;
|
|
34
|
+
white-space: nowrap;
|
|
35
|
+
}
|
|
34
36
|
}
|
|
35
37
|
}
|
|
36
38
|
.visible-open { display: none; }
|
|
@@ -73,6 +75,7 @@
|
|
|
73
75
|
|
|
74
76
|
.chats-dropdown, .notifications-dropdown, .drafts-dropdown {
|
|
75
77
|
min-width: 300px;
|
|
78
|
+
width: 300px;
|
|
76
79
|
ul {
|
|
77
80
|
max-height: 400px;
|
|
78
81
|
overflow-y: auto;
|
|
@@ -114,12 +117,3 @@
|
|
|
114
117
|
max-height: 100%;
|
|
115
118
|
}
|
|
116
119
|
}
|
|
117
|
-
|
|
118
|
-
.sidebar-left {
|
|
119
|
-
border-right: 1px solid $border-color;
|
|
120
|
-
left: 0px;
|
|
121
|
-
}
|
|
122
|
-
.sidebar-right {
|
|
123
|
-
border-left: 1px solid $border-color;
|
|
124
|
-
right: 0px;
|
|
125
|
-
}
|
package/scss/skins.scss
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.skin-quartz {
|
|
2
2
|
// $body-bg-image is gradient in quartz
|
|
3
|
-
.icon {
|
|
3
|
+
[component="post"] .icon {
|
|
4
4
|
background-color: transparent !important;
|
|
5
5
|
}
|
|
6
6
|
}
|
|
@@ -10,4 +10,11 @@
|
|
|
10
10
|
.topic-list-header .btn, .topic-main-buttons .btn {
|
|
11
11
|
padding: 6px 12px;
|
|
12
12
|
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.skin-yeti {
|
|
16
|
+
.badge {
|
|
17
|
+
padding-left: 0.5rem;
|
|
18
|
+
padding-right: 0.5rem;
|
|
19
|
+
}
|
|
13
20
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<div class="account">
|
|
2
2
|
<!-- IMPORT partials/account/header.tpl -->
|
|
3
|
-
<div class="
|
|
3
|
+
<div class="d-flex flex-column flex-md-row">
|
|
4
4
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
5
|
-
<div class="
|
|
5
|
+
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
6
6
|
<div class="d-flex justify-content-between mb-3">
|
|
7
7
|
<h3 class="fw-semibold fs-5">[[pages:account/blocks, {username}]]</h3>
|
|
8
8
|
<div class="justify-content-end">
|
|
@@ -1,28 +1,34 @@
|
|
|
1
1
|
<div class="account">
|
|
2
2
|
<!-- IMPORT partials/account/header.tpl -->
|
|
3
3
|
|
|
4
|
-
<div class="row">
|
|
5
|
-
|
|
6
|
-
<div class="
|
|
7
|
-
<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
4
|
+
<div class="d-flex flex-column flex-md-row">
|
|
5
|
+
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
+
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
|
+
<h3 class="fw-semibold fs-5">{title}</h3>
|
|
8
|
+
|
|
9
|
+
<div class="row">
|
|
10
|
+
<div class="col-lg-12 mb-2">
|
|
11
|
+
<div class="btn-group bottom-sheet" component="category/watch/all">
|
|
12
|
+
<button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
13
|
+
<span>[[user:change_all]]</span>
|
|
14
|
+
<span class="caret"></span>
|
|
15
|
+
</button>
|
|
16
|
+
<ul class="dropdown-menu">
|
|
17
|
+
<li><a class="dropdown-item" href="#" component="category/watching" data-state="watching"><i class="fa fa-fw fa-inbox"></i> [[category:watching]]<p class="help-text"><small>[[category:watching.description]]</small></p></a></li>
|
|
18
|
+
<li><a class="dropdown-item" href="#" component="category/notwatching" data-state="notwatching"><i class="fa fa-fw fa-clock-o"></i> [[category:not-watching]]<p class="help-text"><small>[[category:not-watching.description]]</small></p></a></li>
|
|
19
|
+
<li><a class="dropdown-item" href="#" component="category/ignoring" data-state="ignoring"><i class="fa fa-fw fa-eye-slash"></i> [[category:ignoring]]<p class="help-text"><small>[[category:ignoring.description]]</small></p></a></li>
|
|
20
|
+
</ul>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="col-lg-12">
|
|
24
|
+
<ul class="categories list-unstyled" itemscope itemtype="http://www.schema.org/ItemList">
|
|
25
|
+
{{{each categories}}}
|
|
26
|
+
<!-- IMPORT partials/account/category-item.tpl -->
|
|
27
|
+
{{{end}}}
|
|
28
|
+
</ul>
|
|
29
|
+
<!-- IMPORT partials/paginator.tpl -->
|
|
30
|
+
</div>
|
|
17
31
|
</div>
|
|
18
32
|
</div>
|
|
19
|
-
<div class="col-lg-12">
|
|
20
|
-
<ul class="categories list-unstyled" itemscope itemtype="http://www.schema.org/ItemList">
|
|
21
|
-
{{{each categories}}}
|
|
22
|
-
<!-- IMPORT partials/account/category-item.tpl -->
|
|
23
|
-
{{{end}}}
|
|
24
|
-
</ul>
|
|
25
|
-
<!-- IMPORT partials/paginator.tpl -->
|
|
26
|
-
</div>
|
|
27
33
|
</div>
|
|
28
34
|
</div>
|
|
@@ -1,71 +1,17 @@
|
|
|
1
|
-
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
-
|
|
3
1
|
<div class="account">
|
|
4
2
|
<!-- IMPORT partials/account/header.tpl -->
|
|
5
|
-
<h2>[[user:consent.title]]</h2>
|
|
6
|
-
<p class="lead">[[user:consent.lead]]</p>
|
|
7
|
-
<p>[[user:consent.intro]]</p>
|
|
8
3
|
|
|
9
|
-
<
|
|
4
|
+
<div class="d-flex flex-column flex-md-row">
|
|
5
|
+
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
+
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
|
+
<h3 class="fw-semibold fs-5">[[user:consent.title]]</h3>
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
<!-- IF gdpr_consent -->
|
|
14
|
-
<div class="alert alert-success">
|
|
15
|
-
<i class="fa fa-check float-end fa-3x"></i>
|
|
16
|
-
[[user:consent.received]]
|
|
17
|
-
</div>
|
|
18
|
-
<!-- ELSE -->
|
|
19
|
-
<div class="alert alert-warning">
|
|
20
|
-
[[user:consent.not_received]]
|
|
21
|
-
<br /><br />
|
|
22
|
-
<div class="text-center">
|
|
23
|
-
<button class="btn btn-warning" data-action="consent">[[user:consent.give]]</button>
|
|
24
|
-
</div>
|
|
25
|
-
</div>
|
|
26
|
-
<!-- END -->
|
|
27
|
-
<div class="card">
|
|
28
|
-
<div class="card-body">
|
|
29
|
-
<p>[[user:consent.email_intro]]</p>
|
|
30
|
-
<!-- IF digest.enabled -->
|
|
31
|
-
<p>[[user:consent.digest_frequency, {digest.frequency}]]</p>
|
|
32
|
-
<!-- ELSE -->
|
|
33
|
-
[[user:consent.digest_off]]
|
|
34
|
-
<!-- END -->
|
|
9
|
+
<p class="lead">[[user:consent.lead]]</p>
|
|
10
|
+
<p>[[user:consent.intro]]</p>
|
|
35
11
|
|
|
36
|
-
|
|
37
|
-
<a class="btn btn-outline-secondary" href="./settings">
|
|
38
|
-
<i class="fa fa-cog"></i>
|
|
39
|
-
[[pages:account/settings]]
|
|
40
|
-
</a>
|
|
41
|
-
</div>
|
|
42
|
-
</div>
|
|
43
|
-
</div>
|
|
44
|
-
</div>
|
|
45
|
-
<div class="col-sm-6">
|
|
46
|
-
<div class="card">
|
|
47
|
-
<div class="card-body">
|
|
48
|
-
<p><strong>[[user:consent.right_of_access]]</strong></p>
|
|
49
|
-
<p>[[user:consent.right_of_access_description]]</p>
|
|
50
|
-
<p><strong>[[user:consent.right_to_rectification]]</strong></p>
|
|
51
|
-
<p>[[user:consent.right_to_rectification_description]]</p>
|
|
52
|
-
<p><strong>[[user:consent.right_to_erasure]]</strong></p>
|
|
53
|
-
<p>[[user:consent.right_to_erasure_description]]</p>
|
|
54
|
-
<p><strong>[[user:consent.right_to_data_portability]]</strong></p>
|
|
55
|
-
<p>[[user:consent.right_to_data_portability_description]]</p>
|
|
12
|
+
<hr />
|
|
56
13
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
<i class="fa fa-download"></i> [[user:consent.export_profile]]
|
|
60
|
-
</a>
|
|
61
|
-
<a data-action="export-posts" class="btn btn-outline-secondary">
|
|
62
|
-
<i class="fa fa-download"></i> [[user:consent.export_posts]]
|
|
63
|
-
</a>
|
|
64
|
-
<a data-action="export-uploads" class="btn btn-outline-secondary">
|
|
65
|
-
<i class="fa fa-download"></i> [[user:consent.export_uploads]]
|
|
66
|
-
</a>
|
|
67
|
-
</div>
|
|
68
|
-
</div>
|
|
69
|
-
</div>
|
|
14
|
+
<div class="row">
|
|
15
|
+
</div>
|
|
70
16
|
</div>
|
|
71
|
-
</div>
|
|
17
|
+
</div>
|
|
@@ -1,32 +1,37 @@
|
|
|
1
|
-
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
-
|
|
3
1
|
<div class="account">
|
|
4
2
|
<!-- IMPORT partials/account/header.tpl -->
|
|
5
3
|
|
|
6
|
-
<
|
|
7
|
-
<!--
|
|
4
|
+
<div class="d-flex flex-column flex-md-row">
|
|
5
|
+
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
+
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
|
+
<h3 class="fw-semibold fs-5">{{{ if isSelf }}}[[user:change_password]]{{{ else }}}[[pages:{template.name}, {username}]]{{{ end }}}</h3>
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
<label class="form-label fw-bold" for="inputCurrentPassword">[[user:current_password]]</label>
|
|
12
|
-
<input autocomplete="off" class="form-control" type="password" id="inputCurrentPassword" placeholder="[[user:current_password]]" value=""<!-- IF !hasPassword --> disabled<!-- ENDIF !hasPassword -->>
|
|
13
|
-
</div>
|
|
14
|
-
<!-- ENDIF isSelf -->
|
|
9
|
+
<form class="edit-form">
|
|
10
|
+
<!-- disables autocomplete on FF --><input type="password" style="display:none">
|
|
15
11
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
{{{ if isSelf }}}
|
|
13
|
+
<div class="mb-2">
|
|
14
|
+
<label class="form-label fw-semibold text-xm" for="inputCurrentPassword">[[user:current_password]]</label>
|
|
15
|
+
<input autocomplete="off" class="form-control" type="password" id="inputCurrentPassword" placeholder="[[user:current_password]]" value=""<!-- IF !hasPassword --> disabled<!-- ENDIF !hasPassword -->>
|
|
16
|
+
</div>
|
|
17
|
+
{{{ end }}}
|
|
21
18
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
19
|
+
<div class="mb-2">
|
|
20
|
+
<label class="form-label fw-semibold text-xm" for="inputNewPassword">[[user:new_password]]</label>
|
|
21
|
+
<input class="form-control" type="password" id="inputNewPassword" placeholder="[[user:password]]" value="">
|
|
22
|
+
<span class="form-feedback" id="password-notify"></span>
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<div class="mb-2">
|
|
26
|
+
<label class="form-label fw-semibold text-xm" for="inputNewPasswordAgain">[[user:confirm_password]]</label>
|
|
27
|
+
<input class="form-control" type="password" id="inputNewPasswordAgain" placeholder="[[user:confirm_password]]" value="">
|
|
28
|
+
<span class="form-feedback" id="password-confirm-notify"></span>
|
|
29
|
+
</div>
|
|
27
30
|
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
<div class="form-actions">
|
|
32
|
+
<button id="changePasswordBtn" class="btn btn-primary btn-block"><i class="hide fa fa-spinner fa-spin"></i> [[user:change_password]]</button>
|
|
33
|
+
</div>
|
|
34
|
+
</form>
|
|
30
35
|
</div>
|
|
31
|
-
</
|
|
32
|
-
</div>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
@@ -1,28 +1,33 @@
|
|
|
1
|
-
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
-
|
|
3
1
|
<div class="account">
|
|
4
2
|
<!-- IMPORT partials/account/header.tpl -->
|
|
5
3
|
|
|
6
|
-
<
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
<
|
|
10
|
-
</div>
|
|
4
|
+
<div class="d-flex flex-column flex-md-row">
|
|
5
|
+
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
6
|
+
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
|
+
<h3 class="fw-semibold fs-5">{{{ if isSelf }}}[[user:change_username]]{{{ else }}}[[pages:{template.name}, {username}]]{{{ end }}}</h3>
|
|
11
8
|
|
|
12
|
-
|
|
9
|
+
<form class="form-horizontal edit-form">
|
|
10
|
+
<div class="mb-2">
|
|
11
|
+
<label class="form-label fw-semibold text-sm" for="inputNewUsername">[[user:username]]</label>
|
|
12
|
+
<input class="form-control" type="text" id="inputNewUsername" placeholder="[[user:username]]" value="{username}">
|
|
13
|
+
</div>
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
<!-- disables autocomplete on FF --><input type="password" style="display:none">
|
|
16
|
+
|
|
17
|
+
{{{ if isSelf }}}
|
|
18
|
+
<div class="mb-2">
|
|
19
|
+
<label class="form-label fw-semibold text-sm" for="inputCurrentPassword">[[user:current_password]]</label>
|
|
20
|
+
<input autocomplete="off" class="form-control" type="password" id="inputCurrentPassword" placeholder="[[user:current_password]]" value=""{{{ if !hasPassword }}} disabled{{{ end }}}>
|
|
21
|
+
</div>
|
|
22
|
+
{{{ end }}}
|
|
20
23
|
|
|
21
|
-
|
|
24
|
+
<input type="hidden" name="uid" id="inputUID" value="{uid}" />
|
|
22
25
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
<br/>
|
|
27
|
+
<div class="form-actions">
|
|
28
|
+
<button id="submitBtn" class="btn btn-primary btn-block"><i class="hide fa fa-spinner fa-spin"></i> [[user:change_username]]</button>
|
|
29
|
+
</div>
|
|
30
|
+
</form>
|
|
26
31
|
</div>
|
|
27
|
-
</
|
|
28
|
-
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
@@ -1,61 +1,15 @@
|
|
|
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="d-flex justify-content-between mb-3">
|
|
8
|
+
<h3 class="fw-semibold fs-5">{{{ if isSelf }}}[[user:edit-profile]]{{{ else }}}[[pages:account/edit, {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
|
-
<div class="col-xl-
|
|
13
|
-
<div class="account-picture-block text-center">
|
|
14
|
-
<div class="row mb-3">
|
|
15
|
-
<div class="col-12 hidden-xs">
|
|
16
|
-
<!-- IF picture -->
|
|
17
|
-
<img id="user-current-picture" class="avatar avatar-rounded" style="--avatar-size: 128px;" src="{picture}" />
|
|
18
|
-
<!-- ELSE -->
|
|
19
|
-
<div class="avatar avatar-rounded" style="background-color: {icon:bgColor}; --avatar-size: 128px;">{icon:text}</div>
|
|
20
|
-
<!-- ENDIF picture -->
|
|
21
|
-
</div>
|
|
22
|
-
</div>
|
|
23
|
-
<ul class="list-group mb-3 text-sm text-nowrap">
|
|
24
|
-
<!-- IF allowProfilePicture -->
|
|
25
|
-
<a id="changePictureBtn" href="#" class="list-group-item px-1 text-decoration-none">[[user:change_picture]]</a>
|
|
26
|
-
<!-- ENDIF allowProfilePicture -->
|
|
27
|
-
<!-- IF !username:disableEdit -->
|
|
28
|
-
<a href="{config.relative_path}/user/{userslug}/edit/username" class="list-group-item px-1 text-decoration-none">[[user:change_username]]</a>
|
|
29
|
-
<!-- ENDIF !username:disableEdit -->
|
|
30
|
-
<!-- IF !email:disableEdit -->
|
|
31
|
-
<a href="{config.relative_path}/user/{userslug}/edit/email" class="list-group-item px-1 text-decoration-none">[[user:change_email]]</a>
|
|
32
|
-
<!-- ENDIF !email:disableEdit -->
|
|
33
|
-
<!-- IF canChangePassword -->
|
|
34
|
-
<a href="{config.relative_path}/user/{userslug}/edit/password" class="list-group-item px-1 text-decoration-none">[[user:change_password]]</a>
|
|
35
|
-
<!-- ENDIF canChangePassword -->
|
|
36
|
-
{{{each editButtons}}}
|
|
37
|
-
<a href="{config.relative_path}{editButtons.link}" class="list-group-item px-1 text-decoration-none">{editButtons.text}</a>
|
|
38
|
-
{{{end}}}
|
|
39
|
-
</ul>
|
|
40
|
-
|
|
41
|
-
<!-- IF config.requireEmailConfirmation -->
|
|
42
|
-
<!-- IF email -->
|
|
43
|
-
<!-- IF isSelf -->
|
|
44
|
-
<a id="confirm-email" href="#" class="btn btn-warning <!-- IF email:confirmed -->hide<!-- ENDIF email:confirmed -->">[[user:confirm_email]]</a><br/><br/>
|
|
45
|
-
<!-- ENDIF isSelf -->
|
|
46
|
-
<!-- ENDIF email -->
|
|
47
|
-
<!-- ENDIF config.requireEmailConfirmation -->
|
|
48
|
-
|
|
49
|
-
<!-- IF allowAccountDelete -->
|
|
50
|
-
<!-- IF isSelf -->
|
|
51
|
-
<a id="deleteAccountBtn" href="#" class="btn btn-danger">[[user:delete_account]]</a><br/><br/>
|
|
52
|
-
<!-- ENDIF isSelf -->
|
|
53
|
-
<!-- ENDIF allowAccountDelete -->
|
|
54
|
-
|
|
55
|
-
</div>
|
|
56
|
-
</div>
|
|
57
|
-
|
|
58
|
-
<div class="col-xl-5 col-12">
|
|
12
|
+
<div class="col-xl-6 col-12">
|
|
59
13
|
<form role="form" component="profile/edit/form">
|
|
60
14
|
<div class="mb-2">
|
|
61
15
|
<label class="form-label fw-bold" for="fullname">[[user:fullname]]</label>
|
|
@@ -81,7 +35,7 @@
|
|
|
81
35
|
<div class="mb-2">
|
|
82
36
|
<label class="form-label fw-bold" for="groupTitle">[[user:grouptitle]]</label>
|
|
83
37
|
|
|
84
|
-
<select class="form-select" id="groupTitle" name="groupTitle" <!-- IF allowMultipleBadges --> size="{groupSelectSize}" multiple<!-- ENDIF allowMultipleBadges -->>
|
|
38
|
+
<select class="form-select mb-1" id="groupTitle" name="groupTitle" <!-- IF allowMultipleBadges --> size="{groupSelectSize}" multiple<!-- ENDIF allowMultipleBadges -->>
|
|
85
39
|
<option value="">[[user:no-group-title]]</option>
|
|
86
40
|
{{{each groups}}}
|
|
87
41
|
<!-- IF groups.userTitleEnabled -->
|
|
@@ -90,8 +44,10 @@
|
|
|
90
44
|
{{{end}}}
|
|
91
45
|
</select>
|
|
92
46
|
<!-- IF allowMultipleBadges -->
|
|
93
|
-
<
|
|
94
|
-
|
|
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>
|
|
95
51
|
<!-- ENDIF -->
|
|
96
52
|
</div>
|
|
97
53
|
|
|
@@ -111,12 +67,39 @@
|
|
|
111
67
|
<!-- ENDIF !disableSignatures -->
|
|
112
68
|
<!-- ENDIF allowSignature -->
|
|
113
69
|
</form>
|
|
114
|
-
|
|
115
70
|
<hr class="visible-xs visible-sm"/>
|
|
116
71
|
</div>
|
|
117
72
|
|
|
118
|
-
|
|
119
|
-
|
|
73
|
+
<div class="col-xl-6 col-12">
|
|
74
|
+
<div class="text-center">
|
|
75
|
+
<ul class="list-group mb-3 text-sm text-nowrap">
|
|
76
|
+
<!-- IF allowProfilePicture -->
|
|
77
|
+
<a id="changePictureBtn" href="#" class="list-group-item px-1 text-decoration-none">[[user:change_picture]]</a>
|
|
78
|
+
<!-- ENDIF allowProfilePicture -->
|
|
79
|
+
<!-- IF !username:disableEdit -->
|
|
80
|
+
<a href="{config.relative_path}/user/{userslug}/edit/username" class="list-group-item px-1 text-decoration-none">[[user:change_username]]</a>
|
|
81
|
+
<!-- ENDIF !username:disableEdit -->
|
|
82
|
+
<!-- IF !email:disableEdit -->
|
|
83
|
+
<a href="{config.relative_path}/user/{userslug}/edit/email" class="list-group-item px-1 text-decoration-none">[[user:change_email]]</a>
|
|
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>
|
|
92
|
+
|
|
93
|
+
<!-- IF config.requireEmailConfirmation -->
|
|
94
|
+
<!-- IF email -->
|
|
95
|
+
<!-- IF isSelf -->
|
|
96
|
+
<a id="confirm-email" href="#" class="btn btn-warning <!-- IF email:confirmed -->hide<!-- ENDIF email:confirmed -->">[[user:confirm_email]]</a><br/><br/>
|
|
97
|
+
<!-- ENDIF isSelf -->
|
|
98
|
+
<!-- ENDIF email -->
|
|
99
|
+
<!-- ENDIF config.requireEmailConfirmation -->
|
|
100
|
+
</div>
|
|
101
|
+
|
|
102
|
+
{{{ if sso.length }}}
|
|
120
103
|
<label class="form-label text-sm fw-semibold">[[user:sso.title]]</label>
|
|
121
104
|
<div class="list-group">
|
|
122
105
|
{{{each sso}}}
|
|
@@ -132,8 +115,15 @@
|
|
|
132
115
|
</div>
|
|
133
116
|
{{{end}}}
|
|
134
117
|
</div>
|
|
118
|
+
{{{ end }}}
|
|
119
|
+
|
|
120
|
+
<hr/>
|
|
121
|
+
{{{ if (allowAccountDelete && isSelf) }}}
|
|
122
|
+
<div class="d-flex justify-content-end">
|
|
123
|
+
<button id="deleteAccountBtn" class="btn btn-danger">[[user:delete_account]]</button>
|
|
124
|
+
</div>
|
|
125
|
+
{{{ end }}}
|
|
135
126
|
</div>
|
|
136
|
-
{{{ end }}}
|
|
137
127
|
</div>
|
|
138
128
|
</div>
|
|
139
129
|
</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
|
<h3 class="fw-semibold fs-5">[[pages:{template.name}, {username}]]</h3>
|
|
9
8
|
|
|
10
9
|
{{{ if !users.length }}}
|