============================
= LuxCal Development Notes =
============================

Change log - version 3.2.0:
==========================
1.  header1.php, headeri.php, headere.php, headerh.php, toolbox.js, css.php and 
    various other .php files: The log-in window has been replaced by a log-in 
		page, which makes logging in on portable devices with a small screen easier.
2.  wbtools.php, upgradexxx.php, settings.php, toolbox.php, all files showing 
    event data: Two optional event fields have been added which can be activated 
    on the admin's Settings page. If activated, the fields will be added as a 
    free format text field in the Event form and in all calendar views and 
    pages. For each field the admin can specify a name which, if specified, will 
    be displayed in front of the corresponding field.
3.  settings.php, toolbox.php, various_pages.php: On the admin's Settings page, 
    the admin can now specify which of the following event fields are in use and 
    in which order they are displayed: venue, category, description, extra field 
    1, extra field 2, notify data (if email notification has been selected) and 
    the date and time the event was added and edited, including the user who 
    added / edited the event.
4.  settings.php, lcmini.php, lcsbar.php: On the admin's Settings page, the 
    admin can now specify which event fields should be shown in the hover box 
    with event details on the normal calendar pages, in the mini calendar and in 
    the stand-alone sidebar respectively.
5.  headera.php, users.php, categories.php: Users with manager rights are now 
    able to manage event categories and user accounts. However, they cannot 
    delete users with admin rights and cannot assign admin rights to users.
6.  various.php: show event details on the admin's Settings page can now also be 
    set to "logged-in users".
7.  headerx.php, ui-{lang}.php: ISO 639-1 language code added to the ui language 
    file. This ISO language code is used to set the language in the <HTML>-tag 
    in the page header. This is used by search engines.
8.  search.php, headera.php, ui-{lang}.php: For the admin pages and the Search 
    page the "Go to calendar" button has moved to the navigation bar, which is 
    more logical.
9.  event.php, settings.php, ai-{lang}.php, wbtools.php: New admin setting to 
    disable/enable/enable-for-manager the Delete button in the Event overlay.
10.  various.php: The 'added' and 'last modified' dates have been extended with 
    the time. The database columns have changed from DATE to DATETIME.
11. database.php, ai-{lang}.php: A restore function has been added to the 
    admin's database page. 
12. month.php, settings.php: When the admin selects "0" rows for Month view, 
    exactly one month will be shown with the leading and trailing dates blank. 
    When the admin selects "1" rows for Month view, the leading and trailing 
    dates of the month will not be blank and show events when present.
13. upcoming.php, dloader.php, ui-{lang}.php: A download button has been added 
    to the Upcoming Events view, which, when selected, will download a text file 
    with the currently displayed upcoming events. This text file can be used to 
    cut and paste event data.
14. index.php, users.php, ai-{lang}.php: For identified (logged in) users, the 
    last used calendar configuration (cP, cU, cC and cL) will be saved for the  
    duration of the "'Remember me' cookie expiry days" set by the admin, and 
    will be restored when the user revisits the calendar at a later stage. 

15. dloader.php: Check on input parameter (file name) more strict to avoid abuse
    via directory traversal sequences. Vulnerability problem.
16. toolbox.php: Because tablets have a sufficiently large screen, they have 
    been excluded from the isMobile() function and consequently will display the 
    calendar with the full header and thus all navigation bar functions.
17. a-{lang}.php: Warning added to the import CSV and import ICS pages to limit 
    the number of imported events to 100 at a time. More events can cause PHP 
    problems.
18. toolbox.php: Regex for parsing the calendar URL improved, to allow for URLs 
    with special characters and formats like 'localhost' and ip addresses.
19. users.php, login.php: To allow for utf-8 characters in the user name, the 
    u-modifier has been added to regex parsing the user name.
		
20. headerx.php: IE6 specific tag <meta http-equiv="imagetoolbar" content="no"> 
    removed from the headers. IE6 is dead.
