Changeset 1775 for branches/3.0
- Timestamp:
- 03/26/2007 02:14:23 AM (20 months ago)
- Location:
- branches/3.0
- Files:
-
- 5 removed
- 9 modified
-
UPGRADE (modified) (1 diff)
-
buildscripts/jsbuilder/JavaScript Documentation Tool.html (deleted)
-
buildscripts/jsbuilder/build.php (modified) (3 diffs)
-
framework/Web/Javascripts/js/compressed/ajax.js (deleted)
-
framework/Web/Javascripts/js/compressed/clientscripts.php (modified) (1 diff)
-
framework/Web/Javascripts/js/compressed/colorpicker.js (modified) (1 diff)
-
framework/Web/Javascripts/js/compressed/rico.js (deleted)
-
framework/Web/Javascripts/js/debug/ajax.js (deleted)
-
framework/Web/Javascripts/js/debug/clientscripts.php (modified) (1 diff)
-
framework/Web/Javascripts/js/debug/colorpicker.js (modified) (31 diffs)
-
framework/Web/Javascripts/js/debug/rico.js (deleted)
-
framework/Web/UI/TClientScriptManager.php (modified) (1 diff)
-
framework/Web/UI/WebControls/TColorPicker.php (modified) (2 diffs)
-
framework/Web/UI/WebControls/TDatePicker.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/3.0/UPGRADE
r1553 r1775 25 25 - TJavascriptLogger toggle key is changed from ALT-D to ALT-J. 26 26 Use the ToggleKey property chanage to a different key. 27 - Javascript Library rico was REMOVED. 27 28 28 29 Upgrading from v3.0.4 -
branches/3.0/buildscripts/jsbuilder/build.php
r1768 r1775 28 28 */ 29 29 define('TARGET_DIR',realpath(dirname(__FILE__).'/../../framework/Web/Javascripts/js')); 30 /**31 * Location of the perl JS doc generator.32 */33 define('JS_DOC', realpath(dirname(__FILE__).'/JSDoc/jsdoc.pl'));34 /**35 * Javascript documentation output directory.36 */37 define('DOC_OUTPUT_DIR', realpath(dirname(__FILE__).'/../../docs/Javascript'));38 /**39 * Javascript documentation build command40 */41 define('BUILD_DOC', sprintf('perl "%s" --no-sources -d "%s" ', JS_DOC, DOC_OUTPUT_DIR).'%s');42 30 43 31 define('JSMIN_AS_LIB',true); … … 55 43 $libraries = array( 56 44 'prado.js' => array( 57 58 //base javascript functions59 45 'prototype/prototype.js', 60 'effects/builder.js', 61 62 'extended/base.js', 63 'extended/string.js', 64 'extended/event.js', 65 'extended/date.js', 66 'extended/builder.js', 67 68 69 //prado core 46 'scriptaculous/builder.js', 70 47 'prado/prado.js', 71 'prado/form.js', 72 'prado/element.js', 73 74 //controls 75 'prado/controls.js', 76 'ratings/ratings.js' 48 'prado/scriptaculous-adapter.js', 49 'prado/controls/controls.js' 77 50 ), 78 51 79 //effects80 52 'effects.js' => array( 81 ' effects/effects.js'53 'scriptaculous/effects.js' 82 54 ), 83 55 84 //logging85 56 'logger.js' => array( 86 ' extra/logger.js',57 'prado/logger/logger.js', 87 58 ), 88 59 89 //validator90 60 'validator.js' => array( 91 'prado/validation3.js' 92 //'prado/validators.js' 61 'prado/validator/validation3.js' 93 62 ), 94 63 95 //date picker96 64 'datepicker.js' => array( 97 ' datepicker/datepicker.js'65 'prado/datepicker/datepicker.js' 98 66 ), 99 67 100 //color picker101 68 'colorpicker.js' => array( 102 'rico/colors.js', 103 'colorpicker/colorpicker.js' 69 'prado/colorpicker/colorpicker.js' 104 70 ) 105 71 ); … … 143 109 } 144 110 145 if(isset($argv[1]) && preg_match('/(doc)+/', $argv[1]))146 {147 $files = "";148 foreach($libraries as $lib)149 {150 foreach($lib as $source)151 $files .= sprintf(' "%s/%s"', SOURCE_DIR, $source);152 }153 $command = sprintf(BUILD_DOC, $files);154 system($command);155 }156 else if($builds > 0)157 echo "\nJavascript build complete, {$builds} file(s) compressed.";158 else159 echo "No files to build.";160 161 111 ?> -
branches/3.0/framework/Web/Javascripts/js/compressed/clientscripts.php
r1397 r1775 13 13 14 14 //allowed libraries 15 $library = array('prado', 'effects', ' ajax', 'validator', 'logger', 'datepicker', 'rico', 'colorpicker');15 $library = array('prado', 'effects', 'validator', 'logger', 'datepicker', 'colorpicker'); 16 16 17 17 $param = isset($_GET['js']) ? $_GET['js'] : ''; -
branches/3.0/framework/Web/Javascripts/js/compressed/colorpicker.js
r1397 r1775 1 1 2 if(typeof(Rico)=="undefined")Rico={};Rico.Color=Class.create();Rico.Color.prototype={initialize:function(red,green,blue){this.rgb={r:red,g:green,b:blue};},setRed:function(r){this.rgb.r=r;},setGreen:function(g){this.rgb.g=g;},setBlue:function(b){this.rgb.b=b;},setHue:function(h){var hsb=this.asHSB();hsb.h=h;this.rgb=Rico.Color.HSBtoRGB(hsb.h,hsb.s,hsb.b);},setSaturation:function(s){var hsb=this.asHSB();hsb.s=s;this.rgb=Rico.Color.HSBtoRGB(hsb.h,hsb.s,hsb.b);},setBrightness:function(b){var hsb=this.asHSB();hsb.b=b;this.rgb=Rico.Color.HSBtoRGB(hsb.h,hsb.s,hsb.b);},darken:function(percent){var hsb=this.asHSB();this.rgb=Rico.Color.HSBtoRGB(hsb.h,hsb.s,Math.max(hsb.b-percent,0));},brighten:function(percent){var hsb=this.asHSB();this.rgb=Rico.Color.HSBtoRGB(hsb.h,hsb.s,Math.min(hsb.b+percent,1));},blend:function(other){this.rgb.r=Math.floor((this.rgb.r+other.rgb.r)/2);this.rgb.g=Math.floor((this.rgb.g+other.rgb.g)/2);this.rgb.b=Math.floor((this.rgb.b+other.rgb.b)/2);},isBright:function(){var hsb=this.asHSB();return this.asHSB().b>0.5;},isDark:function(){return!this.isBright();},asRGB:function(){return"rgb("+this.rgb.r+","+this.rgb.g+","+this.rgb.b+")";},asHex:function(){return"#"+this.rgb.r.toColorPart()+this.rgb.g.toColorPart()+this.rgb.b.toColorPart();},asHSB:function(){return Rico.Color.RGBtoHSB(this.rgb.r,this.rgb.g,this.rgb.b);},toString:function(){return this.asHex();}};Rico.Color.createFromHex=function(hexCode){if(hexCode.indexOf('#')==0)3 hexCode=hexCode.substring(1);var red="ff",green="ff",blue="ff";if(hexCode.length>4)4 {red=hexCode.substring(0,2);green=hexCode.substring(2,4);blue=hexCode.substring(4,6);}5 else if(hexCode.length>0&hexCode.length<4)6 {var r=hexCode.substring(0,1);var g=hexCode.substring(1,2);var b=hexCode.substring(2);red=r+r;green=g+g;blue=b+b;}7 return new Rico.Color(parseInt(red,16),parseInt(green,16),parseInt(blue,16));}8 Rico.Color.createColorFromBackground=function(elem){var actualColor=Element.getStyle($(elem),"background-color");if(actualColor=="transparent"&&elem.parent)9 return Rico.Color.createColorFromBackground(elem.parent);if(actualColor==null)10 return new Rico.Color(255,255,255);if(actualColor.indexOf("rgb(")==0){var colors=actualColor.substring(4,actualColor.length-1);var colorArray=colors.split(",");return new Rico.Color(parseInt(colorArray[0]),parseInt(colorArray[1]),parseInt(colorArray[2]));}11 else if(actualColor.indexOf("#")==0){return Rico.Color.createFromHex(actualColor);}12 else13 return new Rico.Color(255,255,255);}14 Rico.Color.HSBtoRGB=function(hue,saturation,brightness){var red=0;var green=0;var blue=0;if(saturation==0){red=parseInt(brightness*255.0+0.5);green=red;blue=red;}15 else{var h=(hue-Math.floor(hue))*6.0;var f=h-Math.floor(h);var p=brightness*(1.0-saturation);var q=brightness*(1.0-saturation*f);var t=brightness*(1.0-(saturation*(1.0-f)));switch(parseInt(h)){case 0:red=(brightness*255.0+0.5);green=(t*255.0+0.5);blue=(p*255.0+0.5);break;case 1:red=(q*255.0+0.5);green=(brightness*255.0+0.5);blue=(p*255.0+0.5);break;case 2:red=(p*255.0+0.5);green=(brightness*255.0+0.5);blue=(t*255.0+0.5);break;case 3:red=(p*255.0+0.5);green=(q*255.0+0.5);blue=(brightness*255.0+0.5);break;case 4:red=(t*255.0+0.5);green=(p*255.0+0.5);blue=(brightness*255.0+0.5);break;case 5:red=(brightness*255.0+0.5);green=(p*255.0+0.5);blue=(q*255.0+0.5);break;}}16 return{r:parseInt(red),g:parseInt(green),b:parseInt(blue)};}17 Rico.Color.RGBtoHSB=function(r,g,b){var hue;var saturaton;var brightness;var cmax=(r>g)?r:g;if(b>cmax)18 cmax=b;var cmin=(r<g)?r:g;if(b<cmin)19 cmin=b;brightness=cmax/255.0;if(cmax!=0)20 saturation=(cmax-cmin)/cmax;else21 saturation=0;if(saturation==0)22 hue=0;else{var redc=(cmax-r)/(cmax-cmin);var greenc=(cmax-g)/(cmax-cmin);var bluec=(cmax-b)/(cmax-cmin);if(r==cmax)23 hue=bluec-greenc;else if(g==cmax)24 hue=2.0+redc-bluec;else25 hue=4.0+greenc-redc;hue=hue/6.0;if(hue<0)26 hue=hue+1.0;}27 return{h:hue,s:saturation,b:brightness};}28 2 Prado.WebUI.TColorPicker=Class.create();Object.extend(Prado.WebUI.TColorPicker,{palettes:{Small:[["fff","fcc","fc9","ff9","ffc","9f9","9ff","cff","ccf","fcf"],["ccc","f66","f96","ff6","ff3","6f9","3ff","6ff","99f","f9f"],["c0c0c0","f00","f90","fc6","ff0","3f3","6cc","3cf","66c","c6c"],["999","c00","f60","fc3","fc0","3c0","0cc","36f","63f","c3c"],["666","900","c60","c93","990","090","399","33f","60c","939"],["333","600","930","963","660","060","366","009","339","636"],["000","300","630","633","330","030","033","006","309","303"]],Tiny:[["ffffff","00ff00","008000","0000ff"],["c0c0c0","ffff00","ff00ff","000080"],["808080","ff0000","800080","000000"]]},UIImages:{'button.gif':'button.gif','background.png':'background.png'}});Object.extend(Prado.WebUI.TColorPicker.prototype,{initialize:function(options) 29 3 {var basics={Palette:'Small',ClassName:'TColorPicker',Mode:'Basic',OKButtonText:'OK',CancelButtonText:'Cancel',ShowColorPicker:true} -
branches/3.0/framework/Web/Javascripts/js/debug/clientscripts.php
r1397 r1775 13 13 14 14 //allowed libraries 15 $library = array('prado', 'effects', ' ajax', 'validator', 'logger', 'datepicker', 'rico', 'colorpicker');15 $library = array('prado', 'effects', 'validator', 'logger', 'datepicker', 'colorpicker'); 16 16 17 17 $param = isset($_GET['js']) ? $_GET['js'] : ''; -
branches/3.0/framework/Web/Javascripts/js/debug/colorpicker.js
r1774 r1775 1 //-------------------- ricoColor.js2 if(typeof(Rico) == "undefined") Rico = {};3 4 Rico.Color = Class.create();5 6 Rico.Color.prototype = {7 8 initialize: function(red, green, blue) {9 this.rgb = { r: red, g : green, b : blue };10 },11 12 setRed: function(r) {13 this.rgb.r = r;14 },15 16 setGreen: function(g) {17 this.rgb.g = g;18 },19 20 setBlue: function(b) {21 this.rgb.b = b;22 },23 24 setHue: function(h) {25 26 // get an HSB model, and set the new hue...27 var hsb = this.asHSB();28 hsb.h = h;29 30 // convert back to RGB...31 this.rgb = Rico.Color.HSBtoRGB(hsb.h, hsb.s, hsb.b);32 },33 34 setSaturation: function(s) {35 // get an HSB model, and set the new hue...36 var hsb = this.asHSB();37 hsb.s = s;38 39 // convert back to RGB and set values...40 this.rgb = Rico.Color.HSBtoRGB(hsb.h, hsb.s, hsb.b);41 },42 43 setBrightness: function(b) {44 // get an HSB model, and set the new hue...45 var hsb = this.asHSB();46 hsb.b = b;47 48 // convert back to RGB and set values...49 this.rgb = Rico.Color.HSBtoRGB( hsb.h, hsb.s, hsb.b );50 },51 52 darken: function(percent) {53 var hsb = this.asHSB();54 this.rgb = Rico.Color.HSBtoRGB(hsb.h, hsb.s, Math.max(hsb.b - percent,0));55 },56 57 brighten: function(percent) {58 var hsb = this.asHSB();59 this.rgb = Rico.Color.HSBtoRGB(hsb.h, hsb.s, Math.min(hsb.b + percent,1));60 },61 62 blend: function(other) {63 this.rgb.r = Math.floor((this.rgb.r + other.rgb.r)/2);64 this.rgb.g = Math.floor((this.rgb.g + other.rgb.g)/2);65 this.rgb.b = Math.floor((this.rgb.b + other.rgb.b)/2);66 },67 68 isBright: function() {69 var hsb = this.asHSB();70 return this.asHSB().b > 0.5;71 },72 73 isDark: function() {74 return ! this.isBright();75 },76 77 asRGB: function() {78 return "rgb(" + this.rgb.r + "," + this.rgb.g + "," + this.rgb.b + ")";79 },80 81 asHex: function() {82 return "#" + this.rgb.r.toColorPart() + this.rgb.g.toColorPart() + this.rgb.b.toColorPart();83 },84 85 asHSB: function() {86 return Rico.Color.RGBtoHSB(this.rgb.r, this.rgb.g, this.rgb.b);87 },88 89 toString: function() {90 return this.asHex();91 }92 93 };94 95 Rico.Color.createFromHex = function(hexCode) {96 97 if ( hexCode.indexOf('#') == 0 )98 hexCode = hexCode.substring(1);99 100 var red = "ff", green = "ff", blue="ff";101 if(hexCode.length > 4)102 {103 red = hexCode.substring(0,2);104 green = hexCode.substring(2,4);105 blue = hexCode.substring(4,6);106 }107 else if(hexCode.length > 0 & hexCode.length < 4)108 {109 var r = hexCode.substring(0,1);110 var g = hexCode.substring(1,2);111 var b = hexCode.substring(2);112 red = r+r;113 green = g+g;114 blue = b+b;115 }116 return new Rico.Color( parseInt(red,16), parseInt(green,16), parseInt(blue,16) );117 }118 119 /**120 * Factory method for creating a color from the background of121 * an HTML element.122 */123 Rico.Color.createColorFromBackground = function(elem) {124 125 var actualColor = Element.getStyle($(elem), "background-color");126 if ( actualColor == "transparent" && elem.parent )127 return Rico.Color.createColorFromBackground(elem.parent);128 129 if ( actualColor == null )130 return new Rico.Color(255,255,255);131 132 if ( actualColor.indexOf("rgb(") == 0 ) {133 var colors = actualColor.substring(4, actualColor.length - 1 );134 var colorArray = colors.split(",");135 return new Rico.Color( parseInt( colorArray[0] ),136 parseInt( colorArray[1] ),137 parseInt( colorArray[2] ) );138 139 }140 else if ( actualColor.indexOf("#") == 0 ) {141 return Rico.Color.createFromHex(actualColor);142 }143 else144 return new Rico.Color(255,255,255);145 }146 147 Rico.Color.HSBtoRGB = function(hue, saturation, brightness) {148 149 var red = 0;150 var green = 0;151 var blue = 0;152 153 if (saturation == 0) {154 red = parseInt(brightness * 255.0 + 0.5);155 green = red;156 blue = red;157 }158 else {159 var h = (hue - Math.floor(hue)) * 6.0;160 var f = h - Math.floor(h);161 var p = brightness * (1.0 - saturation);162 var q = brightness * (1.0 - saturation * f);163 var t = brightness * (1.0 - (saturation * (1.0 - f)));164 165 switch (parseInt(h)) {166 case 0:167 red = (brightness * 255.0 + 0.5);168 green = (t * 255.0 + 0.5);169 blue = (p * 255.0 + 0.5);170 break;171 case 1:172 red = (q * 255.0 + 0.5);173 green = (brightness * 255.0 + 0.5);174 blue = (p * 255.0 + 0.5);175 break;176 case 2:177 red = (p * 255.0 + 0.5);178 green = (brightness * 255.0 + 0.5);179 blue = (t * 255.0 + 0.5);180 break;181 case 3:182 red = (p * 255.0 + 0.5);183 green = (q * 255.0 + 0.5);184 blue = (brightness * 255.0 + 0.5);185 break;186 case 4:187 red = (t * 255.0 + 0.5);188 green = (p * 255.0 + 0.5);189 blue = (brightness * 255.0 + 0.5);190 break;191 case 5:192 red = (brightness * 255.0 + 0.5);193 green = (p * 255.0 + 0.5);194 blue = (q * 255.0 + 0.5);195 break;196 }197 }198 199 return { r : parseInt(red), g : parseInt(green) , b : parseInt(blue) };200 }201 202 Rico.Color.RGBtoHSB = function(r, g, b) {203 204 var hue;205 var saturaton;206 var brightness;207 208 var cmax = (r > g) ? r : g;209 if (b > cmax)210 cmax = b;211 212 var cmin = (r < g) ? r : g;213 if (b < cmin)214 cmin = b;215 216 brightness = cmax / 255.0;217 if (cmax != 0)218 saturation = (cmax - cmin)/cmax;219 else220 saturation = 0;221 222 if (saturation == 0)223 hue = 0;224 else {225 var redc = (cmax - r)/(cmax - cmin);226 var greenc = (cmax - g)/(cmax - cmin);227 var bluec = (cmax - b)/(cmax - cmin);228 229 if (r == cmax)230 hue = bluec - greenc;231 else if (g == cmax)232 hue = 2.0 + redc - bluec;233 else234 hue = 4.0 + greenc - redc;235 236 hue = hue / 6.0;237 if (hue < 0)238 hue = hue + 1.0;239 }240 241 return { h : hue, s : saturation, b : brightness };242 }243 244 245 246 1 Prado.WebUI.TColorPicker = Class.create(); 247 2 248 3 Object.extend(Prado.WebUI.TColorPicker, 249 4 { 250 palettes: 5 palettes: 251 6 { 252 7 Small : [["fff", "fcc", "fc9", "ff9", "ffc", "9f9", "9ff", "cff", "ccf", "fcf"], … … 263 18 }, 264 19 265 UIImages : 20 UIImages : 266 21 { 267 22 'button.gif' : 'button.gif', … … 274 29 }); 275 30 276 Object.extend(Prado.WebUI.TColorPicker.prototype, 31 Object.extend(Prado.WebUI.TColorPicker.prototype, 277 32 { 278 33 initialize : function(options) 279 34 { 280 var basics = 35 var basics = 281 36 { 282 37 Palette : 'Small', … … 287 42 ShowColorPicker : true 288 43 } 289 44 290 45 this.element = null; 291 46 this.showing = false; … … 303 58 updatePicker : function(e) 304 59 { 305 var color = Rico.Color.createFromHex(this.input.value); 60 var color = Rico.Color.createFromHex(this.input.value); 306 61 this.button.style.backgroundColor = color.toString(); 307 62 }, 308 63 309 64 buttonOnClick : function(event) 310 65 { … … 330 85 } 331 86 this.show(mode); 332 }, 87 }, 333 88 334 89 show : function(type) … … 342 97 this.element.style.left = pos[0] + "px"; 343 98 this.element.style.display = "block"; 344 99 345 100 this.ieHack(type); 346 101 … … 349 104 this._documentKeyDownEvent = this.keyPressed.bindEvent(this, type); 350 105 Event.observe(document.body, "click", this._documentClickEvent); 351 Event.observe(document,"keydown", this._documentKeyDownEvent); 106 Event.observe(document,"keydown", this._documentKeyDownEvent); 352 107 this.showing = true; 353 108 … … 361 116 } 362 117 }, 363 118 364 119 hide : function(event) 365 120 { … … 372 127 this.showing = false; 373 128 Event.stopObserving(document.body, "click", this._documentClickEvent); 374 Event.stopObserving(document,"keydown", this._documentKeyDownEvent); 375 129 Event.stopObserving(document,"keydown", this._documentKeyDownEvent); 130 376 131 if(this._observingMouseMove) 377 { 378 Event.stopObserving(document.body, "mousemove", this._onMouseMove); 132 { 133 Event.stopObserving(document.body, "mousemove", this._onMouseMove); 379 134 this._observingMouseMove = false; 380 135 } … … 398 153 within = within || el == this.input; 399 154 if(within) break; 400 el = el.parentNode; 155 el = el.parentNode; 401 156 } 402 157 while(el); … … 404 159 }, 405 160 406 ieHack : function() 161 ieHack : function() 407 162 { 408 163 // IE hack 409 if(this.iePopUp) 164 if(this.iePopUp) 410 165 { 411 166 this.iePopUp.style.display = "block"; … … 450 205 cellOnClick : function(e) 451 206 { 452 var el = Event.element(e); 207 var el = Event.element(e); 453 208 if(el.tagName.toLowerCase() != "img") 454 209 return; … … 466 221 467 222 getFullPickerContainer : function(pickerID) 468 { 223 { 469 224 //create the 3 buttons 470 this.buttons = 225 this.buttons = 471 226 { 472 227 //Less : INPUT({value:'Less Colors', className:'button', type:'button'}), … … 474 229 Cancel : INPUT({value:this.options.CancelButtonText, className:'button', type:'button'}) 475 230 }; 476 231 477 232 //create the 6 inputs 478 233 var inputs = {}; … … 485 240 inputs['HEX'] = INPUT({className:'hex',type:'text',size:'6',maxlength:'6'}); 486 241 this.inputs = inputs; 487 242 488 243 var images = Prado.WebUI.TColorPicker.UIImages; 489 244 … … 491 246 this.inputs['oldColor'] = SPAN({className:'oldColor'}); 492 247 493 var inputsTable = 248 var inputsTable = 494 249 TABLE({className:'inputs'}, TBODY(null, 495 250 TR(null, … … 504 259 TD(null,'S:'), 505 260 TD(null,this.inputs['S'], '%')), 506 507 TR(null, 261 262 TR(null, 508 263 TD(null,'V:'), 509 264 TD(null,this.inputs['V'], '%')), 510 511 TR(null, 265 266 TR(null, 512 267 TD({className:'gap'},'R:'), 513 268 TD({className:'gap'},this.inputs['R'])), 514 515 TR(null, 269 270 TR(null, 516 271 TD(null,'G:'), 517 272 TD(null, this.inputs['G'])), 518 273 519 TR(null, 274 TR(null, 520 275 TD(null,'B:'), 521 276 TD(null, this.inputs['B'])), 522 277 523 TR(null, 278 TR(null, 524 279 TD({className:'gap'},'#'), 525 280 TD({className:'gap'},this.inputs['HEX'])) 526 281 )); 527 282 528 var UIimages = 529 { 283 var UIimages = 284 { 530 285 selector : SPAN({className:'selector'}), 531 286 background : SPAN({className:'colorpanel'}),
