From 3fb25eec92c0c72760c4bf8040efd4b86c446bc6 Mon Sep 17 00:00:00 2001 From: wei <> Date: Fri, 30 Mar 2007 00:38:41 +0000 Subject: Fixed #579 --- .gitattributes | 13 ++ HISTORY | 2 + UPGRADE | 3 + buildscripts/jsbuilder/build.php | 6 +- framework/I18N/core/MessageSource_XLIFF.php | 8 +- framework/Web/Javascripts/js/compressed/ajax.js | 32 +++- framework/Web/Javascripts/js/compressed/prado.js | 15 +- framework/Web/Javascripts/js/debug/ajax.js | 179 +++++++++++++++++++++ framework/Web/Javascripts/js/debug/prado.js | 61 +++++++ .../Web/Javascripts/prado/activeratings/blocks.css | 42 +++++ .../Web/Javascripts/prado/activeratings/blocks.png | Bin 0 -> 28700 bytes .../prado/activeratings/blocks_blank.gif | Bin 0 -> 72 bytes .../prado/activeratings/blocks_combined.gif | Bin 0 -> 289 bytes .../prado/activeratings/blocks_half.gif | Bin 0 -> 94 bytes .../prado/activeratings/blocks_selected.gif | Bin 0 -> 75 bytes .../Javascripts/prado/activeratings/default.css | 43 +++++ .../Javascripts/prado/activeratings/default.png | Bin 0 -> 51492 bytes .../prado/activeratings/default_blank.gif | Bin 0 -> 158 bytes .../prado/activeratings/default_combined.gif | Bin 0 -> 1201 bytes .../prado/activeratings/default_half.gif | Bin 0 -> 610 bytes .../prado/activeratings/default_selected.gif | Bin 0 -> 603 bytes .../Web/Javascripts/prado/activeratings/ratings.js | 178 ++++++++++++++++++++ .../Web/UI/ActiveControls/TActiveRatingList.php | 16 +- 23 files changed, 585 insertions(+), 13 deletions(-) create mode 100644 framework/Web/Javascripts/prado/activeratings/blocks.css create mode 100644 framework/Web/Javascripts/prado/activeratings/blocks.png create mode 100644 framework/Web/Javascripts/prado/activeratings/blocks_blank.gif create mode 100644 framework/Web/Javascripts/prado/activeratings/blocks_combined.gif create mode 100644 framework/Web/Javascripts/prado/activeratings/blocks_half.gif create mode 100644 framework/Web/Javascripts/prado/activeratings/blocks_selected.gif create mode 100644 framework/Web/Javascripts/prado/activeratings/default.css create mode 100644 framework/Web/Javascripts/prado/activeratings/default.png create mode 100644 framework/Web/Javascripts/prado/activeratings/default_blank.gif create mode 100644 framework/Web/Javascripts/prado/activeratings/default_combined.gif create mode 100644 framework/Web/Javascripts/prado/activeratings/default_half.gif create mode 100644 framework/Web/Javascripts/prado/activeratings/default_selected.gif create mode 100644 framework/Web/Javascripts/prado/activeratings/ratings.js diff --git a/.gitattributes b/.gitattributes index ec41c3e0..eaca3230 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1933,6 +1933,19 @@ framework/Web/Javascripts/prado/activecontrols/activecontrols3.js -text framework/Web/Javascripts/prado/activecontrols/ajax3.js -text framework/Web/Javascripts/prado/activecontrols/inlineeditor.js -text framework/Web/Javascripts/prado/activecontrols/json.js -text +framework/Web/Javascripts/prado/activeratings/blocks.css -text +framework/Web/Javascripts/prado/activeratings/blocks.png -text +framework/Web/Javascripts/prado/activeratings/blocks_blank.gif -text +framework/Web/Javascripts/prado/activeratings/blocks_combined.gif -text +framework/Web/Javascripts/prado/activeratings/blocks_half.gif -text +framework/Web/Javascripts/prado/activeratings/blocks_selected.gif -text +framework/Web/Javascripts/prado/activeratings/default.css -text +framework/Web/Javascripts/prado/activeratings/default.png -text +framework/Web/Javascripts/prado/activeratings/default_blank.gif -text +framework/Web/Javascripts/prado/activeratings/default_combined.gif -text +framework/Web/Javascripts/prado/activeratings/default_half.gif -text +framework/Web/Javascripts/prado/activeratings/default_selected.gif -text +framework/Web/Javascripts/prado/activeratings/ratings.js -text framework/Web/Javascripts/prado/colorpicker/background.png -text framework/Web/Javascripts/prado/colorpicker/button.gif -text framework/Web/Javascripts/prado/colorpicker/colorpicker.js -text diff --git a/HISTORY b/HISTORY index e0bc4608..ceca195a 100644 --- a/HISTORY +++ b/HISTORY @@ -10,8 +10,10 @@ BUG: Ticket#553 - I18N quickstart sample does not work (Qiang) BUG: Ticket#555 - TNumberFormat throws exception (Qiang) BUG: Ticket#560 - TActiveImageButton broken (Postback instead of Callback) (Wei) BUG: Ticket#573 - NumberFormat Bug (Wei) +BUG: Ticket#579 - The rating list lost its Javascript in changeset [1775] (Wei). BUG: TXmlElement did not encode attribute and text values when being saved as a string (Qiang) BUG: SelectedIndices not return expected result for ActiveListBox (Wei) +ENH: Ticket#367 - Change default extension for XLIFF files (Wei, changed to support .xlf extension). ENH: Ticket#430 - clearing the validator errors (Wei) ENH: Ticket#436 - update script.aculo.us to 1.6.4 (Wei, updated to v 1.7.1beta) ENH: Ticket#482 - ADD TinyMCE 2.0.8 (Wei, TinyMCE 2.1 added) diff --git a/UPGRADE b/UPGRADE index 7440b7ce..731f0522 100644 --- a/UPGRADE +++ b/UPGRADE @@ -27,6 +27,9 @@ Upgrading from v3.1a const TABLE='users_table'; } +- Changed TActiveRatingList's javascript control class + name from "Prado.WebUI.TRatingList" to "Prado.WebUI.TActiveRatingList". + Upgrading from v3.0.x --------------------- - Validators ClientSide.OnSuccess becomes ClientSide.OnValidationSuccess, diff --git a/buildscripts/jsbuilder/build.php b/buildscripts/jsbuilder/build.php index 1a46b29f..1684d0ac 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( @@ -74,7 +75,8 @@ $libraries = array( 'prado/activecontrols/json.js', 'prado/activecontrols/ajax3.js', 'prado/activecontrols/activecontrols3.js', - 'prado/activecontrols/inlineeditor.js' + 'prado/activecontrols/inlineeditor.js', + 'prado/activeratings/ratings.js' ) ); diff --git a/framework/I18N/core/MessageSource_XLIFF.php b/framework/I18N/core/MessageSource_XLIFF.php index eafc0983..64277e7b 100644 --- a/framework/I18N/core/MessageSource_XLIFF.php +++ b/framework/I18N/core/MessageSource_XLIFF.php @@ -150,7 +150,13 @@ class MessageSource_XLIFF extends MessageSource $byDir = $this->getCatalogueByDir($catalogue); $catalogues = array_merge($byDir,array_reverse($catalogues)); - return $catalogues; + $files = array(); + foreach($catalogues as $file) + { + $files[] = $file; + $files[] = preg_replace('/\.xml$/', '.xlf', $file); + } + return $files; } /** diff --git a/framework/Web/Javascripts/js/compressed/ajax.js b/framework/Web/Javascripts/js/compressed/ajax.js index 7f08d38c..d67d6adb 100644 --- a/framework/Web/Javascripts/js/compressed/ajax.js +++ b/framework/Web/Javascripts/js/compressed/ajax.js @@ -315,4 +315,34 @@ this.options.onFailure(sender,parameter);}},{textboxes:{},register:function(obj) {var textbox=Prado.WebUI.TInPlaceTextBox.textboxes[id];if(textbox) {if(value) textbox.enterEditMode(null);else -{textbox.exitEditMode(null);}}}}); \ No newline at end of file +{textbox.exitEditMode(null);}}}});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;ihalfMax?base+1:base;for(var i=0;ihalfMax?base+1:base;var hasHalf=remainder>=halfMin&&remainder<=halfMax;for(var i=0;iindex?'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-1?this.radios[index].value:this.options.caption;}} \ No newline at end of file diff --git a/framework/Web/Javascripts/js/debug/ajax.js b/framework/Web/Javascripts/js/debug/ajax.js index 60956194..6ae0ab40 100644 --- a/framework/Web/Javascripts/js/debug/ajax.js +++ b/framework/Web/Javascripts/js/debug/ajax.js @@ -2472,3 +2472,182 @@ Prado.WebUI.TInPlaceTextBox = Base.extend( } }); +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 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](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 -1 ? + this.radios[index].value : this.options.caption; + } +} + diff --git a/framework/Web/Javascripts/prado/activeratings/blocks.css b/framework/Web/Javascripts/prado/activeratings/blocks.css new file mode 100644 index 00000000..bb846094 --- /dev/null +++ b/framework/Web/Javascripts/prado/activeratings/blocks.css @@ -0,0 +1,42 @@ +.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/prado/activeratings/blocks.png b/framework/Web/Javascripts/prado/activeratings/blocks.png new file mode 100644 index 00000000..93a5333e Binary files /dev/null and b/framework/Web/Javascripts/prado/activeratings/blocks.png differ diff --git a/framework/Web/Javascripts/prado/activeratings/blocks_blank.gif b/framework/Web/Javascripts/prado/activeratings/blocks_blank.gif new file mode 100644 index 00000000..c0db17c2 Binary files /dev/null and b/framework/Web/Javascripts/prado/activeratings/blocks_blank.gif differ diff --git a/framework/Web/Javascripts/prado/activeratings/blocks_combined.gif b/framework/Web/Javascripts/prado/activeratings/blocks_combined.gif new file mode 100644 index 00000000..dfe9da8d Binary files /dev/null and b/framework/Web/Javascripts/prado/activeratings/blocks_combined.gif differ diff --git a/framework/Web/Javascripts/prado/activeratings/blocks_half.gif b/framework/Web/Javascripts/prado/activeratings/blocks_half.gif new file mode 100644 index 00000000..a9e23d7c Binary files /dev/null and b/framework/Web/Javascripts/prado/activeratings/blocks_half.gif differ diff --git a/framework/Web/Javascripts/prado/activeratings/blocks_selected.gif b/framework/Web/Javascripts/prado/activeratings/blocks_selected.gif new file mode 100644 index 00000000..f743d27e Binary files /dev/null and b/framework/Web/Javascripts/prado/activeratings/blocks_selected.gif differ diff --git a/framework/Web/Javascripts/prado/activeratings/default.css b/framework/Web/Javascripts/prado/activeratings/default.css new file mode 100644 index 00000000..ba90eb27 --- /dev/null +++ b/framework/Web/Javascripts/prado/activeratings/default.css @@ -0,0 +1,43 @@ +.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/prado/activeratings/default.png b/framework/Web/Javascripts/prado/activeratings/default.png new file mode 100644 index 00000000..a3148ff4 Binary files /dev/null and b/framework/Web/Javascripts/prado/activeratings/default.png differ diff --git a/framework/Web/Javascripts/prado/activeratings/default_blank.gif b/framework/Web/Javascripts/prado/activeratings/default_blank.gif new file mode 100644 index 00000000..0337ad16 Binary files /dev/null and b/framework/Web/Javascripts/prado/activeratings/default_blank.gif differ diff --git a/framework/Web/Javascripts/prado/activeratings/default_combined.gif b/framework/Web/Javascripts/prado/activeratings/default_combined.gif new file mode 100644 index 00000000..ddab2e8b Binary files /dev/null and b/framework/Web/Javascripts/prado/activeratings/default_combined.gif differ diff --git a/framework/Web/Javascripts/prado/activeratings/default_half.gif b/framework/Web/Javascripts/prado/activeratings/default_half.gif new file mode 100644 index 00000000..ed214acd Binary files /dev/null and b/framework/Web/Javascripts/prado/activeratings/default_half.gif differ diff --git a/framework/Web/Javascripts/prado/activeratings/default_selected.gif b/framework/Web/Javascripts/prado/activeratings/default_selected.gif new file mode 100644 index 00000000..98704fad Binary files /dev/null and b/framework/Web/Javascripts/prado/activeratings/default_selected.gif differ diff --git a/framework/Web/Javascripts/prado/activeratings/ratings.js b/framework/Web/Javascripts/prado/activeratings/ratings.js new file mode 100644 index 00000000..884a695a --- /dev/null +++ b/framework/Web/Javascripts/prado/activeratings/ratings.js @@ -0,0 +1,178 @@ +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 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](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; igetRatingStyle(); + return 'TActiveRatingList_'.$this->getRatingStyle(); } /** @@ -268,7 +268,7 @@ class TActiveRatingList extends TActiveRadioButtonList protected function publishRatingListStyle($style) { $cs = $this->getPage()->getClientScript(); - $stylesheet = 'System.Web.Javascripts.ratings.'.$style; + $stylesheet = 'System.Web.Javascripts.prado.activeratings.'.$style; if(($cssFile=Prado::getPathOfNamespace($stylesheet,'.css'))===null) throw new TConfigurationException('ratinglist_stylesheet_not_found',$style); $url = $this->publishFilePath($cssFile); @@ -284,10 +284,10 @@ class TActiveRatingList extends TActiveRadioButtonList */ protected function publishRatingListImages($style, $fileExt='.gif') { - $images['blank'] = "System.Web.Javascripts.ratings.{$style}_blank"; - $images['selected'] = "System.Web.Javascripts.ratings.{$style}_selected"; - $images['half'] = "System.Web.Javascripts.ratings.{$style}_half"; - $images['combined'] = "System.Web.Javascripts.ratings.{$style}_combined"; + $images['blank'] = "System.Web.Javascripts.prado.activeratings.{$style}_blank"; + $images['selected'] = "System.Web.Javascripts.prado.activeratings.{$style}_selected"; + $images['half'] = "System.Web.Javascripts.prado.activeratings.{$style}_half"; + $images['combined'] = "System.Web.Javascripts.prado.activeratings.{$style}_combined"; $files = array(); foreach($images as $type => $image) { @@ -368,7 +368,7 @@ class TActiveRatingList extends TActiveRadioButtonList */ protected function getClientClassName() { - return 'Prado.WebUI.TRatingList'; + return 'Prado.WebUI.TActiveRatingList'; } } -- cgit v1.2.3