public function action() { \OLOG\Exits::exit403If(!Auth::currentUserHasAnyOfPermissions([1])); $html = ''; $html .= \OLOG\CRUD\CRUDTable::html(\CRUDDemo\DemoTerm::class, CRUDForm::html(new DemoTerm(), [new CRUDFormRow('Title', new CRUDFormWidgetInput('title', false, true)), new CRUDFormRow('Chooser', new CRUDFormWidgetRadios('chooser', [1 => 'one', 2 => 'two'], true, true)), new CRUDFormRow('Options', new CRUDFormWidgetOptions('options', [1 => 'one', 2 => 'two'], false, true))]), [new CRUDTableColumn('Edit', new CRUDTableWidgetTextWithLink('{this->title}', DemoTermEditAction::getUrl('{this->id}'))), new CRUDTableColumn('Vocabulary', new CRUDTableWidgetOptions('{this->vocabulary_id}', DemoTerm::VOCABULARIES_ARR)), new CRUDTableColumn('Parent', new CRUDTableWidgetText('{' . DemoTerm::class . '.{this->parent_id}->title}')), new CRUDTableColumn('', new CRUDTableWidgetWeight(['parent_id' => null])), new CRUDTableColumn('', new CRUDTableWidgetDelete())], [new CRUDTableFilterEqualInvisible('parent_id', null), new CRUDTableFilterEqualOptionsInline('34785ty8y45t8', 'Словарь', 'vocabulary_id', DemoTerm::VOCABULARIES_ARR, false, null, true), new CRUDTableFilterEqualOptionsInline('345634g3tg534', '', 'gender', DemoTerm::GENDER_ARR, false, null, true, 'М. и Ж.'), new CRUDTableFilterLikeInline('3748t7t45gdfg', '', 'title', 'Название содержит')], 'weight', '8726438755234', CRUDTable::FILTERS_POSITION_INLINE); DemoLayoutTemplate::render($html, 'Термы', self::breadcrumbsArr()); }
public function action($term_id) { \OLOG\Exits::exit403If(!Auth::currentUserHasAnyOfPermissions([1])); $html = ''; $term_obj = DemoTerm::factory($term_id); $html .= \OLOG\CRUD\CRUDForm::html($term_obj, [new CRUDFormVerticalRow('Title', new CRUDFormWidgetInput('title', false, true), 'Comment string'), new CRUDFormVerticalRow('weight', new CRUDFormWidgetInput('weight', false, true)), new CRUDFormRow('Chooser', new CRUDFormWidgetRadios('chooser', [1 => 'one', 2 => 'two'], true, true)), new CRUDFormRow('Gender', new CRUDFormWidgetRadios('gender', [1 => 'male', 2 => 'female'], true)), new CRUDFormRow('Options', new CRUDFormWidgetOptions('options', [1 => 'one', 2 => 'two'], false, true)), new CRUDFormRow('Vocabulary', new CRUDFormWidgetOptions('vocabulary_id', DemoTerm::VOCABULARIES_ARR, false, true)), new CRUDFormRow('Parent id', new CRUDFormWidgetReferenceAjax('parent_id', DemoTerm::class, 'title', DemoAjaxTermsListAction::getUrl(), DemoTermEditAction::getUrl('REFERENCED_ID')))]); $html .= '<h2>Child terms</h2>'; $new_term_obj = new DemoTerm(); $new_term_obj->setParentId($term_id); $html .= \OLOG\CRUD\CRUDTable::html(\CRUDDemo\DemoTerm::class, \OLOG\CRUD\CRUDForm::html($new_term_obj, [new CRUDFormRow('Title', new CRUDFormWidgetInput('title')), new CRUDFormInvisibleRow(new CRUDFormWidgetInput('parent_id'))]), [new CRUDTableColumn('Title', new CRUDTableWidgetTextWithLink('{this->title}', DemoTermEditAction::getUrl('{this->id}'))), new CRUDTableColumn('Weight', new CRUDTableWidgetWeight(['parent_id' => $term_id])), new CRUDTableColumn('Delete', new CRUDTableWidgetDelete())], [new CRUDTableFilterEqualInvisible('parent_id', $term_id)], 'weight'); DemoLayoutTemplate::render($html, 'Term ' . $term_id, self::breadcrumbsArr($term_id)); }