nodebb-theme-harmony 2.0.0-pre.9 → 2.0.1

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.
Files changed (163) hide show
  1. package/.eslintrc +3 -3
  2. package/README.md +22 -19
  3. package/lib/controllers.js +29 -29
  4. package/library.js +184 -190
  5. package/package.json +48 -48
  6. package/plugin.json +24 -25
  7. package/public/.eslintrc +3 -3
  8. package/public/admin.js +15 -15
  9. package/public/harmony.js +287 -287
  10. package/public/settings.js +31 -31
  11. package/renovate.json +6 -6
  12. package/scss/account.scss +27 -27
  13. package/scss/category.scss +3 -3
  14. package/scss/chats.scss +11 -11
  15. package/scss/common.scss +122 -128
  16. package/scss/fonts.scss +19 -19
  17. package/scss/groups.scss +22 -22
  18. package/scss/harmony.scss +24 -25
  19. package/scss/header.scss +15 -15
  20. package/scss/mixins.scss +183 -176
  21. package/scss/modals.scss +6 -6
  22. package/scss/modules/breadcrumbs.scss +15 -15
  23. package/scss/modules/cover.scss +102 -104
  24. package/scss/modules/filters.scss +7 -7
  25. package/scss/modules/nprogress.scss +80 -80
  26. package/scss/modules/paginator.scss +23 -23
  27. package/scss/modules/tags.scss +5 -5
  28. package/scss/modules/topic-navigator.scss +52 -52
  29. package/scss/modules/topics-list.scss +40 -40
  30. package/scss/modules/user-menu.scss +10 -10
  31. package/scss/overrides.scss +65 -61
  32. package/scss/sidebar.scss +188 -189
  33. package/scss/skins.scss +58 -49
  34. package/scss/status.scss +24 -24
  35. package/scss/topic.scss +130 -138
  36. package/templates/account/blocks.tpl +51 -40
  37. package/templates/account/categories.tpl +63 -63
  38. package/templates/account/consent.tpl +73 -73
  39. package/templates/account/edit/password.tpl +34 -34
  40. package/templates/account/edit/username.tpl +29 -30
  41. package/templates/account/edit.tpl +137 -122
  42. package/templates/account/followers.tpl +14 -14
  43. package/templates/account/following.tpl +15 -15
  44. package/templates/account/groups.tpl +15 -15
  45. package/templates/account/info.tpl +270 -201
  46. package/templates/account/posts.tpl +35 -35
  47. package/templates/account/profile.tpl +92 -95
  48. package/templates/account/read.tpl +1 -0
  49. package/templates/account/sessions.tpl +8 -8
  50. package/templates/account/settings.tpl +236 -236
  51. package/templates/account/shares.tpl +20 -0
  52. package/templates/account/tags.tpl +12 -12
  53. package/templates/account/theme.tpl +63 -63
  54. package/templates/account/topics.tpl +44 -43
  55. package/templates/account/uploads.tpl +37 -37
  56. package/templates/admin/plugins/harmony.tpl +57 -56
  57. package/templates/categories.tpl +29 -29
  58. package/templates/category.tpl +72 -72
  59. package/templates/footer.tpl +17 -17
  60. package/templates/groups/details.tpl +86 -86
  61. package/templates/groups/list.tpl +58 -56
  62. package/templates/groups/members.tpl +9 -9
  63. package/templates/header.tpl +45 -45
  64. package/templates/notifications.tpl +32 -32
  65. package/templates/partials/account/admin-menu.tpl +36 -36
  66. package/templates/partials/account/category-item.tpl +22 -22
  67. package/templates/partials/account/footer.tpl +2 -2
  68. package/templates/partials/account/header.tpl +98 -98
  69. package/templates/partials/account/session-list.tpl +18 -18
  70. package/templates/partials/account/sidebar-left.tpl +116 -102
  71. package/templates/partials/breadcrumbs-json-ld.tpl +16 -26
  72. package/templates/partials/breadcrumbs.tpl +12 -12
  73. package/templates/partials/buttons/newTopic.tpl +22 -22
  74. package/templates/partials/categories/item.tpl +56 -56
  75. package/templates/partials/categories/lastpost.tpl +24 -24
  76. package/templates/partials/categories/link.tpl +4 -4
  77. package/templates/partials/category/subcategory.tpl +18 -18
  78. package/templates/partials/category/tags.tpl +3 -3
  79. package/templates/partials/cookie-consent.tpl +6 -6
  80. package/templates/partials/groups/admin.tpl +95 -95
  81. package/templates/partials/groups/invited.tpl +32 -32
  82. package/templates/partials/groups/list.tpl +15 -15
  83. package/templates/partials/groups/memberlist.tpl +46 -46
  84. package/templates/partials/groups/pending.tpl +29 -29
  85. package/templates/partials/groups/sidebar-left.tpl +27 -27
  86. package/templates/partials/header/brand.tpl +27 -25
  87. package/templates/partials/mobile-footer.tpl +95 -98
  88. package/templates/partials/notifications_list.tpl +44 -44
  89. package/templates/partials/paginator.tpl +46 -46
  90. package/templates/partials/post_bar.tpl +27 -29
  91. package/templates/partials/posts_list.tpl +7 -7
  92. package/templates/partials/posts_list_item.tpl +19 -19
  93. package/templates/partials/quick-search-results.tpl +46 -46
  94. package/templates/partials/search-filters.tpl +183 -183
  95. package/templates/partials/search-results.tpl +54 -54
  96. package/templates/partials/sidebar/chats.tpl +45 -45
  97. package/templates/partials/sidebar/drafts.tpl +63 -63
  98. package/templates/partials/sidebar/logged-in-menu.tpl +22 -22
  99. package/templates/partials/sidebar/logged-out-menu.tpl +44 -44
  100. package/templates/partials/sidebar/notifications.tpl +49 -49
  101. package/templates/partials/sidebar/search-mobile.tpl +28 -28
  102. package/templates/partials/sidebar/search.tpl +30 -30
  103. package/templates/partials/sidebar/user-menu.tpl +103 -103
  104. package/templates/partials/sidebar-left.tpl +39 -42
  105. package/templates/partials/sidebar-right.tpl +16 -16
  106. package/templates/partials/skin-switcher.tpl +50 -50
  107. package/templates/partials/tags_list.tpl +7 -5
  108. package/templates/partials/toast.tpl +19 -19
  109. package/templates/partials/topic/event.tpl +12 -12
  110. package/templates/partials/topic/navigation-post.tpl +9 -9
  111. package/templates/partials/topic/navigator-mobile.tpl +61 -61
  112. package/templates/partials/topic/navigator.tpl +26 -26
  113. package/templates/partials/topic/necro-post.tpl +5 -5
  114. package/templates/partials/topic/post-menu-list.tpl +156 -140
  115. package/templates/partials/topic/post-menu.tpl +4 -30
  116. package/templates/partials/topic/post-placeholder.tpl +14 -14
  117. package/templates/partials/topic/post.tpl +146 -139
  118. package/templates/partials/topic/quickreply.tpl +28 -28
  119. package/templates/partials/topic/reply-button.tpl +26 -24
  120. package/templates/partials/topic/selection-tooltip.tpl +2 -2
  121. package/templates/partials/topic/sort.tpl +27 -27
  122. package/templates/partials/topic/stats.tpl +14 -14
  123. package/templates/partials/topic/thumbs.tpl +4 -4
  124. package/templates/partials/topic/tools.tpl +8 -12
  125. package/templates/partials/topic/topic-menu-list.tpl +73 -73
  126. package/templates/partials/topic/watch.tpl +59 -59
  127. package/templates/partials/topic-filters.tpl +15 -15
  128. package/templates/partials/topic-list-bar.tpl +54 -54
  129. package/templates/partials/topic-terms.tpl +15 -15
  130. package/templates/partials/topics_list.tpl +131 -123
  131. package/templates/partials/users/item.tpl +39 -37
  132. package/templates/partials/users_list.tpl +4 -4
  133. package/templates/partials/users_list_menu.tpl +14 -14
  134. package/templates/popular.tpl +34 -34
  135. package/templates/post-queue.tpl +211 -207
  136. package/templates/recent.tpl +42 -35
  137. package/templates/search.tpl +46 -46
  138. package/templates/tag.tpl +34 -34
  139. package/templates/tags.tpl +49 -49
  140. package/templates/top.tpl +34 -34
  141. package/templates/topic.tpl +123 -130
  142. package/templates/unread.tpl +31 -31
  143. package/templates/users.tpl +39 -39
  144. package/templates/world.tpl +66 -35
  145. package/theme.json +6 -6
  146. package/package-lock.json +0 -2368
  147. package/scss/modules/bottom-sheet.scss +0 -52
  148. package/templates/flags/detail.tpl +0 -179
  149. package/templates/flags/list.tpl +0 -6
  150. package/templates/login.tpl +0 -102
  151. package/templates/partials/category/filter-dropdown-content.tpl +0 -41
  152. package/templates/partials/category/selector-dropdown-content.tpl +0 -39
  153. package/templates/partials/category/sort.tpl +0 -39
  154. package/templates/partials/category/tools.tpl +0 -89
  155. package/templates/partials/category/watch.tpl +0 -67
  156. package/templates/partials/flags/bulk-actions.tpl +0 -9
  157. package/templates/partials/flags/filters.tpl +0 -189
  158. package/templates/partials/flags/results.tpl +0 -38
  159. package/templates/partials/groups/filter-dropdown-content.tpl +0 -25
  160. package/templates/partials/tags/filter-dropdown-content.tpl +0 -38
  161. package/templates/partials/tags/watch.tpl +0 -42
  162. package/templates/partials/users/filter-dropdown-content.tpl +0 -23
  163. package/templates/register.tpl +0 -104
