From 3b9afe7979fb5195445da768ecee2f138ba84005 Mon Sep 17 00:00:00 2001
From: "ctrlaltca@gmail.com" <>
Date: Fri, 19 Aug 2011 14:10:53 +0000
Subject: fix for #356
---
framework/Web/UI/WebControls/TDatePicker.php | 27 +++++++++++++++++++++++----
1 file changed, 23 insertions(+), 4 deletions(-)
(limited to 'framework/Web')
diff --git a/framework/Web/UI/WebControls/TDatePicker.php b/framework/Web/UI/WebControls/TDatePicker.php
index 1dabb7ce..6d2f1427 100644
--- a/framework/Web/UI/WebControls/TDatePicker.php
+++ b/framework/Web/UI/WebControls/TDatePicker.php
@@ -39,10 +39,18 @@ Prado::using('System.Web.UI.WebControls.TTextBox');
* -----------------------------------------
*
*
- * TDatePicker has three Mode to show the date picker popup.
+ * TDatePicker has four Mode to show the date picker popup.
*
* # Basic -- Only shows a text input, focusing on the input shows the
- * date picker.
+ * date picker. This way you can access the popup using only
+ * the keyboard. Note that because of this, TAB-bing through
+ * this control will automatically select the current date if
+ * no previous date was selected. If you close the popup (eg.
+ * pressing the ESC key) you'll need to un-focus and re-focus
+ * the control again for the popup to reappear.
+ * # Clickable -- Only shows a text input, clicking on the input shows the
+ * date picker. This mode solves the two small problems of the
+ * Basic mode. It was first introduced in Prado 3.2.
* # Button -- Shows a button next to the text input, clicking on the
* button shows the date, button text can be by the
* ButtonText property
@@ -525,8 +533,17 @@ class TDatePicker extends TTextBox
$options['CalendarStyle'] = $this->getCalendarStyle();
$options['FromYear'] = $this->getFromYear();
$options['UpToYear'] = $this->getUpToYear();
- if($this->getMode()!==TDatePickerMode::Basic)
- $options['Trigger'] = $this->getDatePickerButtonID();
+ switch($this->getMode())
+ {
+ case TDatePickerMode::Basic:
+ break;
+ case TDatePickerMode::Clickable:
+ $options['TriggerEvent'] = "click";
+ break;
+ default:
+ $options['Trigger'] = $this->getDatePickerButtonID();
+ break;
+ }
$options['PositionMode'] = $this->getPositionMode();
$options = array_merge($options, $this->getCulturalOptions());
@@ -940,6 +957,7 @@ class TDatePickerInputMode extends TEnumerable
*
* The following enumerable values are defined:
* - Basic: Only shows a text input, focusing on the input shows the date picker
+ * - Clickable: Only shows a text input, clicking on the input shows the date picker (since 3.2)
* - Button: Shows a button next to the text input, clicking on the button shows the date, button text can be by the
* - ImageButton: Shows an image next to the text input, clicking on the image shows the date picker,
*
@@ -951,6 +969,7 @@ class TDatePickerInputMode extends TEnumerable
class TDatePickerMode extends TEnumerable
{
const Basic='Basic';
+ const Clickable='Clickable';
const Button='Button';
const ImageButton='ImageButton';
}
--
cgit v1.2.3