diff --git a/orif/timbreuse/Controllers/PersoLogs.php b/orif/timbreuse/Controllers/PersoLogs.php index 7bbe6ee..c46d2c1 100644 --- a/orif/timbreuse/Controllers/PersoLogs.php +++ b/orif/timbreuse/Controllers/PersoLogs.php @@ -11,7 +11,6 @@ use Timbreuse\Models\UsersModel; use CodeIgniter\I18n\Time; use Timbreuse\Models\AccessTimModel; -use Timbreuse\Models\EventPlanningsModel; use Timbreuse\Models\LogsFakeLogsModel; use Timbreuse\Models\PlanningsModel; @@ -178,8 +177,10 @@ protected function get_sum_time_for_day_view($timUserId, $day, $period) protected function create_planning_link(?int $timUserId=null): array { helper('UtilityFunctions'); - if ($timUserId === get_tim_user_id()) { - $button['link'] = base_url('/Plannings/get_plannings_list/'); + if ($timUserId === get_tim_user_id() + && $_SESSION['user_access'] < config('\User\Config\UserConfig')->access_lvl_admin + ) { + $button['link'] = base_url('/Plannings/get_plannings_list'); } else { $button['link'] = base_url( "/Plannings/get_plannings_list/$timUserId"); @@ -191,25 +192,27 @@ protected function create_planning_link(?int $timUserId=null): array protected function create_event_planning_link(?int $timUserId=null): array { helper('UtilityFunctions'); - if ($timUserId === get_tim_user_id()) { + if ($timUserId === get_tim_user_id() + && $_SESSION['user_access'] < config('\User\Config\UserConfig')->access_lvl_admin + ) { $button['link'] = base_url('event-plannings'); } else { - $button['link'] = base_url("admin/event-plannings/$timUserId"); + $button['link'] = base_url("event-plannings/$timUserId"); } $button['label'] = ucfirst(lang('tim_lang.event_plannings_list')); return $button; } - protected function get_buttons_for_log_views($day, $period, - ?int $timUserId=null): array + public function get_buttons_for_log_views($day, string $period, + ?int $timUserId=null): array { - $data['buttons'] = $this->create_buttons($period); - $data['buttons'] = array_merge( - $this->create_time_links($day, $period), - $data['buttons'] - ); + $data['buttons'] = array(); + + $data['buttons'] = array_merge($this->create_buttons($period, $timUserId), $data['buttons']); + $data['buttons'] = array_merge($this->create_time_links($day, $period), $data['buttons']); array_push($data['buttons'], $this->create_planning_link($timUserId)); array_push ($data['buttons'], $this->create_event_planning_link($timUserId)); + return $data; } @@ -753,28 +756,42 @@ protected function create_title(array $user, Time $day, } } - protected function create_buttons(string $period): array + protected function create_buttons(string $period, $timUserId = null): array { $data = array(); - array_push($data, + $today = Time::today()->toDateString(); + $uriSegments = explode('/', current_url()); + $lastSegment = array_pop($uriSegments); + + if (filter_var($lastSegment, FILTER_VALIDATE_INT) !== false) { + $path = "AdminLogs/time_list/$timUserId"; + } else { + if (url_is('*get_plannings_list') || url_is('*event-plannings') || url_is('*PersoLogs/perso_time*')) { + $path = "PersoLogs/perso_time"; + } else { + $path = "AdminLogs/time_list/$timUserId"; + } + } + + array_push($data, [ - 'link' => '../' . Time::today()->toDateString() . '/' . - $period, + 'link' => base_url("$path/$today/$period"), 'label' => ucfirst(lang('tim_lang.today')), + ], + [ + 'link' => base_url("$path/$today/day"), + 'label' => ucfirst(lang('tim_lang.day')) + ], + [ + 'link' => base_url("$path/$today/week"), + 'label' => ucfirst(lang('tim_lang.week')) + ], + [ + 'link' => base_url("$path/$today/month"), + 'label' => ucfirst(lang('tim_lang.month')) ] ); - array_push($data, [ - 'link' => 'day', - 'label' => ucfirst(lang('tim_lang.day')) - ]); - array_push($data, [ - 'link' => 'week', - 'label' => ucfirst(lang('tim_lang.week')) - ]); - array_push($data, [ - 'link' => 'month', - 'label' => ucfirst(lang('tim_lang.month')) - ]); + return $data; } diff --git a/orif/timbreuse/Controllers/PersonalEventPlannings.php b/orif/timbreuse/Controllers/PersonalEventPlannings.php index 82614be..1ba64a2 100644 --- a/orif/timbreuse/Controllers/PersonalEventPlannings.php +++ b/orif/timbreuse/Controllers/PersonalEventPlannings.php @@ -12,11 +12,14 @@ use Timbreuse\Models\UsersModel; use User\Models\User_model; use Timbreuse\Controllers\EventSeries; +use Timbreuse\Controllers\PersoLogs; +use CodeIgniter\I18n\Time; class PersonalEventPlannings extends BaseController { // Class properties protected EventSeries $eventSeriesController; + private PersoLogs $persoLogsController; private EventPlanningsModel $eventPlanningsModel; private EventTypesModel $eventTypesModel; private UsersModel $userSyncModel; @@ -46,6 +49,7 @@ public function initController( // Load required controllers $this->eventSeriesController = new EventSeries(); + $this->persoLogsController = new PersoLogs(); } /** @@ -84,6 +88,9 @@ public function index(?int $timUserId = null) : string|RedirectResponse { $data['isVisible'] = true; $data['route'] = $isAdminView ? "AdminLogs/time_list/{$timUserId}" : 'PersoLogs/perso_time'; + $data['period'] = 'day'; + $data['buttons'] = $this->persoLogsController->get_buttons_for_log_views(Time::today(), $data['period'], $timUserId)['buttons']; + $data['columns'] = [ 'event_type_name' => ucfirst(lang('tim_lang.event_type')), 'event_date' => ucfirst(lang('tim_lang.field_event_date')), @@ -114,7 +121,7 @@ public function index(?int $timUserId = null) : string|RedirectResponse { $data['url_delete'] = $eventPlannigRoute . 'delete/serie-or-occurence/'; return $this->display_view([ - 'Timbreuse\Views\common\return_button', + 'Timbreuse\Views\period_menu', 'Common\Views\items_list'], $data); } diff --git a/orif/timbreuse/Controllers/Plannings.php b/orif/timbreuse/Controllers/Plannings.php index dce22e8..c39a4f0 100644 --- a/orif/timbreuse/Controllers/Plannings.php +++ b/orif/timbreuse/Controllers/Plannings.php @@ -10,6 +10,7 @@ use Timbreuse\Models\AccessTimModel; use Timbreuse\Models\UsersModel; use CodeIgniter\Model; +use Timbreuse\Controllers\PersoLogs; use CodeIgniter\I18n\Time; use CodeIgniter\API\ResponseTrait; @@ -20,6 +21,9 @@ class Plannings extends BaseController use ResponseTrait; # API Response Trait # to rename, common it is confus, # here common is beetween create and edit + + private PersoLogs $persoLogsController; + protected function get_common_rules(): array { $rules['dateEnd'] = 'permit_empty'; @@ -103,6 +107,7 @@ public function initController(RequestInterface $request, ->access_lvl_registered; parent::initController($request, $response, $logger); $this->session = \Config\Services::session(); + $this->persoLogsController = new PersoLogs(); } @@ -541,9 +546,9 @@ protected function get_user_data_for_plannings_list(int $timUserId, $withDeleted); $data['url_create'] = $this->get_link_with_id_or_not( 'Plannings/create_planning', $timUserId); - $data['buttons'][0]['link'] = + /* $data['buttons'][0]['link'] = "../../AdminLogs/time_list/$timUserId"; - $data['buttons'][0]['label'] = ucfirst(lang('tim_lang.back')); + $data['buttons'][0]['label'] = ucfirst(lang('tim_lang.back')); */ $data['url_getView'] = "Plannings/get_plannings_list/$timUserId/$withDeleted"; $data['url_duplicate'] = 'Plannings/copy_planning/'; @@ -610,16 +615,23 @@ public function get_plannings_list(?int $timUserId=null, ?bool $withDeleted=false): string { $timUserId = $timUserId ?? $this->get_tim_user_id(); - if (!$this->is_access($timUserId)) - { + $data['period'] = 'day'; + $data['buttons'] = $this->persoLogsController->get_buttons_for_log_views(Time::today(), $data['period'], $timUserId)['buttons']; + + //dd(current_url(), $data['buttons']); + + if (!$this->is_access($timUserId)) { return $this->display_unauthorize(); } - $data = $this->get_data_for_plannings_list($timUserId, $withDeleted); - # check if the user check himself and show return button if not himself + + $data = array_merge($data, $this->get_data_for_plannings_list($timUserId, $withDeleted)); + + // check if the user check himself and show return button if not himself if ($timUserId === $this->get_tim_user_id()) { - return $this->display_view('Common\Views\items_list', $data); + return $this->display_view(['Timbreuse\Views\period_menu', 'Common\Views\items_list'], $data); } - return $this->display_view(['Timbreuse\Views\menu', + + return $this->display_view(['Timbreuse\Views\period_menu', 'Common\Views\items_list'], $data); } diff --git a/orif/timbreuse/Views/period_menu.php b/orif/timbreuse/Views/period_menu.php index 1c10be9..ec99c6f 100644 --- a/orif/timbreuse/Views/period_menu.php +++ b/orif/timbreuse/Views/period_menu.php @@ -1,10 +1,17 @@