Sharkey/src/client/app/common/views/widgets/memo.vue

106 lines
1.9 KiB
Vue
Raw Normal View History

2018-05-27 13:39:20 +00:00
<template>
<div class="mkw-memo">
2019-02-15 06:35:52 +00:00
<ui-container :show-header="!props.compact">
2019-02-18 02:13:56 +00:00
<template #header><fa :icon="['far', 'sticky-note']"/>{{ $t('title') }}</template>
2018-05-27 13:39:20 +00:00
<div class="mkw-memo--body">
<textarea v-model="text" :placeholder="$t('placeholder')" @input="onChange"></textarea>
<button @click="saveMemo" :disabled="!changed">{{ $t('save') }}</button>
2018-05-27 13:39:20 +00:00
</div>
2019-02-15 06:35:52 +00:00
</ui-container>
2018-05-27 13:39:20 +00:00
</div>
</template>
<script lang="ts">
import define from '../../define-widget';
import i18n from '../../../i18n';
2018-05-27 13:39:20 +00:00
export default define({
name: 'memo',
props: () => ({
compact: false
})
}).extend({
i18n: i18n('common/views/widgets/memo.vue'),
2018-05-27 13:39:20 +00:00
data() {
return {
text: null,
changed: false
};
},
created() {
this.text = this.$store.state.settings.memo;
this.$watch('$store.state.settings.memo', text => {
this.text = text;
});
},
methods: {
func() {
this.props.compact = !this.props.compact;
this.save();
},
onChange() {
this.changed = true;
},
saveMemo() {
this.$store.dispatch('settings/set', {
key: 'memo',
value: this.text
});
this.changed = false;
}
}
});
</script>
<style lang="stylus" scoped>
2018-09-28 10:59:19 +00:00
.mkw-memo
2018-05-27 13:39:20 +00:00
.mkw-memo--body
padding-bottom 28px + 16px
> textarea
display block
width 100%
max-width 100%
min-width 100%
padding 16px
2018-09-28 10:59:19 +00:00
color var(--inputText)
2018-09-26 11:28:13 +00:00
background var(--face)
2018-05-27 13:39:20 +00:00
border none
2018-12-30 05:00:57 +00:00
border-bottom solid var(--lineWidth) var(--faceDivider)
2018-05-29 19:46:50 +00:00
border-radius 0
2018-05-27 13:39:20 +00:00
> button
display block
position absolute
bottom 8px
right 8px
margin 0
padding 0 10px
height 28px
2018-09-26 11:19:35 +00:00
color var(--primaryForeground)
background var(--primary) !important
2018-05-27 13:39:20 +00:00
outline none
border none
border-radius 4px
transition background 0.1s ease
cursor pointer
&:hover
2018-09-26 11:19:35 +00:00
background var(--primaryLighten10) !important
2018-05-27 13:39:20 +00:00
&:active
2018-09-26 11:19:35 +00:00
background var(--primaryDarken10) !important
2018-05-27 13:39:20 +00:00
transition background 0s ease
&:disabled
opacity 0.7
cursor default
</style>