X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=profile_edit.php;h=ba157a9cad3b0cf1fbfb0a03f6691edbbea67038;hb=75b65e92b21d45e2b09fb12daef169fb214a7acd;hp=ce20f4a5299ab97090d8b5074a07a93d70bf86fb;hpb=e732e1dd5c8a5cfaa24f5690ede39be2a90d0e3d;p=timetracker.git diff --git a/profile_edit.php b/profile_edit.php index ce20f4a5..ba157a9c 100644 --- a/profile_edit.php +++ b/profile_edit.php @@ -29,9 +29,10 @@ require_once('initialize.php'); import('form.Form'); import('ttUserHelper'); +import('ttRoleHelper'); // Access check. -if (!ttAccessCheck(right_data_entry|right_view_reports)) { +if (!ttAccessAllowed('manage_own_settings')) { header('Location: access_denied.php'); exit(); } @@ -54,14 +55,21 @@ if ($request->isPost()) { if (!$cl_currency) $cl_currency = CURRENCY_DEFAULT; $cl_lang = $request->getParameter('lang'); $cl_decimal_mark = $request->getParameter('decimal_mark'); - $cl_custom_format_date = $request->getParameter('format_date'); - $cl_custom_format_time = $request->getParameter('format_time'); + $cl_date_format = $request->getParameter('date_format'); + $cl_time_format = $request->getParameter('time_format'); $cl_start_week = $request->getParameter('start_week'); + $cl_show_holidays = $request->getParameter('show_holidays'); $cl_tracking_mode = $request->getParameter('tracking_mode'); $cl_project_required = $request->getParameter('project_required'); $cl_task_required = $request->getParameter('task_required'); $cl_record_type = $request->getParameter('record_type'); + $cl_punch_mode = $request->getParameter('punch_mode'); + $cl_allow_overlap = $request->getParameter('allow_overlap'); + $cl_future_entries = $request->getParameter('future_entries'); $cl_uncompleted_indicators = $request->getParameter('uncompleted_indicators'); + $cl_bcc_email = trim($request->getParameter('bcc_email')); + + // Plugin checkboxes. $cl_charts = $request->getParameter('charts'); $cl_clients = $request->getParameter('clients'); $cl_client_required = $request->getParameter('client_required'); @@ -71,9 +79,9 @@ if ($request->isPost()) { $cl_expenses = $request->getParameter('expenses'); $cl_tax_expenses = $request->getParameter('tax_expenses'); $cl_notifications = $request->getParameter('notifications'); - $cl_bcc_email = trim($request->getParameter('bcc_email')); $cl_locking = $request->getParameter('locking'); $cl_quotas = $request->getParameter('quotas'); + $cl_week_view = $request->getParameter('week_view'); } } else { $cl_name = $user->name; @@ -84,13 +92,17 @@ if ($request->isPost()) { $cl_currency = ($user->currency == ''? CURRENCY_DEFAULT : $user->currency); $cl_lang = $user->lang; $cl_decimal_mark = $user->decimal_mark; - $cl_custom_format_date = $user->date_format; - $cl_custom_format_time = $user->time_format; + $cl_date_format = $user->date_format; + $cl_time_format = $user->time_format; $cl_start_week = $user->week_start; + $cl_show_holidays = $user->show_holidays; $cl_tracking_mode = $user->tracking_mode; $cl_project_required = $user->project_required; $cl_task_required = $user->task_required; $cl_record_type = $user->record_type; + $cl_punch_mode = $user->punch_mode; + $cl_allow_overlap = $user->allow_overlap; + $cl_future_entries = $user->future_entries; $cl_uncompleted_indicators = $user->uncompleted_indicators; $cl_bcc_email = $user->bcc_email; @@ -107,6 +119,7 @@ if ($request->isPost()) { $cl_notifications = in_array('no', $plugins); $cl_locking = in_array('lk', $plugins); $cl_quotas = in_array('mq', $plugins); + $cl_week_view = in_array('wv', $plugins); } } @@ -121,9 +134,7 @@ $form->addInput(array('type'=>'text','maxlength'=>'100','name'=>'email','value'= if ($user->canManageTeam()) { $form->addInput(array('type'=>'text','maxlength'=>'200','name'=>'team_name','value'=>$cl_team)); $form->addInput(array('type'=>'text','maxlength'=>'7','name'=>'currency','value'=>$cl_currency)); - $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()')); + // Prepare an array of available languages. $lang_files = I18n::getLangFileList(); foreach ($lang_files as $lfile) { @@ -140,18 +151,23 @@ if ($user->canManageTeam()) { $longname_lang[] = array('id'=>I18n::getLangFromFilename($lfile),'name'=>$lname); } $longname_lang = mu_sort($longname_lang, 'name'); - $form->addInput(array('type'=>'combobox','name'=>'lang','style'=>'width: 150px','data'=>$longname_lang,'datakeys'=>array('id','name'),'value'=>$cl_lang)); + $form->addInput(array('type'=>'combobox','name'=>'lang','style'=>'width: 200px','data'=>$longname_lang,'datakeys'=>array('id','name'),'value'=>$cl_lang)); + + $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()')); + $DATE_FORMAT_OPTIONS = array( array('id'=>'%Y-%m-%d','name'=>'Y-m-d'), array('id'=>'%m/%d/%Y','name'=>'m/d/Y'), array('id'=>'%d.%m.%Y','name'=>'d.m.Y'), array('id'=>'%d.%m.%Y %a','name'=>'d.m.Y a')); - $form->addInput(array('type'=>'combobox','name'=>'format_date','style'=>'width: 150px;','data'=>$DATE_FORMAT_OPTIONS,'datakeys'=>array('id','name'),'value'=>$cl_custom_format_date, + $form->addInput(array('type'=>'combobox','name'=>'date_format','style'=>'width: 150px;','data'=>$DATE_FORMAT_OPTIONS,'datakeys'=>array('id','name'),'value'=>$cl_date_format, 'onchange'=>'MakeFormatPreview("date_format_preview", this);')); $TIME_FORMAT_OPTIONS = array( array('id'=>'%H:%M','name'=>$i18n->getKey('form.profile.24_hours')), array('id'=>'%I:%M %p','name'=>$i18n->getKey('form.profile.12_hours'))); - $form->addInput(array('type'=>'combobox','name'=>'format_time','style'=>'width: 150px;','data'=>$TIME_FORMAT_OPTIONS,'datakeys'=>array('id','name'),'value'=>$cl_custom_format_time, + $form->addInput(array('type'=>'combobox','name'=>'time_format','style'=>'width: 150px;','data'=>$TIME_FORMAT_OPTIONS,'datakeys'=>array('id','name'),'value'=>$cl_time_format, 'onchange'=>'MakeFormatPreview("time_format_preview", this);')); // Prepare week start choices. @@ -161,6 +177,9 @@ if ($user->canManageTeam()) { } $form->addInput(array('type'=>'combobox','name'=>'start_week','style'=>'width: 150px;','data'=>$week_start_options,'datakeys'=>array('id','name'),'value'=>$cl_start_week)); + // Show holidays checkbox. + $form->addInput(array('type'=>'checkbox','name'=>'show_holidays','value'=>$cl_show_holidays)); + // Prepare tracking mode choices. $tracking_mode_options = array(); $tracking_mode_options[MODE_TIME] = $i18n->getKey('form.profile.mode_time'); @@ -177,21 +196,27 @@ if ($user->canManageTeam()) { $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)); + // Punch mode checkbox. + $form->addInput(array('type'=>'checkbox','name'=>'punch_mode','value'=>$cl_punch_mode)); + + // Allow overlap checkbox. + $form->addInput(array('type'=>'checkbox','name'=>'allow_overlap','value'=>$cl_allow_overlap)); + + // Future entries checkbox. + $form->addInput(array('type'=>'checkbox','name'=>'future_entries','value'=>$cl_future_entries)); + + // Uncompleted indicators checkbox. + $form->addInput(array('type'=>'checkbox','name'=>'uncompleted_indicators','value'=>$cl_uncompleted_indicators)); // Add bcc email control, for manager only. if ($user->isManager()) { $form->addInput(array('type'=>'text','maxlength'=>'100','name'=>'bcc_email','value'=>$cl_bcc_email)); } + // Plugin checkboxes. $form->addInput(array('type'=>'checkbox','name'=>'charts','value'=>$cl_charts)); $form->addInput(array('type'=>'checkbox','name'=>'clients','value'=>$cl_clients,'onchange'=>'handlePluginCheckboxes()')); $form->addInput(array('type'=>'checkbox','name'=>'client_required','value'=>$cl_client_required)); - $form->addInput(array('type'=>'checkbox','name'=>'invoices','value'=>$cl_invoices)); $form->addInput(array('type'=>'checkbox','name'=>'paid_status','value'=>$cl_paid_status)); $form->addInput(array('type'=>'checkbox','name'=>'custom_fields','value'=>$cl_custom_fields,'onchange'=>'handlePluginCheckboxes()')); @@ -200,6 +225,7 @@ if ($user->canManageTeam()) { $form->addInput(array('type'=>'checkbox','name'=>'notifications','value'=>$cl_notifications,'onchange'=>'handlePluginCheckboxes()')); $form->addInput(array('type'=>'checkbox','name'=>'locking','value'=>$cl_locking,'onchange'=>'handlePluginCheckboxes()')); $form->addInput(array('type'=>'checkbox','name'=>'quotas','value'=>$cl_quotas,'onchange'=>'handlePluginCheckboxes()')); + $form->addInput(array('type'=>'checkbox','name'=>'week_view','value'=>$cl_week_view,'onchange'=>'handlePluginCheckboxes()')); } $form->addInput(array('type'=>'submit','name'=>'btn_save','value'=>$i18n->getKey('button.save'))); @@ -256,15 +282,40 @@ if ($request->isPost()) { $plugins .= ',lk'; if ($cl_quotas) $plugins .= ',mq'; + if ($cl_week_view) + $plugins .= ',wv'; + + // Recycle week view plugin options as they are not configured on this page. + $existing_plugins = explode(',', $user->plugins); + if (in_array('wvn', $existing_plugins)) + $plugins .= ',wvn'; + if (in_array('wvl', $existing_plugins)) + $plugins .= ',wvl'; + if (in_array('wvns', $existing_plugins)) + $plugins .= ',wvns'; + $plugins = trim($plugins, ','); + // Prepare config string. + if ($cl_show_holidays) + $config .= ',show_holidays'; + if ($cl_punch_mode) + $config .= ',punch_mode'; + if ($cl_allow_overlap) + $config .= ',allow_overlap'; + if ($cl_future_entries) + $config .= ',future_entries'; + if ($cl_uncompleted_indicators) + $config .= ',uncompleted_indicators'; + $config = trim($config, ','); + $update_result = ttTeamHelper::update($user->team_id, array( 'name' => $cl_team, 'currency' => $cl_currency, 'lang' => $cl_lang, 'decimal_mark' => $cl_decimal_mark, - 'date_format' => $cl_custom_format_date, - 'time_format' => $cl_custom_format_time, + 'date_format' => $cl_date_format, + 'time_format' => $cl_time_format, 'week_start' => $cl_start_week, 'tracking_mode' => $cl_tracking_mode, 'project_required' => $cl_project_required, @@ -272,7 +323,8 @@ if ($request->isPost()) { 'record_type' => $cl_record_type, 'uncompleted_indicators' => $cl_uncompleted_indicators, 'bcc_email' => $cl_bcc_email, - 'plugins' => $plugins)); + 'plugins' => $plugins, + 'config' => $config)); } if ($update_result) { $update_result = ttUserHelper::update($user->id, array(