Remove school class select from new room form
This commit is contained in:
parent
34155d7c02
commit
07a7079fdf
|
|
@ -83,4 +83,52 @@ describe('The Rooms Page', () => {
|
||||||
cy.getByDataCy('room-widget').should('have.length', 1);
|
cy.getByDataCy('room-widget').should('have.length', 1);
|
||||||
cy.get('[data-cy=add-room]').should('not.exist');
|
cy.get('[data-cy=add-room]').should('not.exist');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it.only('adds a room as teacher', () => {
|
||||||
|
const getRoom = (title, appearance, description) => {
|
||||||
|
let id = title.toLowerCase().replace(' ', '-');
|
||||||
|
return {
|
||||||
|
id,
|
||||||
|
slug: id,
|
||||||
|
title: title,
|
||||||
|
entryCount: 3,
|
||||||
|
appearance: appearance,
|
||||||
|
description: description,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
let rooms = [
|
||||||
|
getRoom('First Room', 'blue', 'Some description')
|
||||||
|
];
|
||||||
|
|
||||||
|
const operations = {
|
||||||
|
MeQuery: getMinimalMe({isTeacher: true}),
|
||||||
|
RoomsQuery() {
|
||||||
|
return {
|
||||||
|
rooms: {
|
||||||
|
edges: rooms.map(room => ({node: room})),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
AddRoom({input: {room: {title, appearance, description}}}) {
|
||||||
|
const room = getRoom(title, appearance, description);
|
||||||
|
rooms.push(room);
|
||||||
|
return {
|
||||||
|
addRoom: {
|
||||||
|
room,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
cy.mockGraphqlOps({
|
||||||
|
operations,
|
||||||
|
});
|
||||||
|
cy.visit('/rooms');
|
||||||
|
cy.getByDataCy('room-widget').should('have.length', 1);
|
||||||
|
cy.getByDataCy('add-room').click();
|
||||||
|
cy.getByDataCy('page-form-input-titel').type('Strg F');
|
||||||
|
cy.getByDataCy('school-class-select').should('not.exist');
|
||||||
|
cy.getByDataCy('color-select').eq(2).click();
|
||||||
|
cy.getByDataCy('room-form-save').click();
|
||||||
|
cy.getByDataCy('room-widget').should('have.length', 2);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
:key="index"
|
:key="index"
|
||||||
:class="{'color-chooser__color-wrapper--selected': selectedColor === color.name}"
|
:class="{'color-chooser__color-wrapper--selected': selectedColor === color.name}"
|
||||||
class="color-chooser__color-wrapper"
|
class="color-chooser__color-wrapper"
|
||||||
|
data-cy="color-select"
|
||||||
v-for="(color, index) in colors"
|
v-for="(color, index) in colors"
|
||||||
@click="$emit('input', color.name)">
|
@click="$emit('input', color.name)">
|
||||||
<div
|
<div
|
||||||
|
|
|
||||||
|
|
@ -12,25 +12,6 @@
|
||||||
label="Beschreibung"
|
label="Beschreibung"
|
||||||
type="textarea"/>
|
type="textarea"/>
|
||||||
|
|
||||||
<label
|
|
||||||
class="room-form__property-heading"
|
|
||||||
for="room-class">Klasse</label>
|
|
||||||
<select
|
|
||||||
v-model="localRoom.schoolClass"
|
|
||||||
class="skillbox-input room-form__input"
|
|
||||||
id="room-class"
|
|
||||||
>
|
|
||||||
<option
|
|
||||||
:value="{}"
|
|
||||||
disabled
|
|
||||||
hidden>Klasse wählen</option>
|
|
||||||
<option
|
|
||||||
:key="schoolClass.id"
|
|
||||||
:value="schoolClass"
|
|
||||||
v-for="schoolClass in schoolClasses"
|
|
||||||
>{{ schoolClass.name }}
|
|
||||||
</option>
|
|
||||||
</select>
|
|
||||||
<h2 class="room-form__property-heading">Farbe</h2>
|
<h2 class="room-form__property-heading">Farbe</h2>
|
||||||
<color-chooser
|
<color-chooser
|
||||||
:selected-color="localRoom.appearance"
|
:selected-color="localRoom.appearance"
|
||||||
|
|
@ -38,9 +19,8 @@
|
||||||
/>
|
/>
|
||||||
<template slot="footer">
|
<template slot="footer">
|
||||||
<button
|
<button
|
||||||
:class="{'button--disabled': noClassSelected}"
|
|
||||||
:disabled="noClassSelected"
|
|
||||||
type="submit"
|
type="submit"
|
||||||
|
data-cy="room-form-save"
|
||||||
class="button button--primary room-form__save-button"
|
class="button button--primary room-form__save-button"
|
||||||
>Speichern
|
>Speichern
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -75,15 +55,6 @@
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
computed: {
|
|
||||||
schoolClasses() {
|
|
||||||
return this.$getRidOfEdges(this.me.schoolClasses);
|
|
||||||
},
|
|
||||||
noClassSelected() {
|
|
||||||
return this.localRoom.schoolClass.id === undefined;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
created() {
|
created() {
|
||||||
this.$store.dispatch('setSpecialContainerClass', this.localRoom.appearance);
|
this.$store.dispatch('setSpecialContainerClass', this.localRoom.appearance);
|
||||||
},
|
},
|
||||||
|
|
@ -108,8 +79,7 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@import "@/styles/_variables.scss";
|
@import "~styles/helpers";
|
||||||
@import "@/styles/_mixins.scss";
|
|
||||||
|
|
||||||
.room-form {
|
.room-form {
|
||||||
&__property-heading {
|
&__property-heading {
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@
|
||||||
if (data.rooms) {
|
if (data.rooms) {
|
||||||
data.rooms.edges.push({
|
data.rooms.edges.push({
|
||||||
node: room,
|
node: room,
|
||||||
__typename: 'RoomNode'
|
__typename: 'RoomNodeEdge'
|
||||||
});
|
});
|
||||||
store.writeQuery({query: ROOMS_QUERY, data});
|
store.writeQuery({query: ROOMS_QUERY, data});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -57,20 +57,16 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
apollo: {
|
apollo: {
|
||||||
modules: {
|
room: {
|
||||||
query: ROOM_ENTRIES_QUERY,
|
query: ROOM_ENTRIES_QUERY,
|
||||||
variables() {
|
variables() {
|
||||||
return {
|
return {
|
||||||
slug: this.slug
|
slug: this.slug
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
manual: true,
|
update({room}) {
|
||||||
// todo: do we really need manual here? update should do the trick too
|
this.$store.dispatch('setSpecialContainerClass', room.appearance);
|
||||||
result({data, loading, networkStatus}) {
|
return this.$getRidOfEdges(room);
|
||||||
if (!loading) {
|
|
||||||
this.room = Object.assign({}, this.$getRidOfEdges(data).room);
|
|
||||||
this.$store.dispatch('setSpecialContainerClass', this.room.appearance);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
pollInterval: 5000,
|
pollInterval: 5000,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue