nodebb-theme-harmony 2.1.38 → 2.1.39
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/README.md +4 -0
- package/package.json +1 -1
- package/screenshots/categories.png +0 -0
- package/screenshots/category.png +0 -0
- package/screenshots/recent.png +0 -0
- package/screenshots/topic.png +0 -0
- package/templates/account/profile.tpl +2 -2
- package/templates/category.tpl +2 -2
- package/templates/partials/account/sidebar-left.tpl +10 -10
- package/templates/partials/categories/item.tpl +2 -2
- package/templates/partials/groups/sidebar-left.tpl +3 -3
- package/templates/partials/sidebar/drafts.tpl +1 -3
- package/templates/partials/skin-switcher.tpl +2 -2
- package/templates/partials/topic/stats.tpl +5 -5
package/README.md
CHANGED
|
@@ -15,6 +15,10 @@ _The cards in the header are added by the recent cards plugin. https://github.co
|
|
|
15
15
|
|
|
16
16
|
<img height="450" src="screenshots/categories.png">
|
|
17
17
|
|
|
18
|
+
### Category
|
|
19
|
+
|
|
20
|
+
<img height="450" src="screenshots/category.png">
|
|
21
|
+
|
|
18
22
|
### Recent
|
|
19
23
|
<img height="450" src="screenshots/recent.png">
|
|
20
24
|
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
package/screenshots/recent.png
CHANGED
|
Binary file
|
package/screenshots/topic.png
CHANGED
|
Binary file
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
<div class="stat">
|
|
29
29
|
<div class="align-items-center justify-content-center card card-header p-3 border-0 rounded-1 h-100">
|
|
30
30
|
<span class="stat-label text-xs fw-semibold">[[global:reputation]]</span>
|
|
31
|
-
<span class="fs-2 ff-secondary" title="{reputation}">{humanReadableNumber(reputation)}</span>
|
|
31
|
+
<span class="fs-2 ff-secondary" title="{formattedNumber(reputation)}">{humanReadableNumber(reputation)}</span>
|
|
32
32
|
</div>
|
|
33
33
|
</div>
|
|
34
34
|
{{{ end }}}
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
<div class="align-items-center justify-content-center card card-header p-3 border-0 rounded-1 h-100">
|
|
37
37
|
<span class="stat-label text-xs fw-semibold">[[user:profile-views]]</span>
|
|
38
38
|
<span class="fs-2 ff-secondary" title="
|
|
39
|
-
{profileviews}">{humanReadableNumber(profileviews)}</span>
|
|
39
|
+
{formattedNumber(profileviews)}">{humanReadableNumber(profileviews)}</span>
|
|
40
40
|
</div>
|
|
41
41
|
</div>
|
|
42
42
|
|
package/templates/category.tpl
CHANGED
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
<h1 class="tracking-tight fs-3 fw-semibold mb-0">{./name}</h1>
|
|
11
11
|
<div class="d-flex flex-wrap gap-2 {{{ if config.theme.centerHeaderElements }}}justify-content-center{{{ end }}}">
|
|
12
12
|
<span class="badge text-body border border-gray-300 stats text-xs">
|
|
13
|
-
<span title="{totalTopicCount}" class="fw-bold">{humanReadableNumber(totalTopicCount)}</span>
|
|
13
|
+
<span title="{formattedNumber(totalTopicCount)}" class="fw-bold">{humanReadableNumber(totalTopicCount)}</span>
|
|
14
14
|
<span class="text-lowercase fw-normal">[[global:topics]]</span>
|
|
15
15
|
</span>
|
|
16
16
|
<span class="badge text-body border border-gray-300 stats text-xs">
|
|
17
|
-
<span title="{totalPostCount}" class="fw-bold">{humanReadableNumber(totalPostCount)}</span>
|
|
17
|
+
<span title="{formattedNumber(totalPostCount)}" class="fw-bold">{humanReadableNumber(totalPostCount)}</span>
|
|
18
18
|
<span class="text-lowercase fw-normal">[[global:posts]]</span>
|
|
19
19
|
</span>
|
|
20
20
|
{{{ if !isNumber(cid) }}}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
{{{ if template.account/downvoted }}}active{{{ end }}}
|
|
13
13
|
{{{ if template.account/bookmarks }}}active{{{ end }}}">
|
|
14
14
|
<div class="flex-grow-1">[[global:posts]]</div>
|
|
15
|
-
<span class="flex-shrink-0 text-xs" title="{counts.posts}">{humanReadableNumber(counts.posts)}</span>
|
|
15
|
+
<span class="flex-shrink-0 text-xs" title="{formattedNumber(counts.posts)}">{humanReadableNumber(counts.posts)}</span>
|
|
16
16
|
</a>
|
|
17
17
|
|
|
18
18
|
<a href="{config.relative_path}/user/{userslug}/topics" class="btn btn-ghost btn-sm text-start ff-secondary fw-semibold d-flex gap-2 align-items-center
|
|
@@ -20,57 +20,57 @@
|
|
|
20
20
|
{{{ if template.account/watched }}}active{{{ end }}}
|
|
21
21
|
{{{ if template.account/ignored }}}active{{{ end }}}">
|
|
22
22
|
<div class="flex-grow-1">[[global:topics]]</div>
|
|
23
|
-
<span class="flex-shrink-0 text-xs" title="{counts.topics}">{humanReadableNumber(counts.topics)}</span>
|
|
23
|
+
<span class="flex-shrink-0 text-xs" title="{formattedNumber(counts.topics)}">{humanReadableNumber(counts.topics)}</span>
|
|
24
24
|
</a>
|
|
25
25
|
|
|
26
26
|
<a href="{config.relative_path}/user/{userslug}/shares" class="btn btn-ghost btn-sm text-start ff-secondary fw-semibold d-flex gap-2 align-items-center
|
|
27
27
|
{{{ if template.account/shares }}}active{{{ end }}}">
|
|
28
28
|
<div class="flex-grow-1">[[user:shares]]</div>
|
|
29
|
-
<span class="flex-shrink-0 text-xs" title="{counts.shares}">{humanReadableNumber(counts.shares)}</span>
|
|
29
|
+
<span class="flex-shrink-0 text-xs" title="{formattedNumber(counts.shares)}">{humanReadableNumber(counts.shares)}</span>
|
|
30
30
|
</a>
|
|
31
31
|
|
|
32
32
|
<a href="{config.relative_path}/user/{userslug}/groups" class="btn btn-ghost btn-sm text-start ff-secondary fw-semibold d-flex gap-2 align-items-center
|
|
33
33
|
{{{ if template.account/groups }}}active{{{ end }}}">
|
|
34
34
|
<div class="flex-grow-1">[[global:header.groups]]</div>
|
|
35
|
-
<span class="flex-shrink-0 text-xs" title="{counts.groups}">{humanReadableNumber(counts.groups)}</span>
|
|
35
|
+
<span class="flex-shrink-0 text-xs" title="{formattedNumber(counts.groups)}">{humanReadableNumber(counts.groups)}</span>
|
|
36
36
|
</a>
|
|
37
37
|
|
|
38
38
|
<a href="{config.relative_path}/user/{userslug}/followers" class="btn btn-ghost btn-sm text-start ff-secondary fw-semibold d-flex gap-2 align-items-center
|
|
39
39
|
{{{ if template.account/followers }}}active{{{ end }}}">
|
|
40
40
|
<div class="flex-grow-1">[[user:followers]]</div>
|
|
41
|
-
<span class="flex-shrink-0 text-xs" title="{counts.followers}">{humanReadableNumber(counts.followers)}</span>
|
|
41
|
+
<span class="flex-shrink-0 text-xs" title="{formattedNumber(counts.followers)}">{humanReadableNumber(counts.followers)}</span>
|
|
42
42
|
</a>
|
|
43
43
|
|
|
44
44
|
<a href="{config.relative_path}/user/{userslug}/following" class="btn btn-ghost btn-sm text-start ff-secondary fw-semibold d-flex gap-2 align-items-center
|
|
45
45
|
{{{ if template.account/following }}}active{{{ end }}}">
|
|
46
46
|
<div class="flex-grow-1">[[user:following]]</div>
|
|
47
|
-
<span class="flex-shrink-0 text-xs" title="{counts.following}">{humanReadableNumber(counts.following)}</span>
|
|
47
|
+
<span class="flex-shrink-0 text-xs" title="{formattedNumber(counts.following)}">{humanReadableNumber(counts.following)}</span>
|
|
48
48
|
</a>
|
|
49
49
|
|
|
50
50
|
{{{ if canEdit }}}
|
|
51
51
|
<a href="{config.relative_path}/user/{userslug}/categories" class="btn btn-ghost btn-sm text-start ff-secondary fw-semibold d-flex gap-2 align-items-center
|
|
52
52
|
{{{ if template.account/categories }}}active{{{ end }}}">
|
|
53
53
|
<div class="flex-grow-1">[[user:watched-categories]]</div>
|
|
54
|
-
<span class="flex-shrink-0 text-xs" title="{counts.categoriesWatched}">{counts.categoriesWatched}</span>
|
|
54
|
+
<span class="flex-shrink-0 text-xs" title="{formattedNumber(counts.categoriesWatched)}">{humanReadableNumber(counts.categoriesWatched)}</span>
|
|
55
55
|
</a>
|
|
56
56
|
{{{ if isSelf }}}
|
|
57
57
|
<a href="{config.relative_path}/user/{userslug}/tags" class="btn btn-ghost btn-sm text-start ff-secondary fw-semibold d-flex gap-2 align-items-center
|
|
58
58
|
{{{ if template.account/tags }}}active{{{ end }}}">
|
|
59
59
|
<div class="flex-grow-1">[[user:watched-tags]]</div>
|
|
60
|
-
<span class="flex-shrink-0 text-xs" title="{counts.tagsWatched}">{counts.tagsWatched}</span>
|
|
60
|
+
<span class="flex-shrink-0 text-xs" title="{formattedNumber(counts.tagsWatched)}">{humanReadableNumber(counts.tagsWatched)}</span>
|
|
61
61
|
</a>
|
|
62
62
|
{{{ end }}}
|
|
63
63
|
|
|
64
64
|
<a href="{config.relative_path}/user/{userslug}/blocks" class="btn btn-ghost btn-sm text-start ff-secondary fw-semibold d-flex gap-2 align-items-center
|
|
65
65
|
{{{ if template.account/blocks }}}active{{{ end }}}">
|
|
66
66
|
<div class="flex-grow-1">[[user:blocked-users]]</div>
|
|
67
|
-
<span class="flex-shrink-0 text-xs" title="{counts.blocks}">{humanReadableNumber(counts.blocks)}</span>
|
|
67
|
+
<span class="flex-shrink-0 text-xs" title="{formattedNumber(counts.blocks)}">{humanReadableNumber(counts.blocks)}</span>
|
|
68
68
|
</a>
|
|
69
69
|
|
|
70
70
|
<a href="{config.relative_path}/user/{userslug}/uploads" class="btn btn-ghost btn-sm text-start ff-secondary fw-semibold d-flex gap-2 align-items-center
|
|
71
71
|
{{{ if template.account/uploads }}}active{{{ end }}}">
|
|
72
72
|
<div class="flex-grow-1">[[global:uploads]]</div>
|
|
73
|
-
<span class="flex-shrink-0 text-xs" title="{counts.uploaded}">{humanReadableNumber(counts.uploaded)}</span>
|
|
73
|
+
<span class="flex-shrink-0 text-xs" title="{formattedNumber(counts.uploaded)}">{humanReadableNumber(counts.uploaded)}</span>
|
|
74
74
|
</a>
|
|
75
75
|
{{{ end }}}
|
|
76
76
|
|
|
@@ -40,12 +40,12 @@
|
|
|
40
40
|
<div class="d-flex col-lg-5 col-12 align-content-stretch">
|
|
41
41
|
<div class="meta stats d-none d-lg-grid col-6 gap-1 pe-2 text-muted" style="grid-template-columns: 1fr 1fr;">
|
|
42
42
|
<div class="card card-header border-0 p-2 overflow-hidden rounded-1 d-flex flex-column align-items-center">
|
|
43
|
-
<span class="fs-5 ff-secondary lh-1" title="{./totalTopicCount}">{humanReadableNumber(./totalTopicCount, 0)}</span>
|
|
43
|
+
<span class="fs-5 ff-secondary lh-1" title="{formattedNumber(./totalTopicCount)}">{humanReadableNumber(./totalTopicCount, 0)}</span>
|
|
44
44
|
<span class="d-none d-xl-flex text-lowercase text-xs">[[global:topics]]</span>
|
|
45
45
|
<i class="d-xl-none fa fa-fw text-xs text-muted opacity-75 fa-list"></i>
|
|
46
46
|
</div>
|
|
47
47
|
<div class="card card-header border-0 p-2 overflow-hidden rounded-1 d-flex flex-column align-items-center">
|
|
48
|
-
<span class="fs-5 ff-secondary lh-1" title="{./totalPostCount}">{humanReadableNumber(./totalPostCount, 0)}</span>
|
|
48
|
+
<span class="fs-5 ff-secondary lh-1" title="{formattedNumber(./totalPostCount)}">{humanReadableNumber(./totalPostCount, 0)}</span>
|
|
49
49
|
<span class="d-none d-xl-flex text-lowercase text-xs">[[global:posts]]</span>
|
|
50
50
|
<i class="d-xl-none fa-regular fa-fw text-xs text-muted opacity-75 fa-message"></i>
|
|
51
51
|
</div>
|
|
@@ -5,18 +5,18 @@
|
|
|
5
5
|
</button>
|
|
6
6
|
<button data-bs-toggle="tab" data-bs-target="#groups-members" class="btn btn-ghost btn-sm text-start d-flex align-items-center ff-secondary fw-semibold gap-2">
|
|
7
7
|
<div class="flex-grow-1">[[groups:members]]</div>
|
|
8
|
-
<span component="group/member/count" class="flex-shrink-0 text-xs lh-1" title="{group.memberCount}">{humanReadableNumber(group.memberCount)}</span>
|
|
8
|
+
<span component="group/member/count" class="flex-shrink-0 text-xs lh-1" title="{formattedNumber(group.memberCount)}">{humanReadableNumber(group.memberCount)}</span>
|
|
9
9
|
</button>
|
|
10
10
|
|
|
11
11
|
{{{ if group.isOwner }}}
|
|
12
12
|
<button data-bs-toggle="tab" data-bs-target="#groups-pending" class="btn btn-ghost btn-sm text-start d-flex align-items-center ff-secondary fw-semibold gap-2">
|
|
13
13
|
<div class="flex-grow-1">[[groups:details.pending]]</div>
|
|
14
|
-
<span component="group/pending/count" class="flex-shrink-0 text-xs lh-1" title="{group.pending.length}">{humanReadableNumber(group.pending.length)}</span>
|
|
14
|
+
<span component="group/pending/count" class="flex-shrink-0 text-xs lh-1" title="{formattedNumber(group.pending.length)}">{humanReadableNumber(group.pending.length)}</span>
|
|
15
15
|
</button>
|
|
16
16
|
|
|
17
17
|
<button data-bs-toggle="tab" data-bs-target="#groups-invited" class="btn btn-ghost btn-sm text-start d-flex align-items-center ff-secondary fw-semibold gap-2">
|
|
18
18
|
<div class="flex-grow-1">[[groups:details.invited]]</div>
|
|
19
|
-
<span component="group/invited/count" class="flex-shrink-0 text-xs lh-1" title="{group.invited.length}">{humanReadableNumber(group.invited.length)}</span>
|
|
19
|
+
<span component="group/invited/count" class="flex-shrink-0 text-xs lh-1" title="{formattedNumber(group.invited.length)}">{humanReadableNumber(group.invited.length)}</span>
|
|
20
20
|
</button>
|
|
21
21
|
|
|
22
22
|
<button data-bs-toggle="tab" data-bs-target="#groups-admin" class="btn btn-ghost btn-sm text-start d-flex align-items-center ff-secondary fw-semibold">
|
|
@@ -31,9 +31,7 @@
|
|
|
31
31
|
<div class="d-flex gap-1 justify-content-between ff-base">
|
|
32
32
|
<a href="#" class="d-flex flex-column flex-grow-1 gap-2 justify-content-start align-items-start btn btn-ghost btn-sm ff-sans text-start" component="drafts/open" data-save-id="{./save_id}" role="menuitem">
|
|
33
33
|
{{{ if (./action == "topics.post") }}}
|
|
34
|
-
{{{ if ./title}}}
|
|
35
|
-
<div class="text text-xs fw-semibold line-clamp-2 text-break">{./title}</div>
|
|
36
|
-
{{{ end }}}
|
|
34
|
+
<div class="text text-xs fw-semibold line-clamp-2 text-break">{{{ if ./title}}}{./title}{{{ else }}}[[topic:composer.untitled-topic]]{{{ end }}}</div>
|
|
37
35
|
{{{ end }}}
|
|
38
36
|
|
|
39
37
|
{{{ if (./action == "posts.reply") }}}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
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
|
-
<li class="dropdown-header">
|
|
16
|
+
<li class="dropdown-header">[[themes/harmony:light]]</li>
|
|
17
17
|
<div class="d-grid" style="grid-template-columns: 1fr 1fr;">
|
|
18
18
|
{{{ each bootswatchSkinOptions.light }}}
|
|
19
19
|
<li>
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
</div>
|
|
24
24
|
</div>
|
|
25
25
|
<div>
|
|
26
|
-
<li class="dropdown-header">
|
|
26
|
+
<li class="dropdown-header">[[themes/harmony:dark]]</li>
|
|
27
27
|
{{{ each bootswatchSkinOptions.dark }}}
|
|
28
28
|
<li>
|
|
29
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>
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
{{{ if ./crossposts.length }}}
|
|
2
2
|
<span class="badge text-body border border-gray-300 stats text-xs position-relative">
|
|
3
3
|
<i class="fa-regular fa-fw fa-clone visible-xs-inline" title="[[global:crossposts]]"></i>
|
|
4
|
-
<span component="topic/crosspost-count" title="{crossposts.length}" class="fw-bold">{humanReadableNumber(crossposts.length)}</span>
|
|
4
|
+
<span component="topic/crosspost-count" title="{formattedNumber(crossposts.length)}" class="fw-bold">{humanReadableNumber(crossposts.length)}</span>
|
|
5
5
|
<span class="hidden-xs text-lowercase fw-normal">[[global:crossposts]]</span>
|
|
6
6
|
<a href="#" aria-label="[[aria:show-crossposts]]" id="show-crossposts" class="stretched-link"></a>
|
|
7
7
|
</span>
|
|
8
8
|
{{{ end }}}
|
|
9
9
|
<span class="badge text-body border border-gray-300 stats text-xs">
|
|
10
10
|
<i class="fa-regular fa-fw fa-message visible-xs-inline" title="[[global:posts]]"></i>
|
|
11
|
-
<span component="topic/post-count" title="{postcount}" class="fw-bold">{humanReadableNumber(postcount)}</span>
|
|
11
|
+
<span component="topic/post-count" title="{formattedNumber(postcount)}" class="fw-bold">{humanReadableNumber(postcount)}</span>
|
|
12
12
|
<span class="hidden-xs text-lowercase fw-normal">[[global:posts]]</span>
|
|
13
13
|
</span>
|
|
14
14
|
<span class="badge text-body border border-gray-300 stats text-xs">
|
|
15
15
|
<i class="fa fa-fw fa-user visible-xs-inline" title="[[global:posters]]"></i>
|
|
16
|
-
<span title="{postercount}" class="fw-bold">{humanReadableNumber(postercount)}</span>
|
|
16
|
+
<span title="{formattedNumber(postercount)}" class="fw-bold">{humanReadableNumber(postercount)}</span>
|
|
17
17
|
<span class="hidden-xs text-lowercase fw-normal">[[global:posters]]</span>
|
|
18
18
|
</span>
|
|
19
19
|
<span class="badge text-body border border-gray-300 stats text-xs">
|
|
20
20
|
<i class="fa fa-fw fa-eye visible-xs-inline" title="[[global:views]]"></i>
|
|
21
|
-
<span class="fw-bold" title="{viewcount}">{humanReadableNumber(viewcount)}</span>
|
|
21
|
+
<span class="fw-bold" title="{formattedNumber(viewcount)}">{humanReadableNumber(viewcount)}</span>
|
|
22
22
|
<span class="hidden-xs text-lowercase fw-normal">[[global:views]]</span>
|
|
23
23
|
</span>
|
|
24
24
|
{{{ if ./followercount }}}
|
|
25
25
|
<span class="badge text-body border border-gray-300 stats text-xs">
|
|
26
26
|
<i class="fa fa-fw fa-bell-o visible-xs-inline" title="[[global:watching]]"></i>
|
|
27
|
-
<span class="fw-bold" title="{
|
|
27
|
+
<span class="fw-bold" title="{formattedNumber(followercount)}">{humanReadableNumber(followercount)}</span>
|
|
28
28
|
<span class="hidden-xs text-lowercase fw-normal">[[global:watching]]</span>
|
|
29
29
|
</span>
|
|
30
30
|
{{{ end }}}
|