Skip to content

Commit 8c07718

Browse files
authored
Merge pull request #62 from botlabs-gg/selfhosting-view
frontend: add selfhosting view toggle
2 parents 80379d5 + a9d764c commit 8c07718

File tree

8 files changed

+84
-2
lines changed

8 files changed

+84
-2
lines changed

assets/js/custom.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,22 @@
11
// Put your custom JS code here
2+
3+
// self-hosting view.
4+
const getSelfhost = () => {
5+
return localStorage.getItem('selfhost') || 'no';
6+
};
7+
8+
const setSelfhost = (selfhost) => {
9+
localStorage.setItem('selfhost', selfhost);
10+
document.documentElement.setAttribute('data-selfhost', selfhost);
11+
};
12+
13+
setSelfhost(getSelfhost());
14+
15+
window.addEventListener('DOMContentLoaded', () => {
16+
document.querySelectorAll('[data-selfhost-value]').forEach((element) => {
17+
element.addEventListener('click', (event) => {
18+
const selfhost = element.getAttribute('data-selfhost-value');
19+
setSelfhost(selfhost);
20+
});
21+
}
22+
)});

assets/scss/common/_custom.scss

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,32 @@ pre.shiki {
147147
opacity: var(--ec-frm-inlBtnBgActOpa);
148148
}
149149

150+
// show active server if self-hosting view enabled
151+
html[data-selfhost="yes"] {
152+
.icon-tabler-server {
153+
display: block;
154+
}
155+
156+
.icon-tabler-server-off {
157+
display: none;
158+
}
159+
}
160+
161+
// hide active server if self-hosting view disabled
162+
html[data-selfhost="no"] {
163+
.icon-tabler-server {
164+
display: none;
165+
}
166+
167+
.icon-tabler-server-off {
168+
display: block;
169+
}
170+
171+
.selfhosting {
172+
display: none;
173+
}
174+
}
175+
150176
@media (hover: hover) {
151177
.highlight .copy button {
152178
opacity: 0;

config/postcss.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ module.exports = {
2626
'data-global-alert',
2727
'data-pane', // tabs.js
2828
'data-popper-placement',
29+
'data-selfhost',
2930
'data-sizes',
3031
'data-toggle-tab', // tabs.js
3132
'id',

content/docs/moderation/logging.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ contains an embed, it is serialized and saved in JSON format.
2828

2929
Message logs on the official YAGPDB instance will be automatically deleted after 30 days of their creation.
3030

31-
If you're self-hosting, see [Message Log Purge](#message-log-purge-self-hosting-only) for more information.
31+
If you're self-hosting, see [Message Log Purge](#message-log-purge) for more information.
3232

3333
{{< /callout >}}
3434

@@ -114,8 +114,12 @@ channels.
114114
Users with write access to the control panel may delete individual logs or delete all logs on the server using the
115115
control panel.
116116

117-
## Message Log Purge [Self-hosting only]
117+
{{< selfhosting >}}
118+
119+
## Message Log Purge
118120

119121
If you are self-hosting your own instance of YAGPDB, you can set `enable_message_log_purge=true` to automatically purge
120122
message logs older than 30 days. This option is enabled on the official instance of YAGPDB hosted by Botlabs but is
121123
disabled by default on a fresh self-host.
124+
125+
{{< /selfhosting >}}

content/docs/moderation/verification.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ If a new user who verifies is detected as an alt but none of their associated ac
9797
send a log to the verification log channel if specified, identifying the new user as an alt and listing other users who
9898
verified at the same IP address.
9999

100+
{{< selfhosting >}}
101+
100102
### Disable Alt Detection Globally
101103

102104
For self hosters, the environment variable to enable this feature is `verification.track_ips`. It is `true` by default.
@@ -112,3 +114,5 @@ Do not proceed unless you are hosting your own version of the YAGPDB codebase.
112114
Verification requires the `google.recaptcha_secret` and `google.recaptcha_site_key` env variables to be configured and
113115
valid. To get a reCAPTCHA secret and site key, [register a site on
114116
reCAPTCHA](https://www.google.com/recaptcha/admin/create) and copy the generated secret and key.
117+
118+
{{< /selfhosting >}}

content/docs/welcome/premium.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,8 @@ You can assign your premium slots to any server with YAGPDB in it and no existin
127127

128128
![Redeemed Premium Slots](slots_premium.png)
129129

130+
{{< selfhosting >}}
131+
130132
## Self Hosting YAGPDB
131133

132134
Do not proceed unless you are hosting your own version of the YAGPDB codebase.
@@ -153,3 +155,5 @@ recommended you familiarize yourself with the codebase before making changes. Fi
153155
defined and alter their values as you wish.
154156

155157
![Example of limit definitions in Advanced Automoderator](limits_example.png)
158+
159+
{{< /selfhosting >}}

layouts/partials/header/header.html

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,24 @@ <h5 class="offcanvas-title fw-bold" id="offcanvasNavMainLabel">{{ .Site.Params.T
272272
</ul>
273273
{{ end -}}
274274

275+
<!-- self-hosting view -->
276+
<button id="selfHosting" class="btn btn-link mx-auto nav-link p-0 ms-lg-2 me-lg-1" type="button" aria-label="Toggle self-hosting view">
277+
<svg data-selfhost-value="yes" xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-server-off" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
278+
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
279+
<path d="M12 12h-6a3 3 0 0 1 -3 -3v-2c0 -1.083 .574 -2.033 1.435 -2.56m3.565 -.44h10a3 3 0 0 1 3 3v2a3 3 0 0 1 -3 3h-2" />
280+
<path d="M16 12h2a3 3 0 0 1 3 3v2m-1.448 2.568a2.986 2.986 0 0 1 -1.552 .432h-12a3 3 0 0 1 -3 -3v-2a3 3 0 0 1 3 -3h6" />
281+
<path d="M7 8v.01" />
282+
<path d="M7 16v.01" />
283+
<path d="M3 3l18 18" />
284+
</svg>
285+
<svg data-selfhost-value="no" xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-server" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
286+
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
287+
<path d="M3 4m0 3a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v2a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3z" />
288+
<path d="M3 12m0 3a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v2a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3z" />
289+
<path d="M7 8l0 .01" />
290+
<path d="M7 16l0 .01" />
291+
</svg>
292+
</button>
275293

276294
<!-- Navbar button mobile -->
277295
{{ if site.Params.doks.navBarButton -}}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{{/* wraps the inner content in a div with a class of "selfhosting", such that it can be conditionally hidden by some JS code. */}}
2+
<div class="selfhosting">
3+
{{ .Inner | $.Page.RenderString }}
4+
</div>

0 commit comments

Comments
 (0)