Fix continuous input bug

This commit is contained in:
Ramon Wenger 2018-12-04 13:24:36 +01:00
parent d46d0dde0a
commit 0080dfe0d7
2 changed files with 2506 additions and 2496 deletions

4978
client/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -58,7 +58,8 @@
</div>
</template>
<template v-if="!isStudent">
<router-link class="button" :to="{name: 'submissions', params: { id: assignment.id }}">Zu den Ergebnissen</router-link>
<router-link class="button" :to="{name: 'submissions', params: { id: assignment.id }}">Zu den Ergebnissen
</router-link>
</template>
</div>
</template>
@ -99,7 +100,8 @@
},
methods: {
_save: debounce(function () {
_save: debounce(function (submission) {
this.saving++;
this.$apollo.mutate({
mutation: UPDATE_ASSIGNMENT_MUTATION_WITH_SUCCESS,
variables: {
@ -119,15 +121,22 @@
id: updatedAssignment.id
};
const data = store.readQuery({query, variables});
data.assignment = Object.assign({}, updatedAssignment);
data.assignment = Object.assign({}, updatedAssignment, {
submission
});
store.writeQuery({query, variables, data});
}
} catch (e) {
console.error(e);
// Query did not exist in the cache, and apollo throws a generic Error. Do nothing
}
}
}).then(() => {
this.unsaved = false;
this.saving--;
if (this.saving === 0) {
this.unsaved = false;
}
});
}, 500),
saveInput: function (answer) {
@ -137,11 +146,11 @@
the updated entity, to prevent the UI to update when the user is entering his input
*/
this.assignment.submission.text = answer;
this._save();
this._save(this.assignment.submission);
},
changeDocumentUrl(documentUrl) {
this.assignment.submission.document = documentUrl;
this._save();
this._save(this.assignment.submission);
},
turnIn() {
this.$apollo.mutate({
@ -194,7 +203,8 @@
permissions: []
},
inputType: 'text',
unsaved: false
unsaved: false,
saving: 0
}
},
}