From 4b75aab816dc373eb7b6ec554d058162b71d4c78 Mon Sep 17 00:00:00 2001 From: rr- Date: Sat, 30 Jul 2016 16:32:50 +0200 Subject: [PATCH] client/posts: implement exit confirmation --- client/js/controls/post_edit_sidebar_control.js | 11 +++++++++++ client/js/controls/tag_input_control.js | 1 + 2 files changed, 12 insertions(+) diff --git a/client/js/controls/post_edit_sidebar_control.js b/client/js/controls/post_edit_sidebar_control.js index c22eaec3..68915765 100644 --- a/client/js/controls/post_edit_sidebar_control.js +++ b/client/js/controls/post_edit_sidebar_control.js @@ -67,6 +67,17 @@ class PostEditSidebarControl extends events.EventTarget { this._post.addEventListener( 'changeThumbnail', e => this._evtPostThumbnailChange(e)); + + if (this._formNode) { + const inputNodes = this._formNode.querySelectorAll( + 'input, textarea'); + for (let node of inputNodes) { + node.addEventListener( + 'change', e => { + this.dispatchEvent(new CustomEvent('change')); + }); + } + } } _evtPostContentChange(e) { diff --git a/client/js/controls/tag_input_control.js b/client/js/controls/tag_input_control.js index 1b416ed9..1c06792e 100644 --- a/client/js/controls/tag_input_control.js +++ b/client/js/controls/tag_input_control.js @@ -139,6 +139,7 @@ class TagInputControl extends events.EventTarget { _evtTagsChanged(e) { this._sourceInputNode.value = this.tags.join(' '); + this._sourceInputNode.dispatchEvent(new CustomEvent('change')); } _evtTagAdded(e) {