diff options
Diffstat (limited to 'framework/Web/Javascripts')
4 files changed, 176 insertions, 294 deletions
diff --git a/framework/Web/Javascripts/source/prado/activeratings/blocks.css b/framework/Web/Javascripts/source/prado/activeratings/blocks.css deleted file mode 100644 index bb846094..00000000 --- a/framework/Web/Javascripts/source/prado/activeratings/blocks.css +++ /dev/null @@ -1,42 +0,0 @@ -.TActiveRatingList_blocks
 -{
 -	border-collapse: collapse;
 -}
 -.TActiveRatingList_blocks input, .TActiveRatingList_blocks label
 -{
 -	display: none;
 -}
 -
 -.TActiveRatingList_blocks td
 -{
 -	width: 18px;
 -	height: 9px;
 -	padding: 1px;
 -}
 -
 -.TActiveRatingList_blocks td.rating
 -{
 -	background-image: url(blocks_combined.gif);
 -	background-repeat: no-repeat;
 -	cursor: pointer;
 -	background-position: 1px 0px;
 -}
 -.TActiveRatingList_blocks td.rating_selected
 -{
 -	background-position: 1px -100px;
 -}
 -
 -.TActiveRatingList_blocks td.rating_half
 -{
 -	background-position: 1px -200px;
 -}
 -
 -.TActiveRatingList_blocks td.rating_hover
 -{
 -	background-position: 1px -300px;
 -}
 -
 -.TActiveRatingList_blocks td.rating_disabled
 -{
 -	cursor: default !important;
 -}
 diff --git a/framework/Web/Javascripts/source/prado/activeratings/default.css b/framework/Web/Javascripts/source/prado/activeratings/default.css deleted file mode 100644 index ba90eb27..00000000 --- a/framework/Web/Javascripts/source/prado/activeratings/default.css +++ /dev/null @@ -1,43 +0,0 @@ -.TActiveRatingList_default
 -{
 -	border-collapse: collapse;
 -}
 -.TActiveRatingList_default input, .TActiveRatingList_default label
 -{
 -	display: none;
 -}
 -
 -.TActiveRatingList_default td
 -{
 -	width: 18px;
 -	height: 18px;
 -	padding: 0;
 -}
 -
 -.TActiveRatingList_default td.rating
 -{
 -	background-image: url(default_combined.gif);
 -	background-repeat: no-repeat;
 -	cursor: pointer;
 -	background-position: 0px 0px;
 -}
 -
 -.TActiveRatingList_default td.rating_selected
 -{
 -	background-position: 0px -100px;
 -}
 -
 -.TActiveRatingList_default td.rating_half
 -{
 -	background-position: 0px -200px;
 -}
 -
 -.TActiveRatingList_default td.rating_hover
 -{
 -	background-position: 0px -300px;
 -}
 -
 -.TActiveRatingList_default td.rating_disabled
 -{
 -	cursor: default !important;
 -}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/prado/activeratings/ratings.js b/framework/Web/Javascripts/source/prado/activeratings/ratings.js deleted file mode 100644 index 4eeddbd8..00000000 --- a/framework/Web/Javascripts/source/prado/activeratings/ratings.js +++ /dev/null @@ -1,178 +0,0 @@ -Prado.WebUI.TActiveRatingList = Base.extend(
 -{
 -	selectedIndex : -1,
 -	rating: -1,
 -	enabled : true,
 -	readOnly : false,
 -
 -	constructor : function(options)
 -	{
 -		var cap = $(options.CaptionID);
 -		this.options = Object.extend(
 -		{
 -			caption : cap ? cap.innerHTML : ''
 -		}, options || {});
 -
 -		Prado.WebUI.TActiveRatingList.register(this);
 -		this._init();
 -		this.selectedIndex = options.SelectedIndex;
 -		this.rating = options.Rating;
 -		if(options.Rating <= 0 && options.SelectedIndex >= 0)
 -			this.rating = options.SelectedIndex+1;
 -		this.showRating(this.rating);
 -	},
 -
 -	_init: function(options)
 -	{
 -		Element.addClassName($(this.options.ListID),this.options.Style);
 -		this.radios = new Array();
 -		var index=0;
 -		for(var i = 0; i<this.options.ItemCount; i++)
 -		{
 -			var radio = $(this.options.ListID+'_c'+i);
 -			var td = radio.parentNode.parentNode;
 -			if(radio && td.tagName.toLowerCase()=='td')
 -			{
 -				this.radios.push(radio);
 -				Event.observe(td, "mouseover", this.hover.bindEvent(this,index));
 -				Event.observe(td, "mouseout", this.recover.bindEvent(this,index));
 -				Event.observe(td, "click", this.click.bindEvent(this, index));
 -				index++;
 -				Element.addClassName(td,"rating");
 -			}
 -		}
 -	},
 -
 -	hover : function(ev,index)
 -	{
 -		if(this.enabled==false) return;
 -		for(var i = 0; i<this.radios.length; i++)
 -		{
 -			var node = this.radios[i].parentNode.parentNode;
 -			var action = i <= index ? 'addClassName' : 'removeClassName'
 -			Element[action](node,"rating_hover");
 -			Element.removeClassName(node,"rating_selected");
 -			Element.removeClassName(node,"rating_half");
 -		}
 -		this.showCaption(this.getIndexCaption(index));
 -	},
 -
 -	recover : function(ev,index)
 -	{
 -		if(this.enabled==false) return;
 -		this.showRating(this.rating);
 -		this.showCaption(this.options.caption);
 -	},
 -
 -	click : function(ev, index)
 -	{
 -		if(this.enabled==false) return;
 -		for(var i = 0; i<this.radios.length; i++)
 -			this.radios[i].checked = (i == index);
 -
 -		this.selectedIndex = index;
 -		this.setRating(index+1);
 -
 -		this.dispatchRequest(ev);
 -	},
 -
 -	dispatchRequest : function(ev)
 -	{
 -		var requestOptions = Object.extend(
 -		{
 -			ID : this.options.ListID+"_c"+this.selectedIndex,
 -			EventTarget : this.options.ListName+"$c"+this.selectedIndex
 -		},this.options);
 -		var request = new Prado.CallbackRequest(requestOptions.EventTarget, requestOptions);
 -		if(request.dispatch()==false)
 -			Event.stop(ev);
 -	},
 -
 -	setRating : function(value)
 -	{
 -		this.rating = value;
 -		var base = Math.floor(value-1);
 -		var remainder = value - base-1;
 -		var halfMax = this.options.HalfRating["1"];
 -		var index = remainder > halfMax ? base+1 : base;
 -		for(var i = 0; i<this.radios.length; i++)
 -			this.radios[i].checked = (i == index);
 -
 -		var caption = this.getIndexCaption(index);
 -		this.setCaption(caption);
 -		this.showCaption(caption);
 -
 -		this.showRating(value);
 -	},
 -
 -	showRating: function(value)
 -	{
 -		var base = Math.floor(value-1);
 -		var remainder = value - base-1;
 -		var halfMin = this.options.HalfRating["0"];
 -		var halfMax = this.options.HalfRating["1"];
 -		var index = remainder > halfMax ? base+1 : base;
 -		var hasHalf = remainder >= halfMin && remainder <= halfMax;
 -		for(var i = 0; i<this.radios.length; i++)
 -		{
 -			var node = this.radios[i].parentNode.parentNode;
 -			var action = i > index ? 'removeClassName' : 'addClassName';
 -			Element[action](node, "rating_selected");
 -			if(i==index+1 && hasHalf)
 -				Element.addClassName(node, "rating_half");
 -			else
 -				Element.removeClassName(node, "rating_half");
 -			Element.removeClassName(node,"rating_hover");
 -		}
 -	},
 -
 -	getIndexCaption : function(index)
 -	{
 -		return index > -1 ? this.radios[index].value : this.options.caption;
 -	},
 -
 -	showCaption : function(value)
 -	{
 -		var caption = $(this.options.CaptionID);
 -		if(caption) caption.innerHTML = value;
 -		$(this.options.ListID).title = value;
 -	},
 -
 -	setCaption : function(value)
 -	{
 -		this.options.caption = value;
 -		this.showCaption(value);
 -	},
 -
 -	setEnabled : function(value)
 -	{
 -		this.enabled = value;
 -		for(var i = 0; i<this.radios.length; i++)
 -		{
 -			var action = value ? 'removeClassName' : 'addClassName'
 -			Element[action](this.radios[i].parentNode.parentNode, "rating_disabled");
 -		}
 -	}
 -},
 -{
 -ratings : {},
 -register : function(rating)
 -{
 -	Prado.WebUI.TActiveRatingList.ratings[rating.options.ListID] = rating;
 -},
 -
 -setEnabled : function(id,value)
 -{
 -	Prado.WebUI.TActiveRatingList.ratings[id].setEnabled(value);
 -},
 -
 -setRating : function(id,value)
 -{
 -	Prado.WebUI.TActiveRatingList.ratings[id].setRating(value);
 -},
 -
 -setCaption : function(id,value)
 -{
 -	Prado.WebUI.TActiveRatingList.ratings[id].setCaption(value);
 -}
 -});
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/prado/ratings/ratings.js b/framework/Web/Javascripts/source/prado/ratings/ratings.js index e1770f1f..0c5412ea 100644 --- a/framework/Web/Javascripts/source/prado/ratings/ratings.js +++ b/framework/Web/Javascripts/source/prado/ratings/ratings.js @@ -1,60 +1,205 @@ -Prado.WebUI.TRatingList = Class.create();
 -Prado.WebUI.TRatingList.prototype =
 +Prado.WebUI.TRatingList = Base.extend(
  {
  	selectedIndex : -1,
 +	rating: -1,
 +	readOnly : false,
 -	initialize : function(options)
 +	constructor : function(options)
  	{
 -		this.options = options;
 -		this.element = $(options['ID']);
 -		Element.addClassName(this.element,options.cssClass);
 -		this.radios = document.getElementsByName(options.field);
 -		for(var i = 0; i<this.radios.length; i++)
 +		var cap = $(options.CaptionID);
 +		this.options = Object.extend(
 +		{
 +			caption : cap ? cap.innerHTML : ''
 +		}, options || {});
 +
 +		Prado.WebUI.TRatingList.register(this);
 +		this._init();
 +		this.selectedIndex = options.SelectedIndex;
 +		this.rating = options.Rating;
 +		this.readOnly = options.ReadOnly
 +		if(options.Rating <= 0 && options.SelectedIndex >= 0)
 +			this.rating = options.SelectedIndex+1;
 +		this.setReadOnly(this.readOnly);
 +	},
 +
 +	_init: function(options)
 +	{
 +		Element.addClassName($(this.options.ListID),this.options.Style);
 +		this.radios = new Array();
 +		this._mouseOvers = new Array();
 +		this._mouseOuts = new Array();
 +		this._clicks = new Array();
 +		var index=0;
 +		for(var i = 0; i<this.options.ItemCount; i++)
  		{
 -			Event.observe(this.radios[i].parentNode.parentNode, "mouseover", this.hover.bindEvent(this,i));
 -			Event.observe(this.radios[i].parentNode.parentNode, "mouseout", this.recover.bindEvent(this,i));
 -			Event.observe(this.radios[i].parentNode.parentNode, "click", this.click.bindEvent(this, i));
 +			var radio = $(this.options.ListID+'_c'+i);
 +			var td = radio.parentNode.parentNode;
 +			if(radio && td.tagName.toLowerCase()=='td')
 +			{
 +				this.radios.push(radio);
 +				this._mouseOvers.push(this.hover.bindEvent(this,index));
 +				this._mouseOuts.push(this.recover.bindEvent(this,index));
 +				this._clicks.push(this.click.bindEvent(this,index));
 +				index++;
 +				Element.addClassName(td,"rating");
 +			}
  		}
 -		this.caption = CAPTION();
 -		this.element.appendChild(this.caption);
 -		this.selectedIndex = options.selectedIndex;
 -		this.setRating(this.selectedIndex);
  	},
  	hover : function(ev,index)
  	{
 +		if(this.readOnly==true) return;
  		for(var i = 0; i<this.radios.length; i++)
 -			this.radios[i].parentNode.parentNode.className = (i<=index) ? "rating_hover" : "";
 -		this.setCaption(index);
 +		{
 +			var node = this.radios[i].parentNode.parentNode;
 +			var action = i <= index ? 'addClassName' : 'removeClassName'
 +			Element[action](node,"rating_hover");
 +			Element.removeClassName(node,"rating_selected");
 +			Element.removeClassName(node,"rating_half");
 +		}
 +		this.showCaption(this.getIndexCaption(index));
  	},
  	recover : function(ev,index)
  	{
 -		for(var i = 0; i<=index; i++)
 -			Element.removeClassName(this.radios[i].parentNode.parentNode, "rating_hover");
 -		this.setRating(this.selectedIndex);
 +		if(this.readOnly==true) return;
 +		this.showRating(this.rating);
 +		this.showCaption(this.options.caption);
  	},
  	click : function(ev, index)
  	{
 +		if(this.readOnly==true) return;
  		for(var i = 0; i<this.radios.length; i++)
  			this.radios[i].checked = (i == index);
  		this.selectedIndex = index;
 -		this.setRating(index);
 -		if(typeof(this.options.onChange)=="function")
 -			this.options.onChange(this,index);
 +		this.setRating(index+1);
 +
 +		if(this.options['AutoPostBack']==true){
 +			this.dispatchRequest(ev);
 +		}
 +	},
 +
 +	dispatchRequest : function(ev)
 +	{
 +		var requestOptions = Object.extend(
 +		{
 +			ID : this.options.ListID+"_c"+this.selectedIndex,
 +			EventTarget : this.options.ListName+"$c"+this.selectedIndex
 +		},this.options);
 +		Prado.PostBack(ev, requestOptions);
 +	},
 +
 +	setRating : function(value)
 +	{
 +		this.rating = value;
 +		var base = Math.floor(value-1);
 +		var remainder = value - base-1;
 +		var halfMax = this.options.HalfRating["1"];
 +		var index = remainder > halfMax ? base+1 : base;
 +		for(var i = 0; i<this.radios.length; i++)
 +			this.radios[i].checked = (i == index);
 +
 +		var caption = this.getIndexCaption(index);
 +		this.setCaption(caption);
 +		this.showCaption(caption);
 +
 +		this.showRating(this.rating);
 +	},
 +
 +	showRating: function(value)
 +	{
 +		var base = Math.floor(value-1);
 +		var remainder = value - base-1;
 +		var halfMin = this.options.HalfRating["0"];
 +		var halfMax = this.options.HalfRating["1"];
 +		var index = remainder > halfMax ? base+1 : base;
 +		var hasHalf = remainder >= halfMin && remainder <= halfMax;
 +		for(var i = 0; i<this.radios.length; i++)
 +		{
 +			var node = this.radios[i].parentNode.parentNode;
 +			var action = i > index ? 'removeClassName' : 'addClassName';
 +			Element[action](node, "rating_selected");
 +			if(i==index+1 && hasHalf)
 +				Element.addClassName(node, "rating_half");
 +			else
 +				Element.removeClassName(node, "rating_half");
 +			Element.removeClassName(node,"rating_hover");
 +		}
 +	},
 +	
 +	getIndexCaption : function(index)
 +	{
 +		return index > -1 ? this.radios[index].value : this.options.caption;
 +	},
 +
 +	showCaption : function(value)
 +	{
 +		var caption = $(this.options.CaptionID);
 +		if(caption) caption.innerHTML = value;
 +		$(this.options.ListID).title = value;
  	},
 -	setRating: function(index)
 +	setCaption : function(value)
  	{
 -		for(var i = 0; i<=index; i++)
 -			this.radios[i].parentNode.parentNode.className = "rating_selected";
 -		this.setCaption(index);
 +		this.options.caption = value;
 +		this.showCaption(value);
  	},
 -	setCaption : function(index)
 +	setReadOnly : function(value)
  	{
 -		this.caption.innerHTML = index > -1 ?
 -			this.radios[index].value : this.options.caption;
 +		this.readOnly = value;
 +		for(var i = 0; i<this.radios.length; i++)
 +		{
 +			
 +			var action = value ? 'addClassName' : 'removeClassName';
 +			Element[action](this.radios[i].parentNode.parentNode, "rating_disabled");
 +			
 +			var action = value ? 'stopObserving' : 'observe';
 +			var td = this.radios[i].parentNode.parentNode;
 +			Event[action](td, "mouseover", this._mouseOvers[i]);
 +			Event[action](td, "mouseout", this._mouseOuts[i]);
 +			Event[action](td, "click", this._clicks[i]);
 +		}
 +
 +		this.showRating(this.rating);
  	}
 -};
 +},
 +{
 +ratings : {},
 +register : function(rating)
 +{
 +	Prado.WebUI.TRatingList.ratings[rating.options.ListID] = rating;
 +},
 +
 +setReadOnly : function(id,value)
 +{
 +	Prado.WebUI.TRatingList.ratings[id].setReadOnly(value);
 +},
 +
 +setRating : function(id,value)
 +{
 +	Prado.WebUI.TRatingList.ratings[id].setRating(value);
 +},
 +
 +setCaption : function(id,value)
 +{
 +	Prado.WebUI.TRatingList.ratings[id].setCaption(value);
 +}
 +});
 +
 +Prado.WebUI.TActiveRatingList = Prado.WebUI.TRatingList.extend( 
 +{	
 +	dispatchRequest : function(ev)
 +	{
 +		var requestOptions = Object.extend(
 +		{
 +			ID : this.options.ListID+"_c"+this.selectedIndex,
 +			EventTarget : this.options.ListName+"$c"+this.selectedIndex
 +		},this.options);
 +		var request = new Prado.CallbackRequest(requestOptions.EventTarget, requestOptions);
 +		if(request.dispatch()==false)
 +			Event.stop(ev);
 +	},
 +	
 +});
  | 
