nodebb-theme-persona 12.1.4 → 12.1.6

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 (247) hide show
  1. package/README.md +14 -14
  2. package/package.json +2 -2
  3. package/public/persona.js +11 -23
  4. package/{less/account.less → scss/account.scss} +13 -97
  5. package/{less/categories.less → scss/categories.scss} +10 -40
  6. package/{less/category.less → scss/category.scss} +26 -75
  7. package/{less/chats.less → scss/chats.scss} +35 -88
  8. package/{less/flags.less → scss/flags.scss} +3 -3
  9. package/{less/footer.less → scss/footer.scss} +0 -1
  10. package/{less/groups.less → scss/groups.scss} +14 -38
  11. package/{less/header.less → scss/header.scss} +63 -139
  12. package/{less/helpers.less → scss/helpers.scss} +0 -0
  13. package/{less/keyframes.less → scss/keyframes.scss} +0 -0
  14. package/{less/mixins.less → scss/mixins.scss} +17 -59
  15. package/{less/mobile.less → scss/mobile.scss} +13 -18
  16. package/{less/modules/alerts.less → scss/modules/alerts.scss} +21 -21
  17. package/{less/modules/composer-default.less → scss/modules/composer-default.scss} +2 -2
  18. package/{less/modules/cookie-consent.less → scss/modules/cookie-consent.scss} +1 -1
  19. package/{less/modules/fab.less → scss/modules/fab.scss} +2 -2
  20. package/{less/modules/morph.less → scss/modules/morph.scss} +1 -1
  21. package/{less/modules/necro-post.less → scss/modules/necro-post.scss} +0 -0
  22. package/scss/modules/nprogress.scss +80 -0
  23. package/{less/modules/taskbar.less → scss/modules/taskbar.scss} +11 -10
  24. package/{less/modules/usercard.less → scss/modules/usercard.scss} +0 -0
  25. package/{less/noscript.less → scss/noscript.scss} +5 -7
  26. package/{less/outgoing.less → scss/outgoing.scss} +0 -0
  27. package/scss/overrides.scss +44 -0
  28. package/{less/persona.less → scss/persona.scss} +1 -13
  29. package/{less/posts_list.less → scss/posts_list.scss} +11 -14
  30. package/{less/register.less → scss/register.scss} +2 -7
  31. package/scss/search.scss +39 -0
  32. package/{less/style.less → scss/style.scss} +23 -47
  33. package/scss/tags.scss +11 -0
  34. package/{less/topic.less → scss/topic.scss} +53 -90
  35. package/scss/topics_list.scss +17 -0
  36. package/{less/variables.less → scss/variables.scss} +3 -3
  37. package/templates/account/blocks.tpl +24 -26
  38. package/templates/account/categories.tpl +6 -6
  39. package/templates/account/consent.tpl +10 -10
  40. package/templates/account/edit/password.tpl +8 -10
  41. package/templates/account/edit/username.tpl +6 -10
  42. package/templates/account/edit.tpl +23 -23
  43. package/templates/account/followers.tpl +3 -3
  44. package/templates/account/following.tpl +3 -3
  45. package/templates/account/groups.tpl +2 -2
  46. package/templates/account/info.tpl +67 -72
  47. package/templates/account/posts.tpl +1 -1
  48. package/templates/account/profile.tpl +20 -18
  49. package/templates/account/sessions.tpl +3 -3
  50. package/templates/account/settings.tpl +93 -81
  51. package/templates/account/topics.tpl +5 -5
  52. package/templates/account/uploads.tpl +2 -2
  53. package/templates/admin/plugins/persona.tpl +3 -3
  54. package/templates/category.tpl +15 -14
  55. package/templates/chat.tpl +16 -9
  56. package/templates/chats.tpl +5 -3
  57. package/templates/flags/detail.tpl +86 -80
  58. package/templates/flags/list.tpl +4 -4
  59. package/templates/footer.tpl +1 -1
  60. package/templates/groups/details.tpl +23 -218
  61. package/templates/groups/list.tpl +11 -9
  62. package/templates/groups/members.tpl +1 -4
  63. package/templates/header.tpl +10 -4
  64. package/templates/ip-blacklist.tpl +22 -20
  65. package/templates/login.tpl +17 -14
  66. package/templates/modules/taskbar.tpl +1 -1
  67. package/templates/modules/usercard.tpl +2 -2
  68. package/templates/notifications.tpl +40 -38
  69. package/templates/partials/acceptTos.tpl +8 -8
  70. package/templates/partials/account/category-item.tpl +6 -5
  71. package/templates/partials/account/header.tpl +2 -2
  72. package/templates/partials/account/menu.tpl +37 -37
  73. package/templates/partials/breadcrumbs.tpl +1 -1
  74. package/templates/partials/buttons/newTopic.tpl +10 -3
  75. package/templates/partials/categories/item.tpl +24 -10
  76. package/templates/partials/categories/lastpost.tpl +3 -3
  77. package/templates/partials/categories/link.tpl +10 -10
  78. package/templates/partials/category/sort.tpl +7 -7
  79. package/templates/partials/category/subcategory.tpl +3 -3
  80. package/templates/partials/category/tags.tpl +3 -5
  81. package/templates/partials/category/tools.tpl +16 -16
  82. package/templates/partials/category/watch.tpl +8 -10
  83. package/templates/partials/category-filter-content.tpl +17 -5
  84. package/templates/partials/category-filter-right.tpl +1 -1
  85. package/templates/partials/category-selector-content.tpl +17 -4
  86. package/templates/partials/category-selector-right.tpl +1 -1
  87. package/templates/partials/chats/message-window.tpl +10 -8
  88. package/templates/partials/chats/message.tpl +11 -11
  89. package/templates/partials/chats/options.tpl +8 -8
  90. package/templates/partials/chats/recent_room.tpl +1 -1
  91. package/templates/partials/chats/system-message.tpl +1 -1
  92. package/templates/partials/chats/user.tpl +1 -1
  93. package/templates/partials/chats-menu.tpl +11 -11
  94. package/templates/partials/cookie-consent.tpl +1 -1
  95. package/templates/partials/flags/filters.tpl +34 -32
  96. package/templates/partials/groups/admin.tpl +195 -0
  97. package/templates/partials/groups/badge.tpl +1 -0
  98. package/templates/partials/groups/list.tpl +6 -6
  99. package/templates/partials/groups/memberlist.tpl +11 -10
  100. package/templates/partials/menu.tpl +149 -156
  101. package/templates/partials/notifications_list.tpl +2 -2
  102. package/templates/partials/paginator.tpl +21 -21
  103. package/templates/partials/post_bar.tpl +4 -4
  104. package/templates/partials/posts_list.tpl +1 -1
  105. package/templates/partials/posts_list_item.tpl +2 -2
  106. package/templates/partials/quick-search-results.tpl +14 -11
  107. package/templates/partials/slideout-menu.tpl +1 -1
  108. package/templates/partials/tags_list.tpl +3 -3
  109. package/templates/partials/thread_tools.tpl +4 -4
  110. package/templates/partials/toast.tpl +14 -0
  111. package/templates/partials/topic/deleted-message.tpl +2 -2
  112. package/templates/partials/topic/event.tpl +26 -0
  113. package/templates/partials/topic/navigation-post.tpl +3 -3
  114. package/templates/partials/topic/navigator.tpl +7 -7
  115. package/templates/partials/topic/necro-post.tpl +1 -1
  116. package/templates/partials/topic/post-menu-list.tpl +26 -23
  117. package/templates/partials/topic/post-menu.tpl +3 -3
  118. package/templates/partials/topic/post.tpl +49 -44
  119. package/templates/partials/topic/quickreply.tpl +3 -3
  120. package/templates/partials/topic/reply-button.tpl +3 -3
  121. package/templates/partials/topic/sort.tpl +5 -5
  122. package/templates/partials/topic/tag.tpl +1 -0
  123. package/templates/partials/topic/tags.tpl +3 -5
  124. package/templates/partials/topic/topic-menu-list.tpl +18 -16
  125. package/templates/partials/topic/watch.tpl +11 -10
  126. package/templates/partials/topic-filters.tpl +12 -0
  127. package/templates/partials/topic-terms.tpl +12 -0
  128. package/templates/partials/topics_list.tpl +27 -25
  129. package/templates/partials/users_list.tpl +22 -10
  130. package/templates/partials/users_list_menu.tpl +19 -9
  131. package/templates/popular.tpl +9 -35
  132. package/templates/post-queue.tpl +42 -35
  133. package/templates/recent.tpl +10 -24
  134. package/templates/register.tpl +17 -17
  135. package/templates/registerComplete.tpl +14 -10
  136. package/templates/reset.tpl +7 -5
  137. package/templates/reset_code.tpl +9 -9
  138. package/templates/search.tpl +100 -87
  139. package/templates/tag.tpl +8 -10
  140. package/templates/tags.tpl +5 -3
  141. package/templates/top.tpl +9 -35
  142. package/templates/topic.tpl +13 -11
  143. package/templates/tos.tpl +4 -4
  144. package/templates/unread.tpl +10 -22
  145. package/templates/users.tpl +7 -20
  146. package/theme.json +6 -6
  147. package/theme.scss +1 -0
  148. package/less/bootstrap/.csscomb.json +0 -297
  149. package/less/bootstrap/.csslintrc +0 -19
  150. package/less/bootstrap/alerts.less +0 -73
  151. package/less/bootstrap/badges.less +0 -66
  152. package/less/bootstrap/bootstrap.less +0 -50
  153. package/less/bootstrap/breadcrumbs.less +0 -26
  154. package/less/bootstrap/button-groups.less +0 -243
  155. package/less/bootstrap/buttons.less +0 -160
  156. package/less/bootstrap/carousel.less +0 -269
  157. package/less/bootstrap/close.less +0 -34
  158. package/less/bootstrap/code.less +0 -69
  159. package/less/bootstrap/component-animations.less +0 -33
  160. package/less/bootstrap/dropdowns.less +0 -214
  161. package/less/bootstrap/forms.less +0 -574
  162. package/less/bootstrap/glyphicons.less +0 -305
  163. package/less/bootstrap/grid.less +0 -84
  164. package/less/bootstrap/input-groups.less +0 -166
  165. package/less/bootstrap/jumbotron.less +0 -50
  166. package/less/bootstrap/labels.less +0 -64
  167. package/less/bootstrap/list-group.less +0 -124
  168. package/less/bootstrap/media.less +0 -61
  169. package/less/bootstrap/mixins/alerts.less +0 -14
  170. package/less/bootstrap/mixins/background-variant.less +0 -8
  171. package/less/bootstrap/mixins/border-radius.less +0 -18
  172. package/less/bootstrap/mixins/buttons.less +0 -52
  173. package/less/bootstrap/mixins/center-block.less +0 -7
  174. package/less/bootstrap/mixins/clearfix.less +0 -22
  175. package/less/bootstrap/mixins/forms.less +0 -85
  176. package/less/bootstrap/mixins/gradients.less +0 -59
  177. package/less/bootstrap/mixins/grid-framework.less +0 -91
  178. package/less/bootstrap/mixins/grid.less +0 -122
  179. package/less/bootstrap/mixins/hide-text.less +0 -21
  180. package/less/bootstrap/mixins/image.less +0 -33
  181. package/less/bootstrap/mixins/labels.less +0 -12
  182. package/less/bootstrap/mixins/list-group.less +0 -29
  183. package/less/bootstrap/mixins/nav-divider.less +0 -10
  184. package/less/bootstrap/mixins/nav-vertical-align.less +0 -9
  185. package/less/bootstrap/mixins/opacity.less +0 -8
  186. package/less/bootstrap/mixins/pagination.less +0 -23
  187. package/less/bootstrap/mixins/panels.less +0 -24
  188. package/less/bootstrap/mixins/progress-bar.less +0 -10
  189. package/less/bootstrap/mixins/reset-filter.less +0 -8
  190. package/less/bootstrap/mixins/resize.less +0 -6
  191. package/less/bootstrap/mixins/responsive-visibility.less +0 -15
  192. package/less/bootstrap/mixins/size.less +0 -10
  193. package/less/bootstrap/mixins/tab-focus.less +0 -9
  194. package/less/bootstrap/mixins/table-row.less +0 -28
  195. package/less/bootstrap/mixins/text-emphasis.less +0 -8
  196. package/less/bootstrap/mixins/text-overflow.less +0 -8
  197. package/less/bootstrap/mixins/vendor-prefixes.less +0 -227
  198. package/less/bootstrap/mixins.less +0 -39
  199. package/less/bootstrap/modals.less +0 -150
  200. package/less/bootstrap/navbar.less +0 -660
  201. package/less/bootstrap/navs.less +0 -242
  202. package/less/bootstrap/normalize.less +0 -427
  203. package/less/bootstrap/pager.less +0 -54
  204. package/less/bootstrap/pagination.less +0 -88
  205. package/less/bootstrap/panels.less +0 -265
  206. package/less/bootstrap/popovers.less +0 -135
  207. package/less/bootstrap/print.less +0 -107
  208. package/less/bootstrap/progress-bars.less +0 -87
  209. package/less/bootstrap/responsive-embed.less +0 -35
  210. package/less/bootstrap/responsive-utilities.less +0 -194
  211. package/less/bootstrap/scaffolding.less +0 -162
  212. package/less/bootstrap/tables.less +0 -234
  213. package/less/bootstrap/theme.less +0 -273
  214. package/less/bootstrap/thumbnails.less +0 -36
  215. package/less/bootstrap/tooltip.less +0 -102
  216. package/less/bootstrap/type.less +0 -302
  217. package/less/bootstrap/utilities.less +0 -55
  218. package/less/bootstrap/variables.less +0 -861
  219. package/less/bootstrap/wells.less +0 -29
  220. package/less/bootstrap-flipped.css +0 -1550
  221. package/less/ip-blacklist.less +0 -7
  222. package/less/modules/bottom-sheet.less +0 -60
  223. package/less/modules/nprogress.less +0 -80
  224. package/less/notifications.less +0 -38
  225. package/less/post-queue.less +0 -19
  226. package/less/rtl.less +0 -132
  227. package/less/search.less +0 -96
  228. package/less/tags.less +0 -37
  229. package/less/topics_list.less +0 -16
  230. package/less/users.less +0 -73
  231. package/templates/alert.tpl +0 -15
  232. package/templates/partials/change_owner_modal.tpl +0 -22
  233. package/templates/partials/delete_posts_modal.tpl +0 -19
  234. package/templates/partials/fork_thread_modal.tpl +0 -22
  235. package/templates/partials/merge_topics_modal.tpl +0 -58
  236. package/templates/partials/modals/change_picture_modal.tpl +0 -73
  237. package/templates/partials/modals/flag_modal.tpl +0 -45
  238. package/templates/partials/modals/manage_room.tpl +0 -11
  239. package/templates/partials/modals/manage_room_users.tpl +0 -7
  240. package/templates/partials/modals/post_history.tpl +0 -36
  241. package/templates/partials/modals/rename_room.tpl +0 -4
  242. package/templates/partials/modals/upload_file_modal.tpl +0 -44
  243. package/templates/partials/modals/upload_picture_from_url_modal.tpl +0 -17
  244. package/templates/partials/modals/votes_modal.tpl +0 -10
  245. package/templates/partials/move_thread_modal.tpl +0 -17
  246. package/templates/partials/topic/badge.tpl +0 -5
  247. package/theme.less +0 -2
