From 9e2820e98640f4ca262db7279a514826341df3e0 Mon Sep 17 00:00:00 2001 From: wei <> Date: Sun, 8 Oct 2006 05:11:23 +0000 Subject: Fixed #414, #411, #415 --- framework/Web/Javascripts/ratings/ratings.js | 85 ++++++++++++++++++++++------ 1 file changed, 69 insertions(+), 16 deletions(-) (limited to 'framework/Web/Javascripts/ratings/ratings.js') diff --git a/framework/Web/Javascripts/ratings/ratings.js b/framework/Web/Javascripts/ratings/ratings.js index 9299d8d8..c8b19511 100644 --- a/framework/Web/Javascripts/ratings/ratings.js +++ b/framework/Web/Javascripts/ratings/ratings.js @@ -1,6 +1,7 @@ Prado.WebUI.TRatingList = Base.extend( { selectedIndex : -1, + rating: -1, enabled : true, readOnly : false, @@ -15,7 +16,10 @@ Prado.WebUI.TRatingList = Base.extend( Prado.WebUI.TRatingList.register(this); this._init(); this.selectedIndex = options.SelectedIndex; - this.setRating(this.selectedIndex); + this.rating = options.Rating; + if(options.Rating <= 0 && options.SelectedIndex >= 0) + this.rating = options.SelectedIndex+1; + this.showRating(this.rating); }, _init: function(options) @@ -44,18 +48,20 @@ Prado.WebUI.TRatingList = Base.extend( if(this.enabled==false) return; for(var i = 0; i halfMax ? base+1 : base; + for(var i = 0; i halfMax ? base+1 : base; + var hasHalf = remainder >= halfMin && remainder <= halfMax; for(var i = 0; i index ? 'removeClassName' : 'addClassName' - Element[action](this.radios[i].parentNode, "rating_selected"); + 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"); } - this.setCaption(index); }, - setCaption : function(index) + getIndexCaption : function(index) + { + return index > -1 ? this.radios[index].value : this.options.caption; + }, + + showCaption : function(value) { - var value = index > -1 ? this.radios[index].value : this.options.caption; 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; @@ -120,6 +169,10 @@ setEnabled : function(id,value) setRating : function(id,value) { Prado.WebUI.TRatingList.ratings[id].setRating(value); - Prado.WebUI.TRatingList.ratings[id].selectedIndex = value; +}, + +setCaption : function(id,value) +{ + Prado.WebUI.TRatingList.ratings[id].setCaption(value); } }); \ No newline at end of file -- cgit v1.2.3