/** * @return \Venne\System\Components\AdminGrid\AdminGrid */ protected function createComponentTable() { $admin = $this->adminGridFactory->create($this->userRepository); $table = $admin->getTable(); $table->setTranslator($this->translator); $table->addColumnText('email', 'E-mail')->setSortable()->getCellPrototype()->width = '100%'; $table->getColumn('email')->setFilterText()->setSuggestion(); $form = $admin->addForm('user', 'User', function (User $user = null) { return $this->getUserType()->getFormService()->getFormFactory($user ? $user->getId() : null); }, Form::TYPE_LARGE); $form->onSuccess[] = function () { $this->flashMessage('User has been saved.', 'success'); $this->redrawControl('flashes'); }; $form->onError[] = function () { $this->flashMessage('Failed.', 'warning'); $this->redrawControl('flashes'); }; $providerForm = $admin->addForm('loginProviders', 'Login providers', $this->providersForm, null, Form::TYPE_LARGE); $toolbar = $admin->getNavbar(); $section = $toolbar->addSection('new', 'Create', 'user'); $editAction = $table->addActionEvent('edit', 'Edit'); $editAction->getElementPrototype()->class[] = 'ajax'; $loginProviders = $table->addActionEvent('loginProviders', 'Login providers'); $loginProviders->getElementPrototype()->class[] = 'ajax'; $deleteAction = $table->addActionEvent('delete', 'Delete'); $deleteAction->getElementPrototype()->class[] = 'ajax'; $admin->connectFormWithAction($form, $editAction, $admin::MODE_PLACE); $admin->connectFormWithAction($providerForm, $loginProviders); $admin->connectActionAsDelete($deleteAction); foreach ($this->securityManager->getUserTypes() as $type => $value) { $admin->connectFormWithNavbar($form, $section->addSection(str_replace('\\', '_', $type), $value->getName()), $admin::MODE_PLACE); } return $admin; }
/** * @return \Nette\Application\UI\Form */ public function create() { \Kdyby\Replicator\Container::register(); $form = $this->formFactory->create(); $userTypes = array(); foreach ($this->securityManager->getUserTypes() as $name => $val) { $userTypes[$name] = $val->getName(); } $form->addCheckbox('enabled', 'Enabled'); $form->addCheckbox('invitation', 'Only as invitation'); $form->addText('name', 'Name'); $form->addHidden('key'); $form->addSelect('userType', 'Type', $userTypes); $form->addSelect('mode', 'Mode', Registration::getModes()); $form->addSelect('loginProviderMode', 'Login provider mode', Registration::getLoginProviderModes()); $form->addMultiSelect('roles', 'Roles')->setOption(IComponentMapper::ITEMS_TITLE, 'name'); return $form; }