public function __construct() { parent::__construct(); $language = OW::getLanguage(); $form = new Form("change-user-password"); $form->setId("change-user-password"); $oldPassword = new PasswordField('oldPassword'); $oldPassword->setLabel($language->text('base', 'change_password_old_password')); $oldPassword->addValidator(new OldPasswordValidator()); $oldPassword->setRequired(); $form->addElement($oldPassword); $newPassword = new PasswordField('password'); $newPassword->setLabel($language->text('base', 'change_password_new_password')); $newPassword->setRequired(); $newPassword->addValidator(new NewPasswordValidator()); $form->addElement($newPassword); $repeatPassword = new PasswordField('repeatPassword'); $repeatPassword->setLabel($language->text('base', 'change_password_repeat_password')); $repeatPassword->setRequired(); $form->addElement($repeatPassword); $submit = new Submit("change"); $submit->setLabel($language->text('base', 'change_password_submit')); $form->setAjax(true); $form->addElement($submit); if (OW::getRequest()->isAjax()) { $result = false; if ($form->isValid($_POST)) { $data = $form->getValues(); BOL_UserService::getInstance()->updatePassword(OW::getUser()->getId(), $data['password']); $result = true; } echo json_encode(array('result' => $result)); exit; } else { $messageError = $language->text('base', 'change_password_error'); $messageSuccess = $language->text('base', 'change_password_success'); $js = " owForms['" . $form->getName() . "'].bind( 'success',\n function( json )\n {\n \tif( json.result == true )\n \t{\n \t \$('#TB_closeWindowButton').click();\n \t OW.info('{$messageSuccess}');\n }\n else\n {\n OW.error('{$messageError}');\n }\n\n } ); "; OW::getDocument()->addOnloadScript($js); $this->addForm($form); $language->addKeyForJs('base', 'join_error_password_not_valid'); $language->addKeyForJs('base', 'join_error_password_too_short'); $language->addKeyForJs('base', 'join_error_password_too_long'); //include js $onLoadJs = " window.changePassword = new OW_BaseFieldValidators( " . json_encode(array('formName' => $form->getName(), 'responderUrl' => OW::getRouter()->urlFor("BASE_CTRL_Join", "ajaxResponder"), 'passwordMaxLength' => UTIL_Validator::PASSWORD_MAX_LENGTH, 'passwordMinLength' => UTIL_Validator::PASSWORD_MIN_LENGTH)) . ",\n " . UTIL_Validator::EMAIL_PATTERN . ", " . UTIL_Validator::USER_NAME_PATTERN . " ); "; $onLoadJs .= " window.oldPassword = new OW_ChangePassword( " . json_encode(array('formName' => $form->getName(), 'responderUrl' => OW::getRouter()->urlFor("BASE_CTRL_Edit", "ajaxResponder"))) . " ); "; OW::getDocument()->addOnloadScript($onLoadJs); $jsDir = OW::getPluginManager()->getPlugin("base")->getStaticJsUrl(); OW::getDocument()->addScript($jsDir . "base_field_validators.js"); OW::getDocument()->addScript($jsDir . "change_password.js"); } }