@@ -7,71 +7,73 @@
7
7
  <meta itemprop="position" content="{../index}" />
8
8
  <a id="{../index}" data-index="{../index}" component="topic/anchor"></a>
9
9
 
10
- <div class="col-md-6 col-sm-9 col-xs-10 content">
11
- <div class="avatar pull-left">
10
+ <div class="col-md-6 col-sm-9 col-10 content">
11
+ <div class="avatar float-start me-2">
12
12
  <!-- IF showSelect -->
13
13
  <div class="select" component="topic/select">
14
14
  {{{ if ./thumbs.length }}}
15
15
  <img src="{./thumbs.0.url}" class="user-img not-responsive" />
16
16
  {{{ else }}}
17
- {buildAvatar(../user, "46", true, "not-responsive")}
17
+ {buildAvatar(../user, "48px", true, "not-responsive")}
18
18
  {{{ end }}}
19
19
  <i class="fa fa-check"></i>
20
20
  </div>
21
21
  <!-- ENDIF showSelect -->
22
22
 
23
23
  <!-- IF !showSelect -->
24
- <a href="<!-- IF topics.user.userslug -->{config.relative_path}/user/{topics.user.userslug}<!-- ELSE -->#<!-- ENDIF topics.user.userslug -->" class="pull-left">
24
+ <a href="<!-- IF topics.user.userslug -->{config.relative_path}/user/{topics.user.userslug}<!-- ELSE -->#<!-- ENDIF topics.user.userslug -->" class="float-start">
25
25
  {{{ if ./thumbs.length }}}
26
26
  <img src="{./thumbs.0.url}" class="user-img not-responsive" />
27
27
  {{{ else }}}
28
- {buildAvatar(../user, "46", true, "not-responsive")}
28
+ {buildAvatar(../user, "48px", true, "not-responsive")}
29
29
  {{{ end }}}
30
30
  </a>
31
31
  <!-- ENDIF !showSelect -->
32
32
  </div>
33
33
 
34
- <h2 component="topic/header" class="title">
34
+ <h2 component="topic/header" class="title mb-1">
35
35
  <i component="topic/scheduled" class="fa fa-clock-o <!-- IF !topics.scheduled -->hide<!-- ENDIF !topics.scheduled -->" title="[[topic:scheduled]]"></i>
36
36
  <i component="topic/pinned" class="fa fa-thumb-tack <!-- IF (topics.scheduled || !topics.pinned) -->hide<!-- ENDIF (topics.scheduled || !topics.pinned) -->" title="{{{ if !../pinExpiry }}}[[topic:pinned]]{{{ else }}}[[topic:pinned-with-expiry, {../pinExpiryISO}]]{{{ end }}}"></i>
37
37
  <i component="topic/locked" class="fa fa-lock <!-- IF !topics.locked -->hide<!-- ENDIF !topics.locked -->" title="[[topic:locked]]"></i>
38
38
  <i component="topic/moved" class="fa fa-arrow-circle-right <!-- IF !topics.oldCid -->hide<!-- ENDIF !topics.oldCid -->" title="[[topic:moved]]"></i>
39
39
  {{{each topics.icons}}}{@value}{{{end}}}
40
40
 
41
-
42
41
  <!-- IF !topics.noAnchor -->
43
- <a href="{config.relative_path}/topic/{topics.slug}<!-- IF topics.bookmark -->/{topics.bookmark}<!-- ENDIF topics.bookmark -->">{topics.title}</a><br />
42
+ <a href="{config.relative_path}/topic/{topics.slug}<!-- IF topics.bookmark -->/{topics.bookmark}<!-- ENDIF topics.bookmark -->">{topics.title}</a>
44
43
  <!-- ELSE -->
45
- <span>{topics.title}</span><br />
44
+ <span>{topics.title}</span>
46
45
  <!-- ENDIF !topics.noAnchor -->
47
-
46
+ </h2>
47
+ <div class="info">
48
48
  <!-- IF !template.category -->
