require_once('initialize.php');
import('form.Form');
import('ttUserHelper');
+import('ttRoleHelper');
// Access check.
if (!ttAccessCheck(right_data_entry|right_view_reports)) {
$cl_team = trim($request->getParameter('team_name'));
$cl_currency = trim($request->getParameter('currency'));
if (!$cl_currency) $cl_currency = CURRENCY_DEFAULT;
+ $cl_roles = $request->getParameter('roles');
$cl_lang = $request->getParameter('lang');
$cl_decimal_mark = $request->getParameter('decimal_mark');
$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'));
if ($user->canManageTeam()) {
$cl_team = $user->team;
$cl_currency = ($user->currency == ''? CURRENCY_DEFAULT : $user->currency);
+ $cl_roles = $user->roles;
$cl_lang = $user->lang;
$cl_decimal_mark = $user->decimal_mark;
$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;
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));
+ // Roles checkbox.
+ $form->addInput(array('type'=>'checkbox','name'=>'roles','value'=>$cl_roles,'onchange'=>'handleRolesCheckbox()'));
// Prepare an array of available languages.
$lang_files = I18n::getLangFileList();
}
$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, ',');
+ // If we use roles... No, we'll do it differently.
+ /*
+ if ($cl_roles && !ttRoleHelper::rolesExist()) {
+ ttRoleHelper::createDefaultRoles();
+ }*/
+
+ // Prepare config string.
+ if ($cl_roles)
+ $config .= ',roles';
+ 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(
$smarty->assign('auth_external', $auth->isPasswordExternal());
$smarty->assign('forms', array($form->getName()=>$form->toArray()));
-$smarty->assign('onload', 'onLoad="handleTaskRequiredCheckbox(); handlePluginCheckboxes();"');
+$smarty->assign('onload', 'onLoad="handleRolesCheckbox(); handleTaskRequiredCheckbox(); handlePluginCheckboxes();"');
$smarty->assign('title', $i18n->getKey('title.profile'));
$smarty->assign('content_page_name', 'profile_edit.tpl');
$smarty->display('index.tpl');