nodebb-theme-persona 13.3.32 → 13.3.34

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 (145) hide show
  1. package/.eslintrc +2 -2
  2. package/README.md +20 -20
  3. package/lib/controllers.js +24 -24
  4. package/library.js +97 -97
  5. package/package.json +52 -52
  6. package/plugin.json +20 -20
  7. package/public/.eslintrc +2 -2
  8. package/public/admin.js +15 -15
  9. package/public/modules/autohidingnavbar.js +220 -220
  10. package/public/modules/mobile-menu.js +190 -190
  11. package/public/modules/taskbar.js +65 -65
  12. package/public/persona.js +257 -257
  13. package/public/settings.js +53 -53
  14. package/scss/account.scss +336 -336
  15. package/scss/categories.scss +205 -205
  16. package/scss/category.scss +161 -161
  17. package/scss/chats.scss +14 -14
  18. package/scss/flags.scss +42 -42
  19. package/scss/footer.scss +16 -16
  20. package/scss/groups.scss +166 -166
  21. package/scss/header.scss +229 -361
  22. package/scss/keyframes.scss +152 -152
  23. package/scss/mixins.scss +129 -129
  24. package/scss/mobile.scss +222 -331
  25. package/scss/modules/composer.scss +20 -20
  26. package/scss/modules/cookie-consent.scss +12 -12
  27. package/scss/modules/fab.scss +32 -32
  28. package/scss/modules/morph.scss +268 -268
  29. package/scss/modules/necro-post.scss +8 -8
  30. package/scss/modules/nprogress.scss +80 -80
  31. package/scss/modules/taskbar.scss +160 -160
  32. package/scss/modules/user-menu.scss +7 -7
  33. package/scss/modules/usercard.scss +64 -64
  34. package/scss/noscript.scss +80 -80
  35. package/scss/overrides.scss +39 -39
  36. package/scss/persona.scss +34 -34
  37. package/scss/posts_list.scss +127 -127
  38. package/scss/search.scss +48 -48
  39. package/scss/style.scss +256 -256
  40. package/scss/tags.scss +10 -10
  41. package/scss/topic.scss +571 -571
  42. package/scss/topics_list.scss +16 -16
  43. package/scss/variables.scss +6 -6
  44. package/templates/account/blocks.tpl +46 -46
  45. package/templates/account/categories.tpl +28 -28
  46. package/templates/account/consent.tpl +68 -68
  47. package/templates/account/edit/password.tpl +29 -29
  48. package/templates/account/edit/username.tpl +25 -25
  49. package/templates/account/edit.tpl +136 -136
  50. package/templates/account/followers.tpl +17 -17
  51. package/templates/account/following.tpl +17 -17
  52. package/templates/account/groups.tpl +16 -16
  53. package/templates/account/info.tpl +291 -291
  54. package/templates/account/posts.tpl +18 -18
  55. package/templates/account/profile.tpl +166 -166
  56. package/templates/account/sessions.tpl +31 -31
  57. package/templates/account/settings.tpl +251 -251
  58. package/templates/account/tags.tpl +9 -9
  59. package/templates/account/theme.tpl +25 -25
  60. package/templates/account/topics.tpl +29 -29
  61. package/templates/account/uploads.tpl +42 -42
  62. package/templates/admin/plugins/persona.tpl +24 -24
  63. package/templates/categories.tpl +31 -31
  64. package/templates/category.tpl +63 -63
  65. package/templates/flags/detail.tpl +208 -208
  66. package/templates/flags/list.tpl +71 -71
  67. package/templates/footer.tpl +11 -11
  68. package/templates/groups/details.tpl +77 -77
  69. package/templates/groups/list.tpl +48 -48
  70. package/templates/groups/members.tpl +5 -5
  71. package/templates/header.tpl +47 -47
  72. package/templates/modules/taskbar.tpl +2 -2
  73. package/templates/modules/usercard.tpl +36 -36
  74. package/templates/notifications.tpl +66 -66
  75. package/templates/partials/account/category-item.tpl +23 -23
  76. package/templates/partials/account/header.tpl +47 -47
  77. package/templates/partials/account/menu.tpl +108 -108
  78. package/templates/partials/breadcrumbs.tpl +18 -18
  79. package/templates/partials/buttons/newTopic.tpl +22 -22
  80. package/templates/partials/categories/item.tpl +60 -60
  81. package/templates/partials/categories/lastpost.tpl +26 -26
  82. package/templates/partials/category/filter-dropdown-content.tpl +31 -31
  83. package/templates/partials/category/selector-dropdown-content.tpl +32 -32
  84. package/templates/partials/category/sort.tpl +14 -14
  85. package/templates/partials/category/subcategory.tpl +17 -17
  86. package/templates/partials/category/tags.tpl +3 -3
  87. package/templates/partials/category/tools.tpl +86 -86
  88. package/templates/partials/category/watch.tpl +55 -55
  89. package/templates/partials/chats-menu.tpl +41 -40
  90. package/templates/partials/cookie-consent.tpl +4 -4
  91. package/templates/partials/flags/filters.tpl +173 -173
  92. package/templates/partials/groups/admin.tpl +200 -200
  93. package/templates/partials/groups/filter-dropdown-content.tpl +24 -24
  94. package/templates/partials/groups/list.tpl +20 -20
  95. package/templates/partials/groups/memberlist.tpl +42 -42
  96. package/templates/partials/header/chats.tpl +18 -18
  97. package/templates/partials/header/notifications.tpl +49 -19
  98. package/templates/partials/header/search.tpl +24 -24
  99. package/templates/partials/header/user-menu.tpl +96 -96
  100. package/templates/partials/menu.tpl +128 -128
  101. package/templates/partials/notifications_list.tpl +44 -30
  102. package/templates/partials/paginator.tpl +44 -44
  103. package/templates/partials/post_bar.tpl +20 -20
  104. package/templates/partials/posts_list.tpl +7 -7
  105. package/templates/partials/posts_list_item.tpl +31 -31
  106. package/templates/partials/quick-search-results.tpl +33 -33
  107. package/templates/partials/search-filters.tpl +183 -183
  108. package/templates/partials/search-results.tpl +54 -54
  109. package/templates/partials/slideout-menu.tpl +4 -4
  110. package/templates/partials/tags/filter-dropdown-content.tpl +33 -33
  111. package/templates/partials/tags/watch.tpl +35 -35
  112. package/templates/partials/tags_list.tpl +4 -4
  113. package/templates/partials/toast.tpl +19 -19
  114. package/templates/partials/topic/event.tpl +12 -12
  115. package/templates/partials/topic/navigation-post.tpl +11 -11
  116. package/templates/partials/topic/navigator.tpl +39 -39
  117. package/templates/partials/topic/necro-post.tpl +2 -2
  118. package/templates/partials/topic/post-menu-list.tpl +132 -132
  119. package/templates/partials/topic/post-menu.tpl +4 -4
  120. package/templates/partials/topic/post.tpl +128 -128
  121. package/templates/partials/topic/quickreply.tpl +28 -28
  122. package/templates/partials/topic/reply-button.tpl +26 -26
  123. package/templates/partials/topic/selection-tooltip.tpl +2 -2
  124. package/templates/partials/topic/sort.tpl +9 -9
  125. package/templates/partials/topic/stats.tpl +11 -11
  126. package/templates/partials/topic/tags.tpl +2 -2
  127. package/templates/partials/topic/tools.tpl +7 -7
  128. package/templates/partials/topic/topic-menu-list.tpl +74 -74
  129. package/templates/partials/topic/watch.tpl +47 -47
  130. package/templates/partials/topic-filters.tpl +11 -11
  131. package/templates/partials/topic-terms.tpl +11 -11
  132. package/templates/partials/topics_list.tpl +117 -117
  133. package/templates/partials/users/filter-dropdown-content.tpl +20 -20
  134. package/templates/partials/users/item.tpl +43 -43
  135. package/templates/partials/users_list.tpl +14 -14
  136. package/templates/partials/users_list_menu.tpl +20 -20
  137. package/templates/popular.tpl +35 -35
  138. package/templates/recent.tpl +37 -37
  139. package/templates/search.tpl +47 -47
  140. package/templates/tag.tpl +34 -34
  141. package/templates/tags.tpl +32 -32
  142. package/templates/top.tpl +35 -35
  143. package/templates/topic.tpl +129 -129
  144. package/templates/unread.tpl +37 -37
  145. package/templates/users.tpl +34 -34
