X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=profile_edit.php;h=3bf547acba0b292b5b6a58442b7201587cd545a4;hb=cb8e3de960b758147b34d8323054e7de70548619;hp=ebee59d555a70c2b33167f895dbda4d0cb027d4b;hpb=098a79f0819ebb89b7d48df4a6b154af4560f68e;p=timetracker.git diff --git a/profile_edit.php b/profile_edit.php index ebee59d5..3bf547ac 100644 --- a/profile_edit.php +++ b/profile_edit.php @@ -39,7 +39,7 @@ if (!ttAccessCheck(right_data_entry|right_view_reports)) { if (!defined('CURRENCY_DEFAULT')) define('CURRENCY_DEFAULT', '$'); $can_change_login = $user->canManageTeam(); -if ($request->getMethod() == 'POST') { +if ($request->isPost()) { $cl_name = trim($request->getParameter('name')); $cl_login = trim($request->getParameter('login')); if (!$auth->isPasswordExternal()) { @@ -47,13 +47,12 @@ if ($request->getMethod() == 'POST') { $cl_password2 = $request->getParameter('password2'); } $cl_email = trim($request->getParameter('email')); - + if ($user->canManageTeam()) { - $cl_team = trim($request->getParameter('team_name')); + $cl_team = trim($request->getParameter('team_name')); $cl_address = trim($request->getParameter('address')); $cl_currency = trim($request->getParameter('currency')); if (!$cl_currency) $cl_currency = CURRENCY_DEFAULT; - $cl_lock_interval = $request->getParameter('lock_interval'); $cl_lang = $request->getParameter('lang'); $cl_decimal_mark = $request->getParameter('decimal_mark'); $cl_custom_format_date = $request->getParameter('format_date'); @@ -61,6 +60,7 @@ if ($request->getMethod() == 'POST') { $cl_start_week = $request->getParameter('start_week'); $cl_tracking_mode = $request->getParameter('tracking_mode'); $cl_record_type = $request->getParameter('record_type'); + $cl_uncompleted_indicators = $request->getParameter('uncompleted_indicators'); $cl_charts = $request->getParameter('charts'); $cl_clients = $request->getParameter('clients'); $cl_client_required = $request->getParameter('client_required'); @@ -69,6 +69,8 @@ if ($request->getMethod() == 'POST') { $cl_expenses = $request->getParameter('expenses'); $cl_tax_expenses = $request->getParameter('tax_expenses'); $cl_notifications = $request->getParameter('notifications'); + $cl_locking = $request->getParameter('locking'); + $cl_quotas = $request->getParameter('quotas'); } } else { $cl_name = $user->name; @@ -76,16 +78,16 @@ if ($request->getMethod() == 'POST') { $cl_email = $user->email; if ($user->canManageTeam()) { $cl_team = $user->team; - $cl_address = $user->address; + $cl_address = $user->address; $cl_currency = ($user->currency == ''? CURRENCY_DEFAULT : $user->currency); - $cl_lock_interval = $user->lock_interval; $cl_lang = $user->lang; $cl_decimal_mark = $user->decimal_mark; - $cl_custom_format_date = $user->date_format; + $cl_custom_format_date = $user->date_format; $cl_custom_format_time = $user->time_format; $cl_start_week = $user->week_start; $cl_tracking_mode = $user->tracking_mode; $cl_record_type = $user->record_type; + $cl_uncompleted_indicators = $user->uncompleted_indicators; // Which plugins do we have enabled? $plugins = explode(',', $user->plugins); @@ -93,10 +95,12 @@ if ($request->getMethod() == 'POST') { $cl_clients = in_array('cl', $plugins); $cl_client_required = in_array('cm', $plugins); $cl_invoices = in_array('iv', $plugins); - $cl_custom_fields = in_array('cf', $plugins); + $cl_custom_fields = in_array('cf', $plugins); $cl_expenses = in_array('ex', $plugins); $cl_tax_expenses = in_array('et', $plugins); $cl_notifications = in_array('no', $plugins); + $cl_locking = in_array('lk', $plugins); + $cl_quotas = in_array('mq', $plugins); } } @@ -107,18 +111,15 @@ if (!$auth->isPasswordExternal()) { $form->addInput(array('type'=>'text','maxlength'=>'30','name'=>'password1','aspassword'=>true,'value'=>$cl_password1)); $form->addInput(array('type'=>'text','maxlength'=>'30','name'=>'password2','aspassword'=>true,'value'=>$cl_password2)); } -$form->addInput(array('type'=>'text','maxlength'=>'100','name'=>'email','value'=>$cl_email)); +$form->addInput(array('type'=>'text','maxlength'=>'100','name'=>'email','value'=>$cl_email,'enable'=>$can_change_login)); if ($user->canManageTeam()) { $form->addInput(array('type'=>'text','maxlength'=>'200','name'=>'team_name','value'=>$cl_team)); $form->addInput(array('type'=>'textarea','name'=>'address','maxlength'=>'255','style'=>'width: 350px;','cols'=>'55','rows'=>'4','value'=>$cl_address)); $form->addInput(array('type'=>'text','maxlength'=>'7','name'=>'currency','value'=>$cl_currency)); - $DECIMAL_MARK_OPTIONS = array( - array('id'=>'.','name'=>'.'), - array('id'=>',','name'=>',')); + $DECIMAL_MARK_OPTIONS = array(array('id'=>'.','name'=>'.'),array('id'=>',','name'=>',')); $form->addInput(array('type'=>'combobox','name'=>'decimal_mark','style'=>'width: 150px','data'=>$DECIMAL_MARK_OPTIONS,'datakeys'=>array('id','name'),'value'=>$cl_decimal_mark, 'onchange'=>'adjustDecimalPreview()')); - $form->addInput(array('type'=>'text','maxlength'=>'10','name'=>'lock_interval','value'=>$cl_lock_interval)); - // Prepare an array of available languages. + // Prepare an array of available languages. $lang_files = I18n::getLangFileList(); foreach ($lang_files as $lfile) { $content = file(RESOURCE_DIR."/".$lfile); @@ -161,55 +162,59 @@ if ($user->canManageTeam()) { $tracking_mode_options[MODE_PROJECTS] = $i18n->getKey('form.profile.mode_projects'); $tracking_mode_options[MODE_PROJECTS_AND_TASKS] = $i18n->getKey('form.profile.mode_projects_and_tasks'); $form->addInput(array('type'=>'combobox','name'=>'tracking_mode','style'=>'width: 150px;','data'=>$tracking_mode_options,'value'=>$cl_tracking_mode)); - + // Prepare record type choices. $record_type_options = array(); $record_type_options[TYPE_ALL] = $i18n->getKey('form.profile.type_all'); $record_type_options[TYPE_START_FINISH] = $i18n->getKey('form.profile.type_start_finish'); $record_type_options[TYPE_DURATION] = $i18n->getKey('form.profile.type_duration'); $form->addInput(array('type'=>'combobox','name'=>'record_type','style'=>'width: 150px;','data'=>$record_type_options,'value'=>$cl_record_type)); - + + // Prepare uncompleted indicators choices. + $uncompleted_indicators_options = array(); + $uncompleted_indicators_options[UNCOMPLETED_INDICATORS_NONE] = $i18n->getKey('form.profile.uncompleted_indicators_none'); + $uncompleted_indicators_options[UNCOMPLETED_INDICATORS] = $i18n->getKey('form.profile.uncompleted_indicators_show'); + $form->addInput(array('type'=>'combobox','name'=>'uncompleted_indicators','style'=>'width: 150px;','data'=>$uncompleted_indicators_options,'value'=>$cl_uncompleted_indicators)); + $form->addInput(array('type'=>'checkbox','name'=>'charts','data'=>1,'value'=>$cl_charts)); $form->addInput(array('type'=>'checkbox','name'=>'clients','data'=>1,'value'=>$cl_clients,'onchange'=>'handlePluginCheckboxes()')); $form->addInput(array('type'=>'checkbox','name'=>'client_required','data'=>1,'value'=>$cl_client_required)); - + $form->addInput(array('type'=>'checkbox','name'=>'invoices','data'=>1,'value'=>$cl_invoices)); $form->addInput(array('type'=>'checkbox','name'=>'custom_fields','data'=>1,'value'=>$cl_custom_fields,'onchange'=>'handlePluginCheckboxes()')); $form->addInput(array('type'=>'checkbox','name'=>'expenses','data'=>1,'value'=>$cl_expenses,'onchange'=>'handlePluginCheckboxes()')); $form->addInput(array('type'=>'checkbox','name'=>'tax_expenses','data'=>1,'value'=>$cl_tax_expenses)); $form->addInput(array('type'=>'checkbox','name'=>'notifications','data'=>1,'value'=>$cl_notifications,'onchange'=>'handlePluginCheckboxes()')); + $form->addInput(array('type'=>'checkbox','name'=>'locking','data'=>1,'value'=>$cl_locking,'onchange'=>'handlePluginCheckboxes()')); + $form->addInput(array('type'=>'checkbox','name'=>'quotas','data'=>1,'value'=>$cl_quotas,'onchange'=>'handlePluginCheckboxes()')); } $form->addInput(array('type'=>'submit','name'=>'btn_save','value'=>$i18n->getKey('button.save'))); -if ($request->getMethod() == 'POST') { +if ($request->isPost()) { // Validate user input. - if (!ttValidString($cl_name)) $errors->add($i18n->getKey('error.field'), $i18n->getKey('label.person_name')); + if (!ttValidString($cl_name)) $err->add($i18n->getKey('error.field'), $i18n->getKey('label.person_name')); if ($can_change_login) { - if (!ttValidString($cl_login)) $errors->add($i18n->getKey('error.field'), $i18n->getKey('label.login')); - + if (!ttValidString($cl_login)) $err->add($i18n->getKey('error.field'), $i18n->getKey('label.login')); + // New login must be unique. if ($cl_login != $user->login && ttUserHelper::getUserByLogin($cl_login)) - $errors->add($i18n->getKey('error.user_exists')); + $err->add($i18n->getKey('error.user_exists')); } if (!$auth->isPasswordExternal() && ($cl_password1 || $cl_password2)) { - if (!ttValidString($cl_password1)) $errors->add($i18n->getKey('error.field'), $i18n->getKey('label.password')); - if (!ttValidString($cl_password2)) $errors->add($i18n->getKey('error.field'), $i18n->getKey('label.confirm_password')); + if (!ttValidString($cl_password1)) $err->add($i18n->getKey('error.field'), $i18n->getKey('label.password')); + if (!ttValidString($cl_password2)) $err->add($i18n->getKey('error.field'), $i18n->getKey('label.confirm_password')); if ($cl_password1 !== $cl_password2) - $errors->add($i18n->getKey('error.not_equal'), $i18n->getKey('label.password'), $i18n->getKey('label.confirm_password')); + $err->add($i18n->getKey('error.not_equal'), $i18n->getKey('label.password'), $i18n->getKey('label.confirm_password')); } - if (!ttValidEmail($cl_email, true)) $errors->add($i18n->getKey('error.field'), $i18n->getKey('label.email')); + if (!ttValidEmail($cl_email, true)) $err->add($i18n->getKey('error.field'), $i18n->getKey('label.email')); if ($user->canManageTeam()) { - if (!ttValidString($cl_team, true)) $errors->add($i18n->getKey('error.field'), $i18n->getKey('label.team_name')); - if (!ttValidString($cl_address, true)) $errors->add($i18n->getKey('error.field'), $i18n->getKey('label.address')); - if (!ttValidString($cl_currency, true)) $errors->add($i18n->getKey('error.field'), $i18n->getKey('label.currency')); - if (!ttValidInteger($cl_lock_interval, true)) $errors->add($i18n->getKey('error.field'), $i18n->getKey('label.lock_interval')); + if (!ttValidString($cl_team, true)) $err->add($i18n->getKey('error.field'), $i18n->getKey('label.team_name')); + if (!ttValidString($cl_address, true)) $err->add($i18n->getKey('error.field'), $i18n->getKey('label.address')); + if (!ttValidString($cl_currency, true)) $err->add($i18n->getKey('error.field'), $i18n->getKey('label.currency')); } // Finished validating user input. - - if ($errors->isEmpty()) { - if ($cl_lock_interval == null || trim($cl_lock_interval) == '') - $cl_lock_interval = 0; + if ($err->no()) { $update_result = true; if ($user->canManageTeam()) { @@ -221,7 +226,7 @@ if ($request->getMethod() == 'POST') { if ($cl_client_required) $plugins .= ',cm'; if ($cl_invoices) - $plugins .= ',iv'; + $plugins .= ',iv'; if ($cl_custom_fields) $plugins .= ',cf'; if ($cl_expenses) @@ -230,13 +235,16 @@ if ($request->getMethod() == 'POST') { $plugins .= ',et'; if ($cl_notifications) $plugins .= ',no'; + if ($cl_locking) + $plugins .= ',lk'; + if ($cl_quotas) + $plugins .= ',mq'; $plugins = trim($plugins, ','); - + $update_result = ttTeamHelper::update($user->team_id, array( 'name' => $cl_team, 'address' => $cl_address, 'currency' => $cl_currency, - 'locktime' => $cl_lock_interval, 'lang' => $cl_lang, 'decimal_mark' => $cl_decimal_mark, 'date_format' => $cl_custom_format_date, @@ -244,6 +252,7 @@ if ($request->getMethod() == 'POST') { 'week_start' => $cl_start_week, 'tracking_mode' => $cl_tracking_mode, 'record_type' => $cl_record_type, + 'uncompleted_indicators' => $cl_uncompleted_indicators, 'plugins' => $plugins)); } if ($update_result) { @@ -258,9 +267,9 @@ if ($request->getMethod() == 'POST') { header('Location: time.php'); exit(); } else - $errors->add($i18n->getKey('error.db')); + $err->add($i18n->getKey('error.db')); } -} // POST +} // isPost $smarty->assign('auth_external', $auth->isPasswordExternal()); $smarty->assign('forms', array($form->getName()=>$form->toArray())); @@ -268,4 +277,3 @@ $smarty->assign('onload', 'onLoad="handlePluginCheckboxes()"'); $smarty->assign('title', $i18n->getKey('title.profile')); $smarty->assign('content_page_name', 'profile_edit.tpl'); $smarty->display('index.tpl'); -?> \ No newline at end of file