The LiveWhale Calendar back-end has a fresh, updated look!
In addition to updated colors and fonts, the toolbar has been updated:
The Your Content dropdown contains your Events, RSVPs, Images, etc.—anything that your everyday publisher might be looking for.
The Toolbox is now for admins only, and contains more advanced system-wide settings
There’s also now a new Dashboard view including analytics stats (if enabled), upcoming events, and the option to email support (with a configurable destination address). When using the back-end, the new main navigation bar will show the same items from the Your Content dropdown: Events, RSVPs, Images, Locations, Files, Tags, and (if your user permissions allow) Widgets.
Accessibility
We all know it: making accessible websites and using accessible tools is more important than ever. With LiveWhale 1.7 we have taken huge strides towards ensuring that your site visitors and editors have the smoothest, most inclusive experience possible.
Out-of-the-box calendar templates now contain 0 WAVE Errors and are 100% WCAG 2.0/Section 508 compliant
WCAG 2.0 AA
LiveWhale Calendar: back-end is now 100% compliant: at least according to our latest tests! If you notice anything we’ve missed, please reach out.
LiveWhale CMS: back-end interfaces are 95%+ compliant: some complex interfaces like the drag-and-drop navigation editor and certain tools in the widget editor may not be fully compliant; it’s on our list to work on those next, and please reach out if you have particular questions or feedback about this project (or if you’d like to be a beta-tester!).
Keyboard and screen-reader navigability (tested with JAWS for Windows and VoiceOver for Mac)
Core calendar front-end templates now have proper tab order and allows focus of all key elements. Aria roles have also been added for navigation.
Date fields now provide the necessary format (MM/DD/YYYY) for keyboard and screen-reader users, allowing them to bypass the mouse-only datepicker
Subscribe modal (and all modal menus) are now keyboard navigable, and allow you to exit and return to your earlier cursor focus with the Escape key.
Calendar search and event type filters now receive an automatic “Skip to results†link as the next tab item when interacted with. (After testing, we determined this was our preferred way to assist screen-reader users in finding updated events listings, rather than using aria-live.)
Mini-cal is now keyboard and screen-reader navigable using the arrow keys and Enter to pick a date:
New back-end filter: Search for images without captions (if they had been uploaded before the decorative-image option was added) Customer Request
New user permission: Upload files Customer Request
This user permission lets you enable/disable the uploading of PDF and Word documents to LiveWhale (enabled by default) so you can grant it selectively to editors who have been trained in creating accessible PDFs.
Empty headers h1–h6 are now converted to empty paragraph tags on save, to preserve visual spacing as much as possible while avoiding “empty header†accessibility errors. Customer Request
Of course, it takes a village to make a website, and a CMS is no different! As you use LiveWhale, please don’t hesitate to reach out with accessibility questions or concerns. We’re always going to do our best to keep up with the evolving standards in our field, and if you ever see an area where we’re falling short, let us know!
Notifications
Email notifications are now fully customizable. Previously you could edit the global HTML wrapper but not the contents of individual notifications. Now, each notification type has a separate template which you can duplicate in your _ingredients folder and customize. [docs]Customer Request
Events
RSVP count is now visible from the events manager and event editor.
Events can now be scheduled as planned for publication at a future date. [docs]Customer Request
Enhancements to what fields can be imported from iCal feeds[docs]Customer Request
X-LIVEWHALE-SUMMARY
X-LIVEWHALE-TAGS (bar-separated list)
X-LIVEWHALE-COST
CATEGORIES now supports both bar-separation and comma-separation
Front-end display of event types and tags are now configurable on a per-group basis. [docs]Customer Request
Increased character limit in event registration response email from 2000 to 4000.
Linked calendars can now have custom RSVP fields configured and applied to all new incoming events.
Event types may now contain parentheses.
Added the ability to exclude groups from the public submissions dropdown via EXCLUDE_PUBLIC_GROUPS. [docs]Customer Request
Public Submissions
Event submission form now supports end date and summary fields. [docs]Customer Request
Public submission “thank you†page can now be configured on a per-form basis. [docs]Customer Request
Public submission form now supports sending a confirmation email. [docs]
Images
Improvements to Image Collections
Images can now be added to more than one collection.
New automatic collections: Shared Images, Added to Events, Added to Profiles, etc.
It is now possible to copy shared images directly to a collection or add to a new or existing gallery.
Uploaded images now retain EXIF/ICC/IPTC metadata in the subsequent image sizes/crops generated from the high res original. Customer Request
Images can now have licensing information entered and optionally displayed. Customer Request
Images may now be starred from the image manager.
Widgets
New: Widget Templates. You can save the work of repeating your widget formatting (or any other arguments) between multiple widgets with this new widget template functionality. [docs]
It is now possible to access location latitude and longitude in widget lists. Customer Request
Improved duplicate filtering in stream widgets.Customer Request
It is now possible to wrap clean markup results rather than the entire widget via the format_widget option.
The group and exclude_group args on the tags widget now restrict results to tags used by content found in those groups (as opposed to restricting results by tag ownership alone).
Themes
Theme files that exist in the global theme only can now be subsequently overridden by a custom theme. (Previously, it was required that they match filenames from the core theme.)
LiveWhale Calendar now supports nested theme directories (/foo/ and /foo/bar/ can be separate groups)
Developer
Easier Custom Fields: The ability to add custom fields to backend editors is now integrated into the CMS and no longer requires a client module. [docs]
LiveWhale now supports CMS commenting. Comments in the style <!— LW: your comment here —> (i.e. with a “LW:†prefix) will not show up in the browser source. [docs]
GET variables are now preserved through widget pagination.
New XPHP functionality
XPHP now supports shorthand syntax for simple if-then conditions: <xphp if=â€varâ€>some conditional content</xphp> [docs]
New XPHP casts for controlling the case of strings: uppercase, lowercase, uppercase-first, uppercase-words. Additionally, it is now possible to specify multiple casts by separating the values of the cast attribute with a space. [docs]
You can now reference GET/POST/SERVER/COOKIE vars with XPHP using the attribute-safe syntax %%xphp_. [docs]
xphp var=details_tags_dashed now available on all details pages
Expanded JSON Results
The /live/json endpoint now supports pagination. Specify your pagination arg (/pagination/30) and use ?page=1, ?page=2, etc. to fetch subsequent pages of results. Please note that the endpoint response is modified when pagination is turned on in order to deliver metadata about pagination. [docs]
Added to results: thumbnail_captionCustomer Request
Added to results: location_idCustomer Request
Added to results: last_modifiedCustomer Request
Added to results: repeats_start and repeats_end for repeating and multi-day events, which communicate the start and end of the repeating/multi-day series. Customer Request
New $_LW Functions
In addition to create()/update()/delete(), the LiveWhale API now supports $_LW>read() which mirrors the response provided by the /live/json REST endpoint. [docs]
Added method for obtaining IDs of content that possess specified custom data values via getContentForCustomFieldValue(). [docs]
getPlacesReservationInstructions now returns the name and ID of conflicting events separately. Also, conflicts will be indicated on the event editor even if “This location requires a reservation†is unchecked. Customer Request
New Handlers
New onChangeDatabaseHost handler allows custom modules to update their own data when a host switch is performed.
Handler onAfterSync has new mode unchanged for after unchanged items are synced. [docs]
Other
Dynamic content links without ID #s: Dynamic content can now be accessed via permalink without knowing the ID, using either an exact title or best-match: /live/news/my-story.
You can now add additional tags args to a widget when adding them to a WYSIWYG element.
Add support for embedding Youtube Playlists via the wysiwyg editor
The “by tag†filter on all managers is now restricted to only tags used by the current group’s content of that type.
It is no longer possible to toggle the sharing state of content from managers in bulk.
TinyMCE upgraded to 4.9.2. jQuery upgraded to version 3.4.1 jQuery UI upgraded to version 1.12.1.
LiveWhale now requires a minimum version of PHP 5.5 (7.2 recommended) and MySQL 5.1 for operation. For the latest software requirements and recommendations, please consult the LiveWhale documentation at https://docs.livewhale.com/setting-up-a-new-server.html
LiveWhale 1.7 uses node modules that are installed in the instance’s root directory, or at the level as the site’s public_html directory. When installing or upgrading to 1.7, all node modules (LESS, cleancss, etc.) must be installed by running npm install as the user LW is installed under (without sudo) from the installation’s root directory. The npx module must also be installed globally with sudo npm install -g npx
Added support for auto-compiling ES6. As with LESS, a .es6 file will take precedent over a .js file and compile automatically.
New Secure Connection Options
Added support for MySQL connections via SSL. [docs]Customer Request
LDAP login module now supports TLS via the LDAP_TLS setting. [docs]Customer Request
Added support for certificates to LDAP logins via LDAP_CACERTFILE and LDAP_CACERTDIR. [docs]Customer Request
A new location for integrations has been established (/integrations, along side /data, /logs, etc.) This is the new location for both Google Analytics key files and SAML configurations. Note that files will be copied from their old locations to this new location at upgrade time.
Diagnostics and Reporting
Certain bulk actions from managers (including changes from Hidden to Live) are now logged in the activity feed. Customer Request
The activity log and page history now display info for users that have since been deleted. Customer Request
LiveWhale now performs a diagnostic check to detect and warn about syntax errors in CMS config files.
LiveWhale now emits a diagnostic message about details templates that are either missing or non-functional.
Bug Fixes
Fixed an issue where it was not possible to add a location to content, when not saving it to the locations library, if it had the same name as an existing saved location.
Fixed an issue where urls in the redirects manager and the navigation manager were too strictly limited in allowable length.
Fixed an issue where WYSIWYG fields in profiles were having their formatting/images stripped when saving and restoring from revisions.
Draft revisions of pages no longer count toward last-modified date or user.
Strip extra spaces from radio, checkbox, and select fields in form editor.
Public event submissions can once again be directed to specific groups.
Fix bug in trash view for non-admin users.
Remove defunct Google Plus share links.
Updated URL syntax for Facebook and Twitter share links.
Fix image attachment bug on public event submission form.
Upcoming Featured Events in calendar view correctly shows only starred events once more.
Fixed an issue where link copies of blurbs did not properly sync their content with the parent blurb.
Sort linked calendars alphabetically rather than by id.
Campus selector now properly shows up in selected item dropdown.
Fixed ical parsing issue to import recurrence-id events whose parents cannot be found.
Failures to connect to slave nodes va SFTP during the page save process now fail more gracefully, minimizing impact on editors.
File upload fields in forms now only accept a single upload (it used to be they would appear to accept multiple uploads but only save one).
Note: Some of your theming might need to be adjusted to account for accessibility improvements to Livewhale 1.7. For instance, in the forms module, we now correctly wrap radio button and checkboxes in their own labels, rather than adding the label to the question before—so, to make your forms look the same as 1.6.2 and earlier, you could update your theming to give div.lw_forms_label the same styling as the other label element.
Note: The /live/json/* endpoints now denote tags as an array, rather than a comma separated string. This may require updating applications using these endpoints.
Note: If you had previously customized your email template at /livewhale/client/modules/messages/includes/email_template.html, we recommend migrating that to the new /_ingredients/notifications/ setup [docs].
Note: The template manager now auto-discovers templates added/removed/modified inside /_ingredients/templates. Starting with LiveWhale 1.7, new templates will only be available under that directory (or subdirectories therein). Existing templates outside of this directory will be supported until they are unflagged as templates. [docs]
Note: If you are using the custom client profiles_template app, that functionality is now native in 1.7, you may migrate to the new settings and then remove the custom module. [docs]
If you host your own site: LiveWhale now requires a minimum version of PHP 5.5 (7.2 recommended) and MySQL 5.1 for operation. [docs and all system requirements]
The LiveWhale team will be systematically updating all of your dev servers to the latest version shortly (please let us know if you need us to wait to upgrade your dev server for any reason, if you’re actively developing something for instance).
Once your dev server is upgraded, you can review your site there for any client-specific code (themes, modules, or other customizations) that might need to be updated to work with the new version. Then we can schedule your production server upgrade once that testing is complete.
If you don’t have a dev server, please reach out to support@livewhale.com about getting one set up.