[============================]
[   Mrbs NEWS Legend:        ]
[                            ]
[ + Added feature            ]
[ * Improved/changed feature ]
[ - Bug fixed (we hope)      ]
[============================]

-------------------------------------------------------------------------------
Version 1.12.1 (Fri 14th November 2025):

[-] Fix TypeError causing "DataTables warning: table id=pending_table - Incorrect column count"
 error.  See GitHub Issue #3930.

[*] Provide four different language tokens for "Today" to allow sites the option of
 having different strings in the day, week, month and year views.  See GitHub Issue #3931.


-------------------------------------------------------------------------------
Version 1.12.0 (Wed 12th November 2025):

[-] Fix TypeError when using $max_booking_date.  See GitHub Issue #3772.

[-] Fix TypeError when using $min_booking_date.  See GitHub Issue #3773.

[*] Update lang.pl. Add $vocab["today"]

[*] Add full description to title attribute in month view.  See GitHub Issue #3780.

[*] Upgrade to PHPMailer 6.9.3.

[*] Upgrade QRCode to latest code from v5.0.x branch.

[*] Upgrade to jQuery 3.7.1 and jQuery Migrate 3.5.0.

[*] Upgrade to jQuery UI 1.14.1.

[-] Fix bug resulting in booking resizing not working.

[-] Fix problem when resizing a booking past the top of the table.

[-] Fix problem when resizing a booking that has a portion it of view at the bottom
 of the table.

[-] Fix problem when resizing a booking that has a portion it out of view at the left or
 right of the table.

[+] Add config setting to control auto-scrolling.  See GitHub Issue #3783.

[*] Change "message" to "System message" to make its purpose clearer.  See GitHub Issue
 #3784.

[*] Make admin pages have level $max_level rather than 2.  See GitHub Issue #3785.

[*] Improve the view after a booking has been saved so that the brief description is visible.

[-] Fix bug causing hidden days to be disabled in custom date fields.

[-] Fix bug causing the wrong timezone to be used for the "last updated" column in the
 users list if the server timezone differs from timezone of the default area.

[*] Standardise on no leading or trailing spaces for the output of the syntax_* methods.

[*] Improve error handling.  See GitHub Issue #3796.

[-] Fix TypeError.  See GitHub Issue #3797.

[*] Improve styling by adding a margin underneath the search results heading.

