protected function createComponentAddEdit($name)
 {
     $form = new NAppForm($this, $name);
     $access = array(1 => 'Allow', 0 => 'Deny');
     // roles
     $mroles = new RolesModel();
     $roles = $mroles->getTreeValues();
     // resources
     $resources[0] = '- All resources -';
     $mresources = new ResourcesModel();
     $rows = $mresources->getTreeValues();
     foreach ($rows as $key => $row) {
         // function array_merge does't work correctly with integer indexes
         // manual array merge
         $resources[$key] = $row;
     }
     // privileges
     $privileges[0] = '- All privileges -';
     $rows = dibi::fetchAll('SELECT id, name FROM [gui_acl_privileges] ORDER BY name;');
     foreach ($rows as $row) {
         // function array_merge does't work correctly with integer indexes
         // manual array merge
         $privileges[$row->id] = $row->name;
     }
     //$renderer = $form->getRenderer();
     //$renderer->wrappers['label']['suffix'] = ':';
     //$form->addGroup('Add');
     $form->addMultiSelect('role_id', 'Role', $roles, 15)->addRule(NForm::FILLED, 'You have to fill roles.');
     $form->addMultiSelect('resource_id', 'Resources', $resources, 15)->addRule(NForm::FILLED, 'You have to fill resources.');
     $form->addMultiSelect('privilege_id', 'Privileges', $privileges, 15)->addRule(NForm::FILLED, 'You have to fill privileges.');
     //$form->addSelect('access', 'Access', $access)
     $form->addRadioList('access', 'Access', $access)->addRule(NForm::FILLED, 'You have to fill access.');
     $form->addSubmit('assign', 'Assign');
     $form->onSuccess[] = array($this, 'addEditOnFormSubmitted');
 }
 protected function createComponentAddEdit($name)
 {
     $resources[0] = ' ';
     $mresources = new ResourcesModel();
     $rows = $mresources->getTreeValues();
     foreach ($rows as $key => $row) {
         // function array_merge does't work correctly with integer indexes
         // manual array merge
         $resources[$key] = $row;
     }
     $form = new AppForm($this, $name);
     $renderer = $form->getRenderer();
     $renderer->wrappers['label']['suffix'] = ':';
     //$form->addGroup('Edit');
     if (ACL_PROG_MODE) {
         $form->addText('name', 'Name', 30)->addRule(Form::FILLED, 'You have to fill name.')->getControlPrototype()->onChange("create_key()");
     } else {
         $form->addText('name', 'Name', 30)->addRule(Form::FILLED, 'You have to fill name.');
     }
     $form->addText('key_name', 'Key', 30)->setDisabled(ACL_PROG_MODE ? false : true);
     $form->addSelect('parent_id', 'Parent', $resources, 15);
     $form->addTextArea('comment', 'Comment', 40, 4)->addRule(Form::MAX_LENGTH, 'Comment must be at least %d characters.', 250);
     if ($this->getAction() == 'add') {
         $form->addSubmit('add', 'Add');
     } else {
         $form->addSubmit('edit', 'Edit');
     }
     $form->onSubmit[] = array($this, 'addEditOnFormSubmitted');
 }