/** * Render a date JUI widget * @return The element's content as a string. */ protected function renderControlEditable() { $valueTypeId = $this->getValueTypeEditableInputId(); $firstDateSpanAreaSuffix = '-first-date-area'; $secondDateSpanAreaSuffix = '-second-date-area'; $firstDateSpanAreaId = $valueTypeId . $firstDateSpanAreaSuffix; $secondDateSpanAreaId = $valueTypeId . $secondDateSpanAreaSuffix; $valueTypesRequiringFirstDateInput = MixedDateTypesSearchFormAttributeMappingRules::getValueTypesRequiringFirstDateInput(); $valueTypesRequiringSecondDateInput = MixedDateTypesSearchFormAttributeMappingRules::getValueTypesRequiringSecondDateInput(); Yii::app()->clientScript->registerScript('mixedDateTypes', "\n \$('.dateValueType').change( function()\n {\n arr = " . CJSON::encode($valueTypesRequiringFirstDateInput) . ";\n arr2 = " . CJSON::encode($valueTypesRequiringSecondDateInput) . ";\n firstDateSpanAreaQualifier = '#' + \$(this).attr('id') + '" . $firstDateSpanAreaSuffix . "';\n secondDateSpanAreaQualifier = '#' + \$(this).attr('id') + '" . $secondDateSpanAreaSuffix . "';\n if (\$.inArray(\$(this).val(), arr) != -1)\n {\n \$(firstDateSpanAreaQualifier).show();\n \$(firstDateSpanAreaQualifier).find('.hasDatepicker').prop('disabled', false);\n }\n else\n {\n \$(firstDateSpanAreaQualifier).hide();\n \$(firstDateSpanAreaQualifier).find('.hasDatepicker').prop('disabled', true);\n }\n if (\$.inArray(\$(this).val(), arr2) != -1)\n {\n \$(secondDateSpanAreaQualifier).show();\n \$(secondDateSpanAreaQualifier).find('.hasDatepicker').prop('disabled', false);\n }\n else\n {\n \$(secondDateSpanAreaQualifier).hide();\n \$(secondDateSpanAreaQualifier).find('.hasDatepicker').prop('disabled', true);\n }\n }\n );\n "); $startingDivStyleFirstDate = null; $startingDivStyleSecondDate = null; if (!in_array($this->getValueType(), $valueTypesRequiringFirstDateInput)) { $startingDivStyleFirstDate = "display:none;"; $firstDateDisabled = 'disabled'; } else { $firstDateDisabled = null; } if (!in_array($this->getValueType(), $valueTypesRequiringSecondDateInput)) { $startingDivStyleSecondDate = "display:none;"; $secondDateDisabled = 'disabled'; } else { $secondDateDisabled = null; } $content = ZurmoHtml::tag('span', array('id' => $firstDateSpanAreaId, 'class' => 'first-date-area', 'style' => $startingDivStyleFirstDate), $this->renderEditableFirstDateContent($firstDateDisabled)); $content .= ZurmoHtml::tag('span', array('id' => $secondDateSpanAreaId, 'class' => 'second-date-area', 'style' => $startingDivStyleSecondDate), ZurmoHtml::Tag('span', array('class' => 'dynamic-and-for-mixed'), Zurmo::t('Core', 'and')) . $this->renderEditableSecondDateContent($secondDateDisabled)); return $content; }
/** * Render a date JUI widget * @return The element's content as a string. */ protected function renderControlEditable() { $valueTypeid = $this->getEditableInputId($this->attribute, 'type'); $valueFirstDateId = $this->getEditableInputId($this->attribute, 'firstDate'); $firstDateSpanAreaId = $valueTypeid . '-first-date-area'; $valueSecondDateId = $this->getEditableInputId($this->attribute, 'secondDate'); $secondDateSpanAreaId = $valueTypeid . '-second-date-area'; $valueTypesRequiringFirstDateInput = MixedDateTypesSearchFormAttributeMappingRules::getValueTypesRequiringFirstDateInput(); $valueTypesRequiringSecondDateInput = MixedDateTypesSearchFormAttributeMappingRules::getValueTypesRequiringSecondDateInput(); Yii::app()->clientScript->registerScript('mixedDateTypesForSearch' . $valueTypeid, "\n \$('#{$valueTypeid}').change( function()\n {\n arr = " . CJSON::encode($valueTypesRequiringFirstDateInput) . ";\n arr2 = " . CJSON::encode($valueTypesRequiringSecondDateInput) . ";\n if (\$.inArray(\$(this).val(), arr) != -1)\n {\n \$('#{$firstDateSpanAreaId}').show();\n \$('#{$valueFirstDateId}').prop('disabled', false);\n }\n else\n {\n \$('#{$firstDateSpanAreaId}').hide();\n \$('#{$valueFirstDateId}').prop('disabled', true);\n }\n if (\$.inArray(\$(this).val(), arr2) != -1)\n {\n \$('#{$secondDateSpanAreaId}').show();\n \$('#{$valueSecondDateId}').prop('disabled', false);\n }\n else\n {\n \$('#{$secondDateSpanAreaId}').hide();\n \$('#{$valueSecondDateId}').prop('disabled', true);\n }\n }\n );\n "); $startingDivStyleFirstDate = null; $startingDivStyleSecondDate = null; $valueType = ArrayUtil::getArrayValue($this->model->{$this->attribute}, 'type'); if (!in_array($valueType, $valueTypesRequiringFirstDateInput)) { $startingDivStyleFirstDate = "style='display:none;'"; } if (!in_array($valueType, $valueTypesRequiringSecondDateInput)) { $startingDivStyleSecondDate = "style='display:none;'"; } $content = $this->renderEditableValueTypeContent(); $content .= '<span id="' . $firstDateSpanAreaId . '" ' . $startingDivStyleFirstDate . '>'; $content .= ' ' . $this->renderEditableFirstDateContent(); $content .= '</span>'; $content .= '<span id="' . $secondDateSpanAreaId . '" ' . $startingDivStyleSecondDate . '>'; $content .= ' ' . Yii::t('Default', 'and') . $this->renderEditableSecondDateContent(); $content .= '</span>'; return $content; }