summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitattributes3
-rw-r--r--HISTORY4
-rw-r--r--buildscripts/texbuilder/Page2Tex.php5
-rw-r--r--framework/I18N/core/CultureInfo.php5
-rw-r--r--framework/Web/UI/WebControls/TStyle.php62
-rw-r--r--framework/Web/UI/WebControls/TWebControl.php16
-rw-r--r--tests/FunctionalTests/active-controls/protected/pages/DisplayStyleTest.page22
-rw-r--r--tests/FunctionalTests/active-controls/protected/pages/DisplayStyleTest.php26
-rw-r--r--tests/FunctionalTests/validators/tests/DatePickerTestCase.php1
-rw-r--r--tests/simple_unit/I18N/CultureInfoTest.php13
10 files changed, 152 insertions, 5 deletions
diff --git a/.gitattributes b/.gitattributes
index 5c2dc5e1..ca1df998 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -2117,6 +2117,8 @@ tests/FunctionalTests/active-controls/protected/pages/DatePickerInCallback.page
tests/FunctionalTests/active-controls/protected/pages/DatePickerInCallback.php -text
tests/FunctionalTests/active-controls/protected/pages/DelayedCallback.page -text
tests/FunctionalTests/active-controls/protected/pages/DelayedCallback.php -text
+tests/FunctionalTests/active-controls/protected/pages/DisplayStyleTest.page -text
+tests/FunctionalTests/active-controls/protected/pages/DisplayStyleTest.php -text
tests/FunctionalTests/active-controls/protected/pages/DynamicRepeaterDataTest.page -text
tests/FunctionalTests/active-controls/protected/pages/DynamicRepeaterDataTest.php -text
tests/FunctionalTests/active-controls/protected/pages/EventTriggeredCallback.page -text
@@ -2411,6 +2413,7 @@ tests/simple_unit/ActiveRecord/records/DepartmentRecord.php -text
tests/simple_unit/ActiveRecord/records/SimpleUser.php -text
tests/simple_unit/ActiveRecord/records/SqliteUsers.php -text
tests/simple_unit/ActiveRecord/records/UserRecord.php -text
+tests/simple_unit/I18N/CultureInfoTest.php -text
tests/simple_unit/Soap/ContactManager.php -text
tests/simple_unit/Soap/SoapTestCase.php -text
tests/simple_unit/SqlMap/ActiveRecordSqlMapTest.php -text
diff --git a/HISTORY b/HISTORY
index 8c7dfdf9..840e0fd8 100644
--- a/HISTORY
+++ b/HISTORY
@@ -1,6 +1,10 @@
Version 3.1.0 beta to be released
=================================
ENH: Added PRADO_CHMOD constant so that users can specify the permission of PRADO-created directories (Qiang)
+ENH: Ticket#519 - Update TActiveRecord implementation (Wei)
+ENH: Add Display property to TWebControl (Wei)
+BUG: Ticket#517 - Quickstart I18N sample: conflicting module ID (Wei)
+BUG: Ticket#521 - comment tag on TActiveButton stop callback (Wei)
Version 3.1.0 alpha January 15, 2007
====================================
diff --git a/buildscripts/texbuilder/Page2Tex.php b/buildscripts/texbuilder/Page2Tex.php
index 2374647c..7ee4a171 100644
--- a/buildscripts/texbuilder/Page2Tex.php
+++ b/buildscripts/texbuilder/Page2Tex.php
@@ -211,6 +211,7 @@ class Page2Tex
array($this, 'tabular'), $html);
$html = preg_replace('/<!--(.*)-->/', '', $html);
+ $html = preg_replace('/<div class="last-modified">((.|\n)*?)<\/div>/', '', $html);
$html = html_entity_decode($html);
@@ -300,7 +301,7 @@ class Page2Tex
$page = $this->page_count*1000;
return "<h3 id=\"".($page + (++self::$header_count))."\">";
}
-
+
function set_block_content_id($content)
{
$content = preg_replace_callback('/<p>/', array($this, 'add_p'), $content);
@@ -322,7 +323,7 @@ class Page2Tex
return $matches[0];
}
else
- {
+ {
$changes = str_replace('"source"', '"source block-content" id="code-'.$id.'"', $matches[0]);
return $changes;
}
diff --git a/framework/I18N/core/CultureInfo.php b/framework/I18N/core/CultureInfo.php
index bcf2f245..404c81fe 100644
--- a/framework/I18N/core/CultureInfo.php
+++ b/framework/I18N/core/CultureInfo.php
@@ -414,7 +414,7 @@ class CultureInfo
* Gets the culture name in English.
* Returns <code>array('Language','Country');</code>
* 'Country' is omitted if the culture is neutral.
- * @return array array with language and country as elements.
+ * @return string language (country), it may locale code string if english name does not exist.
*/
function getEnglishName()
{
@@ -423,6 +423,9 @@ class CultureInfo
$culture = $this->getInvariantCulture();
$language = $culture->findInfo("Languages/{$lang}");
+ if(count($language) == 0)
+ return $this->culture;
+
$region = $culture->findInfo("Countries/{$reg}");
if($region)
return $language[0].' ('.$region[0].')';
diff --git a/framework/Web/UI/WebControls/TStyle.php b/framework/Web/UI/WebControls/TStyle.php
index cc383766..73ff4adf 100644
--- a/framework/Web/UI/WebControls/TStyle.php
+++ b/framework/Web/UI/WebControls/TStyle.php
@@ -43,6 +43,10 @@ class TStyle extends TComponent
* @var string CSS style string (those not represented by specific fields of TStyle)
*/
private $_customStyle=null;
+ /**
+ * @var string display style
+ */
+ private $_displayStyle='Fixed';
/**
* Constructor.
@@ -173,7 +177,7 @@ class TStyle extends TComponent
$this->_font=new TFont;
return $this->_font;
}
-
+
/**
* @return boolean true if font is set.
*/
@@ -183,6 +187,37 @@ class TStyle extends TComponent
}
/**
+ * @param TDisplayStyle control display style, default is TDisplayStyle::Fixed
+ */
+ public function setDisplayStyle($value)
+ {
+ $this->_displayStyle = TPropertyValue::ensureEnum($value, 'TDisplayStyle');
+ switch($this->_displayStyle)
+ {
+ case TDisplayStyle::None:
+ $this->_fields['display'] = 'none';
+ break;
+ case TDisplayStyle::Dynamic:
+ $this->_fields['display'] = ''; //remove the display property
+ break;
+ case TDisplayStyle::Fixed:
+ $this->_fields['visibility'] = 'visible';
+ break;
+ case TDisplayStyle::Hidden:
+ $this->_fields['visibility'] = 'hidden';
+ break;
+ }
+ }
+
+ /**
+ * @return TDisplayStyle display style
+ */
+ public function getDisplayStyle()
+ {
+ return $this->_displayStyle;
+ }
+
+ /**
* @return string the foreground color of the control
*/
public function getForeColor()
@@ -362,7 +397,7 @@ class TStyle extends TComponent
if($this->_class!==null)
$writer->addAttribute('class',$this->_class);
}
-
+
/**
* @return array list of style fields.
*/
@@ -373,6 +408,29 @@ class TStyle extends TComponent
}
/**
+ * TDisplayStyle defines the enumerable type for the possible styles
+ * that a web control can display.
+ *
+ * The following enumerable values are defined:
+ * - None: the control is not displayed and not included in the layout.
+ * - Dynamic: the control is displayed and included in the layout, the layout flow is dependent on the control (equivalent to display:'' in css).
+ * - Fixed: Similar to Dynamic with CSS "visibility" set "shown".
+ * - Hidden: the control is not displayed and is included in the layout.
+ *
+ * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
+ * @version $Id$
+ * @package System.Web.UI.WebControls
+ * @since 3.1
+ */
+class TDisplayStyle extends TEnumerable
+{
+ const None='None';
+ const Dynamic='Dynamic';
+ const Fixed='Fixed';
+ const Hidden='Hidden';
+}
+
+/**
* TTableStyle class.
* TTableStyle represents the CSS style specific for HTML table.
*
diff --git a/framework/Web/UI/WebControls/TWebControl.php b/framework/Web/UI/WebControls/TWebControl.php
index a45bab05..78c1aa98 100644
--- a/framework/Web/UI/WebControls/TWebControl.php
+++ b/framework/Web/UI/WebControls/TWebControl.php
@@ -194,6 +194,22 @@ class TWebControl extends TControl
}
/**
+ * @param TDisplayStyle display style of the control, default is TDisplayStyle::Fixed
+ */
+ public function setDisplay($value)
+ {
+ $this->getStyle()->setDisplayStyle($value);
+ }
+
+ /**
+ * @return TDisplayStyle display style of the control, default is TDisplayStyle::Fixed
+ */
+ public function getDisplay()
+ {
+ return $this->getStyle()->getDisplayStyle();
+ }
+
+ /**
* @param string the css class of the control
*/
public function setCssClass($value)
diff --git a/tests/FunctionalTests/active-controls/protected/pages/DisplayStyleTest.page b/tests/FunctionalTests/active-controls/protected/pages/DisplayStyleTest.page
new file mode 100644
index 00000000..df1db27a
--- /dev/null
+++ b/tests/FunctionalTests/active-controls/protected/pages/DisplayStyleTest.page
@@ -0,0 +1,22 @@
+<com:TForm>
+<h1>Display Style Test</h1>
+
+<div>
+Some test
+<com:TActiveButton ID="button1" Display="None" Text="Button 1" />
+buttons
+<com:TActiveButton ID="button2" Display="Hidden" Text="Button 2" />
+here.
+</div>
+
+<com:TActiveButton Text="Display Button 1" OnClick="display_button1" />
+<com:TActiveButton Text="Hide Button 1" OnClick="hide_button1" />
+
+<com:TActiveButton Text="Show Button 2" OnClick="show_button2" />
+<com:TActiveButton Text="Hide Button 2" OnClick="hide_button2" />
+
+<com:TActiveLabel ID="status" />
+
+<com:TJavascriptLogger />
+
+</com:TForm> \ No newline at end of file
diff --git a/tests/FunctionalTests/active-controls/protected/pages/DisplayStyleTest.php b/tests/FunctionalTests/active-controls/protected/pages/DisplayStyleTest.php
new file mode 100644
index 00000000..a49a8bfa
--- /dev/null
+++ b/tests/FunctionalTests/active-controls/protected/pages/DisplayStyleTest.php
@@ -0,0 +1,26 @@
+<?php
+
+class DisplayStyleTest extends TPage
+{
+ function display_button1()
+ {
+ $this->button1->Display="Dynamic";
+ }
+
+ function hide_button1()
+ {
+ $this->button1->Display="None";
+ }
+
+ function show_button2()
+ {
+ $this->button2->Display="Fixed";
+ }
+
+ function hide_button2()
+ {
+ $this->button2->Display="Hidden";
+ }
+}
+
+?> \ No newline at end of file
diff --git a/tests/FunctionalTests/validators/tests/DatePickerTestCase.php b/tests/FunctionalTests/validators/tests/DatePickerTestCase.php
index 95eb88e3..320802e4 100644
--- a/tests/FunctionalTests/validators/tests/DatePickerTestCase.php
+++ b/tests/FunctionalTests/validators/tests/DatePickerTestCase.php
@@ -29,6 +29,7 @@ class DatePickerTestCase extends SeleniumTestCase
$this->type("{$base}picker1", "13/4/2006");
$this->select("{$base}picker2_month", "label=9");
$this->select("{$base}picker2_day", "label=10");
+ $this->select("{$base}picker2_year", "label=2006");
$this->type("{$base}picker3", "14/4/2006");
$this->type("{$base}picker4", "7/4/2006");
$this->select("{$base}picker5_day", "label=6");
diff --git a/tests/simple_unit/I18N/CultureInfoTest.php b/tests/simple_unit/I18N/CultureInfoTest.php
new file mode 100644
index 00000000..840d8f17
--- /dev/null
+++ b/tests/simple_unit/I18N/CultureInfoTest.php
@@ -0,0 +1,13 @@
+<?php
+
+Prado::using('System.I18N.core.*');
+class CultureInfoTest extends UnitTestCase
+{
+ function test_missing_english_names_returns_culture_code()
+ {
+ $culture = new CultureInfo('iw');
+ $this->assertEqual($culture->getEnglishName(), 'iw');
+ }
+}
+
+?> \ No newline at end of file