public function create($modelName, $item = null, ModelConfig $config = null) { $page = new Page(); $header = new PageHeader(); $header->setText('Create ' . $modelName); if ($item != null && isset($item->id)) { $model = $this->aujaConfigurator->getModel($modelName); $displayField = $this->aujaConfigurator->getDisplayField($model, $config); $header->setText('Edit ' . (isset($item->{$displayField}) ? $item->{$displayField} : $modelName)); $deleteButton = new Button(); $deleteButton->setText(Lang::trans('Delete')); $deleteButton->setConfirmationMessage(Lang::trans('Are you sure?')); $deleteButton->setTarget(URL::route($this->aujaRouter->getDeleteName($modelName), $item->id)); $deleteButton->setMethod('delete'); $header->addButton($deleteButton); } $page->addPageComponent($header); $form = new Form(); $action = $item == null || !isset($item->id) ? URL::route($this->aujaRouter->getStoreName($modelName)) : URL::route($this->aujaRouter->getUpdateName($modelName), $item->id); $form->setAction($action); $form->setMethod($item == null ? 'POST' : 'PUT'); $model = $this->aujaConfigurator->getModel($modelName); $visibleFields = $this->aujaConfigurator->getVisibleFields($model, $config); foreach ($visibleFields as $columnName) { $column = $model->getColumn($columnName); $formItem = $this->formItemFactory->getFormItem($model, $column, $item); $form->addFormItem($formItem); } $submit = new SubmitFormItem(); $submit->setText(Lang::trans('Submit')); $form->addFormItem($submit); $page->addPageComponent($form); return $page; }
/** * @param $title * @param $authenticated * @param null $username * @param null $logoutTarget * @param Form $authenticationForm * @param ModelConfig $config * @param null $additionalMenuItems * @param bool $smartMenuItemInclude * @return Main */ public function create($title, $authenticated, $username = null, $logoutTarget = null, Form $authenticationForm = null, ModelConfig $config = null, $additionalMenuItems = null, $smartMenuItemInclude = true) { $main = new Main(); $main->setTitle($title); $main->setUsername($username); $main->setAuthenticated($authenticated); if ($logoutTarget !== null) { $button = new Button(); $button->setText('Logout'); $button->setTarget($logoutTarget); $main->addButton($button); } if ($additionalMenuItems !== null) { foreach ($additionalMenuItems as $item) { $main->addItem($item); } } if ($smartMenuItemInclude) { $this->smartIncludeMenuItems($main, $config); } $main->setAuthenticationForm($authenticationForm); return $main; }