aboutsummaryrefslogtreecommitdiff
path: root/resources/vue
diff options
context:
space:
mode:
authorRon Lucke <lucke@elan-ev.de>2025-11-20 18:52:57 +0100
committerRon Lucke <lucke@elan-ev.de>2025-11-20 18:52:57 +0100
commit053e800928c5d69d565b08d3b87ec25ff9ec6408 (patch)
tree5cb8849ca72ac5e2e088fd38033657418de273cb /resources/vue
parent77a5a76cb9d59c2802c50e9c6d281e049acd8f6b (diff)
Lange Wiki-Seiten führen zu starker Eingabeverzögerung
Closes #5973 Merge request studip/studip!4581
Diffstat (limited to 'resources/vue')
-rw-r--r--resources/vue/apps/WikiEditor.vue26
1 files changed, 14 insertions, 12 deletions
diff --git a/resources/vue/apps/WikiEditor.vue b/resources/vue/apps/WikiEditor.vue
index 30f9fd1..dda34ba 100644
--- a/resources/vue/apps/WikiEditor.vue
+++ b/resources/vue/apps/WikiEditor.vue
@@ -20,7 +20,7 @@
<div></div>
<label>
- <input type="checkbox" v-model="autosave" :disabled="storingAutosave">
+ <input type="checkbox" v-model="autosave" :disabled="storingAutosave" />
{{ $gettext('Änderungen automatisch speichern') }}
</label>
<p class="last-save-date">
@@ -188,7 +188,7 @@ export default {
},
delegateEditMode(user_id) {
const url = STUDIP.URLHelper.getURL(
- `dispatch.php/course/wiki/delegate_edit_mode/${this.pageId}/${user_id}`,
+ `dispatch.php/course/wiki/delegate_edit_mode/${this.pageId}/${user_id}`
);
$.post(url).done(() => {
this.isEditing = false;
@@ -210,6 +210,7 @@ export default {
};
if (this.autosave && this.isChanged) {
+ this.content = this.editor.getData();
data.content = this.content;
this.isChanged = false;
}
@@ -230,18 +231,18 @@ export default {
},
saveWikiPage() {
this.toggleSecurityHandler(false);
+ this.content = this.editor.getData();
this.$refs.form.submit();
- }
+ },
},
mounted() {
const textarea = this.$refs['wiki_editor'];
STUDIP.wysiwyg.replace(textarea).then((editor) => {
editor.model.document.on('change:data', () => {
- const currentData = editor.getData();
-
- this.isChanged = currentData !== this.content;
- this.content = currentData;
+ if (!this.isChanged) {
+ this.isChanged = true;
+ }
});
if (this.isEditing) {
@@ -269,7 +270,7 @@ export default {
this.editor.setData(content.wysiwyg);
}
},
- () => this.getUpdaterData(),
+ () => this.getUpdaterData()
);
},
watch: {
@@ -284,16 +285,17 @@ export default {
const data = {
id,
type: 'config-values',
- attributes: { value: current }
+ attributes: { value: current },
};
- STUDIP.jsonapi.withPromises()
+ STUDIP.jsonapi
+ .withPromises()
.patch(`config-values/${id}`, { data: { data } })
- .then(response => {
+ .then((response) => {
this.autosave = response.data.attributes.value;
this.storingAutosave = false;
});
- }
+ },
},
};
</script>