nodebb-theme-harmony 1.0.0-beta.30 → 1.0.0-beta.32

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.
@@ -1,44 +1,39 @@
1
- <div class="account">
2
- <!-- IMPORT partials/account/header.tpl -->
3
- <div class="d-flex flex-column flex-md-row">
4
- <!-- IMPORT partials/account/sidebar-left.tpl -->
5
- <div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
6
- <h3 class="fw-semibold fs-5">{title}</h3>
1
+ <!-- IMPORT partials/account/header.tpl -->
7
2
 
8
- <!-- IF privateUploads -->
9
- <div class="alert alert-info text-center">[[uploads:private-uploads-info]]</div>
10
- <!-- ELSE -->
11
- <div class="alert alert-info text-center">[[uploads:public-uploads-info]]</div>
12
- <!-- ENDIF privateUploads -->
3
+ <h3 class="fw-semibold fs-5">{title}</h3>
13
4
 
14
- <!-- IF !uploads.length -->
15
- <div class="alert alert-warning text-center">[[uploads:no-uploads-found]]</div>
16
- <!-- ENDIF !uploads.length -->
5
+ <!-- IF privateUploads -->
6
+ <div class="alert alert-info text-center">[[uploads:private-uploads-info]]</div>
7
+ <!-- ELSE -->
8
+ <div class="alert alert-info text-center">[[uploads:public-uploads-info]]</div>
9
+ <!-- ENDIF privateUploads -->
17
10
 
18
- <table class="table table-striped table-responsive">
19
- <thead>
20
- <tr>
21
- <th></th>
22
- <th></th>
23
- </tr>
24
- </thead>
25
- <tbody>
26
- {{{each uploads}}}
27
- <tr data-name="{uploads.name}">
28
- <td>
29
- <a class="text-break" href="{config.relative_path}{uploads.url}">{uploads.url}</a>
30
- </td>
31
- <td>
32
- <div class="btn-group ">
33
- <button class="btn btn-danger btn-sm" data-action="delete"><i class="fa fa-trash"></i></button>
34
- </div>
35
- </td>
36
- </tr>
37
- {{{end}}}
38
- </tbody>
39
- </table>
11
+ <!-- IF !uploads.length -->
12
+ <div class="alert alert-warning text-center">[[uploads:no-uploads-found]]</div>
13
+ <!-- ENDIF !uploads.length -->
40
14
 
41
- <!-- IMPORT partials/paginator.tpl -->
42
- </div>
43
- </div>
44
- </div>
15
+ <table class="table table-striped table-responsive">
16
+ <thead>
17
+ <tr>
18
+ <th></th>
19
+ <th></th>
20
+ </tr>
21
+ </thead>
22
+ <tbody>
23
+ {{{each uploads}}}
24
+ <tr data-name="{uploads.name}">
25
+ <td>
26
+ <a class="text-break" href="{config.relative_path}{uploads.url}">{uploads.url}</a>
27
+ </td>
28
+ <td>
29
+ <div class="btn-group ">
30
+ <button class="btn btn-danger btn-sm" data-action="delete"><i class="fa fa-trash"></i></button>
31
+ </div>
32
+ </td>
33
+ </tr>
34
+ {{{end}}}
35
+ </tbody>
36
+ </table>
37
+
38
+ <!-- IMPORT partials/paginator.tpl -->
39
+ <!-- IMPORT partials/account/footer.tpl -->
@@ -0,0 +1,3 @@
1
+ </div>
2
+ </div>
3
+ </div>
@@ -1,94 +1,98 @@
1
- <div data-widget-area="header">
2
- {{{each widgets.header}}}
3
- {{widgets.header.html}}
4
- {{{end}}}
5
- </div>
1
+ <div class="account">
2
+ <div data-widget-area="header">
3
+ {{{each widgets.header}}}
4
+ {{widgets.header.html}}
5
+ {{{end}}}
6
+ </div>
6
7
 
