Exemplo n.º 1
0
 /**
  * @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;
 }
Exemplo n.º 2
0
 /**
  * @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;
 }