[OpenAjaxIDE] date formatting

Adam Peller apeller at us.ibm.com
Wed Aug 19 18:52:33 PDT 2009


What some see as inflexibility, I see as support for good coding practices.
When bad coding practices bleed through into standards, I worry.  Have we
considered just how difficult this would be to work around and just how
many toolkits besides YUI do this?  I think it's worth asking YUI if they
have any plans to move to ISO.  I just asked on #yui but may need to find
another place to raise the issue.

-Adam



                                                                           
             Kin Blas                                                      
             <jblas at adobe.com>                                             
             Sent by:                                                   To 
             ide-bounces at opena         "ide at openajax.org"                  
             jax.org                   <ide at openajax.org>                  
                                                                        cc 
                                                                           
             08/19/2009 06:15                                      Subject 
             PM                        Re: [OpenAjaxIDE] date formatting   
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




For the datatype=”Date” there are 2 supported format values, “date” and
“time”:

<property name=”myDate” datatype=”Date” format=”date” />
<property name=”myTime” datatype=”Date” format=”time” />

Rather than introducing another attribute, as proposed in Scott’s example.
Why not just leverage the existing @format attribute in conjunction with
the variables used by PHP:

http://us.php.net/manual/en/function.date.php.

The current proposed values for the Date @format aren’t that useful in my
opinion. So I envision something like:

<property name=”myDate” datatype=”Date” format=”d/m/Y” />
<property name=”myTime” datatype=”Date” format=”g:i:s” />

Regarding Jon’s comment about being able to work around this problem with
additional code added to the <javascript> or <content> sections … I really
feel that if we want this OAM format to be adopted by the various
frameworks and the industry, that we need to make it drop-dead simple for
them to support their formats/patterns so they don’t have to resort to
writing extra-glue code to make up for our in-flexibility.

--== Kin ==--’

From: ide-bounces at openajax.org [mailto:ide-bounces at openajax.org] On Behalf
Of Scott Richards
Sent: Wednesday, August 19, 2009 3:00 PM
To: Steve Repetti; 'Jon Ferraiolo'; ide at openajax.org
Subject: Re: [OpenAjaxIDE] date formatting

I think a lightweight solution that supports a very small set of legacy
formats would be all we need.  Sounds like Steve’s 40+ lines of DateFormat
code could handle this.

I like a simple approach of adding an additional formatString=”” attribute
or maybe call it formatPattern that enables you to format in the value that
is replaced using the @@variableName@@ notation in either the <javascript>
or <content> sections.  Here is an example.

<property datatype=”date” format=”date” formatString=”YYYY-MM-DD” />



where:
     YYYY = four-digit year
     MM   = two-digit month (01=January, etc.)
     DD   = two-digit day of month (01 through 31)
     hh   = two digits of hour (00 through 23) (am/pm NOT allowed)
     mm   = two digits of minute (00 through 59)
     ss   = two digits of second (00 through 59)



The formats from YUI Calendar takes Javascript Date Object or a string
formatted as “mm/yyyy” and “mm/dd/yyyy”.  The selected property can only be
specified with a string not a Javascript date object and it does not
support ISO 8601 format.  See this link

http://developer.yahoo.com/yui/calendar/#config

Here is an example of how we could support YUI Calendar date strings using
formatString.


var cal1 = new YAHOO.widget.Calendar("cal1",
                                    "cal1Container",
                                       { pagedate:"5/2007",
                                         selected:"5/5/2007-5/27/2007" });

This would look like the following in the oam.xml file:

      <javascript>
var cal1 = new YAHOO.widget.Calendar("cal1",
                                    "cal1Container",
                                       { pagedate:"@@pageDate@@",

selected:"@@selectDateStart@@-@@selectDateEnd@@" });
      </javascript>

      <property name=”pageDate” datatype=”date” format=”date”
      formatString=”MM/YYYY” />
      <property name=” selectDateStart” datatype=”date” format=”date”
      formatString=”MM/DD/YYYY” />
      <property name=” selectDateEnd” datatype=”date” format=”date”
      formatString=”MM/DD/YYYY” />


