diff options
author | Jens Klaer <kj.landwehr.software@gmail.com> | 2015-10-27 16:58:50 +0100 |
---|---|---|
committer | Jens Klaer <kj.landwehr.software@gmail.com> | 2015-10-27 16:58:50 +0100 |
commit | 67f8a9c87ca327619d3469aaae4bc1b0da441628 (patch) | |
tree | 6edc081ef2b074e2b50f790661917780521545c5 /framework/Web/UI/ActiveControls/TCallbackClientScript.php | |
parent | fd76b5617e3c136be2f8b5374e7629d2bea77070 (diff) |
calling replace on clientside will now either replace the whole element (like before) or optionally just replace its content
this is needed for TJuiDialog (maybe for other jqueryui controls too)
because if the element (in case of TJuiDialog the div panel) will be
replaced, jqueryui will clean up by calling destroy on dom element
removal causing the replaceWith to fail because the parent node is
already removed when replacing the original element with the new
content. to avoid this, only the inner content will be replaced which is
now controlled by an optional parameter for the clientscript replace
method.
Diffstat (limited to 'framework/Web/UI/ActiveControls/TCallbackClientScript.php')
-rw-r--r-- | framework/Web/UI/ActiveControls/TCallbackClientScript.php | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/framework/Web/UI/ActiveControls/TCallbackClientScript.php b/framework/Web/UI/ActiveControls/TCallbackClientScript.php index 82f597bb..71f8f63e 100644 --- a/framework/Web/UI/ActiveControls/TCallbackClientScript.php +++ b/framework/Web/UI/ActiveControls/TCallbackClientScript.php @@ -411,14 +411,14 @@ class TCallbackClientScript extends TApplicationComponent * a TControl component, its rendered method will be called and its contents * will be used for replacement. * @param TControl control element or HTML element id. - * @param string HTML fragement or the control to be rendered - * @param string provide a custom boundary. + * @param string HTML fragement or the control to be rendered. + * @param boolean whether to fully replace the element or just its inner content. * @see insertAbout * @see insertBelow * @see insertBefore * @see insertAfter */ - protected function replace($element, $content, $boundary=null) + protected function replace($element, $content, $self) { if($content instanceof TControl) { @@ -430,20 +430,24 @@ class TCallbackClientScript extends TApplicationComponent $boundary = $this->getResponseContentBoundary($content); $content = null; } + else + $boundary = null; - $this->callClientFunction('Prado.Element.replace', array($element, $content, $boundary)); + $this->callClientFunction('Prado.Element.replace', array($element, $content, $boundary, $self)); } /** * Replace the content of an element with new content contained in writer. * @param TControl control element or HTML element id. - * @param string HTML fragement or the control to be rendered + * @param string HTML fragement or the control to be rendered. + * @param boolean whether to fully replace the element or just its inner content, defaults to true. */ - public function replaceContent($element,$content) + public function replaceContent($element, $content, $self=true) { - $this->replace($element, $content); + $this->replace($element, $content, $self); } + /** * Evaluate a block of javascript enclosed in a boundary. * @param THtmlWriter writer for the content. |