summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortof <>2008-04-17 17:18:25 +0000
committertof <>2008-04-17 17:18:25 +0000
commitb38c19252593b2fea1ad2597d587741fe48f1c67 (patch)
treec8d01a58a2404f432882472c79ffb73485eb5220
parent91dd9ff8da6a2f8260d184da167e9ed6b45a6b02 (diff)
Implemented #745
-rw-r--r--.gitattributes1
-rw-r--r--HISTORY1
-rw-r--r--framework/Web/UI/WebControls/TWizard.php19
-rwxr-xr-xtests/FunctionalTests/tickets/protected/pages/Ticket745.page86
-rwxr-xr-xtests/FunctionalTests/tickets/protected/pages/Ticket745.php11
-rw-r--r--tests/FunctionalTests/tickets/tests/Ticket745TestCase.php18
6 files changed, 134 insertions, 2 deletions
diff --git a/.gitattributes b/.gitattributes
index 525847be..9753fefb 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -3021,6 +3021,7 @@ tests/FunctionalTests/tickets/protected/pages/Ticket719.page -text
tests/FunctionalTests/tickets/protected/pages/Ticket72.page -text
tests/FunctionalTests/tickets/protected/pages/Ticket72.php -text
tests/FunctionalTests/tickets/protected/pages/Ticket722.page -text
+tests/FunctionalTests/tickets/protected/pages/Ticket745.page -text
tests/FunctionalTests/tickets/protected/pages/Ticket769.page -text
tests/FunctionalTests/tickets/protected/pages/Ticket785.page -text
tests/FunctionalTests/tickets/protected/pages/Ticket828.page -text
diff --git a/HISTORY b/HISTORY
index 4fd0f986..e3107577 100644
--- a/HISTORY
+++ b/HISTORY
@@ -35,6 +35,7 @@ CHG: Ticket#755 - Upgraded to Prototype 1.6 and Scriptaculous 1.8 (j, Christophe
ENH: Ticket#722 - Added Read Only capabilities to TInPlaceTextBox (Christophe)
ENH: Ticket#741 - Added CDbConnection.currentTransaction property (Qiang)
ENH: Ticket#743 - Added status code header in HTTP response when in error (Qiang)
+ENH: Ticket#745 - TWizard action MoveTo - allow specify step ID's (Christophe)
ENH: Ticket#757 - TDateFormat and TNumberFormat now implement IDataRenderer (Qiang)
ENH: Ticket#783 - Added date/time type support to soap implementation (Hongliang)
ENH: Active Record supports multiple foreign references of the same table (Wei)
diff --git a/framework/Web/UI/WebControls/TWizard.php b/framework/Web/UI/WebControls/TWizard.php
index e8d6620d..e9c27708 100644
--- a/framework/Web/UI/WebControls/TWizard.php
+++ b/framework/Web/UI/WebControls/TWizard.php
@@ -1391,8 +1391,23 @@ class TWizard extends TWebControl implements INamingContainer
else if(strcasecmp($command,self::CMD_MOVETO)===0)
{
if($this->_cancelNavigation) // may be set in onSideBarButtonClick
- $navParam->setCancelNavigation(true);
- $navParam->setNextStepIndex(TPropertyValue::ensureInteger($param->getCommandParameter()));
+ $navParam->setCancelNavigation(true);
+ $requestedStep=$param->getCommandParameter();
+ if (!is_numeric($requestedStep))
+ {
+ $requestedIndex=-1;
+ foreach ($this->getWizardSteps() as $index=>$step)
+ if ($step->getId()===$requestedStep)
+ {
+ $requestedIndex=$index;
+ break;
+ }
+ if ($requestedIndex<0)
+ throw new TConfigurationException('wizard_step_invalid');
+ }
+ else
+ $requestedIndex=TPropertyValue::ensureInteger($requestedStep);
+ $navParam->setNextStepIndex($requestedIndex);
$handled=true;
}
diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket745.page b/tests/FunctionalTests/tickets/protected/pages/Ticket745.page
new file mode 100755
index 00000000..7bf583fb
--- /dev/null
+++ b/tests/FunctionalTests/tickets/protected/pages/Ticket745.page
@@ -0,0 +1,86 @@
+<com:TContent ID="Content">
+
+<h2>Customized Wizard Template Sample</h2>
+
+<com:TWizard ID="Wizard1"
+ BackColor="OldLace"
+ Width="400px"
+ SideBarStyle.Width="120px"
+ StepStyle.BackColor="#FFFBD6"
+ HeaderStyle.BackColor="Moccasin"
+ NavigationStyle.BackColor="PaleGoldenrod"
+ OnActiveStepChanged="wizardCompleted" >
+
+ <prop:HeaderTemplate>
+ <i>Header Template</i>
+ <br/>
+ <b>Step <%= $this->Parent->ActiveStepIndex+1 %> of 3</b>
+ </prop:HeaderTemplate>
+
+ <prop:SideBarTemplate>
+ <i>SideBar Template</i>
+ <br/>
+ <com:TDataList ID="SideBarList">
+ <prop:ItemTemplate>
+ <com:TButton ID="SideBarButton" />
+ </prop:ItemTemplate>
+ <prop:SelectedItemTemplate>
+ <com:TButton ID="SideBarButton" Font.Bold="true" />
+ </prop:SelectedItemTemplate>
+ </com:TDataList>
+ </prop:SideBarTemplate>
+
+ <prop:StartNavigationTemplate>
+ <com:TLinkButton CommandName="NextStep" Text="Next &gt;" />&nbsp;||&nbsp;
+ <com:TLinkButton CommandName="MoveTo" CommandParameter="WizardStep3" Text="Go to step 3"/>
+ <br/>
+ <i>Start Navigation Template</i>
+ </prop:StartNavigationTemplate>
+
+ <prop:StepNavigationTemplate>
+ <com:TLinkButton CausesValidation="False" CommandName="PreviousStep" Text="&lt; Previous" />
+ <com:TLinkButton CommandName="NextStep" Text="Next &gt;" />
+ <br/>
+ <i>Step Navigation Template</i>
+ </prop:StepNavigationTemplate>
+
+ <prop:FinishNavigationTemplate>
+ All navigation buttons are removed.
+ <br/>
+ <i>Step Navigation Template</i>
+ </prop:FinishNavigationTemplate>
+
+ <com:TWizardStep ID="WizardStep1" Title="Step 1">
+ <i>Wizard Step Content</i>
+ <br/><br/>
+ Your favorite color:
+ <com:TDropDownList ID="DropDownList1">
+ <com:TListItem Value="Red" />
+ <com:TListItem Value="Blue" />
+ <com:TListItem Value="Green" />
+ <com:TListItem Value="Purple" />
+ <com:TListItem Value="Black" />
+ <com:TListItem Value="Yellow" />
+ <com:TListItem Value="Orange" />
+ <com:TListItem Value="Pink" />
+ <com:TListItem Value="Cyan" />
+ </com:TDropDownList>
+ <br/><br/>
+ </com:TWizardStep>
+
+ <com:TWizardStep ID="WizardStep2" Title="Step 2">
+ <i>Wizard Step Content</i>
+ <br/><br/>
+ <com:TLabel ID="Result" />
+ <br/><br/>
+ </com:TWizardStep>
+
+ <com:TWizardStep ID="WizardStep3" Title="Step 3">
+ <i>Wizard Step Content</i>
+ <br/><br/>
+ Thank you for completing this survey.<br />
+ <br/><br/>
+ </com:TWizardStep>
+</com:TWizard>
+
+<div class="last-modified">$Id: Sample4.page 1650 2007-01-24 06:55:32Z wei $</div></com:TContent> \ No newline at end of file
diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket745.php b/tests/FunctionalTests/tickets/protected/pages/Ticket745.php
new file mode 100755
index 00000000..8d7c66ce
--- /dev/null
+++ b/tests/FunctionalTests/tickets/protected/pages/Ticket745.php
@@ -0,0 +1,11 @@
+<?php
+
+class Ticket745 extends TPage
+{
+ public function wizardCompleted($sender,$param)
+ {
+ $this->Result->Text="Your favorite color is: " . $this->DropDownList1->SelectedValue;
+ }
+}
+
+?> \ No newline at end of file
diff --git a/tests/FunctionalTests/tickets/tests/Ticket745TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket745TestCase.php
new file mode 100644
index 00000000..492b10ae
--- /dev/null
+++ b/tests/FunctionalTests/tickets/tests/Ticket745TestCase.php
@@ -0,0 +1,18 @@
+<?php
+class Ticket745TestCase extends SeleniumTestCase
+{
+ function test()
+ {
+ $base = 'ctl0_Content_';
+ $this->open('tickets/index.php?page=Ticket745');
+ $this->assertTitle("Verifying Ticket 745");
+
+ $this->select($base.'Wizard1_DropDownList1', 'Green');
+ $this->click($base.'Wizard1_ctl4_ctl1');
+ $this->pause(800);
+ $this->assertTextPresent ('Step 3 of 3');
+
+ }
+
+}
+?> \ No newline at end of file