nodebb-theme-harmony 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc +3 -0
- package/README.md +8 -0
- package/lib/controllers.js +7 -0
- package/library.js +51 -0
- package/package.json +45 -0
- package/plugin.json +11 -0
- package/public/.eslintrc +3 -0
- package/public/admin.js +15 -0
- package/renovate.json +6 -0
- package/scss/harmony.scss +3 -0
- package/scss/overrides.scss +1 -0
- package/templates/account/best.tpl +3 -0
- package/templates/account/blocks.tpl +35 -0
- package/templates/account/bookmarks.tpl +3 -0
- package/templates/account/categories.tpl +30 -0
- package/templates/account/consent.tpl +71 -0
- package/templates/account/controversial.tpl +3 -0
- package/templates/account/downvoted.tpl +3 -0
- package/templates/account/edit/password.tpl +32 -0
- package/templates/account/edit/username.tpl +28 -0
- package/templates/account/edit.tpl +137 -0
- package/templates/account/followers.tpl +19 -0
- package/templates/account/following.tpl +19 -0
- package/templates/account/groups.tpl +19 -0
- package/templates/account/ignored.tpl +3 -0
- package/templates/account/info.tpl +228 -0
- package/templates/account/posts.tpl +21 -0
- package/templates/account/profile.tpl +168 -0
- package/templates/account/sessions.tpl +34 -0
- package/templates/account/settings.tpl +231 -0
- package/templates/account/theme.tpl +29 -0
- package/templates/account/topics.tpl +32 -0
- package/templates/account/uploads.tpl +45 -0
- package/templates/account/upvoted.tpl +3 -0
- package/templates/account/watched.tpl +3 -0
- package/templates/admin/plugins/persona.tpl +29 -0
- package/templates/categories.tpl +33 -0
- package/templates/category.tpl +65 -0
- package/templates/chat.tpl +41 -0
- package/templates/chats.tpl +21 -0
- package/templates/flags/detail.tpl +211 -0
- package/templates/flags/list.tpl +73 -0
- package/templates/footer.tpl +16 -0
- package/templates/groups/details.tpl +79 -0
- package/templates/groups/list.tpl +50 -0
- package/templates/groups/members.tpl +8 -0
- package/templates/header.tpl +49 -0
- package/templates/login.tpl +98 -0
- package/templates/modules/taskbar.tpl +5 -0
- package/templates/modules/usercard.tpl +39 -0
- package/templates/notifications.tpl +68 -0
- package/templates/partials/acceptTos.tpl +11 -0
- package/templates/partials/account/category-item.tpl +25 -0
- package/templates/partials/account/header.tpl +48 -0
- package/templates/partials/account/menu.tpl +103 -0
- package/templates/partials/breadcrumbs.tpl +20 -0
- package/templates/partials/buttons/newTopic.tpl +24 -0
- package/templates/partials/categories/item.tpl +62 -0
- package/templates/partials/categories/lastpost.tpl +28 -0
- package/templates/partials/categories/link.tpl +13 -0
- package/templates/partials/category/sort.tpl +17 -0
- package/templates/partials/category/subcategory.tpl +20 -0
- package/templates/partials/category/tags.tpl +5 -0
- package/templates/partials/category/tools.tpl +83 -0
- package/templates/partials/category/watch.tpl +23 -0
- package/templates/partials/category-filter-content.tpl +31 -0
- package/templates/partials/category-filter-right.tpl +5 -0
- package/templates/partials/category-filter.tpl +5 -0
- package/templates/partials/category-selector-content.tpl +35 -0
- package/templates/partials/category-selector-right.tpl +5 -0
- package/templates/partials/category-selector.tpl +5 -0
- package/templates/partials/chats/dropdown.tpl +40 -0
- package/templates/partials/chats/message-window.tpl +36 -0
- package/templates/partials/chats/message.tpl +36 -0
- package/templates/partials/chats/messages.tpl +9 -0
- package/templates/partials/chats/options.tpl +26 -0
- package/templates/partials/chats/recent_room.tpl +33 -0
- package/templates/partials/chats/system-message.tpl +5 -0
- package/templates/partials/chats/user.tpl +3 -0
- package/templates/partials/chats-menu.tpl +43 -0
- package/templates/partials/cookie-consent.tpl +6 -0
- package/templates/partials/flags/filters.tpl +99 -0
- package/templates/partials/groups/admin.tpl +197 -0
- package/templates/partials/groups/badge.tpl +3 -0
- package/templates/partials/groups/list.tpl +23 -0
- package/templates/partials/groups/memberlist.tpl +43 -0
- package/templates/partials/header/user-menu.tpl +87 -0
- package/templates/partials/menu.tpl +188 -0
- package/templates/partials/notifications_list.tpl +32 -0
- package/templates/partials/paginator.tpl +47 -0
- package/templates/partials/post_bar.tpl +22 -0
- package/templates/partials/posts_list.tpl +10 -0
- package/templates/partials/posts_list_item.tpl +34 -0
- package/templates/partials/quick-search-results.tpl +36 -0
- package/templates/partials/search-results.tpl +57 -0
- package/templates/partials/slideout-menu.tpl +6 -0
- package/templates/partials/tags_list.tpl +7 -0
- package/templates/partials/thread_tools.tpl +10 -0
- package/templates/partials/toast.tpl +16 -0
- package/templates/partials/topic/browsing-users.tpl +3 -0
- package/templates/partials/topic/event.tpl +28 -0
- package/templates/partials/topic/navigation-post.tpl +14 -0
- package/templates/partials/topic/navigator.tpl +41 -0
- package/templates/partials/topic/necro-post.tpl +5 -0
- package/templates/partials/topic/post-editor.tpl +3 -0
- package/templates/partials/topic/post-menu-list.tpl +134 -0
- package/templates/partials/topic/post-menu.tpl +6 -0
- package/templates/partials/topic/post.tpl +116 -0
- package/templates/partials/topic/quickreply.tpl +30 -0
- package/templates/partials/topic/reactions.tpl +3 -0
- package/templates/partials/topic/reply-button.tpl +29 -0
- package/templates/partials/topic/selection-tooltip.tpl +5 -0
- package/templates/partials/topic/sort.tpl +11 -0
- package/templates/partials/topic/stats.tpl +14 -0
- package/templates/partials/topic/tag.tpl +3 -0
- package/templates/partials/topic/tags.tpl +5 -0
- package/templates/partials/topic/topic-menu-list.tpl +34 -0
- package/templates/partials/topic/watch.tpl +24 -0
- package/templates/partials/topic-filters.tpl +14 -0
- package/templates/partials/topic-terms.tpl +14 -0
- package/templates/partials/topics_list.tpl +118 -0
- package/templates/partials/users_list.tpl +60 -0
- package/templates/partials/users_list_menu.tpl +23 -0
- package/templates/popular.tpl +37 -0
- package/templates/recent.tpl +39 -0
- package/templates/register.tpl +89 -0
- package/templates/search.tpl +185 -0
- package/templates/tag.tpl +35 -0
- package/templates/tags.tpl +34 -0
- package/templates/top.tpl +37 -0
- package/templates/topic.tpl +108 -0
- package/templates/unread.tpl +39 -0
- package/templates/users.tpl +36 -0
- package/theme.json +7 -0
- package/theme.scss +1 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
<div class="notifications">
|
|
5
|
+
|
|
6
|
+
<!-- IMPORT partials/breadcrumbs.tpl -->
|
|
7
|
+
<div class="btn-toolbar justify-content-end" role="toolbar">
|
|
8
|
+
<div class="btn-group me-2">
|
|
9
|
+
<button class="btn btn-outline-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown">
|
|
10
|
+
{{{ if selectedFilter }}}{selectedFilter.name}{{{ end}}} <span class="caret"></span>
|
|
11
|
+
</button>
|
|
12
|
+
<ul class="dropdown-menu dropdown-menu-end" role="menu">
|
|
13
|
+
{{{ each filters }}}
|
|
14
|
+
{{{ if filters.separator }}}
|
|
15
|
+
<li role="separator" class="dropdown-divider"></li>
|
|
16
|
+
{{{ else }}}
|
|
17
|
+
<li role="presentation" class="category">
|
|
18
|
+
<a class="dropdown-item" role="menu-item" href="{config.relative_path}/notifications?filter={filters.filter}"><i class="fa fa-fw {{{ if filters.selected }}}fa-check{{{ end }}}"></i> {filters.name}</a>
|
|
19
|
+
</li>
|
|
20
|
+
{{{ end }}}
|
|
21
|
+
{{{ end }}}
|
|
22
|
+
</ul>
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<div class="btn-group">
|
|
26
|
+
<button class="btn btn-outline-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="true">
|
|
27
|
+
<i class="fa fa-eye"></i>
|
|
28
|
+
<span class="caret"></span>
|
|
29
|
+
</button>
|
|
30
|
+
<ul class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="dropdownMenu1">
|
|
31
|
+
<li role="presentation"><a class="dropdown-item" role="menuitem" tabindex="-1" href="#" component="notifications/mark_all">[[notifications:mark_all_read]]</a></li>
|
|
32
|
+
</ul>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
|
|
36
|
+
<hr />
|
|
37
|
+
|
|
38
|
+
<div class="alert alert-info {{{ if notifications.length }}}hidden{{{ end }}}">
|
|
39
|
+
[[notifications:no_notifs]]
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<ul class="notifications-list list-unstyled" data-nextstart="{nextStart}">
|
|
43
|
+
{{{each notifications}}}
|
|
44
|
+
<li data-nid="{notifications.nid}" class="{notifications.readClass} {{{ if !./read}}}text-bg-warning{{{ end }}} d-flex pointer border p-3 mb-2" component="notifications/item">
|
|
45
|
+
<div class="me-2">
|
|
46
|
+
{{{ if notifications.from }}}
|
|
47
|
+
{buildAvatar(notifications.user, "24px", true)}
|
|
48
|
+
{{{ else }}}
|
|
49
|
+
{{{ if notifications.image }}}
|
|
50
|
+
<img width="24" height="24" src="{notifications.image}" />
|
|
51
|
+
{{{ end }}}
|
|
52
|
+
{{{ end }}}
|
|
53
|
+
</div>
|
|
54
|
+
<div>
|
|
55
|
+
<p class="mb-1">
|
|
56
|
+
<a class="text-reset" component="notifications/item/link" href="{notifications.path}">{notifications.bodyShort}</a>
|
|
57
|
+
</p>
|
|
58
|
+
<p class="timestamp">
|
|
59
|
+
<span class="timeago small text-reset" title="{notifications.datetimeISO}"></span>
|
|
60
|
+
</p>
|
|
61
|
+
</div>
|
|
62
|
+
</li>
|
|
63
|
+
{{{end}}}
|
|
64
|
+
</ul>
|
|
65
|
+
<!-- IMPORT partials/paginator.tpl -->
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
+
|
|
3
|
+
<div class="form-group">
|
|
4
|
+
<label for="agree-terms">[[register:terms_of_use]]</label>
|
|
5
|
+
<div class="tos">{termsOfUse}</div>
|
|
6
|
+
<div class="checkbox">
|
|
7
|
+
<label>
|
|
8
|
+
<input type="checkbox" name="agree-terms" id="agree-terms"> [[register:agree_to_terms_of_use]]
|
|
9
|
+
</label>
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
+
|
|
3
|
+
<li component="categories/category" data-cid="{../cid}" data-parent-cid="{../parentCid}" class="row clearfix">
|
|
4
|
+
<meta itemprop="name" content="{../name}">
|
|
5
|
+
|
|
6
|
+
<div class="content col-10 depth-{../depth}">
|
|
7
|
+
<div class="float-start">
|
|
8
|
+
{buildCategoryIcon(@value, "48px", "rounded-circle")}
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
<h2 class="title">
|
|
12
|
+
<!-- IMPORT partials/categories/link.tpl -->
|
|
13
|
+
</h2>
|
|
14
|
+
<div>
|
|
15
|
+
<!-- IF ../descriptionParsed -->
|
|
16
|
+
<div class="description text-muted">
|
|
17
|
+
{../descriptionParsed}
|
|
18
|
+
</div>
|
|
19
|
+
<!-- ENDIF ../descriptionParsed -->
|
|
20
|
+
</div>
|
|
21
|
+
</div>
|
|
22
|
+
<div class="col-2">
|
|
23
|
+
<!-- IMPORT partials/category/watch.tpl -->
|
|
24
|
+
</div>
|
|
25
|
+
</li>
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
+
|
|
3
|
+
<!-- IMPORT partials/breadcrumbs.tpl -->
|
|
4
|
+
|
|
5
|
+
<div data-widget-area="header">
|
|
6
|
+
{{{each widgets.header}}}
|
|
7
|
+
{{widgets.header.html}}
|
|
8
|
+
{{{end}}}
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
<div class="cover" component="account/cover" style="background-image: url({cover:url}); background-position: {cover:position};">
|
|
12
|
+
<div class="avatar-wrapper" data-uid="{uid}">
|
|
13
|
+
<!-- IF picture -->
|
|
14
|
+
<img src="{picture}" class="avatar avatar-rounded" style="--avatar-size: 128px;" />
|
|
15
|
+
<!-- ELSE -->
|
|
16
|
+
<div class="avatar avatar-rounded" style="background-color: {icon:bgColor}; --avatar-size: 128px;" title="{username}">{icon:text}</div>
|
|
17
|
+
<!-- ENDIF picture -->
|
|
18
|
+
<i component="user/status" class="fa fa-circle status {status}" title="[[global:{status}]]"></i>
|
|
19
|
+
|
|
20
|
+
<!-- IF loggedIn -->
|
|
21
|
+
<!-- IF !isSelf -->
|
|
22
|
+
<button class="btn-morph persona-fab <!-- IF isFollowing -->heart<!-- ELSE -->plus<!-- ENDIF isFollowing -->" title="<!-- IF isFollowing -->[[global:unfollow]]<!-- ELSE -->[[global:follow]]<!-- ENDIF isFollowing -->">
|
|
23
|
+
<span>
|
|
24
|
+
<span class="s1"></span>
|
|
25
|
+
<span class="s2"></span>
|
|
26
|
+
<span class="s3"></span>
|
|
27
|
+
</span>
|
|
28
|
+
</button>
|
|
29
|
+
<!-- ENDIF !isSelf -->
|
|
30
|
+
<!-- ENDIF loggedIn -->
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
<div class="container">
|
|
34
|
+
<!-- IMPORT partials/account/menu.tpl -->
|
|
35
|
+
|
|
36
|
+
<!-- IF allowCoverPicture -->
|
|
37
|
+
<!-- IF canEdit -->
|
|
38
|
+
<div class="controls">
|
|
39
|
+
<span class="upload"><i class="fa fa-fw fa-4x fa-upload"></i></span>
|
|
40
|
+
<span class="resize"><i class="fa fa-fw fa-4x fa-arrows"></i></span>
|
|
41
|
+
<span class="remove"><i class="fa fa-fw fa-4x fa-times"></i></span>
|
|
42
|
+
</div>
|
|
43
|
+
<div class="save">[[groups:cover-save]] <i class="fa fa-fw fa-floppy-o"></i></div>
|
|
44
|
+
<div class="indicator">[[groups:cover-saving]] <i class="fa fa-fw fa-refresh fa-spin"></i></div>
|
|
45
|
+
<!-- ENDIF canEdit -->
|
|
46
|
+
<!-- ENDIF allowCoverPicture -->
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
+
|
|
3
|
+
<div class="btn-group account-fab bottom-sheet">
|
|
4
|
+
<button type="button" class="persona-fab dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
5
|
+
<i class="fa fa-ellipsis-v"></i>
|
|
6
|
+
</button>
|
|
7
|
+
<ul class="dropdown-menu dropdown-menu-end account-sub-links">
|
|
8
|
+
<!-- IF loggedIn -->
|
|
9
|
+
<!-- IF !isSelf -->
|
|
10
|
+
<!-- IF !banned -->
|
|
11
|
+
<!-- IF !config.disableChat -->
|
|
12
|
+
<li class="<!-- IF !hasPrivateChat -->hidden<!-- ENDIF !hasPrivateChat -->">
|
|
13
|
+
<a class="dropdown-item" component="account/chat" href="#">[[user:chat_with, {username}]]</a>
|
|
14
|
+
</li>
|
|
15
|
+
<li>
|
|
16
|
+
<a class="dropdown-item" component="account/new-chat" href="#">[[user:new_chat_with, {username}]]</a>
|
|
17
|
+
</li>
|
|
18
|
+
<!-- ENDIF !config.disableChat -->
|
|
19
|
+
<li>
|
|
20
|
+
<a class="dropdown-item" component="account/flag" href="#">[[user:flag-profile]]</a>
|
|
21
|
+
</li>
|
|
22
|
+
<li>
|
|
23
|
+
<a class="dropdown-item" component="account/block" href="#"><!-- IF !../isBlocked -->[[user:block_user]]<!-- ELSE -->[[user:unblock_user]]<!-- END --></a>
|
|
24
|
+
</li>
|
|
25
|
+
<li role="separator" class="dropdown-divider"></li>
|
|
26
|
+
<!-- ENDIF !banned -->
|
|
27
|
+
<!-- ENDIF !isSelf -->
|
|
28
|
+
<!-- ENDIF loggedIn -->
|
|
29
|
+
<li>
|
|
30
|
+
<a class="dropdown-item" href="{config.relative_path}/user/{userslug}" class="d-inline-block" id="profile">[[user:profile]]</a>
|
|
31
|
+
</li>
|
|
32
|
+
<!-- IF canEdit -->
|
|
33
|
+
<li><a class="dropdown-item" href="{config.relative_path}/user/{userslug}/edit">[[user:edit]]</a></li>
|
|
34
|
+
<li><a class="dropdown-item" href="{config.relative_path}/user/{userslug}/settings">[[user:settings]]</a></li>
|
|
35
|
+
<!-- ENDIF canEdit -->
|
|
36
|
+
|
|
37
|
+
<!-- IF !isSelf -->
|
|
38
|
+
{{{ if (canBan || canMute) }}}
|
|
39
|
+
<li role="separator" class="dropdown-divider"></li>
|
|
40
|
+
<li class="dropdown-header">[[user:admin_actions_label]]</li>
|
|
41
|
+
{{{ end }}}
|
|
42
|
+
{{{ if canBan }}}
|
|
43
|
+
<li class="<!-- IF banned -->hide<!-- ENDIF banned -->">
|
|
44
|
+
<a class="dropdown-item" component="account/ban" href="#">[[user:ban_account]]</a>
|
|
45
|
+
</li>
|
|
46
|
+
<li class="<!-- IF !banned -->hide<!-- ENDIF !banned -->">
|
|
47
|
+
<a class="dropdown-item" component="account/unban" href="#">[[user:unban_account]]</a>
|
|
48
|
+
</li>
|
|
49
|
+
{{{ end }}}
|
|
50
|
+
{{{ if canMute }}}
|
|
51
|
+
<li class="<!-- IF muted -->hide<!-- ENDIF muted -->">
|
|
52
|
+
<a class="dropdown-item" component="account/mute" href="#">[[user:mute_account]]</a>
|
|
53
|
+
</li>
|
|
54
|
+
<li class="<!-- IF !muted -->hide<!-- ENDIF !muted -->">
|
|
55
|
+
<a class="dropdown-item" component="account/unmute" href="#">[[user:unmute_account]]</a>
|
|
56
|
+
</li>
|
|
57
|
+
{{{ end }}}
|
|
58
|
+
<!-- IF isAdmin -->
|
|
59
|
+
<li>
|
|
60
|
+
<a component="account/delete-account" href="#" class="dropdown-item">[[user:delete_account_as_admin]]</a>
|
|
61
|
+
<a component="account/delete-content" href="#" class="dropdown-item">[[user:delete_content]]</a>
|
|
62
|
+
<a component="account/delete-all" href="#" class="dropdown-item">[[user:delete_all]]</a>
|
|
63
|
+
</li>
|
|
64
|
+
<!-- ENDIF isAdmin -->
|
|
65
|
+
<!-- ENDIF !isSelf -->
|
|
66
|
+
|
|
67
|
+
<li role="separator" class="dropdown-divider"></li>
|
|
68
|
+
<li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/following">[[user:following]] <span class="badge bg-secondary formatted-number rounded-pill ms-2" title="{counts.following}">{counts.following}</span></a></li>
|
|
69
|
+
<li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/followers">[[user:followers]] <span class="badge bg-secondary formatted-number rounded-pill ms-2" title="{counts.followers}">{counts.followers}</span></a></li>
|
|
70
|
+
<!-- IF canEdit -->
|
|
71
|
+
<li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/blocks">[[user:blocks]] <span class="badge bg-secondary formatted-number rounded-pill ms-2" title="{counts.blocks}">{counts.blocks}</span></a></li>
|
|
72
|
+
<!-- ENDIF canEdit -->
|
|
73
|
+
<li role="separator" class="dropdown-divider"></li>
|
|
74
|
+
<li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/topics">[[global:topics]] <span class="badge bg-secondary formatted-number rounded-pill ms-2" title="{counts.topics}">{counts.topics}</span></a></li>
|
|
75
|
+
<li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/posts">[[global:posts]] <span class="badge bg-secondary formatted-number rounded-pill ms-2" title="{counts.posts}">{counts.posts}</span></a></li>
|
|
76
|
+
<!-- IF !reputation:disabled -->
|
|
77
|
+
<li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/best">[[global:best]] <span class="badge bg-secondary formatted-number rounded-pill ms-2" title="{counts.best}">{counts.best}</span></a></li>
|
|
78
|
+
<li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/controversial">[[global:controversial]] <span class="badge bg-secondary formatted-number rounded-pill ms-2" title="{counts.controversial}">{counts.controversial}</span></a></li>
|
|
79
|
+
<!-- ENDIF !reputation:disabled -->
|
|
80
|
+
<li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/groups">[[global:header.groups]] <span class="badge bg-secondary formatted-number rounded-pill ms-2" title="{counts.groups}">{counts.groups}</span></a></li>
|
|
81
|
+
|
|
82
|
+
<!-- IF canEdit -->
|
|
83
|
+
<li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/categories">[[user:watched_categories]] <span class="badge bg-secondary formatted-number rounded-pill ms-2" title="{counts.categoriesWatched}">{counts.categoriesWatched}</span></a></li>
|
|
84
|
+
<li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/bookmarks">[[user:bookmarks]] <span class="badge bg-secondary formatted-number rounded-pill ms-2" title="{counts.bookmarks}">{counts.bookmarks}</span></a></li>
|
|
85
|
+
<li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/watched">[[user:watched]] <span class="badge bg-secondary formatted-number rounded-pill ms-2" title="{counts.watched}">{counts.watched}</span></a></li>
|
|
86
|
+
<li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/ignored">[[user:ignored]] <span class="badge bg-secondary formatted-number rounded-pill ms-2" title="{counts.ignored}">{counts.ignored}</span></a></li>
|
|
87
|
+
<!-- IF !reputation:disabled -->
|
|
88
|
+
<li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/upvoted">[[global:upvoted]] <span class="badge bg-secondary formatted-number rounded-pill ms-2" title="{counts.upvoted}">{counts.upvoted}</span></a></li>
|
|
89
|
+
<!-- IF !downvote:disabled -->
|
|
90
|
+
<li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/downvoted">[[global:downvoted]] <span class="badge bg-secondary formatted-number rounded-pill ms-2" title="{counts.downvoted}">{counts.downvoted}</span></a></li>
|
|
91
|
+
<!-- ENDIF !downvote:disabled -->
|
|
92
|
+
<!-- ENDIF !reputation:disabled -->
|
|
93
|
+
<li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/uploads">[[global:uploads]] <span class="badge bg-secondary formatted-number rounded-pill ms-2" title="{counts.uploaded}">{counts.uploaded}</span></a></li>
|
|
94
|
+
<!-- ENDIF canEdit -->
|
|
95
|
+
|
|
96
|
+
{{{each profile_links}}}
|
|
97
|
+
<!-- IF @first -->
|
|
98
|
+
<li role="separator" class="dropdown-divider"></li>
|
|
99
|
+
<!-- ENDIF @first -->
|
|
100
|
+
<li id="{profile_links.id}" class="plugin-link <!-- IF profile_links.public -->public<!-- ELSE -->private<!-- ENDIF profile_links.public -->"><a class="dropdown-item" href="{config.relative_path}/user/{userslug}/{profile_links.route}"><!-- IF ../icon --><i class="fa fa-fw {profile_links.icon}"></i> <!-- END -->{profile_links.name}</a></li>
|
|
101
|
+
{{{end}}}
|
|
102
|
+
</ul>
|
|
103
|
+
</div>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
+
|
|
3
|
+
<!-- IF breadcrumbs.length -->
|
|
4
|
+
<ol class="breadcrumb" itemscope="itemscope" itemprop="breadcrumb" itemtype="http://schema.org/BreadcrumbList">
|
|
5
|
+
{{{each breadcrumbs}}}
|
|
6
|
+
<li<!-- IF @last --> component="breadcrumb/current"<!-- ENDIF @last --> itemscope="itemscope" itemprop="itemListElement" itemtype="http://schema.org/ListItem" class="breadcrumb-item <!-- IF @last -->active<!-- ENDIF @last -->">
|
|
7
|
+
<meta itemprop="position" content="{@index}" />
|
|
8
|
+
{{{ if ./url }}}<a href="{breadcrumbs.url}" itemprop="item">{{{ end }}}
|
|
9
|
+
<span itemprop="name">
|
|
10
|
+
{breadcrumbs.text}
|
|
11
|
+
<!-- IF @last -->
|
|
12
|
+
<!-- IF !feeds:disableRSS -->
|
|
13
|
+
<!-- IF rssFeedUrl --><a target="_blank" href="{rssFeedUrl}" itemprop="item"><i class="fa fa-rss-square"></i></a><!-- ENDIF rssFeedUrl --><!-- ENDIF !feeds:disableRSS -->
|
|
14
|
+
<!-- ENDIF @last -->
|
|
15
|
+
</span>
|
|
16
|
+
{{{ if ./url }}}</a>{{{ end }}}
|
|
17
|
+
</li>
|
|
18
|
+
{{{end}}}
|
|
19
|
+
</ol>
|
|
20
|
+
<!-- ENDIF breadcrumbs.length -->
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
+
|
|
3
|
+
<noscript><div class="dropdown" component="category-selector"></noscript>
|
|
4
|
+
<button component="category/post" for="category-dropdown-check" class="btn btn-primary text-nowrap" id="new_topic" role="button">
|
|
5
|
+
[[category:new_topic_button]]
|
|
6
|
+
</button>
|
|
7
|
+
<noscript>
|
|
8
|
+
<input type="checkbox" class="hidden" id="category-dropdown-check" aria-hidden="true">
|
|
9
|
+
<ul component="category/list" class="dropdown-menu category-dropdown-menu" role="menu">
|
|
10
|
+
{{{each categories}}}
|
|
11
|
+
<li role="presentation" class="category {{{if categories.disabledClass}}}disabled{{{end}}}">
|
|
12
|
+
<a role="menu-item" href="{config.relative_path}/compose?cid={categories.cid}">{categories.level}
|
|
13
|
+
<span component="category-markup">
|
|
14
|
+
<div class="category-item d-inline-block">
|
|
15
|
+
{buildCategoryIcon(@value, "24px", "rounded-circle")}
|
|
16
|
+
{categories.name}
|
|
17
|
+
</div>
|
|
18
|
+
</span>
|
|
19
|
+
</a>
|
|
20
|
+
</li>
|
|
21
|
+
{{{end}}}
|
|
22
|
+
</ul>
|
|
23
|
+
</div>
|
|
24
|
+
</noscript>
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
+
|
|
3
|
+
<li component="categories/category" data-cid="{../cid}" data-numRecentReplies="1" class="row clearfix category-{../cid}">
|
|
4
|
+
<meta itemprop="name" content="{../name}">
|
|
5
|
+
|
|
6
|
+
<div class="content col-12 <!-- IF config.hideCategoryLastPost -->col-md-10 col-sm-12<!-- ELSE -->col-md-7 col-sm-9<!-- ENDIF config.hideCategoryLastPost -->">
|
|
7
|
+
<div class="float-start">
|
|
8
|
+
{buildCategoryIcon(@value, "48px", "rounded-circle")}
|
|
9
|
+
</div>
|
|
10
|
+
<h2 class="title">
|
|
11
|
+
<!-- IMPORT partials/categories/link.tpl -->
|
|
12
|
+
</h2>
|
|
13
|
+
<div>
|
|
14
|
+
<!-- IF ../descriptionParsed -->
|
|
15
|
+
<div class="description text-muted">
|
|
16
|
+
{../descriptionParsed}
|
|
17
|
+
</div>
|
|
18
|
+
<!-- ENDIF ../descriptionParsed -->
|
|
19
|
+
<!-- IF !config.hideSubCategories -->
|
|
20
|
+
{{{ if ../children.length }}}
|
|
21
|
+
<div class="category-children">
|
|
22
|
+
{{{ each ../children }}}
|
|
23
|
+
{{{ if !../isSection }}}
|
|
24
|
+
<span class="category-children-item">
|
|
25
|
+
{buildCategoryIcon(@value, "24px", "rounded-circle")}
|
|
26
|
+
{{{ if ../link }}}
|
|
27
|
+
<a href="{../link}">{../name}</a>
|
|
28
|
+
{{{ else }}}
|
|
29
|
+
<a href="{config.relative_path}/category/{../slug}">{../name}</a>
|
|
30
|
+
{{{ end }}}
|
|
31
|
+
</span>
|
|
32
|
+
{{{ end }}}
|
|
33
|
+
{{{ end }}}
|
|
34
|
+
</div>
|
|
35
|
+
{{{ end }}}
|
|
36
|
+
<!-- ENDIF !config.hideSubCategories -->
|
|
37
|
+
</div>
|
|
38
|
+
<span class="d-block d-sm-none float-end">
|
|
39
|
+
<!-- IF ../teaser.timestampISO -->
|
|
40
|
+
<a class="permalink" href="{../teaser.url}">
|
|
41
|
+
<small class="timeago" title="{../teaser.timestampISO}"></small>
|
|
42
|
+
</a>
|
|
43
|
+
<!-- ENDIF ../teaser.timestampISO -->
|
|
44
|
+
</span>
|
|
45
|
+
</div>
|
|
46
|
+
|
|
47
|
+
<!-- IF !../link -->
|
|
48
|
+
<div class="col-md-1 d-none d-md-block stats text-muted">
|
|
49
|
+
<span class="{../unread-class} human-readable-number" title="{../totalTopicCount}">{../totalTopicCount}</span><br />
|
|
50
|
+
<small>[[global:topics]]</small>
|
|
51
|
+
</div>
|
|
52
|
+
<div class="col-md-1 d-none d-md-block stats text-muted">
|
|
53
|
+
<span class="{../unread-class} human-readable-number" title="{../totalPostCount}">{../totalPostCount}</span><br />
|
|
54
|
+
<small>[[global:posts]]</small>
|
|
55
|
+
</div>
|
|
56
|
+
<!-- IF !config.hideCategoryLastPost -->
|
|
57
|
+
<div class="col-md-3 col-sm-3 teaser d-none d-sm-block" component="topic/teaser">
|
|
58
|
+
<!-- IMPORT partials/categories/lastpost.tpl -->
|
|
59
|
+
</div>
|
|
60
|
+
<!-- ENDIF !config.hideCategoryLastPost -->
|
|
61
|
+
<!-- ENDIF !../link -->
|
|
62
|
+
</li>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
+
|
|
3
|
+
<div class="lastpost background-link-container" style="border-color: {../bgColor}">
|
|
4
|
+
{{{each ./posts}}}
|
|
5
|
+
<!-- IF @first -->
|
|
6
|
+
<div component="category/posts">
|
|
7
|
+
<a class="background-link" href="{config.relative_path}/topic/{../topic.slug}<!-- IF ../index -->/{../index}<!-- ENDIF ../index -->"></a>
|
|
8
|
+
<p>
|
|
9
|
+
<a href="{config.relative_path}/user/{../user.userslug}">{buildAvatar(posts.user, "24px", true)}</a>
|
|
10
|
+
<a class="permalink text-muted" href="{config.relative_path}/topic/{../topic.slug}<!-- IF ../index -->/{../index}<!-- ENDIF ../index -->">
|
|
11
|
+
<small class="timeago" title="{../timestampISO}"></small>
|
|
12
|
+
</a>
|
|
13
|
+
</p>
|
|
14
|
+
<div class="post-content">
|
|
15
|
+
{../content}
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
<!-- ENDIF @first -->
|
|
19
|
+
{{{end}}}
|
|
20
|
+
|
|
21
|
+
<!-- IF !../posts.length -->
|
|
22
|
+
<div component="category/posts">
|
|
23
|
+
<div class="post-content">
|
|
24
|
+
[[category:no_new_posts]]
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
<!-- ENDIF !../posts.length -->
|
|
28
|
+
</div>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
+
|
|
3
|
+
<!-- IF ../isSection -->
|
|
4
|
+
{../name}
|
|
5
|
+
<!-- ELSE -->
|
|
6
|
+
<!-- IF ../link -->
|
|
7
|
+
<a href="{../link}" itemprop="url">
|
|
8
|
+
<!-- ELSE -->
|
|
9
|
+
<a href="{config.relative_path}/category/{../slug}" itemprop="url">
|
|
10
|
+
<!-- ENDIF ../link -->
|
|
11
|
+
{../name}
|
|
12
|
+
</a>
|
|
13
|
+
<!-- ENDIF ../isSection -->
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
+
|
|
3
|
+
<div class="btn-group bottom-sheet" component="thread/sort">
|
|
4
|
+
<button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
5
|
+
<span class="visible-sm-inline visible-md-inline visible-lg-inline">[[topic:sort_by]]</span>
|
|
6
|
+
<span class="visible-xs-inline"><i class="fa fa-fw fa-sort"></i></span>
|
|
7
|
+
<span class="caret"></span>
|
|
8
|
+
</button>
|
|
9
|
+
|
|
10
|
+
<ul class="dropdown-menu dropdown-menu-end">
|
|
11
|
+
<li><a class="dropdown-item" href="#" class="newest_to_oldest" data-sort="newest_to_oldest"><i class="fa fa-fw"></i> [[topic:newest_to_oldest]]</a></li>
|
|
12
|
+
<li><a class="dropdown-item" href="#" class="oldest_to_newest" data-sort="oldest_to_newest"><i class="fa fa-fw"></i> [[topic:oldest_to_newest]]</a></li>
|
|
13
|
+
<li><a class="dropdown-item" href="#" class="most_posts" data-sort="most_posts"><i class="fa fa-fw"></i> [[topic:most_posts]]</a></li>
|
|
14
|
+
<li><a class="dropdown-item" href="#" class="most_votes" data-sort="most_votes"><i class="fa fa-fw"></i> [[topic:most_votes]]</a></li>
|
|
15
|
+
<li><a class="dropdown-item" href="#" class="most_views" data-sort="most_views"><i class="fa fa-fw"></i> [[topic:most_views]]</a></li>
|
|
16
|
+
</ul>
|
|
17
|
+
</div>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
+
|
|
3
|
+
{{{ if children.length }}}
|
|
4
|
+
<div class="subcategory">
|
|
5
|
+
{{{ if hasMoreSubCategories }}}
|
|
6
|
+
<div class="mb-2"><!-- IMPORT partials/category-selector.tpl --></div>
|
|
7
|
+
{{{ else }}}
|
|
8
|
+
<p>[[category:subcategories]]</p>
|
|
9
|
+
{{{ end }}}
|
|
10
|
+
|
|
11
|
+
<ul component="category/subcategory/container" class="categories list-unstyled" itemscope itemtype="http://www.schema.org/ItemList">
|
|
12
|
+
{{{each children}}}
|
|
13
|
+
<!-- IMPORT partials/categories/item.tpl -->
|
|
14
|
+
{{{end}}}
|
|
15
|
+
</ul>
|
|
16
|
+
{{{ if hasMoreSubCategories}}}
|
|
17
|
+
<button class="btn btn-outline-secondary mb-2" component="category/load-more-subcategories">[[category:x-more-categories, {subCategoriesLeft}]]</button>
|
|
18
|
+
{{{ end }}}
|
|
19
|
+
</div>
|
|
20
|
+
{{{ end }}}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
+
|
|
3
|
+
{{{ each tags }}}
|
|
4
|
+
<a href="{config.relative_path}/tags/{topics.tags.value}"><span class="tag-item" data-tag="{topics.tags.value}">{topics.tags.value}</span><span class="tag-topic-count human-readable-number" title="{topics.tags.score}">{topics.tags.score}</span></a>
|
|
5
|
+
{{{ end }}}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
+
|
|
3
|
+
<!-- IF showTopicTools -->
|
|
4
|
+
<div class="btn-group thread-tools bottom-sheet">
|
|
5
|
+
<button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
6
|
+
<span class="visible-sm-inline visible-md-inline visible-lg-inline">[[topic:thread_tools.title]]</span>
|
|
7
|
+
<span class="visible-xs-inline"><i class="fa fa-fw fa-gear"></i></span>
|
|
8
|
+
<span class="caret"></span>
|
|
9
|
+
</button>
|
|
10
|
+
<ul class="dropdown-menu dropdown-menu-end">
|
|
11
|
+
<li>
|
|
12
|
+
<a component="topic/mark-unread-for-all" href="#" class="dropdown-item">
|
|
13
|
+
<i class="fa fa-fw fa-inbox"></i> [[topic:thread_tools.markAsUnreadForAll]]
|
|
14
|
+
</a>
|
|
15
|
+
</li>
|
|
16
|
+
<li>
|
|
17
|
+
<a component="topic/pin" href="#" class="dropdown-item">
|
|
18
|
+
<i class="fa fa-fw fa-thumb-tack"></i> [[topic:thread_tools.pin]]
|
|
19
|
+
</a>
|
|
20
|
+
</li>
|
|
21
|
+
<li>
|
|
22
|
+
<a component="topic/unpin" href="#" class="hidden dropdown-item">
|
|
23
|
+
<i class="fa fa-fw fa-thumb-tack fa-rotate-90"></i> [[topic:thread_tools.unpin]]
|
|
24
|
+
</a>
|
|
25
|
+
</li>
|
|
26
|
+
|
|
27
|
+
<li>
|
|
28
|
+
<a component="topic/lock" href="#" class="dropdown-item">
|
|
29
|
+
<i class="fa fa-fw fa-lock"></i> [[topic:thread_tools.lock]]
|
|
30
|
+
</a>
|
|
31
|
+
</li>
|
|
32
|
+
<li>
|
|
33
|
+
<a component="topic/unlock" href="#" class="hidden dropdown-item" >
|
|
34
|
+
<i class="fa fa-fw fa-unlock"></i> [[topic:thread_tools.unlock]]
|
|
35
|
+
</a>
|
|
36
|
+
</li>
|
|
37
|
+
|
|
38
|
+
<li class="dropdown-divider"></li>
|
|
39
|
+
|
|
40
|
+
<li>
|
|
41
|
+
<a component="topic/move" href="#" class="dropdown-item">
|
|
42
|
+
<i class="fa fa-fw fa-arrows"></i> [[topic:thread_tools.move]]
|
|
43
|
+
</a>
|
|
44
|
+
</li>
|
|
45
|
+
{{{if template.category}}}
|
|
46
|
+
<li>
|
|
47
|
+
<a component="topic/move-all" href="#" class="dropdown-item">
|
|
48
|
+
<i class="fa fa-fw fa-arrows"></i> [[topic:thread_tools.move_all]]
|
|
49
|
+
</a>
|
|
50
|
+
</li>
|
|
51
|
+
{{{end}}}
|
|
52
|
+
<li>
|
|
53
|
+
<a component="topic/merge" href="#" class="dropdown-item">
|
|
54
|
+
<i class="fa fa-fw fa-code-fork"></i> [[topic:thread_tools.merge]]
|
|
55
|
+
</a>
|
|
56
|
+
</li>
|
|
57
|
+
|
|
58
|
+
<li class="dropdown-divider"></li>
|
|
59
|
+
|
|
60
|
+
<li>
|
|
61
|
+
<a component="topic/delete" href="#" class="dropdown-item">
|
|
62
|
+
<i class="fa fa-fw fa-trash-o"></i> [[topic:thread_tools.delete]]
|
|
63
|
+
</a>
|
|
64
|
+
</li>
|
|
65
|
+
<li>
|
|
66
|
+
<a component="topic/restore" href="#" class="hidden dropdown-item">
|
|
67
|
+
<i class="fa fa-fw fa-history"></i> [[topic:thread_tools.restore]]
|
|
68
|
+
</a>
|
|
69
|
+
</li>
|
|
70
|
+
<li>
|
|
71
|
+
<a component="topic/purge" href="#" class="hidden dropdown-item">
|
|
72
|
+
<i class="fa fa-fw fa-eraser"></i> [[topic:thread_tools.purge]]
|
|
73
|
+
</a>
|
|
74
|
+
</li>
|
|
75
|
+
|
|
76
|
+
{{{each thread_tools}}}
|
|
77
|
+
<li>
|
|
78
|
+
<a href="#" class="dropdown-item {thread_tools.class}"><i class="fa fa-fw {thread_tools.icon}"></i> {thread_tools.title}</a>
|
|
79
|
+
</li>
|
|
80
|
+
{{{end}}}
|
|
81
|
+
</ul>
|
|
82
|
+
</div>
|
|
83
|
+
<!-- ENDIF showTopicTools -->
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
+
|
|
3
|
+
<!-- IF config.loggedIn -->
|
|
4
|
+
<div class="btn-group topic-watch-dropdown bottom-sheet" component="topic/watch">
|
|
5
|
+
|
|
6
|
+
<button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
7
|
+
<span component="category/watching/menu" <!-- IF !../isWatched -->class="hidden"<!-- ENDIF !../isWatched -->><i class="fa fa-fw fa-inbox"></i><span class="visible-sm-inline visible-md-inline visible-lg-inline"> [[category:watching]]</span></span>
|
|
8
|
+
|
|
9
|
+
<span component="category/notwatching/menu" <!-- IF !../isNotWatched -->class="hidden"<!-- ENDIF !../isNotWatched -->><i class="fa fa-fw fa-clock-o"></i><span class="visible-sm-inline visible-md-inline visible-lg-inline"> [[category:not-watching]]</span></span>
|
|
10
|
+
|
|
11
|
+
<span component="category/ignoring/menu" <!-- IF !../isIgnored -->class="hidden"<!-- ENDIF !../isIgnored -->><i class="fa fa-fw fa-eye-slash"></i><span class="visible-sm-inline visible-md-inline visible-lg-inline"> [[category:ignoring]]</span></span>
|
|
12
|
+
<span class="caret"></span>
|
|
13
|
+
</button>
|
|
14
|
+
|
|
15
|
+
<ul class="dropdown-menu dropdown-menu-end">
|
|
16
|
+
<li><a class="dropdown-item" href="#" component="category/watching" data-state="watching"><i component="category/watching/check" class="fa fa-fw <!-- IF ../isWatched -->fa-check<!-- ENDIF ../isWatched -->"></i><i class="fa fa-fw fa-inbox"></i> [[category:watching]]<p class="help-text"><small>[[category:watching.description]]</small></p></a></li>
|
|
17
|
+
|
|
18
|
+
<li><a class="dropdown-item" href="#" component="category/notwatching" data-state="notwatching"><i component="category/notwatching/check" class="fa fa-fw <!-- IF ../isNotWatched -->fa-check<!-- ENDIF ../isNotWatched -->"></i><i class="fa fa-fw fa-clock-o"></i> [[category:not-watching]]<p class="help-text"><small>[[category:not-watching.description]]</small></p></a></li>
|
|
19
|
+
|
|
20
|
+
<li><a class="dropdown-item" href="#" component="category/ignoring" data-state="ignoring"><i component="category/ignoring/check" class="fa fa-fw <!-- IF ../isIgnored -->fa-check<!-- ENDIF ../isIgnored -->"></i><i class="fa fa-fw fa-eye-slash"></i> [[category:ignoring]]<p class="help-text"><small>[[category:ignoring.description]]</small></p></a></li>
|
|
21
|
+
</ul>
|
|
22
|
+
</div>
|
|
23
|
+
<!-- ENDIF config.loggedIn -->
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<!-- THIS FILE IS STILL PERSONA -->
|
|
2
|
+
|
|
3
|
+
<button type="button" class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown">
|
|
4
|
+
{{{ if selectedCategory }}}
|
|
5
|
+
<span class="category-item">
|
|
6
|
+
{buildCategoryIcon(selectedCategory, "24px", "rounded-circle")}
|
|
7
|
+
<span class="visible-sm-inline visible-md-inline visible-lg-inline">{selectedCategory.name}</span>
|
|
8
|
+
</span>
|
|
9
|
+
{{{ else }}}
|
|
10
|
+
<span class="visible-sm-inline visible-md-inline visible-lg-inline">[[unread:all_categories]]</span><span class="visible-xs-inline"><i class="fa fa-fw fa-list"></i></span>{{{ end }}} <span class="caret"></span>
|
|
11
|
+
</button>
|
|
12
|
+
<div component="category-selector-search" class="hidden position-absolute">
|
|
13
|
+
<input type="text" class="form-control" autocomplete="off">
|
|
14
|
+
</div>
|
|
15
|
+
<ul component="category/list" class="dropdown-menu category-dropdown-menu" role="menu">
|
|
16
|
+
<li role="presentation" class="category" data-all="all">
|
|
17
|
+
<a class="dropdown-item" role="menu-item" href="{config.relative_path}/{allCategoriesUrl}"><i component="category/select/icon" class="fa fa-fw fa-check {{{if selectedCategory}}}invisible{{{end}}}"></i> [[unread:all_categories]]</a>
|
|
18
|
+
</li>
|
|
19
|
+
{{{each categoryItems}}}
|
|
20
|
+
<li role="presentation" class="category {{{ if ../disabledClass }}}disabled{{{ end }}}" data-cid="{../cid}" data-parent-cid="{../parentCid}" data-name="{../name}">
|
|
21
|
+
<a class="dropdown-item" role="menu-item" href="#">{../level}<i component="category/select/icon" class="fa fa-fw fa-check {{{ if !../selected }}}invisible{{{ end }}}"></i>
|
|
22
|
+
<span component="category-markup" style="{{{ if ../match }}}font-weight: bold;{{{end}}}">
|
|
23
|
+
<div class="category-item d-inline-block">
|
|
24
|
+
{buildCategoryIcon(@value, "24px", "rounded-circle")}
|
|
25
|
+
{./name}
|
|
26
|
+
</div>
|
|
27
|
+
</span>
|
|
28
|
+
</a>
|
|
29
|
+
</li>
|
|
30
|
+
{{{end}}}
|
|
31
|
+
</ul>
|