7
- <div class="cover position-absolute start-0 top-0 w-100" component="account/cover" style="background-image: url({cover:url}); background-position: {cover:position};">
8
- <div class="container">
9
- {{{ if allowCoverPicture }}}
10
- {{{ if canEdit }}}
11
- <div class="controls text-center">
12
- <span class="upload p-2 m-2 rounded-1 text-bg-light opacity-75"><i class="fa fa-fw fa-upload"></i></span>
13
- <span class="resize p-2 m-2 rounded-1 text-bg-light opacity-75"><i class="fa fa-fw fa-arrows"></i></span>
14
- <span class="remove p-2 m-2 rounded-1 text-bg-light opacity-75"><i class="fa fa-fw fa-times"></i></span>
8
+ <div class="cover position-absolute start-0 top-0 w-100" component="account/cover" style="background-image: url({cover:url}); background-position: {cover:position};">
9
+ <div class="container">
10
+ {{{ if allowCoverPicture }}}
11
+ {{{ if canEdit }}}
12
+ <div class="controls text-center">
13
+ <span class="upload p-2 m-2 rounded-1 text-bg-light opacity-75"><i class="fa fa-fw fa-upload"></i></span>
14
+ <span class="resize p-2 m-2 rounded-1 text-bg-light opacity-75"><i class="fa fa-fw fa-arrows"></i></span>
15
+ <span class="remove p-2 m-2 rounded-1 text-bg-light opacity-75"><i class="fa fa-fw fa-times"></i></span>
16
+ </div>
17
+ <div class="save text-bg-primary">[[groups:cover-save]] <i class="fa fa-fw fa-floppy-o"></i></div>
18
+ <div class="indicator text-bg-primary">[[groups:cover-saving]] <i class="fa fa-fw fa-refresh fa-spin"></i></div>
19
+ {{{ end }}}
20
+ {{{ end }}}
15
21
  </div>
16
- <div class="save text-bg-primary">[[groups:cover-save]] <i class="fa fa-fw fa-floppy-o"></i></div>
17
- <div class="indicator text-bg-primary">[[groups:cover-saving]] <i class="fa fa-fw fa-refresh fa-spin"></i></div>
18
- {{{ end }}}
19
- {{{ end }}}
20
22
  </div>
21
- </div>
22
23
 
23
- <div class="d-flex flex-column flex-md-row gap-2 w-100 pb-4 mb-4 mt-2 border-bottom">
24
- <div {{{ if (allowProfilePicture && isSelfOrAdminOrGlobalModerator)}}}component="profile/change/picture"{{{ end }}} class="avatar-wrapper border-4 position-relative align-self-center align-self-md-start hover-parent" style="margin-top: -75px;">
25
- {buildAvatar(@value, "142px", true)}
26
- {{{ if (allowProfilePicture && isSelfOrAdminOrGlobalModerator)}}}
27
- <div component="profile/change/picture" class="d-none d-md-block pointer p-2 rounded-1 opacity-75 text-bg-light position-absolute top-50 start-50 translate-middle hover-visible">
28
- <span class="upload"><i class="fa fa-fw fa-upload"></i></span>
24
+ <div class="d-flex flex-column flex-md-row gap-2 w-100 pb-4 mb-4 mt-2 border-bottom">
25
+ <div {{{ if (allowProfilePicture && isSelfOrAdminOrGlobalModerator)}}}component="profile/change/picture"{{{ end }}} class="avatar-wrapper border-4 position-relative align-self-center align-self-md-start hover-parent" style="margin-top: -75px;">
26
+ {buildAvatar(@value, "142px", true)}
27
+ {{{ if (allowProfilePicture && isSelfOrAdminOrGlobalModerator)}}}
28
+ <div component="profile/change/picture" class="d-none d-md-block pointer p-2 rounded-1 opacity-75 text-bg-light position-absolute top-50 start-50 translate-middle hover-visible">
29
+ <span class="upload"><i class="fa fa-fw fa-upload"></i></span>
30
+ </div>
31
+ {{{ end }}}
29
32
  </div>
