Topic: LuxCal 4.7.4 - MySQL and SQLite - released 12 January 2019

Highlights

This new LuxCal version 4.7.4 contains a number of important improvements and bug fixes.
Most important new features / improvements:
• New "address button", showing an address from the venue field in a map viewer (e.g. Google Maps).
• URL-links, Mailto-links and Address buttons (see below) can now be clicked in the hover box, without opening the Event Report window.
• New "display" for narrow-width displays and all existing "displays" have been updated. Displays can now be viewed and downloaded on the LuxSoft website.
Hereafter you will find a full summary of all changes since LuxCal version 4.7.3.

As usual this new release has been tested again with the help of John from Denmark. Thank you John, you've done a great job!

New features/Improvements
• In Month view the position of the hover boxes with additional event details is now fixed just over the right side of the event title and the boxes can be hovered with the cursor. An important advantage is that URL-links, Mailto-links and Address buttons (see below) can now be clicked in the hover box, without opening the Event Report window. Since URL-links and Mailto-links can now easily be selected in the hover box, these links have been removed from the day cells, which saves precious space in the day cells.
• If in the venue field the address is placed between exclamation marks (!), in the calendar views the address will be replaced by an "Address button". When hovering the Address button, the address will be shown and when clicking the button, a map viewer window will open, showing the specified address. On the Settings page the administrator can disable/enable this feature and can specify the map viewer to be used. The default map viewer is Google Maps. The exclamation marks will not be visible to the calendar visitors.
• In day and week view on a device with a small display it is now possible to open the edit event window by clicking the event title.
• The display of thumbnails in Month view has changed as follows: When on the Settings page "Show images in month view" is enabled, thumbnails will be shown in the day cells and when disabled, thumbnails will be shown in the on-mouse-over boxes instead. So thumbnails will not be displayed in both at the same time.
• In the previous calendar versions, the Search page can only be opened via the side menu; because this function is often used, a magnifying glass has been added to the right side of the navigation bar.
• When an event that needs approval is approved by a user with manager rights, the event owner will now receive a notification by email.
• On the Users page, when adding a new user, the default access rights will be the rights set for self-registrations.
• All 'displays' (upcoming events listings) have been upgraded and are more flexible with more settings. Displays will not be included in the zip-file of new calendar versions anymore. Instead they can be viewed and downloaded directly on the LuxCal Displays page of the LuxSoft website.

Technical issues
• When used on a small-screen mobile device, the header of the page (date range) will be shown without week number, so that the header will fit on one line.
• Error messages related to validating URL GET and POST parameters are now presented on a special 'calendar-style' page.
• The logic to deal with an expired PHP session has been completely revised. If the calendar is left open in the browser without using it, the user will get a warning alert after 25 minutes of calendar inactivity. In case of more than 30 minutes of calendar inactivity, the PHP session will expire and when starting to use the calendar again the user will get a "PHP session expired" alert page and will be asked to restart the calendar.
• The protection against spoofed form submission, cross-site scripting and other vulnerabilities has been improved.
• The separate PHP session to store the current calendar ID has been abandoned. The implementation was unnecessary complex. The scrips detach.php and checkevt.php do not need a PHP session at all anymore. Code simplification.
• The way to find if the user is using a small display or window has been simplified and is now 100% accurate. This opens the way to make the calendar more responsive.
• To guarantee identical behavior of the delete functions which ask user confirmation, the three separate functions have been combined in one delConfirm function.
• The 'reload' function has been combined with the 'done' function, which made the reload function redundant. Code simplification.
• On the Event page to select 'edit the series or this occurrence', the start of the form was at the wrong point, which conflicted with the display of the Google map if the address was put in between exclamation marks.
• URL and image regexes and the processing to add URL-links and images to the event description fields improved. No extra spaces are added anymore in the description fields.
• Changed the JavaScript code to using 'strict' mode, which forces the use of variable declarations and therefore results in better code quality.
• The JavaScript code for the drag functions moved from the dw-function.php file to the toolbox.js file. The code has been improved and is now running in strict mode too.
• The validation regex for Send notification of calendar changes on the settings page, under General, did not allow for recipients lists between square brackets. Solved.
• On the Event page to select 'edit the series or this occurrence', the background color of the event title continued until the end of the line, whilst it should end at the end of the title text.
• More logic has been added to the check boxes in the Edit User Group form. When a user can add events in a certain category, he can automatically view this category.

Bug fixes
• Removed the default function parameter in the 'pop' function. Default function parameters are not supported by Internet Explorer (sigh) and older versions of Safari and cause errors.
• In the date picker, the text color style in the header with week days (Mo, Tu, etc.) was not set properly, resulting in illegible week days when on the User Interface Styling page dark backgrounds have been selected for bars, headers and lines.
• In year view events represented by a symbol (specified in the event category) were hiding (overlapping) events represented by a mini square.
• When a user was part of a user group for which posting repeating event was disabled, the Event window layout was corrupted.
• When an event needs approval, the user could already send an email/sms "now", before the event was approved. This should not be possible and has been solved by not displaying the "notify now" check box as long as the event has not been approved.
• If on the Settings page, under Views, "Weeks to show in Month view" is set to 1 (display one full month) and the "First day of the week" is set to 1 (Monday), then when the first day of the month is Sunday, the first week, with the first day of the month on Sunday, was not shown.
• When specifying the repeat parameters in the Event window, an invalid end date format could result in a PHP error message.
• An invalid source date could corrupt the display of the date picker.
• Due to an error in the upgrade function when upgrading from V4.5 to a greater version the category symbol (if specified) and the sub-category ID (if a sub-category was specified) were not copied from the v4.5.2 database to the upgraded database.

Roel