예제 #1
0
 /**
  * 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 .= '&#160;' . $this->renderEditableFirstDateContent();
     $content .= '</span>';
     $content .= '<span id="' . $secondDateSpanAreaId . '" ' . $startingDivStyleSecondDate . '>';
     $content .= '&#160;' . Yii::t('Default', 'and') . $this->renderEditableSecondDateContent();
     $content .= '</span>';
     return $content;
 }