BUG 0000 simplify code of datepicker

This commit is contained in:
Alvaro Campos
2011-09-15 11:50:33 -04:00
parent 3a242fe8a5
commit 07d3d61cc7

View File

@@ -3448,9 +3448,7 @@ class XmlForm_Field_Date extends XmlForm_Field_SimpleText
$endDate = G::replaceDataField ( $this->endDate, $owner->values ); $endDate = G::replaceDataField ( $this->endDate, $owner->values );
$beforeDate = G::replaceDataField ( $this->beforeDate, $owner->values ); $beforeDate = G::replaceDataField ( $this->beforeDate, $owner->values );
$afterDate = G::replaceDataField ( $this->afterDate, $owner->values ); $afterDate = G::replaceDataField ( $this->afterDate, $owner->values );
$valueaux=$value; $defaultValue=$this->defaultValue;
$value=$this->defaultValue;
if ($startDate != '') { if ($startDate != '') {
if (! $this->verifyDateFormat ( $startDate )) if (! $this->verifyDateFormat ( $startDate ))
$startDate = ''; $startDate = '';
@@ -3465,10 +3463,6 @@ class XmlForm_Field_Date extends XmlForm_Field_SimpleText
$startDate = $this->size . '-01-01'; $startDate = $this->size . '-01-01';
} }
if ($startDate == '') {
//$startDate = date ( 'Y-m-d' ); // the default is the current date
}
if ($endDate != '') { if ($endDate != '') {
if (! $this->verifyDateFormat ( $endDate )) if (! $this->verifyDateFormat ( $endDate ))
$endDate = ''; $endDate = '';
@@ -3495,86 +3489,46 @@ class XmlForm_Field_Date extends XmlForm_Field_SimpleText
$mask = '%Y-%m-%d'; //set default $mask = '%Y-%m-%d'; //set default
} }
/**
* - init - Backward compatibility
*
* By Erik A. O. <erik@colosa.com>
* @package gulliver.system
*/
if( strpos($mask, '%') === false ) { if( strpos($mask, '%') === false ) {
if( strpos($mask, '-') !== false ) { // case '-' saparator if( strpos($mask, '-') !== false )
$maskparts = explode('-', $mask); $separator = '-';
$mask = ''; if( strpos($mask, '/') !== false )
foreach($maskparts as $part) { $separator = '/';
if($mask != '') if( strpos($mask, '.') !== false )
$mask .= '-'; $separator = '.';
if($part=='yyyy')
$maskparts = explode($separator, $mask);
$mask = '';
foreach($maskparts as $part) {
if($mask != '')
$mask .= $separator;
if($part=='yyyy')
$part='Y'; $part='Y';
if($part=='dd') if($part=='dd')
$part='d'; $part='d';
if($part=='mm') if($part=='mm')
$part='m'; $part='m';
if($part=='yy') if($part=='yy')
$part='y'; $part='y';
$mask .= '%'.$part; $mask .= '%'.$part;
}
} }
if( strpos($mask, '/') !== false ) { // case '/' saparator
$maskparts = explode('/', $mask);
$mask = '';
foreach($maskparts as $part) {
if($mask != '')
$mask .= '/';
if($part=='yyyy')
$part='Y';
if($part=='dd')
$part='d';
if($part=='mm')
$part='m';
if($part=='yy')
$part='y';
$mask .= '%'.$part;
}
}
if( strpos($mask, '.') !== false ) { // case '.' saparator
$maskparts = explode('.', $mask);
$mask = '';
foreach($maskparts as $part) {
if($mask != '')
$mask .= '.';
if($part=='yyyy')
$part='Y';
if($part=='dd')
$part='d';
if($part=='mm')
$part='m';
if($part=='yy')
$part='y';
$mask .= '%'.$part;
}
}
} }
/** - end - Backward compatibility **/
$tmp = str_replace("%", "", $mask); $tmp = str_replace("%", "", $mask);
if ( trim ($value) == '' or $value == NULL ) { if ( trim ($value) == '' or $value == NULL ) {
$value = ''; //date ($tmp); $value = ''; //date ($tmp);
} else { } else
switch(strtolower($value)){ {
case 'today': switch(strtolower($value)){
// $value = date($tmp); case 'today':
$value=masktophp ($mask); $value=masktophp ($mask);// $value = date($tmp);
break; break;
default: default:
if(!$this->verifyDateFormat($value)) if(!$this->verifyDateFormat($value))
$value=''; //$value='';
break; break;
}
} }
}
//onchange //onchange
if( isset($this->onchange) && $this->onchange != '' ) if( isset($this->onchange) && $this->onchange != '' )
@@ -3582,77 +3536,61 @@ class XmlForm_Field_Date extends XmlForm_Field_SimpleText
else else
$onchange = ''; $onchange = '';
#the validations field was moved to javascript routines ;)
if ($this->renderMode == 'edit') { if ($this->renderMode == 'edit') {
if( $startDate=='1969-12-31' ) { $maskleng = strlen($mask);
$startDate=''; $hour = '%H';$min = '%M';$sec = '%S';
$endDate=''; $sizehour = strpos($mask, $hour);
$sizemin = strpos($mask, $hour);
$sizesec = strpos($mask, $hour);
$Time = 'false';
if (($sizehour !== false)&&($sizemin !== false)&&($sizesec !== false)) {
$sizeend = $maskleng + 2;
$Time = 'true';
} else
{
$sizeend = $maskleng + 2;
}
if ($this->required)
$isRequired = '1';
else
$isRequired = '0';
if ( $this->editable != "0") {
$html = '<input pm:required="'. $isRequired .'" id="'.$pID.'" name="'.$pID.'" pm:mask="'.$mask.'"'
. 'pm:start="'.$startDate.'" pm:end="'.$endDate.'" pm:time="'.$Time.'" '.$onchange.' class="module_app_input___gray" size="'.$sizeend.'"'
. 'value="'.$value.'" pm:defaultvalue="'.$defaultValue.'" required="' . $isRequired . '"/>'
. '<a onclick="removeValue(\''.$pID.'\'); return false;" style="position:relative;left:-17px;top:5px;" > '
. ' <img src="/images/icons_silk/calendar_x_button.png" />'
. '</a>'
. '<a id="'.$pID.'[btn]" style="position:relative;left:-22px;top:0px;" >'
. ' <img src="/images/pmdateicon.png" border="0" width="12" height="14" />'
. '</a>'
. '<script>datePicker4("", \''.$pID.'\', \''.$mask.'\', \''.$startDate.'\', \''.$endDate.'\','.$Time.')</script>';
} else
{
$html = '<input pm:required="'. $isRequired .'" id="'.$pID.'" name="'.$pID.'" pm:mask="'.$mask.'" pm:start="'.$startDate.'"'
. 'pm:end="'.$endDate.'" pm:time="'.$Time.'" '.$onchange.' class="module_app_input___gray" size="'.$sizeend.'"'
. 'value="'.$value.'"pm:defaultvalue="'.$defaultValue.'" readonly="readonly" required="' . $isRequired . '"/>'
. '<a onclick="removeValue(\''.$pID.'\'); return false;" style="position:relative;left:-17px;top:5px;" >'
. ' <img src="/images/icons_silk/calendar_x_button.png" />'
. '</a>'
. '<a id="'.$pID.'[btn]" style="position:relative;left:-22px;top:0px;" >'
. ' <img src="/images/pmdateicon.png" border="0" width="12" height="14" />'
. '</a>'
. '<script>datePicker4("", \''.$pID.'\', \''.$mask.'\', \''.$startDate.'\', \''.$endDate.'\','.$Time.')</script>';
}
} else
{
$html = "<span style='border:1;border-color:#000;width:100px;' name='" . $pID . "'>$value</span>"
. '<input type="hidden" id="'.$pID.'" name="'.$pID.'" pm:mask="'.$mask.'" pm:start="'.$startDate.'"'
. 'pm:end="'.$endDate.'" '.$onchange.' class="module_app_input___gray" value="'.$value.'"/>';
} }
$maskleng=strlen($mask);
$hour = '%H';$min = '%M';$sec = '%S';
$sizehour = strpos($mask, $hour);
$sizemin = strpos($mask, $hour);
$sizesec = strpos($mask, $hour);
$Time = 'false';
if (($sizehour !== false)&&($sizemin !== false)&&($sizesec !== false)) {
$sizeend = $maskleng + 2;
$Time = 'true';
} else {
$sizeend = $maskleng + 2;
}
if($valueaux=='today'){
$valueaux=masktophp ($mask);
}
$value1=$value;
$value=$valueaux;
if(($value==NULL)||($value=='')){
$value=$value1;
}
if ($this->required){
$isRequired = '1';
} else {
$isRequired = '0';
}
if ( $this->editable != "0") {
$html = '<input pm:required="'. $isRequired .'" id="'.$pID.'" name="'.$pID.'" pm:mask="'.$mask.'" pm:start="'.$startDate.'" pm:end="'.$endDate.'" pm:time="'.$Time.'" '.$onchange.' class="module_app_input___gray" size="'.$sizeend.'" value="'.$value.'" pm:defaultvalue="'.$value1.'" required="' . $isRequired . '"/>'
. '<a onclick="removeValue(\''.$pID.'\'); return false;" style="position:relative;left:-17px;top:5px;" >'
. ' <img src="/images/icons_silk/calendar_x_button.png" />'
. '</a>'
. '<a id="'.$pID.'[btn]" style="position:relative;left:-22px;top:0px;" >'
. ' <img src="/images/pmdateicon.png" border="0" width="12" height="14" />'
. '</a>'
. '<script>datePicker4("", \''.$pID.'\', \''.$mask.'\', \''.$startDate.'\', \''.$endDate.'\','.$Time.')</script>';
} else {
$html = '<input pm:required="'. $isRequired .'" id="'.$pID.'" name="'.$pID.'" pm:mask="'.$mask.'" pm:start="'.$startDate.'" pm:end="'.$endDate.'" pm:time="'.$Time.'" '.$onchange.' class="module_app_input___gray" size="'.$sizeend.'" value="'.$value.'"pm:defaultvalue="'.$value1.'" readonly="readonly" required="' . $isRequired . '"/>'
. '<a onclick="removeValue(\''.$pID.'\'); return false;" style="position:relative;left:-17px;top:5px;" >'
. ' <img src="/images/icons_silk/calendar_x_button.png" />'
. '</a>'
. '<a id="'.$pID.'[btn]" style="position:relative;left:-22px;top:0px;" >'
. ' <img src="/images/pmdateicon.png" border="0" width="12" height="14" />'
. '</a>'
. '<script>datePicker4("", \''.$pID.'\', \''.$mask.'\', \''.$startDate.'\', \''.$endDate.'\','.$Time.')</script>';
}
} else {
//$html = "<span style='border:1;border-color:#000;width:100px;' name='" . $pID . "'>$value</span>";
///-- $html = '<input class="module_app_input___gray" id="form[' . $this->name . ']" name="form[' . $this->name . ']" type ="text" size="' . $this->size . '" ' . (isset ( $this->maxLength ) ? ' maxlength="' . $this->maxLength . '"' : '') . ' value=\'' . htmlentities ( $value, ENT_COMPAT, 'utf-8' ) . '\' style="display:none;' . htmlentities ( $this->style, ENT_COMPAT, 'utf-8' ) . '" />' . htmlentities ( $value, ENT_COMPAT, 'utf-8' );
$html = "<span style='border:1;border-color:#000;width:100px;' name='" . $pID . "'>$valueaux</span>";
$html .= '<input type="hidden" id="'.$pID.'" name="'.$pID.'" pm:mask="'.$mask.'" pm:start="'.$startDate.'" pm:end="'.$endDate.'" '.$onchange.' class="module_app_input___gray" value="'.$valueaux.'"/>';
}
if ($this->gridFieldType == '') $html .= $this->renderHint(); if ($this->gridFieldType == '') $html .= $this->renderHint();
return $html; return $html;
} }
} }
/** /**
* Calendar Widget with Javascript Routines * Calendar Widget with Javascript Routines
* @author Erik amaru Ortiz <aortiz@gmail.com, erik@colosa.com> * @author Erik amaru Ortiz <aortiz@gmail.com, erik@colosa.com>