protected function getEditableHtmlOptions()
 {
     $parentHtmlOptions = parent::getHtmlOptions();
     $parentEditableHtmlOptions = parent::getEditableHtmlOptions();
     $htmlOptions = CMap::mergeArray($parentEditableHtmlOptions, $parentHtmlOptions);
     return $htmlOptions;
 }
 /**
  * Override to handle the form layout for this view.
  * @param $form If the layout is editable, then pass a $form otherwise it can
  * be null.
  * @return A string containing the element's content.
  */
 protected function renderFormLayout($form = null)
 {
     assert('$form instanceof ZurmoActiveForm');
     $fileUploadElement = new ImportFileUploadElement($this->model, null, $form);
     $fileUploadElement->editableTemplate = '{label}{content}';
     $firstRowIsHeaderElement = new CheckBoxElement($this->model, 'firstRowIsHeaderRow', $form);
     $firstRowIsHeaderElement->editableTemplate = '{content}{label}';
     $content = $form->errorSummary($this->model);
     $content .= '<table class="form-fields">';
     $content .= '<tbody>';
     $content .= $fileUploadElement->render();
     $content .= '<tr><td>';
     $content .= $firstRowIsHeaderElement->render();
     $content .= '</td></tr>';
     $content .= '</tbody>';
     $content .= '</table>';
     return $content;
 }
 protected function renderControlEditable()
 {
     if ($this->isSetCaptchaKeys() === false) {
         $message = Zurmo::t('ContactWebFormsModule', 'Please set ReCaptcha keys in Global Configuration to enable captcha for web forms.');
         $message = ZurmoHtml::tag('span', array('class' => 'row-description'), $message);
         return parent::renderControlEditable() . $message;
     }
     return parent::renderControlEditable();
 }
 /**
  * @return string
  */
 protected function renderFormContent()
 {
     $leftSideContent = null;
     $element = new TextElement($this->model, 'name', $this->form);
     $element->editableTemplate = '<th>{label}<span class="required">*</span></th><td colspan="{colspan}">{content}{error}</td>';
     $leftSideContent = '<table class="form-fields"><colgroup><col class="col-0"><col class="col-1">' . '</colgroup><tr>' . $element->render() . '</tr>';
     $element = new TextAreaElement($this->model, 'description', $this->form, array('rows' => 5));
     $leftSideContent .= '<tr>' . $element->render() . '</tr>';
     $element = new TriggerOnStaticDropDownElement($this->model, 'triggerOn', $this->form);
     $leftSideContent .= '<tr>' . $element->render() . '</tr>';
     $element = new CheckBoxElement($this->model, 'isActive', $this->form);
     $leftSideContent .= '<tr>' . $element->render() . '</tr>';
     $leftSideContent .= '</table>';
     $leftSideContent = ZurmoHtml::tag('div', array('class' => 'panel'), $leftSideContent);
     $content = '<div class="attributesContainer">';
     $content .= $leftSideContent;
     $content .= '</div>';
     return $content;
 }
 protected function renderControlEditable()
 {
     $attribute = $this->attribute;
     $isHidden = !$this->model->{$attribute};
     if ($isHidden) {
         $style = 'display: none;';
     } else {
         $style = null;
     }
     $checkBox = parent::renderControlEditable();
     $sendTestEmail = new SendATestEmailToElement($this->model, 'aTestToAddress', $this->form);
     $sendTestEmail->editableTemplate = '{label}{content}{error}';
     $content = ZurmoHtml::tag('div', array('class' => 'beforeToolTip'), $checkBox);
     $settings = $this->renderEditableTextField($this->model, $this->form, 'outboundHost');
     $settings .= $this->renderEditableTextField($this->model, $this->form, 'outboundPort');
     $settings .= $this->renderEditableTextField($this->model, $this->form, 'outboundUsername');
     $settings .= $this->renderEditableTextField($this->model, $this->form, 'outboundPassword', true);
     $settings .= $this->renderEditableTextField($this->model, $this->form, 'outboundSecurity');
     $settings .= $sendTestEmail->renderEditable();
     $content .= ZurmoHtml::tag('div', array('class' => 'outbound-settings', 'style' => $style), $settings);
     $this->renderScripts();
     return $content;
 }
 /**
  * @return string
  * @throws NotSupportedException if the valueElementType is null
  */
 protected function getContentForFilter()
 {
     $params = array('inputPrefix' => $this->inputPrefixData);
     if ($this->model->hasAvailableOperatorsType() && count($this->model->getOperatorValuesAndLabels()) > 1) {
         $operatorElement = new OperatorStaticDropDownElement($this->model, 'operator', $this->form, $params);
         $operatorElement->editableTemplate = '{content}{error}';
         $operatorContent = $operatorElement->render();
     } else {
         $operatorContent = null;
     }
     $valueElementType = $this->model->getValueElementType();
     if ($valueElementType != null) {
         $valueElementClassName = $valueElementType . 'Element';
         $valueElement = new $valueElementClassName($this->model, 'value', $this->form, $params);
         if ($valueElement instanceof NameIdElement) {
             $valueElement->setIdAttributeId('value');
             $valueElement->setNameAttributeName('stringifiedModelForValue');
         }
         if ($valueElement instanceof MixedNumberTypesElement) {
             $valueElement->editableTemplate = '<div class="value-data two-value-areas">{content}{error}</div>';
         } elseif ($valueElement instanceof MixedDateTypesElement) {
             $valueElement->editableTemplate = '<div class="dynamic-row-operator">{valueType}</div>' . '<div class="value-data one-value-area has-date-inputs">' . '<div class="first-value-area one-value-area">{content}{error}</div></div>';
         } else {
             $startingDivStyleFirstValue = null;
             if (in_array($this->model->getOperator(), array(OperatorRules::TYPE_IS_NULL, OperatorRules::TYPE_IS_NOT_NULL, OperatorRules::TYPE_IS_EMPTY, OperatorRules::TYPE_IS_NOT_EMPTY))) {
                 $startingDivStyleFirstValue = "display:none;";
                 $valueElement->params['disabled'] = 'disabled';
             }
             $valueElement->editableTemplate = '<div class="value-data one-value-area"><div class="first-value-area" style="' . $startingDivStyleFirstValue . '">{content}{error}</div></div>';
         }
         $valueContent = $valueElement->render();
     } else {
         throw new NotSupportedException();
     }
     $content = $this->renderAttributeIndexOrDerivedType();
     $content .= $this->renderHiddenOperator();
     self::resolveDivWrapperForContent($this->model->getDisplayLabel(), $content, 'dynamic-row-label');
     self::resolveDivWrapperForContent($operatorContent, $content, 'dynamic-row-operator');
     $content .= $valueContent;
     if ($this->showAvailableRuntimeFilter) {
         $runTimeElement = new CheckBoxElement($this->model, 'availableAtRunTime', $this->form, $params);
         $runTimeElement->editableTemplate = '{label}{content}{error}';
         $runTimeContent = $runTimeElement->render();
         self::resolveDivWrapperForContent($runTimeContent, $content, 'report-runtime-availability');
     }
     return $content;
 }
 /**
  * @param $webFormAttributeForm
  * @param $model
  * @param $attributeName
  * @param $attributeData
  * @return array
  */
 public static function resolvePlacedAttributeByName($webFormAttributeForm, $model, $attributeName, $attributeData)
 {
     $webFormAttributeForm->attribute = $attributeName;
     $params = array('inputPrefix' => array(get_class($webFormAttributeForm), $attributeName));
     if ($attributeData['isRequired']) {
         $webFormAttributeForm->required = true;
         $isRequiredChecked = 'checked';
         $isRequiredDisabled = 'disabled';
         $removePlacedAttributeLink = null;
     } else {
         if (isset($webFormAttributeForm->required) && $webFormAttributeForm->required == true) {
             $isRequiredChecked = 'checked';
             $isRequiredDisabled = null;
         } else {
             $isRequiredChecked = 'checked';
             $isRequiredDisabled = null;
         }
         $removePlacedAttributeLink = '<a class="remove-dynamic-row-link" id="ContactWebForm_serializedData_' . $attributeName . '" data-value="' . $attributeName . '"' . ' data-label="' . $attributeData['attributeLabel'] . '" href="#">—</a>';
     }
     if (isset($webFormAttributeForm->hidden) && $webFormAttributeForm->hidden == true) {
         $isHiddenChecked = 'checked';
         $hideHiddenAttributeElementStyle = 'display:block;';
     } else {
         $isHiddenChecked = '';
         $hideHiddenAttributeElementStyle = 'display:none;';
     }
     $attributeLabelElement = new TextElement($webFormAttributeForm, 'label', $model, $params);
     $isRequiredElement = new CheckBoxElement($webFormAttributeForm, 'required', $model, array_merge($params, array('checked' => $isRequiredChecked, 'disabled' => $isRequiredDisabled)));
     if (!in_array($attributeData['elementType'], static::$restrictHiddenControlAttributes)) {
         $isHiddenElement = new DerivedCheckBoxElement($webFormAttributeForm, 'hidden', $model, array_merge($params, array('checked' => $isHiddenChecked), array('htmlOptions' => array('class' => 'hiddenAttribute', 'data-value' => $attributeName))));
         $isHiddenElement->editableTemplate = '{content}{label}{error}';
         $renderHiddenAttributeElement = static::renderHiddenAttributeElement($webFormAttributeForm, 'hiddenValue', $model, $attributeData['elementType'], $params);
         $isHiddenElementContent = $isHiddenElement->render();
     } else {
         $isHiddenElementContent = null;
         $renderHiddenAttributeElement = null;
     }
     $attributeLabelElement->editableTemplate = '{content}{error}';
     $isRequiredElement->editableTemplate = '{content}{label}{error}';
     return array('{attributeName}' => $attributeName, '{attributeLabelElement}' => $attributeLabelElement->render(), '{isRequiredElement}' => $isRequiredElement->render(), '{isHiddenElement}' => $isHiddenElementContent, '{renderHiddenAttributeElement}' => $renderHiddenAttributeElement, '{removePlacedAttributeLink}' => $removePlacedAttributeLink, '{hideHiddenAttributeElementStyle}' => $hideHiddenAttributeElementStyle);
 }
 protected function renderLabel()
 {
     $content = parent::renderLabel();
     $content .= $this->renderTooltipContentForEnableDesktopNotifications();
     return $content;
 }
 /**
  * @return array
  */
 protected function getEditableHtmlOptions()
 {
     $htmlOptions = parent::getEditableHtmlOptions();
     $htmlOptions['onclick'] = 'toggleWorkflowShouldSetValueWrapper("' . $this->getEditableInputId() . '")';
     return $htmlOptions;
 }