30
- {{{ end }}}
31
- </div>
32
33
 
33
- <div class="d-flex flex-column flex-md-row mt-1 justify-content-between w-100 gap-2">
34
- <div class="d-flex flex-1 flex-row gap-2">
35
- <div class="d-flex flex-column">
36
- <h2 class="fullname fw-semibold fs-2 tracking-tight mb-0">{{{ if fullname }}}{fullname}{{{ else }}}{username}{{{ end }}}</h2>
37
- <div class="d-flex flex-wrap gap-1 text-sm align-items-center">
38
- <span class="username fw-bold">{{{ if !banned }}}@{username}{{{ else }}}[[user:banned]]{{{ end }}}</span>
39
- <div class="d-flex align-items-center gap-1 p-1">
40
- {{{ if selectedGroup.length }}}
41
- {{{ each selectedGroup }}}
42
- {{{ if ./slug }}}
43
- <!-- IMPORT partials/groups/badge.tpl -->
44
- {{{ end }}}
45
- {{{ end }}}
34
+ <div class="d-flex flex-column flex-md-row mt-1 justify-content-between w-100 gap-2">
35
+ <div class="d-flex flex-1 flex-row gap-2">
36
+ <div class="d-flex flex-column">
37
+ <h2 class="fullname fw-semibold fs-2 tracking-tight mb-0">{{{ if fullname }}}{fullname}{{{ else }}}{username}{{{ end }}}</h2>
38
+ <div class="d-flex flex-wrap gap-1 text-sm align-items-center">
39
+ <span class="username fw-bold">{{{ if !banned }}}@{username}{{{ else }}}[[user:banned]]{{{ end }}}</span>
40
+ <div class="d-flex align-items-center gap-1 p-1">
41
+ {{{ if selectedGroup.length }}}
42
+ {{{ each selectedGroup }}}
43
+ {{{ if ./slug }}}
44
+ <!-- IMPORT partials/groups/badge.tpl -->
45
+ {{{ end }}}
46
+ {{{ end }}}
47
+ {{{ end }}}
48
+ </div>
49
+ </div>
50
+
51
+ {{{ if isAdminOrGlobalModeratorOrModerator }}}
52
+ {{{ if banned }}}
53
+ <div class="text-xm text-muted">
54
+ {{{ if banned_until }}}
55
+ [[user:info.banned-until, {banned_until_readable}]]
56
+ {{{ else }}}
57
+ [[user:info.banned-permanently]]
46
58
  {{{ end }}}
47
59
  </div>
60
+ {{{ end }}}
61
+ {{{ end }}}
48
62
  </div>
63
+ </div>
64
+
65
+ <div class="d-flex gap-1 align-self-stretch align-self-md-start justify-content-end">
66
+ {{{ if loggedIn }}}
67
+ {{{ if !isSelf }}}
68
+ <a component="account/unfollow" href="#" class="btn btn-info flex-fill{{{ if !isFollowing }}} hide{{{ end }}}">[[user:unfollow]]</a>
69
+ <a component="account/follow" href="#" class="btn btn-primary flex-fill{{{ if isFollowing }}} hide{{{ end }}}">[[user:follow]]</a>
70
+ {{{ end }}}
71
+ {{{ end }}}
49
72
 
50
- {{{ if isAdminOrGlobalModeratorOrModerator }}}
51
- {{{ if banned }}}
52
- <div class="text-xm text-muted">
53
- {{{ if banned_until }}}
54
- [[user:info.banned-until, {banned_until_readable}]]
55
- {{{ else }}}
56
- [[user:info.banned-permanently]]
73
+ {{{ if (loggedIn && (!isSelf && (!banned && !config.disableChat))) }}}
74
+ <div class="btn-group flex-fill">
75
+ <a {{{ if hasPrivateChat }}}component="account/chat"{{{ else }}}component="account/new-chat"{{{ end }}} href="#" class="btn btn-light" role="button">[[user:chat]]</a>
76
+ {{{ if hasPrivateChat}}}
77
+ <button type="button" class="btn btn-light dropdown-toggle flex-0" data-bs-toggle="dropdown">
78
+ <i class="fa fa-caret-down"></i>
79
+ </button>
80
+ <ul class="dropdown-menu dropdown-menu-end" role="menu">
81
+ <li><a class="dropdown-item" href="#" component="account/new-chat">[[user:new_chat_with, {username}]]</a></li>
82
+ </ul>
57
83
  {{{ end }}}
