From 595d0c501abfd6dde230dd0a487081aa8a26921d Mon Sep 17 00:00:00 2001 From: YNH Webdev Date: Wed, 28 Aug 2013 15:57:16 +0200 Subject: [PATCH] Only callback if there is an event attached --- examples/widgetapp/widget.coffee | 6 ++++-- examples/widgetapp/widget.js | 8 ++++++-- library/server/wsf_html/webcontrol/wsf_button_control.e | 1 + library/server/wsf_html/webcontrol/wsf_text_control.e | 1 + 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/examples/widgetapp/widget.coffee b/examples/widgetapp/widget.coffee index 9b6e4988..14cd922e 100644 --- a/examples/widgetapp/widget.coffee +++ b/examples/widgetapp/widget.coffee @@ -31,7 +31,8 @@ class WSF_BUTTON_CONTROL extends WSF_CONTROL @$el.click ()-> self.click() click: ()-> - trigger_callback(@control_name, 'click') + if window.states[@control_name]['callback_click'] + trigger_callback(@control_name, 'click') update: (state) -> @$el.text(state.text) @@ -44,7 +45,8 @@ class WSF_TEXT_CONTROL extends WSF_CONTROL change: ()-> #update local state window.states[@control_name]['text'] = @$el.val() - trigger_callback(@control_name, 'change') + if window.states[@control_name]['callback_change'] + trigger_callback(@control_name, 'change') update: (state) -> @$el.val(state.text) diff --git a/examples/widgetapp/widget.js b/examples/widgetapp/widget.js index c04e6b3b..bdd91905 100644 --- a/examples/widgetapp/widget.js +++ b/examples/widgetapp/widget.js @@ -60,7 +60,9 @@ }; WSF_BUTTON_CONTROL.prototype.click = function() { - return trigger_callback(this.control_name, 'click'); + if (window.states[this.control_name]['callback_click']) { + return trigger_callback(this.control_name, 'click'); + } }; WSF_BUTTON_CONTROL.prototype.update = function(state) { @@ -89,7 +91,9 @@ WSF_TEXT_CONTROL.prototype.change = function() { window.states[this.control_name]['text'] = this.$el.val(); - return trigger_callback(this.control_name, 'change'); + if (window.states[this.control_name]['callback_change']) { + return trigger_callback(this.control_name, 'change'); + } }; WSF_TEXT_CONTROL.prototype.update = function(state) { diff --git a/library/server/wsf_html/webcontrol/wsf_button_control.e b/library/server/wsf_html/webcontrol/wsf_button_control.e index dbb47484..ebb1b97b 100644 --- a/library/server/wsf_html/webcontrol/wsf_button_control.e +++ b/library/server/wsf_html/webcontrol/wsf_button_control.e @@ -35,6 +35,7 @@ feature {WSF_PAGE_CONTROL, WSF_CONTROL} -- STATE MANAGEMENT do create Result.make Result.put (create {JSON_STRING}.make_json (text), create {JSON_STRING}.make_json ("text")) + Result.put (create {JSON_BOOLEAN}.make_boolean (attached click_event), create {JSON_STRING}.make_json ("callback_click")) end feature --EVENT HANDLING diff --git a/library/server/wsf_html/webcontrol/wsf_text_control.e b/library/server/wsf_html/webcontrol/wsf_text_control.e index 114c90d7..9af033fa 100644 --- a/library/server/wsf_html/webcontrol/wsf_text_control.e +++ b/library/server/wsf_html/webcontrol/wsf_text_control.e @@ -35,6 +35,7 @@ feature {WSF_PAGE_CONTROL, WSF_CONTROL} -- STATE MANAGEMENT do create Result.make Result.put (create {JSON_STRING}.make_json (text), create {JSON_STRING}.make_json ("text")) + Result.put (create {JSON_BOOLEAN}.make_boolean (attached change_event), create {JSON_STRING}.make_json ("callback_change")) end feature --EVENT HANDLING