Not sure if we should support dropping out leading 0’s, do we need to
support this?  We could do with just M or D. But the YUI calendar works
specifying dates with or without leading 0’s. So this may be unnecessary.



Here is the link for jQuery Date formats.  They support multiple formats
including iso 8601.  So with  could support it as follows:

http://docs.jquery.com/UI/Datepicker/formatDate

Here are some examples from jQuery

$('.selector').datepicker({ appendText: '(YYYY-MM-DD)' });


Here is what this would like in the oam.xml file:

      <javascript>
      $('.selector').datepicker({ appendText: '(@@appendText@@)' });
      </javascript>).

      <property name=”appendText” datatype=”date” format=”date”
      formatString=” YYYY-MM-DD” />



From: ide-bounces at openajax.org [mailto:ide-bounces at openajax.org] On Behalf
Of Steve Repetti
Sent: Wednesday, August 19, 2009 12:39 PM
To: 'Jon Ferraiolo'; ide at openajax.org
Subject: Re: [OpenAjaxIDE] date formatting

Jon,

Just wanted to remind you that the 40+/- lines of code from my dateFormat()
function would handle your example as follows:

dateFormat( “MM/YYYY” )
dateFormat( “MM/DD/YYYY” )
dateFormat( “MM/DD” )
the above renders the current date in the desired formats. Alternatively,
you could specify have specified a specific date as the first parameter.

Please note, that dateFormat( ) has very little internationalization other
than inherited from JS, but again if you are interested I would be happy to
dinate the code base.

Steve Repetti
www.radwebtech.com



From: ide-bounces at openajax.org [mailto:ide-bounces at openajax.org] On Behalf
Of Jon Ferraiolo
Sent: Wednesday, August 19, 2009 3:25 PM
To: ide at openajax.org
Subject: [OpenAjaxIDE] date formatting



I want to make sure I understand the use case for date formatting.

One of the target scenarios mentioned during yesterday's phone call was the
YUI calendar widget:

* http://developer.yahoo.com/yui/calendar/

which takes a few parameters (pagedate, selected, mindate, maxdate) which
are expected to look like:

MM/YYYY
MM/DD/YYYY
MM/DD

Am I understanding the YUI documentation correctly?

I believe the target workflow is that an IDE (e.g., Dreamweaver) recognizes
that a particular property is a date (e.g., due to format="date") and posts
a date picker widget, and after the user picks a date, then the IDE needs
to format the date value into a format that is compatible with what the
widget's constructor expects. Correct?

Kin or Scott: do you have an OAM file for the YUI date picker widget? I
would like to see how the OAM file is set up, particularly how the data
parameters are set up, and what aspects of the OAM file are a mismatch with
YUI.

Below I have copied an OAM file that I found on the Dreamweaver extensions
site for a YUI tooltip widget. If the OAM file for the YUI calendar widget
uses similar approaches (e.g., <javascript location="afterContent">), then
it seems to me that the transformation of the date value into MM/DD/YYYY
format would be easy to do via JavaScript that is included with the logic
in the <javascript> element.

Thanks.
Jon

-----------------

<?xml version="1.0" encoding="utf-8"?>

<widget xmlns:dw="http://ns.adobe.com/dreamweaver"
xmlns=".http://openajax.org/metadata"
name="YUI Tooltip"
version="2.6.0"
aboutUri="http://developer.yahoo.com/yui/tooltip/"
id="http://developer.yahoo.com/yui/tooltip/">

<author name="Yahoo! Inc." />

<javascript location="afterContent">
<![CDATA[
(function() {
var cn = document.body.className.toString();
if (cn.indexOf('yui-skin-sam') == -1) {
document.body.className += " yui-skin-sam";
}
})();

var @@yuitooltip@@ = new YAHOO.widget.Tooltip("@@yuitooltip@@",
{
context:"@@contextid@@",
text:"You are hovering over the Lorem Ipsum paragraph."
});
]]>
</javascript>