21. dw_functions.php: When in Week view and Day view the first row (All day) is 
    clicked, then now the Event window will open with "All day" checked. In the 
    past the times were set to 0:00 and 0:30, which was wrong.
22. dw_functions.php, css.php: To avoid event titles to disappear, the titles in 
    Week and Day view are set to "no-wrap" for events with a height less than 21 
    pixels.
23. toolbox.php, smtptest.php: "From" removed from SMTP header to avoid multiple 
    From headers. Multiple From headers are not permitted by RFC2822.
24. month.php: In Month view the day and month in the first day cell have no 
    blue background anymore. The blue background is used consistently only for 
    the first day of the months.
25. header1.php: For privacy reasons the user filter menu in the Option Panel 
    will never be visible to the 'public user'.
26. dw_functions.php, event.php: In Week and Day view multi-day events without 
    start and end time (so All Day) are now shown on the first row (All Day) of  
    the calendar. For multi-day events the start time can be left blank, which 
    will then default to 0:00.
27. toolbox.php: Problem with email headers solved. Too many quotes.
28. sendchg.php: Undefined variable bug (using $ax instead of $xx) solved.
29. expical.php: Backward history for automatic ical export function changed 
    from -5 years to -1 week as specified in the LuxCal installation guide.
30. expical.php, exportICS.php: The following problems are fixed:
    1) When folding lines of text for the export file, following the CRLF LuxCal 
    the TAB was used as white space and has now been replaced by the SPACE 
    character. Although a TAB is valid, some calendars don't like it.
    2) In the RRULE, the UNTIL date/time format was wrong and has been corrected 
		(e.g. 20130718T235900).
31. lcalcron.php, sendchg.php, expical.php, exportICS.php, notify.php, login.php 
    event.php, toolbox.php: In file names and email subject fields, which are 
    based on the calendar title, diacritics and invalid characters are removed.
32. search.php: Problem in check box handling function calls with escaped single 
    quotes solved. The single quotes didn't need escaping.
33  sndchg.php: Typo on line 54. $ax => $xx.
34. exportICS.php: problems solved with multi-byte unicode characters in the UID 
    and description fields.
35. toolbox.php: Bug in makeD() function solved (2x $wkDay).
36. toolbox.js: To make the hover-box position on the stand-alone side bar 
    independent of the parent page scrolling, in the pop() functions "clientX/Y 
    has been replaced by pageX/Y.
37. exportICS.php, toolbox.php: The .ics file was created, but didn't download 
    when there were special characters (single quote, double quote, etc.) in the 
    calendar name.
38. toolbox.js: The print function has been improved. After printing a page the 
    page sometimes didn't fully revert back to the original layout.
39. eventform1.php, eventreport.php: Print button added to the Event window.
40. header1.php: Upco List button symbol replaced. The square caused the other 
    buttons on the navigation bar to be out of line in Firefox.
41. settings.php, ai-{lang}.php: The calendar version number is displayed on the 
    admin's Settings page under General.
42, database.php: When creating a back of the database, per table the number of 
    backed up records is displayed.
43. login.php, ai-{lang}.php: Log in details added to 'send new password' email 
    message.
44. toolbox.js, year.php, month.php, dw_functions.php, settings.php, lcmini.php 
    lcsbar.php, eventform1.php: Pop onmouseout integrated in the pop() function. 
    Code simplified: 'onmouseout="pop()"' in all views redundant and removed.
45. toolbox.php: Vulnerability issue solved when validating the index.php GET 
    variables 'current page' (cP) and 'current categories' (cC).
46. login.php: On the log-in page, the state of the 'Remember me' check box 
    (checked or not checked) was not properly kept.

As of version 3.2.1:
===================
1.  index.php, login.php, toolbox.php, settings.php, ai-{lang}.php: The way in
    which the user session data (Option Panel settings) is remembered has been 
    simplified. For each calendar the session data is saved in the database, 
    which makes the cookie with Option Panel settings redundant.
    Via a new setting on the admin's Settings page, the admin can (de)activate 
    the restoring of the user session when the user revisits the calendar at a 
    later stage.
