Skip to content

Instantly share code, notes, and snippets.

@carstenhag
Last active April 19, 2019 20:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save carstenhag/28f564bbc467d84392344b707f1ee34a to your computer and use it in GitHub Desktop.
Save carstenhag/28f564bbc467d84392344b707f1ee34a to your computer and use it in GitHub Desktop.
<template lang="pug">
b-button(v-if="!newProjectFormVisible" variant="secondary" @click="showNewProjectForm()") Projekt Hinzufügen
form.new-project-form(v-else)
input(v-model="newProjectName" type="text" maxlength="20" required)
b-button(variant="primary" @click="createNewProject()") Projekt Hinzufügen
b-button(variant="tertiary" @click="abortNewProject()") Abbrechen
</template>
<script lang="ts">
import Vue from 'vue';
export default class Sidebar extends Vue {
private newProjectFormVisible = false;
private newProjectName = '';
private showNewProjectForm() {
this.newProjectFormVisible = true;
}
private abortNewProject() {
this.newProjectFormVisible = false;
this.newProjectName = '';
}
private createNewProject() {
this.newProjectFormVisible = false;
// create new project
this.newProjectName = '';
}
}
</script>
<template lang="pug">
.sidebar.w-25
b-button.mt-2(v-if="!newProjectFormVisible" variant="secondary" @click="showNewProjectForm()") Projekt Hinzufügen
.new-project-form.mt-2(v-if="newProjectFormVisible")
input(v-model="newProjectColor" type='color')
input.mb-1(v-model.trim="newProjectName" type="text" maxlength="20")
b-button(variant="primary" @click="createNewProject()" :disabled="newProjectName && newProjectName.length === 0") Hinzufügen
b-button(variant="tertiary" @click="abortNewProject()") Abbrechen
</template>
<script lang="ts">
import Vue from 'vue';
export default class Sidebar extends Vue {
public newProjectFormVisible: boolean = false;
public newProjectName: string = '';
public newProjectColor: string = '#e66465';
public showNewProjectForm() {
this.newProjectFormVisible = true;
}
public abortNewProject() {
this.newProjectFormVisible = false;
this.newProjectName = '';
}
public createNewProject() {
this.newProjectFormVisible = false;
this.$store.dispatch({type: 'createProject', payload: {name: this.newProjectName, color: this.newProjectColor}});
this.newProjectName = '';
}
}
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment