BUG: IE Incompatibilty - "Al utilizar IE en la parte de holidays cuando se utilizan mas de 3 filas, es decir a partir de la 4ta fila los datos de las fechas del calendario empiezan a ser cambiados con los datos de la primera fila, no registrando nada a partir de la cuarta fila"

SOLVED!
This commit is contained in:
Erik Amaru Ortiz
2011-01-04 20:51:36 +00:00
parent 8d8c6d2b13
commit adfb794ce2
3 changed files with 49 additions and 29 deletions

View File

@@ -1848,7 +1848,7 @@ function removeValue(id){
} }
function datePicker4(obj, id, mask, startDate, endDate, showTIme){ function datePicker4(obj, id, mask, startDate, endDate, showTIme){
//alert('->'+id);
new Calendar({ new Calendar({
inputField: id, inputField: id,
dateFormat: mask, dateFormat: mask,
@@ -1861,20 +1861,10 @@ function datePicker4(obj, id, mask, startDate, endDate, showTIme){
opacity: 1, opacity: 1,
onSelect: function() { onSelect: function() {
this.hide(); this.hide();
fireEvent(document.getElementById(id), 'change');
fireEvent(document.getElementById(id),'change');
//if(document.getElementById(id).onchange)
//document.getElementById(id).onchange();
} }
} });
);
if( _BROWSER.name != 'msie' )
obj.onmouseover = undefined;
} }
function fireEvent(element,event){ function fireEvent(element,event){
@@ -1910,3 +1900,4 @@ function elementAttributesNS(e, ns) {
} }
return result; return result;
} }

View File

@@ -164,8 +164,13 @@ var G_Grid = function(oForm, sGridName) {
newID = aObjects[0].id.replace(/\[1\]/g, '\[' + (this.oGrid.rows.length - 2) + '\]'); newID = aObjects[0].id.replace(/\[1\]/g, '\[' + (this.oGrid.rows.length - 2) + '\]');
aObjects[0].setAttribute('id', newID); aObjects[0].setAttribute('id', newID);
aObjects[0].setAttribute('name', newID); aObjects[0].name = newID;
if (/*@cc_on!@*/0) { // Internet Explorer test (needs to be modified for IE8)
aObjects[0].mergeAttributes(document.createElement("<INPUT name='" + newID + "'/>"), false);
}
//alert(aObjects[0].name);
if (aObjects[0].type != 'checkbox') { if (aObjects[0].type != 'checkbox') {
aObjects[0].value = ''; aObjects[0].value = '';
} else { } else {
@@ -180,20 +185,38 @@ var G_Grid = function(oForm, sGridName) {
} }
} }
//verifying if it is a datepickey //verifying if it is a datepicker
tags = oNewRow.getElementsByTagName('td')[i].getElementsByTagName('a'); tags = oNewRow.getElementsByTagName('td')[i].getElementsByTagName('a');
if( tags.length == 2 ){ //then it is a datepicker if( tags.length == 2 ){ //then it is a datepicker
scriptTags = oNewRow.getElementsByTagName('td')[i].getElementsByTagName('script');
datePickerTriggerId = tags[1].id.replace(/\[1\]/g, '\[' + (this.oGrid.rows.length - 2) + '\]');
attributes = elementAttributesNS(aObjects[0], 'pm');
oNewRow.getElementsByTagName('td')[i].removeChild(scriptTags[0]);
oNewRow.getElementsByTagName('td')[i].removeChild(tags[1]);
if (tags[0].onclick) { if (tags[0].onclick) {
evOnclick = new String(tags[0].onclick); evOnclick = new String(tags[0].onclick);
eval('tags[0].onclick = ' + evOnclick.replace(/\[1\]/g, '\[' + (this.oGrid.rows.length - 2) + '\]') + ';'); eval('tags[0].onclick = ' + evOnclick.replace(/\[1\]/g, '\[' + (this.oGrid.rows.length - 2) + '\]') + ';');
} }
tags[1].id = tags[1].id.replace(/\[1\]/g, '\[' + (this.oGrid.rows.length - 2) + '\]');
//alert(tags[1].onmouseover); var datePickerTrigger = document.createElement('a');
if (tags[1].onmouseover) { datePickerTrigger.id = datePickerTriggerId;
evOnclick = new String(tags[1].onmouseover); datePickerTrigger.name = datePickerTriggerId;
eval('tags[1].onmouseover = ' + evOnclick.replace(/\[1\]/g, '\[' + (this.oGrid.rows.length - 2) + '\]') + ';');
} var datePickerTriggerImg = document.createElement('img');
datePickerTriggerImg.src = '/images/pmdateicon.png';
datePickerTriggerImg.border = 0;
datePickerTriggerImg.width = 12;
datePickerTriggerImg.height = 12;
datePickerTriggerImg.style.position = 'relative';
datePickerTriggerImg.style.left = '-17px';
datePickerTriggerImg.style.top = '0px';
datePickerTrigger.appendChild(datePickerTriggerImg);
oNewRow.getElementsByTagName('td')[i].appendChild(datePickerTrigger);
datePicker4("", newID, attributes.mask, attributes.start, attributes.end, attributes.time);
} }
} }
aObjects = oNewRow.getElementsByTagName('td')[i].getElementsByTagName('span'); aObjects = oNewRow.getElementsByTagName('td')[i].getElementsByTagName('span');
@@ -237,6 +260,8 @@ var G_Grid = function(oForm, sGridName) {
} }
} }
} }
//alert(oNewRow.getElementsByTagName('td')[i].innerHTML);
break; break;
case 'select': case 'select':
aObjects = oNewRow.getElementsByTagName('td')[i].getElementsByTagName('select'); aObjects = oNewRow.getElementsByTagName('td')[i].getElementsByTagName('select');

