nodebb-theme-harmony 1.0.0-beta.11 → 1.0.0-beta.14

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodebb-theme-harmony",
3
- "version": "1.0.0-beta.11",
3
+ "version": "1.0.0-beta.14",
4
4
  "nbbpm": {
5
5
  "compatibility": "^3.0.0"
6
6
  },
package/scss/common.scss CHANGED
@@ -14,8 +14,13 @@ body {
14
14
  .text-sm { font-size: 0.875rem!important; } // 14px
15
15
  .text-xs { font-size: 0.75rem!important; } // 12px
16
16
 
17
- .btn-link:hover {
18
- text-decoration: none;
17
+ .caret {
18
+ &::after {
19
+ border: none;
20
+ font-family: "FontAwesome";
21
+ content: "\f078";
22
+ color: tint-color($primary, 40%);
23
+ }
19
24
  }
20
25
 
21
26
  .sticky-tools {
@@ -35,6 +40,13 @@ body {
35
40
  }
36
41
  }
37
42
 
43
+ .btn-link {
44
+ &:hover, &.active {
45
+ background-color: $btn-ghost-hover-color;
46
+ text-decoration: none;
47
+ }
48
+ }
49
+
38
50
  @mixin btn-ghost-base {
39
51
  display: flex;
40
52
  align-items: center;
@@ -48,10 +60,10 @@ body {
48
60
  text-align: left;
49
61
  --bs-text-opacity: 1;
50
62
  color: inherit !important;
51
- $hover-color: mix($light, $dark, 90);
63
+
52
64
  cursor: pointer;
53
65
  &:hover, &.active {
54
- background-color: $hover-color;
66
+ background-color: $btn-ghost-hover-color;
55
67
  text-decoration: none;
56
68
  }
57
69
  }
@@ -6,10 +6,6 @@ $composer-bg: $body-bg !default;
6
6
  background-color: $bg !important;
7
7
  }
8
8
 
9
- .composer {
10
- z-index: 3 !important;
11
- }
12
-
13
9
  .skin-noskin {
14
10
  // only using colors when there is no bootswatch skin applied
15
11
  $composer-color: $secondary;
@@ -39,6 +39,8 @@ $text-muted: $gray-600 !default;
39
39
  $border-color: $gray-200 !default;
40
40
  $link-color: shade-color($blue, 20%) !default;
41
41
 
42
+ $btn-ghost-hover-color: mix($light, $dark, 90);
43
+
42
44
  // no caret on dropdown-toggle
43
45
  $enable-caret: false;
44
46
 
package/scss/topic.scss CHANGED
@@ -16,18 +16,6 @@
16
16
  line-height: 20px;
17
17
  }
18
18
 
19
- .action-bar {
20
- .dropdown-toggle::after {
21
- border: none;
22
- font-family: "FontAwesome";
23
- content: "\f078";
24
- color: tint-color($primary, 40%);
25
-
26
- position: relative;
27
- top: 2px;
28
- }
29
- }
30
-
31
19
  .topic {
32
20
  .posts {
33
21
  max-width: 960px;
@@ -69,6 +57,17 @@
69
57
  [component="post/reply-count"] {
70
58
  font-size: $font-size-base * .75;
71
59
  }
60
+
61
+ [component="post/upvote"], [component="post/downvote"] {
62
+ &.upvoted, &.downvoted {
63
+ background-color: lighten($btn-ghost-hover-color, 5%);
64
+
65
+ &:hover {
66
+ background-color: $btn-ghost-hover-color;
67
+
68
+ }
69
+ }
70
+ }
72
71
  }
73
72
  }
74
73
 
@@ -11,7 +11,6 @@
11
11
  <div class="btn-group bottom-sheet" component="category/watch/all">
12
12
  <button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button">
13
13
  <span>[[user:change_all]]</span>
14
- <span class="caret"></span>
15
14
  </button>
16
15
  <ul class="dropdown-menu">
17
16
  <li><a class="dropdown-item" href="#" component="category/watching" data-state="watching"><i class="fa fa-fw fa-inbox"></i> [[category:watching]]<p class="help-text"><small>[[category:watching.description]]</small></p></a></li>
@@ -33,8 +33,7 @@
33
33
 
34
34
  {{{ if !topics.length }}}
35
35
  {{{ if privileges.topics:create }}}
36
- <hr class="visible-xs" />
37
- <div class="alert alert-warning" id="category-no-topics">
36
+ <div class="alert alert-info mt-3" id="category-no-topics">
38
37
  [[category:no_topics]]
39
38
  </div>
40
39
  {{{ end }}}
@@ -146,7 +146,6 @@
146
146
  <button type="button" class="btn btn-light dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
147
147
  <i class="fa fa-street-view"></i>
148
148
  [[flags:flagged-user]]
149
- <span class="caret"></span>
150
149
  </button>
151
150
  <ul class="dropdown-menu">
152
151
  <li><a class="dropdown-item" href="{config.relative_path}/uid/{target.uid}">[[flags:view-profile]]</a></li>
@@ -18,7 +18,7 @@
18
18
 
19
19
  <div class="btn-group float-end" component="flags/bulk-actions">
20
20
  <button type="button" class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" autocomplete="off" aria-haspopup="true" aria-expanded="false" disabled="disabled">
21
- <i class="fa fa-clone"></i> [[flags:bulk-actions]] <span class="caret"></span>
21
+ <i class="fa fa-clone"></i> <span class="fw-semibold">[[flags:bulk-actions]]</span>
22
22
  </button>
23
23
  <ul class="dropdown-menu">
24
24
  <li><a href="#" class="dropdown-item" data-action="bulk-assign">[[flags:assign-to-me]]</a></li>
@@ -9,7 +9,7 @@
9
9
  <span class="visible-md-inline visible-lg-inline fw-semibold">[[unread:all_categories]]</span>{{{ end }}}
10
10
  </button>
11
11
  <div component="category-selector-search" class="hidden position-absolute">
12
- <input type="text" class="form-control" autocomplete="off">
12
+ <input type="text" class="form-control form-control-sm" autocomplete="off">
13
13
  </div>
14
14
  <ul component="category/list" class="dropdown-menu category-dropdown-menu" role="menu">
15
15
  <li role="presentation" class="category" data-all="all">
@@ -12,7 +12,7 @@
12
12
  </span>
13
13
  </button>
14
14
  <div component="category-selector-search" class="hidden position-absolute">
15
- <input type="text" class="form-control" autocomplete="off">
15
+ <input type="text" class="form-control form-control-sm" autocomplete="off">
16
16
  </div>
17
17
  <ul component="category/list" class="dropdown-menu category-dropdown-menu" role="menu">
18
18
  <li component="category/no-matches" role="presentation" class="category hidden">
@@ -35,7 +35,7 @@
35
35
  {{{ end }}}
36
36
 
37
37
  {{{ if ./text }}}
38
- <div class="text text-sm line-clamp-3">{./text}</div>
38
+ <div class="text text-sm line-clamp-3 text-break">{./text}</div>
39
39
  {{{ end }}}
40
40
  <div class="timeago text-xs text-muted" title="{./timestampISO}"></div>
41
41
  </div>
@@ -104,7 +104,7 @@
104
104
  <i class="fa fa-chevron-up text-primary"></i>
105
105
  </a>
106
106
 
107
- <div class="d-inline-block px-3 btn-ghost-sm" component="post/vote-count" data-votes="{posts.votes}">{posts.votes}</div>
107
+ <div class="d-inline-block px-2 mx-1 btn-ghost-sm" component="post/vote-count" data-votes="{posts.votes}">{posts.votes}</div>
108
108
 
109
109
  {{{ if !downvote:disabled }}}
110
110
  <a component="post/downvote" href="#" class="btn-ghost-sm {{{ if posts.downvoted }}}downvoted{{{ end }}}">
@@ -7,7 +7,7 @@
7
7
  <!-- IMPORT partials/topic-list-bar.tpl -->
8
8
  <div class="category">
9
9
  {{{ if !topics.length }}}
10
- <div class="alert alert-warning" id="category-no-topics">[[recent:no_popular_topics]]</div>
10
+ <div class="alert alert-info mt-3" id="category-no-topics">[[recent:no_popular_topics]]</div>
11
11
  {{{ end }}}
12
12
 
13
13
  <!-- IMPORT partials/topics_list.tpl -->
@@ -0,0 +1,113 @@
1
+ <!-- IMPORT partials/breadcrumbs.tpl -->
2
+ <div class="btn-toolbar justify-content-end">
3
+ {{{ if (!singlePost && posts.length) }}}
4
+ <div class="me-2">
5
+ <!-- IMPORT partials/category-filter-right.tpl -->
6
+ </div>
7
+ <div class="btn-group bottom-sheet" component="post-queue/bulk-actions">
8
+ <button type="button" class="btn-ghost-sm dropdown-toggle" data-bs-toggle="dropdown" autocomplete="off" aria-haspopup="true" aria-expanded="false">
9
+ <i class="fa fa-clone"></i><span class="fw-semibold"> [[post-queue:bulk-actions]]</span>
10
+ </button>
11
+ <ul class="dropdown-menu dropdown-menu-end">
12
+ {{{ if canAccept }}}
13
+ <li><a class="dropdown-item" href="#" data-action="accept-all">[[post-queue:accept-all]]</a></li>
14
+ <li><a class="dropdown-item" href="#" data-action="accept-selected">[[post-queue:accept-selected]]</a></li>
15
+ <li class="dropdown-divider"></li>
16
+ <li><a class="dropdown-item" href="#" data-action="reject-all">[[post-queue:reject-all]]</a></li>
17
+ <li><a class="dropdown-item" href="#" data-action="reject-selected">[[post-queue:reject-selected]]</a></li>
18
+ {{{ else }}}
19
+ <li><a class="dropdown-item" href="#" data-action="reject-all">[[post-queue:remove-all]]</a></li>
20
+ <li><a class="dropdown-item" href="#" data-action="reject-selected">[[post-queue:remove-selected]]</a></li>
21
+ {{{ end }}}
22
+ </ul>
23
+ </div>
24
+ {{{ end }}}
25
+ </div>
26
+ <hr/>
27
+ <div class="row">
28
+ <div class="col-12">
29
+ <div class="post-queue preventSlideout posts-list">
30
+ {{{ if !posts.length }}}
31
+ {{{ if isAdmin }}}
32
+ <div class="card card-body">
33
+ <p>
34
+ [[post-queue:description, {config.relative_path}/admin/settings/post#post-queue]]
35
+ </p>
36
+ </div>
37
+ {{{ end }}}
38
+ {{{ end }}}
39
+
40
+ {{{ each posts }}}
41
+ <div class="card mb-3" data-id="{posts.id}">
42
+ <div class="card-header">
43
+ {{{ if !singlePost }}}
44
+ <input type="checkbox" class="form-check-input" autocomplete="off" />
45
+ {{{ end }}}
46
+ <strong>{{{ if posts.data.tid }}}[[post-queue:reply]]{{{ else }}}[[post-queue:topic]]{{{ end }}}</strong>
47
+ <span class="timeago float-end" title={posts.data.timestampISO}></span>
48
+ </div>
49
+ <div class="card-body">
50
+ <div class="row">
51
+ <div class="col-lg-2 col-12">
52
+ <strong>[[post-queue:user]]</strong>
53
+ <div>
54
+ {{{ if posts.user.userslug}}}
55
+ <a href="{config.relative_path}/uid/{posts.user.uid}">{buildAvatar(posts.user, "24px", true, "not-responsive")} {posts.user.username}</a>
56
+ {{{ else }}}
57
+ {posts.user.username}
58
+ {{{ end }}}
59
+ </div>
60
+ </div>
61
+ <div class="col-lg-3 col-12">
62
+ <strong>[[post-queue:category]]{{{ if posts.data.cid}}} <i class="fa fa-fw fa-edit" data-bs-toggle="tooltip" title="[[post-queue:category-editable]]"></i>{{{ end }}}</strong>
63
+ <div class="topic-category" {{{if posts.data.cid}}}data-editable="editable"{{{end}}}">
64
+ <a href="{config.relative_path}/category/{posts.category.slug}">
65
+ <div class="category-item d-inline-block">
66
+ {buildCategoryIcon(./category, "24px", "rounded-circle")}
67
+ {posts.category.name}
68
+ </div>
69
+ </a>
70
+ </div>
71
+ </div>
72
+ <div class="col-lg-7 col-12">
73
+ <strong>{{{ if posts.data.tid }}}[[post-queue:topic]]{{{ else }}}[[post-queue:title]] <i class="fa fa-fw fa-edit" data-bs-toggle="tooltip" title="[[post-queue:title-editable]]"></i>{{{ end }}}</strong>
74
+ <div class="topic-title text-break">
75
+ {{{ if posts.data.tid }}}
76
+ <a href="{config.relative_path}/topic/{posts.data.tid}">{posts.topic.title}</a>
77
+ {{{ end }}}
78
+ <span class="title-text">{posts.data.title}</span>
79
+ </div>
80
+ {{{if !posts.data.tid}}}
81
+ <div class="topic-title-editable hidden">
82
+ <input class="form-control" type="text" value="{posts.data.title}"/>
83
+ </div>
84
+ {{{end}}}
85
+ </div>
86
+ </div>
87
+ <hr/>
88
+ <div>
89
+ <strong>[[post-queue:content]] <i class="fa fa-fw fa-edit" data-bs-toggle="tooltip" title="[[post-queue:content-editable]]"></i></strong>
90
+ <div class="post-content text-break">{posts.data.content}</div>
91
+ <div class="post-content-editable hidden">
92
+ <textarea class="form-control w-100" style="height:300px;">{posts.data.rawContent}</textarea>
93
+ </div>
94
+ </div>
95
+ </div>
96
+ <div class="card-footer text-end">
97
+ <div>
98
+ {{{ if canAccept }}}
99
+ <button class="btn btn-danger btn-sm" data-action="reject"><i class="fa fa-fw fa-times"></i> [[post-queue:reject]]</button>
100
+ <button class="btn btn-info btn-sm" data-action="notify"><i class="fa fa-fw fa-bell-o"></i> [[post-queue:notify]]</button>
101
+ <button class="btn btn-success btn-sm" data-action="accept"><i class="fa fa-fw fa-check"></i> [[post-queue:accept]] </button>
102
+ {{{ else }}}
103
+ <button class="btn btn-danger btn-sm" data-action="reject"><i class="fa fa-fw fa-times"></i> [[post-queue:remove]]</button>
104
+ {{{ end }}}
105
+ </div>
106
+ </div>
107
+ </div>
108
+ {{{ end }}}
109
+ </div>
110
+
111
+ <!-- IMPORT partials/paginator.tpl -->
112
+ </div>
113
+ </div>
@@ -9,7 +9,7 @@
9
9
 
10
10
  <div class="category">
11
11
  {{{ if !topics.length }}}
12
- <div class="alert alert-warning" id="category-no-topics">[[recent:no_recent_topics]]</div>
12
+ <div class="alert alert-info mt-3" id="category-no-topics">[[recent:no_recent_topics]]</div>
13
13
  {{{ end }}}
14
14
 
15
15
  <!-- IMPORT partials/topics_list.tpl -->
package/templates/top.tpl CHANGED
@@ -7,7 +7,7 @@
7
7
  <!-- IMPORT partials/topic-list-bar.tpl -->
8
8
  <div class="category">
9
9
  {{{ if !topics.length }}}
10
- <div class="alert alert-warning" id="category-no-topics">[[top:no_top_topics]]</div>
10
+ <div class="alert alert-info mt-3" id="category-no-topics">[[top:no_top_topics]]</div>
11
11
  {{{ end }}}
12
12
 
13
13
  <!-- IMPORT partials/topics_list.tpl -->
@@ -6,7 +6,7 @@
6
6
  <div class="unread">
7
7
  <!-- IMPORT partials/topic-list-bar.tpl -->
8
8
  <div class="category">
9
- <div id="category-no-topics" class="alert alert-warning {{{ if topics.length }}}hidden{{{ end }}}">[[unread:no_unread_topics]]</div>
9
+ <div id="category-no-topics" class="alert alert-info mt-3 {{{ if topics.length }}}hidden{{{ end }}}">[[unread:no_unread_topics]]</div>
10
10
 
11
11
  <!-- IMPORT partials/topics_list.tpl -->
12
12
  <button id="load-more-btn" class="btn btn-primary hide">[[unread:load_more]]</button>