Properly update question
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
This commit is contained in:
parent
50594f0a01
commit
491941a3e8
|
@ -135,6 +135,7 @@ export default {
|
||||||
questionId: answer.question_id,
|
questionId: answer.question_id,
|
||||||
text: answer.text,
|
text: answer.text,
|
||||||
})
|
})
|
||||||
|
console.debug('Created answer', answer)
|
||||||
|
|
||||||
// Was synced once, this is now up to date with the server
|
// Was synced once, this is now up to date with the server
|
||||||
delete answer.local
|
delete answer.local
|
||||||
|
|
|
@ -42,7 +42,8 @@
|
||||||
minlength="1"
|
minlength="1"
|
||||||
maxlength="256"
|
maxlength="256"
|
||||||
required
|
required
|
||||||
@input="onInput">
|
@input="onInput"
|
||||||
|
@keyup="onTitleChange">
|
||||||
<h3 v-else class="question__header-title" v-text="text" />
|
<h3 v-else class="question__header-title" v-text="text" />
|
||||||
<Actions class="question__header-menu" :force-menu="true">
|
<Actions class="question__header-menu" :force-menu="true">
|
||||||
<ActionButton icon="icon-delete" @click="onDelete">
|
<ActionButton icon="icon-delete" @click="onDelete">
|
||||||
|
@ -57,7 +58,12 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import axios from '@nextcloud/axios'
|
||||||
|
import debounce from 'debounce'
|
||||||
|
import { generateUrl } from '@nextcloud/router'
|
||||||
|
import { showError } from '@nextcloud/dialogs'
|
||||||
import { directive as ClickOutside } from 'v-click-outside'
|
import { directive as ClickOutside } from 'v-click-outside'
|
||||||
|
|
||||||
import Actions from '@nextcloud/vue/dist/Components/Actions'
|
import Actions from '@nextcloud/vue/dist/Components/Actions'
|
||||||
import ActionButton from '@nextcloud/vue/dist/Components/ActionButton'
|
import ActionButton from '@nextcloud/vue/dist/Components/ActionButton'
|
||||||
|
|
||||||
|
@ -117,6 +123,25 @@ export default {
|
||||||
onDelete() {
|
onDelete() {
|
||||||
this.$emit('delete')
|
this.$emit('delete')
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onTitleChange: debounce(function() {
|
||||||
|
this.saveQuestionProperty('text')
|
||||||
|
}, 200),
|
||||||
|
|
||||||
|
async saveQuestionProperty(key) {
|
||||||
|
try {
|
||||||
|
// TODO: add loading status feedback ?
|
||||||
|
await axios.post(generateUrl('/apps/forms/api/v1/question/update'), {
|
||||||
|
id: this.id,
|
||||||
|
keyValuePairs: {
|
||||||
|
[key]: this[key],
|
||||||
|
},
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
showError(t('forms', 'Error while saving question'))
|
||||||
|
console.error(error)
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -23,6 +23,7 @@ import Question from '../components/Questions/Question'
|
||||||
export default {
|
export default {
|
||||||
inheritAttrs: false,
|
inheritAttrs: false,
|
||||||
props: {
|
props: {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The question title
|
* The question title
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>
|
* @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>
|
||||||
*
|
*
|
||||||
* @author John Molakvoæ <skjnldsv@protonmail.com>
|
* @author John Molakvoæ <skjnldsv@protonmail.com>
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue