diff options
7 files changed, 88 insertions, 7 deletions
diff --git a/.gitattributes b/.gitattributes index 8a52fca2..38ae357b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2572,6 +2572,10 @@ tests/FunctionalTests/tickets/protected/pages/Ticket587_reopened.php -text tests/FunctionalTests/tickets/protected/pages/Ticket591.page -text tests/FunctionalTests/tickets/protected/pages/Ticket591.php -text tests/FunctionalTests/tickets/protected/pages/Ticket593.page -text +tests/FunctionalTests/tickets/protected/pages/Ticket598.page -text +tests/FunctionalTests/tickets/protected/pages/Ticket598.php -text +tests/FunctionalTests/tickets/protected/pages/Ticket603.page -text +tests/FunctionalTests/tickets/protected/pages/Ticket603.php -text tests/FunctionalTests/tickets/protected/pages/Ticket605.page -text tests/FunctionalTests/tickets/protected/pages/Ticket606.page -text tests/FunctionalTests/tickets/protected/pages/Ticket609.page -text diff --git a/framework/Web/Javascripts/source/prado/activecontrols/activecontrols3.js b/framework/Web/Javascripts/source/prado/activecontrols/activecontrols3.js index 444f3ab2..28bd3fa9 100644 --- a/framework/Web/Javascripts/source/prado/activecontrols/activecontrols3.js +++ b/framework/Web/Javascripts/source/prado/activecontrols/activecontrols3.js @@ -213,12 +213,14 @@ Prado.WebUI.TTimeTriggeredCallback = Base.extend( start : function(id)
{
- Prado.WebUI.TTimeTriggeredCallback.timers[id].startTimer();
+ if(Prado.WebUI.TTimeTriggeredCallback.timers[id])
+ Prado.WebUI.TTimeTriggeredCallback.timers[id].startTimer();
},
stop : function(id)
{
- Prado.WebUI.TTimeTriggeredCallback.timers[id].stopTimer();
+ if(Prado.WebUI.TTimeTriggeredCallback.timers[id])
+ Prado.WebUI.TTimeTriggeredCallback.timers[id].stopTimer();
}
});
diff --git a/framework/Web/Javascripts/source/prado/activecontrols/ajax3.js b/framework/Web/Javascripts/source/prado/activecontrols/ajax3.js index 27537e8b..ccd8df12 100644 --- a/framework/Web/Javascripts/source/prado/activecontrols/ajax3.js +++ b/framework/Web/Javascripts/source/prado/activecontrols/ajax3.js @@ -319,8 +319,7 @@ Object.extend(Prado.CallbackRequest, */
dispatchNormalRequest : function(callback)
{
- //Logger.info("dispatching normal request");
- //new Prado.AjaxRequest(callback);
+ callback.options.postBody = callback._getPostData(),
callback.request(callback.url);
return true;
},
@@ -352,7 +351,7 @@ Object.extend(Prado.CallbackRequest, var self = Prado.CallbackRequest;
var pagestate = $(self.FIELD_CALLBACK_PAGESTATE);
var enabled = request.ActiveControl.EnablePageStateUpdate && request.ActiveControl.HasPriority;
- var aborted = self.currentRequest == null;
+ var aborted = typeof(self.currentRequest) == 'undefined' || self.currentRequest == null;
if(enabled && !aborted && pagestate)
{
var data = request.getBodyContentPart(self.PAGESTATE_HEADER);
@@ -393,19 +392,20 @@ Object.extend(Prado.CallbackRequest, callback.options.postBody = callback._getPostData(),
//callback.request = new Prado.AjaxRequest(callback);
- callback.request(callback.url);
callback.timeout = setTimeout(function()
{
//Logger.warn("priority timeout");
self.abortRequest(callback.id);
},callback.ActiveControl.RequestTimeOut);
+ callback.request(callback.url);
//Logger.debug("dispatched "+self.currentRequest.id + " ...")
},
endCurrentRequest : function()
{
var self = Prado.CallbackRequest;
- clearTimeout(self.currentRequest.timeout);
+ if(typeof(self.currentRequest) != 'undefined' && self.currentRequest != null)
+ clearTimeout(self.currentRequest.timeout);
self.currentRequest=null;
},
diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket598.page b/tests/FunctionalTests/tickets/protected/pages/Ticket598.page new file mode 100644 index 00000000..7d618ff1 --- /dev/null +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket598.page @@ -0,0 +1,17 @@ +<com:TContent ID="Content">
+
+Time : <com:TActiveLabel id="Lbl"/><br/>
+
+<com:TActiveButton OnCallback="startBigTask" Text="Start Big Task" ClientSide.HasPriority="false">
+ <prop:ClientSide.OnLoading>
+ Prado.WebUI.TTimeTriggeredCallback.start('<%= $this->Timer->ClientID %>')
+ </prop:ClientSide.OnLoading>
+ <prop:ClientSide.OnComplete>
+ Prado.WebUI.TTimeTriggeredCallback.stop('<%= $this->Timer->ClientID %>')
+ </prop:ClientSide.OnComplete>
+</com:TActiveButton>
+
+<com:TTimeTriggeredCallback Id="Timer" Interval="0.5" OnCallback="updateLbl" StartTimerOnLoad="false"/>
+
+
+</com:TContent>
\ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket598.php b/tests/FunctionalTests/tickets/protected/pages/Ticket598.php new file mode 100644 index 00000000..0456725f --- /dev/null +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket598.php @@ -0,0 +1,19 @@ +<?php
+Prado::using('System.Web.UI.ActiveControls.*');
+class Ticket598 extends TPage
+{
+public function onLoad ($param) {
+ parent::onLoad($param);
+ if (!$this->isPostBack and !$this->isCallBack) {
+ $this->Lbl->setText(date("h:m:s"));
+ }
+ }
+ public function startBigTask ($sender, $param) {
+ sleep(10); // Simulate task
+ }
+
+ public function updateLbl($sender, $param) {
+ $this->Lbl->SetText(date("h:m:s"));
+ }
+}
+?>
\ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket603.page b/tests/FunctionalTests/tickets/protected/pages/Ticket603.page new file mode 100644 index 00000000..d5023adc --- /dev/null +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket603.page @@ -0,0 +1,9 @@ +<com:TContent ID="Content">
+
+<com:TActiveButton ID="switchContentTypeButton"
+ Text="change" onClick="switchContentTypeClicked" onCallBack="switchContentTypeCallback" />
+<com:TActivePanel ID="ContentPanel" >
+ <com:THtmlArea ID="EditHtmlTextBox" />
+</com:TActivePanel>
+
+</com:TContent>
\ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket603.php b/tests/FunctionalTests/tickets/protected/pages/Ticket603.php new file mode 100644 index 00000000..6af0cf6d --- /dev/null +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket603.php @@ -0,0 +1,30 @@ +<?php
+
+Prado::using('System.Web.UI.ActiveControls.*');
+
+class Ticket603 extends TPage
+{
+ protected $_isHtml;
+
+ public function onLoad($param) {
+ parent::onLoad($param);
+ $this->_isHtml = true;
+ }
+
+ public function switchContentTypeClicked( $sender, $param ) {
+ $this->_isHtml = !$this->_isHtml;
+ if ( $this->_isHtml ) {
+ $this->EditHtmlTextBox->EnableVisualEdit = true;
+ $this->EditHtmlTextBox->Text = '<b>somehtml</b>';
+ } else {
+ $this->EditHtmlTextBox->EnableVisualEdit = false;
+ $this->EditHtmlTextBox->Text = 'plai bla bla';
+ }
+ }
+
+ public function switchContentTypeCallback( $sender, $param ) {
+ $this->ContentPanel->render( $param->NewWriter );
+ }
+}
+
+?>
\ No newline at end of file |