public function index()
 {
     $user = System::getUser();
     $form = new Form('form-profile');
     $form->setAttribute('data-noajax', 'true');
     $form->binding = $user;
     $fieldset = new Fieldset(System::getLanguage()->_('General'));
     $firstname = new Text('firstname', System::getLanguage()->_('Firstname'));
     $firstname->binding = new Databinding('firstname');
     $lastname = new Text('lastname', System::getLanguage()->_('Lastname'));
     $lastname->binding = new Databinding('lastname');
     $email = new Text('email', System::getLanguage()->_('EMail'), true);
     $email->binding = new Databinding('email');
     $email->blacklist = $this->getListOfMailAdresses($user);
     $email->error_msg[4] = System::getLanguage()->_('ErrorMailAdressAlreadyExists');
     $language = new Radiobox('lang', System::getLanguage()->_('Language'), L10N::getLanguages());
     $language->binding = new Databinding('lang');
     $fieldset->addElements($firstname, $lastname, $email, $language);
     $form->addElements($fieldset);
     $fieldset = new Fieldset(System::getLanguage()->_('Password'));
     $password = new Password('password', System::getLanguage()->_('Password'));
     $password->minlength = PASSWORD_MIN_LENGTH;
     $password->binding = new Databinding('password');
     $password2 = new Password('password2', System::getLanguage()->_('ReenterPassword'));
     $fieldset->addElements($password, $password2);
     $form->addElements($fieldset);
     $fieldset = new Fieldset(System::getLanguage()->_('Settings'));
     $quota = new Text('quota', System::getLanguage()->_('Quota'));
     if ($user->quota > 0) {
         $quota->value = System::getLanguage()->_('QuotaAvailabe', Utils::formatBytes($user->getFreeSpace()), Utils::formatBytes($user->quota));
     } else {
         $quota->value = System::getLanguage()->_('Unlimited');
     }
     $quota->readonly = true;
     $fieldset->addElements($quota);
     $form->addElements($fieldset);
     if (Utils::getPOST('submit', false) !== false) {
         if (!empty($password->value) && $password->value != $password2->value) {
             $password2->error = System::getLanguage()->_('ErrorInvalidPasswords');
         } else {
             if ($form->validate()) {
                 $form->save();
                 System::getUser()->save();
                 System::getSession()->setData('successMsg', System::getLanguage()->_('ProfileUpdated'));
                 System::forwardToRoute(Router::getInstance()->build('ProfileController', 'index'));
                 exit;
             }
         }
     } else {
         $form->fill();
     }
     $form->setSubmit(new Button(System::getLanguage()->_('Save'), 'floppy-disk'));
     $smarty = new Template();
     $smarty->assign('title', System::getLanguage()->_('MyProfile'));
     $smarty->assign('heading', System::getLanguage()->_('MyProfile'));
     $smarty->assign('form', $form->__toString());
     $smarty->display('form.tpl');
 }
 private function getNewAppStep2Form($fillValues = array())
 {
     Library::import('recess.framework.forms.Form');
     $form = new Form('');
     $form->method = "POST";
     $form->flash = "";
     $form->action = $this->urlTo('newAppStep2');
     $form->inputs['appName'] = new HiddenInput('appName', '');
     $form->inputs['programmaticName'] = new HiddenInput('programmaticName', '');
     $form->inputs['routingPrefix'] = new TextInput('routingPrefix', '', '', '');
     $form->fill($fillValues);
     return $form;
 }
 public function edit()
 {
     $user = User::find('_id', $this->getParam('uid', 0));
     if ($user == NULL) {
         System::displayError(System::getLanguage()->_('ErrorUserNotFound'), '404 Not Found');
     }
     $form = new Form('form-user', Router::getInstance()->build('UsersController', 'edit', $user));
     $form->binding = $user;
     $fieldset = new Fieldset(System::getLanguage()->_('General'));
     $username = new Text('username', System::getLanguage()->_('Username'), true);
     $username->binding = new Databinding('username');
     $username->blacklist = $this->getListOfUsernames($user);
     $username->error_msg[4] = System::getLanguage()->_('ErrorUsernameAlreayExists');
     $firstname = new Text('firstname', System::getLanguage()->_('Firstname'));
     $firstname->binding = new Databinding('firstname');
     $lastname = new Text('lastname', System::getLanguage()->_('Lastname'));
     $lastname->binding = new Databinding('lastname');
     $email = new Text('email', System::getLanguage()->_('EMail'), true);
     $email->binding = new Databinding('email');
     $email->blacklist = $this->getListOfMailAdresses($user);
     $email->error_msg[4] = System::getLanguage()->_('ErrorMailAdressAlreadyExists');
     $language = new Radiobox('lang', System::getLanguage()->_('Language'), L10N::getLanguages(), LANGUAGE);
     $language->binding = new Databinding('lang');
     $fieldset->addElements($username, $firstname, $lastname, $email, $language);
     $form->addElements($fieldset);
     $fieldset = new Fieldset(System::getLanguage()->_('Password'));
     $password = new Password('password', System::getLanguage()->_('Password'));
     $password->binding = new Databinding('password');
     $password2 = new Password('password2', System::getLanguage()->_('ReenterPassword'));
     $fieldset->addElements($password, $password2);
     $form->addElements($fieldset);
     if ($user->uid != System::getUser()->uid) {
         $fieldset = new Fieldset(System::getLanguage()->_('Settings'));
         $quota = new Text('quota', System::getLanguage()->_('Quota') . ' (MB)', true, 'numeric');
         $quota->binding = new Databinding('quota');
         $p = new Paragraph(System::getLanguage()->_('QuotaInfo'));
         $admin = new Radiobox('admin', System::getLanguage()->_('Admin'), array('1' => System::getLanguage()->_('YesStr'), '0' => System::getLanguage()->_('NoStr')));
         $admin->binding = new Databinding('isAdmin');
         $fieldset->addElements($quota, $p, $admin);
         $form->addElements($fieldset);
     }
     $form->setSubmit(new Button(System::getLanguage()->_('Save'), 'floppy-disk'));
     if ($user->uid != System::getUser()->uid) {
         $form->addButton(new Button(System::getLanguage()->_('DeleteUser'), 'trash', Router::getInstance()->build('UsersController', 'delete', $user)));
     }
     $form->addButton(new Button(System::getLanguage()->_('Cancel'), 'remove', Router::getInstance()->build('UsersController', 'index')));
     if (Utils::getPOST('submit', false) !== false) {
         if ($form->validate()) {
             if ($quota->value < 0) {
                 $quota->error = 'Quota must be > 0';
             } else {
                 $form->save();
                 $user->quota *= 1048576;
                 // Quota is MB
                 $user->save();
                 System::forwardToRoute(Router::getInstance()->build('UsersController', 'index'));
                 exit;
             }
         }
     } else {
         $user->quota /= 1048576;
         // Quota is MB
         $form->fill();
     }
     $smarty = new Template();
     $smarty->assign('title', System::getLanguage()->_('EditUser'));
     $smarty->assign('heading', System::getLanguage()->_('EditUser'));
     $smarty->assign('form', $form);
     $smarty->display('form.tpl');
 }