Availability Calendar
=====================
Availability Calendar 7.x-5.x
=============================
Incompatibilities with 7.x-4.2:
-------------------------------
These are actions and checks you have to perform manually after you have
upgraded to this version.
- Clear all caches.
- Update ALL your views related to availability. All functionality is still
there, but may have been moved or renamed. So you may get "broken handler"
messages or handlers that do different things than before. E.g. "filtering on
availability" will now be "filtering on calendar ID".
Availability Calendar 7.x-5.x-dev
---------------------------------
- Warning: DateTime::setTime() expects at most 3 parameters, 4 given in
availability_calendar_process_availability_calendar_ical()
Availability Calendar 7.x-5.8
-----------------------------
- Error: availability_calendar_get_availability() does not necessarily return
the result array sorted by date.
- Error: Better conformity to the iCal specification, we encountered sites that
refused the output of the 7.x-5.7 version.
- Error: There is no need to escape feeds: not as a feed, nor as a live preview.
However, when rendering the "feed" in an html context, we still escape but now
we also add <br> characters.
- [#2696471]: Missing Variables: solved by rewriting the views (exposed) form
handling.
- Error: Views exposed form with availability operator (at, from_to, from_to1,
from_duration) exposed to users did not set #dependency correctly.
- Error: function availability_calendar_get_customizable_text() gave a notice
when the variable was not found.
- Error: The new iCal field formatter could lead to notices in the views
availability handling.
- [#3104887]: "$this" can no longer be used in a plain function or method since
PHP 7.1.
Availability Calendar 7.x-5.7
-----------------------------
- Added ICalendar import (using Feeds).
- Added ICalendar export (using Views).
- Added function availability_calendar_get_unavailable_periods().
- [no issue]: error found in function availability_calendar_get_field_setting()
where a cache array was indexed using the literal string 'setting' instead of
the passed in parameter $setting'.
- Refactoring: This module now requires Drupal 7.22 and PHP5.3 or later. This
allows to replace some old/awkward code constructs with more performant and
easier to read ones. More refactorings will follow as well as might another
possible increase of the required PHP version.
- [no issue]: 'views_handler_filter_boolean' and
'views_handler_argument_boolean' are not existing Views handlers.
- [#2727377] by FMB, fietserwin: Migrate field handler: discard empty values.
- [#2944710]: Using anchors in Booking formlet's URL TO CONTINUE THE BOOKING.
- [no issue]: CSS generation did not take border-sizing property into account.
Is now set to content-box for each calendar table and all elements within.
- Refactoring: addressed PhpStorm warnings in availability_calendar.styles.inc.
- Refactoring: each() is deprecated in PHP7.2: remove usages.
- Refactoring: foreach() coding guidelines not always followed.
- [#1451180]: User can select date range with non available dates.
Availability Calendar 7.x-5.6
-----------------------------
- [#2681417]: Follow up: corrections when using with auto-submit and/or ajax.
Availability Calendar 7.x-5.5
-----------------------------
- [#2681417]: Add date range picker to availability searches.
- Refactoring: small optimizations in
views/optimize availability_calendar_handler_filter_availability.js.
- [#2658754] by FMB: Allow to import availability data with Migrate.
- Try to use settings from formatter for date popup as well (in availability
filter for Views).
- [#2659416]: substr in availability_calendar_month_header function doesn't
cooperate with UTF-8.
- [#2550967]: Set minDate/maxDate to defaults when Date field cleared.
- Follow up to [#1782086]: Made even more texts customizable.
Availability Calendar 7.x-5.4
-----------------------------
- [#2426413]: Advagg module compatibility: hook-js_alter is superfluous.
- [#2390531]: Missed a possible problem with the bug fix.
- [#2390531]: Exposed availability filter does no longer set max or min value.
- [#2373631]: Configurable Start Date for rendering Availability Calendars.
- [#2366363]: Undefined index: availability_calendar_views_from_to1_from.
Availability Calendar 7.x-5.3
-----------------------------
- [#2364287]: Viewport button text does not format plurals.
Availability Calendar 7.x-5.2
-----------------------------
- [#1782086]: Customise 'Arrival date' and 'Departure date'.
- [#2327699]: Duration not shown as whole number when DST switches in selected
period.
- React to browser window resizing by recalculating the available space for
calendar months.
- [#2315235]: Availability filter does not work nicely together with auto submit
exposed forms.
- [#2311255]: Regression in solving #2130799
- [#2254995]: Cannot filter on a single availability date.
- [#2130799]: Use of Colorbox breaks Previous link for scrolling calender.
- [#2202639]: Preview node does not work.
Availability Calendar 7.x-5.1 2014-04-10
----------------------------------------
- Merged changelog of availability_calendar_booking_formlet into this changelog.
- [#1986354]: Call to undefined function search_api_index_load_multiple().
Entity API integration
Should solve issues like:
[#1355834]: Using a contextual filter to get the state of the current day.
[#1270718]: Integrate with search api.
[#1856890]: Synchronisation with another website using ICS or XML.
[#1721844]: Rule event for after booking.
[#1783154]: Show all resources on one calendar.
Changes so far (compared to 7.x-4.2):
- Implement Entity API hooks.
- Define availability_calendar_calendar as entity and define its properties.
- Describe the availability_calendar field to Entity API.
- Further integration with Views (works only when Entity module is enabled):
- Describe availability_calendar_availability and availability_calendar_state
to Views.
- Define sql date handlers for availability_calendar_availability.date field.
- Integrated with Search API:
- Added a setting "Number of months to index" to the admin settings form at
admin/config/content/availability-calendar.
- Added a read only property "filtered availability" to our calendar entities.
- Defined an "Availability" search api data type.
- The above 3 changes allow to index availability.
- Added an data alteration that allow filter on the type of field that refers
to a calendar (when indexing availability calendar entities).
- Integration with search_api_views/search_api_db:
- Added a filter and argument handler to filter on indexed availability. The
handler alters the database query that gets built by Search API based on the
Search API query. Therefore, only search_api_db is supported.
Changes to be expected to complete the calendar as entity feature:
- See the todo list in availability_calendar.entity.inc or file your own
requests in the issue queue.
Other changes (compared to 7.x-4.2):
- Removed @class in php files, it is a js doc tag.
Availability Calendar 7.x-4.x
=============================
Incompatibilities with 7.x-3.x:
-------------------------------
These are actions and checks you have to perform manually after you have
upgraded from 7.x-3.x to this version. These actions are not necessary when you
already were on the 7.x-4.x branch.
- Depending on how you updated, you may have to manually delete the following
files (containing Views handlers that are moved to the views sub-directory):
* availability_calendar.views.inc
* availability_calendar_handler_*.inc
* availability_calendar_plugin_*.inc
- Visit and save the "field settings" for all calendar fields in your site, as
the setting "Allow to disable the calendar for a calendar instance" (that
appears on the edit form) is now a field instance setting instead of a widget
setting.
- Clear all caches.
- Date formats are now customisable: customise (admin/config/regional/date-time
and admin/config/regional/date-time/locale) them to your likings and check all
your date handling and displaying parts to see whether they are still working
as expected.
- Visit and save the "field settings" and "manage display" pages for all
calendar fields and define whether they are day or overnight based.
- Visit and save the "field settings" and "manage display" pages for all booking
formlet fields and check whether the new settings are better suited to your
use case.
- Theming: check if all your custom styling still applies correctly. E.g., the
buttons for the booking formlet are changed into <button>s; classes and other
attributes have changed for several elements.
- Periods: the 2nd date of a period is either inclusive (day rental) or not
inclusive (overnight rental, typically the "departure" date). In 7.x-3.x, the
2nd date was always not inclusive. Test and check that every part is still
working as expected.
- Booking formlet to webform POST: the arrival and departure fields are renamed
to from_display and to_display. You have to update the default values for the
elements that receive these values in the (or all in a multilingual site)
webform. I.e: change "%post[arrival]" to "%post[from_display]" and change
"%post[departure]" to "%post[to_display]".
- Booking formlet to webform POST: there are additional fields that now get
posted: %post[from_iso] and %post[to_iso]. See the readme (of booking formlet)
for an explanation of these values and their differences with from_display and
to_display.
- API and JavaScript changes. Almost all API and JavaScript functions have been
changed. Sometimes just slightly, sometimes they are completely rewritten or
even replaced. If you have done custom coding: test it all. API changes are
not separately described, they are part of the items in the change log below
that is grouped by issue (feature/bug) not by API function.
Availability Calendar 7.x-4.2 2014-04-10
----------------------------------------
- [#2226929]: Can't set Default departure date in booking formlet display
settings: error in summary theme and error in js while initializing.
- [#2063491]: Update documentation to explain support for Webforms 4.x.
- [#1704162]: %post dropped in Webforms 7.x-4.x.
- [#1898012]: Number of days between arrival and departure.
- [#2199169]: Changes not saved.
- [#2145909]: View with Exposed Filter for "At (date)" generates error.
- [#2168037]: Add the 'availability' variable to hook_theme.
- [#2068165]: Add API functions to delete calendar data.
- [#1632494] (partial): Add parameter $minimum_days to function
availability_calendar_is_available().
- [#2056289]: MSSQL and Oracle incompatibility.
- [#2037745]: "Enable the availability calendar" option is not saved for new
calendars.
- [#1451180]: User can select date range with non available dates.
- Changed some jsdoc type expressions, e.g. Integer -> number.
- Merged (as much as possible) with experimental 7.x-5.x branch:
- Moved widget setting 'allow_disable' to instance settings.
- Other refactorings.
- Define an index on cid in hook_field_schema.
- Corrected the key "foreign_keys" to "foreign keys" in hook_field_schema.
- [#2012600]: Allow calendar to be displayed in a colorbox.
- [#2000990]: Selected dates on calendar aren't always cleared when showing
calendar with colorbox.
- [#1976776]: Couple date pickers in exposed views form to select a date range.
- [#1975912]: Error in date format for month caption.
- Preparing for [#1856890] and [#1270718]:
- Move Views handlers to sub-directory as there are more to come.
- Move to views API 3.0.
Availability Calendar 7.x-4.1 2013-03-10
----------------------------------------
- [#1891390]: Previous and next button not working.
- [#1929336]: Can't edit availability (jQuery update module and jQuery 1.8).
- [#1924230]: Date parsing in exposed Views filter may throw an exception.
- [#1904596]: Make behavior regarding empty calendar fields more robust.
- Allow administrators to disable the name field. This will lead to:
Notice: Undefined index: add_name in ...()
to solve: please visit the field settings page, set the "Add a name property
to the calendar for a ... instance" setting and save your settings.
- [#1904262]: Edit widget: allow to select whole weeks or months at once.
- Removed @author information from all files, except at the end of this file
and corrected some typos and documentation errors.
- [#1899608]: Contextual filter to filter on availability gives SQL errors.
- [#1884224]: Date popup does no show in a view filter.
- [#1861772]: TypeError: settings.availabilityCalendar is undefined.
Availability Calendar 7.x-4.0
-----------------------------
No changes since alpha2.
Availability Calendar 7.x-4.x-alpha2 2012-11-14
-----------------------------------------------
- Error: js error in initializing default end date.
- Error: setting 'Only allow single day bookings' not displayed/saved correctly.
- [#1835918]: Field "URL to continue the booking" does not appear in a site with
only the default language (en) installed.
- [#1838360]: Timezone based error: split day duplicated on second day.
- Untranslated texts.
Availability Calendar 7.x-4.x-alpha1 2012-11-02
-----------------------------------------------
- [#1813074]: Calendar and Booking formlet fields have problems when used in a
view that displays separate fields.
- [#1668242]: Make the UI for single day rental use cases easier.
- [#1661454]: Better distinction between whole day and overnight rental.
- [#1413130]: Using date in other formats.
- [#1483780]: Example date for departure.
- [#1653150]: Allow booking formlet to be shown independent of calendar.
- [#1637372]: Incompatibility with Openlayers module. Change JS code to prevent
mal designed modules to no longer function.
- Updated README.txt
- Follow up of [#1508066]: Refactor javascript to use the same initialization
pattern for viewport, editor and booking formlet, that can handle multiple
instances and ajax refreshes (including execution of attachBehavior).
- Feature: improved field settings edit form: dynamically show/hide text fields
for language neutral versus per language based on checkbox state.
- [#1520936]: Calendar display not supporting RTL languages.
- Feature: Set default booked state to "Provisionally booked" (if that state
exists).
- [#1519444]: Booking formlet does not show with default calendars.
- JS refactoring.
- Also POST calendar name (as it is part of the field value).
- Better handling of multiple formlets on 1 page, e.g. teaser listings.
- Also set/remove class form-button-disabled when (un)setting disabled attribute.
- Improved CSS.
- Incorrect error message "only future ..." on searching today's availability.
- Views: Do not show the filter on availability as a displayable field.
- [#1813074]: Calendar and Booking formlet fields have problems when used in a
view that displays separate fields.
- [#1814634]: Notice: Undefined index: selectable in
availability_calendar_add_full_calendar_js()
- [#1799826]: Fatal error in availability_calendar_get_calendar().
- Error: IE8- hack: IE8 and lower do not support the indexOf method on arrays.
- Error: Translated <none> on styling form is written to generated css file.
- [#1679524]: Adaptive viewport.
- [#1360702]: Allow invalid "default values" for exposed fields in availability
search.
- [#1714504]: Disabled links don't look disabled.
- [#1676612]: Viewport fails when same calendar is displayed twice on the page.
- [#1678190]: Double date with date popup.
- [#1661454]: Better distinction between whole day and overnight rental.
- [#1413130]: Using date in other formats.
- [#1647446] by Marc-Antoine: Allow to translate the labels of the availability
states.
- [#1447228] by Marc-Antoine: A.C. fails when #id of submit button is altered.
- [#1653150]: Allow booking formlet to be shown independent of calendar:
Changes in JavaScript and add availability_calendar_is_available() to API.
- [#1637372]: Incompatibility with Openlayers module. Change JS code to prevent
mal designed modules to no longer function.
- [#1410852]: settings.availabilityCalendar.states is not defined in attach
behavior on Ajax refresh.
- Follow up of [#1508066]: Refactor javascript to use the same initialization
pattern for viewport, editor and booking formlet, that can handle multiple
instances and ajax refreshes (including execution of attachBehavior).
- [#1520936]: Calendar display not supporting RTL languages.
- Error, caught while solving [#1520936]: incorrect change of width and height
usage in CSS style generation.
- Error: Default set of Allowed states not correct.
- [#1569334]: Message: An illegal choice has been detected.
Please contact the site administrator.
- [#1508066]: Viewport keeps scrolling.
- JS refactoring.
- [#1458118]: Remove LICENSE.txt from Git repository.
Availability Calendar 7.x-3.x
=============================
Availability Calendar 7.x-3.2 2012-01-20
----------------------------------------
- [#1411452]: Views integration fails with multiple calendar fields.
- [#1410822]: Fatal error: Access level to availability_calendar_handler_filter_
availability::$always_multiple must be public.
- [#1371182]: Calendars are too wide in some themes or other style overrides by
themes.
- [#1355640]: All states shown in key block despite the block settings.
- Further corrections on Views integration, e.g. INNER JOIN changed into a LEFT
JOIN.
- Error: DateTime::modify returns null in 5.2.
Availability Calendar 7.x-3.1 2011-11-12
----------------------------------------
- [#1281022-6]: Key incorrectly gets css class cal-month.
- Reworked the availability filter for Views. You can now choose between from/to
or from/duration to specify the period.
- [#1332264]: An AJAX HTTP error occurred when using the availability filter for
Views.
- [#1183372]: 'Show first half of current day as past date in split day
situation' was not really solved.
- Error: Mixed up variable names availability_calendar_styles_generate and
availability_calendar_settings_system_generate.
- Error: Calendar not shown on edit form when user may not disable the calendar.
- Cleaned up some code and classes in calendar widget and its usage in
availability_calendar.edit.js.
- Calendar widget is no longer within a fieldset to not disturb its layout
compared to the calendar field formatter.
- Slightly easier to use availability_calendar_get_states.
- Improved information in "README when coming from Availability Calendars.txt".
- [#1301500]: More sensible defaults.
- [#1290874]: Clone date objects before they are changed.
- [#1290874]: Allow multiple entities per form.
Availability Calendar 7.x-3.0 2011-09-19
----------------------------------------
- Only show the formlet if there is an enabled calendar.
- Added basic styling to the formlet.
- Added an option to make the "URL to proceed the booking" language dependent.
- Moved instance settings (Post URL and booked state) to the field level.
This requires a deletion of all formlet fields followed by re-adding them to
your content types.
- [#1268202]: Fatal error: Call to undefined function availability_calendar_get_states().
- Fields based rewrite of Availability Calendar module.
This module is a complete rewrite, so the changelog has been cleaned.
- Added entity label as a hidden field to the formlet.
- Update README.txt with more instructions regarding webform.
- First version of the booking formlet sub-module that adds a booking formlet
field. See "README.txt" of that sub-module for details.
Current and past maintainers for Availability Calendar(s)
=========================================================
- geodaniel (http://drupal.org/user/37266)
- nicholas.alipaz (http://drupal.org/user/296276)
- fietserwin (http://drupal.org/user/750928)
People that contributed patches:
- Marc-Antoine (http://drupal.org/user/1602302)
File
CHANGELOG.txt
View source
Availability Calendar
=====================
Availability Calendar 7.x-5.x
=============================
Incompatibilities with 7.x-4.2:
-------------------------------
These are actions and checks you have to perform manually after you have
upgraded to this version.
- Clear all caches.
- Update ALL your views related to availability. All functionality is still
there, but may have been moved or renamed. So you may get "broken handler"
messages or handlers that do different things than before. E.g. "filtering on
availability" will now be "filtering on calendar ID".
Availability Calendar 7.x-5.x-dev
---------------------------------
- Warning: DateTime::setTime() expects at most 3 parameters, 4 given in