public function renderFormLayout($form = null)
 {
     $nameElement = new TextElement($this->getModel(), 'name', $form);
     $nameElement->editableTemplate = '{content}{error}';
     $taskInput = ZurmoHtml::tag('div', array('class' => 'task-input'), $nameElement->render());
     $params = array('label' => Zurmo::t('TasksModule', 'Add'));
     $element = new SaveButtonActionElement($this->controllerId, $this->moduleId, $this->modelId, $params);
     $addButton = ZurmoHtml::tag('div', array('class' => 'task-add-button'), $element->render());
     return $taskInput . $addButton;
 }
 protected function renderDelimiterAndEnclosureContent($existingFilesInformation)
 {
     assert('is_array($existingFilesInformation)');
     $params = array('htmlOptions' => array('size' => 5, 'encode' => 1));
     if (count($existingFilesInformation) == 1) {
         $params['htmlOptions']['readonly'] = 'readonly';
         $params['htmlOptions']['class'] = 'readonly-field';
     }
     $delimiterElement = new TextElement($this->model, 'rowColumnDelimiter', $this->form, $params);
     $delimiterElement->editableTemplate = '<tr><td>{label}</td><td colspan="3">{content}</td></tr>';
     $enclosureElement = new TextElement($this->model, 'rowColumnEnclosure', $this->form, $params);
     $enclosureElement->editableTemplate = '<tr><td>{label}</td><td colspan="3">{content}</td></tr>';
     $content = $delimiterElement->render();
     $content .= $enclosureElement->render();
     return $content;
 }
 /**
  * @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;
 }
 /**
  * @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><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 CurrencyConversionTypeStaticDropDownElement($this->model, 'currencyConversionType', $this->form);
     $leftSideContent .= '<tr>' . $element->render() . '</tr>';
     $element = new CurrencyCodeStaticDropDownFormElement($this->model, 'spotConversionCurrencyCode', $this->form, array('addBlank' => true));
     $leftSideContent .= '<tr>' . $element->render() . '</tr></table>';
     $leftSideContent = ZurmoHtml::tag('div', array('class' => 'panel'), $leftSideContent);
     $leftSideContent = ZurmoHtml::tag('div', array('class' => 'left-column'), $leftSideContent);
     $rightSideContent = ZurmoHtml::tag('div', array('class' => 'right-side-edit-view-panel'), $this->renderRightSideFormLayout());
     $rightSideContent = ZurmoHtml::tag('div', array('class' => 'right-column'), $rightSideContent);
     $content = '<div class="attributesContainer">';
     $content .= $leftSideContent . $rightSideContent;
     $content .= '</div>';
     return $content;
 }
 public function testEditableHtmlOptionsInputValue()
 {
     $model = new User();
     $this->assertTrue($model->id < 0);
     $form = new ZurmoActiveForm();
     $textElement = new TextElement($model, 'id', $form);
     $content = $textElement->render();
     $valPosition = strpos($content, 'value=""');
     $valInvalidPosition = strpos($content, 'value="' . $model->id . '"');
     $this->assertTrue($valPosition > 0);
     $this->assertFalse($valInvalidPosition > 0);
     //Valid case
     $model = User::getByUsername('super');
     $this->assertTrue($model->id > 0);
     $textElement = new TextElement($model, 'id', $form);
     $content = $textElement->render();
     $valInvalidPosition = strpos($content, 'value=""');
     $valPosition = strpos($content, 'value="' . $model->id . '"');
     $this->assertTrue($valPosition > 0);
     $this->assertFalse($valInvalidPosition > 0);
 }
 protected function renderMissionContent()
 {
     $userUrl = Yii::app()->createUrl('/users/default/details', array('id' => $this->model->createdByUser->id));
     $content = '<div class="comment model-details-summary">';
     $content .= ZurmoHtml::link($this->model->createdByUser->getAvatarImage(100), $userUrl);
     $content .= '<span class="user-details">';
     $content .= ZurmoHtml::link(strval($this->model->createdByUser), $userUrl, array('class' => 'user-link'));
     $content .= '</span>';
     $element = new TextAreaElement($this->model, 'description');
     $element->nonEditableTemplate = '<div class="comment-content">{content}</div>';
     $content .= $element->render();
     if ($this->model->reward != null) {
         $element = new TextElement($this->model, 'reward');
         $element->nonEditableTemplate = '<div class="comment-content">' . Zurmo::t('MissionsModule', 'Reward') . ': {content}</div>';
         $content .= $element->render();
     }
     if ($this->model->takenByUser->id > 0) {
         $element = new UserElement($this->model, 'takenByUser');
         $element->nonEditableTemplate = '<div class="comment-content">' . Zurmo::t('MissionsModule', 'Taken By') . ': {content}</div>';
         $content .= $element->render();
     }
     if (!DateTimeUtil::isDateTimeValueNull($this->model, 'dueDateTime')) {
         $element = new DateTimeElement($this->model, 'dueDateTime');
         $element->nonEditableTemplate = '<div class="comment-content">' . Zurmo::t('MissionsModule', 'Due') . ': {content}</div>';
         $content .= $element->render();
     }
     $date = '<span class="comment-details"><strong>' . DateTimeUtil::convertDbFormattedDateTimeToLocaleFormattedDisplay($this->model->createdDateTime, 'long', null) . '</strong></span>';
     $content .= $date;
     if ($this->model->files->count() > 0) {
         $element = new FilesElement($this->model, 'null');
         $element->nonEditableTemplate = '<div>{content}</div>';
         $content .= '<div><strong>' . Zurmo::t('MissionsModule', 'Attachments') . '</strong></div>';
         $content .= $element->render();
     }
     $element = new MissionStatusElement($this->model, 'status');
     $element->nonEditableTemplate = '<div class="comment-content">' . Zurmo::t('MissionsModule', 'Status') . ': {content}</div>';
     $content .= $element->render();
     $content .= '</div>';
     return ZurmoHtml::tag('div', array('id' => 'ModelDetailsSummaryView'), $content);
 }
 protected function renderTextElement(&$content, $attributeName, $template = null)
 {
     $element = new TextElement($this->model, $attributeName, $this->form);
     if (isset($template)) {
         $element->editableTemplate = $template;
     }
     $elementContent = $element->render();
     $this->wrapContentInTableRow($elementContent);
     $content .= $elementContent;
 }
 protected function renderConfigurationFormLayout($form)
 {
     assert('$form instanceof ZurmoActiveForm');
     $content = null;
     if ($this->showFilteredBySearchTerm) {
         $element = new TextElement($this->configurationForm, 'filteredBySearchTerm', $form);
         $element->editableTemplate = ZurmoHtml::tag('div', array('id' => 'MarketingListMembersConfigurationForm_filteredBySearchTerm_area', 'class' => 'search-without-scope'), '{content}');
         $content .= $element->render();
     }
     if ($this->showFilteredBySubscriptionType) {
         $element = new MarketingListsSubscriptionTypeFilterRadioElement($this->configurationForm, 'filteredBySubscriptionType', $form);
         $element->editableTemplate = ZurmoHtml::tag('div', array('id' => 'MarketingListMembersConfigurationForm_filteredBySubscriptionType_area', 'class' => 'filters-bar'), '{content}');
         $content .= $element->render();
     }
     return $content;
 }
 /**
  * @return string
  */
 protected function renderEmailMessageContent()
 {
     $params = array('inputPrefix' => $this->inputPrefixData);
     $content = '<div class="attributesContainer">';
     $element = new EmailTemplatesForWorkflowStaticDropDownElement($this->model, 'emailTemplateId', $this->form, $params);
     $innerContent = '<table class="form-fields"><colgroup><col class="col-0"><col class="col-1">' . '</colgroup><tr>' . $element->render() . '</tr>';
     $element = new EmailMessageSendAfterDurationElement($this->model, null, $this->form, $params);
     $innerContent .= '<tr>' . $element->render() . '</tr>';
     $element = new EmailMessageSendFromTypeStaticDropDownElement($this->model, 'sendFromType', $this->form, $params);
     $innerContent .= '<tr>' . $element->render() . '</tr>';
     $element = new TextElement($this->model, 'sendFromName', $this->form, $params);
     $innerContent .= '<tr>' . $element->render() . '</tr>';
     $element = new TextElement($this->model, 'sendFromAddress', $this->form, $params);
     $innerContent .= '<tr>' . $element->render() . '</tr>';
     $innerContent .= '</table>';
     $content .= ZurmoHtml::tag('div', array('class' => 'panel'), $innerContent);
     $content .= '</div>';
     $content .= $this->renderRecipientsContent();
     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 renderLeftSideTopContent()
 {
     $content = null;
     $content .= '<div class="wide form">';
     $clipWidget = new ClipWidget();
     list($form, $formStart) = $clipWidget->renderBeginWidget('ZurmoActiveForm', array_merge(array('id' => static::getLeftSideFormId(), 'action' => '#'), $this->resolveActiveFormAjaxValidationOptions()));
     $content .= $formStart;
     $nameElement = new TextElement($this->getModel(), 'name', $form);
     $nameElement->editableTemplate = '{content}{error}';
     $content .= $nameElement->render();
     $descriptionElement = new TextAreaElement($this->getModel(), 'description', $form, array('rows' => 2));
     $content .= $descriptionElement->render();
     $formEnd = $clipWidget->renderEndWidget();
     $content .= $formEnd;
     $content .= $this->renderModalContainer();
     $content .= $this->renderAuditTrailModalContainer();
     $content .= '</div>';
     return ZurmoHtml::tag('div', array('class' => 'left-side-edit-view-panel'), $content);
 }
 protected function renderFormAttributesContent()
 {
     $formType = $this->model->getFormType();
     $params = array('inputPrefix' => $this->inputPrefixData);
     $content = null;
     if ($formType == WorkflowEmailMessageRecipientForm::TYPE_DYNAMIC_TRIGGERED_MODEL_USER) {
         $dynamicUserTypeElement = new DynamicUserTypeForEmailMessageRecipientStaticDropDownElement($this->model, 'dynamicUserType', $this->form, $params);
         $dynamicUserTypeElement->editableTemplate = '<div class="value-data">{content}{error}</div>';
         $content .= $dynamicUserTypeElement->render();
     } elseif ($formType == WorkflowEmailMessageRecipientForm::TYPE_DYNAMIC_TRIGGERED_MODEL_RELATION_USER) {
         $relationElement = new ModelRelationForEmailMessageRecipientStaticDropDownElement($this->model, 'relation', $this->form, $params);
         $relationElement->editableTemplate = '<div class="value-data">{content}{error}</div>';
         $dynamicUserTypeElement = new DynamicUserTypeForEmailMessageRecipientStaticDropDownElement($this->model, 'dynamicUserType', $this->form, $params);
         $dynamicUserTypeElement->editableTemplate = '<div class="value-data">{content}{error}</div>';
         $allRelatedDropdowns = Zurmo::t('WorkflowsModule', '<span>For all related</span> {relationsDropDown}', array('{relationsDropDown}' => $relationElement->render()));
         $allRelatedDropdowns .= $dynamicUserTypeElement->render();
         $content .= ZurmoHtml::tag('div', array('class' => 'all-related-field'), $allRelatedDropdowns);
     } elseif ($formType == WorkflowEmailMessageRecipientForm::TYPE_DYNAMIC_TRIGGERED_BY_USER || $formType == WorkflowEmailMessageRecipientForm::TYPE_DYNAMIC_TRIGGERED_MODEL) {
         //nothing to render
     } elseif ($formType == WorkflowEmailMessageRecipientForm::TYPE_DYNAMIC_TRIGGERED_MODEL_RELATION) {
         $relationElement = new ModelRelationForEmailMessageRecipientStaticDropDownElement($this->model, 'relation', $this->form, $params);
         $relationElement->editableTemplate = '<div class="value-data">{content}{error}</div>';
         $allRelatedDropdowns = Zurmo::t('WorkflowsModule', '<span>For all related</span> {relationsDropDown}', array('{relationsDropDown}' => $relationElement->render()));
         $content .= ZurmoHtml::tag('div', array('class' => 'all-related-field'), $allRelatedDropdowns);
     } elseif ($formType == WorkflowEmailMessageRecipientForm::TYPE_STATIC_ADDRESS) {
         $toNameElement = new TextElement($this->model, 'toName', $this->form, $params);
         $toNameElement->editableTemplate = '<div class="value-data"><span>{label}</span>{content}{error}</div>';
         $toAddressElement = new TextElement($this->model, 'toAddress', $this->form, $params);
         $toAddressElement->editableTemplate = '<div class="value-data"><span>{label}</span>{content}{error}</div>';
         $toNameAndAddressElements = null;
         $toNameAndAddressElements .= $toNameElement->render();
         $toNameAndAddressElements .= $toAddressElement->render();
         $content .= ZurmoHtml::tag('div', array('class' => 'static-address-field'), $toNameAndAddressElements);
     } elseif ($formType == WorkflowEmailMessageRecipientForm::TYPE_STATIC_GROUP) {
         $staticGroupElement = new AllGroupsStaticDropDownElement($this->model, 'groupId', $this->form, $params);
         $staticGroupElement->editableTemplate = '<div class="value-data">{content}{error}</div>';
         $content .= $staticGroupElement->render();
     } elseif ($formType == WorkflowEmailMessageRecipientForm::TYPE_STATIC_ROLE) {
         $staticRoleElement = new AllRolesStaticDropDownElement($this->model, 'roleId', $this->form, $params);
         $staticRoleElement->editableTemplate = '<div class="value-data">{content}{error}</div>';
         $content .= $staticRoleElement->render();
     } elseif ($formType == WorkflowEmailMessageRecipientForm::TYPE_STATIC_USER) {
         $staticUserElement = new UserNameIdElement($this->model, 'userId', $this->form, $params);
         $staticUserElement->setIdAttributeId('userId');
         $staticUserElement->setNameAttributeName('stringifiedModelForValue');
         $staticUserElement->editableTemplate = '<div class="value-data">{content}{error}</div>';
         $content .= $staticUserElement->render();
     } else {
         throw new NotSupportedException();
     }
     return $content;
 }
Example #13
0
 public function postRender()
 {
     $this->relativePage = $this->page;
     $this->isPostRendering = true;
     parent::render();
 }
 /**
  * Override to support the 'title' from MyListForm being rendered into the view. This is special because this
  * view can be modified in the designer tool, however the MyListForm is not compatible with the SearchForm in
  * designer so this special override is in place to manually ensure the MyListForm attributes, currently only
  * 'title' can be placed.
  * @see DetailsView::afterResolveMetadataWithRenderedElements()
  */
 protected function afterResolveMetadataWithRenderedElements(&$metadataWithRenderedElements, $form)
 {
     assert('is_array($metadataWithRenderedElements)');
     assert('$form == null || $form instanceof ZurmoActiveForm');
     $element = new TextElement($this->model, 'title', $form);
     $titleData = array();
     $titleData['rows'][0]['cells'][0]['elements'][0] = $element->render();
     array_unshift($metadataWithRenderedElements['global']['panels'], $titleData);
 }