58
84
  </div>
59
85
  {{{ end }}}
86
+ {{{ if !isSelf }}}
87
+ {{{ if (isAdmin || (canBan || canMute ))}}}
88
+ <!-- IMPORT partials/account/admin-menu.tpl -->
60
89
  {{{ end }}}
61
- </div>
62
- </div>
63
-
64
- <div class="d-flex gap-1 align-self-stretch align-self-md-start justify-content-end">
65
- {{{ if loggedIn }}}
66
- {{{ if !isSelf }}}
67
- <a component="account/unfollow" href="#" class="btn btn-info flex-fill{{{ if !isFollowing }}} hide{{{ end }}}">[[user:unfollow]]</a>
68
- <a component="account/follow" href="#" class="btn btn-primary flex-fill{{{ if isFollowing }}} hide{{{ end }}}">[[user:follow]]</a>
69
- {{{ end }}}
70
- {{{ end }}}
71
-
72
- {{{ if (loggedIn && (!isSelf && (!banned && !config.disableChat))) }}}
73
- <div class="btn-group flex-fill">
74
- <a {{{ if hasPrivateChat }}}component="account/chat"{{{ else }}}component="account/new-chat"{{{ end }}} href="#" class="btn btn-light" role="button">[[user:chat]]</a>
75
- {{{ if hasPrivateChat}}}
76
- <button type="button" class="btn btn-light dropdown-toggle flex-0" data-bs-toggle="dropdown">
77
- <i class="fa fa-caret-down"></i>
78
- </button>
79
- <ul class="dropdown-menu dropdown-menu-end" role="menu">
80
- <li><a class="dropdown-item" href="#" component="account/new-chat">[[user:new_chat_with, {username}]]</a></li>
81
- </ul>
82
90
  {{{ end }}}
83
91
  </div>
84
- {{{ end }}}
85
- {{{ if !isSelf }}}
86
- {{{ if (isAdmin || (canBan || canMute ))}}}
87
- <!-- IMPORT partials/account/admin-menu.tpl -->
88
- {{{ end }}}
89
- {{{ end }}}
90
92
  </div>
91
93
  </div>
92
- </div>
93
94
 
95
+ <div class="d-flex flex-column flex-md-row">
96
+ <!-- IMPORT partials/account/sidebar-left.tpl -->
97
+ <div class="account-content flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
94
98
 
@@ -1,7 +1,7 @@
1
1
  {{{each tags}}}
2
2
  <div class="tag-container d-flex">
3
3
  <div class="d-flex gap-2 align-items-center text-truncate">
4
- <a class="fs-5 badge border text-bg-light text-truncate text-decoration-none" href="{config.relative_path}/tags/{tags.valueEncoded}" data-tag="{tags.valueEscaped}"><span class="tag-item text-muted text-uppercase text-nowrap tag-class-{tags.class} me-2" data-tag="{tags.valueEscaped}">{tags.valueEscaped}</span></a>
4
+ <a class="fs-5 badge border text-bg-light text-truncate text-decoration-none" href="{config.relative_path}/tags/{tags.valueEncoded}" data-tag="{tags.valueEscaped}"><span class="tag-item text-muted text-uppercase text-nowrap tag-class-{tags.class}" data-tag="{tags.valueEscaped}">{tags.valueEscaped}</span></a>
5
5
  <span class="tag-topic-count text-secondary fw-semibold text-nowrap human-readable-number" title="{tags.score}">{tags.score}</span>
6
6
  </div>
7
7
  </div>