49
- <small>
50
- <a href="{config.relative_path}/category/{topics.category.slug}"><span class="fa-stack fa-lg" style="{function.generateCategoryBackground, topics.category}"><i style="color:{topics.category.color};" class="fa {topics.category.icon} fa-stack-1x"></i></span> {topics.category.name}</a> &bull;
51
- </small>
49
+ <div class="category-item d-inline-block">
50
+ {buildCategoryIcon(./category, "24px", "rounded-circle")}
51
+ <a class="text-muted" href="{config.relative_path}/category/{topics.category.slug}">{topics.category.name}</a>
52
+ </div>
53
+ &bull;
52
54
  <!-- ENDIF !template.category -->
53
55
 
54
56
  {{{ if topics.tags.length }}}
55
57
  <span class="tag-list hidden-xs">
56
- {{{each topics.tags}}}
57
- <a href="{config.relative_path}/tags/{topics.tags.valueEncoded}"><span class="tag tag-item tag-class-{topics.tags.class}">{topics.tags.valueEscaped}</span></a>
58
- {{{end}}}
59
- <small>&bull;</small>
58
+ {{{ each ./tags }}}
59
+ <!-- IMPORT partials/topic/tag.tpl -->
60
+ {{{ end }}}
61
+ &bull;
60
62
  </span>
61
63
  {{{ end }}}
62
64
 
63
- <small class="hidden-xs"><span class="timeago" title="{topics.timestampISO}"></span> &bull; <a href="<!-- IF topics.user.userslug -->{config.relative_path}/user/{topics.user.userslug}<!-- ELSE -->#<!-- ENDIF topics.user.userslug -->">{topics.user.displayname}</a></small>
64
- <small class="visible-xs-inline">
65
+ <span class="hidden-xs"><span class="timeago text-muted" title="{topics.timestampISO}"></span> &bull; <a class="text-muted" href="<!-- IF topics.user.userslug -->{config.relative_path}/user/{topics.user.userslug}<!-- ELSE -->#<!-- ENDIF topics.user.userslug -->">{topics.user.displayname}</a></span>
66
+ <span class="visible-xs-inline">
65
67
  <!-- IF topics.teaser.timestamp -->
66
68
  <span class="timeago" title="{topics.teaser.timestampISO}"></span>
67
69
  <!-- ELSE -->
68
70
  <span class="timeago" title="{topics.timestampISO}"></span>
69
71
  <!-- ENDIF topics.teaser.timestamp -->
70
- </small>
71
- </h2>
72
+ </span>
73
+ </div>
72
74
  </div>
73
75
 
74
- <div class="mobile-stat col-xs-2 visible-xs text-right">
76
+ <div class="mobile-stat col-2 visible-xs text-end">
75
77
  <span class="human-readable-number">{topics.postcount}</span> <a href="{config.relative_path}/topic/{topics.slug}/{topics.teaser.index}"><i class="fa fa-arrow-circle-right"></i></a>
76
78
  </div>
77
79
 
@@ -93,7 +95,7 @@
93
95
  </div>
94
96
 
95
97
  <div class="col-md-3 col-sm-3 teaser hidden-xs" component="topic/teaser">
96
- <div class="card background-link-container" style="border-color: {topics.category.bgColor}">
98
+ <div class="lastpost background-link-container" style="border-color: {topics.category.bgColor}">
97
99
  <a class="background-link" href="{config.relative_path}/topic/{topics.slug}/{topics.teaser.index}"></a>
98
100
  <!-- IF topics.unreplied -->
99
101
  <p>
@@ -102,8 +104,8 @@
102
104
  <!-- ELSE -->
103
105
  <!-- IF topics.teaser.pid -->
104
106
  <p>
105
- <a href="{config.relative_path}/user/{topics.teaser.user.userslug}">{buildAvatar(topics.teaser.user, "24", true, "not-responsive")}</a>
106
- <a class="permalink" href="{config.relative_path}/topic/{topics.slug}/{topics.teaser.index}">
107
+ <a href="{config.relative_path}/user/{topics.teaser.user.userslug}">{buildAvatar(topics.teaser.user, "24px", true, "not-responsive")}</a>
108
+ <a class="permalink text-muted" href="{config.relative_path}/topic/{topics.slug}/{topics.teaser.index}">
107
109
  <span class="timeago" title="{topics.teaser.timestampISO}"></span>
108
110
  </a>
109
111
  </p>
@@ -1,14 +1,15 @@
1
+ <ul id="users-container" class="users-container list-unstyled d-flex flex-wrap gap-2">
1
2
  {{{each users}}}
2
- <li class="users-box registered-user" data-uid="{users.uid}">
3
- <a href="{config.relative_path}/user/{users.userslug}">{buildAvatar(users, "lg", true)}</a>
4
- <br/>
5
- <div class="user-info">
6
- <span>
7
- <i component="user/status" class="fa fa-circle status {users.status}" title="[[global:{users.status}]]"></i>
8
- <a href="{config.relative_path}/user/{users.userslug}">{users.username}</a>
9
- </span>
10
- <br/>
3
+ <li class="users-box registered-user text-center pb-3" data-uid="{users.uid}" style="width: 102px;">
4
+ <a href="{config.relative_path}/user/{users.userslug}">{buildAvatar(users, "64px", true)}</a>
11
5
 
6
+ <div class="user-info">
7
+ <div class="text-nowrap text-truncate">
8
+ <span>
9
+ <i component="user/status" class="fa fa-circle status {users.status}" title="[[global:{users.status}]]"></i>
10
+ <a href="{config.relative_path}/user/{users.userslug}">{users.username}</a>
11
+ </span>
12
+ </div>
12
13
  <!-- IF section_online -->
13
14
  <div class="lastonline">
14
15
  <span class="timeago" title="{users.lastonlineISO}"></span>
@@ -43,4 +44,15 @@
43
44
  <!-- ENDIF section_flagged -->
44
45
  </div>
45
46
  </li>
46
- {{{end}}}
47
+ {{{end}}}
48
+ <!-- IF anonymousUserCount -->
49
+ <li class="users-box anon-user text-center pb-3" style="width: 102px;">
50
+ <span class="avatar avatar-rounded text-bg-secondary" component="avatar/icon" style="--avatar-size: 64px;">G</span>
51
+ <br/>
52
+ <div class="user-info">
53
+ <span id="online_anon_count">{anonymousUserCount}</span>
54
+ <span>[[global:guests]]</span>
55
+ </div>
56
+ </li>
57
+ <!-- ENDIF anonymousUserCount -->
58
+ </ul>
@@ -1,11 +1,21 @@
1
1
  <ul class="nav nav-pills">
