Topic: LuxCal 4.7.5 - MySQL and SQLite - released 19 March 2019

Users are encouraged to upgrade to this new version 4.7.5.


This new LuxCal version 4.7.5 is an important bug-fix release with technical issues solved and a few new features.
Most important new features / improvements:
• In Year, Month and Matrix view, to add a new event for a specific day, rather than clicking the top bar of a day cell, any free space of the day cell can now be clicked.
• The way to log in, log out and to change the user account credentials have changed to a more modern look.
• A new setting has been added to the admin's settings page to enable/disable the display of the end time (if specified) in the day cells of Month view following the event start time.
Hereafter you will find a full summary of all changes since LuxCal version 4.7.3.

This new release has been tested again with the help of John from Denmark. Thank you John, great job again!

New features/Improvements
• In Year, Month and Matrix view, if a user has post rights, rather than clicking the top bar of a day cell, any free space of the day cell can now be clicked to add a new event
    for the selected day. At the same time the hover box with event details has been slightly moved downwards to make the event title more visible.
• The way to log in, log out and     to change the user account credentials have changed. When the user is not logged in, at the right upper corner, a Log-in link is displayed, replacing the log in button on the navigation bar. Once logged in, in the right upper corner the user name is displayed as a hyper link. When clicking on the user name, two options drop down: 1) Log out, which replaces the log out button on the navigation bar, and 2) User profile. When selecting User profile, a new page will open where the user can change his/her profile data..
• A <title> tag has been added to the event title hyper-links showing "Edit event", "See event details" or nothing, depending on what is applicable.
• On the Alert page, when the message "Session expired, please restart the Calendar" is displayed, a Restart button has been added to restart the calendar and, if on the admin's Settings page a "Link to parent page" has been defined, also a Back button will be shown.
• When a user logs out and on the Settings page a link to a parent page has been specified, the user will be automatically redirected to the parent page.
• Whenever relevant, the calendar ID has been added to the messages logged in the luxcal.log and sql.log files. This is in particular useful in case of multiple calendars.
• In the past, in case of multiple calendars, the visitors counter and the visitors data log files were combined for all calendars. In this version the visitors counter and the visitors data log files are kept for each individual calendar.
• When the calendar is opened via the hyper-link at the bottom of a reminder email message, the day cell at the date of the event concerned has a slightly contrasted background color and border.
• The date hyper-link in the calendar's top bar did not show the same shadow as the other text hyper-links.
• A new setting has been added to the admin's settings page to enable/disable the display of the end time (if specified) in the day cells of Month view following the event start time.

Technical issues
• The implementation of the Single Sign On (SSO) feature in combination with calendar-specific PHP sessions was too complicated and caused too many problems. Therefore the system with one individual PHP session per calendar has been replaced by a more straightforward system with one PHP session per user, where calendar-specific data is store in the session variables using an array with the calendar ID as index.
• The regexes $rxCalURL, $rxPhone and $rxIMGTags and the regexes used in messaging to check for user names contained one or more un-escaped hyphens (-) in a square bracket list of characters, which is considered a regex error by the latest PCRE library (V10.32 2018-09-10), which is normally used by PHP 7.3.
• In the footer of the alert page, when hovering powered by LuxCal, it showed V4.7.2 (hard coded). This has been changed to dynamically showing the current calendar version.
• The drag-able area in the week and day views was always active, even if the user had no post rights. This resulted in an Event window with the message "You are not authorized to perform this action". This has been changed, the area is now only active if the user has post rights.
• FOR APACHE SERVERS ONLY! The protection of the calendar folders against unauthorized direct browser access has been revisited and where possible access has been restricted via .htaccess files. For the "db", "files", "attachments", logs and reciplists folders all direct access is denied. Authorized access, via the calendar's user interface, is performed indirect.
• When deleting an event the "editor" field was not set to the current user, resulting in a wrong "edited by" name in the Changes view. This has been rectified and now deleting an event is treated similar to editing an event, as far as the "edited by" and "date/time edited" fields.
• The text "Check all ignore boxes" was still hard-coded and has been moved to the language files.
• In the installation_guide section "Single Sign On (SSO) it is specified that SSO can be achieved by saving the user email address or the user name in the session variable lcUser, in the code however, only the user email address was accepted. This has been corrected, either email address or user name will be accepted.
• The setting to select to show the event owner in front of the event title has been moved from the section "Events" to the section "Views".

Bug fixes
• When upgrading from v4.6 the row "symbol" in the categories table was not copied, so after the upgrade symbols specified for certain categories in V4.6 were lost.
• Users with manager rights were not able to chose the "to be approved" list from the side menu (hamburger button) and event owners could still edit events that already had been approved, which should not be possible.
• When hovering an event in a narrow window or on a narrow screen (< 500px), the hover box with event details was not displayed at the correct location and was too wide.
• When on the Settings page, under Views, "Show images in month view" is not checked, then in the hover box with event details, thumbnails are shown next to each other. However, if "Show images in month view" has been checked, in the day cells in Month view the images are shown under each other.
• When on the admin's Settings page the logging of visitors data has been enabled, in the left lower corner of the calendar a hit counter is displayed. When a user has at least manager rights this counter becomes a hyper-link to the visitors data details. However, due to direct file access restrictions, the hyper link was blocked. When revisiting the unauthorized direct browser access of files and folders, this has been solved.
• In the Event window the "Edited" date/time and name were not updated when the event repetition was changed or when the Save (without close) button was clicked.
• When on the categories page a fixed event duration was selected with an event duration of 0 hours and 0 minutes, then the events in this category were shown in the various views with an identical start and end time.
• An error in the regex ($rxEML) to find email addresses in the event description fields, caused email addresses without dot to be accepted.
• The text color of admin page titles on the navigation bar and the hit counter and RSS feeds link on the footer bar was not set properly, making it hard to see on a dark navigation and footer bar background.
• When editing one occurrence of a repeating or multi-day event and deleting an attachment from the event, resulted in the attachment file to be deleted from the "attachment" folder, leaving the remaining events of the series without attachment. This has been solved by never deleting the attachment files from the attachment folder.
• In the "validGets" function, there was an error in the regex to validate the GET variable "cal".
• The RSS feeds were not working due to a call to a name change of the toolbox.php function to validate possible GET variables.
• Uploaded attachment or thumbnail files with spaces in the file name caused problems when using these files. Solved by replacing all spaces in file names by underscore characters during the upload process.
• Thumbnails in the event description fields were not shown in (reminder) email messages. The reason was that the URI to the thumbnails folder was used, instead of the URL.
• When specifying a recurring event every xth weekday of a specific month, this resulted in every xth weekday of "each month". This problem was introduced when enhancing the overlap check to include recurring events.
• When uploading an iCal file on the admin's iCal File Import page with the Timezone adjustment check box checked, for events with an end time this resulted in a call to an undefined function 'strotime' (typo).
• When in the uploaded iCal file no events were found occurring as of the specified date, this resulted in PHP errors.
• The printNice function did not work. (querySelectorAll does not return an array, but a NodeList).
• There was a backslash character displayed just under the text Manage Thumbnails in the left upper corner.