package/scss/topic.scss CHANGED
@@ -1,139 +1,131 @@
1
- body.template-topic {
2
- .breadcrumb .breadcrumb-item:last-child {
3
- display: none;
4
- }
5
- .topic {
6
- .posts-container {
7
- max-width: 960px;
8
- width: 960px;
9
- }
10
-
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
- &.timeline {
18
- @include timeline-style;
19
- }
20
-
21
- .post-header {
22
- font-size: 0.8125rem;
23
- line-height: 1.25rem;
24
-
25
- .bookmarked {
26
- transition: $transition-fade;
27
- }
28
- }
29
-
30
- > [component="post"] > [component="post/footer"] {
31
- margin-left: calc($spacer * 2.5);
32
- }
33
-
34
- [component="post"] {
35
- &.selected .post-container {
36
- background-color: mix($body-bg, $body-color, 90%);
37
- }
38
- &.deleted .post-container .content { opacity: .65; }
39
-
40
- [component="post/content"] {
41
- @include fix-lists();
42
-
43
- > blockquote {
44
- > blockquote {
45
- > *:not(.blockquote) {
46
- display: none;
47
- }
48
- }
49
-
50
- > blockquote.uncollapsed {
51
- > *:not(.blockquote) {
52
- display: block;
53
- }
54
- }
55
- }
56
-
57
- @include media-breakpoint-up(lg) {
58
- table { // text-break breaks table formatting
59
- word-break:initial!important;
60
- }
61
- }
62
- }
63
- }
64
-
65
- [component="post/upvote"], [component="post/downvote"] {
66
- &.upvoted, &.downvoted {
67
- background-color: var(--btn-ghost-active-color);
68
-
69
- &:hover {
70
- background-color: var(--btn-ghost-hover-color);
71
- }
72
- }
73
- }
74
- }
75
- }
76
-
77
- .quick-reply {
78
- @include topic-avatars();
79
- }
80
-
81
- [component="post/replies/container"] {
82
- .icon {
83
- display: none !important;
84
- }
85
-
86
- .post-header .icon {
87
- display: initial !important;
88
-
89
- .status {
90
- display: none;
91
- }
92
- }
93
-
94
- .timeline-event {
95
- display: none !important;
96
- }
97
-
98
- [component="post"] {
99
- padding-top: 0 !important;
100
- padding-bottom: $spacer;
101
- &:last-of-type {
102
- padding-bottom: 0;
103
- .post-footer {
104
- border-bottom: none !important;
105
- }
106
- }
107
- }
108
- }
109
-
110
-
111
- [component="topic/thumb/list"] {
112
- height: calc($font-size-base * 4);
113
- }
114
- }
115
-
116
- @include media-breakpoint-up(sm) {
117
- body.template-topic {
118
- .topic .posts {
119
- [component="post"] {
120
- [component="post/actions"] {
121
- opacity: 0;
122
- transition: $transition-fade;
123
-
124
- &:has([aria-expanded="true"]) {
125
- opacity: 1;
126
- }
127
- }
128
- [component="post/actions"]:focus-within {
129
- opacity: 1;
130
- }
131
- &:hover {
132
- > .post-footer > [component="post/actions"] {
133
- opacity: 1;
134
- }
135
- }
136
- }
137
- }
138
- }
1
+ body.template-topic {
2
+ .breadcrumb .breadcrumb-item:last-child {
3
+ display: none;
4
+ }
5
+ .topic {
6
+ .posts-container {
7
+ max-width: 960px;
8
+ width: 960px;
9
+ }
10
+
11
+ .posts {
12
+ &.timeline {
13
+ @include timeline-style;
14
+ }
15
+
16
+ .post-header {
17
+ font-size: 0.8125rem;
18
+ line-height: 1.25rem;
19
+
20
+ .bookmarked {
21
+ transition: $transition-fade;
22
+ }
23
+ }
24
+
25
+ [component="post"] {
26
+ &.selected .post-container {
27
+ background-color: mix($body-bg, $body-color, 90%);
28
+ }
29
+ &.deleted .post-container .content { opacity: .65; }
30
+
31
+ [component="post/content"] {
32
+ @include fix-lists();
33
+
34
+ > blockquote {
35
+ > blockquote {
36
+ > *:not(.blockquote) {
37
+ display: none;
38
+ }
39
+ }
40
+
41
+ > blockquote.uncollapsed {
42
+ > *:not(.blockquote) {
43
+ display: block;
44
+ }
45
+ }
46
+ }
47
+
48
+ @include media-breakpoint-up(lg) {
49
+ table { // text-break breaks table formatting
50
+ word-break:initial!important;
51
+ }
52
+ }
53
+ }
54
+ }
55
+
56
+ [component="post/upvote"], [component="post/downvote"] {
57
+ &.upvoted, &.downvoted {
58
+ background-color: var(--btn-ghost-active-color);
59
+
60
+ &:hover {
61
+ background-color: var(--btn-ghost-hover-color);
62
+ }
63
+ }
64
+ }
65
+ }
66
+ }
67
+
68
+ .quick-reply {
69
+ @include topic-avatars();
70
+ }
71
+
72
+ [component="post/replies/container"] {
73
+ .icon {
74
+ display: none !important;
75
+ }
76
+
77
+ .post-header .icon {
78
+ display: initial !important;
79
+
80
+ .status {
81
+ display: none;
82
+ }
83
+ }
84
+
85
+ .timeline-event {
86
+ display: none !important;
87
+ }
88
+
89
+ [component="post"] {
90
+ padding-top: 0 !important;
91
+ padding-bottom: $spacer;
92
+ &:last-of-type {
93
+ padding-bottom: 0;
94
+ .post-footer {
95
+ padding-bottom: 0!important;
96
+ border-bottom: none !important;
97
+ }
98
+ }
99
+ }
100
+ }
101
+
102
+
103
+ [component="topic/thumb/list"] > a{
104
+ height: calc($font-size-base * 4);
105
+ }
106
+ }
107
+
108
+ @include media-breakpoint-up(lg) {
109
+ body.template-topic {
110
+ .topic .posts {
111
+ [component="post"] {
112
+ [component="post/actions"] {
113
+ opacity: 0;
114
+ transition: $transition-fade;
115
+
116
+ &:has([aria-expanded="true"]) {
117
+ opacity: 1;
118
+ }
119
+ }
120
+ [component="post/actions"]:focus-within {
121
+ opacity: 1;
122
+ }
123
+ &:hover {
124
+ > div > .post-container > [component="post/footer"] > div > [component="post/actions"] {
125
+ opacity: 1;
126
+ }
127
+ }
128
+ }
129
+ }
130
+ }
139
131
  }
@@ -1,40 +1,51 @@
1
- <!-- IMPORT partials/account/header.tpl -->
2
- <div class="d-flex justify-content-between mb-3">
3
- <h3 class="fw-semibold fs-5">[[pages:account/blocks, {username}]]</h3>
4
- <div class="justify-content-end">
5
- <div class="dropdown">
6
- <div class="input-group">
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
-
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><a href="#" class="dropdown-item" role="menuitem">[[admin/menu:search.start-typing]]</a></li>
11
- {{{ each edit }}}
12
- <li>
13
- <div class="dropdown-item d-flex flex-nowrap gap-2 justify-content-between" role="menuitem">
14
- <div class="text-truncate">
15
- <a href="{config.relative_path}/uid/{./uid}" class="text-decoration-none">{buildAvatar(edit, "24px", true)} {./username}</a>
16
- </div>
17
- <button class="btn btn-sm btn-primary text-nowrap" data-uid="{./uid}" data-action="toggle">[[user:block-toggle]]</button>
18
- </div>
19
- </li>
20
- {{{ end }}}
21
- </ul>
22
-
23
- <button class="btn btn-primary btn-sm" type="button">
24
- <i class="fa fa-search"></i>
25
- </button>
26
- </div>
27
- </div>
28
- </div>
29
- </div>
30
- <div class="users">
31
- <div id="users-container" class="row row-cols-2 row-cols-lg-3 row-cols-xl-4 g-2">
32
- {{{ each users }}}
33
- <!-- IMPORT partials/users/item.tpl -->
34
- {{{ end }}}
35
- </div>
36
- <div class="alert alert-warning text-center"{{{ if users.length }}} style="display: none;"{{{ end }}}>[[user:has-no-blocks]]</div>
37
- <!-- IMPORT partials/paginator.tpl -->
38
- </div>
39
-
40
- <!-- IMPORT partials/account/footer.tpl -->
1
+ <!-- IMPORT partials/account/header.tpl -->
2
+ <div class="d-flex justify-content-between mb-3">
3
+ <h3 class="fw-semibold fs-5">[[pages:account/blocks, {username}]]</h3>
4
+ <div class="justify-content-end">
5
+ <div class="dropdown">
6
+ <div class="input-group">
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
+
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 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>
16
+ {{{ each edit }}}
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">
19
+ <div class="text-truncate">
20
+ <a href="{config.relative_path}/uid/{./uid}" class="text-decoration-none">{buildAvatar(edit, "24px", true)} {./username}</a>
21
+ </div>
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>
25
+ </div>
26
+ </li>
27
+ {{{ end }}}
28
+ </ul>
29
+
30
+ <button class="btn btn-primary btn-sm" type="button">
31
+ <i class="fa fa-search"></i>
32
+ </button>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </div>
37
+ <div class="users">
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">
41
+ {{{ each users }}}
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>
46
+ {{{ end }}}
47
+ </div>
48
+ <!-- IMPORT partials/paginator.tpl -->
49
+ </div>
50
+
51
+ <!-- IMPORT partials/account/footer.tpl -->
@@ -1,64 +1,64 @@
1
- <!-- IMPORT partials/account/header.tpl -->
2
-
3
- <div class="d-flex justify-content-between align-items-center mb-3">
4
- <div class="d-flex gap-1">
5
- <h3 class="fw-semibold fs-5 mb-0">{title}</h3>
6
- </div>
7
-
8
- <div class="d-flex gap-1">
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">
11
- <span>[[user:change-all]]</span>
12
- </button>
13
- <ul class="dropdown-menu p-1 text-sm dropdown-menu-end" role="menu">
14
- <li>
15
- <a class="dropdown-item rounded-1 d-flex flex-column p-2" href="#" component="category/watching" data-state="watching" role="menuitem">
16
- <div class="d-flex align-items-center gap-2">
17
- <i class="flex-shrink-0 fa fa-fw fa-bell-o"></i>
18
- <span class="flex-grow-1 fw-semibold">[[category:watching]]</span>
19
- </div>
20
- <div class="help-text text-muted text-xs">[[category:watching.description]]</div>
21
- </a>
22
- </li>
23
- <li>
24
- <a class="dropdown-item rounded-1 d-flex flex-column p-2" href="#" component="category/tracking" data-state="tracking" role="menuitem">
25
- <div class="d-flex align-items-center gap-2">
26
- <i class="flex-shrink-0 fa fa-fw fa-inbox"></i>
27
- <span class="flex-grow-1 fw-semibold">[[category:tracking]]</span>
28
- </div>
29
- <div class="help-text text-muted text-xs">[[category:tracking.description]]</div>
30
- </a>
31
- </li>
32
- <li>
33
- <a class="dropdown-item rounded-1 d-flex flex-column p-2" href="#" component="category/notwatching" data-state="notwatching" role="menuitem">
34
- <div class="d-flex align-items-center gap-2">
35
- <i class="flex-shrink-0 fa fa-fw fa-clock-o"></i>
36
- <span class="flex-grow-1 fw-semibold">[[category:not-watching]]</span>
37
- </div>
38
- <div class="help-text text-muted text-xs">[[category:not-watching.description]]</div>
39
- </a>
40
- </li>
41
- <li>
42
- <a class="dropdown-item rounded-1 d-flex flex-column p-2" href="#" component="category/ignoring" data-state="ignoring" role="menuitem">
43
- <div class="d-flex align-items-center gap-2">
44
- <i class="flex-shrink-0 fa fa-fw fa-eye-slash"></i>
45
- <span class="flex-grow-1 fw-semibold">[[category:ignoring]]</span>
46
- </div>
47
- <div class="help-text text-muted text-xs">[[category:ignoring.description]]</div>
48
- </a>
49
- </li>
50
- </ul>
51
- </div>
52
- </div>
53
- </div>
54
-
55
- <div>
56
- <ul class="categories list-unstyled" itemscope itemtype="http://www.schema.org/ItemList">
57
- {{{each categories}}}
58
- <!-- IMPORT partials/account/category-item.tpl -->
59
- {{{end}}}
60
- </ul>
61
- <!-- IMPORT partials/paginator.tpl -->
62
- </div>
63
-
1
+ <!-- IMPORT partials/account/header.tpl -->
2
+
3
+ <div class="d-flex justify-content-between align-items-center mb-3">
4
+ <div class="d-flex gap-1">
5
+ <h3 class="fw-semibold fs-5 mb-0">{title}</h3>
6
+ </div>
7
+
8
+ <div class="d-flex gap-1">
9
+ <div class="btn-group bottom-sheet" component="category/watch/all">
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
+ <span>[[user:change-all]]</span>
12
+ </button>
13
+ <ul class="dropdown-menu p-1 text-sm dropdown-menu-end" role="menu">
14
+ <li>
15
+ <a class="dropdown-item rounded-1 d-flex flex-column p-2" href="#" component="category/watching" data-state="watching" role="menuitem">
16
+ <div class="d-flex align-items-center gap-2">
17
+ <i class="flex-shrink-0 fa fa-fw fa-bell-o"></i>
18
+ <span class="flex-grow-1 fw-semibold">[[category:watching]]</span>
19
+ </div>
20
+ <div class="help-text text-muted text-xs">[[category:watching.description]]</div>
21
+ </a>
22
+ </li>
23
+ <li>
24
+ <a class="dropdown-item rounded-1 d-flex flex-column p-2" href="#" component="category/tracking" data-state="tracking" role="menuitem">
25
+ <div class="d-flex align-items-center gap-2">
26
+ <i class="flex-shrink-0 fa fa-fw fa-inbox"></i>
27
+ <span class="flex-grow-1 fw-semibold">[[category:tracking]]</span>
28
+ </div>
29
+ <div class="help-text text-muted text-xs">[[category:tracking.description]]</div>
30
+ </a>
31
+ </li>
32
+ <li>
33
+ <a class="dropdown-item rounded-1 d-flex flex-column p-2" href="#" component="category/notwatching" data-state="notwatching" role="menuitem">
34
+ <div class="d-flex align-items-center gap-2">
35
+ <i class="flex-shrink-0 fa fa-fw fa-clock-o"></i>
36
+ <span class="flex-grow-1 fw-semibold">[[category:not-watching]]</span>
37
+ </div>
38
+ <div class="help-text text-muted text-xs">[[category:not-watching.description]]</div>
39
+ </a>
40
+ </li>
41
+ <li>
42
+ <a class="dropdown-item rounded-1 d-flex flex-column p-2" href="#" component="category/ignoring" data-state="ignoring" role="menuitem">
43
+ <div class="d-flex align-items-center gap-2">
44
+ <i class="flex-shrink-0 fa fa-fw fa-eye-slash"></i>
45
+ <span class="flex-grow-1 fw-semibold">[[category:ignoring]]</span>
46
+ </div>
47
+ <div class="help-text text-muted text-xs">[[category:ignoring.description]]</div>
48
+ </a>
49
+ </li>
50
+ </ul>
51
+ </div>
52
+ </div>
53
+ </div>
54
+
55
+ <div>
56
+ <ul class="categories list-unstyled" itemscope itemtype="http://www.schema.org/ItemList">
57
+ {{{each categories}}}
58
+ <!-- IMPORT partials/account/category-item.tpl -->
59
+ {{{end}}}
60
+ </ul>
61
+ <!-- IMPORT partials/paginator.tpl -->
62
+ </div>
63
+
64
64
  <!-- IMPORT partials/account/footer.tpl -->
@@ -1,73 +1,73 @@
1
- <!-- IMPORT partials/account/header.tpl -->
2
- <h3 class="fw-semibold fs-5">[[user:consent.title]]</h3>
3
-
4
- <p class="lead">[[user:consent.lead]]</p>
5
- <p>[[user:consent.intro]]</p>
6
-
7
- <hr />
8
-
9
- <div class="row">
10
- <div class="col-sm-6">
11
- {{{ if gdpr_consent }}}
12
- <div class="alert alert-success">
13
- <i class="fa fa-check float-end fa-3x"></i>
14
- [[user:consent.received]]
15
- </div>
16
- {{{ else }}}
17
- <div class="alert alert-warning">
18
- [[user:consent.not-received]]
19
- <br /><br />
20
- <div class="text-center">
21
- <button class="btn btn-warning" data-action="consent">[[user:consent.give]]</button>
22
- </div>
23
- </div>
24
- {{{ end }}}
25
- <div class="card">
26
- <div class="card-body">
27
- <p>[[user:consent.email-intro]]</p>
28
- {{{ if digest.enabled }}}
29
- <p>[[user:consent.digest-frequency, {digest.frequency}]]</p>
30
- {{{ else }}}
31
- <p>[[user:consent.digest-off]]</p>
32
- {{{ end }}}
33
-
34
- <div class="d-grid">
35
- <a class="btn btn-outline-secondary" href="./settings">
36
- <i class="fa fa-cog"></i>
37
- [[pages:account/settings]]
38
- </a>
39
- </div>
40
- </div>
41
- </div>
42
- </div>
43
- <div class="col-sm-6">
44
- <div class="card">
45
- <div class="card-body">
46
- <p><strong>[[user:consent.right-of-access]]</strong></p>
47
- <p>[[user:consent.right-of-access-description]]</p>
48
- <p><strong>[[user:consent.right-to-rectification]]</strong></p>
49
- <p>[[user:consent.right-to-rectification-description]]</p>
50
- <p><strong>[[user:consent.right-to-erasure]]</strong></p>
51
- <p>[[user:consent.right-to-erasure-description]]</p>
52
- <p><strong>[[user:consent.right-to-data-portability]]</strong></p>
53
- <p>[[user:consent.right-to-data-portability-description]]</p>
54
-
55
- <hr />
56
-
57
- <div class="btn-group-vertical d-grid">
58
- <a data-action="export-profile" class="btn btn-outline-secondary">
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>
70
- </div>
71
- </div>
72
-
73
- <!-- IMPORT partials/account/footer.tpl -->
1
+ <!-- IMPORT partials/account/header.tpl -->
2
+ <h3 class="fw-semibold fs-5">[[user:consent.title]]</h3>
3
+
4
+ <p class="lead">[[user:consent.lead]]</p>
5
+ <p>[[user:consent.intro]]</p>
6
+
7
+ <hr />
8
+
9
+ <div class="row">
10
+ <div class="col-sm-6">
11
+ {{{ if gdpr_consent }}}
12
+ <div class="alert alert-success d-flex gap-3">
13
+ [[user:consent.received]]
14
+ <i class="fa fa-check fa-3x"></i>
15
+ </div>
16
+ {{{ else }}}
17
+ <div class="alert alert-warning">
18
+ [[user:consent.not-received]]
19
+ <br /><br />
20
+ <div class="text-center">
21
+ <button class="btn btn-warning" data-action="consent">[[user:consent.give]]</button>
22
+ </div>
23
+ </div>
24
+ {{{ end }}}
25
+ <div class="card">
26
+ <div class="card-body">
27
+ <p>[[user:consent.email-intro]]</p>
28
+ {{{ if digest.enabled }}}
29
+ <p>[[user:consent.digest-frequency, {digest.frequency}]]</p>
30
+ {{{ else }}}
31
+ <p>[[user:consent.digest-off]]</p>
32
+ {{{ end }}}
33
+
34
+ <div class="d-grid">
35
+ <a class="btn btn-outline-secondary" href="./settings">
36
+ <i class="fa fa-cog"></i>
37
+ [[pages:account/settings]]
38
+ </a>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ </div>
43
+ <div class="col-sm-6">
44
+ <div class="card">
45
+ <div class="card-body">
46
+ <p><strong>[[user:consent.right-of-access]]</strong></p>
47
+ <p>[[user:consent.right-of-access-description]]</p>
48
+ <p><strong>[[user:consent.right-to-rectification]]</strong></p>
49
+ <p>[[user:consent.right-to-rectification-description]]</p>
50
+ <p><strong>[[user:consent.right-to-erasure]]</strong></p>
51
+ <p>[[user:consent.right-to-erasure-description]]</p>
52
+ <p><strong>[[user:consent.right-to-data-portability]]</strong></p>
53
+ <p>[[user:consent.right-to-data-portability-description]]</p>
54
+
55
+ <hr />
56
+
57
+ <div class="btn-group-vertical d-grid">
58
+ <a data-action="export-profile" class="btn btn-outline-secondary">
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>
70
+ </div>
71
+ </div>
72
+
73
+ <!-- IMPORT partials/account/footer.tpl -->