]> BookStack Code Mirror - bookstack/blob - resources/js/components/ajax-delete-row.js
TS: Converted dom and keyboard nav services
[bookstack] / resources / js / components / ajax-delete-row.js
1 import {onSelect} from '../services/dom.ts';
2 import {Component} from './component';
3
4 export class AjaxDeleteRow extends Component {
5
6     setup() {
7         this.row = this.$el;
8         this.url = this.$opts.url;
9         this.deleteButtons = this.$manyRefs.delete;
10
11         onSelect(this.deleteButtons, this.runDelete.bind(this));
12     }
13
14     runDelete() {
15         this.row.style.opacity = '0.7';
16         this.row.style.pointerEvents = 'none';
17
18         window.$http.delete(this.url).then(resp => {
19             if (typeof resp.data === 'object' && resp.data.message) {
20                 window.$events.emit('success', resp.data.message);
21             }
22             this.row.remove();
23         }).catch(() => {
24             this.row.style.opacity = null;
25             this.row.style.pointerEvents = null;
26         });
27     }
28
29 }