2
- <li><a href="{config.relative_path}/users?section=online">[[global:online]]</a></li>
3
- <li><a href="{config.relative_path}/users?section=sort-posts">[[users:top_posters]]</a></li>
4
- <!-- IF !reputation:disabled -->
5
- <li><a href="{config.relative_path}/users?section=sort-reputation">[[users:most_reputation]]</a></li>
6
- <!-- ENDIF !reputation:disabled -->
7
- <!-- IF isAdminOrGlobalMod -->
8
- <li><a href="{config.relative_path}/users?section=flagged">[[users:most_flags]]</a></li>
9
- <li><a href="{config.relative_path}/users?section=banned">[[user:banned]]</a></li>
10
- <!-- ENDIF isAdminOrGlobalMod -->
2
+ <li class="nav-item">
3
+ <a class="nav-link" href="{config.relative_path}/users?section=online">[[global:online]]</a>
4
+ </li>
5
+ <li class="nav-item">
6
+ <a class="nav-link" href="{config.relative_path}/users?section=sort-posts">[[users:top_posters]]</a>
7
+ </li>
8
+ {{{ if !reputation:disabled }}}
9
+ <li class="nav-item">
10
+ <a class="nav-link" href="{config.relative_path}/users?section=sort-reputation">[[users:most_reputation]]</a>
11
+ </li>
12
+ {{{ end }}}
13
+ {{{ if isAdminOrGlobalMod }}}
14
+ <li class="nav-item">
15
+ <a class="nav-link" href="{config.relative_path}/users?section=flagged">[[users:most_flags]]</a>
16
+ </li>
17
+ <li class="nav-item">
18
+ <a class="nav-link" href="{config.relative_path}/users?section=banned">[[user:banned]]</a>
19
+ </li>
20
+ {{{ end }}}
11
21
  </ul>
@@ -5,45 +5,19 @@
5
5
  {{{end}}}
6
6
  </div>
7
7
  <div class="popular">
8
- <div class="topic-list-header btn-toolbar">
9
- <div class="pull-left">
10
- <!-- IF canPost -->
8
+ <div class="topic-list-header sticky-top btn-toolbar justify-content-between py-2 mb-2 gap-1 flex-nowrap">
9
+ <div class="d-flex gap-1 align-items-stretch">
10
+ {{{ if canPost }}}
11
11
  <!-- IMPORT partials/buttons/newTopic.tpl -->
12
- <!-- ELSE -->
12
+ {{{ else }}}
13
13
  <a component="category/post/guest" href="{config.relative_path}/login" class="btn btn-primary">[[category:guest-login-post]]</a>
14
- <!-- ENDIF canPost -->
14
+ {{{ end }}}
15
15
  </div>
16
-
17
- <div class="btn-group pull-right">
18
- <!-- IMPORT partials/category/tools.tpl -->
19
- </div>
20
-
16
+ <div class="d-flex gap-1 align-items-stretch">
17
+ <!-- IMPORT partials/topic-terms.tpl -->
18
+ <!-- IMPORT partials/topic-filters.tpl -->
21
19
  <!-- IMPORT partials/category-filter-right.tpl -->
22
-
23
- <div class="btn-group pull-right bottom-sheet <!-- IF !filters.length -->hidden<!-- ENDIF !filters.length -->">
24
- <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
25
- <span class="visible-sm-inline visible-md-inline visible-lg-inline">{selectedFilter.name}</span><span class="visible-xs-inline"><i class="fa fa-fw {selectedFilter.icon}"></i></span> <span class="caret"></span>
26
- </button>
27
- <ul class="dropdown-menu" role="menu">
28
- {{{each filters}}}
29
- <li role="presentation" class="category {{{if filters.selected}}}selected{{{end}}}">
30
- <a role="menu-item" href="{config.relative_path}/{filters.url}"><i class="fa fa-fw <!-- IF filters.selected -->fa-check<!-- ENDIF filters.selected -->"></i>{filters.name}</a>
31
- </li>
32
- {{{end}}}
33
- </ul>
34
- </div>
35
-
36
- <div class="btn-group pull-right bottom-sheet <!-- IF !terms.length -->hidden<!-- ENDIF !terms.length -->">
37
- <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
38
- {selectedTerm.name} <span class="caret"></span>
39
- </button>
40
- <ul class="dropdown-menu" role="menu">
41
- {{{each terms}}}
42
- <li role="presentation" class="category">
43
- <a role="menu-item" href="{config.relative_path}/{terms.url}"><i class="fa fa-fw <!-- IF terms.selected -->fa-check<!-- ENDIF terms.selected -->"></i>{terms.name}</a>
44
- </li>
45
- {{{end}}}
46
- </ul>
20
+ <!-- IMPORT partials/category/tools.tpl -->
47
21
  </div>
48
22
  </div>
49
23
 
@@ -1,65 +1,72 @@
1
1
  <!-- IMPORT partials/breadcrumbs.tpl -->
2
- <div class="btn-toolbar">
2
+ <div class="btn-toolbar justify-content-end">
3
+ <div class="me-2">
3
4
  <!-- IMPORT partials/category-filter-right.tpl -->
4
-
5
+ </div>
5
6
  {{{ if !singlePost }}}
6
- <div class="btn-group pull-right bottom-sheet" component="post-queue/bulk-actions">
7
- <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" autocomplete="off" aria-haspopup="true" aria-expanded="false">
7
+ <div class="btn-group bottom-sheet" component="post-queue/bulk-actions">
8
+ <button type="button" class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" autocomplete="off" aria-haspopup="true" aria-expanded="false">
8
9
  <i class="fa fa-clone"></i> [[post-queue:bulk-actions]] <span class="caret"></span>
9
10
  </button>
10
- <ul class="dropdown-menu dropdown-menu-right">
11
- <li><a href="#" data-action="accept-all">[[post-queue:accept-all]]</a></li>
12
- <li><a href="#" data-action="accept-selected">[[post-queue:accept-selected]]</a></li>
13
- <li class="divider"></li>
14
- <li><a href="#" data-action="reject-all">[[post-queue:reject-all]]</a></li>
15
- <li><a href="#" data-action="reject-selected">[[post-queue:reject-selected]]</a></li>
11
+ <ul class="dropdown-menu dropdown-menu-end">
12
+ <li><a class="dropdown-item" href="#" data-action="accept-all">[[post-queue:accept-all]]</a></li>
13
+ <li><a class="dropdown-item" href="#" data-action="accept-selected">[[post-queue:accept-selected]]</a></li>
14
+ <li class="dropdown-divider"></li>
15
+ <li><a class="dropdown-item" href="#" data-action="reject-all">[[post-queue:reject-all]]</a></li>
16
+ <li><a class="dropdown-item" href="#" data-action="reject-selected">[[post-queue:reject-selected]]</a></li>
16
17
  </ul>
17
18
  </div>
18
19
  {{{ end }}}
19
20
  </div>
20
21
  <hr/>
21
22
  <div class="row">
22
- <div class="col-xs-12">
23
+ <div class="col-12">
23
24
  <div class="post-queue preventSlideout posts-list">
24
25
  {{{ if !posts.length }}}
25
26
  {{{ if isAdmin }}}
26
- <p class="panel-body">
27
+ <div class="card card-body">
28
+ <p>
27
29
  [[post-queue:description, {config.relative_path}/admin/settings/post#post-queue]]
28
- </p>
30
+ </p>
31
+ </div>
29
32
  {{{ end }}}
30
33
  {{{ end }}}
31
34
 
32
35
  {{{ each posts }}}
33
- <div class="panel panel-default" data-id="{posts.id}">
34
- <div class="panel-heading">
36
+ <div class="card mb-3" data-id="{posts.id}">
37
+ <div class="card-header">
35
38
  {{{ if !singlePost }}}
36
- <input type="checkbox" autocomplete="off" />
39
+ <input type="checkbox" class="form-check-input" autocomplete="off" />
37
40
  {{{ end }}}
38
41
  <strong>{{{ if posts.data.tid }}}[[post-queue:reply]]{{{ else }}}[[post-queue:topic]]{{{ end }}}</strong>
39
- <span class="timeago pull-right" title={posts.data.timestampISO}></span>
42
+ <span class="timeago float-end" title={posts.data.timestampISO}></span>
40
43
  </div>
41
- <div class="panel-body">
42
-
44
+ <div class="card-body">
43
45
  <div class="row">
44
- <div class="col-lg-2 col-xs-12">
46
+ <div class="col-lg-2 col-12">
45
47
  <strong>[[post-queue:user]]</strong>
46
48
  <div>
47
49
  {{{ if posts.user.userslug}}}
48
- <a href="{config.relative_path}/uid/{posts.user.uid}">{buildAvatar(posts.user, "24", true, "not-responsive")} {posts.user.username}</a>
50
+ <a href="{config.relative_path}/uid/{posts.user.uid}">{buildAvatar(posts.user, "24px", true, "not-responsive")} {posts.user.username}</a>
49
51
  {{{ else }}}
50
52
  {posts.user.username}
51
53
  {{{ end }}}
52
54
  </div>
53
55
  </div>
54
- <div class="col-lg-3 col-xs-12">
55
- <strong>[[post-queue:category]]{{{ if posts.data.cid}}} <i class="fa fa-fw fa-edit" data-toggle="tooltip" title="[[post-queue:category-editable]]"></i>{{{ end }}}</strong>
56
+ <div class="col-lg-3 col-12">
57
+ <strong>[[post-queue:category]]{{{ if posts.data.cid}}} <i class="fa fa-fw fa-edit" data-bs-toggle="tooltip" title="[[post-queue:category-editable]]"></i>{{{ end }}}</strong>
56
58
  <div class="topic-category" {{{if posts.data.cid}}}data-editable="editable"{{{end}}}">
57
- <a href="{config.relative_path}/category/{posts.category.slug}"><!-- IF posts.category.icon --><span class="fa-stack"><i style="color: {posts.category.bgColor};" class="fa fa-circle fa-stack-2x"></i><i style="color: {posts.category.color};" class="fa fa-stack-1x fa-fw {posts.category.icon}"></i></span><!-- ENDIF posts.category.icon --> {posts.category.name}</a>
59
+ <a href="{config.relative_path}/category/{posts.category.slug}">
60
+ <div class="category-item d-inline-block">
61
+ {buildCategoryIcon(./category, "24px", "rounded-circle")}
62
+ {posts.category.name}
63
+ </div>
64
+ </a>
58
65
  </div>
59
66
  </div>
60
- <div class="col-lg-7 col-xs-12">
61
- <strong>{{{ if posts.data.tid }}}[[post-queue:topic]]{{{ else }}}[[post-queue:title]] <i class="fa fa-fw fa-edit" data-toggle="tooltip" title="[[post-queue:title-editable]]"></i>{{{ end }}}</strong>
62
- <div class="topic-title">
67
+ <div class="col-lg-7 col-12">
68
+ <strong>{{{ if posts.data.tid }}}[[post-queue:topic]]{{{ else }}}[[post-queue:title]] <i class="fa fa-fw fa-edit" data-bs-toggle="tooltip" title="[[post-queue:title-editable]]"></i>{{{ end }}}</strong>
69
+ <div class="topic-title text-break">
63
70
  {{{ if posts.data.tid }}}
64
71
  <a href="{config.relative_path}/topic/{posts.data.tid}">{posts.topic.title}</a>
65
72
  {{{ end }}}
@@ -74,21 +81,21 @@
74
81
  </div>
75
82
  <hr/>
76
83
  <div>
77
- <strong>[[post-queue:content]] <i class="fa fa-fw fa-edit" data-toggle="tooltip" title="[[post-queue:content-editable]]"></i></strong>
78
- <div class="post-content">{posts.data.content}</div>
84
+ <strong>[[post-queue:content]] <i class="fa fa-fw fa-edit" data-bs-toggle="tooltip" title="[[post-queue:content-editable]]"></i></strong>
85
+ <div class="post-content text-break">{posts.data.content}</div>
79
86
  <div class="post-content-editable hidden">
80
- <textarea class="form-control">{posts.data.rawContent}</textarea>
87
+ <textarea class="form-control w-100" style="height:300px;">{posts.data.rawContent}</textarea>
81
88
  </div>
82
89
  </div>
83
90
  </div>
84
- <div class="panel-footer text-right">
91
+ <div class="card-footer text-end">
85
92
  <div>
86
93
  {{{ if canAccept }}}
87
- <button class="btn btn-danger btn-xs" data-action="reject"><i class="fa fa-fw fa-times"></i> [[post-queue:reject]]</button>
88
- <button class="btn btn-info btn-xs" data-action="notify"><i class="fa fa-fw fa-bell-o"></i> [[post-queue:notify]]</button>
89
- <button class="btn btn-success btn-xs" data-action="accept"><i class="fa fa-fw fa-check"></i> [[post-queue:accept]] </button>
94
+ <button class="btn btn-danger btn-sm" data-action="reject"><i class="fa fa-fw fa-times"></i> [[post-queue:reject]]</button>
95
+ <button class="btn btn-info btn-sm" data-action="notify"><i class="fa fa-fw fa-bell-o"></i> [[post-queue:notify]]</button>
96
+ <button class="btn btn-success btn-sm" data-action="accept"><i class="fa fa-fw fa-check"></i> [[post-queue:accept]] </button>
90
97
  {{{ else }}}
91
- <button class="btn btn-danger btn-xs" data-action="reject"><i class="fa fa-fw fa-times"></i> [[post-queue:remove]]</button>
98
+ <button class="btn btn-danger btn-sm" data-action="reject"><i class="fa fa-fw fa-times"></i> [[post-queue:remove]]</button>
92
99
  {{{ end }}}
93
100
  </div>
94
101
  </div>
@@ -5,35 +5,21 @@
5
5
  {{{end}}}
6
6
  </div>
7
7
  <div class="recent">
8
- <div class="topic-list-header btn-toolbar">
9
- <div class="pull-left">
10
- <!-- IF canPost -->
8
+ <div class="topic-list-header sticky-top btn-toolbar justify-content-between py-2 mb-2 gap-1 flex-nowrap">
9
+ <div class="d-flex gap-1 align-items-stretch">
10
+ {{{ if canPost }}}
11
11
  <!-- IMPORT partials/buttons/newTopic.tpl -->
12
- <!-- ELSE -->
12
+ {{{ else }}}
13
13
  <a component="category/post/guest" href="{config.relative_path}/login" class="btn btn-primary">[[category:guest-login-post]]</a>
14
- <!-- ENDIF canPost -->
15
- <a href="{config.relative_path}/{selectedFilter.url}" class="inline-block">
16
- <div class="alert alert-warning hide" id="new-topics-alert"></div>
14
+ {{{ end }}}
15
+ <a href="{config.relative_path}/{selectedFilter.url}{querystring}" class="d-inline-block">
16
+ <div class="alert alert-warning h-100 m-0 px-2 py-1 d-flex align-items-center hide" id="new-topics-alert"></div>
17
17
  </a>
18
18
  </div>
19
-
20
- <div class="btn-group pull-right">
21
- <!-- IMPORT partials/category/tools.tpl -->
22
- </div>
23
-
19
+ <div class="d-flex gap-1 align-items-stretch">
20
+ <!-- IMPORT partials/topic-filters.tpl -->
24
21
  <!-- IMPORT partials/category-filter-right.tpl -->
25
-
26
- <div class="btn-group pull-right bottom-sheet <!-- IF !filters.length -->hidden<!-- ENDIF !filters.length -->">
27
- <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
28
- <span class="visible-sm-inline visible-md-inline visible-lg-inline">{selectedFilter.name}</span><span class="visible-xs-inline"><i class="fa fa-fw {selectedFilter.icon}"></i></span> <span class="caret"></span>
29
- </button>
30
- <ul class="dropdown-menu" role="menu">
31
- {{{each filters}}}
32
- <li role="presentation" class="category {{{if filters.selected}}}selected{{{end}}}">
33
- <a role="menu-item" href="{config.relative_path}/{filters.url}"><i class="fa fa-fw <!-- IF filters.selected -->fa-check<!-- ENDIF filters.selected -->"></i>{filters.name}</a>
34
- </li>
35
- {{{end}}}
36
- </ul>
22
+ <!-- IMPORT partials/category/tools.tpl -->
37
23
  </div>
38
24
  </div>
39
25
 
@@ -13,45 +13,45 @@
13
13
  <p>{error}</p>
14
14
  </div>
15
15
  <form component="register/local" class="form-horizontal" role="form" action="{config.relative_path}/register" method="post">
16
- <div class="form-group">
17
- <label for="username" class="col-lg-4 control-label">[[register:username]]</label>
18
- <div class="col-lg-8">
16
+ <div class="row mb-3">
17
+ <label for="username" class="col-lg-2 col-form-label">[[register:username]]</label>
18
+ <div class="col-lg-10">
19
19
  <input class="form-control" type="text" placeholder="[[register:username_placeholder]]" name="username" id="username" autocorrect="off" autocapitalize="off" autocomplete="off" />
20
20
  <span class="register-feedback" id="username-notify"></span>
21
- <span class="help-block">[[register:help.username_restrictions, {minimumUsernameLength}, {maximumUsernameLength}]]</span>
21
+ <span class="form-text">[[register:help.username_restrictions, {minimumUsernameLength}, {maximumUsernameLength}]]</span>
22
22
  </div>
23
23
  </div>
24
- <div class="form-group">
25
- <label for="password" class="col-lg-4 control-label">[[register:password]]</label>
26
- <div class="col-lg-8">
24
+ <div class="row mb-2">
25
+ <label for="password" class="col-lg-2 col-form-label">[[register:password]]</label>
26
+ <div class="col-lg-10">
27
27
  <input class="form-control" type="password" placeholder="[[register:password_placeholder]]" name="password" id="password" />
28
28
  <span class="register-feedback" id="password-notify"></span>
29
- <span class="help-block">[[register:help.minimum_password_length, {minimumPasswordLength}]]</span>
29
+ <span class="form-text">[[register:help.minimum_password_length, {minimumPasswordLength}]]</span>
30
30
  <p id="caps-lock-warning" class="text-danger hidden">
31
31
  <i class="fa fa-exclamation-triangle"></i> [[login:caps-lock-enabled]]
32
32
  </p>
33
33
  </div>
34
34
  </div>
35
- <div class="form-group">
36
- <label for="password-confirm" class="col-lg-4 control-label">[[register:confirm_password]]</label>
37
- <div class="col-lg-8">
35
+ <div class="row mb-2">
36
+ <label for="password-confirm" class="col-lg-2 col-form-label">[[register:confirm_password]]</label>
37
+ <div class="col-lg-10">
38
38
  <input class="form-control" type="password" placeholder="[[register:confirm_password_placeholder]]" name="password-confirm" id="password-confirm" />
39
39
  <span class="register-feedback" id="password-confirm-notify"></span>
40
40
  </div>
41
41
  </div>
42
42
 
43
43
  {{{each regFormEntry}}}
44
- <div class="form-group">
45
- <label for="register-{regFormEntry.styleName}" class="col-lg-4 control-label">{regFormEntry.label}</label>
46
- <div id="register-{regFormEntry.styleName}" class="col-lg-8">
44
+ <div class="row mb-2">
45
+ <label for="register-{regFormEntry.styleName}" class="col-lg-2 col-form-label">{regFormEntry.label}</label>
46
+ <div id="register-{regFormEntry.styleName}" class="col-lg-10">
47
47
  {{regFormEntry.html}}
48
48
  </div>
49
49
  </div>
50
50
  {{{end}}}
51
51
 
52
- <div class="form-group">
53
- <div class="col-lg-offset-4 col-lg-8">
54
- <button class="btn btn-primary btn-lg btn-block" id="register" type="submit">[[register:register_now_button]]</button>
52
+ <div class="row">
53
+ <div class="offset-lg-2 col-lg-10">
54
+ <button class="btn btn-primary btn-lg" id="register" type="submit">[[register:register_now_button]]</button>
55
55
  </div>
56
56
  </div>
57
57
  <input id="token" type="hidden" name="token" value="" />
@@ -1,7 +1,7 @@
1
1
  <!-- IMPORT partials/breadcrumbs.tpl -->
2
2
 
3
3
  <div class="row">
4
- <div class="col-xs-12 col-sm-8 col-sm-offset-2">
4
+ <div class="col-12 col-sm-8 offset-sm-2">
5
5
  <p class="lead text-center">
6
6
  {{{ if register }}}[[register:interstitial.intro-new]]{{{ else }}}[[register:interstitial.intro]]{{{ end }}}
7
7
  </p>
@@ -24,9 +24,9 @@
24
24
  <form role="form" method="post" action="{config.relative_path}/register/complete/?_csrf={config.csrf_token}" enctype="multipart/form-data">
25
25
  {{{each sections}}}
26
26
  <div class="row">
27
- <div class="col-xs-12 col-sm-8 col-sm-offset-2">
28
- <div class="panel panel-default">
29
- <div class="panel-body">
27
+ <div class="col-12 col-sm-8 offset-sm-2">
28
+ <div class="card">
29
+ <div class="card-body">
30
30
  {@value}
31
31
  </div>
32
32
  </div>
@@ -34,14 +34,18 @@
34
34
  </div>
35
35
  {{{end}}}
36
36
 
37
- <div class="row">
38
- <div class="col-xs-12 col-sm-8 col-sm-offset-2">
39
- <button class="btn btn-primary btn-block">[[topic:composer.submit]]</button>
37
+ <div class="row mt-3">
38
+ <div class="col-12 col-sm-8 offset-sm-2 d-grid">
39
+ <button class="btn btn-primary">[[topic:composer.submit]]</button>
40
40
  </div>
41
41
  </div>
42
42
  </form>
43
43
  <form role="form" method="post" action="{config.relative_path}/register/abort">
44
- <p class="text-center">
45
- <button class="btn btn-link">{{{ if register }}}[[register:cancel_registration]]{{{ else }}}[[modules:bootbox.cancel]]{{{ end }}}</button>
46
- </p>
44
+ <div class="row mt-2">
45
+ <div class="col-12 col-sm-8 offset-sm-2 d-grid">
46
+ <p class="d-grid text-center">
47
+ <button class="btn btn-link">{{{ if register }}}[[register:cancel_registration]]{{{ else }}}[[modules:bootbox.cancel]]{{{ end }}}</button>
48
+ </p>
49
+ </div>
50
+ </div>
47
51
  </form>
@@ -5,7 +5,7 @@
5
5
  [[reset_password:enter_email]]
6
6
  </div>
7
7
 
8
- <div class="well">
8
+ <div class="card card-body bg-light">
9
9
  <div class="alert alert-success hide" id="success">
10
10
  <button type="button" class="close" data-dismiss="alert">&times;</button>
11
11
  [[reset_password:password_reset_sent]]
@@ -15,9 +15,11 @@
15
15
  [[reset_password:invalid_email]]
16
16
  </div>
17
17
  <form onsubmit="return false;">
18
- <input type="text" class="form-control input-block input-lg" placeholder="[[reset_password:enter_email_address]]" id="email" />
19
-
20
- <br />
21
- <button class="btn btn-primary btn-block btn-lg" id="reset" type="submit">[[reset_password:reset_password]]</button>
18
+ <div class="mb-3">
19
+ <input type="email" class="form-control form-control-lg" id="email" placeholder="[[reset_password:enter_email_address]]" autocomplete="off">
20
+ </div>
21
+ <div class="d-grid">
22
+ <button class="btn btn-primary btn-lg" id="reset" type="submit">[[reset_password:reset_password]]</button>
23
+ </div>
22
24
  </form>
23
25
  </div>
@@ -1,7 +1,7 @@
1
1
  <!-- IMPORT partials/breadcrumbs.tpl -->
2
2
 
3
3
  <!-- IF valid -->
4
- <div class="well">
4
+ <div class="card card-body bg-light">
5
5
  <!-- IF displayExpiryNotice -->
6
6
  <div class="alert alert-warning">
7
7
  [[reset_password:password_expired]]
@@ -18,24 +18,24 @@
18
18
  </div>
19
19
  <form onsubmit="return false;" id="reset-form" class="row">
20
20
  <div class="col-sm-6">
21
- <label for="password">[[reset_password:new_password]]</label>
21
+ <label class="form-label" for="password">[[reset_password:new_password]]</label>
22
22
  <input class="form-control" type="password" placeholder="[[reset_password:new_password]]" id="password" /><br />
23
23
  </div>
24
24
  <div class="col-sm-6">
25
- <label for="repeat">[[reset_password:repeat_password]]</label>
25
+ <label class="form-label" for="repeat">[[reset_password:repeat_password]]</label>
26
26
  <input class="form-control" type="password" placeholder="[[reset_password:repeat_password]]" id="repeat" /><br />
27
27
  </div>
28
- <div class="col-xs-12">
28
+ <div class="col-12">
29
29
  <button class="btn btn-primary btn-block" id="reset" type="submit">[[reset_password:reset_password]]</button>
30
30
  </div>
31
31
  </form>
32
32
  </div>
33
33
  <!-- ELSE -->
34
- <div class="panel panel-default panel-danger">
35
- <div class="panel-heading">
36
- <h3 class="panel-title">[[reset_password:wrong_reset_code.title]]</h3>
37
- </div>
38
- <div class="panel-body">
34
+ <div class="card bg-danger">
35
+ <h5 class="card-header">
36
+ [[reset_password:wrong_reset_code.title]]
37
+ </h5>
38
+ <div class="card-body">
39
39
  <p>[[reset_password:wrong_reset_code.message]]</p>
40
40
  </div>
41
41
  </div>