diff options
author | wei <> | 2007-03-30 00:27:34 +0000 |
---|---|---|
committer | wei <> | 2007-03-30 00:27:34 +0000 |
commit | 1ebbcf85205f983531ef3b43dce4a98114714f0b (patch) | |
tree | 7c9e05075716b94a4f46ba6e1ff5266d2e441080 | |
parent | 22b818afcda89e60a1bee299f19d8ff827097e97 (diff) |
Fixed #579, reverted the rating list js.
-rw-r--r-- | buildscripts/jsbuilder/build.php | 3 | ||||
-rw-r--r-- | framework/Web/Javascripts/js/compressed/prado.js | 15 | ||||
-rw-r--r-- | framework/Web/Javascripts/js/debug/prado.js | 61 | ||||
-rw-r--r-- | framework/Web/Javascripts/prado/ratings/ratings.js | 24 | ||||
-rw-r--r-- | framework/Web/UI/WebControls/TRatingList.php | 10 |
5 files changed, 94 insertions, 19 deletions
diff --git a/buildscripts/jsbuilder/build.php b/buildscripts/jsbuilder/build.php index 35669d09..4f0eded4 100644 --- a/buildscripts/jsbuilder/build.php +++ b/buildscripts/jsbuilder/build.php @@ -46,7 +46,8 @@ $libraries = array( 'scriptaculous/builder.js',
'prado/prado.js',
'prado/scriptaculous-adapter.js',
- 'prado/controls/controls.js'
+ 'prado/controls/controls.js',
+ 'prado/ratings/ratings.js',
),
'effects.js' => array(
diff --git a/framework/Web/Javascripts/js/compressed/prado.js b/framework/Web/Javascripts/js/compressed/prado.js index 083ddc56..5318d3aa 100644 --- a/framework/Web/Javascripts/js/compressed/prado.js +++ b/framework/Web/Javascripts/js/compressed/prado.js @@ -401,4 +401,17 @@ window.clipboardData.setData("Text",text);},hover:function(obj) {for(var i=0;i<options.ItemCount;i++) {var checkBoxOptions=Object.extend({ID:options.ListID+"_c"+i,EventTarget:options.ListName+"$c"+i},options);new Prado.WebUI.TCheckBox(checkBoxOptions);}}});Prado.WebUI.TRadioButtonList=Base.extend({constructor:function(options) {for(var i=0;i<options.ItemCount;i++) -{var radioButtonOptions=Object.extend({ID:options.ListID+"_c"+i,EventTarget:options.ListName+"$c"+i},options);new Prado.WebUI.TRadioButton(radioButtonOptions);}}});
\ No newline at end of file +{var radioButtonOptions=Object.extend({ID:options.ListID+"_c"+i,EventTarget:options.ListName+"$c"+i},options);new Prado.WebUI.TRadioButton(radioButtonOptions);}}});Prado.WebUI.TRatingList=Class.create();Prado.WebUI.TRatingList.prototype={selectedIndex:-1,initialize: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++) +{Event.observe(this.radios[i].parentNode,"mouseover",this.hover.bindEvent(this,i));Event.observe(this.radios[i].parentNode,"mouseout",this.recover.bindEvent(this,i));Event.observe(this.radios[i].parentNode,"click",this.click.bindEvent(this,i));} +this.caption=CAPTION();this.element.appendChild(this.caption);this.selectedIndex=options.selectedIndex;this.setRating(this.selectedIndex);},hover:function(ev,index) +{for(var i=0;i<this.radios.length;i++) +this.radios[i].parentNode.className=(i<=index)?"rating_hover":"";this.setCaption(index);},recover:function(ev,index) +{for(var i=0;i<=index;i++) +Element.removeClassName(this.radios[i].parentNode,"rating_hover");this.setRating(this.selectedIndex);},click:function(ev,index) +{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);},setRating:function(index) +{for(var i=0;i<=index;i++) +this.radios[i].parentNode.className="rating_selected";this.setCaption(index);},setCaption:function(index) +{this.caption.innerHTML=index>-1?this.radios[index].value:this.options.caption;}}
\ No newline at end of file diff --git a/framework/Web/Javascripts/js/debug/prado.js b/framework/Web/Javascripts/js/debug/prado.js index e5e87616..12aa5ce5 100644 --- a/framework/Web/Javascripts/js/debug/prado.js +++ b/framework/Web/Javascripts/js/debug/prado.js @@ -3807,3 +3807,64 @@ Prado.WebUI.TRadioButtonList = Base.extend( }
}); +Prado.WebUI.TRatingList = Class.create();
+Prado.WebUI.TRatingList.prototype =
+{
+ selectedIndex : -1,
+
+ initialize : 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++)
+ {
+ Event.observe(this.radios[i].parentNode, "mouseover", this.hover.bindEvent(this,i));
+ Event.observe(this.radios[i].parentNode, "mouseout", this.recover.bindEvent(this,i));
+ Event.observe(this.radios[i].parentNode, "click", this.click.bindEvent(this, i));
+ }
+ this.caption = CAPTION();
+ this.element.appendChild(this.caption);
+ this.selectedIndex = options.selectedIndex;
+ this.setRating(this.selectedIndex);
+ },
+
+ hover : function(ev,index)
+ {
+ for(var i = 0; i<this.radios.length; i++)
+ this.radios[i].parentNode.className = (i<=index) ? "rating_hover" : "";
+ this.setCaption(index);
+ },
+
+ recover : function(ev,index)
+ {
+ for(var i = 0; i<=index; i++)
+ Element.removeClassName(this.radios[i].parentNode, "rating_hover");
+ this.setRating(this.selectedIndex);
+ },
+
+ click : function(ev, index)
+ {
+ 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);
+ },
+
+ setRating: function(index)
+ {
+ for(var i = 0; i<=index; i++)
+ this.radios[i].parentNode.className = "rating_selected";
+ this.setCaption(index);
+ },
+
+ setCaption : function(index)
+ {
+ this.caption.innerHTML = index > -1 ?
+ this.radios[index].value : this.options.caption;
+ }
+} + diff --git a/framework/Web/Javascripts/prado/ratings/ratings.js b/framework/Web/Javascripts/prado/ratings/ratings.js index e6fd97ba..cc9831e9 100644 --- a/framework/Web/Javascripts/prado/ratings/ratings.js +++ b/framework/Web/Javascripts/prado/ratings/ratings.js @@ -1,5 +1,5 @@ -Prado.WebUI.TRatingList = Class.create();
-Prado.WebUI.TRatingList.prototype =
+Prado.WebUI.TRatingList = Class.create();
+Prado.WebUI.TRatingList.prototype =
{
selectedIndex : -1,
@@ -14,47 +14,47 @@ Prado.WebUI.TRatingList.prototype = Event.observe(this.radios[i].parentNode, "mouseover", this.hover.bindEvent(this,i));
Event.observe(this.radios[i].parentNode, "mouseout", this.recover.bindEvent(this,i));
Event.observe(this.radios[i].parentNode, "click", this.click.bindEvent(this, i));
- }
+ }
this.caption = CAPTION();
this.element.appendChild(this.caption);
this.selectedIndex = options.selectedIndex;
this.setRating(this.selectedIndex);
},
-
+
hover : function(ev,index)
{
for(var i = 0; i<this.radios.length; i++)
this.radios[i].parentNode.className = (i<=index) ? "rating_hover" : "";
this.setCaption(index);
},
-
+
recover : function(ev,index)
{
for(var i = 0; i<=index; i++)
Element.removeClassName(this.radios[i].parentNode, "rating_hover");
this.setRating(this.selectedIndex);
},
-
+
click : function(ev, index)
{
for(var i = 0; i<this.radios.length; i++)
this.radios[i].checked = (i == index);
this.selectedIndex = index;
this.setRating(index);
- if(isFunction(this.options.onChange))
- this.options.onChange(this,index);
+ if(typeof(this.options.onChange)=="Function")
+ this.options.onChange(this,index);
},
-
+
setRating: function(index)
{
for(var i = 0; i<=index; i++)
this.radios[i].parentNode.className = "rating_selected";
this.setCaption(index);
},
-
+
setCaption : function(index)
{
- this.caption.innerHTML = index > -1 ?
- this.radios[index].value : this.options.caption;
+ this.caption.innerHTML = index > -1 ?
+ this.radios[index].value : this.options.caption;
}
}
\ No newline at end of file diff --git a/framework/Web/UI/WebControls/TRatingList.php b/framework/Web/UI/WebControls/TRatingList.php index d603a442..38e264b9 100644 --- a/framework/Web/UI/WebControls/TRatingList.php +++ b/framework/Web/UI/WebControls/TRatingList.php @@ -118,7 +118,7 @@ class TRatingList extends TRadioButtonList protected function publishRatingListStyle($style)
{
$cs = $this->getPage()->getClientScript();
- $stylesheet = 'System.Web.Javascripts.ratings.'.$style;
+ $stylesheet = 'System.Web.Javascripts.prado.ratings.'.$style;
if(($cssFile=Prado::getPathOfNamespace($stylesheet,'.css'))===null)
throw new TConfigurationException('ratinglist_stylesheet_not_found',$style);
$url = $this->publishFilePath($cssFile);
@@ -129,10 +129,10 @@ class TRatingList extends TRadioButtonList protected function publishRatingListImages($style, $fileExt='.gif')
{
- $images['blank'] = "System.Web.Javascripts.ratings.{$style}_blank";
- $images['hover'] = "System.Web.Javascripts.ratings.{$style}_hover";
- $images['selected'] = "System.Web.Javascripts.ratings.{$style}_selected";
- $images['half'] = "System.Web.Javascripts.ratings.{$style}_half";
+ $images['blank'] = "System.Web.Javascripts.prado.ratings.{$style}_blank";
+ $images['hover'] = "System.Web.Javascripts.prado.ratings.{$style}_hover";
+ $images['selected'] = "System.Web.Javascripts.prado.ratings.{$style}_selected";
+ $images['half'] = "System.Web.Javascripts.prado.ratings.{$style}_half";
$files = array();
foreach($images as $type => $image)
{
|