The Trav <the.t...@gmail.com> writes:

> Hi All,
>
> I've been chasing this one for a while and found a few posts dancing
> around the edge, but so far I haven't seen any solid answer on it.
>
> Most MappedTypeField's have auto generated form fields, including
> Select elements if you override the correct method.
>
> I was hoping MappedDateTime would have an auto generated field that
> included a JQuery DatePicker, given that if it's a required field, you
> need it to do your crud editing.
>
>
> Is there anything at all like that in the framework? Or do I have to
> figure out how to implement it myself?

You can use this as a starting point:

class FancyMappedDate[T<:Mapper[T]](fieldOwner: T) extends 
MappedDate[T](fieldOwner) {
  
  override def fieldId = Some(Text(name))
  override def setFromAny(f : Any): Date = f match {
    case v :: vs =>  
tryo({java.text.DateFormat.getDateInstance(java.text.DateFormat.MEDIUM, 
S.locale).parse(v.toString)}).map(d => this.set(d)).openOr(this.is)
    case d:Date => this.set(d)
    case _ => super.setFromAny(f)
  }
    
  override def _toForm: Box[NodeSeq] = {
      val onLoad ="""jQuery(function($){
            $.datepicker.setDefaults($.datepicker.regional.da)
            $('#"""+name+"""').datepicker({showOn: 'both', buttonImage: 
'/images/calendar.gif', buttonImageOnly: true});
            });
            """    
      S.fmapFunc({s: List[String] => this.setFromAny(s)}){funcName =>
      Full(<xml:group>
             <head>
            <script type="text/javascript" 
src="/scripts/jquery/jquery-ui-1.7.2.custom.min.js"></script>
            <script src="/scripts/jquery/i18n/jquery-ui-i18n.js" 
type="text/javascript"></script>
            <link type="text/css" 
href="/css/south-street/jquery-ui-1.7.2.custom.css" rel="stylesheet" />
            <script type="text/javascript" charset="utf-8">{onLoad}</script>
           </head>
             <input type='text' id={fieldId}
          name={funcName}
          class="date-pick dp-applied"
          value={is match {case null => "" case d => 
""+java.text.DateFormat.getDateInstance(java.text.DateFormat.MEDIUM, 
S.locale).format(d)}}/>
        </xml:group>)
      }
  }
}

-- 
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to lift...@googlegroups.com.
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en.

Reply via email to