nodebb-theme-harmony 1.2.11 → 1.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/scss/topic.scss +3 -1
- package/templates/account/blocks.tpl +5 -5
- package/templates/account/categories.tpl +17 -13
- package/templates/account/topics.tpl +5 -5
- package/templates/flags/detail.tpl +10 -10
- package/templates/groups/members.tpl +5 -1
- package/templates/header.tpl +1 -0
- package/templates/partials/account/admin-menu.tpl +9 -9
- package/templates/partials/account/header.tpl +2 -2
- package/templates/partials/categories/lastpost.tpl +1 -1
- package/templates/partials/category/filter-dropdown-content.tpl +3 -3
- package/templates/partials/category/selector-dropdown-content.tpl +3 -3
- package/templates/partials/category/sort.tpl +32 -22
- package/templates/partials/category/tools.tpl +15 -15
- package/templates/partials/category/watch.tpl +6 -6
- package/templates/partials/flags/bulk-actions.tpl +3 -3
- package/templates/partials/flags/filters.tpl +29 -29
- package/templates/partials/groups/filter-dropdown-content.tpl +3 -3
- package/templates/partials/mobile-footer.tpl +2 -2
- package/templates/partials/post_bar.tpl +1 -1
- package/templates/partials/search-filters.tpl +14 -14
- package/templates/partials/sidebar/chats.tpl +2 -2
- package/templates/partials/sidebar/drafts.tpl +3 -3
- package/templates/partials/sidebar/notifications.tpl +2 -2
- package/templates/partials/sidebar/search-mobile.tpl +2 -2
- package/templates/partials/sidebar/search.tpl +2 -2
- package/templates/partials/sidebar/user-menu.tpl +16 -16
- package/templates/partials/sidebar-left.tpl +3 -3
- package/templates/partials/skin-switcher.tpl +6 -6
- package/templates/partials/tags/filter-dropdown-content.tpl +4 -4
- package/templates/partials/tags/watch.tpl +4 -4
- package/templates/partials/topic/navigator-mobile.tpl +1 -1
- package/templates/partials/topic/post-menu-list.tpl +18 -18
- package/templates/partials/topic/post-menu.tpl +1 -1
- package/templates/partials/topic/post.tpl +3 -3
- package/templates/partials/topic/quickreply.tpl +1 -1
- package/templates/partials/topic/reply-button.tpl +2 -2
- package/templates/partials/topic/sort.tpl +17 -14
- package/templates/partials/topic/tools.tpl +2 -2
- package/templates/partials/topic/topic-menu-list.tpl +57 -16
- package/templates/partials/topic/watch.tpl +5 -5
- package/templates/partials/topic-filters.tpl +2 -2
- package/templates/partials/topic-terms.tpl +2 -2
- package/templates/partials/users/filter-dropdown-content.tpl +3 -3
- package/templates/post-queue.tpl +16 -16
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<div component="flags/filters" class="d-flex flex-wrap gap-2 pb-3 border-bottom">
|
|
2
2
|
<div class="btn-group bottom-sheet">
|
|
3
|
-
<a class="filter-btn btn btn-light btn-sm border {{{ if filters.quick }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
|
|
3
|
+
<a class="filter-btn btn btn-light btn-sm border {{{ if filters.quick }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true" aria-expanded="false">
|
|
4
4
|
<span class="filter-label">{{{ if filters.quick }}}[[flags:filter-quick-{./filters.quick}]]{{{ else }}}[[flags:quick-filters]]{{{ end }}}</span>
|
|
5
5
|
<span class="caret text-primary opacity-75"></span>
|
|
6
6
|
</a>
|
|
7
|
-
<ul class="dropdown-menu p-1 text-sm">
|
|
7
|
+
<ul class="dropdown-menu p-1 text-sm" role="menu">
|
|
8
8
|
<li>
|
|
9
|
-
<a class="dropdown-item rounded-1" href="{config.relative_path}/flags?quick=mine">[[flags:filter-quick-mine]]</a>
|
|
9
|
+
<a class="dropdown-item rounded-1" href="{config.relative_path}/flags?quick=mine" role="menuitem">[[flags:filter-quick-mine]]</a>
|
|
10
10
|
</li>
|
|
11
11
|
</ul>
|
|
12
12
|
</div>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<ul component="category/list" class="dropdown-menu p-1 text-sm category-dropdown-menu" role="menu">
|
|
31
31
|
{{{each categoryItems}}}
|
|
32
32
|
<li role="presentation" class="category {{{ if ../disabledClass }}}disabled{{{ end }}}" data-cid="{../cid}" data-parent-cid="{../parentCid}" data-name="{../name}">
|
|
33
|
-
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="
|
|
33
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="menuitem" href="#">
|
|
34
34
|
{../level}
|
|
35
35
|
<span component="category-markup" class="flex-grow-1" style="{{{ if ../match }}}font-weight: bold;{{{end}}}">
|
|
36
36
|
<div class="category-item d-inline-flex align-items-center gap-1">
|
|
@@ -48,54 +48,54 @@
|
|
|
48
48
|
</div>
|
|
49
49
|
|
|
50
50
|
<div class="btn-group bottom-sheet">
|
|
51
|
-
<a class="filter-btn btn btn-light btn-sm border {{{ if (sort != "newest") }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
|
|
51
|
+
<a class="filter-btn btn btn-light btn-sm border {{{ if (sort != "newest") }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true" aria-expanded="false">
|
|
52
52
|
<span class="filter-label">{{{ if (sort != "newest") }}}[[flags:sort-{./sort}]]{{{ else }}}[[flags:sort]]{{{ end }}}</span>
|
|
53
53
|
<span class="caret text-primary opacity-75"></span>
|
|
54
54
|
</a>
|
|
55
|
-
<ul class="dropdown-menu p-1 text-sm">
|
|
55
|
+
<ul class="dropdown-menu p-1 text-sm" role="menu">
|
|
56
56
|
<li><h6 class="dropdown-header">[[flags:sort-all]]</h6></li>
|
|
57
|
-
<li class="dropdown-item rounded-1" data-name="sort" data-value="newest">[[flags:sort-newest]]</li>
|
|
58
|
-
<li class="dropdown-item rounded-1" data-name="sort" data-value="oldest">[[flags:sort-oldest]]</li>
|
|
59
|
-
<li class="dropdown-item rounded-1" data-name="sort" data-value="reports">[[flags:sort-reports]]</li>
|
|
57
|
+
<li class="dropdown-item rounded-1" data-name="sort" data-value="newest" role="menuitem">[[flags:sort-newest]]</li>
|
|
58
|
+
<li class="dropdown-item rounded-1" data-name="sort" data-value="oldest" role="menuitem">[[flags:sort-oldest]]</li>
|
|
59
|
+
<li class="dropdown-item rounded-1" data-name="sort" data-value="reports" role="menuitem">[[flags:sort-reports]]</li>
|
|
60
60
|
<li><h6 class="dropdown-header">[[flags:sort-posts-only]]</h6></li>
|
|
61
|
-
<li class="dropdown-item rounded-1" data-name="sort" data-value="downvotes">[[flags:sort-downvotes]]</li>
|
|
62
|
-
<li class="dropdown-item rounded-1" data-name="sort" data-value="upvotes">[[flags:sort-upvotes]]</li>
|
|
63
|
-
<li class="dropdown-item rounded-1" data-name="sort" data-value="replies">[[flags:sort-replies]]</li>
|
|
61
|
+
<li class="dropdown-item rounded-1" data-name="sort" data-value="downvotes" role="menuitem">[[flags:sort-downvotes]]</li>
|
|
62
|
+
<li class="dropdown-item rounded-1" data-name="sort" data-value="upvotes" role="menuitem">[[flags:sort-upvotes]]</li>
|
|
63
|
+
<li class="dropdown-item rounded-1" data-name="sort" data-value="replies" role="menuitem">[[flags:sort-replies]]</li>
|
|
64
64
|
</ul>
|
|
65
65
|
</div>
|
|
66
66
|
|
|
67
67
|
<div class="btn-group bottom-sheet">
|
|
68
|
-
<a class="filter-btn btn btn-light btn-sm border {{{ if filters.state }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
|
|
68
|
+
<a class="filter-btn btn btn-light btn-sm border {{{ if filters.state }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true" aria-expanded="false">
|
|
69
69
|
<span class="filter-label">{{{ if filters.state }}}[[flags:state-{./filters.state}]]{{{ else }}}[[flags:filter-state]]{{{ end }}}</span>
|
|
70
70
|
<span class="caret text-primary opacity-75"></span>
|
|
71
71
|
</a>
|
|
72
|
-
<ul class="dropdown-menu p-1 text-sm">
|
|
73
|
-
<li class="dropdown-item rounded-1" data-name="state" data-value="open">[[flags:state-open]]</li>
|
|
74
|
-
<li class="dropdown-item rounded-1" data-name="state" data-value="wip">[[flags:state-wip]]</li>
|
|
75
|
-
<li class="dropdown-item rounded-1" data-name="state" data-value="resolved">[[flags:state-resolved]]</li>
|
|
76
|
-
<li class="dropdown-item rounded-1" data-name="state" data-value="rejected">[[flags:state-rejected]]</li>
|
|
72
|
+
<ul class="dropdown-menu p-1 text-sm" role="menu">
|
|
73
|
+
<li class="dropdown-item rounded-1" data-name="state" data-value="open" role="menuitem">[[flags:state-open]]</li>
|
|
74
|
+
<li class="dropdown-item rounded-1" data-name="state" data-value="wip" role="menuitem">[[flags:state-wip]]</li>
|
|
75
|
+
<li class="dropdown-item rounded-1" data-name="state" data-value="resolved" role="menuitem">[[flags:state-resolved]]</li>
|
|
76
|
+
<li class="dropdown-item rounded-1" data-name="state" data-value="rejected" role="menuitem">[[flags:state-rejected]]</li>
|
|
77
77
|
</ul>
|
|
78
78
|
</div>
|
|
79
79
|
|
|
80
80
|
<div class="btn-group bottom-sheet">
|
|
81
|
-
<a class="filter-btn btn btn-light btn-sm border {{{ if filters.type }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
|
|
81
|
+
<a class="filter-btn btn btn-light btn-sm border {{{ if filters.type }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true" aria-expanded="false">
|
|
82
82
|
<span class="filter-label">{{{ if filters.type }}}[[flags:filter-type-{./filters.type}]]{{{ else }}}[[flags:filter-type]]{{{ end }}}</span>
|
|
83
83
|
<span class="caret text-primary opacity-75"></span>
|
|
84
84
|
</a>
|
|
85
|
-
<ul class="dropdown-menu p-1 text-sm">
|
|
86
|
-
<li class="dropdown-item rounded-1" data-name="type" data-value="all">[[flags:filter-type-all]]</li>
|
|
87
|
-
<li class="dropdown-item rounded-1" data-name="type" data-value="post">[[flags:filter-type-post]]</li>
|
|
88
|
-
<li class="dropdown-item rounded-1" data-name="type" data-value="user">[[flags:filter-type-user]]</li>
|
|
85
|
+
<ul class="dropdown-menu p-1 text-sm" role="menu">
|
|
86
|
+
<li class="dropdown-item rounded-1" data-name="type" data-value="all" role="menuitem">[[flags:filter-type-all]]</li>
|
|
87
|
+
<li class="dropdown-item rounded-1" data-name="type" data-value="post" role="menuitem">[[flags:filter-type-post]]</li>
|
|
88
|
+
<li class="dropdown-item rounded-1" data-name="type" data-value="user" role="menuitem">[[flags:filter-type-user]]</li>
|
|
89
89
|
</ul>
|
|
90
90
|
</div>
|
|
91
91
|
|
|
92
92
|
<div component="flags/filter/assignee" class="dropdown bottom-sheet" data-filter-name="assignee">
|
|
93
|
-
<a component="user/filter/button" class="filter-btn btn btn-light btn-sm border {{{ if filters.assignee }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
|
|
93
|
+
<a component="user/filter/button" class="filter-btn btn btn-light btn-sm border {{{ if filters.assignee }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true" aria-expanded="false">
|
|
94
94
|
<span class="filter-label">[[flags:filter-assignee]]</span>
|
|
95
95
|
<span class="caret text-primary opacity-75"></span>
|
|
96
96
|
</a>
|
|
97
97
|
|
|
98
|
-
<ul class="dropdown-menu p-1 text-sm" style="min-width: 350px;">
|
|
98
|
+
<ul class="dropdown-menu p-1 text-sm" style="min-width: 350px;" role="menu">
|
|
99
99
|
<li class="px-3 py-1 d-flex flex-column gap-2">
|
|
100
100
|
<input type="text" class="form-control" component="user/filter/search" placeholder="[[search:type-a-username]]">
|
|
101
101
|
<div component="user/filter/selected" class="d-flex flex-wrap gap-2">
|
|
@@ -117,12 +117,12 @@
|
|
|
117
117
|
</div>
|
|
118
118
|
|
|
119
119
|
<div component="flags/filter/reporterId" class="dropdown bottom-sheet" data-filter-name="reporterId">
|
|
120
|
-
<a component="user/filter/button" class="filter-btn btn btn-light btn-sm border {{{ if filters.reporterId }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
|
|
120
|
+
<a component="user/filter/button" class="filter-btn btn btn-light btn-sm border {{{ if filters.reporterId }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true" aria-expanded="false">
|
|
121
121
|
<span class="filter-label">[[flags:filter-reporterId]]</span>
|
|
122
122
|
<span class="caret text-primary opacity-75"></span>
|
|
123
123
|
</a>
|
|
124
124
|
|
|
125
|
-
<ul class="dropdown-menu p-1 text-sm" style="min-width: 350px;">
|
|
125
|
+
<ul class="dropdown-menu p-1 text-sm" style="min-width: 350px;" role="menu">
|
|
126
126
|
<li class="px-3 py-1 d-flex flex-column gap-2">
|
|
127
127
|
<input type="text" class="form-control" component="user/filter/search" placeholder="[[search:type-a-username]]">
|
|
128
128
|
<div component="user/filter/selected" class="d-flex flex-wrap gap-2">
|
|
@@ -144,12 +144,12 @@
|
|
|
144
144
|
</div>
|
|
145
145
|
|
|
146
146
|
<div component="flags/filter/targetUid" class="dropdown bottom-sheet" data-filter-name="targetUid">
|
|
147
|
-
<a component="user/filter/button" class="filter-btn btn btn-light btn-sm border {{{ if filters.targetUid }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
|
|
147
|
+
<a component="user/filter/button" class="filter-btn btn btn-light btn-sm border {{{ if filters.targetUid }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true" aria-expanded="false">
|
|
148
148
|
<span class="filter-label">[[flags:filter-targetUid]]</span>
|
|
149
149
|
<span class="caret text-primary opacity-75"></span>
|
|
150
150
|
</a>
|
|
151
151
|
|
|
152
|
-
<ul class="dropdown-menu p-1 text-sm" style="min-width: 350px;">
|
|
152
|
+
<ul class="dropdown-menu p-1 text-sm" style="min-width: 350px;" role="menu">
|
|
153
153
|
<li class="px-3 py-1 d-flex flex-column">
|
|
154
154
|
<input type="text" class="form-control" component="user/filter/search" placeholder="[[search:type-a-username]]">
|
|
155
155
|
<div component="user/filter/selected" class="d-flex flex-wrap gap-2">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<div class="dropdown bottom-sheet">
|
|
2
|
-
<button type="button" class="btn-ghost-sm ff-secondary dropdown-toggle" data-bs-toggle="dropdown">
|
|
2
|
+
<button type="button" class="btn-ghost-sm ff-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
3
3
|
{{{ if selectedGroup }}}
|
|
4
4
|
<span class="fw-semibold">{selectedGroup.displayName}</span>
|
|
5
5
|
{{{ else }}}
|
|
@@ -8,14 +8,14 @@
|
|
|
8
8
|
</button>
|
|
9
9
|
<ul class="dropdown-menu p-1 text-sm" role="menu">
|
|
10
10
|
<li role="presentation" class="user {{{ if !selectedGroup}}}selected{{{end}}}">
|
|
11
|
-
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="
|
|
11
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="menuitem" href="{config.relative_path}/{allGroupsUrl}">
|
|
12
12
|
<div class="flex-grow-1">[[groups:all-groups]]</div>
|
|
13
13
|
<i class="flex-shrink-0 fa fa-fw {{{ if !selectedGroup }}}fa-check{{{ end }}}"></i>
|
|
14
14
|
</a>
|
|
15
15
|
</li>
|
|
16
16
|
{{{ each groups }}}
|
|
17
17
|
<li role="presentation" class="user {{{ if ./selected}}}selected{{{end}}}">
|
|
18
|
-
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="
|
|
18
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="menuitem" href="{config.relative_path}/{./url}">
|
|
19
19
|
<div class="flex-grow-1 d-inline-flex gap-1 align-items-center">{./displayName}</div>
|
|
20
20
|
<i class="flex-shrink-0 fa fa-fw {{{ if ./selected }}}fa-check{{{ end }}}"></i>
|
|
21
21
|
</a>
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
<div class="bottombar-nav p-2 text-dark bg-light d-flex justify-content-between align-items-center w-100">
|
|
6
6
|
<div class="bottombar-nav-left d-flex gap-3 align-items-center">
|
|
7
7
|
<div>
|
|
8
|
-
<a href="#" role="button" class="nav-link d-flex justify-content-between align-items-center position-relative" data-bs-toggle="dropdown">
|
|
8
|
+
<a href="#" role="button" class="nav-link d-flex justify-content-between align-items-center position-relative" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
9
9
|
<span class="position-relative">
|
|
10
10
|
<i class="fa fa-fw fa-lg fa-bars"></i>
|
|
11
11
|
<span component="unread/count" data-unread-url="{unreadCount.unreadUrl}" class="position-absolute top-0 start-100 translate-middle badge rounded-1 bg-primary {{{ if !unreadCount.mobileUnread }}}hidden{{{ end }}}">{unreadCount.mobileUnread}</span>
|
|
12
12
|
</span>
|
|
13
13
|
</a>
|
|
14
|
-
<ul class="navigation-dropdown dropdown-menu">
|
|
14
|
+
<ul class="navigation-dropdown dropdown-menu" role="menu">
|
|
15
15
|
{{{ each navigation }}}
|
|
16
16
|
{{{ if displayMenuItem(@root, @index) }}}
|
|
17
17
|
<li class="nav-item {./class}{{{ if ./dropdown }}} dropend{{{ end }}}" title="{./title}">
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<!-- IMPORT partials/topic/tools.tpl -->
|
|
15
15
|
|
|
16
16
|
{{{ if (!feeds:disableRSS && rssFeedUrl) }}}
|
|
17
|
-
<a class="btn-ghost-sm d-none d-lg-flex align-self-stretch" target="_blank" href="{rssFeedUrl}"><i class="fa fa-rss text-primary"></i></a>
|
|
17
|
+
<a class="btn-ghost-sm d-none d-lg-flex align-self-stretch" target="_blank" href="{rssFeedUrl}" title="[[global:rss-feed]]"><i class="fa fa-rss text-primary"></i></a>
|
|
18
18
|
{{{ end }}}
|
|
19
19
|
|
|
20
20
|
{{{ if browsingUsers }}}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
<!-- category filter -->
|
|
3
3
|
<div class="post-search-item">
|
|
4
4
|
<div component="category/filter" class="dropdown" data-filter-name="category">
|
|
5
|
-
<a component="category/filter/button" class="filter-btn btn btn-light btn-sm border {{{ if filters.categories.active }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
|
|
5
|
+
<a component="category/filter/button" class="filter-btn btn btn-light btn-sm border {{{ if filters.categories.active }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true" aria-expanded="false">
|
|
6
6
|
<span class="filter-label">{{{ if filters.categories.active }}}{filters.categories.label}{{{ else }}}[[search:categories]]{{{ end }}}</span>
|
|
7
7
|
<span class="caret text-primary opacity-75"></span>
|
|
8
8
|
</a>
|
|
9
9
|
|
|
10
|
-
<ul class="dropdown-menu p-1 text-sm">
|
|
10
|
+
<ul class="dropdown-menu p-1 text-sm" role="menu">
|
|
11
11
|
<li class="px-3 py-1 mb-2 d-flex flex-column gap-2">
|
|
12
12
|
<div component="category-selector-search">
|
|
13
13
|
<input type="text" class="form-control" component="category/filter/search" placeholder="[[search:type-a-category]]">
|
|
@@ -28,12 +28,12 @@
|
|
|
28
28
|
<!-- tag filter -->
|
|
29
29
|
<div class="post-search-item">
|
|
30
30
|
<div component="tag/filter" class="dropdown" data-filter-name="tag">
|
|
31
|
-
<a component="tag/filter/button" class="filter-btn btn btn-light btn-sm border {{{ if filters.tags.active }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
|
|
31
|
+
<a component="tag/filter/button" class="filter-btn btn btn-light btn-sm border {{{ if filters.tags.active }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true" aria-expanded="false">
|
|
32
32
|
<span class="filter-label">{{{ if filters.tags.active }}}{filters.tags.label}{{{ else }}}[[search:tags]]{{{ end }}}</span>
|
|
33
33
|
<span class="caret text-primary opacity-75"></span>
|
|
34
34
|
</a>
|
|
35
35
|
|
|
36
|
-
<ul class="dropdown-menu p-1 text-sm" style="width: 350px;">
|
|
36
|
+
<ul class="dropdown-menu p-1 text-sm" style="width: 350px;" role="menu">
|
|
37
37
|
<li class="px-3 py-1 d-flex flex-column gap-2">
|
|
38
38
|
<input type="text" class="form-control" component="tag/filter/search" placeholder="[[search:type-a-tag]]">
|
|
39
39
|
<div component="tag/filter/selected" class="d-flex flex-wrap gap-2">
|
|
@@ -58,12 +58,12 @@
|
|
|
58
58
|
<!-- user name filter -->
|
|
59
59
|
<div class="post-search-item">
|
|
60
60
|
<div component="user/filter" class="dropdown" data-filter-name="user">
|
|
61
|
-
<a component="user/filter/button" class="filter-btn btn btn-light btn-sm border {{{ if filters.users.active }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
|
|
61
|
+
<a component="user/filter/button" class="filter-btn btn btn-light btn-sm border {{{ if filters.users.active }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true" aria-expanded="false">
|
|
62
62
|
<span class="filter-label">{{{ if filters.users.active }}}{filters.users.label}{{{ else }}}[[search:posted-by]]{{{ end }}}</span>
|
|
63
63
|
<span class="caret text-primary opacity-75"></span>
|
|
64
64
|
</a>
|
|
65
65
|
|
|
66
|
-
<ul class="dropdown-menu p-1 text-sm" style="width: 350px;">
|
|
66
|
+
<ul class="dropdown-menu p-1 text-sm" style="width: 350px;" role="menu">
|
|
67
67
|
<li class="px-3 py-1 d-flex flex-column gap-2">
|
|
68
68
|
<input type="text" class="form-control" component="user/filter/search" placeholder="[[search:type-a-username]]">
|
|
69
69
|
<div component="user/filter/selected" class="d-flex flex-wrap gap-2">
|
|
@@ -89,12 +89,12 @@
|
|
|
89
89
|
<!-- reply count filter -->
|
|
90
90
|
<div class="post-search-item">
|
|
91
91
|
<div class="dropdown" data-filter-name="replies">
|
|
92
|
-
<a id="reply-count-button" class="filter-btn btn btn-light btn-sm border {{{ if filters.replies.active }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
|
92
|
+
<a id="reply-count-button" class="filter-btn btn btn-light btn-sm border {{{ if filters.replies.active }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
93
93
|
<span class="filter-label">{{{ if filters.replies.active }}}{filters.replies.label}{{{ else }}}[[search:replies]]{{{ end }}}</span>
|
|
94
94
|
<span class="caret text-primary opacity-75"></span>
|
|
95
95
|
</a>
|
|
96
96
|
|
|
97
|
-
<ul class="dropdown-menu p-1 text-sm" style="width: 300px;">
|
|
97
|
+
<ul class="dropdown-menu p-1 text-sm" style="width: 300px;" role="menu">
|
|
98
98
|
<li class="px-3 py-1 d-flex flex-nowrap gap-2">
|
|
99
99
|
<select id="reply-count-filter" class="form-select py-2 ps-2 pe-3">
|
|
100
100
|
<option value="atleast">[[search:at-least]]</option>
|
|
@@ -109,12 +109,12 @@
|
|
|
109
109
|
<!-- time filter -->
|
|
110
110
|
<div class="post-search-item">
|
|
111
111
|
<div class="dropdown" data-filter-name="time">
|
|
112
|
-
<a id="post-time-button" class="filter-btn btn btn-light btn-sm border {{{ if filters.time.active }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
|
112
|
+
<a id="post-time-button" class="filter-btn btn btn-light btn-sm border {{{ if filters.time.active }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
113
113
|
<span class="filter-label">{{{ if filters.time.active }}}{filters.time.label}{{{ else }}}[[search:time]]{{{ end }}}</span>
|
|
114
114
|
<span class="caret text-primary opacity-75"></span>
|
|
115
115
|
</a>
|
|
116
116
|
|
|
117
|
-
<ul class="dropdown-menu p-1 text-sm" style="width: 350px;">
|
|
117
|
+
<ul class="dropdown-menu p-1 text-sm" style="width: 350px;" role="menu">
|
|
118
118
|
<li class="px-3 py-1 d-flex flex-nowrap gap-2">
|
|
119
119
|
<select id="post-time-filter" class="form-select py-2 ps-2 pe-3">
|
|
120
120
|
<option value="newer">[[search:newer-than]]</option>
|
|
@@ -138,12 +138,12 @@
|
|
|
138
138
|
<!-- sort filter -->
|
|
139
139
|
<div class="post-search-item">
|
|
140
140
|
<div class="dropdown" data-filter-name="sort">
|
|
141
|
-
<a id="sort-by-button" class="filter-btn btn btn-light btn-sm border {{{ if filters.sort.active }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
|
141
|
+
<a id="sort-by-button" class="filter-btn btn btn-light btn-sm border {{{ if filters.sort.active }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
142
142
|
<span class="filter-label">{{{ if filters.sort.active }}}{filters.sort.label}{{{ else }}}[[search:sort]]{{{ end }}}</span>
|
|
143
143
|
<span class="caret text-primary opacity-75"></span>
|
|
144
144
|
</a>
|
|
145
145
|
|
|
146
|
-
<ul class="dropdown-menu p-1 text-sm" style="width: 250px;">
|
|
146
|
+
<ul class="dropdown-menu p-1 text-sm" style="width: 250px;" role="menu">
|
|
147
147
|
<li class="px-3 py-1 d-flex flex-column gap-2">
|
|
148
148
|
<select id="post-sort-by" class="form-select py-2 ps-2 pe-3">
|
|
149
149
|
<option value="relevance">[[search:relevance]]</option>
|
|
@@ -170,10 +170,10 @@
|
|
|
170
170
|
<!-- save & reset preferences -->
|
|
171
171
|
<div class="post-search-item">
|
|
172
172
|
<div class="dropdown">
|
|
173
|
-
<a class="btn btn-light btn-sm border border-gray-300 dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">[[search:save]] <span class="caret text-primary opacity-75"></span>
|
|
173
|
+
<a class="btn btn-light btn-sm border border-gray-300 dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">[[search:save]] <span class="caret text-primary opacity-75"></span>
|
|
174
174
|
</a>
|
|
175
175
|
|
|
176
|
-
<ul class="dropdown-menu p-1 text-sm" style="width: 300px;">
|
|
176
|
+
<ul class="dropdown-menu p-1 text-sm" style="width: 300px;" role="menu">
|
|
177
177
|
<li class="px-3 py-1 d-flex flex-column gap-2">
|
|
178
178
|
<button id="save-preferences" class="btn btn-primary">[[search:save-preferences]]</button>
|
|
179
179
|
<button id="clear-preferences" class="btn-ghost border">[[search:clear-preferences]]</button>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<a data-bs-toggle="dropdown" href="#" role="button" class="nav-link d-flex gap-2 justify-content-between align-items-center position-relative" component="chat/dropdown">
|
|
1
|
+
<a data-bs-toggle="dropdown" href="#" role="button" class="nav-link d-flex gap-2 justify-content-between align-items-center position-relative" component="chat/dropdown" aria-haspopup="true" aria-expanded="false">
|
|
2
2
|
<span class="d-flex gap-2 align-items-center text-nowrap truncate-open">
|
|
3
3
|
<span class="position-relative">
|
|
4
4
|
<i component="chat/icon" class="fa fa-fw {{{ if unreadCount.chat}}}fa-comment{{{ else }}}fa-comment-o{{{ end }}} unread-count" data-content="{unreadCount.chat}"></i>
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
</span>
|
|
9
9
|
<span component="chat/count" class="visible-open badge rounded-1 bg-primary {{{ if !unreadCount.chat }}}hidden{{{ end }}}">{unreadCount.chat}</span>
|
|
10
10
|
</a>
|
|
11
|
-
<ul class="chats-dropdown dropdown-menu p-1 shadow">
|
|
11
|
+
<ul class="chats-dropdown dropdown-menu p-1 shadow" role="menu">
|
|
12
12
|
<li>
|
|
13
13
|
<div component="chat/list" class="list-container chats-list overscroll-behavior-contain p-0 pe-1 ff-base">
|
|
14
14
|
<div class="rounded-1">
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<a data-bs-toggle="dropdown" href="#" role="button" class="nav-link d-flex gap-2 justify-content-between align-items-center position-relative">
|
|
1
|
+
<a data-bs-toggle="dropdown" href="#" role="button" class="nav-link d-flex gap-2 justify-content-between align-items-center position-relative" aria-haspopup="true" aria-expanded="false">
|
|
2
2
|
<span class="d-flex gap-2 align-items-center text-nowrap truncate-open">
|
|
3
3
|
<span class="position-relative">
|
|
4
4
|
<i component="drafts/icon" class="fa fa-fw fa-pen-to-square unread-count"></i>
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
</span>
|
|
9
9
|
<span component="drafts/count" class="visible-open badge rounded-1 bg-primary hidden">0</span>
|
|
10
10
|
</a>
|
|
11
|
-
<ul class="drafts-dropdown dropdown-menu p-1 shadow">
|
|
11
|
+
<ul class="drafts-dropdown dropdown-menu p-1 shadow" role="menu">
|
|
12
12
|
<li>
|
|
13
13
|
<div component="drafts/list" class="list-container draft-list list-unstyled d-flex flex-column overscroll-behavior-contain gap-1 pe-1">
|
|
14
14
|
<div class="dropdown-item rounded-1 p-2 d-flex gap-2 placeholder-wave">
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
{{{ end }}}
|
|
30
30
|
<div data-save-id="{./save_id}">
|
|
31
31
|
<div class="d-flex gap-1 justify-content-between ff-base">
|
|
32
|
-
<div class="dropdown-item rounded-1 p-2 d-flex flex-column gap-2 pointer" component="drafts/open" data-save-id="{./save_id}">
|
|
32
|
+
<div class="dropdown-item rounded-1 p-2 d-flex flex-column gap-2 pointer" component="drafts/open" data-save-id="{./save_id}" role="menuitem">
|
|
33
33
|
{{{ if (./action == "topics.post") }}}
|
|
34
34
|
{{{ if ./title}}}
|
|
35
35
|
<div class="text text-xs fw-semibold line-clamp-2 text-break">{./title}</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<a data-bs-toggle="dropdown" href="#" role="button" class="nav-link d-flex gap-2 justify-content-between align-items-center position-relative">
|
|
1
|
+
<a data-bs-toggle="dropdown" href="#" role="button" class="nav-link d-flex gap-2 justify-content-between align-items-center position-relative" aria-haspopup="true" aria-expanded="false">
|
|
2
2
|
<span class="d-flex gap-2 align-items-center text-nowrap truncate-open">
|
|
3
3
|
<span class="position-relative">
|
|
4
4
|
<i component="notifications/icon" class="fa fa-fw {{{ if unreadCount.notification}}}fa-bell{{{ else }}}fa-bell-o{{{ end }}} unread-count" data-content="{unreadCount.notification}"></i>
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
</span>
|
|
9
9
|
<span component="notifications/count" class="visible-open badge rounded-1 bg-primary {{{ if !unreadCount.notification }}}hidden{{{ end }}}">{unreadCount.notification}</span>
|
|
10
10
|
</a>
|
|
11
|
-
<ul class="notifications-dropdown dropdown-menu p-1 shadow">
|
|
11
|
+
<ul class="notifications-dropdown dropdown-menu p-1 shadow" role="menu">
|
|
12
12
|
<li>
|
|
13
13
|
<div component="notifications/list" class="list-container notification-list overscroll-behavior-contain pe-1 ff-base">
|
|
14
14
|
<div class="mb-2 p-1">
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
<a component="search/button" id="search-button" href="#" role="button" class="nav-link text-truncate" data-bs-toggle="dropdown" title="[[global:header.search]]">
|
|
1
|
+
<a component="search/button" id="search-button" href="#" role="button" class="nav-link text-truncate" data-bs-toggle="dropdown" title="[[global:header.search]]" aria-haspopup="true" aria-expanded="false">
|
|
2
2
|
<i class="fa fa-search fa-fw"></i>
|
|
3
3
|
<span class="nav-text visible-open px-2 fw-semibold">[[global:search]]</span>
|
|
4
4
|
</a>
|
|
5
|
-
<div class="search-dropdown dropdown-menu p-2 shadow">
|
|
5
|
+
<div class="search-dropdown dropdown-menu p-2 shadow" role="menu">
|
|
6
6
|
<form component="search/form" id="search-form" class="d-flex justify-content-end align-items-center" role="search" method="GET">
|
|
7
7
|
<div component="search/fields" class="w-100" id="search-fields">
|
|
8
8
|
<div id="quick-search-container" class="quick-search-container d-block hidden">
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
<a component="search/button" id="search-button" href="#" role="button" class="nav-link d-flex gap-2 align-items-center text-truncate" data-bs-toggle="dropdown">
|
|
1
|
+
<a component="search/button" id="search-button" href="#" role="button" class="nav-link d-flex gap-2 align-items-center text-truncate" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
2
2
|
<span>
|
|
3
3
|
<i class="fa fa-search fa-fw"></i>
|
|
4
4
|
</span>
|
|
5
5
|
<span class="nav-text small visible-open fw-semibold">[[global:search]]</span>
|
|
6
6
|
</a>
|
|
7
|
-
<div class="search-dropdown dropdown-menu p-2 shadow">
|
|
7
|
+
<div class="search-dropdown dropdown-menu p-2 shadow" role="menu">
|
|
8
8
|
<form component="search/form" id="search-form" class="d-flex justify-content-end align-items-center" role="search" method="GET">
|
|
9
9
|
<div component="search/fields" class="w-100" id="search-fields">
|
|
10
10
|
<div class="d-flex gap-1">
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
<a component="header/avatar" id="user_dropdown" href="#" role="button" class="nav-link d-flex gap-2 align-items-center text-truncate" data-bs-toggle="dropdown">
|
|
1
|
+
<a component="header/avatar" id="user_dropdown" href="#" role="button" class="nav-link d-flex gap-2 align-items-center text-truncate" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
2
2
|
{buildAvatar(user, "20px", true)}
|
|
3
3
|
<span id="user-header-name" class="nav-text small visible-open fw-semibold">{user.username}</span>
|
|
4
4
|
</a>
|
|
5
|
-
<ul id="user-control-list" component="header/usercontrol" class="overscroll-behavior-contain user-dropdown dropdown-menu shadow p-1 text-sm ff-base" aria-labelledby="user_dropdown">
|
|
5
|
+
<ul id="user-control-list" component="header/usercontrol" class="overscroll-behavior-contain user-dropdown dropdown-menu shadow p-1 text-sm ff-base" aria-labelledby="user_dropdown" role="menu">
|
|
6
6
|
<li>
|
|
7
|
-
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" component="header/profilelink" href="{relative_path}/user/{user.userslug}">
|
|
7
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" component="header/profilelink" href="{relative_path}/user/{user.userslug}" role="menuitem">
|
|
8
8
|
<span component="user/status" class="flex-shrink-0 border border-white border-2 rounded-circle status {user.status}"><span class="visually-hidden">[[global:{user.status}]]</span></span>
|
|
9
9
|
<span class="fw-semibold" component="header/username">{user.username}</span>
|
|
10
10
|
</a>
|
|
@@ -12,28 +12,28 @@
|
|
|
12
12
|
<li role="presentation" class="dropdown-divider"></li>
|
|
13
13
|
<li><h6 class="dropdown-header text-xs">[[global:status]]</h6></li>
|
|
14
14
|
<li>
|
|
15
|
-
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-2 {{{ if user.online }}}selected{{{ end }}}" data-status="online">
|
|
15
|
+
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-2 {{{ if user.online }}}selected{{{ end }}}" data-status="online" role="menuitem">
|
|
16
16
|
<span component="user/status" class="flex-shrink-0 border border-white border-2 rounded-circle status online"><span class="visually-hidden">[[global:online]]</span></span>
|
|
17
17
|
<span class="flex-grow-1">[[global:online]]</span>
|
|
18
18
|
<i class="fa-solid fa-check text-muted flex-shrink-0"></i>
|
|
19
19
|
</a>
|
|
20
20
|
</li>
|
|
21
21
|
<li>
|
|
22
|
-
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-2 {{{ if user.away }}}selected{{{ end }}}" data-status="away">
|
|
22
|
+
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-2 {{{ if user.away }}}selected{{{ end }}}" data-status="away" role="menuitem">
|
|
23
23
|
<span component="user/status" class="flex-shrink-0 border border-white border-2 rounded-circle status away"><span class="visually-hidden">[[global:away]]</span></span>
|
|
24
24
|
<span class="flex-grow-1">[[global:away]]</span>
|
|
25
25
|
<i class="fa-solid fa-check text-muted flex-shrink-0"></i>
|
|
26
26
|
</a>
|
|
27
27
|
</li>
|
|
28
28
|
<li>
|
|
29
|
-
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-2 {{{ if user.dnd }}}selected{{{ end }}}" data-status="dnd">
|
|
29
|
+
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-2 {{{ if user.dnd }}}selected{{{ end }}}" data-status="dnd" role="menuitem">
|
|
30
30
|
<span component="user/status" class="flex-shrink-0 border border-white border-2 rounded-circle status dnd"><span class="visually-hidden">[[global:dnd]]</span></span>
|
|
31
31
|
<span class="flex-grow-1">[[global:dnd]]</span>
|
|
32
32
|
<i class="fa-solid fa-check text-muted flex-shrink-0"></i>
|
|
33
33
|
</a>
|
|
34
34
|
</li>
|
|
35
35
|
<li>
|
|
36
|
-
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-2 {{{ if user.offline }}}selected{{{ end }}}" data-status="offline">
|
|
36
|
+
<a href="#" class="dropdown-item rounded-1 user-status d-flex align-items-center gap-2 {{{ if user.offline }}}selected{{{ end }}}" data-status="offline" role="menuitem">
|
|
37
37
|
<span component="user/status" class="flex-shrink-0 border border-white border-2 rounded-circle status offline"><span class="visually-hidden">[[global:invisible]]</span></span>
|
|
38
38
|
<span class="flex-grow-1">[[global:invisible]]</span>
|
|
39
39
|
<i class="fa-solid fa-check text-muted flex-shrink-0"></i>
|
|
@@ -41,17 +41,17 @@
|
|
|
41
41
|
</li>
|
|
42
42
|
<li role="presentation" class="dropdown-divider"></li>
|
|
43
43
|
<li>
|
|
44
|
-
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/user/{user.userslug}/bookmarks">
|
|
44
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/user/{user.userslug}/bookmarks" role="menuitem">
|
|
45
45
|
<i class="fa fa-fw fa-bookmark text-muted"></i> <span>[[user:bookmarks]]</span>
|
|
46
46
|
</a>
|
|
47
47
|
</li>
|
|
48
48
|
<li>
|
|
49
|
-
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" component="header/profilelink/edit" href="{relative_path}/user/{user.userslug}/edit">
|
|
49
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" component="header/profilelink/edit" href="{relative_path}/user/{user.userslug}/edit" role="menuitem">
|
|
50
50
|
<i class="fa fa-fw fa-edit text-muted"></i> <span>[[user:edit-profile]]</span>
|
|
51
51
|
</a>
|
|
52
52
|
</li>
|
|
53
53
|
<li>
|
|
54
|
-
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" component="header/profilelink/settings" href="{relative_path}/user/{user.userslug}/settings">
|
|
54
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" component="header/profilelink/settings" href="{relative_path}/user/{user.userslug}/settings" role="menuitem">
|
|
55
55
|
<i class="fa fa-fw fa-gear text-muted"></i> <span>[[user:settings]]</span>
|
|
56
56
|
</a>
|
|
57
57
|
</li>
|
|
@@ -59,31 +59,31 @@
|
|
|
59
59
|
<li role="presentation" class="dropdown-divider"></li>
|
|
60
60
|
<li><h6 class="dropdown-header text-xs">[[pages:moderator-tools]]</h6></li>
|
|
61
61
|
<li>
|
|
62
|
-
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/flags">
|
|
62
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/flags" role="menuitem">
|
|
63
63
|
<i class="fa fa-fw fa-flag text-muted"></i> <span>[[pages:flagged-content]]</span>
|
|
64
64
|
</a>
|
|
65
65
|
</li>
|
|
66
66
|
<li>
|
|
67
|
-
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/post-queue">
|
|
67
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/post-queue" role="menuitem">
|
|
68
68
|
<i class="fa fa-fw fa-list-alt text-muted"></i> <span>[[pages:post-queue]]</span>
|
|
69
69
|
</a>
|
|
70
70
|
</li>
|
|
71
71
|
{{{ if registrationQueueEnabled }}}
|
|
72
72
|
<li>
|
|
73
|
-
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/registration-queue">
|
|
73
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/registration-queue" role="menuitem">
|
|
74
74
|
<i class="fa fa-fw fa-list-alt text-muted"></i> <span>[[pages:registration-queue]]</span>
|
|
75
75
|
</a>
|
|
76
76
|
</li>
|
|
77
77
|
{{{ end }}}
|
|
78
78
|
<li>
|
|
79
|
-
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/ip-blacklist">
|
|
79
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/ip-blacklist" role="menuitem">
|
|
80
80
|
<i class="fa fa-fw fa-ban text-muted"></i> <span>[[pages:ip-blacklist]]</span>
|
|
81
81
|
</a>
|
|
82
82
|
</li>
|
|
83
83
|
{{{ else }}}
|
|
84
84
|
{{{ if postQueueEnabled }}}
|
|
85
85
|
<li>
|
|
86
|
-
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/post-queue">
|
|
86
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{relative_path}/post-queue" role="menuitem">
|
|
87
87
|
<i class="fa fa-fw fa-list-alt text-muted"></i> <span>[[pages:post-queue]]</span>
|
|
88
88
|
</a>
|
|
89
89
|
</li>
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
<form method="post" action="{relative_path}/logout">
|
|
96
96
|
<input type="hidden" name="_csrf" value="{config.csrf_token}">
|
|
97
97
|
<input type="hidden" name="noscript" value="true">
|
|
98
|
-
<button type="submit" class="dropdown-item rounded-1 d-flex align-items-center gap-2">
|
|
98
|
+
<button type="submit" class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="menuitem">
|
|
99
99
|
<i class="fa fa-fw fa-sign-out text-muted"></i><span>[[global:logout]]</span>
|
|
100
100
|
</button>
|
|
101
101
|
</form>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
{{{ if displayMenuItem(@root, @index) }}}
|
|
5
5
|
<li class="nav-item mx-2 {./class}{{{ if ./dropdown }}} dropend{{{ end }}}" title="{./title}">
|
|
6
6
|
<a class="nav-link navigation-link d-flex gap-2 justify-content-between align-items-center {{{ if ./dropdown }}}dropdown-toggle{{{ end }}}"
|
|
7
|
-
{{{ if ./dropdown }}} href="#" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" {{{ else }}} href="{./route}"{{{ end }}} {{{ if ./id }}}id="{./id}"{{{ end }}}{{{ if ./targetBlank }}} target="_blank"{{{ end }}}>
|
|
7
|
+
{{{ if ./dropdown }}} href="#" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" {{{ else }}} href="{./route}"{{{ end }}} {{{ if ./id }}}id="{./id}"{{{ end }}}{{{ if ./targetBlank }}} target="_blank"{{{ end }}} {{{ if ./text }}}aria-label="{./text}"{{{ end }}}>
|
|
8
8
|
<span class="d-flex gap-2 align-items-center text-nowrap truncate-open">
|
|
9
9
|
<span class="position-relative">
|
|
10
10
|
{{{ if ./iconClass }}}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<span component="navigation/count" class="visible-open badge rounded-1 bg-primary {{{ if !./content }}}hidden{{{ end }}}">{./content}</span>
|
|
20
20
|
</a>
|
|
21
21
|
{{{ if ./dropdown }}}
|
|
22
|
-
<ul class="dropdown-menu p-1 shadow">
|
|
22
|
+
<ul class="dropdown-menu p-1 shadow" role="menu">
|
|
23
23
|
{./dropdownContent}
|
|
24
24
|
</ul>
|
|
25
25
|
{{{ end }}}
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
{{{ end }}}
|
|
34
34
|
|
|
35
35
|
<div class="sidebar-toggle m-2 d-none d-lg-block">
|
|
36
|
-
<a href="#" role="button" component="sidebar/toggle" class="nav-link d-flex gap-2 align-items-center p-2 pointer w-100 text-nowrap" title="[[themes/harmony:expand]]">
|
|
36
|
+
<a href="#" role="button" component="sidebar/toggle" class="nav-link d-flex gap-2 align-items-center p-2 pointer w-100 text-nowrap" title="[[themes/harmony:expand]]" aria-label="[[themes/harmony:sidebar-toggle]]">
|
|
37
37
|
<i class="fa fa-fw fa-angles-right"></i>
|
|
38
38
|
<i class="fa fa-fw fa-angles-left"></i>
|
|
39
39
|
<span class="nav-text visible-open fw-semibold small lh-1">[[themes/harmony:collapse]]</span>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<div class="dropend m-2" component="skinSwitcher" title="[[themes/harmony:skins]]">
|
|
2
|
-
<a data-bs-toggle="dropdown" href="#" role="button" class="nav-link position-relative">
|
|
2
|
+
<a data-bs-toggle="dropdown" href="#" role="button" class="nav-link position-relative" aria-haspopup="true" aria-expanded="false" aria-label="[[themes/harmony:skins]]">
|
|
3
3
|
<span class="justify-content-between w-100">
|
|
4
4
|
<span class="d-flex gap-2 align-items-center text-nowrap truncate-open">
|
|
5
5
|
<span>
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
</span>
|
|
11
11
|
</a>
|
|
12
12
|
|
|
13
|
-
<ul class="dropdown-menu p-1 text-sm overflow-auto p-1">
|
|
13
|
+
<ul class="dropdown-menu p-1 text-sm overflow-auto p-1" role="menu">
|
|
14
14
|
<div class="d-flex">
|
|
15
15
|
<div>
|
|
16
16
|
<li class="dropdown-header">Light</li>
|
|
17
17
|
<div class="d-grid" style="grid-template-columns: 1fr 1fr;">
|
|
18
18
|
{{{ each bootswatchSkinOptions.light }}}
|
|
19
19
|
<li>
|
|
20
|
-
<a href="#" class="dropdown-item rounded-1" data-value="{./value}">{./name} <i class="fa fa-fw fa-check {{{ if !./selected }}} invisible {{{ end }}}"></i></a>
|
|
20
|
+
<a href="#" class="dropdown-item rounded-1" data-value="{./value}" role="menuitem">{./name} <i class="fa fa-fw fa-check {{{ if !./selected }}} invisible {{{ end }}}"></i></a>
|
|
21
21
|
</li>
|
|
22
22
|
{{{ end }}}
|
|
23
23
|
</div>
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
<li class="dropdown-header">Dark</li>
|
|
27
27
|
{{{ each bootswatchSkinOptions.dark }}}
|
|
28
28
|
<li>
|
|
29
|
-
<a href="#" class="dropdown-item rounded-1" data-value="{./value}">{./name} <i class="fa fa-fw fa-check {{{ if !./selected }}} invisible {{{ end }}}"></i></a>
|
|
29
|
+
<a href="#" class="dropdown-item rounded-1" data-value="{./value}" role="menuitem">{./name} <i class="fa fa-fw fa-check {{{ if !./selected }}} invisible {{{ end }}}"></i></a>
|
|
30
30
|
</li>
|
|
31
31
|
{{{ end }}}
|
|
32
32
|
</div>
|
|
@@ -37,12 +37,12 @@
|
|
|
37
37
|
<div class="d-grid" style="grid-template-columns: 1fr 1fr;">
|
|
38
38
|
{{{ each bootswatchSkinOptions.default }}}
|
|
39
39
|
<li>
|
|
40
|
-
<a href="#" class="dropdown-item rounded-1" data-value="{./value}">{./name} <i class="fa fa-fw fa-check {{{ if !./selected }}} invisible {{{ end }}}"></i></a>
|
|
40
|
+
<a href="#" class="dropdown-item rounded-1" data-value="{./value}" role="menuitem">{./name} <i class="fa fa-fw fa-check {{{ if !./selected }}} invisible {{{ end }}}"></i></a>
|
|
41
41
|
</li>
|
|
42
42
|
{{{ end }}}
|
|
43
43
|
{{{ each bootswatchSkinOptions.custom }}}
|
|
44
44
|
<li>
|
|
45
|
-
<a href="#" class="dropdown-item rounded-1" data-value="{./value}">{./name} <i class="fa fa-fw fa-check {{{ if !./selected }}} invisible {{{ end }}}"></i></a>
|
|
45
|
+
<a href="#" class="dropdown-item rounded-1" data-value="{./value}" role="menuitem">{./name} <i class="fa fa-fw fa-check {{{ if !./selected }}} invisible {{{ end }}}"></i></a>
|
|
46
46
|
</li>
|
|
47
47
|
{{{ end }}}
|
|
48
48
|
</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<button type="button" class="btn-ghost-sm ff-secondary d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown">
|
|
1
|
+
<button type="button" class="btn-ghost-sm ff-secondary d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
2
2
|
{{{ if selectedTag }}}
|
|
3
3
|
<span class="d-inline-flex align-items-center gap-1">
|
|
4
4
|
<i class="fa fa-fw fa-tags text-primary"></i>
|
|
@@ -12,16 +12,16 @@
|
|
|
12
12
|
<div component="tag/filter/search" class="hidden position-absolute top-0">
|
|
13
13
|
<input type="text" class="form-control form-control-sm" placeholder="[[search:type-to-search]]" autocomplete="off">
|
|
14
14
|
</div>
|
|
15
|
-
<ul component="tag/filter/list" class="dropdown-menu p-1 text-sm overflow-auto" role="menu" style="max-height: 500px;">
|
|
15
|
+
<ul component="tag/filter/list" class="dropdown-menu p-1 text-sm overflow-auto" role="menu" style="max-height: 500px;" role="menu">
|
|
16
16
|
<li role="presentation" data-tag="">
|
|
17
|
-
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="
|
|
17
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="menuitem" href="#">
|
|
18
18
|
<span class="flex-grow-1">[[tags:all-tags]]</span>
|
|
19
19
|
<i component="tag/select/icon" class="flex-shrink-0 fa fa-fw fa-check {{{if selectedTag }}}invisible{{{ end }}}"></i>
|
|
20
20
|
</a>
|
|
21
21
|
</li>
|
|
22
22
|
{{{ each tagItems }}}
|
|
23
23
|
<li role="presentation" data-tag="{./valueEscaped}">
|
|
24
|
-
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="
|
|
24
|
+
<a class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="menuitem" href="#">
|
|
25
25
|
<span component="tag-markup" class="flex-grow-1">
|
|
26
26
|
<div class="d-inline-flex align-items-center gap-1">
|
|
27
27
|
{./valueEscaped}
|