Topic: LuxCal 4.7.7 - MySQL and SQLite - released 20 December 2019

Highlights

This new LuxCal version 4.7.7 includes interesting new features, improved technical issues and bug-fixes.
Most important new features / improvements:
• In Month, Week and Day view optionally a side panel can be shown right next to the main calendar. This is an important new feature.
• A new "Gantt Chart" view has been added to the calendar, showing a graphical presentation of all events during a certain period in sequential order.

Hereafter you will find a full summary of all changes since LuxCal version 4.7.6.

This new release has been tested again with the help of John from Denmark. Thank you John, you're a hero!

New features/Improvements
• In Month, Week and Day view optionally a side panel can be shown right next to the main calendar. This side panel can contain one or several of the following elements:
   1) a mini calendar, which can be used to look back or ahead in the calendar
    without changing the date of the main calendar.
   2) a decoration image per month.
   3) an optional information area with a message per month.
• A new "Gantt Chart" view has been added to the calendar, showing a graphical presentation of all events during a certain period in sequential order. Gantt Charts are particularly useful for project activity planning.
• On the Settings page, in the section Periodic Functions, when selecting Daily calendar changes summary, an empty Recipients list was not flagged as an error. The default Daily calendar changes summary setting for new installations is now set to 0 (disabled).
• To distinguish the Options button from possible other buttons right of the options button, the caption is printed in bold and the margin on the right side has been slightly enlarged
• When on the admin's Settings page, in the Views section, event sorting was set to category sequence nr, in Week and Day view for some events the width of the event rectangle was not maximized. Solved and code optimized.
• In both Matrix views the dates that were shown in each day cell have been removed and replaced by a date in the column header and footer. This creates more space for events and gives the Matrix views a much less crowded impression.
• In Matrix view "users" a user with post rights could click the day cells in any row - so also in the rows of other users - to open the Add Event window. When saving the event it would appear in the row of the user who added the event, which may be confusing. To avoid this behavior, in the new version a user with post rights can only click a day cell in his own row to open the Add Event window.
• For events that need approval but have not yet been approved the hover box with event details now shows a "still to be approved" bar (red bar) in the left margin. This means that now also in calendar views with only a mini-square or symbol per event (Year and Matrix views) the user can see that an event still needs approval.
• A new setting has been added to the General section of the settings page to specify the upper limit in pixels of a small display. If the calendar is visited from a small display, it will run in responsive mode, which means that certain not-essential elements are left out to better fit the calendar on a narrow width display.

Technical issues
• The variable $_SERVER['HTTP_USER_AGENT'] is not always provided by every web server, so before using it, its existence must be checked.
• On the Edit User Group page, a note has been added that the event categories that can be viewed and added/edited are subject to the selected user rights.
• In the navigation bar the trailing semicolon of the magnifier glass symbol was missing, which resulted in an HTML error.
• In header.php script for the side menu there were two different class tags in the same div, which is incorrect HTML. Both classes have now been merged.
• When the event duration is all day, the function that makes the hover box time now returns the text "All day" (from language file), rather than an empty string.
• In the function that makes the hover box time the "break"s were missing in the switch statement. Performance improvement.
• A function has been added to the toolbox file which produces the HTML code content of the event title hover-box. The hover-box content is now identical in all calendar views.
• In week and day view the code to display the events and the event hover boxes with event details has been scrutinized and optimized.
• For links to the calendar server, like the RSS feeds URL and the URL of the calendar itself, the HTTP protocol is now set to "https" if the calendar was queried through the HTTPS protocol.
• For all messages sent, the meta-tag <meta charset="UTF-8"> has been added to the message's <head> section.
• Users with 'assigned' admin rights (uid != 2) could open the database page and backup the database, but could not download the created backup file.
• When present, the upgrade script will show release notes at the end of a successful upgrade. The release notes should be present in the calendar root in file relnotes.html. This feature can be used to notify the admin of important issues when upgrading the calendar.
• If on the search page the end date < the start date an error message will be displayed

Bug fixes
• When a user with no access rights used the cP URL parameter, the selected page with events was shown. This should not be possible.
• In case of an invalid URL parameter (validGetVars function), the alert page is started while the calendar ID is not known yet, resulting in a PHP error message.
• On the Upcoming Events page, for events with an end time, in the hover box title the end time was displayed twice.
• The function to detect event overlaps didn't work correctly when the time of the new event ended on '9'. Problem solved and script simplified.
• When an event had been added without closing the Add Event window and thereafter the same event was added as a new event (Save as New), resulting in a page number change from 30 to 31, this caused a Session Expired message because there was no token for page 31. Solved by reverting to one single Event page number and using the mode to set the Event window title to either "Event - Add" or "Event - Edit".
• During the calendar upgrade procedure, when the calendar db is V4.7.7 the upgrade function returned V4.7.6, which is incorrect.
• In V4.7.3, on the Settings page, the change summary recipients field was renamed from "chgEmailList" to "chgRecipList". During the upgrade process the old field was copied to the new database, but not renamed, which resulted in the field content being lost.
• In the search SQL statement the category name and group name were not 'escaped' resulting in an SQL error when one of the two contained a single quote (like: don't forget).