g:datePicker
29/01/2013 19:05
http://grails.org/plugin/richuie veja o #DateChooser
class DataTagLib {
def data = {attrs, body ->
def classe = ""
if ( attrs.class ){
classe = "class='"+attrs.class+"'"
}
def out = out
def name = attrs.name //The name attribute is required for the tag to work seamlessly with grails
def id = attrs.id ?: name
def minDate = attrs.minDate
def showDay = attrs.showDay
//Create date text field and supporting hidden text fields need by grails
String aux = Utils.getDataComoString(attrs.value, "dd/MM/yyyy")
out.println "<input type=\"text\" name=\"${name}_\" id=\"${id}_\" value=\"${aux}\" ${classe} />"
out.println "<input type=\"hidden\" name=\"${name}\" id=\"${id}\" value=\"data.struct\" />"
out.println "<input type=\"hidden\" name=\"${name}_day\" id=\"${id}_day\" />"
out.println "<input type=\"hidden\" name=\"${name}_month\" id=\"${id}_month\" />"
out.println "<input type=\"hidden\" name=\"${name}_year\" id=\"${id}_year\" />"
//Code to parse selected date into hidden fields required by grails
out.println "<script type=\"text/javascript\"> "
out.println "\$(document).ready(function(){"
if ( attrs.value ){
out.println " \$(\"#${name}_month\").attr(\"value\",\"${Utils.getDataComoString(attrs.value, "MM")}\");"
out.println " \$(\"#${name}_day\").attr(\"value\",\"${Utils.getDataComoString(attrs.value, "dd")}\");"
out.println " \$(\"#${name}_year\").attr(\"value\",\"${Utils.getDataComoString(attrs.value, "yyyy")}\");"
}
out.println " \$(\"#${name}_\").mask(\"99/99/9999\");"
out.println " \$(\"#${name}_\").datepicker({"
out.println " onClose: function(dateText, inst) {"
out.println " var dia = dateText.substring(0, 2); "
out.println " var mes = dateText.substring(3, 5); "
out.println " var ano = dateText.substring(6, 10); "
out.println " \$(\"#${name}_month\").attr(\"value\",mes);"
out.println " \$(\"#${name}_day\").attr(\"value\",dia);"
out.println " \$(\"#${name}_year\").attr(\"value\",ano);"
out.println " }"
//If you want to customize using the jQuery UI events add an if block an attribute as follows
if (minDate != null) {
out.println " ,"
out.println " minDate: ${minDate}"
}
if (showDay != null) {
out.println " ,"
out.println " beforeShowDay: function(date){"
out.println " var day = date.getDay();"
out.println " return [day == ${showDay},\"\"];"
out.println " }"
}
out.println ", changeMonth: true "
out.println ", changeYear: true "
out.println " });"
out.println "})</script>"
}
}
Para se registrar, clique aqui.