2022-02-19 00:45:25 +00:00
|
|
|
<template>
|
|
|
|
<div>
|
|
|
|
<h2>Messages</h2>
|
|
|
|
<div>
|
|
|
|
<label class="opt">
|
2022-06-19 00:25:21 +00:00
|
|
|
<input :checked="store.state.settings.motd" type="checkbox" name="motd" />
|
2022-02-19 00:45:25 +00:00
|
|
|
Show <abbr title="Message Of The Day">MOTD</abbr>
|
|
|
|
</label>
|
|
|
|
</div>
|
|
|
|
<div>
|
|
|
|
<label class="opt">
|
|
|
|
<input
|
2022-06-19 00:25:21 +00:00
|
|
|
:checked="store.state.settings.showSeconds"
|
2022-02-19 00:45:25 +00:00
|
|
|
type="checkbox"
|
|
|
|
name="showSeconds"
|
|
|
|
/>
|
|
|
|
Include seconds in timestamp
|
|
|
|
</label>
|
|
|
|
</div>
|
|
|
|
<div>
|
|
|
|
<label class="opt">
|
|
|
|
<input
|
2022-06-19 00:25:21 +00:00
|
|
|
:checked="store.state.settings.use12hClock"
|
2022-02-19 00:45:25 +00:00
|
|
|
type="checkbox"
|
|
|
|
name="use12hClock"
|
|
|
|
/>
|
|
|
|
Use 12-hour timestamps
|
|
|
|
</label>
|
|
|
|
</div>
|
2022-06-19 00:25:21 +00:00
|
|
|
<template v-if="store.state.serverConfiguration?.prefetch">
|
2022-02-19 00:45:25 +00:00
|
|
|
<h2>Link previews</h2>
|
|
|
|
<div>
|
|
|
|
<label class="opt">
|
2022-06-19 00:25:21 +00:00
|
|
|
<input :checked="store.state.settings.media" type="checkbox" name="media" />
|
2022-02-19 00:45:25 +00:00
|
|
|
Auto-expand media
|
|
|
|
</label>
|
|
|
|
</div>
|
|
|
|
<div>
|
|
|
|
<label class="opt">
|
2022-06-19 00:25:21 +00:00
|
|
|
<input :checked="store.state.settings.links" type="checkbox" name="links" />
|
2022-02-19 00:45:25 +00:00
|
|
|
Auto-expand websites
|
|
|
|
</label>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
<h2 id="label-status-messages">
|
|
|
|
Status messages
|
|
|
|
<span
|
|
|
|
class="tooltipped tooltipped-n tooltipped-no-delay"
|
|
|
|
aria-label="Joins, parts, quits, kicks, nick changes, and mode changes"
|
|
|
|
>
|
|
|
|
<button class="extra-help" />
|
|
|
|
</span>
|
|
|
|
</h2>
|
|
|
|
<div role="group" aria-labelledby="label-status-messages">
|
|
|
|
<label class="opt">
|
|
|
|
<input
|
2022-06-19 00:25:21 +00:00
|
|
|
:checked="store.state.settings.statusMessages === 'shown'"
|
2022-02-19 00:45:25 +00:00
|
|
|
type="radio"
|
|
|
|
name="statusMessages"
|
|
|
|
value="shown"
|
|
|
|
/>
|
|
|
|
Show all status messages individually
|
|
|
|
</label>
|
|
|
|
<label class="opt">
|
|
|
|
<input
|
2022-06-19 00:25:21 +00:00
|
|
|
:checked="store.state.settings.statusMessages === 'condensed'"
|
2022-02-19 00:45:25 +00:00
|
|
|
type="radio"
|
|
|
|
name="statusMessages"
|
|
|
|
value="condensed"
|
|
|
|
/>
|
|
|
|
Condense status messages together
|
|
|
|
</label>
|
|
|
|
<label class="opt">
|
|
|
|
<input
|
2022-06-19 00:25:21 +00:00
|
|
|
:checked="store.state.settings.statusMessages === 'hidden'"
|
2022-02-19 00:45:25 +00:00
|
|
|
type="radio"
|
|
|
|
name="statusMessages"
|
|
|
|
value="hidden"
|
|
|
|
/>
|
|
|
|
Hide all status messages
|
|
|
|
</label>
|
|
|
|
</div>
|
|
|
|
<h2>Visual Aids</h2>
|
|
|
|
<div>
|
|
|
|
<label class="opt">
|
|
|
|
<input
|
2022-06-19 00:25:21 +00:00
|
|
|
:checked="store.state.settings.coloredNicks"
|
2022-02-19 00:45:25 +00:00
|
|
|
type="checkbox"
|
|
|
|
name="coloredNicks"
|
|
|
|
/>
|
|
|
|
Enable colored nicknames
|
|
|
|
</label>
|
|
|
|
<label class="opt">
|
|
|
|
<input
|
2022-06-19 00:25:21 +00:00
|
|
|
:checked="store.state.settings.autocomplete"
|
2022-02-19 00:45:25 +00:00
|
|
|
type="checkbox"
|
|
|
|
name="autocomplete"
|
|
|
|
/>
|
|
|
|
Enable autocomplete
|
|
|
|
</label>
|
|
|
|
</div>
|
|
|
|
<div>
|
|
|
|
<label class="opt">
|
|
|
|
<label for="nickPostfix" class="opt">
|
|
|
|
Nick autocomplete postfix
|
|
|
|
<span
|
|
|
|
class="tooltipped tooltipped-n tooltipped-no-delay"
|
|
|
|
aria-label="Nick autocomplete postfix (for example a comma)"
|
|
|
|
>
|
|
|
|
<button class="extra-help" />
|
|
|
|
</span>
|
|
|
|
</label>
|
|
|
|
<input
|
|
|
|
id="nickPostfix"
|
2022-06-19 00:25:21 +00:00
|
|
|
:value="store.state.settings.nickPostfix"
|
2022-02-19 00:45:25 +00:00
|
|
|
type="text"
|
|
|
|
name="nickPostfix"
|
|
|
|
class="input"
|
|
|
|
placeholder="Nick autocomplete postfix (e.g. ', ')"
|
|
|
|
/>
|
|
|
|
</label>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<h2>Theme</h2>
|
|
|
|
<div>
|
|
|
|
<label for="theme-select" class="sr-only">Theme</label>
|
|
|
|
<select
|
|
|
|
id="theme-select"
|
2022-06-19 00:25:21 +00:00
|
|
|
:value="store.state.settings.theme"
|
2022-02-19 00:45:25 +00:00
|
|
|
name="theme"
|
|
|
|
class="input"
|
|
|
|
>
|
|
|
|
<option
|
2022-06-19 00:25:21 +00:00
|
|
|
v-for="theme in store.state.serverConfiguration?.themes"
|
2022-02-19 00:45:25 +00:00
|
|
|
:key="theme.name"
|
|
|
|
:value="theme.name"
|
|
|
|
>
|
|
|
|
{{ theme.displayName }}
|
|
|
|
</option>
|
|
|
|
</select>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div>
|
|
|
|
<h2>Custom Stylesheet</h2>
|
|
|
|
<label for="user-specified-css-input" class="sr-only">
|
|
|
|
Custom stylesheet. You can override any style with CSS here.
|
|
|
|
</label>
|
|
|
|
<textarea
|
|
|
|
id="user-specified-css-input"
|
2022-06-19 00:25:21 +00:00
|
|
|
:value="store.state.settings.userStyles"
|
2022-02-19 00:45:25 +00:00
|
|
|
class="input"
|
|
|
|
name="userStyles"
|
|
|
|
placeholder="/* You can override any style with CSS here */"
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<style>
|
|
|
|
textarea#user-specified-css-input {
|
|
|
|
height: 100px;
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
|
2022-06-19 00:25:21 +00:00
|
|
|
<script lang="ts">
|
|
|
|
import {defineComponent} from "vue";
|
|
|
|
import {useStore} from "../../js/store";
|
|
|
|
|
|
|
|
export default defineComponent({
|
2022-02-19 00:45:25 +00:00
|
|
|
name: "AppearanceSettings",
|
2022-06-19 00:25:21 +00:00
|
|
|
setup() {
|
|
|
|
const store = useStore();
|
|
|
|
|
|
|
|
return {
|
|
|
|
store,
|
|
|
|
};
|
|
|
|
},
|
|
|
|
});
|
2022-02-19 00:45:25 +00:00
|
|
|
</script>
|