settings page update

This commit is contained in:
Henry Jameson 2018-08-28 15:38:07 +03:00
parent b48a3210a3
commit cff4177bf3
3 changed files with 157 additions and 97 deletions

View File

@ -114,6 +114,12 @@
&:last-child { &:last-child {
border-bottom: none; border-bottom: none;
padding-bottom: 0;
margin-bottom: 1em;
}
select {
min-width: 10em;
} }
@ -143,8 +149,12 @@
} }
.btn { .btn {
margin-top: 1em;
min-height: 28px; min-height: 28px;
}
.submit {
margin-top: 1em;
min-height: 30px;
width: 10em; width: 10em;
} }
} }

View File

@ -1,21 +1,62 @@
<template> <template>
<div>
<div class="presets-container">
<div> <div>
<div>{{$t('settings.presets')}} {{$t('settings.presets')}}
<label for="style-switcher" class='select'> <label for="style-switcher" class='select'>
<select id="style-switcher" v-model="selected" class="style-switcher"> <select id="style-switcher" v-model="selected" class="style-switcher">
<option v-for="style in availableStyles" :value="style" :style="{ <option v-for="style in availableStyles"
:value="style"
:style="{
backgroundColor: style[1], backgroundColor: style[1],
color: style[3] color: style[3]
}">{{style[0]}}</option> }">
{{style[0]}}
</option>
</select> </select>
<i class="icon-down-open"/> <i class="icon-down-open"/>
</label> </label>
</div> </div>
<div> <div class="import-export">
<button class="btn" @click="exportCurrentTheme">{{ $t('settings.export_theme') }}</button> <button class="btn" @click="exportCurrentTheme">{{ $t('settings.export_theme') }}</button>
<button class="btn" @click="importTheme">{{ $t('settings.import_theme') }}</button> <button class="btn" @click="importTheme">{{ $t('settings.import_theme') }}</button>
<p v-if="invalidThemeImported" class="import-warning">{{ $t('settings.invalid_theme_imported') }}</p> <p v-if="invalidThemeImported" class="import-warning">{{ $t('settings.invalid_theme_imported') }}</p>
</div> </div>
</div>
<div class="preview-container">
<div :style="{
'--btnRadius': btnRadiusLocal + 'px',
'--inputRadius': inputRadiusLocal + 'px',
'--panelRadius': panelRadiusLocal + 'px',
'--avatarRadius': avatarRadiusLocal + 'px',
'--avatarAltRadius': avatarAltRadiusLocal + 'px',
'--tooltipRadius': tooltipRadiusLocal + 'px',
'--attachmentRadius': attachmentRadiusLocal + 'px'
}">
<div class="panel dummy">
<div class="panel-heading" :style="{ 'background-color': btnColorLocal, 'color': textColorLocal }">Preview</div>
<div class="panel-body theme-preview-content" :style="{ 'background-color': bgColorLocal, 'color': textColorLocal }">
<div class="avatar" :style="{
'border-radius': avatarRadiusLocal + 'px'
}">
( ͡° ͜ʖ ͡°)
</div>
<h4>Content</h4>
<br>
A bunch of more content and
<a :style="{ color: linkColorLocal }">a nice lil' link</a>
<i :style="{ color: blueColorLocal }" class="icon-reply"/>
<i :style="{ color: greenColorLocal }" class="icon-retweet"/>
<i :style="{ color: redColorLocal }" class="icon-cancel"/>
<i :style="{ color: orangeColorLocal }" class="icon-star"/>
<br>
<button class="btn" :style="{ 'background-color': btnColorLocal, 'color': textColorLocal }">Button</button>
</div>
</div>
</div>
</div>
<div class="color-container"> <div class="color-container">
<p>{{$t('settings.theme_help')}}</p> <p>{{$t('settings.theme_help')}}</p>
<div class="color-item"> <div class="color-item">
@ -59,6 +100,7 @@
<input id="orangecolor-t" class="theme-color-in" type="text" v-model="orangeColorLocal"> <input id="orangecolor-t" class="theme-color-in" type="text" v-model="orangeColorLocal">
</div> </div>
</div> </div>
<div class="radius-container"> <div class="radius-container">
<p>{{$t('settings.radii_help')}}</p> <p>{{$t('settings.radii_help')}}</p>
<div class="radius-item"> <div class="radius-item">
@ -97,38 +139,11 @@
<input id="tooltipradius-t" class="theme-radius-in" type="text" v-model="tooltipRadiusLocal"> <input id="tooltipradius-t" class="theme-radius-in" type="text" v-model="tooltipRadiusLocal">
</div> </div>
</div> </div>
<div :style="{
'--btnRadius': btnRadiusLocal + 'px', <div class="apply-container">
'--inputRadius': inputRadiusLocal + 'px', <button class="btn submit" @click="setCustomTheme">{{$t('general.apply')}}</button>
'--panelRadius': panelRadiusLocal + 'px',
'--avatarRadius': avatarRadiusLocal + 'px',
'--avatarAltRadius': avatarAltRadiusLocal + 'px',
'--tooltipRadius': tooltipRadiusLocal + 'px',
'--attachmentRadius': attachmentRadiusLocal + 'px'
}">
<div class="panel dummy">
<div class="panel-heading" :style="{ 'background-color': btnColorLocal, 'color': textColorLocal }">Preview</div>
<div class="panel-body theme-preview-content" :style="{ 'background-color': bgColorLocal, 'color': textColorLocal }">
<div class="avatar" :style="{
'border-radius': avatarRadiusLocal + 'px'
}">
( ͡° ͜ʖ ͡°)
</div>
<h4>Content</h4>
<br>
A bunch of more content and
<a :style="{ color: linkColorLocal }">a nice lil' link</a>
<i :style="{ color: blueColorLocal }" class="icon-reply"/>
<i :style="{ color: greenColorLocal }" class="icon-retweet"/>
<i :style="{ color: redColorLocal }" class="icon-cancel"/>
<i :style="{ color: orangeColorLocal }" class="icon-star"/>
<br>
<button class="btn" :style="{ 'background-color': btnColorLocal, 'color': textColorLocal }">Button</button>
</div>
</div>
</div>
<button class="btn" @click="setCustomTheme">{{$t('general.apply')}}</button>
</div> </div>
</div>
</template> </template>
<script src="./style_switcher.js"></script> <script src="./style_switcher.js"></script>
@ -144,15 +159,19 @@
color: var(--cRed, $fallback--cRed); color: var(--cRed, $fallback--cRed);
} }
.apply-container,
.radius-container, .radius-container,
.color-container { .color-container,
.presets-container {
display: flex; display: flex;
p { p {
flex: 2 0 100%;
margin-top: 2em; margin-top: 2em;
margin-bottom: .5em; margin-bottom: .5em;
} }
} }
.radius-container { .radius-container {
flex-direction: column; flex-direction: column;
} }
@ -162,6 +181,36 @@
justify-content: space-between; justify-content: space-between;
} }
.presets-container {
justify-content: center;
.import-export {
display: flex;
.btn {
margin-left: .5em;
}
}
}
.preview-container {
border-top: 1px dashed;
border-bottom: 1px dashed;
border-color: $fallback--border;
border-color: var(--border, $fallback--border);
margin: 1em -1em 0;
padding: 1em;
.btn {
margin-top: 1em;
min-height: 30px;
width: 10em;
}
}
.apply-container {
justify-content: center;
}
.radius-item, .radius-item,
.color-item { .color-item {
min-width: 20em; min-width: 20em;
@ -229,6 +278,7 @@
flex: 0; flex: 0;
min-width: 2em; min-width: 2em;
cursor: pointer; cursor: pointer;
max-height: 29px;
} }
.theme-preview-content { .theme-preview-content {

View File

@ -48,8 +48,8 @@ const de = {
settings: 'Einstellungen', settings: 'Einstellungen',
theme: 'Farbschema', theme: 'Farbschema',
presets: 'Voreinstellungen', presets: 'Voreinstellungen',
export_theme: 'Aktuelles Theme exportieren', export_theme: 'Farbschema speichern',
import_theme: 'Gespeichertes Theme laden', import_theme: 'Farbschema laden',
invalid_theme_imported: 'Die ausgewählte Datei ist kein unterstütztes Pleroma-Theme. Keine Änderungen wurden vorgenommen.', invalid_theme_imported: 'Die ausgewählte Datei ist kein unterstütztes Pleroma-Theme. Keine Änderungen wurden vorgenommen.',
theme_help: 'Benutze HTML Farbcodes (#rrggbb) um dein Farbschema anzupassen', theme_help: 'Benutze HTML Farbcodes (#rrggbb) um dein Farbschema anzupassen',
radii_help: 'Kantenrundung (in Pixel) der Oberfläche anpassen', radii_help: 'Kantenrundung (in Pixel) der Oberfläche anpassen',
@ -293,8 +293,8 @@ const en = {
settings: 'Settings', settings: 'Settings',
theme: 'Theme', theme: 'Theme',
presets: 'Presets', presets: 'Presets',
export_theme: 'Export current theme', export_theme: 'Save preset',
import_theme: 'Load saved theme', import_theme: 'Load preset',
theme_help: 'Use hex color codes (#rrggbb) to customize your color theme.', theme_help: 'Use hex color codes (#rrggbb) to customize your color theme.',
invalid_theme_imported: 'The selected file is not a supported Pleroma theme. No changes to your theme were made.', invalid_theme_imported: 'The selected file is not a supported Pleroma theme. No changes to your theme were made.',
radii_help: 'Set up interface edge rounding (in pixels)', radii_help: 'Set up interface edge rounding (in pixels)',
@ -1641,8 +1641,8 @@ const ru = {
set_new_profile_background: 'Загрузить новый фон профиля', set_new_profile_background: 'Загрузить новый фон профиля',
settings: 'Настройки', settings: 'Настройки',
theme: 'Тема', theme: 'Тема',
export_theme: 'Экспортировать текущую тему', export_theme: 'Сохранить Тему',
import_theme: 'Загрузить сохранённую тему', import_theme: 'Загрузить Тему',
presets: 'Пресеты', presets: 'Пресеты',
theme_help: 'Используйте шестнадцатеричные коды цветов (#rrggbb) для настройки темы.', theme_help: 'Используйте шестнадцатеричные коды цветов (#rrggbb) для настройки темы.',
radii_help: 'Округление краёв элементов интерфейса (в пикселях)', radii_help: 'Округление краёв элементов интерфейса (в пикселях)',