diff --git a/gulliver/js/common/core/common.js b/gulliver/js/common/core/common.js index 75d13b9a8..2460e0e08 100755 --- a/gulliver/js/common/core/common.js +++ b/gulliver/js/common/core/common.js @@ -1957,26 +1957,31 @@ function removeValue(id){ fireEvent(document.getElementById(id), 'change'); } -function datePicker4(obj, id, mask, startDate, endDate, showTIme){ +function datePicker4(obj, id, mask, startDate, endDate, showTIme, idIsoDate){ if(showTIme=='false') showTIme=false; - Calendar.setup({ - inputField: id, - dateFormat: mask, - trigger: id+"[btn]", - bottomBar: true, - min:startDate, - max:endDate, - animation: _BROWSER.name =='msie'? false: true, - showTime: showTIme, - opacity: 1, - onSelect: function() { - this.hide(); - fireEvent(document.getElementById(id), 'change'); - } - + var cal; + cal = Calendar.setup({ + inputField: id, + dateFormat: mask, + trigger: id+"[btn]", + bottomBar: true, + min:startDate, + max:endDate, + animation: _BROWSER.name =='msie'? false: true, + showTime: showTIme, + opacity: 1, + onSelect: function() { + this.hide(); + setisoDate(id, this, idIsoDate); + fireEvent(document.getElementById(id), 'change'); + } }); } +function setisoDate(id, cals, idIsoDate){ + var field= document.getElementById(idIsoDate); + field.value=cals.selection.print("%Y-%m-%d", ""); +} function fireEvent(element,event){ if (document.createEventObject){ diff --git a/gulliver/system/class.xmlform.php b/gulliver/system/class.xmlform.php index 45c3733a0..f8a8f2bcf 100755 --- a/gulliver/system/class.xmlform.php +++ b/gulliver/system/class.xmlform.php @@ -3384,13 +3384,15 @@ class XmlForm_Field_Date extends XmlForm_Field_SimpleText $value = G::replaceDataField ( $value, $owner->values ); } //$this->defaultValue = G::replaceDataField( $this->defaultValue, $owner->values); - $id = "form[$this->name]"; + $id = "form[$this->name]"; + $idIsoDate = 'form['.$this->name.'_isodate]'; + if ($this->renderMode != 'edit' && $value == 'today' ){ $mask = str_replace("%", "", $this->mask); $value = date($mask); return $value; } - return $this->__draw_widget ( $id, $value, $owner ); + return $this->__draw_widget ( $id, $value, $owner, $idIsoDate ); } /** @@ -3423,8 +3425,9 @@ class XmlForm_Field_Date extends XmlForm_Field_SimpleText } $html = 'NSRequiredValue().' class="module_app_input___gray" id="form[' . $owner->name . '][' . $r . '][' . $this->name . ']" name="form[' . $owner->name . '][' . $r . '][' . $this->name . ']" type ="text" size="' . $this->size . '" maxlength="' . $this->maxLength . '" value="' . $this->htmlentities ( $v, ENT_COMPAT, 'utf-8' ) . '" required="' . $isRequired . '" style="display:none;' . htmlentities ( $this->style, ENT_COMPAT, 'utf-8' ) . '"/>' . htmlentities ( $v, ENT_COMPAT, 'utf-8' ); } else { - $id = 'form[' . $owner->name . '][' . $r . '][' . $this->name . ']'; - $html = $this->__draw_widget ( $id, $v, $owner ); + $id = 'form[' . $owner->name . '][' . $r . '][' . $this->name . ']'; + $idIsoDate = 'form[' . $owner->name . '][' . $r . '][' . $this->name .'_isodate]'; + $html = $this->__draw_widget ( $id, $v, $owner, $idIsoDate ); } } else { $html = $v; @@ -3442,8 +3445,7 @@ class XmlForm_Field_Date extends XmlForm_Field_SimpleText * @param $owner * @return */ - function __draw_widget($pID, $value, $owner = '') - { + function __draw_widget($pID, $value, $owner = '', $idIsoDate){ $startDate = G::replaceDataField ( $this->startDate, $owner->values ); $endDate = G::replaceDataField ( $this->endDate, $owner->values ); $beforeDate = G::replaceDataField ( $this->beforeDate, $owner->values ); @@ -3565,7 +3567,7 @@ class XmlForm_Field_Date extends XmlForm_Field_SimpleText . '' . ' ' . '' - . ''; + . ''; } else { $html = '' . ' ' . '' - . ''; + . ''; } - } else - { + } else { $html = "$value" . ''; - } + } + // added isodate format in the data field when it has a mask + $amask = explode('-',str_replace('%','',$mask)); + $axDate = explode('-',$value); + $valisoDate = ''; + if(sizeof($amask)==sizeof($axDate)){ + $aisoDate = array_combine($amask, $axDate); + if(isset($aisoDate['Y']) && isset($aisoDate['m']) && isset($aisoDate['d'])) + $valisoDate = $aisoDate['Y'].'-'.$aisoDate['m'].'-'.$aisoDate['d']; + } + $html .= ''; + if ($this->gridFieldType == '') $html .= $this->renderHint(); return $html; } @@ -3721,8 +3733,8 @@ class XmlForm_Field_Date5 extends XmlForm_Field_SimpleText $value = G::replaceDataField ( $value, $owner->values ); } //$this->defaultValue = G::replaceDataField( $this->defaultValue, $owner->values); - $id = "form[$this->name]"; - return $this->__draw_widget ( $id, $value, $owner ); + $id = "form[$this->name]"; + return $this->__draw_widget ( $id, $value, $owner, $idIsoDate ); } /** @@ -3738,8 +3750,8 @@ class XmlForm_Field_Date5 extends XmlForm_Field_SimpleText foreach ( $values as $v ) { $v = ($v!='')?G::replaceDataField ( $v, $owner->values ):$this->defaultValue; if (! $onlyValue) { - $id = 'form[' . $owner->name . '][' . $r . '][' . $this->name . ']'; - $html = $this->__draw_widget ( $id, $v, $owner ); + $id = 'form[' . $owner->name . '][' . $r . '][' . $this->name . ']'; + $html = $this->__draw_widget ( $id, $v, $owner, $idIsoDate ); } else { $html = $v; }