Update room color handling

This commit is contained in:
Ramon Wenger 2018-09-17 17:52:43 +02:00
parent fe59a65e87
commit 5cb71cd877
3 changed files with 46 additions and 18 deletions

View File

@ -1,14 +1,17 @@
<template> <template>
<div class="new-room"> <div class="new-room">
<div class="new-room__content"> <div class="new-room__content">
<h1 class="new-room__heading">Neues Board</h1> <h1 class="new-room__heading">Neues Board {{room.title}}</h1>
<h2 class="new-room__property-heading">Titel</h2> <h2 class="new-room__property-heading">Titel</h2>
<input class="skillbox-input new-room__input"> <input class="skillbox-input new-room__input" v-model="room.title">
<h2 class="new-room__property-heading">Beschreibung</h2> <h2 class="new-room__property-heading">Beschreibung</h2>
<textarea class="skillbox-textarea new-room__textarea"></textarea> <textarea class="skillbox-textarea new-room__textarea" v-model="room.description"></textarea>
<h2 class="new-room__property-heading">Farbe</h2> <h2 class="new-room__property-heading">Farbe</h2>
<room-colors></room-colors> <room-colors
:selected-color="room.appearance"
v-on:input="updateColor"
></room-colors>
</div> </div>
<div class="new-room__footer"> <div class="new-room__footer">
<button class="button button--primary new-room__save-button">Speichern</button> <button class="button button--primary new-room__save-button">Speichern</button>
@ -21,13 +24,33 @@
<script> <script>
import RoomColors from '@/components/rooms/RoomColors'; import RoomColors from '@/components/rooms/RoomColors';
const defaultColor = 'blue';
export default { export default {
components: { components: {
RoomColors RoomColors
}, },
data() {
return {
room: {
appearance: defaultColor,
title: '',
description: '',
userGroup: 1
}
}
},
methods: {
updateColor(newColor) {
this.room.appearance = newColor;
this.$store.dispatch('setSpecialContainerClass', newColor);
}
},
created() { created() {
this.$store.dispatch('setSpecialContainerClass', 'red'); this.$store.dispatch('setSpecialContainerClass', defaultColor);
}, },
beforeDestroy() { beforeDestroy() {

View File

@ -1,9 +1,12 @@
<template> <template>
<div class="room-colors"> <div class="room-colors">
<div v-for="color in colors" class="room-colors__color-wrapper" <div v-for="(color, index) in colors"
:class="{'room-colors__color-wrapper--selected': color.selected}"> :key="index"
class="room-colors__color-wrapper"
@click="$emit('input', color.name)"
:class="{'room-colors__color-wrapper--selected': selectedColor === color.name}">
<div class="room-colors__color" :class="'room-colors__color--' + color.name"> <div class="room-colors__color" :class="'room-colors__color--' + color.name">
<tick class="room-colors__selected-icon" v-if="color.selected"></tick> <tick class="room-colors__selected-icon" v-if="selectedColor === color.name"></tick>
</div> </div>
</div> </div>
</div> </div>
@ -13,12 +16,13 @@
import Tick from '@/components/icons/Tick'; import Tick from '@/components/icons/Tick';
export default { export default {
props: ['selected-color'],
data() { data() {
return { return {
colors: [ colors: [
{ {
name: 'yellow', name: 'yellow'
selected: true
}, },
{ {
name: 'blue' name: 'blue'

View File

@ -64,16 +64,17 @@
-ms-grid-rows: auto 32px 1fr; // 1 extra row for gap -ms-grid-rows: auto 32px 1fr; // 1 extra row for gap
-ms-grid-columns: 1fr; -ms-grid-columns: 1fr;
&--red { // todo: define a better name when usage is clear &--yellow {
background-color: $red; background-color: $color-accent-1;
} }
&--blue {
&--green { // todo: define a better name when usage is clear background-color: $color-accent-2;
background-color: $green;
} }
&--red {
&--brown { // todo: define a better name when usage is clear background-color: $color-accent-3;
background-color: $brown; }
&--green {
background-color: $color-accent-4;
} }
&__header { &__header {