Update frontend error handling for school class form
This commit is contained in:
parent
90de44d084
commit
cff81d2419
|
|
@ -12,12 +12,10 @@ export default {
|
||||||
...me.schoolClasses,
|
...me.schoolClasses,
|
||||||
schoolClass
|
schoolClass
|
||||||
];
|
];
|
||||||
// me.schoolClasses.edges
|
|
||||||
const selectedClass = {
|
const selectedClass = {
|
||||||
id: schoolClass.id,
|
id: schoolClass.id,
|
||||||
__typename: 'SchoolClassNode'
|
__typename: 'SchoolClassNode'
|
||||||
};
|
};
|
||||||
//me.selectedClass
|
|
||||||
const data = {
|
const data = {
|
||||||
me: {
|
me: {
|
||||||
...me,
|
...me,
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
title="Klasse erfassen"
|
title="Klasse erfassen"
|
||||||
ok-text="Klasse erfassen"
|
ok-text="Klasse erfassen"
|
||||||
label-text="Name"
|
label-text="Name"
|
||||||
|
:error="error"
|
||||||
cancel-text="Abbrechen"
|
cancel-text="Abbrechen"
|
||||||
@input="updateName"
|
@input="updateName"
|
||||||
@cancel="cancel"
|
@cancel="cancel"
|
||||||
|
|
@ -16,14 +17,13 @@
|
||||||
import addSchoolClassMixin from '@/mixins/add-school-class';
|
import addSchoolClassMixin from '@/mixins/add-school-class';
|
||||||
|
|
||||||
import CREATE_CLASS_MUTATION from '@/graphql/gql/mutations/createClass.gql';
|
import CREATE_CLASS_MUTATION from '@/graphql/gql/mutations/createClass.gql';
|
||||||
import MY_SCHOOL_CLASS_QUERY from '@/graphql/gql/queries/mySchoolClass';
|
|
||||||
import JoinForm from '@/components/profile/JoinForm';
|
import JoinForm from '@/components/profile/JoinForm';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
mixins: [addSchoolClassMixin],
|
mixins: [addSchoolClassMixin],
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
JoinForm
|
JoinForm,
|
||||||
},
|
},
|
||||||
|
|
||||||
data: () => ({
|
data: () => ({
|
||||||
|
|
@ -35,11 +35,8 @@
|
||||||
updateName(event) {
|
updateName(event) {
|
||||||
this.name = event.target.value;
|
this.name = event.target.value;
|
||||||
this.error = '';
|
this.error = '';
|
||||||
// todo: display error
|
|
||||||
throw new Error('Not Implemented');
|
|
||||||
},
|
},
|
||||||
createClass(name) {
|
createClass(name) {
|
||||||
let self = this;
|
|
||||||
this.$apollo.mutate({
|
this.$apollo.mutate({
|
||||||
mutation: CREATE_CLASS_MUTATION,
|
mutation: CREATE_CLASS_MUTATION,
|
||||||
variables: {
|
variables: {
|
||||||
|
|
@ -47,15 +44,16 @@
|
||||||
name,
|
name,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
update(store, {data: {createSchoolClass: {schoolClass}}}) {
|
update: (store, {data: {createSchoolClass: {result}}}) => {
|
||||||
self.addSchoolClass(store, schoolClass);
|
if (result.__typename === 'DuplicateName') {
|
||||||
self.$router.push({
|
this.error = result.reason;
|
||||||
name: 'my-class',
|
} else {
|
||||||
});
|
this.addSchoolClass(store, result);
|
||||||
|
this.$router.push({
|
||||||
|
name: 'my-class',
|
||||||
|
});
|
||||||
|
}
|
||||||
},
|
},
|
||||||
refetchQueries: [{
|
|
||||||
query: MY_SCHOOL_CLASS_QUERY,
|
|
||||||
}],
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
cancel() {
|
cancel() {
|
||||||
|
|
@ -66,7 +64,7 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@import "@/styles/_variables.scss";
|
@import "~styles/helpers";
|
||||||
|
|
||||||
.create-class {
|
.create-class {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue