You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Mario Siegenthaler (JIRA)" <ta...@jakarta.apache.org> on 2005/11/05 14:46:20 UTC

[jira] Commented: (TAPESTRY-669) DatePicker.js line 781 javascript error when Array is customized using Prototype.js from http://prototype.conio.net/

    [ http://issues.apache.org/jira/browse/TAPESTRY-669?page=comments#action_12356850 ] 

Mario Siegenthaler commented on TAPESTRY-669:
---------------------------------------------

IMO it would still be nice if the DatePicker could be modified to work if prototype is loaded, esp. since you cannot always control whether prototype is active (f.e. if developing a component).

> DatePicker.js line 781 javascript error when Array is customized using Prototype.js from http://prototype.conio.net/
> --------------------------------------------------------------------------------------------------------------------
>
>          Key: TAPESTRY-669
>          URL: http://issues.apache.org/jira/browse/TAPESTRY-669
>      Project: Tapestry
>         Type: Bug
>   Components: Framework
>     Versions: 4.0
>  Environment: Windows XP, Internet Explorer 6
>     Reporter: Herbert Hui
>     Assignee: Howard M. Lewis Ship
>     Priority: Minor

>
> Line 781 in DatePicker.js fails when thirdparty methods are added to Array using Prototype.js from http://prototype.conio.net/
> For example if you add the flatten method from http://www.schuerig.de/michael/javascript/stdext.js
> then line 781 will attempt to execute the "frm.replace(/\bflatten\b/,'function(excludeUndefined) {return Array.flatten(this, excludeUndefined);}');"
> Suggested modification to DatePicker.js:
>     var keys = new Array('d','dd','ddd','dddd','M','MM','MMM','MMMM','yyyy','yy');
>     for (var i = 0; i < keys.length; i++) {
>       frm = eval("frm.replace(/\\b" + keys[i] + "\\b/,'" + bits[keys[i]] + "');");
>     }
> // borrowed from http://www.schuerig.de/michael/javascript/stdext.js
> // Copyright (c) 2005, Michael Schuerig, michael@schuerig.de
> Array.flatten = function(array, excludeUndefined) {
>   if (excludeUndefined === undefined) {
>     excludeUndefined = false;
>   }
>   var result = [];
>   var len = array.length;
>   for (var i = 0; i < len; i++) {
>     var el = array[i];
>     if (el instanceof Array) {
>       var flat = el.flatten(excludeUndefined);
>       result = result.concat(flat);
>     } else if (!excludeUndefined || el != undefined) {
>       result.push(el);
>     }
>   }
>   return result;
> };
> if (!Array.prototype.flatten) {
>   Array.prototype.flatten = function(excludeUndefined) {
>     return Array.flatten(this, excludeUndefined);
>   }
> }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org