added the color picker for the states

create copys before editing the user, area, entity and state
This commit is contained in:
Torben Indorf
2020-02-16 12:30:03 +01:00
parent 4e1a51c823
commit b84983ccef
8 changed files with 109 additions and 39 deletions
+17 -10
View File
@@ -4,7 +4,7 @@
@click:outside="closeDialog">
<v-card class="pa-6 white">
<div class="headline text-center mb-6">
{{ selectedUser.id ? 'Benutzer bearbeiten' : 'Benutzer erstellen' }}
{{ userCopy.id ? 'Benutzer bearbeiten' : 'Benutzer erstellen' }}
</div>
<v-card-text>
<v-form class="d-flex flex-column">
@@ -13,7 +13,7 @@
name="firstName"
data-vv-as="Vorname"
v-validate="'required'"
v-model="selectedUser.firstName"/>
v-model="userCopy.firstName"/>
<span class="input-error text-center">{{ errors.first('firstName') }}</span>
</v-row>
<v-row class="d-flex flex-column">
@@ -21,7 +21,7 @@
name="lastName"
data-vv-as="Nachname"
v-validate="'required'"
v-model="selectedUser.lastName"/>
v-model="userCopy.lastName"/>
<span class="input-error text-center">{{ errors.first('lastName') }}</span>
</v-row>
<v-row class="d-flex flex-column">
@@ -29,18 +29,18 @@
name="email"
data-vv-as="E-Mail"
v-validate="'required'"
v-model="selectedUser.email"/>
v-model="userCopy.email"/>
<span class="input-error text-center">{{ errors.first('email') }}</span>
</v-row>
<v-row>
<v-checkbox label="Aktiv" v-model="selectedUser.active"/>
<v-checkbox label="Aktiv" v-model="userCopy.active"/>
</v-row>
</v-form>
</v-card-text>
<v-card-actions>
<v-btn color="error" @click="closeDialog">Abbrechen</v-btn>
<v-btn color="primary" @click="saveUser">
{{ selectedUser.id ? 'Benutzer speichern' : 'Benutzer erstellen' }}
{{ userCopy.id ? 'Benutzer speichern' : 'Benutzer erstellen' }}
</v-btn>
</v-card-actions>
</v-card>
@@ -48,7 +48,7 @@
</template>
<script lang="ts">
import {Component, Vue, Prop} from 'vue-property-decorator';
import {Component, Vue, Prop, Watch} from 'vue-property-decorator';
import {namespace} from 'vuex-class';
import User from '@/models/User';
@@ -63,6 +63,8 @@
@Prop({default: () => new User({})})
public selectedUser?: User;
public userCopy: User = new User({});
@UserStore.Action('createUserAction')
private createUserAction!: (userData: any) => Promise<User[]>;
@@ -73,13 +75,18 @@
this.$emit('closeDialog');
}
@Watch('selectedUser', {immediate: true})
private onUserChange() {
this.userCopy = this.selectedUser!.deepCopy();
}
private saveUser() {
this.$validator.validateAll().then(async (result) => {
if (result) {
if (this.selectedUser!.id) {
await this.editUserAction(this.selectedUser);
if (this.userCopy!.id) {
await this.editUserAction(this.userCopy);
} else {
await this.createUserAction(this.selectedUser);
await this.createUserAction(this.userCopy);
}
this.closeDialog();
} else {