diff options
| -rw-r--r-- | HISTORY | 1 | ||||
| -rw-r--r-- | framework/Exceptions/messages.txt | 5 | ||||
| -rw-r--r-- | framework/Web/Javascripts/source/prado/controls/controls.js | 50 | ||||
| -rw-r--r-- | framework/Web/UI/TClientScriptManager.php | 5 | 
4 files changed, 58 insertions, 3 deletions
| @@ -10,6 +10,7 @@ ENH: Ticket#667 - Added TFeedService.ContentType property (Qiang)  ENH: Ticket#577 - Added image button support for TPager (Qiang)  ENH: Added THead requirement check (Qiang)  CHG: GeSHi is replaced with Text_Highlighter (Christophe) +NEW: Added TTabPanel (Qiang)  Version 3.1.0 July 2, 2007  ========================== diff --git a/framework/Exceptions/messages.txt b/framework/Exceptions/messages.txt index 955c8fa3..23ec53ea 100644 --- a/framework/Exceptions/messages.txt +++ b/framework/Exceptions/messages.txt @@ -409,3 +409,8 @@ feedservice_id_required					= TFeedService requires 'id' attribute in its feed e  feedservice_feedtype_invalid			= The class feed '{0}' must implement IFeedContentProvider interface.
  feedservice_class_required				= TFeedService requires 'class' attribute in its feed elements.
  feedservice_feed_unknown				= Unknown feed '{0}' requested.
 +
 +tabviewcollection_tabview_required		= TTabPanel can only accept TTabView as child.
 +tabpanel_activeviewid_invalid			= TTabPanel.ActiveViewID has an invalid ID '{0}'.
 +tabpanel_activeviewindex_invalid		= TTabPanel.ActiveViewIndex has an invalid Index '{0}'.
 +tabpanel_view_inexistent				= TTabPanel cannot find the specified view.
 diff --git a/framework/Web/Javascripts/source/prado/controls/controls.js b/framework/Web/Javascripts/source/prado/controls/controls.js index 4ef824c2..e0f9218c 100644 --- a/framework/Web/Javascripts/source/prado/controls/controls.js +++ b/framework/Web/Javascripts/source/prado/controls/controls.js @@ -287,4 +287,52 @@ Prado.WebUI.TRadioButtonList = Base.extend(  			new Prado.WebUI.TRadioButton(radioButtonOptions);
  		}
  	}
 -});
\ No newline at end of file +});
 +
 +Prado.WebUI.TTabPanel = Class.create();
 +Prado.WebUI.TTabPanel.prototype =
 +{
 +	initialize : function(options)
 +	{
 +		this.element = $(options.ID);
 +		this.onInit(options);
 +	},
 +
 +	onInit : function(options)
 +	{
 +		this.views = options.Views;
 +		this.hiddenField = $(options.ID+'_1');
 +		this.activeCssClass = options.ActiveCssClass;
 +		this.normalCssClass = options.NormalCssClass;
 +		var length = options.Views.length;
 +		for(var i = 0; i<length; i++)
 +		{
 +			var item = options.Views[i];
 +			var element = $(item+'_0');
 +			if (element)
 +			{
 +				Event.observe(element, "click", this.elementClicked.bindEvent(this,item));
 +			}
 +		}
 +	},
 +
 +	elementClicked : function(event,viewID)
 +	{
 +		var length = this.views.length;
 +		for(var i = 0; i<length; i++)
 +		{
 +			var item = this.views[i];
 +			if(item == viewID)
 +			{
 +				$(item+'_0').className=this.activeCssClass;
 +				$(item).show();
 +				this.hiddenField.value=i;
 +			}
 +			else
 +			{
 +				$(item+'_0').className=this.normalCssClass;
 +				$(item).hide();
 +			}
 +		}
 +	}
 +};
 diff --git a/framework/Web/UI/TClientScriptManager.php b/framework/Web/UI/TClientScriptManager.php index 5f924397..cd8826dc 100644 --- a/framework/Web/UI/TClientScriptManager.php +++ b/framework/Web/UI/TClientScriptManager.php @@ -605,14 +605,15 @@ class TClientScriptManager extends TApplicationComponent  		$str='';  		foreach($this->_hiddenFields as $name=>$value)  		{ +			$id=strtr($name,':','_');  			if(is_array($value))  			{  				foreach($value as $v) -					$str.='<input type="hidden" name="'.$name.'[]" id="'.$name.'" value="'.THttpUtility::htmlEncode($value)."\" />\n"; +					$str.='<input type="hidden" name="'.$name.'[]" id="'.$id.'" value="'.THttpUtility::htmlEncode($value)."\" />\n";  			}  			else  			{ -				$str.='<input type="hidden" name="'.$name.'" id="'.$name.'" value="'.THttpUtility::htmlEncode($value)."\" />\n"; +				$str.='<input type="hidden" name="'.$name.'" id="'.$id.'" value="'.THttpUtility::htmlEncode($value)."\" />\n";  			}  		}  		if($str!=='') | 
