diff options
-rw-r--r-- | .gitattributes | 2 | ||||
-rw-r--r-- | HISTORY | 1 | ||||
-rw-r--r-- | framework/Web/UI/TClientScriptManager.php | 6 | ||||
-rw-r--r-- | tests/FunctionalTests/features/protected/pages/FocusControl.page | 46 | ||||
-rw-r--r-- | tests/FunctionalTests/features/protected/pages/FocusControl.php | 17 |
5 files changed, 70 insertions, 2 deletions
diff --git a/.gitattributes b/.gitattributes index 59fc1a0d..5ae95ff6 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1567,6 +1567,8 @@ tests/FunctionalTests/features/protected/controls/Layout.tpl -text tests/FunctionalTests/features/protected/pages/ColorPicker.page -text tests/FunctionalTests/features/protected/pages/FeatureList.page -text tests/FunctionalTests/features/protected/pages/FeatureList.php -text +tests/FunctionalTests/features/protected/pages/FocusControl.page -text +tests/FunctionalTests/features/protected/pages/FocusControl.php -text tests/FunctionalTests/features/protected/pages/I18N/BasicI18N.page -text tests/FunctionalTests/features/protected/pages/I18N/BasicI18N.php -text tests/FunctionalTests/features/protected/pages/I18N/Home.page -text @@ -2,6 +2,7 @@ Version 3.0.3 August 6, 2006 ============================ BUG: Ticket#264 - Typos in some exception throw statements (Knut) BUG: Ticket#268 - THttpResponse.redirect() may fail for some browsers (Qiang) +BUG: Ticket#271 - Page method setFocus doesn't work (Wei) BUG: Ticket#285 - NumberFormat Rounding Bug (Wei) BUG: Ticket#297 - THttpRequest::constructUrl() encoding bug about array GET parameters (Qiang) BUG: Ticket#320 - Typo in calling TDataList::setSelectedItemIndex and a bug in inserting wizard steps (Qiang) diff --git a/framework/Web/UI/TClientScriptManager.php b/framework/Web/UI/TClientScriptManager.php index 9a83c550..75effa50 100644 --- a/framework/Web/UI/TClientScriptManager.php +++ b/framework/Web/UI/TClientScriptManager.php @@ -194,10 +194,12 @@ class TClientScriptManager extends TApplicationComponent */ public function registerFocusControl($target) { - $this->registerPradoScript('prado'); + $this->registerPradoScript('effects'); if($target instanceof TControl) $target=$target->getClientID(); - $this->registerEndScript('prado:focus','Prado.Focus.setFocus("'.TJavaScript::quoteString($target).'");'); + $id = TJavaScript::quoteString($target); + $script = 'new Effect.ScrollTo("'.$id.'"); Prado.Element.focus("'.$id.'");'; + $this->registerEndScript('prado:focus',$script); } /** diff --git a/tests/FunctionalTests/features/protected/pages/FocusControl.page b/tests/FunctionalTests/features/protected/pages/FocusControl.page new file mode 100644 index 00000000..af414c3a --- /dev/null +++ b/tests/FunctionalTests/features/protected/pages/FocusControl.page @@ -0,0 +1,46 @@ +<com:TContent ID="Content">
+
+<com:TRadioButtonList ID="list">
+ <com:TListItem Text="Button 1" />
+ <com:TListItem Text="Button 2" />
+ <com:TListItem Text="Button 3" Selected="true"/>
+ <com:TListItem Text="Button 4" />
+ <com:TListItem Text="Button 5" />
+</com:TRadioButtonList>
+
+<com:TButton Text="Focus" OnClick="doFocus" />
+
+<p style="height: 400px; background-color: #fc0; font-size: 10em">
+a
+<com:TButton ID="button1" Text="Button 1" />
+</p>
+
+<p style="height: 400px; background-color: #fcc; font-size: 10em">
+b
+<com:TButton ID="button2" Text="Button 2" />
+</p>
+
+<p style="height: 400px; background-color: #ccf; font-size: 10em">
+c
+<com:TButton ID="button3" Text="Button 3" />
+</p>
+
+<p style="height: 400px; background-color: #cf0; font-size: 10em">
+d
+</p>
+
+<p style="height: 400px; background-color: #ffc; font-size: 10em">
+e
+<com:TButton ID="button4" Text="Button 4" />
+</p>
+
+<p style="height: 400px; background-color: #f0f; font-size: 10em">
+f
+</p>
+
+<p style="height: 400px; background-color: #0cf; font-size: 10em">
+g
+<com:TButton ID="button5" Text="Button 5" />
+</p>
+
+</com:TContent>
\ No newline at end of file diff --git a/tests/FunctionalTests/features/protected/pages/FocusControl.php b/tests/FunctionalTests/features/protected/pages/FocusControl.php new file mode 100644 index 00000000..d78f28c4 --- /dev/null +++ b/tests/FunctionalTests/features/protected/pages/FocusControl.php @@ -0,0 +1,17 @@ +<?php
+
+class FocusControl extends TPage
+{
+ function doFocus($sender, $param)
+ {
+ $selected = $this->list->SelectedIndex;
+ if($selected >= 0)
+ {
+ $id = "button".($selected+1);
+ $controlID = $this->{$id}->ClientID;
+ $this->ClientScript->registerFocusControl($controlID);
+ }
+ }
+}
+
+?>
\ No newline at end of file |