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