feat: Integrate JS Gantt Chart library and update styles

- Added JS Gantt Chart library files including CSS and JS.
- Updated existing Gantt chart styles for better visual representation.
- Translated month and day names to Polish in the Gantt chart settings.
- Implemented Gantt chart initialization in the main view with sample data.
- Added a toggle switch for displaying tasks in the calendar.
- Enhanced task edit form with a new checkbox for calendar visibility.
- Improved the layout of the logged-in user template to include Gantt chart styles and scripts.
This commit is contained in:
2025-04-11 00:26:54 +02:00
parent 39b30c4ea4
commit 1f38807599
21 changed files with 765 additions and 27 deletions

View File

@@ -2,6 +2,40 @@
namespace controls;
class Tasks
{
static public function gantt_json() {
global $mdb;
$tasks = $mdb -> query( 'SELECT t.id, t.name, t.date_start, t.date_end, t.status FROM tasks AS t WHERE show_in_calendar = 1 AND status != 2' ) -> fetchAll( \PDO::FETCH_ASSOC );
foreach ( $tasks as $task ) {
$class = '';
if ( $task['status'] == 6 )
$class = 'ganttGrey';
elseif ( $task['status'] == 5 )
$class = 'ganttRed';
$task_json['name'] = $task['name'];
$task_json['desc'] = 'Lorem ipsum dolor sit amet.';
$task_json['id'] = $task['id'];
$task_json['cssClass'] = 'redLabel';
$task_json['values'] = [
[
'from' => $task['date_start'] . ' 08:00',
'to' => $task['date_end'] . ' 16:00',
'label' => $task['name'],
'desc' => '',
'customClass' => $class
]
];
$data[] = $task_json;
}
header('Content-Type: application/json');
// Zwróć dane jako JSON
echo json_encode($data);
exit;
}
static public function task_delete() {
global $user;
@@ -365,7 +399,7 @@ class Tasks
$values = \S::json_to_array( \S::get( 'values' ) );
if ( $id = \factory\Tasks::task_save(
$values['id'], null, $user['id'], $values['name'], $values['text'], $values['date_start'], $values['date_end'], $values['project_id'], $values['client_id'], $values['pay_rate'], $values['reminders_interval'], $values['recursively'], $values['frequency'], $values['period'], $values['users'], null, null, $values['send_email_notification'], $values['status_change_mail'], false, $values['status']
$values['id'], null, $user['id'], $values['name'], $values['text'], $values['date_start'], $values['date_end'], $values['project_id'], $values['client_id'], $values['pay_rate'], $values['reminders_interval'], $values['recursively'], $values['frequency'], $values['period'], $values['users'], null, null, $values['send_email_notification'], $values['status_change_mail'], false, $values['status'], $values['show_in_calendar']
) )
{
\factory\Tasks::clear_task_opened( $id );