nodebb-theme-harmony 1.0.0-beta.3 → 1.0.0-beta.30
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/languages/en-GB/harmony.json +1 -0
- package/library.js +10 -0
- package/package.json +1 -1
- package/public/harmony.js +50 -23
- package/scss/chats.scss +7 -2
- package/scss/common.scss +36 -4
- package/scss/harmony.scss +2 -0
- package/scss/mixins.scss +7 -3
- package/scss/modules/composer.scss +0 -4
- package/scss/modules/cover.scss +1 -11
- package/scss/modules/paginator.scss +24 -0
- package/scss/overrides.scss +2 -0
- package/scss/search.scss +8 -0
- package/scss/sidebar.scss +27 -2
- package/scss/topic.scss +22 -12
- package/templates/account/blocks.tpl +1 -1
- package/templates/account/categories.tpl +1 -2
- package/templates/account/consent.tpl +63 -1
- package/templates/account/edit/password.tpl +1 -1
- package/templates/account/edit/username.tpl +1 -1
- package/templates/account/edit.tpl +2 -2
- package/templates/account/followers.tpl +1 -1
- package/templates/account/following.tpl +1 -1
- package/templates/account/groups.tpl +1 -1
- package/templates/account/info.tpl +2 -19
- package/templates/account/posts.tpl +1 -1
- package/templates/account/profile.tpl +2 -2
- package/templates/account/sessions.tpl +2 -19
- package/templates/account/settings.tpl +1 -1
- package/templates/account/theme.tpl +1 -1
- package/templates/account/topics.tpl +1 -1
- package/templates/account/uploads.tpl +1 -1
- package/templates/categories.tpl +1 -1
- package/templates/category.tpl +10 -11
- package/templates/chats.tpl +1 -1
- package/templates/flags/detail.tpl +0 -1
- package/templates/flags/list.tpl +1 -1
- package/templates/groups/details.tpl +20 -17
- package/templates/groups/members.tpl +0 -2
- package/templates/partials/account/header.tpl +10 -17
- package/templates/partials/account/session-list.tpl +18 -0
- package/templates/partials/categories/item.tpl +11 -14
- package/templates/partials/categories/lastpost.tpl +2 -2
- package/templates/partials/{category-filter-content.tpl → category/filter-dropdown-content.tpl} +6 -4
- package/templates/partials/{category-selector-content.tpl → category/selector-dropdown-content.tpl} +1 -1
- package/templates/partials/category/subcategory.tpl +1 -1
- package/templates/partials/category/tags.tpl +0 -2
- package/templates/partials/category/watch.tpl +28 -4
- package/templates/partials/chats/message-window.tpl +3 -2
- package/templates/partials/chats/message.tpl +1 -1
- package/templates/partials/cookie-consent.tpl +5 -5
- package/templates/partials/flags/filters.tpl +1 -1
- package/templates/partials/groups/admin.tpl +1 -1
- package/templates/partials/groups/badge.tpl +1 -1
- package/templates/partials/groups/sidebar-left.tpl +1 -1
- package/templates/partials/mobile-footer.tpl +70 -62
- package/templates/partials/paginator.tpl +9 -9
- package/templates/partials/post_bar.tpl +5 -4
- package/templates/partials/posts_list_item.tpl +5 -5
- package/templates/partials/quick-search-results.tpl +1 -1
- package/templates/partials/search-filters.tpl +184 -0
- package/templates/partials/search-results.tpl +28 -32
- package/templates/partials/sidebar/chats.tpl +6 -3
- package/templates/partials/sidebar/drafts.tpl +5 -5
- package/templates/partials/sidebar/logged-in-menu.tpl +5 -5
- package/templates/partials/sidebar/notifications.tpl +4 -4
- package/templates/partials/sidebar/search-mobile.tpl +1 -1
- package/templates/partials/sidebar/search.tpl +1 -1
- package/templates/partials/sidebar/user-menu.tpl +1 -1
- package/templates/partials/sidebar-left.tpl +4 -1
- package/templates/partials/skin-switcher.tpl +2 -2
- package/templates/partials/tags_list.tpl +6 -4
- package/templates/partials/topic/browsing-users.tpl +0 -2
- package/templates/partials/topic/event.tpl +1 -1
- package/templates/partials/topic/navigation-post.tpl +5 -9
- package/templates/partials/topic/navigator-mobile.tpl +43 -0
- package/templates/partials/topic/post-editor.tpl +0 -2
- package/templates/partials/topic/post-menu-list.tpl +0 -2
- package/templates/partials/topic/post.tpl +19 -3
- package/templates/partials/topic/quickreply.tpl +3 -3
- package/templates/partials/topic/topic-menu-list.tpl +0 -2
- package/templates/partials/topic/watch.tpl +28 -4
- package/templates/partials/topic-list-bar.tpl +6 -6
- package/templates/partials/topics_list.tpl +46 -45
- package/templates/partials/users/filter-dropdown-content.tpl +20 -0
- package/templates/popular.tpl +1 -1
- package/templates/post-queue.tpl +112 -0
- package/templates/recent.tpl +1 -1
- package/templates/search.tpl +39 -177
- package/templates/top.tpl +1 -1
- package/templates/topic.tpl +2 -2
- package/templates/unread.tpl +1 -1
- package/templates/modules/usercard.tpl +0 -39
- package/templates/partials/acceptTos.tpl +0 -11
- package/templates/partials/category-filter-right.tpl +0 -5
- package/templates/partials/category-filter.tpl +0 -3
- package/templates/partials/category-selector-right.tpl +0 -5
- package/templates/partials/category-selector.tpl +0 -3
- package/templates/partials/slideout-menu.tpl +0 -6
package/library.js
CHANGED
|
@@ -77,6 +77,16 @@ library.defineWidgetAreas = async function (areas) {
|
|
|
77
77
|
});
|
|
78
78
|
|
|
79
79
|
areas = areas.concat([
|
|
80
|
+
{
|
|
81
|
+
name: 'Main post header',
|
|
82
|
+
template: 'topic.tpl',
|
|
83
|
+
location: 'mainpost-header',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: 'Main post footer',
|
|
87
|
+
template: 'topic.tpl',
|
|
88
|
+
location: 'mainpost-footer',
|
|
89
|
+
},
|
|
80
90
|
{
|
|
81
91
|
name: 'Sidebar Footer',
|
|
82
92
|
template: 'global',
|
package/package.json
CHANGED
package/public/harmony.js
CHANGED
|
@@ -5,6 +5,8 @@ $(document).ready(function () {
|
|
|
5
5
|
setupMobileMenu();
|
|
6
6
|
setupSearch();
|
|
7
7
|
setupDrafts();
|
|
8
|
+
handleMobileNavigator();
|
|
9
|
+
setupNavTooltips();
|
|
8
10
|
|
|
9
11
|
$('[component="skinSwitcher"]').on('click', '.dropdown-item', function () {
|
|
10
12
|
const skin = $(this).attr('data-value');
|
|
@@ -36,7 +38,7 @@ $(document).ready(function () {
|
|
|
36
38
|
});
|
|
37
39
|
|
|
38
40
|
function setupMobileMenu() {
|
|
39
|
-
require(['api'], function (api) {
|
|
41
|
+
require(['hooks', 'api', 'navigator'], function (hooks, api, navigator) {
|
|
40
42
|
$('[component="sidebar/toggle"]').on('click', async function () {
|
|
41
43
|
const sidebarEl = $('.sidebar');
|
|
42
44
|
sidebarEl.toggleClass('open');
|
|
@@ -48,6 +50,9 @@ $(document).ready(function () {
|
|
|
48
50
|
});
|
|
49
51
|
}
|
|
50
52
|
$(window).trigger('action:sidebar.toggle');
|
|
53
|
+
if (ajaxify.data.template.topic) {
|
|
54
|
+
hooks.fire('action:navigator.update', { newIndex: navigator.getIndex() });
|
|
55
|
+
}
|
|
51
56
|
});
|
|
52
57
|
});
|
|
53
58
|
}
|
|
@@ -56,32 +61,17 @@ $(document).ready(function () {
|
|
|
56
61
|
$('[component="sidebar/search"]').on('shown.bs.dropdown', function () {
|
|
57
62
|
$(this).find('[component="search/fields"] input[name="query"]').trigger('focus');
|
|
58
63
|
});
|
|
59
|
-
|
|
60
|
-
function resizeResults(hookData) {
|
|
61
|
-
if (hookData && hookData.data && !hookData.data.posts.length) {
|
|
62
|
-
$('.bottombar .quick-search-results').css({ height: 'initial' });
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
const dropdown = $('.bottombar .search-dropdown');
|
|
66
|
-
const padY = dropdown.innerHeight() - dropdown.height();
|
|
67
|
-
const input = dropdown.find('.input-container').outerHeight(true);
|
|
68
|
-
const showMore = dropdown.find('.show-more-container').outerHeight(true);
|
|
69
|
-
const newHeight = Math.max(
|
|
70
|
-
150,
|
|
71
|
-
$(window).height() - (input + (showMore || 0) + (padY * 2) + 30)
|
|
72
|
-
);
|
|
73
|
-
$('.bottombar .quick-search-results').height(newHeight);
|
|
74
|
-
}
|
|
75
|
-
require(['hooks'], function (hooks) {
|
|
76
|
-
$(window).on('resize', resizeResults);
|
|
77
|
-
hooks.on('action:search.quick.complete', resizeResults);
|
|
78
|
-
});
|
|
79
64
|
}
|
|
80
65
|
|
|
81
66
|
function setupDrafts() {
|
|
82
67
|
require(['composer/drafts'], function (drafts) {
|
|
68
|
+
const draftsEl = $('[component="sidebar/drafts"]');
|
|
69
|
+
|
|
83
70
|
function updateBadgeCount() {
|
|
84
71
|
const count = drafts.getAvailableCount();
|
|
72
|
+
if (count > 0) {
|
|
73
|
+
draftsEl.removeClass('hidden');
|
|
74
|
+
}
|
|
85
75
|
$('[component="drafts/count"]').toggleClass('hidden', count <= 0).text(count);
|
|
86
76
|
}
|
|
87
77
|
|
|
@@ -96,7 +86,9 @@ $(document).ready(function () {
|
|
|
96
86
|
}
|
|
97
87
|
draftItems.reverse().forEach((draft) => {
|
|
98
88
|
if (draft) {
|
|
99
|
-
draft.text =
|
|
89
|
+
draft.text = utils.escapeHTML(
|
|
90
|
+
draft.text.replace(/(?:\r\n|\r|\n)/g, '<br>')
|
|
91
|
+
);
|
|
100
92
|
}
|
|
101
93
|
});
|
|
102
94
|
|
|
@@ -105,7 +97,7 @@ $(document).ready(function () {
|
|
|
105
97
|
draftListEl.append(html).find('.timeago').timeago();
|
|
106
98
|
}
|
|
107
99
|
|
|
108
|
-
|
|
100
|
+
|
|
109
101
|
draftsEl.on('shown.bs.dropdown', renderDraftList);
|
|
110
102
|
|
|
111
103
|
draftsEl.on('click', '[component="drafts/open"]', function () {
|
|
@@ -123,6 +115,7 @@ $(document).ready(function () {
|
|
|
123
115
|
updateBadgeCount();
|
|
124
116
|
});
|
|
125
117
|
}
|
|
118
|
+
|
|
126
119
|
function setupNProgress() {
|
|
127
120
|
require(['nprogress'], function (NProgress) {
|
|
128
121
|
window.nprogress = NProgress;
|
|
@@ -137,4 +130,38 @@ $(document).ready(function () {
|
|
|
137
130
|
}
|
|
138
131
|
});
|
|
139
132
|
}
|
|
133
|
+
|
|
134
|
+
function handleMobileNavigator() {
|
|
135
|
+
const paginationBlockEl = $('.pagination-block');
|
|
136
|
+
require(['hooks'], function (hooks) {
|
|
137
|
+
hooks.on('action:ajaxify.end', function () {
|
|
138
|
+
paginationBlockEl.find('.dropdown-menu.show').removeClass('show');
|
|
139
|
+
});
|
|
140
|
+
hooks.on('filter:navigator.scroll', function (hookData) {
|
|
141
|
+
paginationBlockEl.find('.dropdown-menu.show').removeClass('show');
|
|
142
|
+
return hookData;
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function setupNavTooltips() {
|
|
148
|
+
// remove title from user icon in sidebar to prevent double tooltip
|
|
149
|
+
$('.sidebar [component="header/avatar"] .avatar').removeAttr('title');
|
|
150
|
+
const tooltipEls = $('.sidebar [title]');
|
|
151
|
+
tooltipEls.tooltip({
|
|
152
|
+
trigger: 'manual',
|
|
153
|
+
animation: false,
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
tooltipEls.on('mouseenter', function (ev) {
|
|
157
|
+
const target = $(ev.target);
|
|
158
|
+
const isDropdown = target.hasClass('dropdown-menu') || !!target.parents('.dropdown-menu').length;
|
|
159
|
+
if (!$('.sidebar').hasClass('open') && !isDropdown) {
|
|
160
|
+
$(this).tooltip('show');
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
tooltipEls.on('click mouseleave', function () {
|
|
164
|
+
$(this).tooltip('hide');
|
|
165
|
+
});
|
|
166
|
+
}
|
|
140
167
|
});
|
package/scss/chats.scss
CHANGED
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
body.page-user-chats {
|
|
7
7
|
overflow: hidden;
|
|
8
8
|
}
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
[component="chat/nav-wrapper"] {
|
|
10
|
+
width: 300px;
|
|
11
|
+
}
|
|
12
|
+
.expanded-chat {
|
|
11
13
|
// no taskbar so hide minimize button
|
|
12
14
|
[data-action="minimize"] {
|
|
13
15
|
display: none!important;
|
|
@@ -38,6 +40,9 @@ body.page-user-chats {
|
|
|
38
40
|
|
|
39
41
|
/* Mobile handling of chat page */
|
|
40
42
|
@include media-breakpoint-down(md) {
|
|
43
|
+
[component="chat/nav-wrapper"] {
|
|
44
|
+
width: 100%;
|
|
45
|
+
}
|
|
41
46
|
.page-user-chats {
|
|
42
47
|
.chats-full {
|
|
43
48
|
padding-bottom: 8rem!important;
|
package/scss/common.scss
CHANGED
|
@@ -14,8 +14,33 @@ body {
|
|
|
14
14
|
.text-sm { font-size: 0.875rem!important; } // 14px
|
|
15
15
|
.text-xs { font-size: 0.75rem!important; } // 12px
|
|
16
16
|
|
|
17
|
-
.
|
|
18
|
-
|
|
17
|
+
.caret {
|
|
18
|
+
&::after {
|
|
19
|
+
border: none;
|
|
20
|
+
font-family: "FontAwesome";
|
|
21
|
+
content: "\f078";
|
|
22
|
+
color: tint-color($primary, 40%);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
body:not(.page-user) {
|
|
27
|
+
#content {
|
|
28
|
+
transition: opacity 150ms linear;
|
|
29
|
+
&.ajaxifying {
|
|
30
|
+
-moz-opacity: 0;
|
|
31
|
+
opacity: 0;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
.page-user {
|
|
36
|
+
#content {
|
|
37
|
+
transition: opacity 150ms linear;
|
|
38
|
+
&.ajaxifying .account-content {
|
|
39
|
+
transition: opacity 150ms linear;
|
|
40
|
+
-moz-opacity: 0;
|
|
41
|
+
opacity: 0;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
19
44
|
}
|
|
20
45
|
|
|
21
46
|
.sticky-tools {
|
|
@@ -35,6 +60,13 @@ body {
|
|
|
35
60
|
}
|
|
36
61
|
}
|
|
37
62
|
|
|
63
|
+
.btn-link {
|
|
64
|
+
&:hover, &.active {
|
|
65
|
+
background-color: $btn-ghost-hover-color;
|
|
66
|
+
text-decoration: none;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
38
70
|
@mixin btn-ghost-base {
|
|
39
71
|
display: flex;
|
|
40
72
|
align-items: center;
|
|
@@ -48,10 +80,10 @@ body {
|
|
|
48
80
|
text-align: left;
|
|
49
81
|
--bs-text-opacity: 1;
|
|
50
82
|
color: inherit !important;
|
|
51
|
-
|
|
83
|
+
|
|
52
84
|
cursor: pointer;
|
|
53
85
|
&:hover, &.active {
|
|
54
|
-
background-color: $hover-color;
|
|
86
|
+
background-color: $btn-ghost-hover-color;
|
|
55
87
|
text-decoration: none;
|
|
56
88
|
}
|
|
57
89
|
}
|
package/scss/harmony.scss
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
@import "status";
|
|
10
10
|
@import "account";
|
|
11
11
|
@import "groups";
|
|
12
|
+
@import "search";
|
|
12
13
|
@import "modals";
|
|
13
14
|
|
|
14
15
|
@import "modules/breadcrumbs";
|
|
@@ -20,5 +21,6 @@
|
|
|
20
21
|
@import "modules/topics-list";
|
|
21
22
|
@import "modules/cover";
|
|
22
23
|
@import "modules/nprogress";
|
|
24
|
+
@import "modules/paginator";
|
|
23
25
|
|
|
24
26
|
@import "skins";
|
package/scss/mixins.scss
CHANGED
|
@@ -124,9 +124,13 @@
|
|
|
124
124
|
display: none;
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
127
|
+
|
|
128
|
+
[component="topic/event"], [component="topic/necro-post"] {
|
|
129
|
+
&.timeline-event {
|
|
130
|
+
.timeline-text {
|
|
131
|
+
line-height: 16px;
|
|
132
|
+
font-size: 0.75rem;
|
|
133
|
+
}
|
|
130
134
|
}
|
|
131
135
|
}
|
|
132
136
|
}
|
package/scss/modules/cover.scss
CHANGED
|
@@ -12,12 +12,11 @@
|
|
|
12
12
|
|
|
13
13
|
&:hover {
|
|
14
14
|
.controls {
|
|
15
|
-
opacity:
|
|
15
|
+
opacity: 1;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
.controls {
|
|
20
|
-
text-align: center;
|
|
21
20
|
height: 200px;
|
|
22
21
|
line-height: 200px;
|
|
23
22
|
opacity: 0;
|
|
@@ -28,15 +27,6 @@
|
|
|
28
27
|
> * {
|
|
29
28
|
pointer-events: all;
|
|
30
29
|
}
|
|
31
|
-
|
|
32
|
-
.fa {
|
|
33
|
-
color: white;
|
|
34
|
-
background-color: #333;
|
|
35
|
-
opacity: 1;
|
|
36
|
-
margin: 15px;
|
|
37
|
-
padding: 5px;
|
|
38
|
-
border-radius: 4px;
|
|
39
|
-
}
|
|
40
30
|
}
|
|
41
31
|
|
|
42
32
|
&.active {
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
.skin-noskin [component="pagination"] {
|
|
2
|
+
.page-item.active:not(.disabled) .page-link {
|
|
3
|
+
color: $body-color;
|
|
4
|
+
background-color: $gray-300;
|
|
5
|
+
border-color: $gray-300;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.page-item:not(.disabled):hover .page-link {
|
|
9
|
+
color: $body-color;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
[component="pagination"] {
|
|
14
|
+
.page-item.active:not(.disabled) .page-link {
|
|
15
|
+
color: $pagination-active-color;
|
|
16
|
+
}
|
|
17
|
+
.page-item:not(.disabled):hover .page-link {
|
|
18
|
+
color: $pagination-hover-color;
|
|
19
|
+
background-color: $pagination-hover-bg;
|
|
20
|
+
}
|
|
21
|
+
.page-item:not(.disabled) .page-link {
|
|
22
|
+
color: $body-color;
|
|
23
|
+
}
|
|
24
|
+
}
|
package/scss/overrides.scss
CHANGED
package/scss/search.scss
ADDED
package/scss/sidebar.scss
CHANGED
|
@@ -113,7 +113,32 @@
|
|
|
113
113
|
font-size: 9px;
|
|
114
114
|
line-height: 12px;
|
|
115
115
|
}
|
|
116
|
-
|
|
117
|
-
|
|
116
|
+
|
|
117
|
+
.navigation-dropdown, .user-dropdown {
|
|
118
|
+
> li {
|
|
119
|
+
> a, .dropdown-item {
|
|
120
|
+
padding: 10px 20px!important;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
left: 0!important;
|
|
124
|
+
right: 0!important;
|
|
125
|
+
bottom: $spacer!important;
|
|
126
|
+
box-shadow: none!important;
|
|
127
|
+
max-height: 60vh!important;
|
|
128
|
+
overflow: auto!important;
|
|
129
|
+
}
|
|
130
|
+
.search-dropdown .quick-search-results {
|
|
131
|
+
max-height: 225px!important;
|
|
132
|
+
overflow-y: auto!important;
|
|
133
|
+
}
|
|
134
|
+
.search-dropdown, .chats-dropdown, .notifications-dropdown, .drafts-dropdown {
|
|
135
|
+
left: 0!important;
|
|
136
|
+
right: 0!important;
|
|
137
|
+
bottom: $spacer!important;
|
|
138
|
+
box-shadow: none!important;
|
|
139
|
+
ul {
|
|
140
|
+
max-height: 60vh!important;
|
|
141
|
+
overflow-y: auto!important;
|
|
142
|
+
}
|
|
118
143
|
}
|
|
119
144
|
}
|
package/scss/topic.scss
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
.pagination-block { display: none; }
|
|
2
|
+
|
|
1
3
|
.page-topic {
|
|
2
4
|
[component="topic/title"] {
|
|
3
5
|
font-size: 28px;
|
|
@@ -14,18 +16,6 @@
|
|
|
14
16
|
line-height: 20px;
|
|
15
17
|
}
|
|
16
18
|
|
|
17
|
-
.action-bar {
|
|
18
|
-
.dropdown-toggle::after {
|
|
19
|
-
border: none;
|
|
20
|
-
font-family: "FontAwesome";
|
|
21
|
-
content: "\f078";
|
|
22
|
-
color: tint-color($primary, 40%);
|
|
23
|
-
|
|
24
|
-
position: relative;
|
|
25
|
-
top: 2px;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
19
|
.topic {
|
|
30
20
|
.posts {
|
|
31
21
|
max-width: 960px;
|
|
@@ -67,6 +57,17 @@
|
|
|
67
57
|
[component="post/reply-count"] {
|
|
68
58
|
font-size: $font-size-base * .75;
|
|
69
59
|
}
|
|
60
|
+
|
|
61
|
+
[component="post/upvote"], [component="post/downvote"] {
|
|
62
|
+
&.upvoted, &.downvoted {
|
|
63
|
+
background-color: lighten($btn-ghost-hover-color, 5%);
|
|
64
|
+
|
|
65
|
+
&:hover {
|
|
66
|
+
background-color: $btn-ghost-hover-color;
|
|
67
|
+
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
73
|
|
|
@@ -106,6 +107,15 @@
|
|
|
106
107
|
}
|
|
107
108
|
}
|
|
108
109
|
}
|
|
110
|
+
|
|
111
|
+
.pagination-block {
|
|
112
|
+
display: block;
|
|
113
|
+
transition: opacity 250ms ease-in;
|
|
114
|
+
opacity: 0;
|
|
115
|
+
&.ready {
|
|
116
|
+
opacity: 1;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
109
119
|
}
|
|
110
120
|
|
|
111
121
|
@include media-breakpoint-up(sm) {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<!-- IMPORT partials/account/header.tpl -->
|
|
3
3
|
<div class="d-flex flex-column flex-md-row">
|
|
4
4
|
<!-- IMPORT partials/account/sidebar-left.tpl -->
|
|
5
|
-
<div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
5
|
+
<div class="account-content 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">
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
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;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<h3 class="fw-semibold fs-5">{title}</h3>
|
|
8
8
|
|
|
9
9
|
<div class="row">
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
<div class="btn-group bottom-sheet" component="category/watch/all">
|
|
12
12
|
<button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
13
13
|
<span>[[user:change_all]]</span>
|
|
14
|
-
<span class="caret"></span>
|
|
15
14
|
</button>
|
|
16
15
|
<ul class="dropdown-menu">
|
|
17
16
|
<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>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
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;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<h3 class="fw-semibold fs-5">[[user:consent.title]]</h3>
|
|
8
8
|
|
|
9
9
|
<p class="lead">[[user:consent.lead]]</p>
|
|
@@ -12,6 +12,68 @@
|
|
|
12
12
|
<hr />
|
|
13
13
|
|
|
14
14
|
<div class="row">
|
|
15
|
+
<div class="col-sm-6">
|
|
16
|
+
<!-- IF gdpr_consent -->
|
|
17
|
+
<div class="alert alert-success">
|
|
18
|
+
<i class="fa fa-check float-end fa-3x"></i>
|
|
19
|
+
[[user:consent.received]]
|
|
20
|
+
</div>
|
|
21
|
+
<!-- ELSE -->
|
|
22
|
+
<div class="alert alert-warning">
|
|
23
|
+
[[user:consent.not_received]]
|
|
24
|
+
<br /><br />
|
|
25
|
+
<div class="text-center">
|
|
26
|
+
<button class="btn btn-warning" data-action="consent">[[user:consent.give]]</button>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
<!-- END -->
|
|
30
|
+
<div class="card">
|
|
31
|
+
<div class="card-body">
|
|
32
|
+
<p>[[user:consent.email_intro]]</p>
|
|
33
|
+
{{{ if digest.enabled }}}
|
|
34
|
+
<p>[[user:consent.digest_frequency, {digest.frequency}]]</p>
|
|
35
|
+
{{{ else }}}
|
|
36
|
+
<p>[[user:consent.digest_off]]</p>
|
|
37
|
+
{{{ end }}}
|
|
38
|
+
|
|
39
|
+
<div class="d-grid">
|
|
40
|
+
<a class="btn btn-outline-secondary" href="./settings">
|
|
41
|
+
<i class="fa fa-cog"></i>
|
|
42
|
+
[[pages:account/settings]]
|
|
43
|
+
</a>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
<div class="col-sm-6">
|
|
49
|
+
<div class="card">
|
|
50
|
+
<div class="card-body">
|
|
51
|
+
<p><strong>[[user:consent.right_of_access]]</strong></p>
|
|
52
|
+
<p>[[user:consent.right_of_access_description]]</p>
|
|
53
|
+
<p><strong>[[user:consent.right_to_rectification]]</strong></p>
|
|
54
|
+
<p>[[user:consent.right_to_rectification_description]]</p>
|
|
55
|
+
<p><strong>[[user:consent.right_to_erasure]]</strong></p>
|
|
56
|
+
<p>[[user:consent.right_to_erasure_description]]</p>
|
|
57
|
+
<p><strong>[[user:consent.right_to_data_portability]]</strong></p>
|
|
58
|
+
<p>[[user:consent.right_to_data_portability_description]]</p>
|
|
59
|
+
|
|
60
|
+
<hr />
|
|
61
|
+
|
|
62
|
+
<div class="btn-group-vertical d-grid">
|
|
63
|
+
<a data-action="export-profile" class="btn btn-outline-secondary">
|
|
64
|
+
<i class="fa fa-download"></i> [[user:consent.export_profile]]
|
|
65
|
+
</a>
|
|
66
|
+
<a data-action="export-posts" class="btn btn-outline-secondary">
|
|
67
|
+
<i class="fa fa-download"></i> [[user:consent.export_posts]]
|
|
68
|
+
</a>
|
|
69
|
+
<a data-action="export-uploads" class="btn btn-outline-secondary">
|
|
70
|
+
<i class="fa fa-download"></i> [[user:consent.export_uploads]]
|
|
71
|
+
</a>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
15
77
|
</div>
|
|
16
78
|
</div>
|
|
17
79
|
</div>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
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;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<h3 class="fw-semibold fs-5">{{{ if isSelf }}}[[user:change_password]]{{{ else }}}[[pages:{template.name}, {username}]]{{{ end }}}</h3>
|
|
8
8
|
|
|
9
9
|
<form class="edit-form">
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
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;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<h3 class="fw-semibold fs-5">{{{ if isSelf }}}[[user:change_username]]{{{ else }}}[[pages:{template.name}, {username}]]{{{ end }}}</h3>
|
|
8
8
|
|
|
9
9
|
<form class="form-horizontal edit-form">
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
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;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<div class="d-flex justify-content-between mb-3">
|
|
8
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>
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
<div class="text-center">
|
|
75
75
|
<ul class="list-group mb-3 text-sm text-nowrap">
|
|
76
76
|
<!-- IF allowProfilePicture -->
|
|
77
|
-
<a
|
|
77
|
+
<a component="profile/change/picture" href="#" class="list-group-item px-1 text-decoration-none">[[user:change_picture]]</a>
|
|
78
78
|
<!-- ENDIF allowProfilePicture -->
|
|
79
79
|
<!-- IF !username:disableEdit -->
|
|
80
80
|
<a href="{config.relative_path}/user/{userslug}/edit/username" class="list-group-item px-1 text-decoration-none">[[user:change_username]]</a>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
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;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<h3 class="fw-semibold fs-5">[[pages:{template.name}, {username}]]</h3>
|
|
8
8
|
|
|
9
9
|
{{{ if !users.length }}}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
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;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<h3 class="fw-semibold fs-5">[[pages:{template.name}, {username}]]</h3>
|
|
8
8
|
|
|
9
9
|
{{{ if !users.length }}}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
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;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
<h3 class="fw-semibold fs-5">[[pages:{template.name}, {username}]]</h3>
|
|
8
8
|
|
|
9
9
|
<div class="groups">
|
|
@@ -3,29 +3,12 @@
|
|
|
3
3
|
|
|
4
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;">
|
|
6
|
+
<div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
|
|
7
7
|
{{{ if sessions.length }}}
|
|
8
8
|
<div class="mb-3">
|
|
9
9
|
<h4>[[global:sessions]]</h4>
|
|
10
10
|
<ul class="list-group" component="user/sessions">
|
|
11
|
-
|
|
12
|
-
<li class="list-group-item" data-uuid="{../uuid}">
|
|
13
|
-
<div class="float-end">
|
|
14
|
-
<!-- IF isSelfOrAdminOrGlobalModerator -->
|
|
15
|
-
<!-- IF !../current -->
|
|
16
|
-
<button class="btn btn-sm btn-outline-secondary" type="button" data-action="revokeSession">Revoke Session</button>
|
|
17
|
-
<!-- ENDIF !../current -->
|
|
18
|
-
<!-- ENDIF isSelfOrAdminOrGlobalModerator -->
|
|
19
|
-
{function.userAgentIcons}
|
|
20
|
-
<i class="fa fa-circle text-<!-- IF ../current -->success<!-- ELSE -->muted<!-- ENDIF ../current -->"></i>
|
|
21
|
-
</div>
|
|
22
|
-
{../browser} {../version} on {../platform}<br />
|
|
23
|
-
<small class="timeago text-muted" title="{../datetimeISO}"></small>
|
|
24
|
-
<ul>
|
|
25
|
-
<li><strong>[[global:ip_address]]</strong>: {../ip}</li>
|
|
26
|
-
</ul>
|
|
27
|
-
</li>
|
|
28
|
-
{{{end}}}
|
|
11
|
+
<!-- IMPORT partials/account/session-list.tpl -->
|
|
29
12
|
</ul>
|
|
30
13
|
</div>
|
|
31
14
|
{{{ end }}}
|