Topic: LuxCal 5.1.0 - MySQL and SQLite - released 1 Dec. 2020

Highlights

This new LuxCal version 5.1.0 includes interesting new features, improved technical issues and bug-fixes.
Most important new features / improvements:
• No more "PHP session expired" messages for view-only calendar pages, so all pages without forms with input fields.
• New "rolling" events. Once the start date of these events has passed, it will keep on "rolling" to the current day, until the user deselects "rolling". When a reminder has been set for a rolling event, a new reminder will be sent each day the event rolls to a next day.
• In month view the full-width event title line (from the left to the right margin of the day cell) can now be clicked to open the event report or edit window and can be hovered to view the pop-up box with event details.
• Event sub-categories are now more flexible and not limited anymore to a maximum of four. In addition sub-categories can be copied from other event categories.

This new release has been tested again with the help of John from Denmark. Thank you John, well done!
The Dutch and German language files have been thoroughly reviewed, corrected and completed by Piotr in Germany. Thank you Piotr!

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

New features/Improvements
• Calendar pages not containing forms that can affect the database content will not time out anymore when a PHP session expires. This means that the calendar can stay open and unused for long periods of time without "PHP session expired" messages. Only pages with forms that can affect the database content will time out when the user does not submit the form within the expiry time of the PHP session (24 minutes).
• When the user does not submit the form in the Add/Edit Event window in time and the PHP session expires, to avoid the loading of the calendar in the Add/Edit Event window, together with the "PHP session expired" message just a "Close" button is displayed, instead of a "Restart" button.
• In the Add/Edit Event window, the "Set Repetition" overlay has a new option "Rolling". A rolling event is an event that, once the start date has passed, will always "roll" to the current day. When a reminder has been set for a rolling event, a new reminder will be sent each day the event rolls to a next day. When the user deselects "Rolling", the event will stop rolling and remain fixed at the current day. Rolling events will help users who have a tendency to postpone their tasks.
• The way event sub-categories are stored in the calendar database has been made more flexible. The maximum number of sub-categories, which was four in the last calendar version, is now flexible and can be selected when editing a category. It is now also possible to copy all sub-categories of one category to an other category. Sub-categories present in previous LuxCal versions, will be automatically converted and preserved during the upgrade process to LuxCal V5.1.0.
• In month view the full-width event title line (from the left to the right margin of the day cell) is a hyper-link which can be clicked to open the event report window or the edit event window and can be hovered to view the pop-up box with event details. In previous versions only the event title text was a hyper-link.
• When on the Settings page in the "Events layout" template the extra fields were included and contained an image, the image would be shown on the calendar, even if on the Settings page "Show images in month view" was disabled. If "Show images in month view" was enabled, the image would be shown twice. This has been solved by removing images in the event title.
• The default number of days to search back and the default number of days to search ahead, which used to be fixed 365 days respectively, can now be specified on the admin's Settings page.
• On the User profile page, in the Change my data form a "Done" button has been added to return to the calendar page after the user data has been changed.
• On the Edit User Groups page in the Edit User Group form the interaction between the View and Add event categories check boxes has been improved. The (un)checking of the Add check boxes have been made subordinate to the (un)checking of the View check boxes.
• The log-in box on the Log In page has been made slightly narrower to make it also fit on a mobile phone in portrait position.
• A script, called cron.php, has been added to the !luxcal-toolbox folder. When multiple calendars have been installed, this script can be used to start multiple lcalcron.php scripts, using only one cron job. An explanation is given in the readme_cron.txt file.
• Several small stand-alone tools have been added to the !luxcal-toolbox folder in the LuxCal zip-file. These tools can be used to get information about your server and the PHP installation on your server.
• On the settings page, in the General section, the "Link to parent page" can now, besides a URL, also be a path relative to the calendar root folder.