<content>
<![CDATA[
<p><em>Hover over the Lorem Ipsum paragraph to see the tooltip.</em></p>
<p id="@@contextid@@">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce egestas
fringilla mi. Pellentesque habitant morbi tristique senectus et netus et
malesuada fames ac turpis egestas. Maecenas ac felis. Cras ligula odio,
tincidunt ac, suscipit et, vehicula a, neque. Nullam id nunc. Suspendisse
tristique augue tempus elit. Fusce hendrerit viverra nibh. Fusce a diam non
lectus tempus euismod. Duis sed purus at metus molestie adipiscing. Aenean
orci odio, rutrum sed, gravida a, pellentesque vel, augue. Ut est purus,
ullamcorper eu, facilisis ac, adipiscing at, lectus. Integer erat. Nunc
eleifend consequat sem. Donec orci dolor, adipiscing vitae, ultrices a,
venenatis et, mi. Proin semper accumsan metus. Integer sollicitudin, tortor
eu egestas pulvinar, augue dui elementum lectus, ac pretium tortor lacus
vel tortor. Morbi placerat. Nulla facilisi.
</p>
]]>
</content>

<requires>
<require type="css" src="../YUI/2.6.0/build/fonts/fonts-min.css"
includeRef="true" dw:shared="true"/>
<require type="css"
src="../YUI/2.6.0/build/container/assets/skins/sam/container.css"
includeRef="true" dw:shared="true"/>
<require type="javascript"
src="../YUI/2.6.0/build/yahoo-dom-event/yahoo-dom-event.js"
includeRef="true" dw:shared="true"/>
<require type="javascript"
src="../YUI/2.6.0/build/container/container-min.js" includeRef="true"
dw:shared="true"/>
</requires>

<category name="YUI"/>

<properties>
<property name="yuitooltip" default="yuitooltip" datatype="string"
format="id"/>
<property name="contextid" default="contextid" datatype="string"
format="id"/>
</properties>

<description>
<![CDATA[
<p>The Tooltip Control is analogous to popup tooltips within common
operating systems. The standard tooltip interaction pattern involves a
small overlay that is displayed when the mouse hovers over a context
element for a specified amount of time. Tooltip is designed to be simple to
implement with easily-accessed configuration options and visual styling
handled entirely via CSS.</p>
<p>The Yahoo! User Interface (YUI) Library is a set of components, written
in JavaScript, for building richly interactive web applications using
techniques such as DOM scripting, DHTML and AJAX. The YUI Library also
includes several core CSS resources. All components in the YUI Library are
available under the BSD license and are free for all uses. More information
is available at: http://developer.yahoo.com/yui/ .</p>
]]>
</description>

<dw:extension>
<dw:translator>
<dw:widgetRegExp><![CDATA[var\s*[^=]+\s*=\s*new\s*YAHOO\.widget\.Tooltip
\s*\(\s*[^{]+{[^"']+["']([^"']+)["'][^}]+}\s*\);]]></dw:widgetRegExp>
<dw:widgetConstructor>YAHOO.widget.Tooltip</dw:widgetConstructor>
<dw:help dw:src="http://developer.yahoo.com/yui/container/>">Yahoo Widget
Tooltip Help</dw:help>
</dw:translator>
</dw:extension>

</widget>

_______________________________________________
IDE mailing list
IDE at openajax.org
http://openajax.org/mailman/listinfo/ide


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://openajax.org/pipermail/ide/attachments/20090819/62599f42/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
Url : http://openajax.org/pipermail/ide/attachments/20090819/62599f42/attachment-0003.gif 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pic16953.gif
Type: image/gif
Size: 1255 bytes
Desc: not available
Url : http://openajax.org/pipermail/ide/attachments/20090819/62599f42/attachment-0004.gif 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ecblank.gif
Type: image/gif
Size: 45 bytes
Desc: not available
Url : http://openajax.org/pipermail/ide/attachments/20090819/62599f42/attachment-0005.gif 


More information about the IDE mailing list