From d4cab2e2e139095b95bfb2cae74ccb13ae4f91d1 Mon Sep 17 00:00:00 2001 From: uacaman <> Date: Thu, 10 Mar 2011 20:56:05 +0000 Subject: Issue 181: Events are now removed and added for every postback/callback --- .../source/prado/activecontrols/activedatepicker.js | 7 +++++++ .../Javascripts/source/prado/activecontrols/inlineeditor.js | 7 ++++++- framework/Web/Javascripts/source/prado/controls/controls.js | 5 +++++ framework/Web/Javascripts/source/prado/controls/slider.js | 11 +++++++++++ 4 files changed, 29 insertions(+), 1 deletion(-) (limited to 'framework/Web/Javascripts/source') diff --git a/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js b/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js index e96b63ec..68d0e429 100755 --- a/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js +++ b/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js @@ -13,6 +13,10 @@ Prado.WebUI.TActiveDatePicker = Class.extend(Prado.WebUI.TDatePicker, this.selectedDate = this.newDate(); this.positionMode = 'Bottom'; + + // Issue 181 + $(this.control).stopObserving(); + //which element to trigger to show the calendar if(this.options.Trigger) { @@ -24,6 +28,9 @@ Prado.WebUI.TActiveDatePicker = Class.extend(Prado.WebUI.TDatePicker, this.trigger = this.control; var triggerEvent = this.options.TriggerEvent || "focus"; } + + // Issue 181 + $(this.trigger).stopObserving(); // Popup position if(this.options.PositionMode == 'Top') diff --git a/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js b/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js index 547f09dc..6a6892cf 100644 --- a/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js +++ b/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js @@ -30,6 +30,8 @@ Prado.WebUI.TInPlaceTextBox = Base.extend( this.onclickListener = this.enterEditMode.bindAsEventListener(this); Event.observe(this.element, 'click', this.onclickListener); if (this.options.ExternalControl) + // Issue 181 + $(this.options.ExternalControl).stopObserving('click', this.onclickListener); Event.observe($(this.options.ExternalControl), 'click', this.onclickListener); }, @@ -127,7 +129,10 @@ Prado.WebUI.TInPlaceTextBox = Base.extend( this.editField.style.display="none"; this.element.parentNode.insertBefore(this.editField,this.element) - + + // Issue 181 + $(this.editField).stopObserving(); + //handle return key within single line textbox if(this.options.TextMode == 'SingleLine') { diff --git a/framework/Web/Javascripts/source/prado/controls/controls.js b/framework/Web/Javascripts/source/prado/controls/controls.js index 14853dca..dd19a1a7 100644 --- a/framework/Web/Javascripts/source/prado/controls/controls.js +++ b/framework/Web/Javascripts/source/prado/controls/controls.js @@ -6,12 +6,15 @@ Prado.WebUI.PostBackControl.prototype = { initialize : function(options) { + this._elementOnClick = null, //capture the element's onclick function this.element = $(options.ID); Prado.Registry.set(options.ID, this); if(this.element) { + // Issue 181 + this.element.stopObserving(); if(this.onInit) this.onInit(options); } @@ -196,6 +199,8 @@ Prado.WebUI.DefaultButton.prototype = { initialize : function(options) { + // Issue 181 + $(options['Panel']).stopObserving(); this.options = options; this._event = this.triggerEvent.bindEvent(this); Event.observe(options['Panel'], 'keydown', this._event); diff --git a/framework/Web/Javascripts/source/prado/controls/slider.js b/framework/Web/Javascripts/source/prado/controls/slider.js index 593e6e87..aebf3527 100644 --- a/framework/Web/Javascripts/source/prado/controls/slider.js +++ b/framework/Web/Javascripts/source/prado/controls/slider.js @@ -19,6 +19,13 @@ Prado.WebUI.TSlider = Class.extend(Prado.WebUI.PostBackControl, this.minimum = this.options.minimum || this.range.start; this.hiddenField=$(this.options.ID+'_1'); + // Issue 181 + this.element.stopObserving(); + this.track.stopObserving(); + this.handle.stopObserving(); + this.progress.stopObserving(); + this.hiddenField.stopObserving(); + // Will be used to align the handle onto the track, if necessary this.alignX = parseInt(this.options.alignX || - this.track.offsetLeft); this.alignY = parseInt(this.options.alignY || - this.track.offsetTop); @@ -54,6 +61,10 @@ Prado.WebUI.TSlider = Class.extend(Prado.WebUI.PostBackControl, Event.observe (this.track, "mousedown", this.eventMouseDown); if (this.progress) Event.observe (this.progress, "mousedown", this.eventMouseDown); + + // Issue 181 + document.stopObserving("mouseup", this.eventMouseUp); + document.stopObserving("mousemove", this.eventMouseMove); Event.observe (document, "mouseup", this.eventMouseUp); Event.observe (document, "mousemove", this.eventMouseMove); -- cgit v1.2.3