Technical issues
• The token used to validate user inputs is now only used for forms. The token which was stored in a cookie (LXtkn) has moved as a hidden input to each form that directly affects the database. In combination with item number 2 hereafter this means that only pages with these forms will time out when the submission does not take place within the expiry time of the PHP session (24 minutes). Surfing the calendar pages which contain no forms affecting the db will not depend on PHP sessions and will therefore not time out when the PHP session expires.
• The last user selections (cP, cC, cU, cG and cD) were saved in a PHP session variable and, if on the Settings page Restore last user selections was selected, also in a cookie. Storing variables in two places is undesirable and therefore they are now always and only stored in a cookie. At the initial start of the calendar these values will be used if on the settings page Restore last user selections has been selected.
• The user rights (privs) were stores in a PHP session variable and used by the dloader. To reduce the dependency on PHP session variables, the dloader is now getting the user privileges from the database.
• To avoid duplication of code the code to produce the Side Panel in month, week and day view has moved to a the new file vfunctions.php. The dw_functions have also moved to this new file.
• Like for the calendar's month, week and day view, now also for the the calendar sidebar the event layout can be specified via a template with keys.
• In the alert.php file the HTML lang tag is set to the language corresponding to the ISOCODE in the active ui-{lang}.php file.
• The regex to extract side panel info messages from the file info.txt has improved, so that only messages are extracted where there are no other characters but spaces in front of the ~ (tilde) character of the month number.
• On the Settings page PHP info hyper-link replaced by a button.
• The code to submit the event edit form when a new category is selected has changed from onChange="document.forms['event'].submit();" to onChange="this.form.submit();". Code simplification.
• When in the Add/Edit Event window a category is selected for which a repetition has been specified, the "Change repetition" button is suppressed. Category repetitions always overwrite.
• In the previous version, when in the event layout template, between two separators one #-parameter resulted in an empty string, the whole section was omitted. This has changed: now the whole section is omitted when ALL #-parameters between two separators result in an empty string.
• Since many ISPs only accept PHP mails being sent from an email address hosted on the same server as the calendar, the "From" field of all emails will always be the calendar email address. When on the Settings page, in the section Periodic Functions the "Add 'Reply To' field" has been checked, emails will contain a 'Reply to" field with the event owner's email address.
• Since not all ISPs accept PHP mails with a blank 'To' field the 'To' field is now set to the calendar email address. In addition, to make the source code of emails better readable, after each </tr> and <br> tag, a crlf (\r\n) has been added.
• The link rel="canonical" has been removed from the page header because is was not useful.
• Rather than passing the current calendar ID in the calendar's head section via a parameter in the style sheet URL, the style sheet is now getting the calendar ID directly from the LXCcid cookie.
• The URL for valid time zones updated to https://www.php.net/manual/en/timezones.php.
• For a new installation of the calendar the initial language for the administrator is set to English. In the previous calendar version it was not set and resulted in Bulgarian (first in the list).
• To prevent session fixation attacks, the PHP session ID is regenerated each time the index.php file runs.

Bug fixes
• Due to an erroneous style ("body {overflow:hidden;}") the calendar pages can not be scrolled on a mobile device. Solved.
• In the Add / Edit Event window, when there are two consecutive separator characters (;;) in the Send mail's "To" field, a PHP notification message was shown. Solved.
• For events in Week and Day view, falling outside the active day hours, the event layout template from the Settings page was not used and always resulted in: start time followed by event title.
• When the Help window overflowed and the content was scrolled up, the overflow part did not have the correct background color.
• There was an error in the backupDatabase function. The PRIMARY KEY (`ID`) directive at the end of the CREATE TABLE commands was mistaken for a table field by the regex. When trying to import the .sql backup file,  this resulted in an SQL error.

Re: LuxCal 5.1.0 - MySQL and SQLite - released 1 Dec. 2020

Message for Stefan and whoever is interested:

When we released the previous LuxCal version, Stefan asked if there is a roadmap for the LuxCal calendar and if we can shed some light on our plans for the future. At that time I forgot to answer, for which I'm very sorry.
I want to make up for that now.

The very first LuxCal version was released about 12 years ago and since then many new versions with hundreds of improvements were released. LuxCal evolved from a rather basic web calendar to a very flexible high quality web calendar tool. During all these years enthusiastic LuxCal users helped us to improve the calendar with each new version, always paying maximum attention to flexibility and user-friendliness.

After the release of version 5.1.0, there are no plans for any further major changes. We will however continue to maintain the LuxCal calendar, so that the calendar software will stay up-to-date with the latest standards, i.e HTML, PHP,  JavaScript and CSS versions and standards.

We will continue our support to individual LuxCal users, by offering help when problems are encountered and by helping to implement minor specific changes.
If during these support activities, users make suggestions, or ask for changes, which are of general interest, we will not hesitate to implement these changes in a new LuxCal calendar version.