View File

@@ -3147,13 +3147,17 @@ class XmlForm_Field_Date extends XmlForm_Field_SimpleText
$sizeend = $maskleng + 2; $sizeend = $maskleng + 2;
} }
if ( $this->editable != "0") { if ( $this->editable != "0") {
$html = '<input id="'.$pID.'" name="'.$pID.'" '.$onchange.' class="module_app_input___gray" size="'.$sizeend.'" value="'.$value.'"/> $html = '<input 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.'"/>'
<a onclick="removeValue(\''.$pID.'\'); return false;"/> <img src="/images/icons_silk/calendar_x_button.png" style="position:relative;left:-17px;top:5px;"/></a> . '<a onclick="removeValue(\''.$pID.'\'); return false;"/> '
<a id="'.$pID.'[btn]" onmouseover="datePicker4(this, \''.$pID.'\', \''.$mask.'\', \''.$startDate.'\', \''.$endDate.'\','.$Time.')"><img src="/images/pmdateicon.png" border="0" width="12" height="12" style="position:relative;left:-17px;top:0px;"/></a>'; . '<img src="/images/icons_silk/calendar_x_button.png" style="position:relative;left:-17px;top:5px;"/></a>'
. '<a id="'.$pID.'[btn]"><img src="/images/pmdateicon.png" border="0" width="12" height="12" style="position:relative;left:-17px;top:0px;"/></a>'
. '<script>datePicker4("", \''.$pID.'\', \''.$mask.'\', \''.$startDate.'\', \''.$endDate.'\','.$Time.')</script>';
} else { } else {
$html = '<input id="'.$pID.'" name="'.$pID.'" '.$onchange.' class="module_app_input___gray" size="'.$sizeend.'" value="'.$value.'" readonly/> $html = '<input 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.'" readonly="readonly"/>'
<a onclick="removeValue(\''.$pID.'\'); return false;"/> <img src="/images/icons_silk/calendar_x_button.png" style="position:relative;left:-17px;top:5px;"/></a> . '<a onclick="removeValue(\''.$pID.'\'); return false;"/> '
<a id="'.$pID.'[btn]" onmouseover="datePicker4(this, \''.$pID.'\', \''.$mask.'\', \''.$startDate.'\', \''.$endDate.'\', '.$Time.')"><img src="/images/pmdateicon.png" border="0" width="12" height="12" style="position:relative;left:-17px;top:0px;"/></a>'; . '<img src="/images/icons_silk/calendar_x_button.png" style="position:relative;left:-17px;top:5px;"/></a>'
. '<a id="'.$pID.'[btn]"><img src="/images/pmdateicon.png" border="0" width="12" height="12" style="position:relative;left:-17px;top:0px;"/></a>'
. '<script>datePicker4("", \''.$pID.'\', \''.$mask.'\', \''.$startDate.'\', \''.$endDate.'\','.$Time.')</script>';
} }
} else { } else {
@@ -4184,4 +4188,4 @@ class XmlForm_Field_Image extends XmlForm_Field
(($this->style)?'style="'.$this->style.'"':'') (($this->style)?'style="'.$this->style.'"':'')
.' alt ="'.htmlentities($value,ENT_QUOTES,'utf-8').'"/>'; .' alt ="'.htmlentities($value,ENT_QUOTES,'utf-8').'"/>';
} }
} }