12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <script>
- import REST from '@api/rest-axios'
- import { mapActions, mapState } from 'pinia'
- import { UserStore } from '@stores/user'
- export default {
- props: {
- label: String,
- data: Object
- },
- // emits: ['returned'],
- data(){
- return {
-
- }
- },
- computed: {
- ...mapState(UserStore,['csrf_token']),
- },
- created () {
- console.log('ContentEditable created');
- },
- mounted () {
- },
- methods: {
- onInput(e){
- // console.log('onInput checkbox e', e);
- let checked = e.target.checked;
- // console.log('onInput checkbox checked', checked);
- this.save(checked)
- },
- save(checked){
- // console.log('save csrf_token', this.csrf_token);
- const params = {
- type: this.data.bundle,
- nid: [{"value":this.data.nid}],
- [this.data.field]: {value: checked}
- };
- const configs = {
- headers: {'X-CSRF-Token': this.csrf_token}
- };
- REST.patch(`/node/${this.data.nid}?_format=json`, params, configs)
- .then(({ data }) => {
- console.log('user REST post node data', data)
- // TODO if success update the data in pinia
- })
- .catch(error => {
- console.warn(`Issue with patch node ${this.data.bundle}`, error)
- Promise.reject(error)
- })
- }
- },
- }
- </script>
- <template>
- <section class="editable">
- <label><input type="checkbox" @input="onInput"> {{ label }}</label>
- </section>
- </template>
|