[OpenAjaxIDE] date formatting

Adam Peller apeller at us.ibm.com
Wed Aug 19 18:47:39 PDT 2009


Besides YUI, what formats do we need to support?  I'd still like to hear
more examples, not just to justify this but to help isolate the range of
formats needed.  Specifically, which other widgets are known not to support
ISO dates?  Does it follow that Unix epoch timestamps need to be supported
also?

Also, Steve, do your format chars follow any existing library?  The common
ones I know of are PHP, Unix, and Java.  iirc, PHP and Unix are similar but
not identical.

-Adam



                                                                           
             "Steve Repetti"                                               
             <steve at radwebtech                                             
             .com>                                                      To 
             Sent by:                  "'Scott Richards'"                  
             ide-bounces at opena         <scrichar at adobe.com>, Jon           
             jax.org                   Ferraiolo/Menlo Park/IBM at IBMUS,     
                                       <ide at openajax.org>                  
                                                                        cc 
             08/19/2009 06:22                                              
             PM                                                    Subject 
                                       Re: [OpenAjaxIDE] date formatting   
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




Here’s currently what my 40 lines supports:

formatstr = [string] formatting string with embedded instructions
            on how to format the current date and/or time. If no
            value is specified returns the date with the default
            date formatting, "mm-dd-yy".

            The format string can consist of any combination of
            literal characters and special characters, which
            include:

            mm   = current month as "1"
            MM   = current month as "01"
            MMM  = current month as "Jan"
            MMMM = current month as "January"

            dd   = current day as "1"
            DD   = current day as "01"
            DDD  = current day as "1st"
            DDDD = current day as "Saturday"

            YY   = current day as "01"
            YYYY = current day as "2001"

            hh   = current hour as "05" (12-hour clock)
            HH   = current hour as "17" (24-hour clock)

            MN   = current minutes as "01"

            SS   = current seconds as "01"

            ap   = current am/pm as "am"
            AP   = current am/pm as "AM"


Steve Repetti
www.radwebtech.com



From: Scott Richards [mailto:scrichar at adobe.com.]
Sent:: Wednesday, August 19, 2009 6: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/7a6c28c3/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/7a6c28c3/attachment-0003.gif 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pic05266.gif
Type: image/gif
Size: 1255 bytes
Desc: not available
Url : http://openajax.org/pipermail/ide/attachments/20090819/7a6c28c3/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/7a6c28c3/attachment-0005.gif 


More information about the IDE mailing list