Introduced approve_reports and approve_all_reports rights.
[timetracker.git] / reports.php
index 05d7e5f..fdb2d2e 100644 (file)
@@ -179,17 +179,24 @@ if ($showPaidStatus) {
 }
 
 // Add timesheet assignment selector.
-$showTimesheet = $user->isPluginEnabled('ts') &&
-  ($user->can('view_own_timesheets') || $user->can('manage_own_timesheets') ||
-  $user->can('view_timesheets') || $user->can('manage_timesheets') || $user->can('approve_timesheets'));
-if ($showTimesheet) {
+$showTimesheetDropdown = $user->isPluginEnabled('ts') &&
+  ($user->can('view_own_timesheets') || $user->can('view_timesheets') ||
+   $user->can('view_all_timesheets') || ($user->can('view_client_timesheets') && $user->can('view_client_unapproved')));
+if ($showTimesheetDropdown) {
   $form->addInput(array('type'=>'combobox',
    'name'=>'timesheet',
    'style'=>'width: 250px;',
-   'data'=>array('1'=>$i18n->get('form.reports.include_assigned'),'2'=>$i18n->get('form.reports.include_not_assigned')),
+   'data'=>array(TIMESHEET_NOT_ASSIGNED=>$i18n->get('form.reports.include_not_assigned'),
+     TIMESHEET_ASSIGNED=>$i18n->get('form.reports.include_assigned'),
+     TIMESHEET_PENDING=>$i18n->get('form.reports.include_pending'),
+     TIMESHEET_APPROVED=>$i18n->get('form.reports.include_approved'),
+     TIMESHEET_NOT_APPROVED=>$i18n->get('form.reports.include_not_approved')),
    'empty'=>array(''=>$i18n->get('dropdown.all'))
   ));
 }
+$showTimesheetCheckbox = $user->isPluginEnabled('ts') &&
+  ($user->can('view_own_timesheets') || $user->can('view_timesheets') ||
+   $user->can('view_all_timesheets') || $user->can('view_client_timesheets'));
 
 // Add user table.
 $showUsers = $user->can('view_reports') || $user->can('view_all_reports') || $user->isClient();
@@ -270,11 +277,11 @@ $form->addInput(array('type'=>'checkbox','name'=>'chcost'));
 $showWorkUnits = $user->isPluginEnabled('wu');
 if ($showWorkUnits)
   $form->addInput(array('type'=>'checkbox','name'=>'chunits'));
-if ($showTimesheet)
+if ($showTimesheetCheckbox)
   $form->addInput(array('type'=>'checkbox','name'=>'chtimesheet'));
 
 // Add a hidden control for timesheet_user_id (who to generate a timesheet for).
-if ($showTimesheet)
+if ($showTimesheetCheckbox)
   $form->addInput(array('type'=>'hidden','name'=>'timesheet_user_id'));
 
 // Add group by control.
@@ -424,7 +431,8 @@ $smarty->assign('show_billable', $showBillable);
 $smarty->assign('show_invoice_dropdown', $showInvoiceDropdown);
 $smarty->assign('show_invoice_checkbox', $showInvoiceCheckbox);
 $smarty->assign('show_paid_status', $showPaidStatus);
-$smarty->assign('show_timesheet', $showTimesheet);
+$smarty->assign('show_timesheet_dropdown', $showTimesheetDropdown);
+$smarty->assign('show_timesheet_checkbox', $showTimesheetCheckbox);
 $smarty->assign('show_users', $showUsers);
 $smarty->assign('show_start', $showStart);
 $smarty->assign('show_finish', $showFinish);