@@ -1,47 +1,47 @@
1
- <div class="account">
2
- <!-- IMPORT partials/breadcrumbs.tpl -->
3
-
4
- <div data-widget-area="header">
5
- {{{each widgets.header}}}
6
- {{widgets.header.html}}
7
- {{{end}}}
8
- </div>
9
-
10
- <div class="cover" component="account/cover" style="background-image: url({cover:url}); background-position: {cover:position};">
11
- <div class="avatar-wrapper" data-uid="{uid}">
12
- <!-- IF picture -->
13
- <img src="{picture}" class="avatar avatar-rounded" style="--avatar-size: 128px;" />
14
- <!-- ELSE -->
15
- <div class="avatar avatar-rounded" style="background-color: {icon:bgColor}; --avatar-size: 128px;" title="{username}">{icon:text}</div>
16
- <!-- ENDIF picture -->
17
- <i component="user/status" class="fa fa-circle status {status}" title="[[global:{status}]]"></i>
18
-
19
- <!-- IF loggedIn -->
20
- <!-- IF !isSelf -->
21
- <button class="btn-morph persona-fab <!-- IF isFollowing -->heart<!-- ELSE -->plus<!-- ENDIF isFollowing -->" title="<!-- IF isFollowing -->[[global:unfollow]]<!-- ELSE -->[[global:follow]]<!-- ENDIF isFollowing -->">
22
- <span>
23
- <span class="s1"></span>
24
- <span class="s2"></span>
25
- <span class="s3"></span>
26
- </span>
27
- </button>
28
- <!-- ENDIF !isSelf -->
29
- <!-- ENDIF loggedIn -->
30
- </div>
31
-
32
- <div class="container">
33
- <!-- IMPORT partials/account/menu.tpl -->
34
-
35
- <!-- IF allowCoverPicture -->
36
- <!-- IF canEdit -->
37
- <div class="controls">
38
- <span class="upload"><i class="fa fa-fw fa-4x fa-upload"></i></span>
39
- <span class="resize"><i class="fa fa-fw fa-4x fa-arrows"></i></span>
40
- <span class="remove"><i class="fa fa-fw fa-4x fa-times"></i></span>
41
- </div>
42
- <div class="save">[[groups:cover-save]] <i class="fa fa-fw fa-floppy-o"></i></div>
43
- <div class="indicator">[[groups:cover-saving]] <i class="fa fa-fw fa-refresh fa-spin"></i></div>
44
- <!-- ENDIF canEdit -->
45
- <!-- ENDIF allowCoverPicture -->
46
- </div>
47
- </div>
1
+ <div class="account">
2
+ <!-- IMPORT partials/breadcrumbs.tpl -->
3
+
4
+ <div data-widget-area="header">
5
+ {{{each widgets.header}}}
6
+ {{widgets.header.html}}
7
+ {{{end}}}
8
+ </div>
9
+
10
+ <div class="cover" component="account/cover" style="background-image: url({cover:url}); background-position: {cover:position};">
11
+ <div class="avatar-wrapper" data-uid="{uid}">
12
+ <!-- IF picture -->
13
+ <img src="{picture}" class="avatar avatar-rounded" style="--avatar-size: 128px;" />
14
+ <!-- ELSE -->
15
+ <div class="avatar avatar-rounded" style="background-color: {icon:bgColor}; --avatar-size: 128px;" title="{username}">{icon:text}</div>
16
+ <!-- ENDIF picture -->
17
+ <i component="user/status" class="fa fa-circle status {status}" title="[[global:{status}]]"></i>
18
+
19
+ <!-- IF loggedIn -->
20
+ <!-- IF !isSelf -->
21
+ <button class="btn-morph persona-fab <!-- IF isFollowing -->heart<!-- ELSE -->plus<!-- ENDIF isFollowing -->" title="<!-- IF isFollowing -->[[global:unfollow]]<!-- ELSE -->[[global:follow]]<!-- ENDIF isFollowing -->">
22
+ <span>
23
+ <span class="s1"></span>
24
+ <span class="s2"></span>
25
+ <span class="s3"></span>
26
+ </span>
27
+ </button>
28
+ <!-- ENDIF !isSelf -->
29
+ <!-- ENDIF loggedIn -->
30
+ </div>
31
+
32
+ <div class="container">
33
+ <!-- IMPORT partials/account/menu.tpl -->
34
+
35
+ <!-- IF allowCoverPicture -->
36
+ <!-- IF canEdit -->
37
+ <div class="controls">
38
+ <span class="upload"><i class="fa fa-fw fa-4x fa-upload"></i></span>
39
+ <span class="resize"><i class="fa fa-fw fa-4x fa-arrows"></i></span>
40
+ <span class="remove"><i class="fa fa-fw fa-4x fa-times"></i></span>
41
+ </div>
42
+ <div class="save">[[groups:cover-save]] <i class="fa fa-fw fa-floppy-o"></i></div>
43
+ <div class="indicator">[[groups:cover-saving]] <i class="fa fa-fw fa-refresh fa-spin"></i></div>
44
+ <!-- ENDIF canEdit -->
45
+ <!-- ENDIF allowCoverPicture -->
46
+ </div>
47
+ </div>
@@ -1,108 +1,108 @@
1
- <div class="btn-group account-fab bottom-sheet">
2
- <button type="button" class="persona-fab dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
3
- <i class="fa fa-ellipsis-v"></i>
4
- </button>
5
- <ul class="dropdown-menu dropdown-menu-end account-sub-links" role="menu">
6
- <!-- IF loggedIn -->
7
- <!-- IF !isSelf -->
8
- <!-- IF !banned -->
9
- <!-- IF canChat -->
10
- <li class="<!-- IF !hasPrivateChat -->hidden<!-- ENDIF !hasPrivateChat -->">
11
- <a class="dropdown-item" component="account/chat" href="#" role="menuitem">[[user:chat-with, {username}]]</a>
12
- </li>
13
- <li>
14
- <a class="dropdown-item" component="account/new-chat" href="#" role="menuitem">[[user:new-chat-with, {username}]]</a>
15
- </li>
16
- <!-- ENDIF canChat -->
17
- <li>
18
- <a class="dropdown-item" component="account/flag" href="#" role="menuitem">[[user:flag-profile]]</a>
19
- </li>
20
- <li>
21
- <a class="dropdown-item {{{ if ./isBlocked }}}hidden{{{ end }}}" component="account/block" href="#" role="menuitem">[[user:block-user]]</a>
22
- </li>
23
- <li>
24
- <a class="dropdown-item {{{ if !./isBlocked }}}hidden{{{ end }}}" component="account/unblock" href="#" role="menuitem">[[user:unblock-user]]</a>
25
- </li>
26
- <li role="separator" class="dropdown-divider"></li>
27
- <!-- ENDIF !banned -->
28
- <!-- ENDIF !isSelf -->
29
- <!-- ENDIF loggedIn -->
30
- <li>
31
- <a class="dropdown-item" href="{config.relative_path}/user/{userslug}" class="d-inline-block" id="profile" role="menuitem">[[user:profile]]</a>
32
- </li>
33
- <!-- IF canEdit -->
34
- <li><a class="dropdown-item" href="{config.relative_path}/user/{userslug}/edit" role="menuitem">[[user:edit]]</a></li>
35
- <li><a class="dropdown-item" href="{config.relative_path}/user/{userslug}/settings" role="menuitem">[[user:settings]]</a></li>
36
- <!-- ENDIF canEdit -->
37
-
38
- <!-- IF !isSelf -->
39
- {{{ if (canBan || canMute) }}}
40
- <li role="separator" class="dropdown-divider"></li>
41
- <li class="dropdown-header">[[user:admin-actions-label]]</li>
42
- {{{ end }}}
43
- {{{ if canBan }}}
44
- <li class="<!-- IF banned -->hide<!-- ENDIF banned -->">
45
- <a class="dropdown-item" component="account/ban" href="#" role="menuitem">[[user:ban-account]]</a>
46
- </li>
47
- <li class="<!-- IF !banned -->hide<!-- ENDIF !banned -->">
48
- <a class="dropdown-item" component="account/unban" href="#" role="menuitem">[[user:unban-account]]</a>
49
- </li>
50
- {{{ end }}}
51
- {{{ if canMute }}}
52
- <li class="<!-- IF muted -->hide<!-- ENDIF muted -->">
53
- <a class="dropdown-item" component="account/mute" href="#" role="menuitem">[[user:mute-account]]</a>
54
- </li>
55
- <li class="<!-- IF !muted -->hide<!-- ENDIF !muted -->">
56
- <a class="dropdown-item" component="account/unmute" href="#" role="menuitem">[[user:unmute-account]]</a>
57
- </li>
58
- {{{ end }}}
59
- <!-- IF isAdmin -->
60
- <li>
61
- <a component="account/delete-account" href="#" class="dropdown-item" role="menuitem">[[user:delete-account-as-admin]]</a>
62
- <a component="account/delete-content" href="#" class="dropdown-item" role="menuitem">[[user:delete-content]]</a>
63
- <a component="account/delete-all" href="#" class="dropdown-item" role="menuitem">[[user:delete-all]]</a>
64
- </li>
65
- <!-- ENDIF isAdmin -->
66
- <!-- ENDIF !isSelf -->
67
-
68
- <li role="separator" class="dropdown-divider"></li>
69
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/following" role="menuitem">[[user:following]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.following}">{formattedNumber(counts.following)}</span></a></li>
70
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/followers" role="menuitem">[[user:followers]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.followers}">{formattedNumber(counts.followers)}</span></a></li>
71
- <!-- IF canEdit -->
72
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/blocks" role="menuitem">[[user:blocks]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.blocks}">{formattedNumber(counts.blocks)}</span></a></li>
73
- <!-- ENDIF canEdit -->
74
- <li role="separator" class="dropdown-divider"></li>
75
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/topics" role="menuitem">[[global:topics]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.topics}">{formattedNumber(counts.topics)}</span></a></li>
76
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/posts" role="menuitem">[[global:posts]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.posts}">{formattedNumber(counts.posts)}</span></a></li>
77
- <!-- IF !reputation:disabled -->
78
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/best" role="menuitem">[[global:best]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.best}">{formattedNumber(counts.best)}</span></a></li>
79
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/controversial" role="menuitem">[[global:controversial]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.controversial}">{formattedNumber(counts.controversial)}</span></a></li>
80
- <!-- ENDIF !reputation:disabled -->
81
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/groups" role="menuitem">[[global:header.groups]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.groups}">{formattedNumber(counts.groups)}</span></a></li>
82
-
83
- <!-- IF canEdit -->
84
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/categories" role="menuitem">[[user:watched-categories]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.categoriesWatched}">{formattedNumber(counts.categoriesWatched)}</span></a></li>
85
- {{{ if isSelf }}}
86
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/tags" role="menuitem">
87
- [[user:watched-tags]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.tagsWatched}">{formattedNumber(counts.tagsWatched)}</span></a></li>
88
- {{{ end }}}
89
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/bookmarks" role="menuitem">[[user:bookmarks]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.bookmarks}">{formattedNumber(counts.bookmarks)}</span></a></li>
90
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/watched" role="menuitem">[[user:watched]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.watched}">{formattedNumber(counts.watched)}</span></a></li>
91
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/ignored" role="menuitem">[[user:ignored]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.ignored}">{formattedNumber(counts.ignored)}</span></a></li>
92
- <!-- IF !reputation:disabled -->
93
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/upvoted" role="menuitem">[[global:upvoted]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.upvoted}">{formattedNumber(counts.upvoted)}</span></a></li>
94
- <!-- IF !downvote:disabled -->
95
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/downvoted" role="menuitem">[[global:downvoted]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.downvoted}">{formattedNumber(counts.downvoted)}</span></a></li>
96
- <!-- ENDIF !downvote:disabled -->
97
- <!-- ENDIF !reputation:disabled -->
98
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/uploads" role="menuitem">[[global:uploads]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.uploaded}">{formattedNumber(counts.uploaded)}</span></a></li>
99
- <!-- ENDIF canEdit -->
100
-
101
- {{{each profile_links}}}
102
- <!-- IF @first -->
103
- <li role="separator" class="dropdown-divider"></li>
104
- <!-- ENDIF @first -->
105
- <li id="{profile_links.id}" class="plugin-link <!-- IF profile_links.public -->public<!-- ELSE -->private<!-- ENDIF profile_links.public -->"><a class="dropdown-item" href="{config.relative_path}/user/{userslug}/{profile_links.route}"><!-- IF ../icon --><i class="fa fa-fw {profile_links.icon}"></i> <!-- END -->{profile_links.name}</a></li>
106
- {{{end}}}
107
- </ul>
108
- </div>
1
+ <div class="btn-group account-fab bottom-sheet">
2
+ <button type="button" class="persona-fab dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
3
+ <i class="fa fa-ellipsis-v"></i>
4
+ </button>
5
+ <ul class="dropdown-menu dropdown-menu-end account-sub-links" role="menu">
6
+ <!-- IF loggedIn -->
7
+ <!-- IF !isSelf -->
8
+ <!-- IF !banned -->
9
+ <!-- IF canChat -->
10
+ <li class="<!-- IF !hasPrivateChat -->hidden<!-- ENDIF !hasPrivateChat -->">
11
+ <a class="dropdown-item" component="account/chat" href="#" role="menuitem">[[user:chat-with, {username}]]</a>
12
+ </li>
13
+ <li>
14
+ <a class="dropdown-item" component="account/new-chat" href="#" role="menuitem">[[user:new-chat-with, {username}]]</a>
15
+ </li>
16
+ <!-- ENDIF canChat -->
17
+ <li>
18
+ <a class="dropdown-item" component="account/flag" href="#" role="menuitem">[[user:flag-profile]]</a>
19
+ </li>
20
+ <li>
21
+ <a class="dropdown-item {{{ if ./isBlocked }}}hidden{{{ end }}}" component="account/block" href="#" role="menuitem">[[user:block-user]]</a>
22
+ </li>
23
+ <li>
24
+ <a class="dropdown-item {{{ if !./isBlocked }}}hidden{{{ end }}}" component="account/unblock" href="#" role="menuitem">[[user:unblock-user]]</a>
25
+ </li>
26
+ <li role="separator" class="dropdown-divider"></li>
27
+ <!-- ENDIF !banned -->
28
+ <!-- ENDIF !isSelf -->
29
+ <!-- ENDIF loggedIn -->
30
+ <li>
31
+ <a class="dropdown-item" href="{config.relative_path}/user/{userslug}" class="d-inline-block" id="profile" role="menuitem">[[user:profile]]</a>
32
+ </li>
33
+ <!-- IF canEdit -->
34
+ <li><a class="dropdown-item" href="{config.relative_path}/user/{userslug}/edit" role="menuitem">[[user:edit]]</a></li>
35
+ <li><a class="dropdown-item" href="{config.relative_path}/user/{userslug}/settings" role="menuitem">[[user:settings]]</a></li>
36
+ <!-- ENDIF canEdit -->
37
+
38
+ <!-- IF !isSelf -->
39
+ {{{ if (canBan || canMute) }}}
40
+ <li role="separator" class="dropdown-divider"></li>
41
+ <li class="dropdown-header">[[user:admin-actions-label]]</li>
42
+ {{{ end }}}
43
+ {{{ if canBan }}}
44
+ <li class="<!-- IF banned -->hide<!-- ENDIF banned -->">
45
+ <a class="dropdown-item" component="account/ban" href="#" role="menuitem">[[user:ban-account]]</a>
46
+ </li>
47
+ <li class="<!-- IF !banned -->hide<!-- ENDIF !banned -->">
48
+ <a class="dropdown-item" component="account/unban" href="#" role="menuitem">[[user:unban-account]]</a>
49
+ </li>
50
+ {{{ end }}}
51
+ {{{ if canMute }}}
52
+ <li class="<!-- IF muted -->hide<!-- ENDIF muted -->">
53
+ <a class="dropdown-item" component="account/mute" href="#" role="menuitem">[[user:mute-account]]</a>
54
+ </li>
55
+ <li class="<!-- IF !muted -->hide<!-- ENDIF !muted -->">
56
+ <a class="dropdown-item" component="account/unmute" href="#" role="menuitem">[[user:unmute-account]]</a>
57
+ </li>
58
+ {{{ end }}}
59
+ <!-- IF isAdmin -->
60
+ <li>
61
+ <a component="account/delete-account" href="#" class="dropdown-item" role="menuitem">[[user:delete-account-as-admin]]</a>
62
+ <a component="account/delete-content" href="#" class="dropdown-item" role="menuitem">[[user:delete-content]]</a>
63
+ <a component="account/delete-all" href="#" class="dropdown-item" role="menuitem">[[user:delete-all]]</a>
64
+ </li>
65
+ <!-- ENDIF isAdmin -->
66
+ <!-- ENDIF !isSelf -->
67
+
68
+ <li role="separator" class="dropdown-divider"></li>
69
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/following" role="menuitem">[[user:following]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.following}">{formattedNumber(counts.following)}</span></a></li>
70
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/followers" role="menuitem">[[user:followers]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.followers}">{formattedNumber(counts.followers)}</span></a></li>
71
+ <!-- IF canEdit -->
72
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/blocks" role="menuitem">[[user:blocks]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.blocks}">{formattedNumber(counts.blocks)}</span></a></li>
73
+ <!-- ENDIF canEdit -->
74
+ <li role="separator" class="dropdown-divider"></li>
75
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/topics" role="menuitem">[[global:topics]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.topics}">{formattedNumber(counts.topics)}</span></a></li>
76
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/posts" role="menuitem">[[global:posts]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.posts}">{formattedNumber(counts.posts)}</span></a></li>
77
+ <!-- IF !reputation:disabled -->
78
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/best" role="menuitem">[[global:best]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.best}">{formattedNumber(counts.best)}</span></a></li>
79
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/controversial" role="menuitem">[[global:controversial]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.controversial}">{formattedNumber(counts.controversial)}</span></a></li>
80
+ <!-- ENDIF !reputation:disabled -->
81
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/groups" role="menuitem">[[global:header.groups]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.groups}">{formattedNumber(counts.groups)}</span></a></li>
82
+
83
+ <!-- IF canEdit -->
84
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/categories" role="menuitem">[[user:watched-categories]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.categoriesWatched}">{formattedNumber(counts.categoriesWatched)}</span></a></li>
85
+ {{{ if isSelf }}}
86
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/tags" role="menuitem">
87
+ [[user:watched-tags]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.tagsWatched}">{formattedNumber(counts.tagsWatched)}</span></a></li>
88
+ {{{ end }}}
89
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/bookmarks" role="menuitem">[[user:bookmarks]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.bookmarks}">{formattedNumber(counts.bookmarks)}</span></a></li>
90
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/watched" role="menuitem">[[user:watched]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.watched}">{formattedNumber(counts.watched)}</span></a></li>
91
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/ignored" role="menuitem">[[user:ignored]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.ignored}">{formattedNumber(counts.ignored)}</span></a></li>
92
+ <!-- IF !reputation:disabled -->
93
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/upvoted" role="menuitem">[[global:upvoted]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.upvoted}">{formattedNumber(counts.upvoted)}</span></a></li>
94
+ <!-- IF !downvote:disabled -->
95
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/downvoted" role="menuitem">[[global:downvoted]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.downvoted}">{formattedNumber(counts.downvoted)}</span></a></li>
96
+ <!-- ENDIF !downvote:disabled -->
97
+ <!-- ENDIF !reputation:disabled -->
98
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/uploads" role="menuitem">[[global:uploads]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.uploaded}">{formattedNumber(counts.uploaded)}</span></a></li>
99
+ <!-- ENDIF canEdit -->
100
+
101
+ {{{each profile_links}}}
102
+ <!-- IF @first -->
103
+ <li role="separator" class="dropdown-divider"></li>
104
+ <!-- ENDIF @first -->
105
+ <li id="{profile_links.id}" class="plugin-link <!-- IF profile_links.public -->public<!-- ELSE -->private<!-- ENDIF profile_links.public -->"><a class="dropdown-item" href="{config.relative_path}/user/{userslug}/{profile_links.route}"><!-- IF ../icon --><i class="fa fa-fw {profile_links.icon}"></i> <!-- END -->{profile_links.name}</a></li>
106
+ {{{end}}}
107
+ </ul>
108
+ </div>
@@ -1,18 +1,18 @@
1
- <!-- IF breadcrumbs.length -->
2
- <ol class="breadcrumb" itemscope="itemscope" itemprop="breadcrumb" itemtype="http://schema.org/BreadcrumbList">
3
- {{{each breadcrumbs}}}
4
- <li<!-- IF @last --> component="breadcrumb/current"<!-- ENDIF @last --> itemscope="itemscope" itemprop="itemListElement" itemtype="http://schema.org/ListItem" class="breadcrumb-item <!-- IF @last -->active<!-- ENDIF @last -->">
5
- <meta itemprop="position" content="{@index}" />
6
- {{{ if ./url }}}<a href="{breadcrumbs.url}" itemprop="item">{{{ end }}}
7
- <span itemprop="name">
8
- {breadcrumbs.text}
9
- <!-- IF @last -->
10
- <!-- IF !feeds:disableRSS -->
11
- <!-- IF rssFeedUrl --><a target="_blank" href="{rssFeedUrl}" itemprop="item"><i class="fa fa-rss-square"></i></a><!-- ENDIF rssFeedUrl --><!-- ENDIF !feeds:disableRSS -->
12
- <!-- ENDIF @last -->
13
- </span>
14
- {{{ if ./url }}}</a>{{{ end }}}
15
- </li>
16
- {{{end}}}
17
- </ol>
18
- <!-- ENDIF breadcrumbs.length -->
1
+ <!-- IF breadcrumbs.length -->
2
+ <ol class="breadcrumb" itemscope="itemscope" itemprop="breadcrumb" itemtype="http://schema.org/BreadcrumbList">
3
+ {{{each breadcrumbs}}}
4
+ <li<!-- IF @last --> component="breadcrumb/current"<!-- ENDIF @last --> itemscope="itemscope" itemprop="itemListElement" itemtype="http://schema.org/ListItem" class="breadcrumb-item <!-- IF @last -->active<!-- ENDIF @last -->">
5
+ <meta itemprop="position" content="{@index}" />
6
+ {{{ if ./url }}}<a href="{breadcrumbs.url}" itemprop="item">{{{ end }}}
7
+ <span itemprop="name">
8
+ {breadcrumbs.text}
9
+ <!-- IF @last -->
10
+ <!-- IF !feeds:disableRSS -->
11
+ <!-- IF rssFeedUrl --><a target="_blank" href="{rssFeedUrl}" itemprop="item"><i class="fa fa-rss-square"></i></a><!-- ENDIF rssFeedUrl --><!-- ENDIF !feeds:disableRSS -->
12
+ <!-- ENDIF @last -->
13
+ </span>
14
+ {{{ if ./url }}}</a>{{{ end }}}
15
+ </li>
16
+ {{{end}}}
17
+ </ol>
18
+ <!-- ENDIF breadcrumbs.length -->
@@ -1,22 +1,22 @@
1
- <noscript><div class="dropdown" component="category-selector"></noscript>
2
- <button component="category/post" for="category-dropdown-check" class="btn btn-primary text-nowrap" id="new_topic" role="button">
3
- [[category:new-topic-button]]
4
- </button>
5
- <noscript>
6
- <input type="checkbox" class="hidden" id="category-dropdown-check" aria-hidden="true">
7
- <ul component="category/list" class="dropdown-menu category-dropdown-menu" role="menu">
8
- {{{each categories}}}
9
- <li role="presentation" class="category {{{if categories.disabledClass}}}disabled{{{end}}}">
10
- <a role="menu-item" href="{config.relative_path}/compose?cid={categories.cid}">{categories.level}
11
- <span component="category-markup">
12
- <div class="category-item d-inline-block">
13
- {buildCategoryIcon(@value, "24px", "rounded-circle")}
14
- {categories.name}
15
- </div>
16
- </span>
17
- </a>
18
- </li>
19
- {{{end}}}
20
- </ul>
21
- </div>
22
- </noscript>
1
+ <noscript><div class="dropdown" component="category-selector"></noscript>
2
+ <button component="category/post" for="category-dropdown-check" class="btn btn-primary text-nowrap" id="new_topic" role="button">
3
+ [[category:new-topic-button]]
4
+ </button>
5
+ <noscript>
6
+ <input type="checkbox" class="hidden" id="category-dropdown-check" aria-hidden="true">
7
+ <ul component="category/list" class="dropdown-menu category-dropdown-menu" role="menu">
8
+ {{{each categories}}}
9
+ <li role="presentation" class="category {{{if categories.disabledClass}}}disabled{{{end}}}">
10
+ <a role="menu-item" href="{config.relative_path}/compose?cid={categories.cid}">{categories.level}
11
+ <span component="category-markup">
12
+ <div class="category-item d-inline-block">
13
+ {buildCategoryIcon(@value, "24px", "rounded-circle")}
14
+ {categories.name}
15
+ </div>
16
+ </span>
17
+ </a>
18
+ </li>
19
+ {{{end}}}
20
+ </ul>
21
+ </div>
22
+ </noscript>
@@ -1,60 +1,60 @@
1
- <li component="categories/category" data-cid="{./cid}" data-numRecentReplies="1" class="row clearfix category-{./cid} {./unread-class}">
2
- <meta itemprop="name" content="{../name}">
3
-
4
- <div class="content col-12 <!-- IF config.hideCategoryLastPost -->col-md-10 col-sm-12<!-- ELSE -->col-md-7 col-sm-9<!-- ENDIF config.hideCategoryLastPost -->">
5
- <div class="float-start">
6
- {buildCategoryIcon(@value, "48px", "rounded-circle")}
7
- </div>
8
- <h2 class="title">
9
- <!-- IMPORT partials/categories/link.tpl -->
10
- </h2>
11
- <div>
12
- <!-- IF ../descriptionParsed -->
13
- <div class="description text-muted">
14
- {../descriptionParsed}
15
- </div>
16
- <!-- ENDIF ../descriptionParsed -->
17
- <!-- IF !config.hideSubCategories -->
18
- {{{ if ../children.length }}}
19
- <div class="category-children">
20
- {{{ each ../children }}}
21
- {{{ if !../isSection }}}
22
- <span class="category-children-item">
23
- {buildCategoryIcon(@value, "24px", "rounded-circle")}
24
- {{{ if ../link }}}
25
- <a href="{../link}">{../name}</a>
26
- {{{ else }}}
27
- <a href="{config.relative_path}/category/{../slug}">{../name}</a>
28
- {{{ end }}}
29
- </span>
30
- {{{ end }}}
31
- {{{ end }}}
32
- </div>
33
- {{{ end }}}
34
- <!-- ENDIF !config.hideSubCategories -->
35
- </div>
36
- <span class="d-block d-sm-none float-end">
37
- <!-- IF ../teaser.timestampISO -->
38
- <a class="permalink" href="{../teaser.url}">
39
- <small class="timeago" title="{../teaser.timestampISO}"></small>
40
- </a>
41
- <!-- ENDIF ../teaser.timestampISO -->
42
- </span>
43
- </div>
44
-
45
- <!-- IF !./link -->
46
- <div class="col-md-1 d-none d-md-block stats text-muted">
47
- <span title="{./totalTopicCount}">{humanReadableNumber(./totalTopicCount)}</span><br />
48
- <small>[[global:topics]]</small>
49
- </div>
50
- <div class="col-md-1 d-none d-md-block stats text-muted">
51
- <span title="{./totalPostCount}">{humanReadableNumber(./totalPostCount)}</span><br />
52
- <small>[[global:posts]]</small>
53
- </div>
54
- <!-- IF !config.hideCategoryLastPost -->
55
- <div class="col-md-3 col-sm-3 teaser d-none d-sm-block" component="topic/teaser">
56
- <!-- IMPORT partials/categories/lastpost.tpl -->
57
- </div>
58
- <!-- ENDIF !config.hideCategoryLastPost -->
59
- <!-- ENDIF !./link -->
60
- </li>
1
+ <li component="categories/category" data-cid="{./cid}" data-numRecentReplies="1" class="row clearfix category-{./cid} {./unread-class}">
2
+ <meta itemprop="name" content="{../name}">
3
+
4
+ <div class="content col-12 <!-- IF config.hideCategoryLastPost -->col-md-10 col-sm-12<!-- ELSE -->col-md-7 col-sm-9<!-- ENDIF config.hideCategoryLastPost -->">
5
+ <div class="float-start">
6
+ {buildCategoryIcon(@value, "48px", "rounded-circle")}
7
+ </div>
8
+ <h2 class="title">
9
+ <!-- IMPORT partials/categories/link.tpl -->
10
+ </h2>
11
+ <div>
12
+ <!-- IF ../descriptionParsed -->
13
+ <div class="description text-muted">
14
+ {../descriptionParsed}
15
+ </div>
16
+ <!-- ENDIF ../descriptionParsed -->
17
+ <!-- IF !config.hideSubCategories -->
18
+ {{{ if ../children.length }}}
19
+ <div class="category-children">
20
+ {{{ each ../children }}}
21
+ {{{ if !../isSection }}}
22
+ <span class="category-children-item">
23
+ {buildCategoryIcon(@value, "24px", "rounded-circle")}
24
+ {{{ if ../link }}}
25
+ <a href="{../link}">{../name}</a>
26
+ {{{ else }}}
27
+ <a href="{config.relative_path}/category/{../slug}">{../name}</a>
28
+ {{{ end }}}
29
+ </span>
30
+ {{{ end }}}
31
+ {{{ end }}}
32
+ </div>
33
+ {{{ end }}}
34
+ <!-- ENDIF !config.hideSubCategories -->
35
+ </div>
36
+ <span class="d-block d-sm-none float-end">
37
+ <!-- IF ../teaser.timestampISO -->
38
+ <a class="permalink" href="{../teaser.url}">
39
+ <small class="timeago" title="{../teaser.timestampISO}"></small>
40
+ </a>
41
+ <!-- ENDIF ../teaser.timestampISO -->
42
+ </span>
43
+ </div>
44
+
45
+ <!-- IF !./link -->
46
+ <div class="col-md-1 d-none d-md-block stats text-muted">
47
+ <span title="{./totalTopicCount}">{humanReadableNumber(./totalTopicCount)}</span><br />
48
+ <small>[[global:topics]]</small>
49
+ </div>
50
+ <div class="col-md-1 d-none d-md-block stats text-muted">
51
+ <span title="{./totalPostCount}">{humanReadableNumber(./totalPostCount)}</span><br />
52
+ <small>[[global:posts]]</small>
53
+ </div>
54
+ <!-- IF !config.hideCategoryLastPost -->
55
+ <div class="col-md-3 col-sm-3 teaser d-none d-sm-block" component="topic/teaser">
56
+ <!-- IMPORT partials/categories/lastpost.tpl -->
57
+ </div>
58
+ <!-- ENDIF !config.hideCategoryLastPost -->
59
+ <!-- ENDIF !./link -->
60
+ </li>
@@ -1,26 +1,26 @@
1
- <div class="lastpost background-link-container" style="border-color: {../bgColor}">
2
- {{{each ./posts}}}
3
- <!-- IF @first -->
4
- <div component="category/posts">
5
- <a class="background-link" href="{config.relative_path}/topic/{../topic.slug}<!-- IF ../index -->/{../index}<!-- ENDIF ../index -->"></a>
6
- <p>
7
- <a href="{config.relative_path}/user/{../user.userslug}">{buildAvatar(posts.user, "24px", true)}</a>
8
- <a class="permalink text-muted" href="{config.relative_path}/topic/{../topic.slug}<!-- IF ../index -->/{../index}<!-- ENDIF ../index -->">
9
- <small class="timeago" title="{../timestampISO}"></small>
10
- </a>
11
- </p>
12
- <div class="post-content">
13
- {../content}
14
- </div>
15
- </div>
16
- <!-- ENDIF @first -->
17
- {{{end}}}
18
-
19
- <!-- IF !../posts.length -->
20
- <div component="category/posts">
21
- <div class="post-content">
22
- [[category:no-new-posts]]
23
- </div>
24
- </div>
25
- <!-- ENDIF !../posts.length -->
26
- </div>
1
+ <div class="lastpost background-link-container" style="border-color: {../bgColor}">
2
+ {{{each ./posts}}}
3
+ <!-- IF @first -->
4
+ <div component="category/posts">
5
+ <a class="background-link" href="{config.relative_path}/topic/{../topic.slug}<!-- IF ../index -->/{../index}<!-- ENDIF ../index -->"></a>
6
+ <p>
7
+ <a href="{config.relative_path}/user/{../user.userslug}">{buildAvatar(posts.user, "24px", true)}</a>
8
+ <a class="permalink text-muted" href="{config.relative_path}/topic/{../topic.slug}<!-- IF ../index -->/{../index}<!-- ENDIF ../index -->">
9
+ <small class="timeago" title="{../timestampISO}"></small>
10
+ </a>
11
+ </p>
12
+ <div class="post-content">
13
+ {../content}
14
+ </div>
15
+ </div>
16
+ <!-- ENDIF @first -->
17
+ {{{end}}}
18
+
19
+ <!-- IF !../posts.length -->
20
+ <div component="category/posts">
21
+ <div class="post-content">
22
+ [[category:no-new-posts]]
23
+ </div>
24
+ </div>
25
+ <!-- ENDIF !../posts.length -->
26
+ </div>