mirror of https://github.com/itflow-org/itflow
More calendar tweaks
This commit is contained in:
parent
1f3799ebe3
commit
f573f0401b
|
|
@ -51,48 +51,47 @@ while ($row = mysqli_fetch_array($sql)) {
|
||||||
<script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.10/index.global.min.js'></script>
|
<script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.10/index.global.min.js'></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
var calendarEl = document.getElementById('calendar');
|
var calendarEl = document.getElementById('calendar');
|
||||||
|
|
||||||
var calendar = new FullCalendar.Calendar(calendarEl, {
|
var calendar = new FullCalendar.Calendar(calendarEl, {
|
||||||
themeSystem: 'bootstrap',
|
themeSystem: 'bootstrap',
|
||||||
defaultView: 'dayGridMonth',
|
defaultView: 'dayGridMonth',
|
||||||
customButtons: {
|
customButtons: {
|
||||||
addEvent: {
|
addEvent: {
|
||||||
text: 'Add Event',
|
text: 'Add Event',
|
||||||
bootstrapFontAwesome: 'fa fa-plus',
|
bootstrapFontAwesome: 'fa fa-plus',
|
||||||
click: function() {
|
click: function() {
|
||||||
$("#addCalendarEventModal").modal();
|
$("#addCalendarEventModal").modal();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
addCalendar: {
|
addCalendar: {
|
||||||
text: 'Add Calendar',
|
text: 'Add Calendar',
|
||||||
bootstrapFontAwesome: 'fa fa-calendar-plus',
|
bootstrapFontAwesome: 'fa fa-calendar-plus',
|
||||||
click: function() {
|
click: function() {
|
||||||
$("#addCalendarModal").modal();
|
$("#addCalendarModal").modal();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
headerToolbar: {
|
|
||||||
left: 'prev,next today',
|
|
||||||
center: 'title',
|
|
||||||
right: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth addEvent addCalendar'
|
|
||||||
},
|
|
||||||
<?php if(!$session_mobile) {
|
|
||||||
?>aspectRatio: 2.5,<?php
|
|
||||||
} else {
|
|
||||||
?>aspectRatio: 0.75,<?php
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
//initialDate: '2023-01-12',
|
|
||||||
navLinks: true, // can click day/week names to navigate views
|
|
||||||
selectable: true,
|
|
||||||
selectMirror: true,
|
|
||||||
eventClick: function(editEvent) {
|
|
||||||
$('#editEventModal' + editEvent.event.id).modal();
|
|
||||||
},
|
},
|
||||||
dayMaxEvents: true, // allow "more" link when too many events
|
headerToolbar: {
|
||||||
views: {
|
left: 'prev,next today',
|
||||||
|
center: 'title',
|
||||||
|
right: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth addEvent addCalendar'
|
||||||
|
},
|
||||||
|
<?php if (!$session_mobile) {
|
||||||
|
?>aspectRatio: 2.5,
|
||||||
|
<?php } else { ?>
|
||||||
|
aspectRatio: 0.7,
|
||||||
|
<?php } ?>
|
||||||
|
navLinks: true, // can click day/week names to navigate views
|
||||||
|
selectable: true,
|
||||||
|
height: '90vh',
|
||||||
|
selectMirror: true,
|
||||||
|
eventClick: function(editEvent) {
|
||||||
|
$('#editEventModal' + editEvent.event.id).modal();
|
||||||
|
},
|
||||||
|
dayMaxEvents: true, // allow "more" link when too many events
|
||||||
|
views: {
|
||||||
timeGrid: {
|
timeGrid: {
|
||||||
dayMaxEventRows: 5, // adjust to 6 only for timeGridWeek/timeGridDay
|
dayMaxEventRows: 5, // adjust to 6 only for timeGridWeek/timeGridDay
|
||||||
expandRows: true,
|
expandRows: true,
|
||||||
|
|
@ -104,105 +103,133 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||||
},
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
events: [
|
events: [
|
||||||
<?php
|
<?php
|
||||||
$sql = mysqli_query($mysqli, "SELECT * FROM events LEFT JOIN calendars ON event_calendar_id = calendar_id");
|
$sql = mysqli_query($mysqli, "SELECT * FROM events LEFT JOIN calendars ON event_calendar_id = calendar_id");
|
||||||
while ($row = mysqli_fetch_array($sql)) {
|
while ($row = mysqli_fetch_array($sql)) {
|
||||||
$event_id = intval($row['event_id']);
|
$event_id = intval($row['event_id']);
|
||||||
$event_title = json_encode($row['event_title']);
|
$event_title = json_encode($row['event_title']);
|
||||||
$event_start = json_encode($row['event_start']);
|
$event_start = json_encode($row['event_start']);
|
||||||
$event_end = json_encode($row['event_end']);
|
$event_end = json_encode($row['event_end']);
|
||||||
$calendar_id = intval($row['calendar_id']);
|
$calendar_id = intval($row['calendar_id']);
|
||||||
$calendar_name = json_encode($row['calendar_name']);
|
$calendar_name = json_encode($row['calendar_name']);
|
||||||
$calendar_color = json_encode($row['calendar_color']);
|
$calendar_color = json_encode($row['calendar_color']);
|
||||||
|
|
||||||
echo "{ id: $event_id, title: $event_title, start: $event_start, end: $event_end, color: $calendar_color },";
|
echo "{ id: $event_id, title: $event_title, start: $event_start, end: $event_end, color: $calendar_color },";
|
||||||
}
|
}
|
||||||
|
|
||||||
//Invoices Created
|
//Invoices Created
|
||||||
$sql = mysqli_query($mysqli, "SELECT * FROM clients LEFT JOIN invoices ON client_id = invoice_client_id");
|
$sql = mysqli_query($mysqli, "SELECT * FROM clients LEFT JOIN invoices ON client_id = invoice_client_id");
|
||||||
while ($row = mysqli_fetch_array($sql)) {
|
while ($row = mysqli_fetch_array($sql)) {
|
||||||
$event_id = intval($row['invoice_id']);
|
$event_id = intval($row['invoice_id']);
|
||||||
$event_title = json_encode($row['invoice_prefix'] . $row['invoice_number'] . " " . $row['invoice_scope']);
|
$scope = strval($row['invoice_scope']);
|
||||||
$event_start = json_encode($row['invoice_date']);
|
if (empty($scope)) {
|
||||||
|
$scope = "Not Set";
|
||||||
|
}
|
||||||
|
$event_title = json_encode($row['invoice_prefix'] . $row['invoice_number'] . " created -scope: " . $scope);
|
||||||
|
$event_start = json_encode($row['invoice_date']);
|
||||||
|
|
||||||
echo "{ id: $event_id, title: $event_title, start: $event_start, color: 'blue', url: 'invoice.php?invoice_id=$event_id' },";
|
|
||||||
}
|
|
||||||
|
|
||||||
//Quotes Created
|
echo "{ id: $event_id, title: $event_title, start: $event_start, display: 'list-item', color: 'blue', url: 'invoice.php?invoice_id=$event_id' },";
|
||||||
$sql = mysqli_query($mysqli, "SELECT * FROM clients LEFT JOIN quotes ON client_id = quote_client_id");
|
}
|
||||||
while ($row = mysqli_fetch_array($sql)) {
|
|
||||||
$event_id = intval($row['quote_id']);
|
|
||||||
$event_title = json_encode($row['quote_prefix'] . $row['quote_number'] . " " . $row['quote_scope']);
|
|
||||||
$event_start = json_encode($row['quote_date']);
|
|
||||||
|
|
||||||
echo "{ id: $event_id, title: $event_title, start: $event_start, color: 'purple', url: 'quote.php?quote_id=$event_id' },";
|
//Quotes Created
|
||||||
}
|
$sql = mysqli_query($mysqli, "SELECT * FROM clients LEFT JOIN quotes ON client_id = quote_client_id");
|
||||||
|
while ($row = mysqli_fetch_array($sql)) {
|
||||||
|
$event_id = intval($row['quote_id']);
|
||||||
|
$event_title = json_encode($row['quote_prefix'] . $row['quote_number'] . " " . $row['quote_scope']);
|
||||||
|
$event_start = json_encode($row['quote_date']);
|
||||||
|
|
||||||
//Tickets Created
|
echo "{ id: $event_id, title: $event_title, start: $event_start, display: 'list-item', color: 'purple', url: 'quote.php?quote_id=$event_id' },";
|
||||||
$sql = mysqli_query($mysqli, "SELECT * FROM clients LEFT JOIN tickets ON client_id = ticket_client_id");
|
}
|
||||||
while ($row = mysqli_fetch_array($sql)) {
|
|
||||||
$event_id = intval($row['ticket_id']);
|
|
||||||
$event_title = json_encode($row['ticket_prefix'] . $row['ticket_number'] . " " . $row['ticket_subject']);
|
|
||||||
$event_start = json_encode($row['ticket_created_at']);
|
|
||||||
|
|
||||||
echo "{ id: $event_id, title: $event_title, start: $event_start, color: 'orange', url: 'ticket.php?ticket_id=$event_id' },";
|
//Tickets Created
|
||||||
}
|
$sql = mysqli_query($mysqli, "SELECT * FROM clients LEFT JOIN tickets ON client_id = ticket_client_id LEFT JOIN users ON ticket_assigned_to = user_id");
|
||||||
|
while ($row = mysqli_fetch_array($sql)) {
|
||||||
|
$event_id = intval($row['ticket_id']);
|
||||||
|
$ticket_status = strval($row['ticket_status']);
|
||||||
|
$username = $row['user_name'];
|
||||||
|
if (empty($username)) {
|
||||||
|
$username = "";
|
||||||
|
} else {
|
||||||
|
//Limit to characters and add ...
|
||||||
|
$username = "[". substr($row['user_name'], 0, 9) . "...]";
|
||||||
|
}
|
||||||
|
|
||||||
//Tickets Scheduled
|
$event_title = json_encode($row['ticket_prefix'] . $row['ticket_number'] . " created - " . $row['ticket_subject'] . " " . $username . "{" . $ticket_status . "}");
|
||||||
$sql = mysqli_query($mysqli, "SELECT * FROM clients LEFT JOIN tickets ON client_id = ticket_client_id LEFT JOIN users ON ticket_assigned_to = user_id WHERE ticket_schedule IS NOT NULL");
|
$event_start = json_encode($row['ticket_created_at']);
|
||||||
while ($row = mysqli_fetch_array($sql)) {
|
|
||||||
$event_id = intval($row['ticket_id']);
|
|
||||||
if (empty($username)) {
|
|
||||||
$username = "Unassigned";
|
|
||||||
} else {
|
|
||||||
$username = $row['user_name'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (strtotime($row['ticket_schedule']) < time()) {
|
|
||||||
if ($row['ticket_status'] == 'Scheduled') {
|
|
||||||
$event_color = "red";
|
|
||||||
} else {
|
|
||||||
$event_color = "green";
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$event_color = "grey";
|
|
||||||
}
|
|
||||||
|
|
||||||
$event_title = json_encode($row['ticket_prefix'] . $row['ticket_number'] . " " . $row['ticket_subject'] . " [" . $username . "]");
|
if ($ticket_status == "Closed") {
|
||||||
$event_start = json_encode($row['ticket_schedule']);
|
$event_color = "black";
|
||||||
|
} else if ($ticket_status == "Scheduled") {
|
||||||
|
$event_color = "grey";
|
||||||
|
} else if ($ticket_status == "Pending-Assignment") {
|
||||||
|
$event_color = "red";
|
||||||
|
} else {
|
||||||
|
$event_color = "blue";
|
||||||
|
}
|
||||||
|
|
||||||
echo "{ id: $event_id, title: $event_title, start: $event_start, color: '$event_color', url: 'ticket.php?ticket_id=$event_id' },";
|
echo "{ id: $event_id, title: $event_title, start: $event_start, color: '$event_color', url: 'ticket.php?ticket_id=$event_id' },";
|
||||||
}
|
}
|
||||||
|
|
||||||
//Vendors Added Created
|
//Tickets Scheduled
|
||||||
$sql = mysqli_query($mysqli, "SELECT * FROM clients LEFT JOIN vendors ON client_id = vendor_client_id WHERE vendor_template = 0");
|
$sql = mysqli_query($mysqli, "SELECT * FROM clients LEFT JOIN tickets ON client_id = ticket_client_id LEFT JOIN users ON ticket_assigned_to = user_id WHERE ticket_schedule IS NOT NULL");
|
||||||
while ($row = mysqli_fetch_array($sql)) {
|
while ($row = mysqli_fetch_array($sql)) {
|
||||||
$event_id = intval($row['vendor_id']);
|
$event_id = intval($row['ticket_id']);
|
||||||
$client_id = intval($row['client_id']);
|
$username = $row['user_name'];
|
||||||
$event_title = json_encode($row['vendor_name']);
|
if (empty($username)) {
|
||||||
$event_start = json_encode($row['vendor_created_at']);
|
$username = "";
|
||||||
|
} else {
|
||||||
|
//Limit to characters and add ...
|
||||||
|
$username = substr($row['user_name'], 0, 9) . "...";
|
||||||
|
}
|
||||||
|
|
||||||
echo "{ id: $event_id, title: $event_title, start: $event_start, color: 'brown', url: 'client_vendors.php?client_id=$client_id' },";
|
if (strtotime($row['ticket_schedule']) < time()) {
|
||||||
}
|
if ($row['ticket_status'] == 'Scheduled') {
|
||||||
|
$event_color = "red";
|
||||||
|
} else {
|
||||||
|
$event_color = "green";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$event_color = "grey";
|
||||||
|
}
|
||||||
|
|
||||||
//Clients Added
|
$ticket_status = strval($row['ticket_status']);
|
||||||
$sql = mysqli_query($mysqli, "SELECT * FROM clients");
|
$event_title = json_encode($row['ticket_prefix'] . $row['ticket_number'] . " scheduled - " . $row['ticket_subject'] . " [" . $username . "]{" . $ticket_status . "}");
|
||||||
while ($row = mysqli_fetch_array($sql)) {
|
$event_start = json_encode($row['ticket_schedule']);
|
||||||
$event_id = intval($row['client_id']);
|
|
||||||
$event_title = json_encode($row['client_name']);
|
|
||||||
$event_start = json_encode($row['client_created_at']);
|
|
||||||
|
|
||||||
echo "{ id: $event_id, title: $event_title, start: $event_start, color: 'green', url: 'client_overview.php?client_id=$event_id' },";
|
|
||||||
}
|
echo "{ id: $event_id, title: $event_title, start: $event_start, color: '$event_color', url: 'ticket.php?ticket_id=$event_id' },";
|
||||||
?>
|
}
|
||||||
]
|
|
||||||
|
//Vendors Added Created
|
||||||
|
$sql = mysqli_query($mysqli, "SELECT * FROM clients LEFT JOIN vendors ON client_id = vendor_client_id WHERE vendor_template = 0");
|
||||||
|
while ($row = mysqli_fetch_array($sql)) {
|
||||||
|
$event_id = intval($row['vendor_id']);
|
||||||
|
$client_id = intval($row['client_id']);
|
||||||
|
$event_title = json_encode("Vendor : '" . $row['vendor_name'] . "' created");
|
||||||
|
$event_start = json_encode($row['vendor_created_at']);
|
||||||
|
|
||||||
|
echo "{ id: $event_id, title: $event_title, start: $event_start, color: 'brown', url: 'client_vendors.php?client_id=$client_id' },";
|
||||||
|
}
|
||||||
|
|
||||||
|
//Clients Added
|
||||||
|
$sql = mysqli_query($mysqli, "SELECT * FROM clients");
|
||||||
|
while ($row = mysqli_fetch_array($sql)) {
|
||||||
|
$event_id = intval($row['client_id']);
|
||||||
|
$event_title = json_encode("Client: '" . $row['client_name'] . "' created");
|
||||||
|
$event_start = json_encode($row['client_created_at']);
|
||||||
|
|
||||||
|
echo "{ id: $event_id, title: $event_title, start: $event_start, color: 'brown', url: 'client_overview.php?client_id=$event_id' },";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
],
|
||||||
|
eventOrder: 'allDay,start,-duration,title',
|
||||||
|
});
|
||||||
|
|
||||||
|
calendar.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
calendar.render();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- Automatically set new event end date to 1 hr after start date -->
|
<!-- Automatically set new event end date to 1 hr after start date -->
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue