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();
}
$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'));
$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;
$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,
}
$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');
$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'=>'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()'));
- if (defined('WEEK_VIEW_DEBUG') && isTrue(WEEK_VIEW_DEBUG)) {
- $form->addInput(array('type'=>'checkbox','name'=>'week_view','value'=>$cl_week_view));
- }
+ $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')));
$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,
'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(