/** * Render the link or ajax link * @param string $id the ID of the button * @param array $button the button configuration which may contain 'label', 'url', 'imageUrl' and 'options' elements. * See {@link buttons} for more details. * @param integer $row the row number (zero-based) * @param mixed $data the data object associated with the row */ protected function renderButton($id, $button, $row, $data) { if (isset($button['visible']) && !$this->evaluateExpression($button['visible'], array('row' => $row, 'data' => $data))) { return; } $label = isset($button['label']) ? $button['label'] : $id; if (isset($button['url'])) { $url = $this->evaluateExpression($button['url'], array('data' => $data, 'row' => $row)); // Not Coding Standard } else { $url = '#'; } $options = isset($button['options']) ? $button['options'] : array(); if (!isset($options['title'])) { $options['title'] = $label; } if (isset($button['ajaxOptions'])) { unset($options['ajaxOptions']); echo ZurmoHtml::ajaxLink($label, $url, $button['ajaxOptions'], $options); } else { if (isset($button['imageUrl']) && is_string($button['imageUrl'])) { echo ZurmoHtml::link(CHtml::image($button['imageUrl'], $label), $url, $options); } else { echo ZurmoHtml::link($label, $url, $options); } } }
/** * Render a test button. This link calls a modal * popup. * @return The element's content as a string. */ protected function renderTestButton() { $content = '<span>'; $content .= ZurmoHtml::ajaxLink(ZurmoHtml::wrapLabel(Zurmo::t('EmailMessagesModule', 'Send Test Email')), Yii::app()->createUrl('emailMessages/default/sendTestMessage/', array()), static::resolveAjaxOptionsForTestEmailSettings($this->form->getId()), array('id' => 'SendATestEmailToButton', 'class' => 'EmailTestingButton z-button')); $content .= '</span>'; return $content; }
protected function renderStarredFilterHidenField($modelClassName, $isFilteredByStarred) { $class = $isFilteredByStarred ? 'starred' : 'unstarred'; $url = Yii::app()->controller->createUrl(''); $link = ZurmoHtml::ajaxLink('w', '', array(), array('class' => 'icon-star ' . $class, 'id' => 'starDataColumn_filterByStarred', 'onclick' => $this->getAjaxSubmitScript($modelClassName, $isFilteredByStarred), 'namespace' => 'starDataColumn')); return $link; }
/** * Render a test button. This link calls a modal * popup. * @return The element's content as a string. */ protected function renderTestButton() { $content = '<span>'; $content .= ZurmoHtml::ajaxLink(ZurmoHtml::tag('span', array('class' => 'z-label'), Zurmo::t('ZurmoModule', 'Test Connection')), Yii::app()->createUrl('zurmo/ldap/testConnection/', array()), static::resolveAjaxOptionsForTestLdapConnection($this->form->getId()), array('id' => 'TestLdapConnectionButton', 'class' => 'LdapTestingButton z-button')); $content .= '</span>'; return $content; }
/** * Render create account modal link * @return array */ private function renderCreateAccountModalLink() { $id = $this->getIdForCreateLink(); $label = Zurmo::t('AccountsModule', 'or '); $label .= $this->getCreateAccountLabel(); $content = ZurmoHtml::ajaxLink($label, Yii::app()->createUrl('accounts/default/modalCreate', $this->getSelectLinkUrlParams()), $this->resolveAjaxOptionsForModalView($id), array('id' => $id, 'style' => $this->getSelectLinkStartingStyle(), 'class' => 'simple-link')); return $content; }
public function render() { $content = ZurmoHtml::openTag('div', array('class' => 'default-button')); $label = ZurmoHtml::tag('i', array('class' => $this->params['iconClass']), null); $label .= ZurmoHtml::tag('span', array('class' => 'button-label'), $this->getLabel()); $content .= $ajaxLink = ZurmoHtml::ajaxLink($label, $this->getDefaultRoute(), $this->getAjaxLinkOptions(), $this->getHtmlOptions()); $content .= ZurmoHtml::closeTag('div'); return $content; }
protected function renderHideLinkContent() { $label = '<span></span>' . Zurmo::t('ZurmoModule', 'Dismiss'); $content = '<div class="hide-module-intro">'; $ajaxOptions = array('type' => 'GET', 'success' => "function()\n {\n \$('#{$this->getPanelId()}-checkbox-id').attr('checked', false).parent().removeClass('c_on');\n \$('#{$this->getPanelId()}').slideToggle();\n }\n "); $content .= ZurmoHtml::ajaxLink($label, Yii::app()->createUrl('zurmo/default/toggleDismissIntroView', array('moduleName' => $this->moduleName, 'panelId' => $this->getPanelId())), $ajaxOptions); $content .= '</div>'; return $content; }
public function render() { $id = HeaderLinksView::USER_GAME_DASHBOARD_LINK_ID; $content = ZurmoHtml::openTag('div', array('class' => 'default-button')); $label = ZurmoHtml::tag('i', array('class' => $this->params['iconClass']), null); $label .= ZurmoHtml::tag('span', array('class' => 'button-label'), $this->getLabel()); $content .= $ajaxLink = ZurmoHtml::ajaxLink($label, $this->getDefaultRoute(), HeaderLinksView::resolveAjaxOptionsForGameDashboardModel($id), $this->getHtmlOptions()); $content .= ZurmoHtml::closeTag('div'); return $content; }
/** * Render a test button. This link calls a modal * popup. * @return The element's content as a string. */ protected function renderTestButton() { $id = 'testImapConnection'; $content = '<span>'; $params = array(); $this->resolveParamsFromModel($this->model, $params); $content .= ZurmoHtml::ajaxLink(ZurmoHtml::wrapLabel(Zurmo::t('ZurmoModule', 'Test Connection')), Yii::app()->createUrl('emailMessages/default/testImapConnection/', $params), static::resolveAjaxOptionsForTestEmailSettings($this->form->getId()), array('id' => $id, 'class' => 'EmailTestingButton z-button')); $content .= '</span>'; return $content; }
protected function renderMenuRecursive($items) { foreach ($items as $item) { $liClose = null; $rendered = false; if (!array_key_exists('renderHeader', $item) || $item['renderHeader']) { $rendered = true; $liClose = ZurmoHtml::closeTag('li') . "\n"; $liOptions = array(); if (isset($item['itemOptions'])) { $liOptions = $item['itemOptions']; } echo ZurmoHtml::openTag('li', $liOptions); if (isset($item['linkOptions'])) { $htmlOptions = $item['linkOptions']; } else { $htmlOptions = array(); } if (!empty($item['label'])) { $resolvedLabelContent = $this->renderLabelPrefix() . ZurmoHtml::tag('span', array(), $item['label']); } else { $resolvedLabelContent = static::resolveAndGetSpanAndDynamicLabelContent($item); } if (isset($item['ajaxLinkOptions'])) { echo ZurmoHtml::ajaxLink($resolvedLabelContent, $item['url'], $item['ajaxLinkOptions'], $htmlOptions); } elseif (isset($item['url'])) { echo ZurmoHtml::link($this->renderLinkPrefix() . $resolvedLabelContent, $item['url'], $htmlOptions); } else { if (!empty($item['label'])) { echo ZurmoHtml::link($resolvedLabelContent, "javascript:void(0);", $htmlOptions); } else { echo $resolvedLabelContent; } } } if (isset($item['items']) && count($item['items'])) { $nestedUlOpen = null; $nestedUlClose = null; if ($rendered) { $nestedUlOpen = "\n" . ZurmoHtml::openTag('ul', $this->submenuHtmlOptions) . "\n"; $nestedUlClose = ZurmoHtml::closeTag('ul') . "\n"; } echo $nestedUlOpen; $this->renderMenuRecursive($item['items']); echo $nestedUlClose; } echo $liClose; } }
protected function renderSelectLink() { if (!$this->shouldRenderSelectLink) { return null; } $cs = Yii::app()->getClientScript(); $cs->registerCoreScript('bbq'); $cs->registerScriptFile(Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('application.core.elements.assets')) . '/Modal.js', CClientScript::POS_END); $this->registerSelectLinkScripts(); $content = ZurmoHtml::openTag('div', array('class' => 'has-model-select')); $content .= ZurmoHtml::hiddenField($this->getIdForHiddenSelectLinkField()); $content .= ZurmoHtml::ajaxLink('<span class="model-select-icon"></span>', Yii::app()->createUrl($this->getSourceUrlForSelectLink(), $this->getSelectLinkUrlParams()), $this->resolveAjaxOptionsForSelectingModel(), array('id' => $this->getWidgetId() . '-select-link')); $content .= ZurmoHtml::closeTag('div'); return $content; }
protected function renderControlNonEditable() { $avatarImage = $this->model->getAvatarImage(110); $content = '<div class="gravatar-container">'; if (Yii::app()->user->userModel->id == $this->model->id || RightsUtil::canUserAccessModule('UsersModule', Yii::app()->user->userModel)) { $span = ZurmoHtml::tag('span', array('id' => 'profile-picture-tooltip'), Zurmo::t('UsersModule', 'Change Profile Picture'), true); $url = Yii::app()->createUrl('/users/default/changeAvatar', array('id' => $this->model->id)); $modalTitle = ModalView::getAjaxOptionsForModalLink(Zurmo::t('UsersModule', 'Change Profile Picture') . ": " . strval($this->model)); $content .= ZurmoHtml::ajaxLink($span . $avatarImage, $url, $modalTitle); } else { $content .= $avatarImage; } $content .= '</div>'; return $content; }
protected static function renderAjaxLink($id, $label, $url, $pageVar, $page, $style) { assert('is_string($id)'); assert('is_string($label)'); assert('is_string($url)'); assert('is_string($pageVar)'); assert('is_int($page)'); assert('is_string($style) || $style == null'); $urlScript = 'js:$.param.querystring("' . $url . '", "' . $pageVar . '=" + $(this).attr("href"))'; // Begin Not Coding Standard return ZurmoHtml::ajaxLink($label, $urlScript, array('type' => 'GET', 'dataType' => 'json', 'success' => 'js:function(data){ $.each(data, function(key, value){ $("#" + key).html(value); }); }'), array('id' => $id, 'href' => $page, 'style' => $style, 'class' => 'z-link')); // End Not Coding Standard }
protected static function renderRedeemLink(GameReward $gameReward, $availableCoins) { assert('is_int($availableCoins)'); $url = Yii::app()->createUrl('gameRewards/default/redeemReward', array('id' => $gameReward->id)); $label = Zurmo::t('ZurmoModule', 'Redeem'); $aContent = ZurmoHtml::wrapLink($label); // Begin Not Coding Standard return ZurmoHtml::ajaxLink($aContent, $url, array('type' => 'GET', 'dataType' => 'json', 'success' => 'function(data){ $("#FlashMessageBar").jnotifyAddMessage({ text: data.message, permanent: false, }); $("#GameRewardsRedeemListView").each(function(){ $(this).find(".pager").find(".refresh").find("a").click(); }); }'), self::resolveHtmlOptionsForRedeemLink($gameReward, $availableCoins)); // End Not Coding Standard }
public static function getToggleStarStatusLink($data, $row) { $starredClass = 'icon-star unstarred'; $text = 'w'; //w = Star in Icon-Font if (static::isModelStarred($data)) { $starredClass = 'icon-star starred'; } $starId = 'star-' . get_class($data) . '-' . $data->id; $link = ZurmoHtml::ajaxLink($text, Yii::app()->createUrl('zurmo/default/toggleStar', array('modelClassName' => get_class($data), 'modelId' => $data->id)), array('success' => "function(data){\$('#{$starId}').removeClass().addClass(data)}"), array('class' => $starredClass, 'id' => $starId, 'namespace' => 'update')); return $link; }
/** * Renders hidden link which refresh the list on entering new check list item * @return string */ protected function renderHiddenRefreshLinkContent() { $url = Yii::app()->createUrl($this->moduleId . '/' . $this->controllerId . '/ajaxCheckItemListForRelatedTaskModel', $this->getParams); return ZurmoHtml::ajaxLink('Refresh', $url, array('type' => 'GET', 'success' => 'function(data){$("#TaskCheckListItemsForTaskView' . $this->uniquePageId . '").replaceWith(data)}'), array('id' => 'hiddenCheckListItemRefresh' . $this->uniquePageId, 'class' => 'hiddenCheckListItemRefresh', 'namespace' => 'refresh', 'style' => 'display:none;')); }
/** * Based on security, render an email address as a clickable link to a modal window or just a mailto: link * that will open the user's configured email client. * @param EmailMessage $emailAddress * @param RedBeanModel $model * @return string $content */ public static function renderEmailAddressAsMailToOrModalLinkStringContent($emailAddress, RedBeanModel $model) { assert('is_string($emailAddress) || $emailAddress == null'); if ($emailAddress == null) { return; } $userCanAccess = RightsUtil::canUserAccessModule('EmailMessagesModule', Yii::app()->user->userModel); $userCanCreate = RightsUtil::doesUserHaveAllowByRightName('EmailMessagesModule', EmailMessagesModule::RIGHT_CREATE_EMAIL_MESSAGES, Yii::app()->user->userModel); if (!$userCanAccess || !$userCanCreate) { $showLink = false; } else { $showLink = true; } if ($showLink && !$model instanceof Account) { $url = Yii::app()->createUrl('/emailMessages/default/createEmailMessage', array('toAddress' => $emailAddress, 'relatedId' => $model->id, 'relatedModelClassName' => get_class($model), 'redirectUrl' => Yii::app()->request->getRequestUri())); $modalAjaxOptions = ModalView::getAjaxOptionsForModalLink(Zurmo::t('EmailMessagesModule', 'Compose Email'), 'modalContainer', 'auto', 800, array('my' => 'top', 'at' => 'bottom', 'of' => '#HeaderView')); $content = ZurmoHtml::ajaxLink($emailAddress, $url, $modalAjaxOptions); } else { $content = Yii::app()->format->email($emailAddress); } return $content; }
protected function renderEditLinkContent(Comment $comment) { $url = ''; // Begin Not Coding Standard return ZurmoHtml::ajaxLink(Zurmo::t('CommentsModule', 'Edit'), $url); // End Not Coding Standard }
protected function renderSaveLayoutButton($notificationBarId) { Yii::app()->clientScript->registerScriptFile(Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('application.core.views.assets')) . '/FormUtils.js', CClientScript::POS_END); $htmlOptions = array(); $htmlOptions['id'] = 'saveLayout'; $htmlOptions['name'] = 'saveLayout'; $htmlOptions['class'] = 'attachLoading z-button'; $aContent = ZurmoHtml::wrapLink(Zurmo::t('DesignerModule', 'Save Layout')); return ZurmoHtml::ajaxLink($aContent, '', array('data' => 'js:designer.prepareSaveLayout("edit-form")', 'dataType' => 'json', 'type' => 'POST', 'beforeSend' => 'js:function(){$(this).attachLoadingOnSubmit("edit-form");}', 'complete' => 'js:function(){$(this).detachLoadingOnSubmit("edit-form");}', 'success' => 'function(data){designer.updateFlashBarAfterSaveLayout(data, "' . $notificationBarId . '")}', 'error' => 'function(data){ ' . 'var data = {' . ' "message" : "' . Zurmo::t('Core', 'There was an error processing your request') . '", "type" : "error" }; designer.updateFlashBarAfterSaveLayout(data, "' . $notificationBarId . '") }'), $htmlOptions); }
protected static function renderNextTipAjaxLink($id, $label) { assert('is_string($id)'); assert('is_string($label)'); $url = Yii::app()->createUrl('home/default/getTip'); // Begin Not Coding Standard return ZurmoHtml::ajaxLink($label, $url, array('type' => 'GET', 'dataType' => 'json', 'success' => "js:function(data){\n \$('.daily-tip').find('li').html(data);\n }"), array('id' => $id, 'href' => '#')); // End Not Coding Standard }
/** * Render a map link. This link calls a modal * popup. * @return The element's content as a string. */ protected function renderMapLink($addressModel, $addressLine) { assert('$addressModel instanceof Address'); Yii::app()->getClientScript()->registerScriptFile(Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('application.core.elements.assets')) . '/Modal.js', CClientScript::POS_END); $mapRenderUrl = Yii::app()->mappingHelper->resolveMappingLinkUrl(array('addressString' => $addressModel->makeAddress(), 'latitude' => $addressModel->latitude, 'longitude' => $addressModel->longitude)); $id = $this->getEditableInputId($this->attribute, 'MapLink'); $content = ZurmoHtml::ajaxLink($addressLine, $mapRenderUrl, $this->resolveAjaxOptionsForMapLink(), array('id' => $id, 'class' => 'icon-map')); return $content; }
/** * @return string */ protected function renderEditLinkContent(Comment $comment) { $url = ''; return ZurmoHtml::ajaxLink(Zurmo::t('Core', 'Edit'), $url); }
protected function renderMenuItem($item) { if (isset($item['ajaxLinkOptions'])) { if ($this->linkLabelWrapper === null) { $label = $item['label']; } else { $label = ZurmoHtml::tag($this->linkLabelWrapper, $this->linkLabelWrapperHtmlOptions, $item['label']); } return ZurmoHtml::ajaxLink($label, $item['url'], $item['ajaxLinkOptions'], $this->resolveHtmlOptions($item)); } else { return parent::renderMenuItem($item); } }
protected static function renderEditLink($portletId, $uniqueLayoutId, $moduleId, $renderOnClickEvent = true) { $htmlOptions = array('class' => 'edit', 'id' => $uniqueLayoutId . '_' . $portletId . '_EditLink'); if (!$renderOnClickEvent) { return ZurmoHtml::link(Yii::t('Default', 'Edit') . '<span class="icon"></span>', '#', $htmlOptions); } else { $url = null; $ajaxOptions = array(); } $url = Yii::app()->createUrl($moduleId . '/defaultPortlet/ModalConfigEdit/', array('uniqueLayoutId' => $uniqueLayoutId, 'portletId' => $portletId)); return ZurmoHtml::ajaxLink(Yii::t('Default', 'Edit') . '<span class="icon"></span>', $url, static::resolveAjaxOptionsForEditLink(), $htmlOptions); }
public function render() { return ZurmoHtml::ajaxLink($this->getLabel(), $this->getDefaultRoute(), $this->getAjaxLinkOptions(), $this->getHtmlOptions()); }
/** * @param int $rowCount * @return string */ protected function renderAddExtraRowContent($rowCount) { assert('is_int($rowCount)'); $idInputHtmlOptions = array('id' => $this->getRowCounterInputId()); $hiddenInputName = 'rowCounter'; $ajaxOnChangeUrl = Yii::app()->createUrl("zurmo/default/dynamicSearchAddExtraRow", array('viewClassName' => get_class($this), 'modelClassName' => get_class($this->model->getModel()), 'formModelClassName' => get_class($this->model), 'suffix' => $this->getSearchFormId())); $content = ZurmoHtml::hiddenField($hiddenInputName, $rowCount, $idInputHtmlOptions); // Begin Not Coding Standard $addFieldLabelContent = $this->getAddFieldLabelContent(); $aContent = ZurmoHtml::wrapLink($addFieldLabelContent); $content .= ZurmoHtml::ajaxLink($aContent, $ajaxOnChangeUrl, array('type' => 'GET', 'data' => 'js:\'rowNumber=\' + $(\'#rowCounter-' . $this->getSearchFormId() . '\').val()', 'beforeSend' => 'js:function(){ $(this).makeOrRemoveLoadingSpinner(true, "#' . $this->getSearchFormId() . '", "dark"); }', 'success' => 'js:function(data){ $(\'#' . $this->getRowCounterInputId() . '\').val(parseInt($(\'#' . $this->getRowCounterInputId() . '\').val()) + 1) $(\'#addExtraAdvancedSearchRowButton-' . $this->getSearchFormId() . '\').parent().before(data); rebuildDynamicSearchRowNumbersAndStructureInput("' . $this->getSearchFormId() . '"); resolveClearLinkPrefixLabelAndVisibility("' . $this->getSearchFormId() . '"); $(this).makeOrRemoveLoadingSpinner(false, "#' . $this->getSearchFormId() . '"); }'), array('id' => 'addExtraAdvancedSearchRowButton-' . $this->getSearchFormId(), 'namespace' => 'add')); // End Not Coding Standard return ZurmoHtml::tag('div', array('class' => 'add-fields-container'), $content); }
/** * @param int $newStatus * @param int $missionId * @param string $label * @param string $updateDivId * @return string */ protected static function renderAjaxStatusActionChangeLink($newStatus, $missionId, $label, $updateDivId) { assert('is_int($newStatus)'); assert('is_int($missionId)'); assert('is_string($label)'); assert('is_string($updateDivId)'); $url = Yii::app()->createUrl('missions/default/ajaxChangeStatus', array('status' => $newStatus, 'id' => $missionId)); $aContent = ZurmoHtml::wrapLink($label); return ZurmoHtml::ajaxLink($aContent, $url, array('type' => 'GET', 'success' => 'function(data){$("#' . $updateDivId . '").replaceWith(data)}'), array('id' => $newStatus . '-' . $updateDivId, 'class' => 'mission-change-status-link attachLoading z-button ' . self::resolveLinkSpecificCssClassNameByNewStatus($newStatus), 'namespace' => 'update', 'onclick' => 'js:$(this).addClass("loading").addClass("loading-ajax-submit"); $(this).makeOrRemoveLoadingSpinner(true, "#" + $(this).attr("id"));')); }
/** * @return string */ protected function renderSaveLinkContent() { $aContent = ZurmoHtml::wrapLink(Zurmo::t('Core', 'Save')); return ZurmoHtml::ajaxLink($aContent, $this->getFormActionUrl(), array('type' => 'POST', 'dataType' => 'json', 'data' => 'js:$("#' . static::getFormId() . '").serialize()', 'complete' => 'js:function(){$(this).detachLoadingOnSubmit("' . static::getFormId() . '");}', 'success' => 'function(data) { $("#FlashMessageBar").jnotifyAddMessage( { text: data.message, permanent: false, showIcon: true, type: data.type }); }'), array('id' => 'save-order', 'class' => 'attachLoading z-button', 'onclick' => 'js:$(this).addClass("loading").addClass("loading-ajax-submit"); $(this).makeOrRemoveLoadingSpinner(true, "#" + $(this).attr("id"));')); }
/** * @param int $columnCount * @return string */ protected function renderAddExtraColumnContent($columnCount) { assert('is_int($columnCount)'); $idInputHtmlOptions = array('id' => 'columnCounter'); $hiddenInputName = 'columnCounter'; $ajaxOnChangeUrl = Yii::app()->createUrl("import/default/mappingAddExtraMappingRow", array('id' => $this->model->id)); $content = ZurmoHtml::hiddenField($hiddenInputName, $columnCount, $idInputHtmlOptions); // Begin Not Coding Standard $aContent = ZurmoHtml::wrapLink(Zurmo::t('ImportModule', 'Add Field')); $content .= ZurmoHtml::ajaxLink($aContent, $ajaxOnChangeUrl, array('type' => 'GET', 'data' => 'js:\'columnCount=\' + $(\'#columnCounter\').val()', 'complete' => 'js:function(){$("#addExtraColumnButton").removeClass("loading"); $("#addExtraColumnButton").removeClass("loading-ajax-submit");}', 'success' => 'js:function(data){ $(\'#columnCounter\').val(parseInt($(\'#columnCounter\').val()) + 1) $(\'#addExtraColumnButton\').parent().parent().prev().after(data); }'), array('id' => 'addExtraColumnButton', 'class' => 'attachLoading z-button', 'onclick' => 'js:if ($(this).hasClass("loading")) {return false;} $(this).addClass("loading").addClass("loading-ajax-submit"); $(this).makeOrRemoveLoadingSpinner(true, "#" + $(this).attr("id"));')); // End Not Coding Standard return $content; }
/** * @return string */ public function render() { $ajaxLink = ZurmoHtml::ajaxLink($this->resolveLabelAndWrap(), $this->route, $this->getAjaxOptions(), array('class' => 'button-action-trigger')); $content = ZurmoHtml::tag('div', array('class' => 'default-button'), $ajaxLink); return $content; }