[*] German translation updated (#3800)

[-] Fix bug resulting in an unwanted '%' appearing in text when copying email addresses.

[*] Clarified documentation for configuring the database settings.  See GitHub Issue #3801.

[*] Make it easier to extend the AuthDb class by removing tests of the kind
 $auth['type'] == 'db'.  See GitHub Issue #3803.

[*] Add 'last_updated' key to get_entries_by_area() and get_entries_by_room().  See
 GitHub Issue #3791.

[-] Fix bug causing incorrect end time to be shown in reports when using periods.

[*] Upgrade to PHPIMAP 6.1.0.

[*] Improvements to database upgrade system.

[*] AuthCas: Change getLevel() method from private to protected to allow extension. 
 See GitHub Issue #3818.

[*] Enhance get_form_var() to allow arrays of bool, decimal, int or string.

[*] Improve error message when an invalid email address is given for
 $mail_settings['organizer'].  See GitHub Issue #3831.

[-] Fix TypeError when viewing a period after upgrade from MRBS 1.4.7.  See GitHub
 Issue #3832.

[*] Display username if the display name cannot be found.  See GitHub Issue #3835.

[-] Fix SQL truncate error when no value is given for a float custom field.

[+] Add support for float custom columns

[-] Fix bug preventing the "last login" column from being sorted if it contains null
 values.

[+] Add new config setting $default_duration_periods.  See GitHub Issue #3829.

[*] Remove hard-coded square brackets text.  See GitHub Issue #3843.

[+] Add the ability to set php.ini directives using the $ini_directives config variable.

[+] Add a configuration option to allow ordinary users to delete other users' registrations.

[*] Upgrade PHPMailer to Version 6.10.0 introducing full support for RFC 6531 SMTPUTF8,
 meaning that you are now free to use Unicode characters in email addresses, such as
 JøeÜser@example.com, and everywhere else, without any complicated encoding schemes. Using 
 this feature requires that you send through a mail server that advertises support for 
 SMTPUTF8.

[*] Added an emulation of mb_strlen(), for installations where 'mb' is not
 available.

[*] Large update to internationalisation/UTF8 support, including new MRBS classes
 and code.

[*] Replace the second and subsequent spaces in a consecutive sequence with non-breaking
 space characters to ensure that (a) they are rendered properlty in the select/datalist 
 element and (b) passed through to the form handler properly.  See GitHub Issue #3871

[*] Strip out any extra whitespace that the user may accidentally have entered in the
 area or room name.  See GitHub Issue #3871.

[*] Only show the major details for a registration event if the user has write access
 (to avoid cluttering the page with information that won't be of any use).

[*] Add a new exception class to allow differentiation between errors in the MRBS and
 external databases.

[*] Update timezone definitions.

[*] Expand error message when an invalid specifier is sent in the Accept-Language
 request header. See GitHub Issue #3888.

[+] Introduce new config setting $max_slots_per_year

[*] AuthWix: Remove use of curl_close() which is deprecated from PHP 8.5.

[*] Fix use of PDO::MYSQL_* constants, deprecated in PHP 8.5.

[*] Fix use of PDO::PGSQL_* constants, deprecated in PHP 8.5.

[*] Fix use of $http_response_header, deprecated in PHP 8.5.

[*] AuthCas: Fix use of curl_close(), deprecated in PHP 8.5.

[*] Add a check that the repeat end date is not before the start date.  See GitHub
 Issue #3905.

[*] Prevent the repeat end date datepicker from offering a date before the start date. 
 See GitHub Issue #3905.

[*] Replace url_get_contents() with GuzzleHttp.

[*] Change minimum required PHP version from 7.2.0 to 7.2.5 (needed for GuzzleHttp).

[*] Fix use of deprecated (by PHP 8.5) __wakeup() magic method.  (The deprecation messages
 can be triggered by going to index.php or admin.php, restarting the web server, then
 refreshing the page.)

[-] Fix TypeError when logging in with Joomla!  See GitHub Issue #3903.

[-] Fix TypeError with custom date.  See GitHub Issue #3907.

[-] Fix TypeError with custom decimal.  See GitHub Issue #3907.

[-] Fix uncaught exception SQL error when using custom fields of date or decimal type
 for which no input is given.  See GitHub Issue #3903.

[+] Add encryption of session data.  Useful now, but will be more useful when we come
 to store OAuth2 access and refresh tokens in session data.

[*] Fix "Using null as an array offset is deprecated" error.

[*] Upgrade to Mail version 1.10.12.

[*] Upgrade to PEAR version 1.10.16.

[*] Fix PHP 8.4 deprecation errors.

[*] Provide a parse_addresses() function that is more robust than PHPMailer::parseAddresses()
 which works best when the imap extension is installed. However the imap extension was removed
 from the PHP core in PHP 8.4.

[*] Upgrade to PHPMailer version 6.11.1

[*] Added a logging class, which allows logging to the browser window or email.
 Utilises Monolog and Psr/Log.

[*] Move error handling functions into a class.

[*] Use the same 'samesite' setting for the key cookie as the session cookie.

[*] Upgrade PHPMailer to Version 7.0.0 (no change except for version number!)

[+] Add duration, end time, and description (on hover) to the Bookings awaiting approval table
    Closes #3918

[-] Fix bug causing the Back button on the edit_entry page not to work when using a proxy.
 See GitHib Issue #3915.

[*] Improve Norwegian language translation.  See GitHub Issue #3922.

[-] Fix bug causing the DataTables language to be set to the best available language in
 the browser preferences, rather than the $override_locale, when the $override_locale is 
 set to 'en-XX', where 'XX' is anything other than 'GB', for example 'en-AU'.


-------------------------------------------------------------------------------
Version 1.11.6 (Wed 6th November 2024):

[*] Updated French translations.

[*] Move password checking into a separate method in order to simplify
 extending the class.  See GitHub Issue #3662.

[*] db_ext auth scheme updated to allow any password hashing algorithm that
 is supported by hash().

[*] Updated Spanish translations.

[-] Fix bug introduced in commit 15b1302e preventing "Copy email addresses"
 button working on the Report page.

[-] Fix bug causing the period to be reported incorrectly under certain
 circumstances

[-] Fix TypeError.  See GitHub Issue #3675.

[*] Added all locales to Docker image (#3673)

[*] Made clicking "Today" scroll to the current timeslot.

[*] Code updated to declare strict types and use type declarations in
 many places.

[-] Fix uncaught exception when editing a message and using PostgreSQL.  See
 GitHub Issue #3680.

[-] Check that we have a valid Joomla user.  See GitHub Issue #3682.

[*] Introduce a new config variable ($cookie_samesite_lax) allowing the
 session cookie SameSite attribute to be relaxed from "Strict" to "Lax".

[+] Add the ability to specify a set of days that cannot be used for making
 bookings of a certain type.

[*] Session token is no longer exposed in the URL, addressing a security
 concern.

[*] Updated to latest qrcode v5.0.x to fix PHP 8.4 deprecation notices.

[*] Update to latest source from settings container v2.x-php7.4 branch to fix
 PHP 8.4 deprecation notices

[*] Add requirement for mbstring extension to be loaded for QR code to work.

[-] Add a fix for a TypeError when $_SESSION['user'] somehow contains a zero.

[+] Added ability to export bookings as ICS format from search page.

[+] Add support for custom date fields in the entry table.  See GitHub Issue
 #3701.

[-] Remove multiple attribute from email field. A user can only have one
 email address.  See also GitHub Issue #3716.

[-] Add a workaround for a bug in Safari that prevents the value of an email
 input being shown when the multiple attribute is set.  See GitHub Issue
 #3716.

[+] Add the ability to allow specified HTML tags in the calendar message.
 See GitHub Issue #3718.

[*] Remove use of deprecated in PHP 8.4 ini_set setting of
 session.sid_bits_per_character. See
 https://wiki.php.net/rfc/deprecations_php_8_4#sessionsid_length_and_sessionsid_bits_per_character

[*] Highlight the column cell header in the all rooms view. See GitHub Issue
 #3720.

[-] Fix issue with the first row in the all rooms view being very high in
 Firefox.  See GitHub Issue #3726.  (Not quite sure what problem that CSS
 rule was trying to solve in the first place and why it's no longer
 necessary.)

[-] Fix bug resulting in an empty end slot selector in certain
 circumstances.  See GitHub Issue #3741.

[*] Update Catalan translation.  See GitHub Issues #3747 and #3748.

[*] Add Catalan site_faq.  See GitHub Issue #3748.

[*] Reduce get_bookings_in_series() to a single SQL query.

[+] Added implementation of AuthImapPhp using library code instead of the
 PHP imap extension which has been removed from PHP 8.4.

[-] Fix bug resulting in incorrect period durations in reports when areas
 have different numbers of periods.

[-] Fix potential bug resulting in incorrect period durations in reports
 when a booking spans a DST transition and areas have different numbers of
 periods.

[-] Fix bug that causes a booking to be deleted completely when editing a
 series and changing its repeat type to "none"

[-] Fix bug causing datepicker not to change dates when using Catalan
 translation.  See GitHub Issue #3752.

[-] Add missing escaping of text strings in some Javascript code.

[*] In MySQL DB class, set STRICT_TRANS_TABLES so that we can detect invalid
 values being inserted in the database.

[*] Upgrade to PHPMailer Version 6.9.2.

[-] Fix bug causing drag-select not to select the original cell when dragging
 up or left.

[-] Fix bug when booking is constrained to a single row or column.

[*] Add check for pdo_pgsql extension.

[*] Various improvements to drag booking changes.

[-] Fix bug causing placeholders not to be displayed for custom fields that
 are textareas.  See GitHub Issue #3763.

[+] Add buttons in the day view to go back/forward by a week.

[-] Fix bug when an admin user makes a booking and bookings are forced to be
 private.  See GitHub Issue #3770.

[*] Upgrade to latest version of phpCAS from the fork
 https://github.com/campbell-m/phpCAS, fixing deprecation notices running
 under PHP 8.4 (https://github.com/apereo/phpCAS is no longer maintained).

[*] Upgrade to latest version of PHPIMAP from the fork
 https://github.com/campbell-m/php-imap, fixing deprecation notices running
 under PHP 8.4 (https://github.com/Webklex/php-imap seems not to be
 maintained).

[*] Preserve scroll position after making a booking.


-------------------------------------------------------------------------------
Version 1.11.5 (Mon 22nd April 2024):

[-] Fix incorrect translation for Norwegian Bokmål in datepickers.  See GitHub Issues #3517.

[-] Fix bug causing user searches from the user name in the header not
 to start from the current date, as they did in MRBS 1.11.0.  See GitHub
 Issues #3514.

[-] Fix undefined variable warning when sending mail.

[*] Add localised sorting for first two columns in user table.

[+] Respect locale when sorting in data tables See GitHub Issues #3518.

[-] Fix bug preventing Auth::sortUsers() from working properly when
 using the Norwegian locale (and no doubt others) on Windows servers.

[-] Fix problem with Joomla authentication when the Joomla LDAP authentication plugin is
 enabled.  See GitHub Issues #3521.

[+] Add export of registrants (single entry only at the moment).

[+] Add import of registrants (single entry only at the moment).

[-] Fix Joomla >= 4.3.0 authentication properly.

[*] Various improvements for file uploads.

[-] Fix bug causing the search to start from the current time on the search start date
 rather than 00:00.  See GitHub Issue #3544.

[-] Fix authentication against Joomla Version 5. See GitHub Issue #3547.

[-] Fix bug when approving series.  See GitHub Issue #3549.

[*] Use the IntlCalendar extension if possible to find the first day of the week in the
 user's locale.  The week numbers in MRBS are based on the week number in the locale,
 which won't necessarily be the ISO week number.

[-] Fix bug causing times in emails to be in am/pm format not 24-hour.  See GitHub Issue #3550.

[*] Add the ability to override ICU values for week numbering - useful when the ICU
 library can't be updated.

[-] Fix missing table in grant for PostgreSQL, thanks to PR #3557 by 'raff4el'.

[*] SAML auth: Add an optional access control filter that requires users to be a member of
 a configurable group in order to access the calendar. Thanks to Jonathan Gapen.

[*] Made it easier to force MRBS to use strftime() instead of the intl extension. See
 GitHub Issue #3559.

[*] Add a class of 'today' to cell if it's the current day.  See GitHub Issue #3564.

[*] Set secure session cookie properties.  See GitHub Issue #3568.

[*] Increase the strength of the session id.

[-] Fix fatal error when saving a form with a protected date field that is null.

[*] Upgrade to PHPMailer Version 6.9.1.

[*] Upgrade to latest version of Mail_Mime package.

[*] Upgrade to latest version of PEAR.php.

[*] Upgrade to latest version of pear/File_Passwd.

[*] Move content ID generation into sending.

[+] Add support for the altervista.org database type.  See GitHub Issue #3579.

[*] Lots of updates to add strict typing.

[-] Fix bug converting a pattern into a strftime format when the pattern contains
 two consecutive tokens.  See GitHub Issue #3589.

[*] Update intl types and skeletons with latest patterns.

[-] Fix type error in week and month views.  See GitHub Issue #3591.

[-] Fix bug causing some fields to be duplicated on DataTables export (eg to Excel).

[*] Provide config variable for forcing the use of the IntlDateFormatter emulation.
 See GitHub Issue #3559.

[-]     Fix errors that are generated when the MySQL wait_timeout variable is less than
 the time needed for some operations, eg large reports retrieving user data from an external
 server, resulting in the MySQL connection being dropped before the operation finishes.
 Typical error messages are "SQLSTATE[HY000]: General error: 2006 MySQL server has gone
 away" and "Packets out of order. Expected 1 received 0. Packet size=145".

[-] Fix bug when running in debug mode on systems with PHP versions before 8.1.0.

[*] Extend the prevention of simultaneous bookings to include a config setting
 ($max_simultaneous_bookings) specifying the maximum number of simultaneous bookings
 allowed.  See GitHib Issue #3617.

[*] Updated French translation.

[*] Modify upgrade instructions to state that the new release should be uploaded to a
 new directory, rather than overwriting the existing directory.  See GitHub Issue #3623.

[+] Add a configuration setting to allow bookings direct from the week and month views
 for all rooms without first going via the day view.  See GitHub Issue #3629.

[-] Fix bug when making a booking that crosses a DST boundary in an area with a
 single period.  See GitHub Issue #3628.

[-] Fix problem when drag selecting rooms and some rooms aren't writable.  See GitHub
 Issue #3632.

[*] Use config file for admins if $auth['saml']['admin'] is not set.  See GitHub Issue
 #3431.

[-] Fix warning when view_entry.php can be accessed by unlogged-in users.  See GitHub
 Issue #3634.

[-] Fix fatal error when the auth type is WordPress and the mbstring extension is
 not enabled.

[*] Fix deprecation notice when running on PHP >= 8.2.

[*] Allow the session name to be set to the default. (Problems have been otherwise
 observed when running with some WordPress plugins, eg Participants Database Version
 2.5.7, which also use PHP sessions.)

[*] CAS sessions: Force authentication rather than giving an Access Denied message.
 See GitHub Issue #3645.


-------------------------------------------------------------------------------
Version 1.11.4 (Sun 24th September 2023):

[-] Fix problem with not being able to press the Import button on the Import form.
 See GitHub Issues #3466.

[-] Fix problem with not being able to authenticate against Wix.  (Wix has changed the
 names of the member properties.)

[-] Fix GitHub Issue #3468. Fatal error when no locales installed.

[*] Make it clear that policy limits apply per user.

[-] Fix bug resulting in bookings not being displayed in some circumstances on DST
 transition days when the start of the booking day occurs before the DST transition.

[*] Remove use of assert_options() which is deprecated in PHP 8.3.

[*] Created RFC5545 class.

[-] Fix bug causing resizable bookings not to work in the week view.

[*] Updated Brazilian Portuguese translation. Thanks to Bruno Calado. See GitHub Issues #3476.

[*] Repeat logic moved into a class.

[-] Fix incorrect minimum version for MariaDB.  See GitHub Issues #3481.

[*] Add mailto: link to booking creator in reports.

[+] Add button to copy email addresses to the clipboard in reports.  Useful for sending
 messages to those booked on a certain day or in a certain room.

[*] Make the instructions for multisite clearer.  See GitHub Issues #3483.

[*] Upgrade to jQuery Version 3.7.0.

[-] Fix problem with importing weekly repeats. See GitHub Issues #3485.

[-] Fix problem with importing weekly repeats when BYDAY is not specified. See also
 GitHub Issues #3485.

[-] Fix bug when importing MONTHLY events and an integer modifier for BYDAY is not
 present.

[*] Upgrade to latest version of DataTables.

[-] Fix bug in Copy Email Addresses button when there is no anchor.

[-] Updated SimpleSAML namespace separator to backslash.

[*] Add a 'required' attribute to the rep_interval field.

[*] Provide a default for rep_interval to prevent uncaught exceptions on post requests.

[*] Restrict ability to see email addresses in reports to admins, for privacy reasons.

[*] Disallow viewing of email addresses if the email field in the users table is
 private.

[*] Add mailto: links to registrants table.

[*] Add "Copy email addresses" button to registrants table.

[-] MRBS Docker container will now install the PHP intl extension and PHP 8.2.

[-] Fix problem with datepickers returning empty strings when Backspace or Delete is
 pressed.

[*] Upgraded to PHPMailer 6.8.1.

[-] Fix problem with getting ISO Date strings in timezones other than UTC.

[-] Fix problem with the wrong minicalendars being shown in the month view when you're
 at the end of the month (eg Aug 31) and the next month has fewer days than the current
 one.

[-] Reduce stream timeout.  See GitHub Issues #3497.

[-] Fix bug causing the EXDATE property to be ignored when importing events.

[-] Fix bug producing incorrect .ics files when exporting a series with a changed entry.

[-] Fix bug when importing a series with a changed entry.

[+] Add export and import of registration details (but not registrants at this stage).

[*] Handle invalid timezones on import.

[*] Internationalise bad timezone message.

[*] Throttle the Ajax requests to del_entries.php.

[*] Improve performance of bulk deletion.

[-] Fix bug causing repeated deletion of entries after a cancellation.

[*] Add some basic language versions of the DataTables language files which are copies
 of the main country specific version (eg fr.json is a copy of fr-FR.json).  See GitHub
 Issue #3502.

[-] Fix potential PHP deprecation notice.

[*] Initial shot at preventing users with bookings in the system from being deleted.

[-] Fix bug allowing private entry information to be displayed in the week (single
 room) view.  See GitHub Issues #3510.

[*] Add server-side checking of whether users can be deleted.

[+] Add a configuration option to prevent the deletion of users that appear in bookings.

[-] Fix problem with PDF landscape orientation not being respected on some clients.  See
 GitHub Issues #3512.

[-] Remove repeated colons in Norwegian translations.

[-] Fix bugs in use of $mincals_week_numbers and $view_week_number.  See GitHub Issues #3515.

[*] Only display week numbers in the mini-calendars if the week starts on a Monday, the start of the
 ISO week.


-------------------------------------------------------------------------------
Version 1.11.3 (Wed 12th July 2023):

[*] Some code improvements.

[-] Remove strict types declaration causing uncaught exceptions on some systems.


-------------------------------------------------------------------------------
Version 1.11.2 (Tue 11th July 2023):

[*] Various code tidying/improvements.

[-] Fix SF Bugs #546.

[*] Avoid hidden days when navigating between months.

[-] Fixed potential bug in debug output.

[-] Fixed reported XSS vulnerability in mrbsCheckPolicy() - only exploitable by an administrator
 with permissions to name rooms. Thanks to Nguyễn Hữu Cường for the report. (SF Bugs #547)

-------------------------------------------------------------------------------
Version 1.11.1 (Mon 3rd July 2023):

[*] Added type declarations across the codebase.

[-] Bug fixes for running kiosk mode with periods.  See SF Support Requests #2671.

[-] Fixes kiosk mode when using Joomla.  See SF Support Requests #2671.

[-] Fixes bug in email notifications when switching a series to a monthly repeat from another type.  See SF Bugs #533.

[-] Fixes uncaught exception when an invalid date is given.  Now today's date is used.  See GitHub Issues #66.

[*] Allows no from date to be used, resulting in all search results to be returned.  See GitHub Issues #66.

[*] Fixes problem with multi-line vocab strings.  See GitHub Issues #65.

[*] Updates for 'nl' translation.

[*] Adds a progress bar and Cancel button while entries are being deleted from the Report page.  See SF Support Requests #2672.

[*] Improved internationalisation of language string.

[-] Fixes bugs when the description is null (which it can be when an event without a description is imported).

[-] Fixed fatal infinite loop when using $auth["session_php"]["inactivity_expire_time"].

[*] Upgrades flatpickr to 4.6.13 fixing GitHub Issue #70.

[-] Fixed bug in Algerian version of flatpickr.

[-] Fixed bug in Serbian Cyrillic version of flatpickr

[*] Added a timeout on the Exit Kiosk mode page - see SF Support Requests #2425.

[*] Added a timeout to exit kiosk mode dialog box.

[*] Changed jQuery UI theme to Cupertino.

[*] Added an additional MIME type for importing zip files.

[-] Fixed bug in mail notifications when a custom field is nullable.  See SF Support Requests #2682.

[-] Fixed potential bug when the display_name is not set.

[*] Upgraded to jQuery version 3.6.3.

[*] Improved detection of database type.  See GitHub Issues #72.

[*] Improved error message when the PDO MySQL driver is not enabled. See SF Support Requests #2691.

[-] Fixed bug when the database VTIMEZONE component doesn't contain a TZURL property.  See SF Bugs #537.

[-] Fixed bug - added formnovalidate to the Back button.

[-] Fixes GitHub Issue #74.

[*] Added parameter to force Select2 to be used on mobile devices.

[-] Fixes syntax error exposed by PostgreSQL 15.  See SF Patches #123.

[-] Fixes bug that results in missing series when producing .ics reports using PostgreSQL.

[*] Upgraded to PHPMailer 6.8.0.

[-] Fixed uncaught exception.  See SF Bugs #540.

[+] Allowed anonymous booking.  See SF Support Requests #2725.

[*] Fixes error in Korean language string. See SF Support Requests #2729.

[-] Fixed bug causing spurious validation message when $is_mandatory_field[entry.xxx] is set to false.
 See SF Support Requests #2733.

[-] Fixed bug when the timezone definition in the database has expired and MRBS is unable to get a
 new one from the URL

[*] Adds fallback mail language.

[*] Removed deprecated usage of strftime, using IntlDateFormatter if available and a simple
 emulation if it's not.

[*] Updated 'ms' translation (Malay).

[-] Fixes bug when curl_exec has been disabled.  See SF Support Requests #2744.

[*] Adds support for Percona version checking.  See SF Support Requests #2744.

[-] Fixes bug when trying to create a daily series by dragging in the week view.  See SF
 Support Requests#2748.

[+] Added new Dockerfile and GitHub Actions to build an MRBS container on release.

[*] Remove use of $twentyfourhour_format.

[*] Add setting UTF-8 variants of 'C' as a fallback locale.  See GitHub Issues #80.

[*] Eliminate a call to mutex_lock().  See SF Bugs #543.

[*] Add syntax_upsert() method into DB abstraction class.

[*] Add the datepicker language as a query string parameter to prevent problems with browser caching.

[*] Remove an unnecesary call to mutex_lock().  Any problems will be caught by the transaction.  See
 SF Bugs #543.

[+] Add the ability to have separate datetime formats in reports.

[-] Issue #82: Fix lang file include.

[-] Fix uncaught exception error when following a link to a booking from an email when not logged in.

[-] Fix display of unnecessary colon when approval is enabled and an entry owned by someone
 else is being viewed by an ordinary user.  See SF Support Requests #2766.

[-] Set LDAP admin level to $max_level instead of 2.  See SF Support Requests #2763.

[*] Swap the priority of $cli_language and $override_locale when determining which locale to use.
 It was always intended that $override_locale should override everything else.

[-] Fix "Unknown database type '(Ubuntu)'" problem on some Ubuntu systems.  See SF Bugs #545.

[+] Feat: make it possible to get display name from saml

[-] Fixed bug when authenticating against Joomla 4.3.0 or above.  See SF Feature Requests #455.

[-] Fix problem with occasional "Trying to destroy uninitialized session" warnings.

[+] Add a config option $always_offer_view_all to allow sites to give users the option of the
 view_all view even if there's only one room.


-------------------------------------------------------------------------------
Version 1.11.0 (Tue 27th December 2022):

[-] Fixed bug when $auth['db_ext']['column_name_level'] is not set.  See SF Support Requests #2470.

[*] PHP 8.2 compatibility fixes.

[*] Cached the results of getUser() for all auth types to improve performance.

[-] Fixed bug in display of report table when there are no bookings that have registration enabled.

[*] Added the name, if different, of the person who registered someone in the list of registrants in reports.

[*] Added a configuration variable to determine whether or not to include in reports the name of the person
 making the registration.

[+] Added support for custom integer fields in the users table.

[*] Improved performance of db_ext authentication type.

[-] Fixed bug causing registration opening and closing times not to account for DST transitions properly.

[-] Fixed bug causing end_date not to be restored on the booking form after a conflict on a multi-day booking.

[-] Fixed bug causing end_date not to be restored on the booking form after a conflict on a multi-day booking
 - for existing bookings

[*] Made the Wix backend limit a configuration setting.

[*] Made the Wix display name property a configuration variable.

[-] Fixed bug causing a textarea to appear instead of a select or datalist element when the column length
 exceeds $text_input_max.

[-] Fixed problem with positioning of the eye icon on the password reset page.

[-] Fixed bug when Wix can't find a username.

[*] Allowed for a more appropriate login placeholder for those authentication types that only validate by email address.

[*] Made the $faqfilelang config setting more intuitive, whilst maintaining backwards compatability.  See SF Bugs #517.

[*] Wix authentication: switched to using badges instead of custom fields to determine MRBS admins as custom fields can
 be edited by members themselves in their profile.

[*] A lot of code simplification/tidying/improvement.

[*] Improved performance of Search and Report when working with external authentication types.

[*] Switched to using a config variable for determining whether to get display names all at once.

[*] Improved performance of calendar views when using registration and a remote authentication type.

[*] Improved performance of view_entry.php when using registration and a remote authentication type.

[-] Fixed bug causing incorrect registration opening and closing times to be used when generating a
 series with conflicts and the "Skip past conflicts" box is not checked.

[*] Made DataTables respect the sort order defined on the report form.  See SF Support Requests #2498.

[*] Added config settings for the default values of the Sort by and Sum by fields on the Report page.

[*] Made the value of the PARTSTAT property in iCal notifications a config setting.  See SF Support Requests #2503.

[*] Added a class ("weekend") to weekend header cells so that a style can be applied. See SF Support Requests #2504.

[-] Fixed bug causing checkmarks not to show up in Excel exports from the users table.

[*] Added class of 'mrbs-weekend' to flatpickr weekend days.  See SF Support Requests 2507.

[-] Fixed bug in import.php when $booking_types is unset.  See SF Bugs #519.

[*] Upgraded to PHPMailer Version 6.7.1.

[-] Fixed problem with username.  See SF Bugs #518.

[*] Updated Spanish translation.  Thanks to Andres Sierra.

[-] Fixed bug when using a custom field of type DECIMAL and no form value is input.

[*] Improved performance of curl requests by using compression if possible.

[-] Fixed bug resulting in users sometimes not being able to register even though registration was open.

[*] Improved internationalisation.

[+] Added email obfuscation.

[*] Added email links (when sensible) for Created By and Modified By on the view_entry page.  See
 SF Support Requests #2545.

[*] Update jQuery UI to v 1.13.2.

[-] Fixed bug causing MRBS to return to the wrong view after making a booking.  See SF Support Requests #2552.

[-] Fixed bug causing registration settings to be lost on resizing.

[*] Added error handling to Ajax post requests on resizing a booking.  See SF Bugs #524.

[-] Fixed bug resulting in an uncaught exception (database integrity constraint violation) if you try and
 rename a room to a room that already exists but is in a different case.  That was because the test to check
 if the name is in use was case sensitive, whereas the database collation was case insensitive.

[+] Added the option to include registrants' usernames in reports.

[+] Added the ability to configure placeholders for text fields in the edit_entry form.  See GitHub Issue #41.

[-] Fixed problem with case insensitive admin name checking when using non-ANSI characters, eg "Ändra"
 and "ändra".  See also GitHub Issues #44.

[*] Converted to using locale aware version of strcasecmp().

[*] Updated the instructions for creating the config file.  See SF Support Requests #2568.

[-] Fixed fatal error on systems where PHP_INT_MAX is greater than the maximum value allowed by the database
 column type.

[-] Fixed potential bug.  See GitHub Issues #47.

[-] Fixed problem when comparing certain strings in some locales.  See GitHub Issues #46.

[*] Improved error handling.  See GitHub Issues #50.

[+] Added an option for ordinary users to be able to create registration bookings.

[*] Removed redundant code now that the minimum PHP version is 7.2.0.

[*] Improved error handling in the case of invalid dates.

[-] Fix for the issue identified in GitHub Pull Request #54.

[*] Added highlight of current period on mini calendar.

[*] Stored the last page as a session variable so that it can be used instead of $_SERVER['HTTP_REFERER']
 when the Referrer-Policy is set to strict-origin.  See GitHub Issue #57.

[*] Changed the implementation of mutex_lock() in DB_pgsql.php to use PostgreSQL advisory locks,
 avoiding the more heavy-handed table locks that were used previously and more closely matching the
 DB_mysql.php implementation.

[*] Improved identification of version for MySQL databases.

[+] Added check for minimum versions of MySQL/MariaDB.

[-] Fixed bug preventing sessions from working when using certain versions of PHP.
 See https://github.com/php/php-src/issues/9668.

[*] Truncated lock names in MySQL as since MYSQL 5.7.5 they are restricted to 64 characters.

[-] Fixed bug when authenticating against Joomla! Version 3.

[*] Changed the way that the session.gc_maxlifetime variable is set so that it now respects an
 existing setting if that is greater than $auth["session_php"]["session_expire_time"].

[*] Added the user's email address as a Reply-To address by default.  This can be disabled by
 a config setting to bring the behaviour back to how it used to be.  See SF Support Requests #2621.

[*] Upgraded to jQuery 3.6.1.

[-] Fixed bug resulting in "Invalid page_date yyyy-mm-dd to yyyy-nn-ee" message when a user clicks
 on multiple dates in the mini-calendars in succession on a slow server.

[*] Added a CSS class for weekend days.

[+] Added support for defining holidays.

[+] Added the ability to prevent bookings at weekends.

[*] Added French translations.  Thanks to Philippe.

[*] Added support for database driver options.  See SF Support Requests #2634.

[-] Fixed occasional incorrect determination of cookie path.

[-] Fixed bug when using CAS authentication.

[*] Upgraded to phpCAS 1.6.0.  See SF Bugs #532.

[*] Updated german translations, thanks to Fabian Ascheberg.

[*] Added the ability to define paper size and page orientation for Excel output.

[-] Fixed when importing events with a relative monthly repeat (eg "every third Tuesday").

[-] Fixed bug when importing a series with INTERVAL > 1.  See SF Support Requests #2656.

[*] Made the DataTables stateSave and stateDuration options configurable and changed the
 default for stateDuration from 7200 seconds to 0 (ie indefinite).

[*] Updated licence info.

[*] Added a tooltip explaining how to deselect an option.  See GitHub Issues #61.

[*] Made use of Control-Click terminology consistent.


-------------------------------------------------------------------------------
Version 1.10.0 (Mon 29th November 2021):

[*] Updated minimum PHP version to 7.2.

[*] Fixed deprecated notices when running under PHP 8.1.  Note that the return types for gc() and
 read() cannot be specified because union types are not available until PHP 8.

[*] Fixed various PHP 8.x deprecation/compatibility issues.

[*] Updated german translation (Stachelritter).

[*] Avoided using strftime() if IntlDateFormatter is available as strftime() is deprecated in PHP 8.1.

[+] Added configuration variable $auth['saml']['disable_mrbs_session_init'] to allow MRBS session
initialisation to be disabled when using SAML.  See SF Support Requests #2390.

[-] Fixed occasional problem with CSRF tokens.

[+] Added Docker container build configuration. (Tobias Polzin)

[+] New option $min_booking_admin_level, e.g. to allow all users to edit all bookings for some settings
 (Tobias Polzin).

[*] edit_entry shows repetition and skipping only if necessary (Tobias Polzin).

[*] Improved clarity of German translation around use of periods/series.

[-] Fixed problem with display of type when the field is private.  See SF Support Requests #2394.

[-] Fixed problem allowing a booking for multiple rooms to be made when it shouldn't be.  See SF
 Support Requests #2396.

[-] Better fix for preventing selection of multiple rooms.  This fix does not destroy the Ajax policy
 feedback. See SF Support Requests #2396.

[*] Added support from going back from the edit entry submission page.

[-] Fixed bug when no $booking_types is unset.  See
 https://github.com/meeting-room-booking-system/mrbs-code/issues/11.

[*] crypt_passwd.pl - Replaced an errant TAB with spaces.

[*] Removed all mentions of badpw.pl - it's too bad even for explanation purposes.

[*] Added configuration variables for setting hostname and HELO strings when sending email.  See
 SF Bugs #508.

[*] Updated Swedish translation.  Thanks to Niclas Nilsson.

[-] Fixed bug causing English days of the week to be shown.  See SF Support Requests #2374.

[*] Improved print layout.

[*]  Improved fix if no booking types are set.
 See https://github.com/meeting-room-booking-system/mrbs-code/issues/11#issuecomment-90

[*] Improved documentation on auth/session classes.

[-] Fixed bug saving an entry with custom fields when using PostgreSQL and an explicit $db_schema.
 See SF Support Requests #2408.

[-] Fixed undefined index notice problem.  See SF Support Requests #2406

[-] Fixed problem with LDAP admin groups being case sensitive when they shouldn't be.  See SF
 Support Requests #2406.

[-] Fixed bug causing an incompatibility with LDAP config settings from earlier versions of MRBS.
 See SF Support Requests #2419.

[-] Fixed bug causing the reset link URL to contain the scheme twice when $url_base is set.   See
 SF Support Requests #2421.

[*] Added display on the calendar view of how many people have registered for an event.

[-] Fixed problem with misleading "Are you sure you want to delete this entry?" message being shown
 when deleting a series.

[-] Fixed uncaught exception error if someone tries to login under the 'db' scheme by email address
 when their password hash is null.

[*] Expanded message on password reset to remind users to check their spam/junk folder for a
 password reset email.

[*] Added support for date custom fields in the user table.

[-] Fixed occasional problem with "Session object destruction failed" warning when the session has
 already been destroyed.

[*] Added server side checking of date field values.

[*] Added registrants' names to report output.

[+] Added option of showing registrants on the calendar page.

[-] Fixed bug causing the "Back to Rooms" button on the edit_room page to go to the wrong area.

[*] Made display names sort order consistent everywhere with $sort_users_by_last_name.

[+] Added new config setting $auth['show_registrant_names_in_public_calendar'] allowing the choice
 of whether or not to show registrants' names if the calendar is open to the public.

[+] Added the ability to add custom JavaScript.

[-] Fixed problem when a conflict is reported with a booking that was made when there were more
 periods defined.

[*] Improved consistency of button labelling.

[*] Updated update instructions to remove references to old upgrade files.

[*] Updated FAQ links to MRBS project, PHP, MySQL and PostgreSQL.

[+] Added the ability to import an iCalendar from a URL.

[+] Added option not to import past bookings.

[*] db_ext auth: Added caching of results in getUser() to improve performance as the query will
 normally be of a remote database.

[*] Added sorting of users for the db_ext authentication type.

[*] Added sorting of users for the WordPress authentication type.

[+] Added an ignore_location option for importing events.

[+] Added an option for adding the location to the description when importing iCalendar files.

[*] Only retrieved those columns that we need in AuthDbExt->getUser() to avoid sending
 unencrypted data over the internet unnecessarily.

[-] Fixed bug affecting import when using PostgreSQL.

[*] Made the default SUMMARY configurable when importing events.

[*] Upgraded to PHPMailer Version 6.5.3.


-------------------------------------------------------------------------------
Version 1.9.4 (Tue 20th July 2021):

[-] Fixed problem when incorrect credentials are supplied on database
 upgrade.

[+] Added new config setting, $auth['users_can_register_others'],
 allowing ordinary users to register others for events.

[+] Added the ability for users to cancel registrations made on their
 behalf by someone else.

[*] Added a pointer cursor to password show/hide icons.

[*] MRBS now retries opening a MySQL connection if the attempt failed
 because there were already too many connections.

[*] Upgraded to jQuery Release 3.6.0.

[*] Updated timezone definitions.

[-] Added HTML escaping. See SF Bugs #505.

[*] (DB schemas) Removed deprecated integer display width.

[-] Fixed bug when working in multisite mode.

[*] Upgraded to latest release of DataTables.

[-] Fixed bug causing the user's display name not to be exported when
 the user is editable.

[*] Introduced a higher level of LDAP debugging that will additionally
 output an entry's attribute names and values. See SF Support
 Requests #2363.

[*] Improved handling of locales and locale setting. See SF Support
 Requests #2372.

[*] Added language debugging capability controlled by a new config
 variable $language_debug.

[-] (ical) Fixed bug. See SF Support Requests #2375.

[-] Fixed problem with $datalist_options not being recognised when the
 column is an integer. See SF Support Requests #2379.

[*] Removed convert_db_to_utf8.php as it is (a) rarely necessary now and
 (b) would need work to get it to work with the latest code. Updated
 UPGRADE to include advice to run the script _BEFORE_ upgrading to
 the latest version of MRBS.

[*] Added additional information about the change in config file
 structure from MRBS 1.4.7 and earlier. See SF Support Requests
 #2380.


-------------------------------------------------------------------------------
Version 1.9.3 (Sat 22nd May 2021):

[-] Fixed problem when an LDAP search returns an entry with a null
 username. See SF Support Requests #2200.

[-] Fixed incorrect links in search results when using multisite.

[*] Improved resilience of code to Ajax results from usernames.php. See
 SF Bugs #491.

[-] Fixed bug in getting column labels when using PostreSQL with a
 schema.

[*] For reminder and more_info emails, put the user's address on the cc
 line if it can't be put on the from line, in order that the
 recipient can use it in replies.

[*] Changed email notifications so that if the email is a reminder or a
 request for more information, an iCalendar attachment is not
 included. Otherwise the recipient may not be able to reply to it.

[-] Fixed a bug preventing email being sent in some circumstances on
 Apache servers when an open_basedir restriction is in effect. See SF
 Bugs #489.

[*] Updated German translations. See SF Support Requests #2205.

[-] Fixed bug causing the version parameter not to be added to a
 filename if there's already another parameter in the query string.

[*] Upgraded to latest version of DataTables

[-] Fixed "DevTools failed to load SourceMap" 404 error. See SF Bugs
 #493.

[-] Fixed bug causing error when editing an entry immediately after
 registering for an event. See SF Bugs #490.

[*] Fixed note about backwards compatibility. See SF Support Requests
 #2219.

[*] Added "[DEBUG] " prefix to LDAP debug messages for consistency with
 mail debug.

[*] Updated zh-cn translations. See SF Patches #106.

[-] Fixed bug preventing admins from making public bookings when
 bookings are forced to be private.

[+] Added new config variable $auth['force_private_for_guests'] which
 will display all bookings as private to unlogged in users. See SF
 Support Requests #2213.

[+] Introduced a new config setting $auth['only_admin_can_book_before']
 allowing site admins to set a 'go live' date for bookings.

[*] Made logging in by email address under the 'db' auth scheme accept
 equivalent Gmail addresses, ie ignoring dots in the local part of
 the address and accepting either 'gmail.com' or 'googlemail.com' for
 the domain.

[*] Made the "Lost your password" feature in the 'db' auth scheme accept
 equivalent Gmail addresses.

[-] Fixed invalid HTML

[-] Fixed bug when editing a room and $booking_types is not set. See SF
 Support Requests #2264.

[*] Improved performance when making a booking and using LDAP
 authentication

[*] Eliminated use of deprecated parameter signature for ldap_connect().

[-] Fixed bug when an LDAP entry doesn't have a name attribute

[-] [auth_ldap] Suppressed legitimate "no such object" LDAP errors

[-] [auth_ldap] Fixed bug occurring when $ldap_unbind_between_attempts is set

[-] Fixed bug causing admins not to be recognised in some circumstances
 when using an array of LDAP hosts. At the same time improved
 performance.

[-] Fixed potential bug when working with an array of LDAP hosts

[-] [auth_ldap] Fixed bug when using an LDAP library that doesn't suport
 LDAP_OPT_DIAGNOSTIC_MESSAGE

[*] Improved usability by returning to admin.php with the correct area
 set when trying to delete an area that still contains rooms.

[-] [German translation] Fixed spelling mistake. See SF Bugs #499.

[-] Fixed bug causing the $force_resolution config setting to be ignored

[*] Updated minimum PHP version. See SF Bugs #500.

[-] Fixed bug when importing bookings that are not private or
 confidential

[-] Fixed bug preventing the default_type being set correctly when the
 area is changed

[-] Fixed bug when trying to rename an area to a name that has already
 been used

[-] Fixed bug causing times not to be converted to an integral number of
 units

[-] Fixed misleading error message and changed name of config variable
 to $periods_booking_opens

[+] Added a new config variable $periods_booking_day_starts to set the
 time of day when bookings open when using periods

[-] Fixed bug when $force_resolution is set stopping periods working
 properly (bug introduced in the recent commit to fix
 $force_resolution)

[-] Fixed SF Bugs #502 (day number obscured by week number in month
 view)

[-] Fixed bug when usernames are all numeric

[*] Provided a more helpful error message than a fatal error if somebody
 accesses edit_entry.php with an invalid room id (usually because
 they've been using a bookmark that is no longer valid).

[+] Added a new config variable, $default_name_display_name, to allow
 the brief description to default to the user's display name.

[-] Fixed bug when advance booking policies cross a DST boundary. The
 assumed correct behaviour is that a policy of, for example, "2 weeks
 ahead" means 2 nominal weeks rather than 2*7*24*60*60 seconds.

[+] Added a new config setting, $measure_max_to_start_time, to allow max
 book ahead times to be measured to the start rather than end time.
 [The time interval is normally measured to the end time of the
 booking. This is to prevent users cheating the system by booking a
 very long slot with the start time just inside the limit and then
 either not using the early part of the booking, or else editing it
 down to what they actually need later. However this is not very
 intuitive for users who might expect the measurement to be relative
 to the start time.]

[-] Fixed bug resulting in email not being delivered: "550 Maximum line
  length exceeded (see RFC 5322 2.1.1)".

[-] Replaced \n with \r\n for EOL in mail messages. See RFC 5322 2.1.

[*] Temporary fix for SQL errors of the type "Syntax error or access
 violation: 1055 'mrbs.E.start_time' isn't in GROUP BY". See SF
 Support Requests #2333.

[*] Added support for more data types for custom fields - see SF Support
 Requests #2333

[*]  Allowed $mrbs_company_more_info to contain HTML. See SF Support
 Requests #2067.

[*] Fixed problem when users try to go directly to edit_users.php when
 the authentication scheme is other than 'db'.

[*] Added the display name, if there is one, to the To address for a
 password reset email

[*] Used the user's display name in the body of the password reset
 email.

[-] Fixed broken links when in multisite mode

[*] Renamed room_admin_email and area_admin_email fields to make it less
 confusing, as they don't have any admin powers

[*] Added a confirmation step for deleting a user. See SF Support
 Requests #2341.

[-] Fixed bug preventing booking admins from getting a list of users in
 the Created By drop-down on the edit_entry form.

[*] Prevented the database credentials being given away when there's an
 error

[*] Prevented multiple uncaught exceptions when there's a database
 connection error

[*] Added a check that the repeat end date has been set.

[+] Added a configuration option to limit the appearance of the Copy
 button to bookings for which you have write permission.

[*] Added password visibility toggling

[*] Upgraded to PHPMailer Release 6.4.1


-------------------------------------------------------------------------------
Version 1.9.2 (Wed 14th October 2020):

[-] Fixed bug when upgrading to or installing MRBS 1.9.1 and using MySQL
 5.6 or below. See SF Bugs #486.

[*] Prevented ordinary users from cancelling a registration for an event
 after it has started.

[*] Added a new config variable, $enable_registration, to allow sites to
 remove the ability to create events for which other people can
 register. See SF Support Requests #2199.


-------------------------------------------------------------------------------
Version 1.9.1 (Sat 10th October 2020):

[+] Added the ability to request a password reset, as long as MRBS can determine the user's
 email address.

[+] Added ability to configure a meeting to allow for a set number of users to "sign up"
 for the meeting.

[-] Fixed bug recently introduced in LDAP authentication scheme, see SF Bugs #475.

[-] Fixed bug with error logging, see SF Support Requests #2312.

[*] Now respects the sort key when getting the default area.

[*] Updated German translation with thanks to Tobias Zeumer.

[*] Improvements to utility page checklang.php.

[*] Added version parameters to query strings for Javascript and CSS files to
 avoid problems with over-eager caching.

[-] Fixed bug causing no entries to be found in a report when there's a
 custom field which is an integer and it is left blank in the report
 form. See SF Support Requests #2142.

[*] Upgraded to latest version of DataTables.

[-] Fixed SF Bugs #477 - CAS setup error.

[*] Added checks where necessary that the authentication type is the
 same as the session scheme.

[-] Fixed SF Bugs #479 (cannot edit a booking when
 $prevent_simultaneous_bookings = true;)

[-] Fixed bug when a limit is set on both the maximum number and also
 the total length of bookings per day. See SF Bugs #480.

[+] Added a configuration option to display the mini-calendars above the
 main calendar when the window narrrows. See SF Support Requests
 #2156.

[+] Allowed admins to override the private_mandatory setting. See SF
 Patches #102.

[-] Fixed bug causing the location not to be shown in print view. See SF
 Feature Requests #426.

[-] Fixed SF Bugs #482 (hidden days not disabled in datepickers).

[-] Advanced the date to the first non-hidden day. See SF Bugs #482.

[*] Changed "Possible CSRF attack" message from E_USER_WARNING to
 E_USER_NOTICE. See SF Support Requests #2174.

[+] Added the 'idcheck' authentication type. See SF Support Requests
 #2173.

[+] Added Windows support for Cuban (es-CU) and Latin American (es-419)
 Spanish.

[*] Updated French translations. Thanks to Philippe. See SF Patches
 #105.

[*] Added support in Windows for more languages.

[-] Fixed bug causing problems if the old auth files are still present.

[-] Fixed problem with MRBS not accepting 'zh-TW' as a locale when using
 the intl extension. See SF Support Requests #2178.

[+] Added the ability to configure a room to disallow certain booking types.

[-] Fixed a few issues with PostgreSQL upgrades/schema.


-------------------------------------------------------------------------------
Version 1.9.0 (Tue 16th August 2020):

[*] Authentication and session schemes refactored into classes.

[*] Updated Norwegian translation from Pål Viland Monstad.

[+] Added multi-site ability, to allow more than one sites to be run from the same
 installation, just with different configuration files.

[-] Fixed bug causing problems in resizing booking.

[-] Fixed bug when resizing bookings after the table container has been
 scrolled.

[*] Upgraded to Select2 version 4.0.13.

[+] Added a display name to the users table.

[-] Added Ajax loading of usernames. See SF Support Requests #2031

[-] Fixed problem with escaping of HTML. See SF Support Requests #2045.

[-] Fixed bug when the booking day goes past midnight. See SF Support
 Requests #2045.

[-] Fixed CSS problem. See SF Bugs #460.

[-] Fixed bug causing the create_by value to be changed in some
 circumstances. See Support Requests #2052.

[-] Fixed bug when editing an entry without being logged in first. See
 SF Bugs #464.

[*] Moved mail sending into a MailQueue class. Normally the queue is
 flushed on shutdown using a register_shutdown_function() callback.
 However the class could easily be extended so that the mail queue is
 held in the database and emptied by a cron job. This would enable
 rate limits to be adhered to more accurately, as there would be just
 one queue.

[+] Added a config option for types that can only be used by admins.

[*] Removed inclusion of language preferences in the datepicker
 JavaScript code in order to avoid caching problems. The language
 preferences are now obtained dynamically from a data atrtribute in
 the body tag. See SF Support Requests #2073.

[*] Various improvements for display on mobile devices.

[*] Updated Spanish translation. Thanks to Jose Luis Martin Jimenez. See
 SF Feature Requests #355.

[*] Upgraded to jQuery 3.5.1.

[+] Added per-area configuration for "times along top" and "default type".

[-] Implemented global limits on the total *length" of bookings per
 day/week/month/year

[*] PHP 8 compatibility fixes.

[-] Fixed SF Bugs #463.

[-] Fixed problem with booking admins not being able to resize rooms.
 See also SF Bugs #463.

[-] per-area settings for total length of bookings.

[-] Fixed SF Bugs #466 (it's possible to create a series which has
 overlapping entries)

[-] Fixed problem with the brief description field not receiving focus.
 See SF Bugs #468.

[-] Fixed bug causing high client CPU load in some circumstances when
 $show_timeline is true. See SF Support Requests #2107.

[+] Added a config option $prevent_simultaneous_bookings to stop users
 booking two different rooms at the same time. See SF Bugs #472.

[-] Fixed problem with an unnecessary CSRF error message being generated
 if the user logs off after the session has expired due to
 inactivity.

[-] Fixed problem caused by trailing spaces in the username in the
 'http' session scheme.

[-] Fixed bug causing datepickers not to be shown in Safari and Firefox
 on iPhone. See SF Bugs #473.

[*] Updates to authentication schemes to allow a user's real name to be
 used instead of their username, if that information is available. includes
 addition of this field in MRBS's buit-in DB authentication scheme.

-------------------------------------------------------------------------------
Version 1.8.0 (Tue 31st March 2020):

[*] Navigation in/layout of the calendar views has been improved.

[-] Fix for problem editing long custom fields described in [support-
 requests:#1658]

[*] Changed so that error messages relating to DB sessions are only
 output if the current DB schema version as recorded in the database
 is >= 56, ie the upgrade when the sessions table was created. See SF
 Support Requests #1658.

[*] Added a maxlength attribute to custom textareas.

[-] Updated to latest phpCAS client to fix problem with '"continue"
 targeting switch is equivalent to "break". Did you mean to use
 "continue 2"?' warning messages in PHP 7.3.0.

[*] Turned the create_by select into a Select2 control. See SF Support
 Requests #1659.

[*] Removed some old unsafe/fragile authentication methods.

[*] Made the upgrade message look less like an error message. See SF
 Support Requests #1661.

[*] Fixed bug when a field is disabled in the edit_entry form. See SF
 Support Requests #1664.

[-] LDAP authentication: Added missing global declaration. Removed error control
 operators. See SG Bugs #425. Fixed undefined index notice when $ldap_filter is not set

[-] Fixed bug causing checkbox custom fields not to be saved. See SF
 Bugs #429.

[-] Fixed bug preventing resizing of bookings.

[-] Fixed bug preventing ordinary users from editing their own details.

[*] Fixed minimum version requirements. See SF Support Requests #1671.

[-] Reduced the VARCHAR size to avoid running into the limit on the size
 of the index now that we have switched to utf8mb4. VARCHAR(127)
 should be more than enough for this field. (Strictly speaking we
 don't need really need utf8mb4, but it keeps tings simpler using it
 throughout).

[-] Fixed problem with $skip_default config setting not being
 recognised. See SF Bugs #434.

[-] Fixed bug in bulk deletion of entries from the report page.

[-] Fixed problem with $min_user_viewing_level. See SF Support Requests
 #1690.

[*] Made the PHP session name a config setting. See SF Feature Requests
 #379.

[+] Added the configuration option
 $mail_settings['use_from_for_all_mail'] to allow the standard From
 address to be used for all emails. See SF Support Requests #1714.

[+] Added a new config option $auth['wordpress']['blacklisted_roles'].
 See SF Support Requests #1719.

[*] Added details of person booking/approving/rejecting etc to email
 notifications. See SF Support Requests #1714.

[-] Fixed a problem with links in email notifications not being
 calculated automatically when $url_base is empty.

[-] Fixed a problem with links in email notifications not being
 calculated automatically when $url_base is empty.

[-] Fixed poroblem when $_SERVER['PHP_SELF'] is empty. See SF Bugs #437.

[-] Fixed problem with the create_by field being turned into a fancy
 select box when it shouldn't be. See SF Support Requests #1732.

[-] Fixed bug preventing compressed files from being imported.

[-] Fixed possible undefined index error when exporting bookings as an
 iCalendar

[-] Fixed a bug that occasionally (especially on slow connections)
 caused the wrong data to be displayed in the calendar view after
 switching days. The problem would arise if the user switched days in
 between an Ajax refresh request being made and the response being
 returned.

[*] Added DB schema version to Help information.

[*] Moved %mrbs_company out of lang files

[-] Fixed HTML5 validation errors in email notifications

[-] Prevented rooms being booked for which the user doesn't have write
 access. See SF Support Requests #1744.

[*] Only displayed rooms that the user has write access for. See SF
 Support Requests #1744.

[*] Aded 'autocomplete="new-password"' attribute to password fields on
 the Add/Edit User form to stop browsers trying to autocomplete those
 fields.

[-] Fixed some HTML5 validation errors.

[-] Fixed problem with the areamatch and roommatch fields not being
 passed through with the form variables in the Edge browser. See SF
 Support Requests #1763.

[+] Added capability of defining repeats every n months. See SF Feature
 Requests #398

[*] Changed so that thge Edit and Delete buttons are only shown if the
 user is allowed to use them. See SF Support Requests #1776.

[*] Added autocomplete attributes to the login form

[+] Added an option to show the slot end times in the day and week
 views. It is controlled by the new config variable
 $show_slot_endtime, which is set to false by default. See SF Support
 Requests 1796.

[+] Added support for decimal/numeric custom fields in the entry table.
 See SF Support Requests #1797.

[+] Added the capability of making rooms invisible to certain users.

[*] auth_crypt: Updated the 'crypt' auth method to use the safer 'password_verify()'
 instead of 'crypt()'

[+] Added support for supplying a TLS cert/key pair for LDAP client
 authentication - requires PHP 7.1.0 or later.

[-] Make SAML authentication redirects use an absolute URL to the MRBS page.

[-] LDAP auth: Fixed a problem that caused users not being able to login when an
 $ldap_filter is specified and the user does not have read access to
 the directory, even for their own entry.

[-] Fixed problem with MRBS not recognising numerals in the
 HTTP_ACCEPT_LANGUAGE header, eg 'es-419'. See SF Support Requests
 #1828.

[*] Corrected some Italian translations. See SF Support Requests #1824

[+] Added new policy allowing the prevention of changing approved
 bookings. See SF Support Requests #1824.

[-] Fixed bug causing STATUS not to be exported properly when exporting
 entries as iCalendar files. See SF Bugs #441.

[*] Disabled the edit and delete buttons if an entry can't be deleted,
 showing the reason in a tootip. See SF Support Requests #1824.

[-] LDAP auth: Fixed bug when the attribute name isn't all lower case

[*] Made email CSS use the same styling as the rest of the site.

[-] Fixed bug resulting in undefined index errors when
 $mail_settings['details'] is false and $mail_settings['icalendar']
 is true. See SF Support Requests #1835.

[*] Suppressed by default the dumping of $_POST['username'] and
 $_POST['password'] in the error log. If desired, they can be logged
 by setting in the config file $auth['log_credentials'] = true;

[-] LDAP auth: Fixed problem with presenting all users in the created by field if
 the LDAP server can't be contacted. Fixed bug when searching for multiple
 entries and an LDAP server is not available.

[*] Added maxlength attributes to entry creation/modification forms.

[*] Added server side truncation of form variables on the room and area
 forms to ensure they fit the database columns

[-] Fixed problem of multiple bookings in the same slot not being
 displayed correctly. See SF Bugs #442. Thanks to dwpoon.

[-] DB auth: Fixed a bug causing the last_login field not to be updated when an
 email address rather than username is used to login. See SF Support
 Requests #1863.

[-] Fixed problem with $theme being overwritten by WordPress. See SF
 Bugs #444. Thanks to Johan Hattne.

[-] Fixed a number of bugs in the export of entries as iCalendars. See
 SF Support Requests #1865.

[*] Removed indexed cursors in DB abtraction, as they are not reliable
 in the supported databases. See SF Bugs #445.

[-] Joomla auth: Fixed bug preventing logged in Joomla user being recognised. See SF
 Support Requests #1870.

[+] Added a timeline view to the calendar.

[*] Added a logged_in class to aid styling. See SF Support Requests
 #1884.

[*] Improved accessibility. See SF Support Requests #1884.

[*] Upgraded to jQuery 3.4.1

[*] Updated to flatpickr 4.6.3

[*] Upgraded to Select2 version 4.0.11

[*] Fixed potential notice error in PHP 7.4: "Trying to access array
 offset on value of type bool". Fixed warning given by PHP 7.4: "Trying to
 access array offset on value of type null".

[-] Fixed a number of edge cases in internationalisation code.

[*] Upgraded to the latest release of PHPMailer (6.1.3) and as a
 consequence increased the minimum PHP version required for MRBS from
 5.4.0 to 5.5.0.

[*] Upgraded to latest release of pear/Mail_Mime.

[*] Fixed problem with exception handling in PHP7.

[-] Added new views which allows the user to look at all rooms for a week
 or month time span.

[*] Made the code more resilient by not requiring getimagesize() on the
 company logo to be successful. See SF Support Requests #1932

[*] Made the code resilient to $default_language_tokens being set to ''.
 See SF Support Requests #1932.

[+] Added Malay translaton. Thanks to aizuddin hadi. See SF Support
 Requests 1940.

[+] Added a new config setting $default_view_all. See SF Support
 Requests #1948

[-] Fixed bug preventing the db_ext auth scheme working when the
 external usernames contain uppercase characters. See SF Support
 Requests 1949.

[-] Fixed problem with users not being to login when the auth type is
 'db_ext' and the collation of the external database is not utf8 and
 the username contains non-ASCII characters, eg "Müller". See SF
 Support Requests #1949.

[-] Fixed bug when $booking_types is not set. See SF Support Requests
 #1962.

[*] Added an database index for greatly improved performance

[*] Clarified wording of upgrade procedure. See SF Support Requests
 #1978.

[*] Upgraded to latest version of DataTables

[+] Added Copy, CSV, etc. buttons to the data table views.

[*] Added missing Italian translation. See SF Bugs #456.

[-] Fixed bug preventing the Type field being made into a mandatory
 field. See SF Support Requests #1985.

[*] Updated the AUTHENTICATION document. See SF Support Requests #1995.

[-] Fixed bug in vocab for custom field names in email notifications.
 See SF Patches #95.


-------------------------------------------------------------------------------
Version 1.7.2 (Wed Dec 19th 2018):

[*] Updated included time zone files.

[*] Fixed some Javascript warnings/deprecations. Updated jQuery UI.

[*] Improved session/auth selection.

[-] Fixed problem with text inputs and textarea widths not being the
 same in some browsers, eg Firefox.

[*] Added trimming of input fields on the Edit User form to remove
 accidental whitespace.

[-] Fixed bug with Prev and Next links in Search results, resulting in a
 session expiry because no CSRF token was being passed. Only happens
 when JavaScript is disabled.

[-] Fixed problem with Search ignoring Search From date.

[*] Added a date to the search results so that it's clear when the
 search started.

[-] Fixed bug in finding best language file.

[-] Fixed bug when resizing a booking on a day that's not today.

[*] Relaxed CSRF token checking, so that the token isn't checked for GET
 requests to read-only pages such as Search and Report.

[*] Changed MySQL schema/connection to use "utf8mb4" character set, in
 order to support full Unicode. This adds a requirement on MySQL
 5.3.3 or later.

[-] Fixed bug causing edit_entry_handler to go to today when finished
 rather than the day of the start of the booking.

[+] Added CAS session/authentication scheme.

[+] Maded 'php' session scheme store sessions in the MRBS database,
 rather than relying on the system having a working session storage
 configuration.

[*] Moved config.inc.php to config.inc.php-sample. This means that new
 releases of MRBS won't conflict with/overwrite users' own config.inc.php
 files.

[-] Fixed a bug when using Joomla authentication.

[-] Made settings for $edit_entry_field_order consistent.
 This fixes a bug (see SF Support Requests #1562).

[-] Fixed bug with confirmation status, introduced during recent
 changes. See SF Support Requests #1562.

[*] Updated Mail_Mime package to version 1.10.2 to avoid the use of the
 deprecated each() function.

[*] Updated PEAR to 1.10.5.

[*] Updated Net_SMTP to 1.8.0.

[*] Updated Net_Socket to 1.2.2.

[-] Fixed bug causing language file not to be used when in CLI mode. See
 SF Support Requests 1583.

[*] Increased the length of the id column in the sessions table from 32
 to 255. See SF Feature Requests #158.

[*] Updated stated minimum PHP version number to 5.4.0.

[-] Fixed bug when multiday bookings are not allowed. See SF Bugs #416.

[-] Fixed problems to do with caching of the user level in JavaScript
 code. See SF Bugs #415.

[-] Fixed bug when db_ext password_format is not defined.

[-] Fixed bug when using db_ext and
 $auth['db_ext']['column_name_level']. See SF Bugs #417

[-] Fixed problems with (a) the URL growing longer and longer when
 logging in and logging out and logging in again etc. and (b) the
 Back button on the edit_entry page not working after a login.

[-] Fixed problem with checkboxes on forms not being filled properly.
 See SF Bugs #418.

[-] Fixed problem with disabled required fields on the edit_users form.
 See SF Bugs #419.

[-] Fixed a bug (SF Bugs #420) causing an "invalid id" message if you
 try an edit an entry without first having logged in.

[-] Fixed a bug that was causing the username_suffix to be stripped out
 of a username wherever it occurred, rather than just at the end.

[-] Fixed bug causing series not to be approved. Might be related to SF
 Support Requests #1623

[*] Disabled the default duration field on the area form if "All day" is
 checked.

[*] Clarified upgrade instructions. See SF Support Requests #1622.

[-] Fixed bug causing "Empty or invalid search string". See SF Bugs
 #421.

[-] Fixed bug in date_default_timezone_set() that was causing it to set
 the current area timnezone rather than the config timezone if no
 timezone was specified.

[-] Fixed bug that allowed areas with no enabled rooms to appear in the
 area select.

[*] Switched to using the REQUEST_URI instead of PHP_SELF in order to
 get the cookie path. See SF Support Requests #1634.

[-] Fixed bug that prevented users with emojis in their usernames from
 logging in when using MySQL.

[+] Added 'last login' functionality to 'db' auth scheme.

[*] Added a note about how to include files from the config file. See SF
 Support Requests #1649.

[*] Set the session.gc_maxlifetime to the same time as
 $auth['session_php']['session_expire_time'] so that users aren't
 logged out by the garbage collector before the session cookie is due
 to expire.

[*] Upgraded PHPMailer to Version 5.2.27.


-------------------------------------------------------------------------------
Version 1.7.1 (Sun Feb 11th 2018):

[*] Updated PHPMailer to use latest code (5.2.5+) from the 5.2-stable
 branch. Note that MRBS cannot yet use PHPMailer Version 6.0+ because
 that requires PHP 5.5 or later.

[*] Improved error reporting when PHP sessions aren't working. See SF
 Support Requests #1364.

[*] Improved fix for SF Patches #62.

[-] Fixed bug resulting in a function not found error. See SF Support
 Requests #1390.

[-] Fixed problem with updating users table. See SF Support Requests
 #1390.

[-] Fixed bug resulting in a "session expired" message when the "You are
 xxx" link is clicked. See SF Support Requests #1393.

[*] Removed "You are " text from "You are xxx" link. See SF Support
 Requests #1393.

[-] Fixed bug in formatting date for policy violations.

[-] Fixed another date formatting problem.

[*] Improved internationalisation of some language tokens

[-] Fixed bug where access was being denied if the Joomla username
 looked like an integer, eg "1234". See SF Bugs #401.

[-] Fixed bug resulting in unwanted colons appearing after labels in
 dataTables (eg the Report output)

[-] Fixed problem with textarea values not being displayed.

[*] Put the new period name input in focus when Add Period is clicked.

[+] Added the ability to restrict IMAP authentication to usernames from
 a certain domain, using the new config setting
 $auth['imap_php']['user_domain']. See SF Support Requests #1407.

[*] Reorganised mail settings. See SF Support Requests #1412.

[*] Improved mail debugging information, giving 'From', 'To', 'Cc' and
 'Bcc' addresses.

[*] Made the field order on the view_entry page the same as that on the
 edit_entry page. See SF Support Requests #1426.

[*] Added and id to custom field divs to make selection in CSS easier.
 See SF Support Requests #1429.

[*] Fixed CSS syntax error.

[+] Added authLdapGetName() function in auth_ldap.inc. This isn't used
 by MRBS currently, but people customising MRBS will be able to use
 it.

-------------------------------------------------------------------------------
Version 1.7.0 (Thu Nov 16th 2017):

[-] Set the default value of $smtp_settings['secure'] to '', so that TLS
 will not be attempted without the SMTP server advertising TLS support.
[-] A number of different changes to improve behaviour of browsers caching
 MRBS resources which shouldn't be cached.
[*] Capitalised "goto" button. See SF Support Requests 1167.
[*] Moved MRBS's .htaccess file into 2 separate example .htaccess files
 for different versions of Apache. The old .htaccess caused 500
 errors with a stock Apache 2.4 configuration.
[-] Fixed bug when using custom themes. See SF Support Requests #1170.
[+] Added ability to authenticate with either username or email address,
 if the authentication scheme supports it.
[+] Added Server Software information to the Help information.
[*] Restricted server details to admins, for security reasons.
[*] Removed "ExpiresActive Off" directive as it is no longer necessary
 given other fixes and could interfere with a site's caching policy.
 See SF Bugs #379.
[*] Eliminated $locale_warning global and moved reporting of locale
 setting problems to the error mechanism rather than the browser.
[*] Improved localisation, especially for French, colons are no longer
 hard-coded in HTML and instead populated by CSS.
[*] Removed the supplementary information in the 'fulldescription' text
 string. It didn't help and indeed was misleading as things like the
 type have their own form field.
[-] Stripped out HTML tags and entities from validation messages. See SF
 Bugs #380.
[*] Added a warning symbol on the edit_entry page instead of a green
 tick when an admin makes a booking that would normally violate one
 or more of the policy rules. See SF Support Requests 1171.
[*] Updated Portuguese translation. Thanks to Paulo Resende.
[*] Added even more options for configuring PHPMailer TLS settings.
[*] Set PHP's default charset.
[*] Changed the way that period names are defined so that they can now
 contain special chars and are put through htmlspecialchars() before
 being output to the browser. (Previously the site administrator had
 to encode special chars).
[-] Fixed a bug with the display of entries starting at 0000 in the
 month view. See SF Support Requests #1186.
[*] Added Swedish translations. Thanks to Lars Olsson.
[*] Added some CSS classes to the minicals.
[-] Excluded seconds from the default representation of start and end
 time. See SF Bugs #381.
[+] Added new config variable $weekdays to define weekdays and weekends,
 allowing for the possibility that weekdays are not the same as
 working days.
[*] Restricted passing of username and password to POST variables as a
 security measure. See SF Feature Requests #351.
[-] Changed access level for check_slot_ajax to match edit_entry.
[*] Made the default access level 1 for the report, search and
 view_entry pages to prevent usernames being revealed. See SF Feature
 Requests #351.
[*] Disallow password changes from edit_users.php via GET.
[*] Removed new lines from JavaScript confirm messages. Modern browsers
 can handle long lines.
[*] Restricted more form handlers to only accept POSTs.
[*] Improved word breaking slightly on webkit browsers. See SF Support
 Requests #951 and #1200.
[-] Fixed bug causing a booking occupying a single slot at the end of
 the day not to show in the day and week views. See SF Support Requests 1207.
[*] Made the DB connection DSN more strictly correct, and also support
 setting $db_host to "" (or unset), to indicate you'd like
 MRBS to use the default Unix domain socket instead of TCP. See
 [bugs:#384]. On Linux at least, this works for both MySQL and
 PostgreSQL.
[-] Fixed database transaction problems. See SF Support Requests #977.
[*] Altered transaction methods to use PDO transaction methods.
[*] Updated Spanish language file. Thanks to JLMartin.
[+] Added the ability to have different period names in each area. See
 SF Support Requests 1214.
[*] Added a little more description around $ldap_dn_search_dn config
 variable.
[-] Fixed bug causing ordinary users sometimes not to be able to change
 their own passwords. See SF Support Requests #1238.
[*] Added a timestamp column to the users table, and support for viewing
 it. Added function and triggers for updating the timestamp columns when
 using PostgreSQL.
[*] Added sorting by the real date on the timestamp column in the users
 table.
[-] Fixed a problem with buttons not appearing if the user is logged in
 with a username in a different case to the creator of the booking.
[+] Added a Romanian language translation, thanks to Mihai Andreana.
 See SF Support requests 1285.
[-] Fixed problem with validation of multiple email addresses - see SF
 Support Requests #1290.
[*] Added some error handling in the event of an invalid user id in
 edit_users.php.
[-] Fixed bug in password rehashing (auth_db).
[+] Add SAML auth and session schemes, thanks to Jørn Åne.
[*] Updated to jQuery 3.2.1 and jQueryUI 1.12.1, which includes XSS fixes.
[*] Added more error reporting to mutex_lock() [DB classes].
[-] Fixed a number of security issues in MRBS that were disclosed to
 the project by SySS GmbH, including XSS, CSRF protection and session
 fixation.
 [SYSS-2017-021, SYSS-2017-022, SYSS-2017-023, SYSS-2017-024]
[*] Improved error reporting around database mutexes.
[*] All forms now only accept POST submission.
[*] Implemented a new set of Form classes, though not all sections of
 MRBS are using them yet.
[*] Added CSRF protection throughout MRBS.
[*] Added a new config setting, $auth['allow_custom_html'], to determine whether
 custom HTML is allowed in rooms/areas. This defaults to off, so if you
 are using this feature and upgrade to 1.6.2 you will need to set
 the variable to true in your config.inc.php.
[*] Dropped support for Internet Explorer 9 and lower.
[-] Implemented a fix for when "All day" is checked and the area "eveningends"
 is past midnight. See SF Patches #62.

-------------------------------------------------------------------------------
Version 1.6.1 (Sun Feb 26th 2017):

[-] Fixed bug with the LDAP authentication scheme. See SF Support Requests
 #1143.
[*] Added ability to specify the "Room admin email" on creating a room.
 See SF Support Requests [support-requests:#1137]
[*] Added an unset() for $booking_types in systemdefaults.inc.php to make it
 clearer how they work - see SF Bugs #374
[-] Fixed bug to do with the booking day.
[-] Fixed bug in cookie session scheme causing getUserName() to return ''
 instead of null in the	case of a user not being logged in when.
[-] Fixed bug causing incorrect status to be given on mails sent out
 when an entry is approved. See SF Bugs #320.
[-] Fixed header layout problem in IE11 and below when using a tall
 logo. See SF Support Requests #1158.

-------------------------------------------------------------------------------
Version 1.6.0 (Sat Feb 11th 2017):

[*] Decreased cache expiry time for timezone files, to allow for more rapid
 updated for timezone changes.
[*] Caching added into LDAP authentication to improve performance, see SF bugs
 #335
[-] Fixed bug with unquoted column names. See SF Support Requests #816.
[*] Added a check to make sure that custom field names don't contain
 spaces. (See SF Support Requests #816)
[*] Improved debugging in auth_ldap a bit, to show errors from the ldap
 extension.
[-] Fixed a problem with the end time not being selected on the booking
	form if the default duration is not an integral number of slots
[-] Moved the PHP version check to happen earlier, otherwise MRBS will
 fail with obscure error messages if the PHP version is too low. See
 SF Bugs #337.
[-] Fixed bug in reports: the case sensitivity of types was not being
 recognised (see SF Support Requests #776)
[-] Fixed problem with day links in the wek view. See SF bugs #339
[-] Fixed bug that caused MRBS to miss conflicts with single entries
 when modifying a series. See SF Bugs #338.
[-] Fixed bug whereby the limit on the number of bookings isn't applied
 properly if an existing series is being modified and there is at
 least one single entry in the same interval.
[-] Fixed bug whereby the conflict checker wasn't firing when the repeat
 end date changed
[*] Changed MRBS default behaviour to be *not* to use persistent
 database connections, as they can cause problems with transactions
 and locks. At the same time changed the config variable to be
 $db_persist instead of $db_nopersist.
[*] Added sha256 authentication support for db_ext auth scheme. [Markus Gilli]
[*] Added ablility to read user access level from external database to
 db_ext auth scheme.[Markus Gilli]
[-] Fixed bug in CSV reports when running on Windows (see SF Support
 Requests 860)
[-] Fixed bug causing a booking to be made even if the specified repeat
 results in no bookings (eg a weekly repeat for Thursdays starting
 and ending on the same day, which isn't a Thursday)
[*] Changed the behaviour of MRBS when making a repeat booking that
 results in just a single entry (for example a daily repeat starting
 and ending on the same day). Previously this was treated as a
 special case and converted into a single entry. However it seems
 more logical to treat it as a series with just one entry. This
 enables the repeat characteristics to be edited in the future.
[+] Allowed the type field to be mandatory (see SF Support Requests 876)
[-] Fixed problem whereby the locale could not be set when automatic
 language changing was disabled and no override locale was set. See
 SF Support Requests #891.
[-] Fixed bug when requesting More Info. See SF Bugs #347.
[*] Updated Polish translation. Thanks to Anonymous from SF Bugs #347.
[*] Added room name to conflict details following suggestion on general
 mailing list.
[*] Added some email address validation (see SF Support Requests #897)
[+] Added a sort key for the area table.
[*] Changed the default character encoding for CSV files as the latest
 versions of Excel now seem to recognise UTF-8 automatically.
[*] Removed disabling off error reporting for the connection to the
 database during a database upgrade. If the site admin wants errors to
 go to the browser, eg for debugging, then they should.
[-] Fixed datalists so that empty strings aren't presented as options
[*] Added a datalist input to report inputs when the standard fields
 have select_options or datalist_options defined. See SF Support
 Requests #909
[*] Improvements to debugging in LDAP auth scheme
[*] Fixed problem with long words in brief descriptions causing unequal
 width columns in the calendar views. See SF Support Requests #951.
[*] Added '' as an option for $smtp_settings['secure']. See SF Support
 Requests #954.
[-] Fixed problem with week number link in mincals. See SF Bugs #357.
[*] Modified show_colour_key() so that the colour key is not shown if
 there are fewer than two types. (See SF Support Requests #1019)
[*] Improved behaviour of MRBS when only one type is defined, so that
 type options are not shown.
[-] Fixed problem with Chrome not showing datalist options (see SF bugs
 #360).
[+] Added config options to allow users (or just admins) to specify that
 an email shouldn't be sent when making a booking. Useful if you are
 just making a minor change or are creating a whole lot of bookings
 at the beginning of a term or season. See SF Support requests #974.
[-] Fixed problem with the endtime selector not having a selected value
 in the very rare case that the area's morningstarts or resolution is
 changed in between refreshes of the browser on the edit_entry page.
 See also SF Support Requests #983.
[-] Fixed problem with Bulk Delete on the report page. See SF Bugs #361.
[-] Fixed problem with Schedule and Policy tabs not appearing. See SF
 Bugs #362.
[-] Fixed potential problem with end time selector in edit_entry.php
 being blank when coming from the month view. See SF Support Requests
 #983.
[+] Added Wordpress authentication scheme.
[*] Got rid of usage of $HTTP_GET_VARS, $HTTP_POST_VARS and
 $HTTP_SERVER_VARS (no longer necessary)
[*] Allowed custom fields in the users table to be writable only by
 admins
[-] Fixed bug causing password validation not to be performed in the user
 admin page, and a few other minor issues.
[*] Changed German translation for rep_num_weeks. Thanks to Michael
 Hellwig.
[*] Disabled page refresh if running over a metered network connection.
[-] Fixed bug causing form validation to fail when using datalist inputs
[*] Changed refresh mechanism for month view to Ajax from meta refresh.
[-] Fixed bug whereby bookings for the last slot were not being
 displayed properly in the month view
[*] Wrapped the edit procedure in a transaction. See SF Support Requests
 #1064
[*] Updated German translations from Andrea Beranek
[*] A few improvements to checklang.php
[*] Upgraded to latest version of jQuery 2.x branch
[*] MRBS now uses a DB abstraction class utilising PHP's PDO. All SQL
 input is now parameterised, greatly improving security from SQL injection
 attacks.
[-] Fixed bug that resulted in possibly wrong values for enable_periods
 and reminders_enabled being shown on the Edit Area form.
[-] Fixed a performance problem when clicking on an empty cell in the
 week view when using hidden days on a large table.
[*] Improved formatting of error messages, including errors accessing the
 MRBS database.
[+] Added Joomla authentication scheme.
[*] Made the default setting for the "Do not send email" checkbox a
 configuration variable
[*] Changed report form so that for custom checkbox fields you can now
 select checked, unchecked or both. See SF Support Requests #1087
[-] Fixed bug that gave a double border on printing. See SF Support
 Requests #1078. Also fixed another bug at the same time - there was
 no border around bookings in the month view on printing.
[*] Changed the behaviour of the printed month view, getting rid of
 horizontal and vertical scrollbars. Instead, horizontal overflow is
 hidden and the table cell expands to accommodate vertical overflow.
[-] Fixed problem with (a) right border of bookings not appearing when
 using the 'both' option for monthly listings and (b) listings
 wrapping when using 'slot' or 'description'.
[-] Fixed bug causing fatal error when trying to delete a series.
[-] Fixed fatal error when exporting an entry from the view_entry page
[*] Improved error reporting when $mail_settings['from'] not set.
[-] Fixed problem with default_duration not going past the end of a
 booking day. See SF Support Requests #116
[-] Fixed problem when the default duration takes a booking beyond the
 start day and multiday bookings are not allowed.
[*] Made sure that the default duration for new bookings doesn't exceed
 the maximum duration
[*] Added a new option to disable "Opportunistic TLS" in PHPMailer.
[-] Fixed bug causing bookings to be shown as private when they weren't.
[-] Fixed bug that allowed the type colour to be shown even when the
 type was private. See SF bugs #372.
[-] Fixed bug preventing an event whose room name includes the area-room
 separator from being imported.
[*] Added the ability to recocgnise type information in imported .ics
 files using the X-MRBS-TYPE property.
[*] Added the ability to specify a default room if no LOCATION property
 is given when importing a VEVENT

-------------------------------------------------------------------------------
Version 1.5.0 (Fri Oct 23rd 2015):

[*] Updated Simplified Chinese translation, provided by 'Tide'.
[*] Added logging of SQL errors to PHP log, see SF Support
 Requests #560
[*] Improvememnts to import system, including performance and support
 for compressed files.
[+] Added Slovakian language support.
[-] Fixed bug causing triggering spurious policy violations when using
 periods and $max_duration is set. See SF Bugs #306
[*] Simplified the display of periods in the month view when a booking
 is just one period long. See SF Support Requests #575
[-] Fixed problems with CSV reports, see SF Support Requests #585
[-] Fixed bug which prevented exported reports being imported by some
 calendar apps, eg Outlook. See SF bugs #313
[*] Made MySQL database schema definition more explicit, in case of
 MySQL servers with changed defaults. See SF Support
 Requests #605
[*] Ensured that the $timezone configuration variable is valid. See SF
 bugs #312
[*] Added server-side validation to check that mandatory standard fields
 (eg the full description) are present
[-] Fixed false warning given on session_save_path readable check. See
 SF bugs #316
[+] It is now possible to set booking policies which distinguish between
 creating new bookings and editing or deleting existing bookings. (An
 edit requires a new booking to be created and the old one to be deleted).
[*] jQueryUI 1.11.12
[*] Added rollback of outstanding transactions to the shutdown function
 in an attempt to prevent duplicate bookings when using persistent
 database connections. See SF bugs #314
[*] Changed the handling of nb and nn languages so that explicit
 language files are provided for nn and nn rather than being mapped
 onto no. See also SF Support Requests #649.
[-] Fixed language auto-selection for locales which use comma as the
 decimal separator. See also SF Support Requests #649.
[*] Made the 'modified_by' field private by default, to match
 'create_by'.
[-] Fixed bug in checking number of slots when the booking day goes past
 midnight
[*] Datepicker visual improvements.
[+] Added floating headers to day and week view, as discussed in
 [support-requests:#559].
[-] Fixed bug causing page refresh not to work if the user wasn't logged
 in
[-] Fixed empty cell selection so that if you drag over a floating
 header the selection is cancelled.
[*] Updated cached copy of 'tzurl' files.
[-] Fixed bug causing resizing performance to get worse and worse the
 longer the browser has been open
[*] Converted all MySQL tables to use the InnoDB engine.
[*] Removed support for early versions of MySQL and PostgreSQL.
[*] Enhanced get_vocab() to allow sprintf() style formatting to give
 more flexibility on inserting parameters into language tags.
[-] Fixed bug causing an HTML5 validation error when
 $auth['only_admin_can_select_multiroom'] = TRUE;
[*] Added foreign keys to the MySQL and PostgreSQL database schemas,
 to improve database consistency.
[*] Added better error handling for the case when the MRBS tables have
 not been installed or cannot be accessed
[+] Made max_duration a per-area setting.
[-] Fixed bug in calculation of periods in report summaries. See SF
 Support Requests #667
[-] Fixed bugs in calculation of periods in time slot selectors in
 edit_entry form
[*] Changed minimum PHP version to 5.3.3
[-] Fixed bug that caused the number of periods in the Report Summary to
 be incorrectly calculated if the report start or end date happened
 to fall in the middle of a multi-day booking.
[-] Fixed bug causing invalid .ics files to be created when exporting
 bookings from view_entry or report.
[-] Fixed bug preventing the booking date being changed when multi-day
 bookings are not allowed
[-] Fixed "undefined method isValidInetAddress()" message when saving
 the edit_area form and using a Turkish locale [caused by the capital
 'I' in the method name]. Also other changes to support the behaviour
 of I/i in the Turkish locale.
[-] Fixed bug that allowed '0' to be entered as a valid email address
 for a user
[*] Added a stack trace to the fatal_error error log
[-] Fixed bug that caused the end time selector on the edit_entry form
 to be wrong when using periods and trying to make a new booking for
 a slot that wasn't the first of the day.
[*] Got rid of the $maxlength config variable and calculated it
 automatically
[*] Fixes to Indonesian language file. See SF Patches #44
[-] Fixed bug - 'ical' text string was not being passed through
 get_vocab()
[-] Fixed a bug with default_duration_all_day. See SF Support Requests
 #782
[*] Updated/added instructions on upgrading into UPGRADE. See SF Support
 Requests #609
[+] Added support for LDAP dereferencing behaviour, based on
 [patches:#56]
[*] Updated the 'db' auth scheme to default to storing password hashes in
 PHP's 'password_hash' format, if the password_hash() function is
 functional.
[-] Fixed bug causing problem upgrading when using PostgreSQL with
 $db_schema defined
[*] Changed email code to utilise PHPMailer instead of the previous
 PEAR class
[*] Removed 'mysql' $dbsys config option, now that it has been replaced
 by 'mysqli'
[*] Updated to DataTables version 1.10.9
[*] Changed default authentication scheme to 'db'.
[*] Removed sample/test data, and any mention of them in the
 documentation.
[+] Added more flexible LDAP filtering support, as supplied by Steve
 Cleveland. Adds configuration variables $ldap_filter_base_dn and
 $ldap_filter_user_attr.
[-] Corrected the distinction between the translation tokens 'private'
 and 'unavailable'.
[*] Italian translation updates, courtesy of Germano Massulo.
[*] Changed the 'cookie' session scheme to use HMAC hashing instead
 of Blowfish encryption.
[*] Restructured mail debug code and made default output destination the
 error_log
[-] Fixed bug which caused bookings to be made for all day if any of the
 areas had a default duration of all day
[-] Fixed bug causing ical_uid not to be generated for a series when
 conflicts are skipped (see SF Bugs #334). Added upgrade code to fix
 existing database entries with no ical_uid.
[-] Fixed problems with database schema version upgrades 17, 24 and 25.

-------------------------------------------------------------------------------
Version 1.4.11 (Wed Jun 18 22:00:00 BST 2014):

[+] Implemented an inactivity time out that will log users out after
 a period of inactivity.
[-] Fixed problem with Strict error messages being generated when
 mail messages are sent using PHP versions < 5.4. See SF Support
 Requests #367.
[*] Added support for Estonian in Windows and Unix.
[+] Added ability to use custom CSS files.
[-] Fixed bug causing the approval buttons not to be displayed on the
 view_entry page in some circumstances (see SF Support Requests
 #356).
[+] Added ability to specify the database port with the config variable
 $db_port.
[+] Added the ability to set a maxlength attribute for custom fields
 on the edit_entry page.
[*] Changed default database system for 'db_ext' authentication from
 mysql to mysqli.
[*] Added quoting of table and column names when using 'db_ext'
 authentication.
[*] Updated Czech translation.
[-] Prevented output of headers when running reports in CLI mode.
[*] Removed closing PHP tags (?>) at the ends of files as they are
 unnecessary and can cause problems with unexpected output.
[-] Fixed problem with alignment of room and area selects in the week
 and month views. Thanks to William Haller.
[*] Improved error reporting in the week view when there are no rooms.
[+] Implemented an earliest booking date using absolute dates,
 controlled by the new config variables $min_booking_date_enabled
 and $min_booking_date.
[*] Added the ability to specify a schema as a database config
 variable and thus the ability for MRBS to work with databases
 containing multiple schemas.
[+] Added 'modified_by' field so you can see who last modified an
 entry.
[+] Added Bahasa Indonesian translation.
[*] Upgraded to jQuery 2.1.0, jQuery UI Release 1.10.4.
[*] Modified import.php so that it is tolerant of blank lines at the
 start of the file and also between components.
[-] Fixed some errors in the Windows language map and expanded the
 Windows codepage map.
[-] Fixed a problem in the day and week views with resizable bookings
 not filling the whole time period when $clipped is set to FALSE.
[*] Changed the ORGANIZER in an iCalendar event to be a new email
 address, defined as $mail_settings['organizer'] and not the
 creator.
[*] Added nofollow to robots meta tag.
[-] Fixed problem with colour key and trailer shifting downwards
 during a booking resize in IE.
[-] Fixed problem with resizing bookings in IE. See SF Bugs #293 and
 #300.
[-] Changed form action link to a relative path name from an absolute
 path name, which was causing problems on some sites with reverse
 proxy rules.
[*] Made the default area and room consistent on import and export of
 an event.
[-] Fixed bug in export of an event: the description included the
 complete booking details instead of just the description.

-------------------------------------------------------------------------------
Version 1.4.10 (Mon Jul 08 22:00:00 BST 2013):

[+] MRBS now supports booking days that span midnight. At the same time a number of problems to do
 with DST handling have been fixed, particularly the display of
 the transition hours and the operation of MRBS in timezones where
 the DST change is not 1 hour.
[-] Fixed bug causing fault in formatting of month view.
[-] Fixed bug in upgrade procedure causing the upgrade to fail if the
 number of rows affected by a query was zero.
[+] MRBS now has a simplified interface for making repeat bookings
 and the range of monthly repeats has been expanded. It is now
 possible to have monthly repeats on the last, second last, third
 last and fourth last weekdays of the month.
[-] Fixed formatting problem on Report page in some languages.
[-] Fixed bug preventing bulk delete working.
[-] Fixed problem with filtering and sorting of reports (column
 numbers off by one)
[*] Lots of code restructured and simplified for improved
 maintenance/flexibility.
[+] Added a config variable to allow the order of the fields in the
 Search Criteria section of the Report form to be changed.
[+] Added a config variable to allow the order of the fields in the
 Presentation Options section of the Report form to be changed.
[*] Converted autocomplete fields to use HTML5 <datalist> elements if
 supported, otherwise to fall back to the jQuery UI Autocomplete
 widget. Added ability for users to define $datalist_options in
 the config file to force a field to be treated as a datalist.
[-] Fixed various undefined index/variable problems.
[-] Fixed some HTML5 validation issues.
[*] Prevented E_USER_NOTICE errors being reported during normal MRBS
 operation.
[-] Fixed problem with French translation.
[-] Fixed bug where <span>s used for sorting the HTML table were
 appearing in the CSV and iCalendar reports.
[+] Added Serbian (Latin) support - translation provided by 'knjigor'
 on the Sourceforge tracker.
[*] Upgraded jQuery from Release 1.7.2 to 1.8.2.
[*] Upgraded jQuery UI from Release 1.8.22 to 1.9.1.
[-] Fixed syntax errors in a number of upgrade "post.inc" files.
[-] Fixed occurrences of != '' being used instead of !== ''. Causes
 bugs such as Confirmed as well as Tentative reports being shown
 in reports when only tentative have been requested.
[-] Ensured that rooms in the room list are sorted by the room sort
 key.
[+] Added the ability to specify the "fifth" and "fifth last"
 weekdays of the month when making monthly recurring bookings.
 These are strict interpretations and will result in no bookings
 for months where there are only four of the specified day of of
 the week. (Using "last" or "first" will give you the fourth or
 fourth last weekday if there are only four weekdays in the
 month).
[-] Fixed bug causing the wrong mode (periods/times) to be used in
 certain circumstances for reporting durations.
[-] Fixed major bug when editing an individual entry in a series that
 caused a new series to be created alongside the original series.
[-] Fixed bug resulting in button labels in the report form not being
 translated.
[-] Fixed bug causing an infinite loop if a negative day value is
 given in the query string. Thanks to Neil Carter.
[-] Fixed bug causing incorrect email notifications to be issued when
 members of a series were deleted (see SF Bugs #247).
[-] Translate approval status and confirmation status radio buttons
 in report.php.
[*] Improved the way the "start of last slot" field is displayed on
 load.
[*] Mark emails from mrbs as auto-generated, so that vacation mailers
 don't answer mrbs mails.
[-] Fixed problem with misleading email notifications (see SF Bugs
 255).
[*] Add room description as tooltip for room list in header (only in
 list mode for now).
[*] Updated German translation.
[*] Add space before () when showing capacity for room
 names.
[*] Add room description as tooltip for room list in
 header (also in select mode) Newer browsers seem to support
 tooltips for select options - nice :).
[+] Make clipping of bookings in month view configurable via
 $clipped_month.
[*] Updated in-built timezone definitions.
[*] Changed default $dbsys to 'mysqli' from 'mysql', which is now
 deprecated in PHP 5.5.0.
[-] Fixed typo in Dutch translation. Thanks to Dieter Adriaenssens - see SF
Patches #35.
[-] Fixed bug preventing singular form of the duration units being
 shown.
[-] Fixed a bug causing Ajax conflict testing not to work after a
 failed HTML5 form validation event.
[*] Updated Danish translation. Thanks to Søren O`Neill.
[-] Fixed warnings/errors from require_once() calls in
 session_cookie.inc.
[-] Fixed bug causing time selectors not to work properly after the
 area has been changed. See SF bugs #258.
[-] Fixed bug where no room was selected on changing area. See SF
 bugs #259.
[-] Added client and server side validation to check that at least
 one room is selected. (See SF Bugs #259).
[-] Disabled Ajax conflict checking and day/week/month page refresh
 when the page is not visible (subject to browser support of page
 visibility).
[-] Fixed bug whereby the repeat entry row is not deleted if you do a
 bulk delete from the Report page of all the entries in a series
 (see SF bugs #260).
[*] Updated Italian translation. Provided by Diego Zuccato.
[-] Fixed bug causing clicking outside the datepicker to result in
 date selection, rather than cancelling the datepicker. See SF
 Bugs #263.
[-] Disabled page refreshing while resizing is in progress.
[-] Fixed bug causing interval timer to stop occasionally.
[-] Fixed a bug causing multiple timers to be fired when the page is
 hidden and then unhidden.
[-] Prevented page refresh when the mouse is hovering over a resize
 handler (ie the user is about to start a resize).
[*] Improved performance of drag selection, especially with large
 tables.
[-] Made sure that page refresh isn't restarted while we are in the
 middle of a drag selection when we pass over the handles for
 resizable bookings.
[-] Fixed bug causing incorrect checking of resolution and number of
 slots when the booking day stretches past midnight.
[-] Fixed some label problems on the report page. See SF Bugs #265.
[-] Fixed bug resulting in no end time options being offered if there
 is only one enabled area.
[-] Fixed incorrect quoting of id column, resulting in error messages
 when running under PostgreSQL. See SF bugs #266.
[*] Updated Swedish translation. Thanks to Anders Henhammar.
[*] Moved the site_faq files into their own directory.
[+] Added a Swedish site_faq. Thanks to Anders Henhammar.
[-] Fixed bug causing the "Goto" datepicker to be reset if it was
 open at the time the booking table was refreshed.
[-] Fixed bug when approving bookings and using PostgreSQL (removed
 LIMIT clauses from UPDATE statements as they are not supported by
 PostgreSQL).
[*] Updated Finnish translation. Thanks to Tuomas. See SF Patches #38.
[-] Fixed bug causing error messages when there are no mail
 recipients. Thanks to Tuomas. See SF Patches #37.
[*] Disabled E_STRICT errors (see SF Bugs #272).
[-] Fixed bug when using an SQL reserved word as a custom field name.

-------------------------------------------------------------------------------
Version 1.4.9 (Wed Oct 03 22:00:00 BST 2012):

[-] Fixed bug that caused the '+' button for a booking to not work correctly.
[+] Added Hebrew support, as contributed by Michal Kastro.
[+] Added Thai language support, as contributed by Suthep.
[*] Improved language detection code.
[-] Fixed JavaScript error produced if you have a mandatory textarea
 field. Thanks to Neil Brown. See SF ID 3472380
[*] Changed "max_book_ahead" to stop people getting around the restriction
 with long bookings.
[-] Fixed a number of user interaction problems.
[-] Fixed auth_ldap configuration variable handling, thanks to Kevan
 Carstensen.
[-] DataTables AJAX requests now use relative URLs in order to stop
 cross-domain requests.
[+] Added ability to import iCalendar (.ics) files.
[*] Updated Turkish translation from Ahmet YILDIZ.
[*] Updated German translation - thanks to JWiemann.
[+] Introduced the $vocab_override config variable, allowing MRBS
 text strings to be customised without editing the lang files.
 Thanks to dwpoon.
[-] Improved SQL escaping so that it uses the database escaping
 routines and not PHP's addslashes() function. Thanks to
 Henry S. Thompson.
[-] Fixed bug which meant that the correct timezone wasn't
 necessarily being used when dragging a booking.
[-] Fixed performance issue when using LDAP authentication and HTTP
 sessions. Thanks to dwpoon.
[-] Fixed bug causing an entry of '0' in a mandatory custom field to
 be rejected.
[*] Changed font colour for row and column labels in the calendar
 view when printing to make them show up better in Google Chrome
[*] Improved CSV output, including removal of the requirement
 of having PHP's 'iconv' extension.
[-] Fixed infinite loop in setting the time zone when
 $timezone configuratation variable wasn't set.
[+] Added support for setting limits on the maximum number of
 bookings that can be made per day, week, month, year and for any time
 in the future. You can set limits globally as well per area,
 enabling you to set policies of the sort "Max 2 bookings per week
 in this area and max 5 bookings per week across the system". Note
 also that setting 0 bookings per period for an area is a way of
 stopping ordinary users from making bookings in a particular
 area.
[-] Fixed bug that caused the ticks and crosses on the edit_entry
 page not to appear properly in some browsers (eg Chrome and IE8)
 on some systems.
[+] Added Portuguese Brazilian translation - thanks to Gleise S. O.
 Teixeira
[+] Added Hungarian translation. Thanks to Gergely Kiss.
[*] Made use of HTML5 form element attributes (eg "required") so that
 client-side form validation can be done by the browser where
 possible, instead of by JavaScript.
[*] Tidied the MRBS distribution, so that different types of files
 live in different directories.
[*] Updated Norwegian translation. Thanks to Thomas Haukland.
[+] Added an array of substitute languages, for example to substitute
 'no' for 'nb-NO'.
[-] Fixed bug causing resizable bookings not to work properly when
 using periods.
[*] Added a couple of extra headers to expires_header() to encourage
 caching.
[*] Simplified presentation of output options on report form.
[*] Improved reports.
[-] Fixed bug preventing resizable bookings from working when there's
 only one time slot or period in the day.
[*] Added an HTTP header to prevent IE going into Compatibility View.
[+] Added a new config setting, $max_booking_date, to prevent
 bookings after a certain date, eg the end of term. Thanks to a
 suggestion by Matthew Hilling.
[*] Made the users table use an Ajax data source for better
 performance with large numbers of users
[-] Fixed bug on pending page where only a maximum of 10 members of a
 series were being displayed
[*] Added some positive visual feedback when bookings are altered by
 dragging the cell border.
[-] Fixed bug giving incorrect previous repeat end date in email
 notification when a booking is changed from an individual booking
 to a series.
[*] Upgraded jQuery and jQuery UI.
[-] Fixed some issues in the some of the upgrade steps.
[*] Updated Japanese translation. Thanks to Takanori Matsuura.
[*] Updated Czech translation. Thanks to Ondřej Kopka.
[*] Implemented page refresh in the day and week views using Ajax
 requests if possible instead of through a <meta> tag.
[*] Improved Javascript code correctness.
[-] Improved error handling when updating VTIMEZONE definitions. Now
 if MRBS is unable to download a new definition from the web, as
 will happen on sites that do not have external internet access,
 the last_updated field is updated anyway so that MRBS does not
 attempt to retry for another 28 days.
[*] Kept track of how many Ajax requests are outstanding on the
 server so that we don't swamp the server with requests if for
 some reason the server is taking a long time to process them.
[-] Made utf8_bytecount() PHP4-safe.
[-] Fixed problem with users being unable to login when MRBS is
 running on IIS
[-] Fixed sorting and styling of integer custom fields in
 edit_users.php
[-] Fixed a bug in 'db' and 'db_ext' authentication schemes when
 using MySQL whereby a login was validated successfully even if
 the username contained trailing spaces. This then caused problems
 subsequently when comparing the creator of a booking with the
 user. See SF Bugs #245.

-------------------------------------------------------------------------------
Version 1.4.8 (Sun Jan 01 22:00:00 GMT 2012):

[-] Fixed bug that meant that '0' was treated as an invalid search
 string.
[-] Fixed auth_ext authentication for users or passwords that contain
 a $ character followed by a number.
[*] Allowed entries to be deleted even if they are longer than the
 max_duration or beyond the max_book_ahead date. Following
 suggestion from Marco Tedaldi.
[*] Made the week numbers and months in the mini calendars into
 links, following a suggestion by Marco Tedaldi.
[-] iCalendar notifications expanded to allow more applications to
 understand times/time zone information. See SF tracker 3324122.
[*] Added database error checking and handling to sql_*_field_info().
[-] Corrected a minor error in edit_entry Javascript, thanks to Guenter
 Boehm.
[*] Improved SQL error reporting.
[*] Made the date range for the date selectors a config variable.
[*] Added an option on the booking form to skip past conflicting
 bookings when making repeat bookings.
[+] Added a "Skip and book" button to the page listing conflicting
 entries if you try and make a repeat booking where some of the
 entries have conflicts.
[*] Upgraded jQuery UI from version 1.8.11 to 1.8.16.
[+] Added a config setting to disable email sending, overriding any
 other settings. Useful for testing MRBS without having to worry
 about sending mail to people not expecting it.
[*] Added a Back button to the edit_entry page.
[*] Added a list of dates of repeat bookings to email notifications.
[-] Fixed bug whereby email notifications would not be sent if MRBS
 failed to find an address for those on the "To" line but there
 addresses on the "Cc" line.
[*] Improved the message in email notifications for a list of deleted
 repeat bookings
[*] Removed the privacy radio buttons from the Report form when the
 user is not logged in as they're then redundant because only the
 "user" will only be able to see public bookings. Thanks to a
 suggestion from Jörg Wiemann in SF Tracker ID: 3405402
[*] Added an Ajax capability to the edit_entry form so that a booking
 is checked for scheduling and policy conflicts as the booking
 parameters are changed.
[-] Fixed bug causing disabled rooms to be displayed incorrectly in
 view_entry.php
[*] Converted language FAQs to UTF-8.
[*] Added a timer so that a potential booking on the edit_entry form
 can be periodically rechecked for validity, in case someone else
 makes or releases a booking while the page is open. Can be
 disabled and the interval set by means of a config variable.
[*] Revamped the LDAP authentication scheme somewhat. You can now
 specify most of the configuration parameters as arrays, so that
 you can have multiple servers or multiple base DNs that are
 configured in different ways.

 Additionally, you can now determine whether a user is an
 administrator by defining LDAP configuration parameters:
 $ldap_group_member_attrib and $ldap_admin_group_dn. See
 systemdefaults.inc.php for details.
[-] Set PostgreSQL client encoding to UTF8. Thanks to Andreas Lange
 for the patch (SF ID 3413080)
[*] Added a Back button to the Add/Edit users form.
[*] Changed the report from method from "get" to "post" to make it
 possible to accommodate complicated search criteria, especially
 with many custom fields
[+] Added the ability to run report.php from the command line (useful
 for example for setting up reports as cron jobs). Provided a
 manual page at help_report.html. The ability to run from the
 command line is disabled by default in systemdefaults.inc.php and
 has to be deliberately enabled.
[*] Added a tabbed dialog that can be displayed to give more details
 of schedule and policy checks on the edit_entry page. This has
 the advantage that it contains clickable links to conflicting
 bookings, which the tooltips cannot.
[*] Added a sanity check to check that 'private_override' is one of
 the three valid values in case the database has somehow got
 messed up.
[*] Stopped ordinary users seeing the disabled/enabled status of a
 room.
[+] The
 report results, search results, users list, rooms list and
 pending list are now sortable, searchable tables. In addition
 admins can do bulk deletes of the entries returned in a report.
[*] Added Russian translation supplied by Capitan Nemo.
[*] Improved the performance of the day/week/month views, especially
 the day view in IE with large tables (many rooms and many
 periods/time slots).
[*] Updated installation instructions for a PostgreSQL database to
 create a database with UTF8 encoding. See SF ID: 3413080.
[*] Updated German translation, thanks to Jörg Wiemann.
[*] Changed alt text on logo. Thanks to dwpoon. See SF ID 3420435.
[+] MRBS now supports
 (except for IE8 and below) (a) the selection of new bookings by
 dragging over empty cells on the day and week views and (b) the
 adjustment of existing bookings by dragging their sides or
 corners.
[-] Correctly encode subject in delete notification mails.
[-] Changed ical output so that some email clients no longer get
 booking automatically imported into their calendar, without any
 user action.
[-] Fixed bug whereby $auth['only_admin_can_book'] didn't work as required
 if $auth['deny_public_access'] was set.
[*] Got rid of the $mail_charset config variable. All emails now sent
 as UTF-8.
[*] Restricted the requirement for the iconv module to those cases
 when it is really needed, ie when the server is running AIX or
 Windows.
[-] Fixed, or at least ameliorated, a problem that can occur on
 Windows servers where the dates can randomly change language, due
 to other scripts running in a different thread in the same
 process calling setlocale().
[*] Removed the code that had to exist in config.inc.php in a
 particular place. Booking entry types are now configured by the
 simple array $booking_types, which contains elements like "E" and
 "I". The entry types are now localised in the translation files
 as "type.X" where X is the booking type. config.inc.php no longer
 needs to include language.inc, and the $typel configuration array
 has been removed.
[-] Removed a number of undefined variables warnings.
[-] Fixed a problem whereby "foreign" characters in CSV reports
 opened by Microsoft Excel did not display properly. This is
 actually an Excel problem, rather than an MRBS problem, but there
 is now a circumvention in MRBS.
[*] Restricted the options available in the end time selector to
 those permitted if a maximum duration has been specified.
[*] Updated French translation.
[*] Ensured that if a new booking is selected and the default
 duration takes the booking past the end of the booking day, then
 the default end time is the end of the booking day (rather than
 the start time + resolution, as at present).
[-] Escaped some Javascript strings.
[+] Added option to auth_ldap to disable client referrals. Provided
 by Daniel Yule.
[+] Made $timezone a per-area setting. Based on input from Chris
 Thompson.
[*] Ensured that the “all day” check box only appears if the maximum
 booking duration allows that length of booking. Based on a patch
 from Daniel Yule.
[*] Added the ability to display the mini calendars at the bottom, if
 $display_calendars_bottom is set to true. Based on a patch from
 Daniel Yule.
[+] Added support for displaying the week number in the month view if
 $view_week_number is set.
[-] Fixed two bugs: (1) Undefined index error if a mandatory field is
 defined in the config file but doesn't exist in the database (2)
 MRBS not picking up mandatory integer fields when JavaScript is
 disabled.
[*] Limited the timezones presented in the timezone drop-down box on
 the Edit Area page to those that have a corresponding VTIMEZONE
 definition.

-------------------------------------------------------------------------------
Version 1.4.7 (Wed Jul 13 21:20:00 BST 2011):

[-] Fixed display of custom fields in the "view entry" screen.
[-] Fixed report link in the "You are <user>" header element.
[*] Allowed for more than 26 booking types.
[-] Fixed Javascript escaping function.
[-] Fixed incomplete PHP tag in one file.
[*] Added error handling to the auth_db database queries.
[-] Fixed bug whereby the approval status in the repeat table wasn't
 being set properly.
[-] Fixed client side booking validation to check for mandatory custom
 checkbox inputs.
[*] Updated Spanish translation provided by Jose Luis Martin
 Jimenez.
[-] Fixed a bug whereby the header wasn't displayed in some
 circumstances
[-] Fixed a bug whereby the trailer wasn't being displayed properly
 in the case of a fatal error.
[*] Hopefully clarified config.inc.php a little more.
[-] Fixed problem in the time selectors for bookings that occur during
 a DST changeover
[-] Fixed bug causing custom fields not to be reported properly in
 delete email notifications
[*] Upgraded to jQuery 1.5.2 and jQuery UI 1.8.11.
[+] Made the inputs for Match Area and Match Room on the Report page
 into autocomplete fields.
[+] Added an option to make the default duration All Day.
[-] Changed the encoding of the text calendar in email notifications
 to base64 in order to CRLF sequences. Thanks to Thomas Bleher for
 the patch.
[*] Changed encoding of mail messages from 7bit to 8bit.
[*] Removed unnecessary <span> in the trailer. Thanks to patch from
 Thomas Bleher.
[*] Updated German translation, thanks to SF tracker #3293801.
[*] Clarified documentation in auth_ext.php a little.
[*] Added some email debug information to help diagnose problems when
 sending emails.
[*] Extracted the per-area default settings from systemdefaults and
 put them into a new file, areadefaults.inc.php, to make it more
 obvious that these are the default settings for new areas and
 will have no effect on existing areas.
[*] Added lang.en as the fall-back language, in order that something
 is shown even when the $default_language_tokens file does not
 have a translated token. Based on a patch by Thomas Bleher.
[+] Added an option to report.php to summarize by type. Thamks to a
 patch submitted by Thomas Bleher.
[-] LDAP authentication change to fix (particular) configurations
 using $ldap_filter. Patch provided by rudd_j in SF tracker
 #3299258.
[-] Fixed bug preventing a room name being changed when only the case
 of letters in the name was being changed.
[-] Fixed bug which meant that a user logging in with an upper case
 version of his name. This only occurred in certain database
 configuratations.
[-] Fixed bug that caused durations to be formatted incorrectly in
 some languages (eg German). See SF tracker #3313655.
[+] On the Report page, converted input fields into auto-complete
 fields for custom fields that have select_options defined - For
 custom fields allowed $select_options to be an associative array,
 thus making it easy to change the displayed value without having
 to change the database. (See SF #3315966)
[+] Implemented an optional limit on the maximum length of a booking
 for non-admins. At the moment it is a global limit rather than
 per-area. It also does not yet prevent invalid booking lengths
 being shown in the edit_entry form.
[*] Tweaked iCalendar email data. (See also SF Tracker id 3297799)
[+] Added two new auth methods, 'crypt' and 'auth_basic'.
[-] A fix for use an uninitialised array in
 Themes/default/header.inc, as reported (and fix provided) by
 Henry Thompson on the mailing list.

-------------------------------------------------------------------------------
Version 1.4.6 (Wed Feb 09 22:00:00 GMT 2011):

[+] Areas and rooms can now be disabled.
[*] Updated bundled version of jQuery UI to 1.8.6.
[+] Added the ability to disable the new booking email notifications,
 and tidying the configuration variables defining the email configuration.
[-] Fixed bug causing approval of entries not to work when using
 PostgreSQL.
[*] Fixed error handling if there's an SQL error when approving an
 entry.
[*] Changed the privacy and confirmation status fields to be radio
 buttons rather than checkboxes to make it slightly clearer what
 they do.
[*] Updated PEAR Mail package to Release 1.2.0 and Net_SMTP to
 Release 1.4.4.
[-] Fixed bug whereby mail was not being sent to those on the cc and
 bcc lists.
[-] Fixed bug that caused the room and area links in the day, week
 and month views to operate incorrectly when using "list" format.
 See SF Tracker ID: 3134046.
[-] Fixed bug which caused repeat, all-day bookings not to book the
 last day of a series.
[*] Updated Portuguese translation
[*] Updated French translation provided by Philippe Levi.
[-] Added escaping of JavaScript strings.
[-] Added missing HTML escaping in a number of places to solve possible
 XSS attacks.
[+] Added support for HTML emails, optionally with ICS attachments for
 "invitation" support. You can also download bookings in ICS format from
  the web interface.
[*] Added datepicker localisations for English (New Zealand) and English
 (Australia). Also corrected the localisation for Norwegian.
[-] Fixed a bug whereby book ahead policies would not be applied
 when using periods. [SF Support Request #3161926]
[*] Removed MRBS's non-Unicode mode. All installations will now run
 in Unicode, with all pages served as UTF-8 and all data in the database
 as UTF-8. If you upgrade an installation running in non-Unicode mode
 you must run the improved convert_db_to_utf8.php script, as detailed
 in UPGRADE.
[*] Updated/fixed Czech translation from Marek Grác.
[-] Fixed problem where start and end times do not appear correctly
 in the select boxes on the edit_entry form when using 12 hour
 format and running on a Windows server.
[*] Updated the MySQL table installation SQL files to utilise MySQL
 4.1 features. A version for older versions of MySQL is retained
 as tables.my.pre41.sql.
[*] Removed hard-coded formats for dates/times and made them configuration
 variables.
[*] Clarified documentation on custom fields.
[-] Fixed bug whereby start and end times were incorrectly presented
 in reports when using mixed periods and times.
[-] Fixed bug whereby report summaries were not sorted properly by name.
[-] Fixed report summary table so that it can cope with mixed periods and
 times.
[-] Fixed search so that it can handle mixed periods and times.
[-] Fixed pending bookings functionality so that it can cope with
 mixed periods and times.
[*] Removed a possible PHP deprecation warning, SF #3165269.
[*] Made it so that you return to the right area after deleting a
 room. Based on a patch in SF #3019525.
[*] Added coloured borders for booking types in the printing style sheet.
 Submitted by tuomas_ in SF #3003248.
[*] Added error logging into fatal_error(). Patch submitted by
 'shallot' in SF #2955546.
[+] Added the ability to specify a footer in the theme. Patch
 submitted by rudd_j in SF #3166889.
[+] Implemented the ability to configure the default booking
 description with $default_description, as requested in SF
 #3001740.
[*] Now chooses a determined locale wven if MRBS doesn't have a
 translation for that locale. It's better than nothing to get
 dates/times right. Reported by 'corn_kid' as SF #2934313.
[*] Improved handling of SQL errors.
[*] Updated Spanish translation received from Jose Luis Martin
 Jimenez.

-------------------------------------------------------------------------------
Version 1.4.5 (Mon Nov 22 22:00:00 GMT 2010):

[+] Added the ability to prevent ordinary users from selecting multiple
 rooms when making a booking. Controlled by the config variable
 $auth['only_admin_can_select_multiroom'].
[*] Updated translations for: Portuguese, Dutch, Swedish, Norwegian,
 German, French.
[+] Added a new configuration variable to set the default booking 'type',
 $default_type.
[*] Improved the translation helper script, checklang.php.
[-] Fixed a problem with the formatting of radio button labels on the
 edit area page in IE8.
[*] Improved selection of language to use in the Javascript date pickers.
[*] Made the day change automatically when the date picker in the
 page header is used.
[+] Introduced the ability to get a user's email address from LDAP
 if the system is configured to use LDAP for authentication.
[*] Improved the localisation of the datepicker calendar so that it will
 utilise an xx-YY language specifier if that translation exists.
[*] Made the area and room admin email address boxes textareas, and
 allowed newlines to be used as address separators.
[-] Fixed problem with internationalisation of email notifications
[+] Added the ability to make a custom entry field mandatory, introduces
 the config array variable $is_mandatory_field.
[-] Fixed problem which gave a warning in regular expression in PHP session
 scheme.
[*] Some fixes/improvements in session/cookie handling in PPS and cookie
 session schemes.
[-] Fixed setting of area defaults, and created a database schema update
 to fix existing settings.
[+] Implemented $enable_periods on a per-area basis. This means that
 sites can now have some areas using periods and others using time
 slots.
[-] Some fixes to support Postgresql, including a fix for a problem
 reported on the mailing list with confirming bookings.
[+] Added the ability to have "tentative" bookings, i.e. bookings which are
 not 100% certain to happen, but where the user wants to reserve the slot
 in the meantime.
[*] Expanded the documentation on timezones. See SF tracker ID: 3102895.
[+] Added a config variable $auth['only_admin_can_see_other_users']
 to allow visibility of other users' details to be restricted when
 using the 'db' authentication scheme. See SF tracker ID: 3102887.
[+] Improved the way in which meeting times are specified. You now specify
 the start date/time and also the end date/time.
[*] Optimised SQL to improve performance.
[*] Japanese translation update from Takanori MATSUURA.
[*] Clarified the edit booking form somewhat, SF tracker #3011370.
[-] Fixed a bug that meant users could delete past bookings even though
 the booking policy said they couldn't.
[-] Fixed problem whereby a booking of 1 year would show up as 1 minute
 in edit booking form.
[-] Fixed bugs which meant that privacy settings were ignored in searches
 and reports.
[+] Added configuration option to deny public access to MRBS.
[*] Improved choice of default area/room.
[-] Fixed a few issues to do with provisional bookings.
[*] Czech language update supplied by Marek Grac.
[+] Added the ability to have custom fields in bookings, see details
 in INSTALL.
[*] Added cache expiry for generated CSS files.
[-] A few fixes for custom fields in the user table.
[*] Added a check in the upgrade code to check if it is a new installation
 of MRBS.
[+] Added Javascript date-picker widgets.
[+] Added the ability to constrain certain fields (name, description
 and custom fields) in the entry table to a set of values defined
 in the config file.
[+] Added a repeat symbol to the display of series on the day, week
 and month views.
[+] Added the ability to choose which fields in the entry table
 should be regarded as private.

-------------------------------------------------------------------------------
Version 1.4.4.1 (Thu Apr 21 21:30:00 BST 2010):

[-] Fixed bug in the 1.4.4 release, the database schema number in the
 installation SQL files was incorrect.

-------------------------------------------------------------------------------
Version 1.4.4 (Wed Apr 21 17:00:00 BST 2010):

[*] Finnish translation update, provided by Tuomas.
[-] Fixed test for E_DEPRECATED, which was causing warnings on
 some versions of PHP.
[+] Added the ability to repeat the headers at the bottom of the
 table on day and week views - see the configuration variable
 $column_labels_both_ends.
[+] Added ability to set a password strength policy for the 'db'
 authentication scheme.
[-] Added a missing include line, the absence of which was causing
 errors when $default_room was non-zero.
[+] Added the ability to have "provisional" bookings. i.e. bookings
 that need to be authorised before they enter the calendar.
[-] Fixed a problem with the display of the All Day checkbox in the
 edit_entry form in IE8.
[*] Set input focus on page entry for a few pages.
[-] Fixes for LDAP authentication scheme when $ldap_filter is set.
[+] Added the ability to limit how far in advance non-admin users
 can make bookings.
[*] Added  the name of the deleting user to email notifications of
  deleted entries.
[-] Fixed incorrect reporting of durations in email notifications.
[-] Fixed bug when using periods which meant that if you made a
 booking for N periods and there were fewer than N periods left in
 the day, the booking didn't flow on to the next day properly
 unless the start period was the first period of the day.
[-] Fixed bug which caused the duration to be blank in email
 notifications for bookings when "All day" was checked.
[-]  Partially fixed a problem to do with the handling of All Day
 bookings crossing a DST boundary.
[+] Added the ability to prevent ordinary users from making repeat
 bookings. Controlled by the configuration setting
  $auth['only_admin_can_book_repeat']
[-]  Fixed a bug which meant that n-weekly repeats weren't being
 calculated properly when more than one repeat day was checked.
[-] Removed text after closing tag in Polish translation file,
 as reported in SF #2970638.
[*] Redesigned the admin page, renamed the page to "Rooms".
[+] Added the ability to add custom fields for rooms, the custom
 fields must be added by the administrator in their favourite SQL
 admin tool.
[*] The "edit users" screen now handles textareas and checkboxes for
 custom fields, just like the room custom field handling does.
[+] Added a "custom_html" field for areas and rooms - this allows
 custom HTML to be attached to areas and rooms.
[*] Added check to see if the configuration variable $timezone is set -
 it's too important to count as a non-fatal configuration error.
[*] Improved the layout of email configuration settings in
 systemdefaults.inc.php to make them more clear.
[*] Added transaction support to MySQL DB abstractions.

-------------------------------------------------------------------------------
Version 1.4.3 (Tue Nov 24 22:00:00 GMT 2009):

[+] Moved default configuration values out of config.inc.php - this file
 should now only contain settings the administrator has changed (plus
 a few unfortunately necessary bits of internal code).
[-] Improved error reporting in the DB upgrade mechanism.
[*] Some code tidying to improve correctness and remove warnings.
[-] Added declaration of $PHP_SELF for PHP versions < 4.1.0.
[-] Fixed problem whereby empty cells in the month view weren't clickable.
[+] Added a configuration variable for showing week numbers in the mini
 calendars.
[-] Added SQL escaping for a variable not directly enterable by a user.
[-] Removed duplicate primary in PostgreSQL users table.
[-] Improved the PostgreSQL DB abstraction call for sql_table_exists().
[-] HTML entities in period names are now converted/stripped before
 being sent in emails.
[-] Fixed "You are <user>" display for users that include html special chars.
[*] Improved SQL to always use column names in ORDER BY clauses.
[-] Fixed JS click handling in edit area/room page.
[*] Added Bulgarian localisation (no translation yet).
[+] Added CSV report functionality.
[-] Fixed display of "number of weeks" when editing an existing n-weekly
 booking.
[+] Added a configuration variable to allow forcing of booking resolution
 to the configuration variable $resolution rather than the DB settings.
[+] Added a configuration variable for setting a login link for the
 'remote_user' authentication scheme.
[*] Fix for setting UTF-8 locale on BSD, as provided in SF tracker #2859067.
[*] Removed use of ereg_replace(), it has been deprecated in PHP 5.3.
[-] A few fixes to honour privacy settings correctly.
[*] Improved error checking in search page.
[+] Added a sort key for rooms.
[*] Improved error handing for adding a user, so that user does not have
 to retype the form after an error.
[-] Fixed weekly and n-weekly bookings for the condition the user clicks
 a day that the repeat is not scheduled for.
[*] Changed behaviour of monthly and yearly repeats so that if a day does
 not exist in the month MRBS will use the last day of the month.
[+] Added code to disable E_DEPRECATED error class for PHP >= 5.3.
[-]  Fixed LDAP auth method so that $ldap_filter will work if you use
 $ldap_dn_search_attrib.
[*] Updated 'mysql' and 'mysqli' DB abstractions to request a UTF-8
 client charset if $unicode_encoding is true.

-------------------------------------------------------------------------------
Version 1.4.2 (Thu July 15 00:00 BST 2009):

[+] Added checking of lengths of values for user-typeable fields, so that
 overly long field values aren't passed to the MRBS database, - something
 which causes errors with PostgreSQL. Adds new array variable $maxlength
 to config.inc.php that _must_ be populated if you are upgrading and keeping
 your old config.inc.php.
[+] Added automatic upgrade system for upgrading MRBS installations
 as the database schema changes. When an upgrade is needed MRBS will
 prompt for database admin user authentication details.
[+] Sites can also define their own local DB schema changes, using the
 sane upgrade system.
[*] Made access levels more flexible, by adding definitions for
 "maximum level" and "minimum editing level" into config.inc.php.
[*] Moved database table creation/alteration code out of edit_users.php,
 it is now done with the upgrade system.
[+] Added ability to make bookings private, with details only available
 to the booker and administrators. Feature provided by Cory Jaeger and later
 enhanced to allow private booking functionality to be configurable
 per area.
[*] Added check for PHP LDAP support into auth_ldap.inc, based on a suggestion
 from Chris Cook.
[-] Fixed issue with booknig display if booking "clipping" is turned off.
[-] Added some missing SQL escaping in various places in response to
 Secunia Advisory SA35469.
[*] Booking fields that have maximum lengths in the database are now
 truncated before adding them to the database, and additionally HTML
 form elements have 'maxlength' attributes to match the database column
 widths.
[+] New authentication method that authenticates using an SMTP connection.
[*] The creator of an entry is no longer cloned when a booking is copied.
 This ensures that the entry is editable by the user that did the copy.
[-] Adding missing HTML and JavaScript escaping of room names in the
 "edit booking" screen.
[*] Checks are now done to ensure that area names are unique and room names
 are unique within an area.
[*] Improved room deletion, so that repeat entries for the room are deleted.
[*] You can now move a room between areas.
[*] Improved error reporting on SQL errors when creating or modifying a
 booking.
[*] Made theme functionality more flexible, by allowing a theme to
 change the page header.
[*] Added Croating internationalialisation support, no translation yet.
[+] Added the ability to reverse the standard display for week and day
 view so that the columns are rows and vice versa.
[-] Fix for NIS authentication on systems that use crypt methods other
 than DES.
[*] Improved handling of conflicts in edit_entry to allow for easy
 addition of more booking policies
[+] Timeslot settings are now help in the database, and are configurable
 per area. Period settings are not yet per area.
[*] Improved display of booking slots that contain more than one booking.
 This is possible if booking resolution is decreased when bookings
 already exist.
[*] Added a configuration variable for session expiry time, for users
 of the 'php' session scheme. The default is now to have a persistent
 session that lasts 30 days.
[-] Fixed rounding of booking slots to resolution boundaries.
[-] Fixed Postgresql initial table creation script so that 'create_by'
 column in the mrbs_repeat table is the correct width.
[-] Fixed syntax error in auth_db_ext.inc reported on the mailing list.
[-] Fixes for utilising 'db' auth scheme with PostgreSQL.
[*] DB authentication scheme improved so that access rights are now
 stored in the database and administered from the MRBS 'user list'
 page.
[+] Added Polish translation.
[*] Improved print view, including changes that ensure cell
 boundaries are visible.
[-] Fixes for problems whereby a time was converted to "engineering"
 format before an SQL call, thereby creating an error. First report of
 the problem was  SF tracker #1794351.

-------------------------------------------------------------------------------
Version 1.4.1 (Sat Feb 14 22:00:00 GMT 2009):

[-] Fixed email notification problem, SF tracker #233038.
[-] Fixed problem that caused incorrect subject line to be used in email
 notifications if $mrbs_company was set to an image.
[*] Introduced a way to configure MRBS to use additional text after
 the configured company name/logo.
[-] Fixed the 'next' button in search page.
[-] Fixed highlighting in the week view.
[-] Fixed time highlighting, SF tracker #2418172. Fix supplied by David
 Cummings.
[-] Fixed printing styling in Firefox, SF tracker #2418073. Fix supplied
 by David Cummings.
[*] Improved detection of IE6 or lower browsers.
[-] Fixed rounding down of duration for meetings that were set as
 fractions of an hour.
[-] Fixed for navigation problem encountered after editing a booking you
 found by searching.
[-] Fix for SF tracker #2494369 - user feedback in edit booking page has
 been improved.
[-] Fixed sticky week highlighting - thanks to 'dwpoon' for this fix.
[*] Small Italian translation update from Claudio Strizzolo.
[*] Improved the database abstraction layer.
[+] 'db_ext' authentication scheme can now use any database that MRBS
 provides an abstraction for, so you can store authentication in a PostGresql
 database.
[-] Fixed configuration testing in config.inc.php for when periods are
 used.
[+] Added the ability to hide certain days of the week.
[-] Fixed a bug which mean that repeating 'All Day' bookings were not
 being booked for the right number of days.
[+] Added ability to add themes to MRBS. Added a "classic126" that makes
 MRBS look more like it did in MRBS 1.2.6.
[-] Fixed line endings in a number of files, caused by Subversion
 misconfiguration.

-------------------------------------------------------------------------------
Version 1.4 (Wed Dec  3 15:00:00 GMT 2008):

[+] Added Hungarian internationalision, in preparation for an offered
 translation.
[-] Removed all HTML entities apart from &nbsp; from the translations,
 so that the flawed PHP function html_entity_decode() doesn't need
 to be used in the email sending code - solving a problem when running
 MRBS with PHP 4.
[*] Booking highlighting is now performed with CSS rather than JavaScript
 by default, except in IE6, which doesn't support the appropriate
 CSS feature. This improves performance in IE7/8, and makes the highlighting
 not depend on JavaScript, which is good.
[*] After making a booking (change), you now return to the view you
 came from, be in day, week or month.
[*] Improved highlighting of booking links in month view.
[*] The day/week you're browsing is now maintained as you change between
 day, week and month views, as far as is possible. This so-called
 "sticky day" is highlighted in the mini-calendars also.
[*] "Plus" graphics for adding new bookings are now not shown by default.
[-] Fixed bug that stopped correct booking of meetings when in "periods"
 mode. Reported and solved by Chris Cook.
[-] Fixed bug in the add booking screen that caused selection of
 multiple rooms to not work, and a similar bug that stopped selection
 of booking type in the report screen.
[-] Fixed bug in the date selector.
[*] Deleted .cz translation, in preference of the .cs translation, which
 is the right language code.
[+] Added Dutch FAQ, provided by Cor Marjee.
[*] Translation updates for Slovenian (Martin Terbuc), Dutch (Cor Marjee),
 Italian (Erica Maria Peressini), Turkish (Ahmet YILDIZ), Spanish (SoTMaR),
 French (Alain PORTAL), Japanese (MATSUURA Takanori).
[*] Improved display of the trailer.
[+] Implemented a configuration option for a simple trailer, as suggested
 by Chris Cook.
[*] Improved layout of the "type" colour key.
[*] The area select box is no longer shows if there is only one area.
[-] Fixed some problems shows up by 1.4beta1.
[+] MRBS now validates as HTML 4.01 Strict, a lot of this work is courtesy of
 Claudio Strizzolo.
[*] MRBS now uses CSS for all styling, courtesy of sterling effort by
 Campbell Morrison.
[*] Improved default styling, courtesy of Campbell Morrison.
[+] Added Simplified Chinese translation, provided by 'sunjunps'.
[-] Made the MySQL database use an explicit database connection
 throughout.
[*] Updated Japanese translation, provided by MATSUURA Takanori.
[+] Added Basque translation, provided by Juan Ezeiza Gutierrez.
[*] Updated Postgresql schema to match the MySQL one.
[-] Improved HTML and SQL escaping throughout.
[*] Improved code style/indenting throughout.
[-] Improved form handling, individual form components are now pulled out
 as their expected types, improving security.
[*] Improved way in which MRBS calls the database, to make things
 tidier/safer.
[*] Improved print preview functionality, now use a print media CSS
 stylesheet.
[*] Updated German translation somewhat.
[+] Added server time to the help page, to help diagnose time zone
 issues.
[*] Improved the output of the "browser language" section in the admin
 page, and show it in the help page too.
[-] Fixed a bug in the 'mysqli' database abstraction.
[*] Added default duration configuration variable to the config file, to
 allow administrators to change it without editing the MRBS code.
[-] Corrected short PHP tag in testdata.php.
[*] Improved security of 'cookie' session scheme - utilises Crypt_Blowfish
 PEAR module.
[-] Fixed AIX internationalisation function, patch provided by bwiberg
 in SF tracker #2057646.
[*] MRBS now encodes the subject of emails correctly.
[*] Moved the translation of strings used in MRBS emails into the lang.*
 files, where they belong - most languages now have no translation for
 these strings.
[*] Changed default booking slot configuration to give half-hourly slots
 from 07:00 to 19:300, with the last slot being 18:30->19:00.
[*] Fixed a bug that made all-day bookings not reserve the last slot in
 the day.
[*] Help, report and search pages now show the logon box in the header.
[-] Fixed HTML escaping of period descriptions, period descriptions must
 be valid HTML in config.inc.php.
[*] Bookings that cover more than one slot now show as merged slots in
 day and week views, replacing the previous "ditto marks" behaviour.
[-] Fixed a number of issues that were reported during the 1.4 beta
 phase.
[+] You can now set the timezone that your meetings run in from
 config.inc.php. In some configurations this must be done to get
 proper DST behaviour.
[*] The 'db' authentication scheme now ensures that usernames are
 unique.


-------------------------------------------------------------------------------
Version 1.2.6.1 (Wed Jan 30 11:00:00 GMT 2008):

[-] Fixed major bug in the new LDAP authentication functionality. If
 $ldap_dn_search_attrib was set, any username/password combination
 was allowed in.
[*] Changed configuration default so that LDAP v3 is enabled by
 default in the LDAP authentication scheme.

-------------------------------------------------------------------------------
Version 1.2.6 (Mon Jan 28 15:00:00 GMT 2008):

[*] Added options to LDAP authentication, so that the DN to be used for
 authentication checking can be obtained by first doing a search in
 the directory. This allows MRBS to authenticate against a Microsoft AD
 server, along with any other LDAP server that behaves in this manner.
[+] Added support for Slovenian language and added translation provided
 by Martin Terbuc.
[*] Added updated Italian translation, and new Italian FAQ.
[-] Removed invalid HTML in edit area/room page. Fixes SF tracker #1696383,
 as reported by 'mikedip'.
[-] Fixed SQL escaping in the edit users page.
[*] Improved i18n/l10n code.
[+] Added Catalan support and Catalan translation as provided by Jordi
 Prats.
[-] Fixed bug in language preference code, as reported by many users.
 Fix supplied by 'mikedip' in SF tracker #1696382
[-] Fixed HTML escaping problem in the edit booking screen.
[-] Update of the room list as you change area in the edit entry screen
 is now correct. This is a fix for SF tracker #1666299, as supplied by the
 reporter, 'northtommy'.
[*] Translations now do not include terminating colons in many places
 as they used to, these have now been moved to the code.
[*] Added JavaScript and server-side checking for various things in the
 new/edit booking page, which stops odd conditions ocurring, and gives
 better feedback.
[*] Emails sent by MRBS are now UTF-8, unless configured to use a
 different charset.
[-] Removed possible infinite loop in n-weekly booking creation.
[-] Fixed invalid truncation of text in month view, it could
 truncate  descriptions mid-UTF8 sequence before.
[+] Added new authentication method, imap_php, which authenticates via IMAP,
 but  using the PHP 'imap' extension, which allows for SSL/TLS connections.
[*] Updated French translation, as provided by 'dionysos-sf'.
[+] Added Turkish language support and Turkish translation, as provided
 by Ahmet YILDIZ.
[*] Added copy booking/series feature, as provided by Julian Eglestaff.

-------------------------------------------------------------------------------
Version 1.2.5 (Sat Feb 24 20:00:00 GMT 2007):

[*] Added options to LDAP authentication so that LDAP v3 and TLS connections
 can be used. Implements SF tracker #1644311.
[*] You can now configure the cookie path used by the cookie and php session
 schemes. Fixes SF tracker #1515118.
[*] Improved localisation of date/time strings.
[-] Fixed a short PHP start tag, to fix SF tracker #1652396.
[-] Updated code to add/edit bookings so that times using ',' as the
 decimal point work. Fixes SF tracker  #1647430.
[*] Updated Swedish translation, as provided by bwiberg.
[+] Added AIX support. You can now run  MRBS on an AIX server, in Unicode
 mode too. AIX support  provided (and tested) by bwiberg.
[*] Improved language preference code so that the user's language
 preference order is followed.
[-] Corrected some bracketing in the month view, as reported by lots
 of people, including 't-matsuu' in SF tracker #1644042 who provided a fix.
[-] Fixed various display bugs in month view, including a fix for
 SF tracker  #1663905.


-------------------------------------------------------------------------------
Version 1.2.4 (Wed Jan 24 12:00:00 GMT 2007):

[*] Added ability to specify the LDAP port in config.inc.php.
[-] Database table creation for Postgresql 8 fixed.
[-] Improved HTML escaping in the calendar views.
[-] Fixed emailing of area/room admin in some cases. SF tracker #1474386,
 fix provided by 'karcher'.
[*] Added some error logging into the email code
[-] Fixed encoding specification for zh_tw translation.
[-] Fixed problem in report output.
[+] Added 'remote user' session scheme, provided by 'bwiberg'.
[+] Added 'mysqli' database abstraction layer.
[-] Added robots instructions to stop search bots trawling MRBS. Fixes
 SF tracker #1557192.
[*] Improved documentation on LDAP authentication, fixes SF tracker
 #1554351.
[-] Fixed example of LDAP filter configuration in config.inc.php. Fixes
 SF tracker #1550827.
[-] Fixed warnings output by some pages. Fixes SF tracker #1557192.
[*] Added check for empty booking description when creating/modifying
 a booking - is only necessary if the user has JavaScript off.
[*] Added updated Finnish translation provided by Tom Ingberg - it now
 uses UTF-8.
[-] Fixed password checking for PHP session scheme. Fixes SF tracker
 #1563470.
[*] Current day/week/month are now highlighted in the page footer.
 Implements SF feature request #875744.
[*] Moved MRBS version number out of config.inc.php so it doesn't get
 left behind when people upgrade.
[*] Updated Spanish translation, provided by SoTMaR.
[*] More entry types are now allowed (now A-Z).
[-] Fix in emailing of administrators. Fixes SF tracker #1315854, fix
 supplied by Neville Gilbert.
[*] SunOS is now supported as a server OS, including UTF-8 locale support.
[-] Fixed n-weekly repeating bookings, days for booking are now
 calculated more correctly. Fixes SF tracker #1300974.
[*] Updated Swedish translation, provided by Bjorn Wiberg.
[-] Fixed problem in report page if you were using HTTP session scheme.
 Fix provided by Bjorn Wiberg in SF tracker #1396685.
[-] Fix for using the 'db' authentication scheme on a MySQL >= 4.1
 server.
[+] Added German translation of site FAQ.


-------------------------------------------------------------------------------
Version 1.2.3 (Sat Aug 20 20:30:00 BST 2005):

[+] Added new authentication scheme, db_ext. This allows authentication
 to come from a table in an external database (MySQL only until MRBS 1.3).
 All the parameters are configurable in config.inc.php and documented
 in AUTHENTICATION.
[-] Cookie and PHP session schemes will now handle usernames/passwords
 with certain quote characters in properly.
[*] HTTP session scheme now shows a login button, and who is currently
 logged in.
[+] Added Spanish translation of site FAQ, contributed by Carlos Insunza.
[*] Password column in users table (db auth scheme) is now 40 characters
 wide.
[*] When setting up an installation using the db auth scheme, the
 'User list' screen allows the admin user to be added without you
 being logged in. Once the first user is added you must log in.
[*] Updated Norwegian translation supplied by Emil Stoa.
[+] Added Korean translation, as contributed by YoungJoon Kim.


-------------------------------------------------------------------------------
Version 1.2.2 (Fri Apr 22 12:00:00 BST 2005):

[*] Bug 1090172 addressed. Length of booking creator field increased to
      80 characters.
[*] Updated Taiwanese and Japanese translations, now both in UTF-8
      encoding. Thanks to bruck and MATSUURA Takanori, respectively.
[*] auth_config username matching is now case insensitive.
[-] If using cookie authentication cookie is now deleted on logout, and
      user's password isn't stored in cookie any more.
[-] If using session authentication, cookie is stored based on the web
      path MRBS is installed on, allowing more than one MRBS installation
      per (virtual) host. Additionally session data is deleted on log out,
      and the user's password isn't stored in the session data any more.


-------------------------------------------------------------------------------
Version 1.2.1 (Fri Dec 10 10:00:00 GMT 2004):

[-] MySQL tables fixed for MySQL 4.0, namely to remove DEFAULT from
      auto_increment columns.
[-] Bug 1027328 fixed, sendMail function now provides the correct parameters
      and headers for each type of backend (mail, sendmail or smtp). (Thekk)
[*] RFE 1000967 - enhanced email notifications. (Neil Hawes, Stuart
      Chalmers)
[-] Bug 1068522 fixed, changed "" around $db_password value in
      config.inc.php to '' so that special characters are not interpreted.
      (Matt Schuler)
[-] Bug 1035790 fixed, can now book series with pgsql. (Thekk)
[-] Bug 994056 fixed, emails are sent when they should be now to who they
      should be sent to.
[-] Bug 1040185 fixed, AM and PM generation no longer causes
      "Negative timestamps are not supported under any known
      version of Windows" PHP error on Windows MRBS installations in far
      eastern time zones.
[-] Fixed lang/locale selection for Czech language. Czech country code is
      "cs", not "cz".
[-] Fix added for the ChangeOptionDays JavaScript function in some older
      browser.
[-] Fix for page refresh functionality. If a refresh time is configured,
      only do it for day.php, week.php and month.php
[*] Updated Netherlands translation (Marc ter Horst)
[-] MRBS now sends content-type and charset in an HTTP header, which can
      fix some Apache installations where a charset if forced in the
      config.


-------------------------------------------------------------------------------
Version 1.2 (Thu Sep 9 14:00:00 BST 2004):

[-] Notification emails are now RFC2045 compliant. Mail body can contain non
      us-ascii characters, content-type is specified correctly.
[*] Updated German translation (Andreas Moroder)
[*] Updated Czech translation (David Krotil)
[*] LDAP authentication scheme is now more flexible. Base DN and
      user attribute can be configured in config.inc.php
[*] Room ordering of day view back to "by room name".
[-] Fixed bug in admin notification emails, bug #968682.
[-] Changed comment about $url_base to recommend setting this if email
      notifications are to be used. Fixes bug 972186.
[-] Fixes problem where an invalid user will appear to be logged in.
[*] Changes default colour for odd row to not conflict with colour for
      type 'J'.
[*] Changed colours for header cells in day and week view to make them
      more readable.
[*] Change so that '+' sign and Javascript are not included in print
      preview.
[-] Fixed bug in notification emails so that periods are handled correctly.
      Fixes bug #972293
[-] Fixed JavaScript error on changing Start/End dates on add/edit page.
      Fixes bug #934394
[-] View entry page can now be passed a series ID, and mail notifications
      will point people at this version of the page for messages
      related to series. Fixes bug #972194.
[*] Locale settings improvements. Warning is shown at top of the page if
      MRBS is unable to set a locale. Added Windows locale mapping for
      Swedish (sv-se) language. Fixed Unix locale mapping for English locale,
      en_GB is used by default if the browser passes "en". OS X locale
      support added.
[-] Locale setting fix for Windows servers, browser language "en-ie" is now
      handled correctly.
[-] Fixed SQL usage in email notifications.  Fixes bug #994056
[-] Fix for mouse hover highlighting on grid.


-------------------------------------------------------------------------------
Version 1.2-pre3 (Fri May 14 04:00:00 GMT 2004):

[+] Added long awaited "periods" support. Calendar can displays 'periods'
      instead of classic time of the day.
[+] New authentication scheme 'auth_db'. This is a web-based authentication,
      based on a user table in the mrbs database. User administration page has
      a special feature to automatically display fields that admin may add to
      the user table, no need to edit the code. This new authentication is not
      yet implemented for Postgresql.
      PLEASE READ RELEVANT SECTION IN "AUTHENTICATION" BEFORE THE FIRST USE.
[+] Added email support. Emails can be sent to MRBS administrator, area or
      room administrators, or bookers and for each entry creation, change or
      deletion. Emails for changed entries display the value of previous
      settings. Added emails fields to room/area admin and edit_users pages.
[+] Added option to retrieve users emails from other authentication
      schemes as auth_db (if ldap is used, user email will be username plus
      domain name)
[+] Added option to allow for a day to start at say 8:30 am.
[+] Database tables names are now variables defined in config.inc.php. This
will allow users to install multiple sets of mrbs tables when only one
SQL database is available, or resolve table name conflicts.
[+] Booking is now possible from the month view by clicking a new 'plus sign',
      taking the user to an add entry page for that day of the month.
[+] Using auth_db, the link "you are XXXX" becomes a link to all upcoming
      entries belonging to XXXX (report page).
[+] Added support for multiple pop3 or imap server to be used for
      authentication (in case of failure).
[+] Added greek language (Stavros Papadakis), updated finish (Tom Ingberg),
      german (Michael Glaessel) and swedish (MissterX) languages.
[+] Added option to determine the default starting view, i.e. month, week or
      day (Warren Turkal) and the starting room.
[+] Added support for changing area/room in Add/Edit entry form.
[*] Capacity is not displayed in brackets next to room name if capacity is 0
[*] Preview page now displays the color key.
[*] Added option to display both time and descriptions in month view.
[*] Various enhancements to display/navigation (added pop-up messages in
      various places, added direct links between room headings and week
      view, highlighting of cells on mouse-over, highlighting of current
      month/week/day in mini calendars, ability to book a room by clicking
      anywhere in cells, navigation link duplicated under the calendar...)
[*] Added option to display time on right side in day and week view
[*] Enhancements to report page: added 'type', 'creator' and various sorting
      options.
[*] LDAP servers login processes, does an anonymous bind first
[*] Fixed bug/enhancements to avoid url problems when using a proxy in
      the environment. Although breaking HTTP specs, use of relative paths
      allows to run mrbs with https (ssl).
[*] Added some javascript code to control user inputs mainly in edit_entry.php
      (avoid selecting february 30,...)

and several other minor bug fixes and minor changes. To see details, please
read /web/Changelog file from Dec 07 2003.

-------------------------------------------------------------------------------
Version 1.2-pre2 (Sun Dec 07 00:00:00 GMT 2003):

[+] Completely revamped authentication logic.
    Now MRBS make use of sessions to store temporary user data,
    ability to log on/off, and so on... This is now the default mode.
    See AUTHENTICATION for more details.
[+] Revamped localisation.
      Automatic language determination made much better, works for
	  Windows and Unix servers now
[+] Added utility to convert text in the database to UTF8.
[+] Revamped internationalisation. MRBS can now be called  fulled Unicode.
      MRBS serves all of it's pages in UTF-8 and stores everything in the
      database in UTF-8. This means that all languages work together.
[+] Bubbles are displayed when mouse hover entries in day, week and month
      view, showing a more complete description.
[+] Allow to view weeks in the bottom of the web pages as week numbers
      instead of 'first day of the week' (Per Wermelin - SKIOLD Sæby A/S"
	  <ela@skiold.dk>).
[*] Added a new script for the "ext" authentication scheme that
	  allows you to use a password file with usernames and their
	  crypted passwords.
[-] Fixed bug #853410: When changing a non n-weekly entry, field "Number of
      weeks (for n-weekly)" appear...
[-] Fixed bug #846337: We can create rooms with no area
[-] Fixed bug #413175, #831310: Daylight savings time shift entries one hour
[-] Fixed bug: Always displays "Edit Entry" instead of "Edit Series" at top
      of page when editing a series.
[-] Fixed bug in pop3 auth scheme.
[-] and several other minor bug fixes.
[*] Warning: MRBS does not work with postgreSQL 7.3 and above.

-------------------------------------------------------------------------------
Version 1.2-pre1 (Tue Sep 23 06:00:00 GMT 2003):

[*] Renamed coonfig.inc to config.inc.php
[-] Fixed bug #748934, do not allow booking descriptions with only spaces.
[+] Added Windows NT / IIS authentication scheme.
[-] Fixed bug : Always displays "edit entry" instead of "Add Entry" even when
      adding an entry. (Ian Duncan)
[-] Fixed bug: repeated meetings selecting a "Monthly repeat, same day of the
      week" repeat type in the 5th week were not properly scheduled.
[-] Fixed bug: when you press on print preview
      in report.php page, all but the submission form is visible but
      not the actual report  (sQuare).
[*] In the minicalendar week view, the full week is highlighted instead of
      the first day of the week (sQuare).
[-] Bug fix: in week view, allow non 'internet explorer' browsers to see links
      to the corresponding days in column titles (Johan.Schonning).
[+] Entries in monthly view can be shown as start/end slot or brief description
[*] Replaced the column titles in the week view to  be links to the
	  corresponding days (sQuare).
[-] Bug fix : italian vocab with character not properly escaped prevents
      deleting entries and/or prevent jcript popup to works (Pietro donatini)
[-] Fixed bug in escaping of username and password for all
      authentication schemes that use HTTP authentication.
[-] Fixed bug in bookings between 12:00 AM/PM and 12:59 AM/PM (AM/PM hour
    format)
[+] MRBS become compliant to the 'register_globals = off' directive
[-] Minor bug fixes
[+] Added translation: Finnish (Vesa Palmu), Portuguese (Lopo Pizarro),
    Danish (Claes Bolvig Pedersen).
[*] Minor translations updates an bug fixes
[-] Bug fix if drop-down select box is chosen to show areas/rooms
[*] Changed the tiny size of numbers in calendar to
      a larger one.

-------------------------------------------------------------------------------
Version 1.1 (Tue Jan 14 10:00:00 GMT 2003)

[+] Added configuration option ($twentyfourhour_format) to allow time
        formats to be changed to 12 hour format.
[*] Updated all language files to be consistent
[*] Changed minicals so they point to week when on week view and month on
        month view, rather than always pointing at day view
[*] Changed occurrences of "<?=" to "<?php echo" which means we still
        use the long tag form everywhere.
[*] Removed all remainings english strings to make MRBS 100% translatable
        * Added new $vocab to del.php, edit_area_room.php, edit_entry.php,
          edit_entry_handler.php, help.php, mysql.inc, pgsql.inc,
          view_entry.php, functions.inc
[+] Modified config.inc language section to choose a site_faq.html file
        translated in another language.
        * Modified help.php to take these changes into account.
        * Added site_faq_fr.html (french)
[+] Added auth_name.inc, a auth_ip.inc variant using DNS name instead of ip.
[+] Added auth_omni.inc for use with OmniHTTPd web server security features
[-] Change search.php to remove warnings introduced with PHP 4.3.0
[-] Change trailer.inc to make print preview more likely to work on
        windows and non-apache servers

-------------------------------------------------------------------------------
Version 1.1-pre2 (Thu Jan  9 17:50:00 GMT 2003)

[+] New POP3 authentication scheme (Daniel Gardner)
[*] Updated Spanish translation
[-] Fix for edit entry page. We now determine the area id
        of the room the meeting we're editting is in before
        getting a list of the rooms in that area. This solves
        a number of errors that occur when editting/creating
        bookings.
[-] Fixes submitted/suggested by Jean-François Larvoire:
        * Added closing ?> to index.php
        * Added "global $refresh_rate;" to style.inc
        * Fixed all occurrences (hopefully) of $vocab[] indices
          written without surrounding quotes.
[*] Changed all uses of <? to <?php.
[+] Merged change from John Beranek for an Advanced search function,
        requires 3 more translation tokens, which have been added to
        each language file, "search_button" should be OK, as I took
        the text from each language's "search" token.
[-] Fixed 2 problems in edit_entry.php as submitted on the mailing list.
[*] Added small enhancement to smb_auth.c, if you pass a username
        as group/user, it will change the NT group that is used for
        authentication.
[*] Improved shell escaping in auth_ext.inc. It now uses
        escapeshellarg() instead of escapeshellcmd(). If your PHP
        version is less than 4.0.3, then it includes escapeshellarg.inc
        which is a local implementation of that function.
[*] Added updated French translation, as provided by Thierry Wehr.
[*] Tided all language files again, they all have the same format
        and number of lines now, and are all missing at least 2 translations
        because of the new advanced search functionality.
[-] Fixed a number of bugs to make the Taiwanese translation work.
        The code to include language files based on HTTP_ACCEPT_LANGUAGE
        has been improved, which ensures lang.zh-tw is included.
        Additionally, mincals.inc not longer does a substr() on the
        abbreviated weekday names, as this breaks terribly for any
        multibyte encoding, as it was only taking the first byte
        of a multibyte encoding. This has the impact that you now
        get Mon,Tue,Wed etc instead of M,T,W (using glibc's en_GB
        locale).
[-] print_header() now outputs a DOCTYPE identifier as well as
        sending Pragma no-cache and an Expires header in the
        past. This should help ensure the web pages don't get cached.

-------------------------------------------------------------------------------
Version 1.1-pre1 (Thu May 30 12:41:02 BST 2002)

[*] add config option for drop-down boxes to select area and room
          (Thanks to sponsorship of LTC Corporation)
[+] allow multiple rooms to be booked at the same time
          (Thanks to sponsorship of the City of Wayne and LAEP)
[*] document need for register_globals() with new PHP versions
[+] add auth_nis.inc from Jeff Hoover (jberanek)
[+] add auth_imap.inc
[*] add warning about PHP3 not working
[*] new language tokens
[-] Stop problem where all strings turn to "N"
[-] Fixes a problem where $resolution is an odd amount
[*] extra javascript validation around n-weekly bookings
[-] extra array index quoting to stop newer php warnings
[*] Commented all authentication schemes (jberanek)
[*] Change mrbs_repeat schema for postgres (mrbs_repeat.rep_num_weeks =>
        smallint)
[*] replace poxix_uname with php_uname function for portability
[-] Declare $HTTP_ACCEPT_LANGUAGE global in config.inc
[-] some int casts to fix a bug from sourceforge
[*] language files normalised
[*] update translations:
        Norway, Rune Johansen
        France,
        Italy, Gianni
        Netherlands, Marc ter Horst
        Sweden, Hakan Nilsson
        Germany, Michael Redinger
[+] add translation:     Czech, SmEjDiL

-------------------------------------------------------------------------------
Version 1.0 (Thu Aug 30 22:26:54 BST 2001)

[+] Added two upgrade.xx.sql files which should have been in -pre2

-------------------------------------------------------------------------------
Version 1.0-pre2 (Sun Jul  8 13:43:53 BST 2001)

[*] Incorporated diff from Scott Leonard that allows you to configure a refresh
        time for roombooker web pages.  Set config variable $refresh_rate to the
        number of seconds to refresh after, or set to 0 to disable.
[+] Implemented "n-weekly" repeat type. Not sure I like the way it's phrased in
        the lang files, but the code works fine.  You can now have a meeting
        that is repeated every 'n' weeks. e.g. every 5th Monday.  This required
        a database change, which I've made available in upgrade2.my.sql and
        upgrade2.pg.sql
[*] Tidied lang files, and ensured every file has all the required tokens.
        'wc -l lang.*' now shows all the files as having the same line count.
        Quite a few languages now have English bits in them though.
[*] Incorporated diffs from Tim Bell that allow you to configure a filter
        for LDAP authentication.
[-] Incorporated diffs from Tim Bell that solve problems with bookings made
        for times that have smaller granularity that the configured booking
        resolution.
[-] Fixed config.inc so that the correct lang.xx is included if
        HTTP_ACCEPT_LANGUAGE is a comma-seperated list like "sv, en".
[*] Copied "rep_type_5" language token into Swedish and Spanish language
        files from English file.  Swedish and Spanish users were not able
        to use "monthly, corresponding day" repeats without the token being
        present.
[*] Checked in updates to lang.es (received from Pablo Gomez) and lang.de
        (received by Bernd Oeggl).
[*] Update lang.nl file (marc ter horst)

-------------------------------------------------------------------------------
Version 1.0-pre1 (Sun Mar  4 23:26:43 GMT 2001)

[*] Internationalised functions.inc. "Help", "Admin" and "Search:" are now lang
        strings. Also, fixed an error in lang.fr, $vocab["mrbs"] was defined
        twice. (jberanek)
[*] Added double quotes around all uses of color and class attributes, as HTML
        dictates. (jberanek)
[*] On conflict, show start time and link to day/week/month views (redinger)
[+] Link each search result start time to entry's day view (bernd, beranak)

    Branch Merge (2001-02-24 ljb):
[*] Incorporated all changes from branch mrbs-0-9-1xp into CVS trunk.
[*] Undoes post-branch change (0.9.2) to remove "weekstarts" function.
[-] Fix undefined variable warning $edit_type in edit_entry.php

-------------------------------------------------------------------------------
Version 0.9.2 (Fri Feb  9 20:09:42 GMT 2001)

[*] Remove "weekstarts" functionality

-------------------------------------------------------------------------------
Branch mrbs-0-9-1xp (2001-02-13 daniel):

[*] Added $I d$ tags to all files.

-------------------------------------------------------------------------------
Branch mrbs-0-9-1xp (2001-02-10 ljb):

[*] For PHP4, rename *.php3 to *.php and changed all links.
[+] Major changes for database support for PostgreSQL:
        Original tables.sql renamed tables.my.sql for MySQL.
        Move sample data from tables.sql to sample-data.sql.
        New tables.pg.sql to build tables for PostgreSQL.
        New destroy.pg.sql to delete PostgreSQL tables and sequences.
        New grant.pg.sql - edit this and run to grant PostgreSQL rights.
        Replaced connect.inc with mysql.inc and pgsql.inc.
        New variable in config.inc "$dbsys" selects "mysql" or "pgsql".
        Renamed variables in config.inc to replace "mysql_" prefix with "db_".
        New wrapper functions (see README.sqlapi) to encapsulate database calls.
        New pgsql.inc provides PostgreSQL implementation, and connects.
        New mysql.inc provides MySQL implementation, and connects.
        Rewrote all database calls to use wrapper functions.
        Rewrote all SQL statements to be standards-compliant, where possible.
            Used new wrapper routines where non-standard SQL is needed.
            Replace LEFT JOIN sequence with predicate-based joins.
        Changes to all error handling to ensure errors are properly reported.
[+] New week.php for Week View. (Experimental)
[+] New month.php for Month View. (Experimental)
[*] Added rows of links in trailer.inc to new month and week views.
[*] Changed Entry Type from 2 values (I=Internal, E=External) to 10 values.
        By default only the same 2 are defined in config.inc.
        Style sheet contains colors for 10 types.
        Selection box for type in edit/add entry form is dynamically built.
        Color key in day view dynamically built from defined types.
        Color key in day view moved to bottom of page.
[+] New Report function, linked from new button in the header. This makes
        a report on entries selected by date range and match strings.
[*] Add config.inc option db_nopersist to not use persistent DB connections.
[-] Add missing args to print_header call in del.php.
[+] Add config option eveningends_minutes to allow full 24 hour display with
        more resolution than 1 hour; also allows better control over the
        displayed hours, for example the last slot can now be 16:30-17:00.
[*] Removed unused functions from functions.inc: get_sunday_before()
        print_date_entries() display_unapproved_events() display_time()
        mysql_date_to_str() get_webrowser() hextoint() decode_str() encode_str()
        Also removed load_user_preferences code and calls to it.
[*] Remove redundant includes: functions.inc now assumes config.inc was
        included and does not include it again; search.php and view_entry.php do
        not need authentication so they don't need to include mrbs_auth.inc.
        Removed redundant connect to datbase in search.php.
[*] New error function fatal_error() to ensure errors are in a proper HTML page.
[+] Added new repeat type 5: monthly repeat, corresponding weekday and week.
[+] New authentication for Netware: auth_nw.inc (see README.nwauth). This is
        needed because nwauth takes the password on stdin, not cmdline.
[*] Used weblint to validate output pages and corrected HTML where needed.
        Quote all attribute values, fix bad attributes, balance tags.
[*] Moved HTML end tags into trailer.inc.
[*] Changed trailer to put " | " between dates, instead of ", " after each.
[-] In print_header, fix bad position of style.inc; must be in <HEAD> block.
[-] Fix syntax error when adding room if no capacity given (use 0).
[*] Change day.php to output equal-width room columns with centered headers.
[*] search.php: Use COUNT(*) and no ORDER BY when just getting match count.
[*] Fixed typo in view_entry.php on building up per-day repeat option string.
[-] Redesign loop for adding repeat dates to prevent it from scheduling 1 past
        the end date if the end date wasn't a date to schedule.
[*] Add "about" section to help.php to display viersion, system, database.
[-] Patch from BoK: fix "2 Decembers displayed if you pick "31 Nov" and Go.
        This makes sure the selected date is a valid date.
[-] Patch from robc: Fix to prevent edit entry to make it overlap another.
[+] New feature from Bo: Edit area and room names (new edit_area_room.php).
[*] Sort (order) the room names alphabetically in the main display (day.php).
    Changes found in CVS source:
[*] Changed "Booker's Name" to "Brief Description" (was in post-0.9pre1 CVS)
[*] View_entry uses multi-table query to show room description too (was in CVS)
[*] If no area is supplied, don't use 1 (or 0) since there might not be such
        an area (if it was deleted). Instead, use new get_default_area() which
        gets the lowest-numbered area.  In print_header(), don't pass along
        area as a hidden parameter if it wasn't supplied in the first place.
[*] Patch from BoK: Booking repeat Sat/Sun, only entered first Sun.
[*] Fixes to PHP magic quoting. We now turn of magic_quotes_runtime always,
        and use new slashes() and unslashes() to conditionally deal with
        backslack-quotes depending on value of PHP's magic_quotes_gpc setting.
        NOTE: Possibly slightly incompatible change. Prior versions may have
        put pre-quoted values (area name, room name, booking name, booking
        description) into the database tables. This was wrong. If so, you
        will see funny \'s in the value displays.
        MRBS now should properly quote and unquote all values behind the scenes.
[*] Admin.php gets the area name from the database if it only has the ID.
[-] Patch from BoK: fix duplicate bookings from failure to delete caused by
        bad entry_type change to 2.
[*] Updates to site_faq.html - describe repeats, generalize Authentication info.
[*] Use a mutual exclusion lock (mutex) when adding an entry to prevent races.
[+] New maintenance SQL scripts: purge.my.sql and purge.pg.sql to delete old
        entries from your database (default 30 days old).
[*] Fixed field alignment in Add/Edit Entry form to right-justify labels.
[*] Security: Use EscapeShellCmd() on username and password in auth_ext.inc
[-] Fixed function toTimeString() to use lang[] for time units (I18N).
[*] Streamlined main query in day.php: omit unused columns, improve predicate
        to select by times from 6 compares to 2.
[*] In day.php, only fill in map entries during the day hours of interest.
[*] In lang.* language files, fixed quoting (found in CVS), comments, strip
        CRs and fixed some typos.
[-] Use double quotes around all string array indexes except inside strings.
        This avoids a PHP notice-level warning on each array reference.
[-] Fix undefined variable references to avoid notice-level PHP warnings.
[-] Bug fix: round meeting times up to $resolution units, not 30 minutes, and
        don't allow 0 minute meetings - make them 1 resolution unit instead.
[*] When using the footer to change dates, remember the current area.
[-] Changed view_entry to always show both time and date for start and end time;
        the CVS version was buggy and quirky in suppressing the date or time if
        it thought they were not important. Better to show too much info.
[+] New weekstarts and dateformat (Jan 01 vs 01 Jan) config (from BoK),
        generalized to show the week starting on any day.
[*] Add inline colors for non-CSS browsers (based on patch from John Beranek).
[*] Added current date header above day display (from John Beranek).

-------------------------------------------------------------------------------
Version 0.9.1 (Sun Feb  4 21:56:09 GMT 2001)

[-] Fixed bug in mincals (sourceforge 'nobody')

-------------------------------------------------------------------------------
Version 0.9 (Sun Feb  4 21:40:16 GMT 2001)

    Release.

-------------------------------------------------------------------------------
Version 0.9-pre2: (2001-01-27)

[+] Some stuff for Roxen from Claus Jeppesen (jeppesen@mrl.ucsb.edu)
[*] Add control over start of weekday (Sunday or Monday) (bokleve)
[*] Change how days are presented (Jul 19 or 19 Jul) (bokleve)
[*] Day names in selected language (bokleve)
[+] Sweedish language file (bokleve)
[+] Can now change room and area descriptions (bokleve)
[-] Fix for all day bookings (bokleve)
[*] Escape characters in text (day.php3) (bokleve)
[*] Rooms sorted by name (bokleve)
[-] Fix duplicate entries when changing a booking (bokleve)
[-] Modifying an entry allowed intrusion on other bookings (bokleve)
[-] Weekly bookings could not be made for Sunday if Saturday also booked
[-] view_entry.php3: Fix escape characters showing in text (bokleve)

-------------------------------------------------------------------------------
Version 0.9-pre1 (13:00 Fri August 2000)

[-] A few minor bug fixes.
[*] Authentication is finally in properly
[+] Big UI change, provides a toolbar at the top, help, the ability
        to search and other useful stuff.
[+] A help file for the users.
[*] Another LDAP authentication method, this one uses `ldapsearch'

        Thanks to Mark Belanger <mark_belanger@ltx.com> for most of this.

-------------------------------------------------------------------------------
Version 0.8.1 (Thurs July 27 11:00 2000)

[*] Better "Area" handling

-------------------------------------------------------------------------------
Version 0.8 (Wed July 26 17:50 2000)

[*] General improvements in the "Repeat Booking" code.
[*] Better year selection handling

-------------------------------------------------------------------------------
Version 0.8-pre6 (Thurs July 20 10:00 2000)

[-] Lots of little bug fixes.
[*] Additional LDAP authentication method
[*] Better compatibility with old versions of PHP

-------------------------------------------------------------------------------
Version 0.8-pre5 (Thurs July 13 11:50 2000)

[*] Improved "Conflict detection" code
[*] Lots of date/time handling improvements

-------------------------------------------------------------------------------
Version 0.8-pre4 (Wed July 12 11:00 2000)

[+] Added repeat entries
[+] Added French language file
[*] Updated German language file
[*] Made the "view_entry" screen nicer
[*] General page updates

-------------------------------------------------------------------------------
Version 0.8-pre3 (Wed Jun 21 13:42:42 GMT 2000)

[+] Added Perl script for LDAP auth

-------------------------------------------------------------------------------
Version 0.8-pre2 (Wed Jun 21 11:34:20 GMT 2000)

[*] Added docs about netware authentication
[-] Rename auth.inc -> mrbs_auth.inc to stop phplib conflicts
[+] Added Spanish language file
[+] Added Dutch language file
[+] Added German language file
[+] Added Traditional Chinese language file
[+] Explicitly set charset (from language file)

-------------------------------------------------------------------------------
Version 0.8-pre1 (Fri Jun 16 08:22:19 GMT 2000)

[+] User-based authentication supported (see AUTHENTICATION)
[*] Better support for bookings spanning multiple days
[+] User can specify "Whole Day" bookings
[+] Units other than "Hours" are supported (Mins, Hours, Days, Weeks)

        Thanks to Sam Mason <smason@mtc.ricardo.com> for much of this

-------------------------------------------------------------------------------
Version 0.7 (Mon Jun 12 12:42:50 GMT 2000)

[*] Changed DB to use unixtime, not mysql date/time
[*] Changed date strings to use locale
[*] Replaced code for three small calendars
        (thanks to David Wilkinson - davidw@cascade.org.uk)
[*] Internal/External meetings different colours
[*] "Resolution" moved to config file
[+] Added Japanese support
[*] Moved language into external file
[*] Added more documentation
[-] Areas with no rooms don't cause an error

-------------------------------------------------------------------------------
Version 0.6 (Sat May 27 09:09:11 BST 2000)

[-] Fixed bug in edit_entry_handler.php3 which made any
        booking made between the 1st and 9th of the month
        actually happen on the 1st of Jan for that year
[-] Fixed bug in day.php3 where any booking past
        midnight would not show up
[-] Related bug which meant that bookings longer than
        one day wouldn't be displayed.
[-] Fixed bug where editing a booking would default to
        today's date, not the booking's date
[+] Added .htaccess to protect .inc files
[*] Moved start and end of day config variables to
        config.inc

-------------------------------------------------------------------------------
Version 0.5 (Mon May 22 12:07:14 BST 2000)

[+] Added admin.php3 so areas/rooms can be done
        by web rather than by SQL

-------------------------------------------------------------------------------
Version 0.2 (Sun May 21 22:35:33 BST 2000)

[*] Working OK from user perspective
[*] All admin done by SQL

-------------------------------------------------------------------------------
Version 0.1 (Sun Apr 30 16:03:26 BST 2000)

[+] Initial starting