Many of the 21 language files, specifying the calendar's user interface texts, are not up-to-date anymore with the latest calendar version. They contain all texts, but not all texts have been translated. So if you have a spare moment please update the language files of your language and send us a copy, so that we can include the updated files in a new calendar version.

Roel

Re: LuxCal 5.1.0 - MySQL and SQLite - released 1 Dec. 2020

More Sub-Categories !!

Perfect, it was the main point for optimizing my settings !!

Very good job.

I'm waiting for the kick-Off !!

4 (edited by cousinhub 2020-11-28 12:15:09)

Re: LuxCal 5.1.0 - MySQL and SQLite - released 1 Dec. 2020

Of course we'll check translations Roel, just have to keep it in mind ... Thx for all and happy to check soon.
Rolling will be so useful to me ...
I must now check the update method for 5.1.0 !

Re: LuxCal 5.1.0 - MySQL and SQLite - released 1 Dec. 2020

Many thanks from me too Roel!
Good to hear, that it will be maintained to stay up to date.
Knowing that there will be no major changes for me this is a good point to switch to the latest version ( still on 4.7.1 wink) and include my own modifications to the code which is needed for our calendar.
If it isn't allready done I will have a look at the german translation!

Thanks again!

   Stefan

Re: LuxCal 5.1.0 - MySQL and SQLite - released 1 Dec. 2020

Hi Stefan,

The German language files have been reviewed, corrected and completed just before the release of V5.1.0 and are included in the new version. The only texts that have not been reviewed and updated are the explanations when hovering the items on the settings page (in the ai-deutsch.php file). So when you have a spare moment . . .

Roel

Re: LuxCal 5.1.0 - MySQL and SQLite - released 1 Dec. 2020

Good job Roel !
Instant update, no issue, new  functions welcome, many thanks !

Re: LuxCal 5.1.0 - MySQL and SQLite - released 1 Dec. 2020

Hello,
When the new version will be available on Softaculous platform for cpanel web hosting?

Re: LuxCal 5.1.0 - MySQL and SQLite - released 1 Dec. 2020

Hello Olivier,

Softaculous contacted me on 2 December 2020 (directly after the new version was released) to tell me that they were upgrading LuxCal to version 5.1.0M.
I just checked on our server (web host: AltusHost) in cPanel and saw that in the Softaculous Apps Installer the LuxCal calendar has already been upgraded to V5.1.0.

I don't what web host you are using, but I expect that LuxCal v5.1.0M will be available very soon. If not, I can help you to upgrade smile

Roel

10 (edited by olivier 2020-12-10 21:59:09)

Re: LuxCal 5.1.0 - MySQL and SQLite - released 1 Dec. 2020

Hello Roel,

On my Cpanel, the update appears today !!! smile

I've made the update on a clone version, looks good!

I just wait for my boss answer to add the new subcategories.

Question:
I have on the version 4.9 the subcat #4 with "public holiday" if I want to change in a new position (like #7) in 5.1, on the calendar the oldest public holidays move or stay with the sub #4 and use the new name like "hill"?
I hope I'm clear smile

Regards

Re: LuxCal 5.1.0 - MySQL and SQLite - released 1 Dec. 2020

Hello Olivier,

Changing existing sub categories to a new position will NOT change the position in the events in the calendar. So this should be avoided.
For example: If you change "public holiday" from #4 to #7 and #4 will now become "hill", then the already existing public holidays will become "hill" sad

Roel

12 (edited by stefan 2021-01-05 23:42:14)

Re: LuxCal 5.1.0 - MySQL and SQLite - released 1 Dec. 2020

Roel wrote:

Hi Stefan,

The German language files have been reviewed, corrected and completed just before the release of V5.1.0 and are included in the new version. The only texts that have not been reviewed and updated are the explanations when hovering the items on the settings page (in the ai-deutsch.php file). So when you have a spare moment . . .

Roel

Hi Roel,

it took longer than expected - a lot of rows to read an translate wink
How can I send you the translated file? Or was someone faster than me ?

Btw - is it correct, that some "Help" files are still not translated?

Greetings and still "Happy new year"
   Stefan

Re: LuxCal 5.1.0 - MySQL and SQLite - released 1 Dec. 2020

Happy New Year to you too Stefan!

You can send me the files via the email address on the Contact Us page.

I'm only maintaining the three languages files (ui, ug and ai) in the "lang" folder. The help files per calendar page in the "help" folder can be tailored by each user to his / her specific needs.

Greetings,
Roel