2.  index.php: Log in and Single Sign On (SSO) instability solved.
3.  index.php: Problem solved that starting a non-existing calendar resulted in 
    an sql error.
4.  search.php: On the page where a search is defined, some labels were set for 
    wrong fields.
5.  index.php, upgradexxx.php: Check on PHP version removed from index.php and 
    added to upgradexxx.php. No need to check this over and over again.
6.  upcoming.php: In the text download version of the upcoming events a <br> was 
    wrongly added to the end of the fields.
7.  importCSV.php: When previewing the events to be imported, due to an HTML 
    problem erroneous fields were not highlighted.
8.  importCSV.php, importICS.php: Bug with the two new custom fields solved. The 
    two fields were not taken into account when adding events to the events 
    table.
9.  lcmini.php: Due to a bug, the event time(s) and title were missing at the 
    top of the hover box.
10. eventform1.php: When selecting the Print button in the Event window, the 
    "Help" hyperlinks were printed as well. 
11. upgrade321.php: At the start of the upgrade process the possible cookie 
    LCALcid is deleted to avoid interference with earlier installations.
12. eventform1.php: If on the admin's Settings page in the event template the 
    event category is not present, then the category will not be displayed, but 
    is still needed and should be entered when adding / editing events.
13. index.php: Because in PHP <5.4 magic quotes are on, the quotes in serialized 
    data in cookies were escaped and had to be removed again when using the 
    cookie data. This caused a mySQL error (unknown calendar) on PHP <5.4 
    systems.
14. notify.php: Wrong assignment of $evtText (which didn't cause any problem)
    fixed.
15. notify.php, sendchg.php: For private events no notification emails were send 
    and private events were ignored in the periodic admin report with changes. 

As of version 3.2.2:
===================
1.  index.php: SSO wasn't working correctly because the session_name was not set 
    to the default "PHPSESSID".
2.  notify.php: Reminders for multi-day events will only be sent the first day. 
    One for the specified number of days before the first day and one on the 
    first day. Rather than two events for each day, which was too many.
3.  ai-romanian.php, ug-romanian.php, ui-romanian.php: Romanian language pack 
    updated by Laurentiu.
4.  year.php, month.php, week.php, day.php, changes.php: Mobile devices with a 
    limited screen size were not properly handled.
5.  importICS.php, importCSV.php: When importing events, the time part of the 
    date and time added and date and time last modified was not added to the 
    database fields.
6.  toolbox.php: The regex to test the calendar URL has been refined to accept 
    'localhost' followed by one or more sub-folders.
7.  ai-danish.php, ug-danish.php, ui-danish.php: Danish language pack updated / 
    completed by Finn.
8.  settings.php, eventform1.php, all files using the makeE function: There are 
    now three separate event templates, which can be set on the admin's Settings 
    page: One general template for most of the pages, one for the Upcoming 
    events page and one for the hover box with event details in the various 
    views (year, month, week, day, upcoming). The event edit form in the 
    Events window shows all fields which are part of at least one of the 
    templates.
9.  upcoming.php: Now that a dedicated event template has been added to the 
    admin's Settings page for the Upcoming events view, a hover box has been 
    added to the Upcoming events view. If the hover box template doesn't contain 
    additional fields w.r.t. the fields in the Upcoming event template, the 
    hover box will be disabled.
10. settings.php, year.php, month.php, dw_functins.php, upcoming.php, 
    ai-{lang}.php, toolsxx.php: The hover box with event details can now be 
    enabled / disabled for each individual view.
11. month.php: Display of three letter month name in day cells not working when 
    'Weeks to show in Month view' set to 0 or 1.
12. retrieve2.php: Undefined variable '$row['pri']' resolved and editing events 
    from changes view didn't work.
13. changes.php: Undefined variable '$eBoxStyle' resolved.
