/** * [[@doctodo method_description:generate]]. * * @return unknown */ public function generate() { if (empty($this->_items)) { return ''; } $result = []; $formOptions = ['options' => ['class' => ''], 'enableClientValidation' => false]; if (Yii::$app->request->isAjax) { Html::addCssClass($formOptions['options'], 'ajax'); } if ($this->hasFile() && !isset($formOptions['options']['enctype'])) { $formOptions['options']['enctype'] = 'multipart/form-data'; } list($this->form, $formStartRow) = ActiveForm::begin($formOptions, false); $result[] = $formStartRow; // $result[] = Html::beginForm('', 'post', array('class' => $this->class)); $result[] = Html::beginTag('div', ['class' => '']); foreach ($this->_items as $item) { $result[] = $item->generate(); } //if (!Yii::$app->request->isAjax) { $result[] = Html::beginTag('div', ['class' => 'row form-group submit-group']); $result[] = Html::beginTag('div', ['class' => 'col-sm-12']); $result[] = Html::submitButton('Save', ['class' => 'btn btn-primary']); $result[] = Html::endTag('div'); $result[] = Html::endTag('div'); //} $result[] = Html::endTag('div'); $result[] = ActiveForm::end(false); return implode("\n", $result); }
/** * [[@doctodo method_description:prepareItem]]. * * @param [[@doctodo param_type:engine]] $engine [[@doctodo param_description:engine]] * * @return [[@doctodo return_type:prepareItem]] [[@doctodo return_description:prepareItem]] */ public function prepareItem($engine) { $item = clone $this->item; $item->inputOptions['data-engine'] = $engine->primaryKey; Html::addCssClass($item->inputOptions, 'storage-field'); return $item; }
/** * [[@doctodo method_description:generateStart]]. * * @return [[@doctodo return_type:generateStart]] [[@doctodo return_description:generateStart]] */ public function generateStart() { $this->htmlOptions['data-instructions'] = json_encode($this->refreshInstructions); if ($this->lazy) { Html::addCssClass($this->htmlOptions, 'widget-lazy'); } return parent::generateStart(); }
/** * [[@doctodo method_description:generateStart]]. * * @return [[@doctodo return_type:generateStart]] [[@doctodo return_description:generateStart]] */ public function generateStart() { $parts = []; foreach ($this->owner->widgetClasses as $class) { Html::addCssClass($this->owner->htmlOptions, $class); } $parts[] = Html::beginTag('div', $this->owner->htmlOptions); return implode("", $parts); }
/** * @inheritdoc */ public function getListItemOptions($model, $key, $index) { $options = array_merge(parent::getListItemOptions($model, $key, $index), ['tag' => 'a', 'href' => Url::to($model->getUrl('view'))]); if (!$model->can('read')) { Html::addCssClass($options, 'disabled'); $options['href'] = '#'; } return $options; }
/** * @inheritdoc */ public function generateContent() { if (empty(Yii::$app->request->object)) { return false; } if (!($detailFields = Yii::$app->request->object->getDetailFields()) || empty($detailFields)) { return false; } $parts = []; Html::addCssClass($this->contentHtmlOptions, 'dl-horizontal'); $parts[] = Html::beginTag('dl', $this->contentHtmlOptions); foreach ($detailFields as $key => $field) { $parts[] = Html::tag('dt', $field->label, $this->termHtmlOptions); $parts[] = Html::tag('dd', $field->formattedValue, $this->valueHtmlOptions); } $parts[] = Html::endTag('dl'); return implode($parts); }
if (!isset($htmlOptions)) { $htmlOptions = []; } $roleSet = isset($objectRoles[$requestorObject->primaryKey]) ? $objectRoles[$requestorObject->primaryKey] : []; $role = isset($roleSet['role']) ? $roleSet['role'] : null; $roleObject = isset($role) ? $role->object : null; Html::addCssClass($htmlOptions, 'list-group-item'); $requestorOptions = []; $requestorOptions['id'] = $requestorObject->primaryKey; $requestorOptions['label'] = $requestorObject->descriptor; $requestorOptions['maxRoleLevel'] = isset($maxRoleLevel) ? $maxRoleLevel : false; $requestorOptions['type'] = $requestorObject->objectType->systemId; $requestorOptions['editable'] = true; if (isset($role) && isset($roleSet['inherited']) && $roleSet['inherited'] && !$role->inheritedEditable) { $requestorOptions['editable'] = false; } $htmlOptions['data-requestor'] = json_encode($requestorOptions); if (!$requestorOptions['editable']) { Html::addCssClass($htmlOptions, 'uneditable'); } echo Html::beginTag('li', $htmlOptions); echo $this->renderFile('@cascade/views/object/access_role.php', ['roles' => $roles, 'role' => $roleObject, 'objectAccess' => $objectAccess, 'disableFields' => $disableFields, 'editable' => $requestorOptions['editable']], $this); echo Html::tag('h4', $requestorObject->descriptor, ['class' => 'list-group-item-heading']); if (!isset($helpText)) { $helpText = $requestorObject->objectType->title->upperSingular; } echo Html::tag('p', $helpText, ['class' => 'list-group-item-text help-text']); if (isset($errors[$requestorObject->primaryKey])) { echo Html::tag('p', $errors[$requestorObject->primaryKey], ['class' => 'alert alert-danger']); } echo Html::endTag('li');
<?php use canis\helpers\Html; if (empty($role)) { $role = 'none'; } elseif (is_object($role)) { $role = $role->primaryKey; } $selectedRole = isset($roles[$role]) ? $roles[$role] : $roles['none']; $isDisabled = $disableFields || !$selectedRole['available'] || !$editable; $htmlOptions = ['type' => 'button']; $roleOptions = $selectedRole; $htmlOptions['data-role'] = json_encode($roleOptions); Html::addCssClass($htmlOptions, 'btn btn-default pull-right'); if ($isDisabled) { Html::addCssClass($htmlOptions, 'disabled'); } if (!$editable) { $selectedRole['label'] = 'Inherited ' . $selectedRole['label']; } echo Html::tag('button', Html::tag('span', $selectedRole['label'], ['class' => 'role-label']) . ' ' . Html::tag('span', '', ['class' => 'caret']), $htmlOptions);
} } if (count($sectionsMenu) > 2) { $mainColumnSize -= 2; } $mainCell = []; foreach ($sections as $section) { if ($section->priority === false) { continue; } $mainCell[] = $section->object->cell; } $mainCellGrid = Yii::createObject(['class' => 'canis\\web\\grid\\Grid']); $mainCellGrid->cells = $mainCell; $cells[] = $mainCell = Yii::createObject(['class' => 'canis\\web\\grid\\Cell', 'content' => $mainCellGrid->generate()]); Yii::configure($mainCell, ['mediumDesktopColumns' => 4, 'maxMediumDesktopColumns' => $mainColumnSize, 'largeDesktopSize' => false, 'tabletColumns' => $mainColumnSize + 1]); Html::addCssClass($mainCell->htmlOptions, 'ic-main-cell'); if (count($sectionsMenu) > 2) { $js[] = '$(".ic-sidenav").cascadeAffix();'; $menuContent = Html::beginTag('div', ['class' => 'ic-sidenav']); $menuContent .= Nav::widget(['options' => ['class' => 'navbar-default'], 'encodeLabels' => false, 'items' => $sectionsMenu]); $menuContent .= Html::endTag('div'); $cells[] = $menuCell = Yii::createObject(['class' => 'canis\\web\\grid\\Cell', 'content' => $menuContent]); Yii::configure($menuCell, ['mediumDesktopColumns' => 2, 'maxMediumDesktopColumns' => 2, 'largeDesktopSize' => false, 'tabletSize' => false]); Html::addCssClass($menuCell->htmlOptions, 'hidden-xs hidden-sm'); } $grid->cells = $cells; $grid->output(); echo Html::endTag('div'); // .dashboard $this->registerJs(implode("\n", $js));
<?php use canis\helpers\Html; use yii\widgets\ActiveForm; $this->title = 'Login'; $this->params['breadcrumbs'][] = $this->title; $formOptions = ['class' => 'form-horizontal']; if (!Yii::$app->request->isAjax) { echo '<div class="col-md-offset-3 col-md-6">'; } else { Html::addCssClass($formOptions, 'ajax'); } $form = ActiveForm::begin(['id' => 'login-form', 'options' => $formOptions, 'fieldConfig' => ['template' => "{label}\n<div class=\"col-lg-9\">{input}</div>\n<div class=\"col-lg-12\">{error}</div>", 'labelOptions' => ['class' => 'col-lg-3 control-label']]]); echo $form->field($model, 'email'); echo $form->field($model, 'password')->passwordInput(); echo $form->field($model, 'rememberMe', ['template' => "<div class=\"col-md-offset-1 col-lg-9 \">{input}</div>\n<div class=\"col-lg-8\">{error}</div>"])->checkbox(); echo '<div class="submit-group col-md-offset-1 col-lg-9 ">'; echo Html::submitButton('Login', ['class' => 'btn btn-primary']); echo '</div>'; echo '</div>'; ActiveForm::end();
/** * @inheritdoc */ public function generateContent() { if (!isset(Yii::$app->request->object)) { return false; } $object = Yii::$app->request->object; $content = []; $content[] = Html::beginTag('div', ['class' => 'well ic-masthead']); if (Yii::$app->request->previousObject) { $content[] = Html::beginTag('div', ['class' => 'ic-object-previous']); $content[] = Html::tag('span', '', ['class' => 'fa fa-reply']) . ' ' . Html::a('Go back to <em>' . Yii::$app->request->previousObject->descriptor . '</em>', Yii::$app->request->previousObject->getUrl('view', [], false)); $content[] = Html::endTag('div'); } if ($object->getBehavior('Photo')) { $photoHtmlOptions = []; $img = $object->getPhotoUrl(200); if ($img) { Html::addCssClass($photoHtmlOptions, 'ic-object-photo ic-object-photo-image'); $photoHtmlOptions['style'] = 'background-image: url("' . $img . '");'; } else { Html::addCssClass($photoHtmlOptions, 'ic-object-photo ic-object-photo-icon ' . $object->objectType->icon); } $photoContent = ''; $content[] = Html::tag('div', $photoContent, $photoHtmlOptions); } $content[] = Html::beginTag('div', ['class' => 'ic-object-header']); $content[] = $object->descriptor; $objectAccess = $object->objectAccess; $objectVisibility = $objectAccess->visibility; $content[] = Html::endTag('div'); if ($object->archived) { $content[] = Html::tag('div', Html::tag('span', 'Archived', ['class' => 'label label-warning']), ['class' => 'center-block center-text']); } $menu = []; $familiarty = $object->getFamiliarity(); $startWatchingItem = ['label' => Html::tag('span', '', ['class' => 'fa fa-eye']) . ' Watch', 'url' => $object->getUrl('watch'), 'options' => ['title' => 'Watch and get notified with changes', 'data-handler' => 'background', 'class' => 'watch-link', 'data-watch-task' => 'start']]; $stopWatchingItem = ['label' => Html::tag('span', '', ['class' => 'fa fa-check']) . ' Watching', 'url' => $object->getUrl('watch', ['stop' => 1]), 'options' => ['title' => 'Stop receiving change notifications', 'data-handler' => 'background', 'data-watch-task' => 'stop', 'class' => 'watch-link']]; $accessManageUrl = $object->getUrl('access'); $startWatchingItem['companion'] = $stopWatchingItem; $stopWatchingItem['companion'] = $startWatchingItem; if (empty($familiarty->watching)) { $menu[] = $startWatchingItem; } else { $menu[] = $stopWatchingItem; } if ($object->can('update')) { $menu[] = ['label' => Html::tag('span', '', ['class' => 'fa fa-wrench']) . ' Update', 'url' => $object->getUrl('update'), 'options' => ['title' => 'Update', 'data-handler' => 'background']]; } if ($object->can('delete') || $object->can('archive')) { $label = 'Delete'; $icon = 'fa-trash-o'; if ($object->can('archive')) { $icon = 'fa-archive'; if ($object->archived) { $label = 'Unarchive'; } else { $label = 'Archive'; } } $menu[] = ['label' => Html::tag('span', '', ['class' => 'fa ' . $icon]) . ' ' . $label, 'url' => $object->getUrl('delete'), 'options' => ['title' => $label, 'data-handler' => 'background']]; } if ($objectVisibility === 'public') { $accessIcon = 'fa fa-globe'; $accessTitle = $object->objectType->title->upperSingular . ' is public'; $accessLabel = 'Public'; } elseif ($objectVisibility === 'shared') { $accessIcon = 'fa fa-rss'; $accessTitle = $object->objectType->title->upperSingular . ' is shared'; $accessLabel = 'Shared'; } elseif ($objectVisibility === 'internal') { $accessIcon = 'fa fa-building-o'; $accessTitle = $object->objectType->title->upperSingular . ' is shared internally'; $accessLabel = 'Internal'; } elseif ($objectVisibility === 'admins') { $accessIcon = 'fa fa-lock'; $accessTitle = $object->objectType->title->upperSingular . ' is shared only with administrators'; $accessLabel = 'Administrators'; } else { $accessIcon = 'fa fa-user'; $accessTitle = $object->objectType->title->upperSingular . ' is private'; $accessLabel = 'Private'; } if ($object->can('manageAccess')) { } $menu[] = ['label' => Html::tag('span', '', ['class' => $accessIcon]) . ' ' . $accessLabel, 'url' => $accessManageUrl, 'options' => ['title' => $accessTitle, 'data-handler' => 'background']]; $menu[] = ['label' => Html::tag('span', '', ['class' => 'fa fa-history']) . ' Activity', 'url' => $object->getUrl('activity'), 'options' => ['title' => 'View Activity', 'data-handler' => 'background']]; if (!empty($menu)) { $content[] = Html::beginTag('div', ['class' => 'ic-object-menu columns-' . count($menu)]); $content[] = Html::beginTag('ul', ['class' => 'clearfix']); $menuCount = 0; foreach ($menu as $item) { $menuCount++; if (!isset($item['options'])) { $item['options'] = []; } $companionContent = ''; if (isset($item['companion'])) { $companion = $item['companion']; if (!isset($companion['options'])) { $companion['options'] = []; } Html::addCssClass($companion['options'], 'hidden'); $companionContent = Html::a($companion['label'], $companion['url'], $companion['options']); } $content[] = Html::tag('li', $companionContent . Html::a($item['label'], $item['url'], $item['options']), ['class' => 'item-' . $menuCount]); } $content[] = Html::endTag('ul'); $content[] = Html::endTag('div'); } $content[] = Html::endTag('div'); return implode($content); }
if ($model->hasRelationshipTargets()) { $parts[] = 'its relationship with the ' . $model->relationshipWith->objectType->title->getSingular(false) . ' <em>' . $model->relationshipWith->descriptor . '</em>'; } echo '<div class="confirm">What would you like to do to ' . implode($parts, ' and ') . '?</div>'; echo '<div class="btn-group" data-toggle="buttons">'; $itemOptions = ['container' => false]; foreach ($model->possibleTargets as $target) { $label = $model->labels[$target]; $labelOptions = isset($label['options']) ? $label['options'] : []; if (!isset($labelOptions['class'])) { Html::addCssClass($labelOptions, 'btn btn-default'); } else { Html::addCssClass($labelOptions, 'btn'); } if ($model->target === $target) { Html::addCssClass($labelOptions, 'active'); } $labelOptions['title'] = ucfirst(strip_tags($label['long'])); echo Html::activeRadio($model, 'target', array_merge($itemOptions, ['value' => $target, 'label' => $label['short'], 'uncheck' => null, 'labelOptions' => $labelOptions])); } echo '</div>'; } return; \d($model->possibleTargets); exit; if (is_null($model->relationModel) || $model->forceObjectDelete) { echo "<div class='confirm'>Are you sure you want to delete the " . $model->object->objectType->title->getSingular(false) . " <em>" . $model->object->descriptor . "</em>?</div>"; } else { if (!empty($model->forceRelationshipDelete)) { echo "<div class='confirm'>Are you sure you want to delete the relationship between " . $model->object->objectType->title->getSingular(false) . " <em>" . $model->object->descriptor . "</em> and <em>" . $model->relationshipWith->descriptor . "</em>?</div>"; } else {
/** * @inheritdoc */ public function generateStart() { Html::addCssClass($this->owner->htmlOptions, $this->owner->panelCssClass); Html::addCssClass($this->owner->htmlOptions, $this->owner->panelStateCssClass); return parent::generateStart(); }
<?php use canis\helpers\Html; $this->title = "<em>{$dataInterface->name}</em> Interface Logs"; $this->params['breadcrumbs'][] = ['label' => 'Administration', 'url' => ['/admin/dashboard/index']]; $this->params['breadcrumbs'][] = ['label' => 'Interfaces', 'url' => ['admin/interface/index']]; $this->params['breadcrumbs'][] = $this->title; echo Html::pageHeader($this->title); echo Html::beginTag('div', ['class' => 'list-group']); $logs = $dataInterface->getRelatedLogQuery()->orderBy(['created' => SORT_DESC])->all(); foreach ($logs as $log) { $itemHtmlOptions = ['class' => 'list-group-item']; Html::addCssClass($itemHtmlOptions, 'list-group-item-' . $log->bootstrapState); echo Html::a(date("F d, Y h:i:sa", strtotime($log->created)), ['admin/interface/view-log', 'id' => $log->id], $itemHtmlOptions); } echo Html::endTag('div');
echo Html::a('Simple', '#simple-filter', ['role' => 'tab', 'data-toggle' => 'tab']); echo Html::endTag('li'); $advancedOptions = []; echo Html::beginTag('li', $advancedOptions); echo Html::a('Advanced', '#advanced-filter', ['role' => 'tab', 'data-toggle' => 'tab']); echo Html::endTag('li'); echo Html::endTag('ul'); echo Html::beginTag('div', ['class' => 'tab-content well']); // simple Html::addCssClass($simpleOptions, 'tab-pane'); $simpleOptions['id'] = 'simple-filter'; echo Html::beginTag('div', $simpleOptions); echo $searchForm->field($searchModel, 'query', ['inputOptions' => ['id' => 'simple-filter-input', 'placeholder' => 'Search', 'class' => 'form-control']]); echo Html::endTag('div'); // advanced Html::addCssClass($advancedOptions, 'tab-pane'); $advancedOptions['id'] = 'advanced-filter'; echo Html::beginTag('div', $advancedOptions); $queryBuilderOptions = []; $queryBuilderOptions['filters'] = $type->dummyModel->filterFields; $builderId = 'advanced-filter-builder'; echo Html::tag('div', '', ['id' => $builderId]); $js[] = "\$('#{$builderId}').queryBuilder(" . json_encode($queryBuilderOptions) . ");"; echo Html::endTag('div'); echo Html::submitButton('Search', ['class' => 'btn btn-default']); echo Html::endTag('div'); ActiveForm::end(); echo Html::endTag('div'); // filter body echo Html::endTag('div'); // filter section
use canis\web\grid\Grid; use yii\helpers\Url; $js = []; $this->title = 'Dashboard'; $refreshable = ['url' => Url::to(['/app/stream']), 'stream' => true, 'data' => ['baseInstructions' => []]]; $this->bodyHtmlOptions['data-refreshable'] = json_encode($refreshable); echo Html::beginTag('div', ['class' => 'ic-dashboard row']); Yii::beginProfile("Build Grid"); $widgets = Yii::$app->collectors['widgets']->getLocation('front'); ArrayHelper::multisort($widgets, ['priority', 'name'], [SORT_ASC, SORT_ASC]); $topGrid = new Grid(); $watchingWidget = Yii::$app->collectors['widgets']->getOne('WatchingContent'); $watchingCell = Yii::$app->collectors['widgets']->build(null, $watchingWidget, [], ['columns' => 6]); $topGrid->currentRow->addCell($watchingCell); $itemsCell = $topGrid->currentRow->addCell(new Cell(['columns' => 6])); $widgetGrid = new Grid(); Html::addCssClass($widgetGrid->htmlOptions, 'ic-front-side'); $js[] = '$("#' . $widgetGrid->id . '").canisAffix();'; $widgetGrid->baseRow = ['trueWidth' => 6]; $cells = []; Yii::beginProfile("Collect Widgets"); foreach ($widgets as $item => $widget) { $cells[] = Yii::$app->collectors['widgets']->build(null, $widget, [], []); } Yii::endProfile("Collect Widgets"); $widgetGrid->cells = $cells; Yii::endProfile("Build Grid"); $itemsCell->content = $widgetGrid->generate(); echo $topGrid->generate(); echo Html::endTag('div'); $this->registerJs(implode("\n", $js));
public function getListItemOptions($model, $key, $index) { $options = self::getListItemOptionsBase($model, $key, $index); //return $options; $objectType = $model->objectType; $queryRole = ArrayHelper::getValue($this->settings, 'queryRole', false); $relationship = ArrayHelper::getValue($this->settings, 'relationship', false); if (!$relationship) { return $options; } if ($queryRole === 'children') { $baseUrl['object_relation'] = 'child'; $primaryRelation = $relationship->getPrimaryObject(Yii::$app->request->object, $model, 'child'); $key = 'child_object_id'; } else { $baseUrl['object_relation'] = 'parent'; $primaryRelation = $relationship->getPrimaryObject(Yii::$app->request->object, $model, 'parent'); $key = 'parent_object_id'; } if ($primaryRelation && $primaryRelation->{$key} === $model->primaryKey) { Html::addCssClass($options, 'active'); } $options['data-object-id'] = $model->primaryKey; return $options; }
/** * Renders the pager. * * @return string the rendering result */ public function renderPager() { $pagination = $this->dataProvider->getPagination(); //\d([get_class($this), $pagination]); if ($pagination === false || $pagination->getPageCount() <= 1) { return false; } /* @var LinkPager $class */ $pager = $this->pagerSettings; $class = ArrayHelper::remove($pager, 'class', 'canis\\widgets\\LinkPager'); $pager['pagination'] = $pagination; if (!isset($pager['options'])) { $pager['options'] = []; } $pager['maxButtonCount'] = 6; Html::addCssClass($pager['options'], 'pagination pull-right'); return $class::widget($pager); }
/** * [[@doctodo method_description:generateRelationField]]. * * @param array $initialSettings [[@doctodo param_description:initialSettings]] [optional] * * @return [[@doctodo return_type:generateRelationField]] [[@doctodo return_description:generateRelationField]] */ protected function generateRelationField($initialSettings = []) { $model = $this->model; $field = $this->getRelationModelField(); $parts = []; $r = $initialSettings; $r['title'] = $this->modelField->label; $r['context'] = []; $r['selector'] = ['browse' => [], 'search' => ['data' => []]]; if ($this->modelField->relationship->temporal && empty($this->model->start)) { $this->model->start = date("m/d/Y"); } $r['context']['relationship'] = $this->modelField->relationship->package(); if ($this->modelField->baseModel && !$this->modelField->baseModel->isNewRecord) { $r['context']['object'] = ['id' => $this->modelField->baseModel->primaryKey, 'descriptor' => $this->modelField->baseModel->descriptor]; } $r['context']['role'] = $role = $this->modelField->relationship->companionRole($this->modelField->modelRole); $companionType = $this->modelField->relationship->companionRoleType($this->modelField->modelRole); $r['selector']['inputLabel'] = 'Select ' . $companionType->title->upperSingular; //\d($r);exit; if ($modelTypeItem = $this->modelField->relationship->{$role}->collectorItem) { $typeBundle = BrowserResponse::handleInstructions(['handler' => 'types', 'relationshipRole' => $role, 'relationship' => $this->modelField->relationship->systemId, 'typeFilters' => ['hasDashboard']]); $r['selector']['browse']['root'] = $typeBundle->package(); } $r['model'] = ['prefix' => $this->model->formName() . $this->model->tabularPrefix, 'attributes' => array_merge($this->model->attributes, ['taxonomy_id' => $this->model->taxonomy_id])]; if (!empty($this->modelField->value->primaryKey)) { $r['select'] = ['id' => $this->modelField->value->primaryKey, 'descriptor' => $this->modelField->value->descriptor, 'subdescriptor' => $this->modelField->value->primarySubdescriptor]; } if (!empty($r['model']['attributes']['start'])) { $r['model']['attributes']['start'] = Yii::$app->formatter->asDate($r['model']['attributes']['start']); } if (!empty($r['model']['attributes']['end'])) { $r['model']['attributes']['end'] = Yii::$app->formatter->asDate($r['model']['attributes']['end']); } $r['lockFields'] = isset($this->relationSettings['lockFields']) ? array_merge($this->relationSettings['lockFields'], $this->lockFields) : $this->lockFields; $r['multiple'] = $this->linkMultiple; // && $this->modelField->relationship->multiple; $this->htmlOptions['data-relationship'] = json_encode($r, JSON_FORCE_OBJECT); Html::addCssClass($this->htmlOptions, 'relationship'); //$model->_moduleHandler = $this->modelField->relationship->companionRole($this->modelField->modelRole) .':'. $this->modelField->relationship->companionRoleType($this->modelField->modelRole)->systemId; $parts[] = Html::activeHiddenInput($model, $this->model->tabularPrefix . '_moduleHandler'); $parts[] = Html::activeHiddenInput($model, $field, $this->htmlOptions); return implode($parts); }
/** * [[@doctodo method_description:generate]]. * * @throws Exception [[@doctodo exception_description:Exception]] * @return unknown * */ public function generate() { $model = $this->model; if (!$this->generator) { throw new Exception("Unable to find generator."); } if (!$this->generator->form) { throw new Exception("Unable to find generator form."); } $form = $this->generator->form; $pre = $post = null; $field = $this->getModelFieldName(); $fieldConfig = $this->fieldConfig; $templatePrefix = ''; if ($this->showLabel) { $templatePrefix = "{label}\n"; $fieldConfig['template'] = $templatePrefix . $fieldConfig['template']; } $item = $form->field($model, $field, $fieldConfig); $item->inputOptions =& $this->htmlOptions; $item->inputOptions['value'] = $fieldConfig['value'] = $this->modelField->format->formValue; Html::addCssClass($this->htmlOptions, 'form-control'); if (substr($this->type, 0, 5) === 'smart') { $this->type = lcfirst(substr($this->type, 5)); if (isset($this->smartOptions['watchField'])) { $watchFieldId = $this->neightborFieldId($this->smartOptions['watchField']); if (!$watchFieldId) { unset($this->smartOptions['watchField']); } else { $this->smartOptions['watchField'] = '#' . $watchFieldId; } } $this->htmlOptions['data-value'] = $fieldConfig['value']; //Html::getAttributeValue($model, $field) $this->htmlOptions['data-smart'] = json_encode($this->smartOptions); } switch ($this->type) { case 'checkBox': $item->checkbox(); break; case 'radioButton': $item->radio(); break; case 'checkBoxList': $item->checkboxList($this->options); break; case 'radioButtonList': case 'boolean': if ($this->type === 'boolean') { $this->showLabel = false; if (!isset($this->options)) { $this->showLabel = true; $this->options = [1 => 'Yes', 0 => 'No']; } Html::addCssClass($this->htmlOptions, 'btn-group'); Html::removeCssClass($this->htmlOptions, 'form-control'); $this->htmlOptions['data-toggle'] = 'buttons'; $encode = !isset($this->htmlOptions['encode']) || $this->htmlOptions['encode']; $this->htmlOptions['item'] = function ($index, $label, $name, $checked, $value) use($encode) { $itemOptions = ['container' => false, 'labelOptions' => ['class' => 'btn-primary btn']]; if ($checked) { Html::addCssClass($itemOptions['labelOptions'], 'active'); } return Html::radio($name, $checked, array_merge($itemOptions, ['value' => $value, 'label' => $encode ? Html::encode($label) : $label])); }; } $item->radioList($this->options); break; case 'dropDownList': case 'smartDropDownList': $item->dropDownList($this->options); break; case 'listBox': $item->listBox($this->options); break; case 'file': // $item->fileInput(); Html::removeCssClass($this->htmlOptions, 'form-control'); $fileStorageWidgetClass = $this->fileStorageWidgetClass; $item = $fileStorageWidgetClass::widget(['item' => $item]); break; case 'hidden': $this->showLabel = false; $item = Html::activeHiddenInput($model, $field, $this->htmlOptions); break; case 'password': $item->password(); break; case 'date': //$item->template = $templatePrefix . "<div class=\"input-group date\">{input}<span class=\"input-group-addon\"></span></div>\n<div class=\"\">{error}</div>"; if (!$item->inputGroupPostfix) { $item->inputGroupPostfix = "<i class=\"fa fa-calendar\"></i>"; } Html::addCssClass($item->inputGroupHtmlOptions, 'date'); break; case 'textarea': $item->textarea(); break; case 'rich': Html::addCssClass($this->htmlOptions, 'rich'); $editorSettings = []; $this->htmlOptions['data-editor'] = Json::encode($editorSettings); $item = Html::activeTextArea($model, $field, $this->htmlOptions); break; } if (!empty($item)) { return $pre . $item . $post; } return false; }