This release focused primarily on small changes, bugfixes, and stability improvements. For most users, the updates in this release are significant but do not constitute anything new.

Site Copy

This is the one major new feature in this release. It is now possible to simply copy an existing site, which will copy all of the content on the site as well as the package associations, etc...

This should make it easy to create copies of sites - such as for development or for creating new full site packages - without having to go through package manager first. This could previously be accomplished using exports and imports, but imports were not capable of maintaining the existing package associations (which would frequently cause trouble later when trying to manage the new site).

To copy a site, navigate to Site Administration -> Advanced Options -> Copy Entire Site.

UI Improvements

  • Email Validation: When a new user with an unvalidated email address tries to do something that requires email validation, first refresh their tokens and double-check that they have not already verified their email address before prompting them to verify their address and continue.
  • Upload Error Display: Display an improved error message when a file upload fails, such as when replacing a document with a different extension.
  • Max File Size Limit: Increased the max filesize upload limit to the CMS to be 1GB, as well as adding a helpful error message when the file size is too large.
  • Export Downoad Icon: When an export operation completes, show the download icon without requiring a dialog refresh.
  • Form and Datastore Summary Fields: Allow users to select form and datastore fields to display in the form submission and datastore item dialogs. The selected fields are saved for all users.

Backend UI Improvements

One of the major efforts in this release was improving the "backend of the frontend" - that is the javascript libraries that power the frontend UI. Some of these improvements include:

  • Implemented cancellable promises with a custom library, which includes our own deferred and cancelToken objects and which are compatible with jQuery and numerous other promise libraries. Also supports immediate resolution for faster code.
  • Calls to the API are now based on configuration objects, which gives increased flexibility regarding selection of websocket vs rest APIs, retries, cancellation, etc...
  • Queue calls to the APIs to alleviate server timeout errors from too many simultaneous requests.
  • Cleaned up a large number of old javascript objects and numerous other minor javascript performance improvements.

Live/Liquid Improvements

  • Domain Filter: Fixed domain filter for live object collections. Using "domain_name" instead of "site_domain_guid". Also added ability to search by domain name.
  • Non-Compiled Stylesheets: Improved error handling when a users to use a non-compiled stylesheet as if it were a compiled stylesheet.
  • Unsuppored Image Formats: Handle unsupported image formats the same as we currently handle SVGs (ie: simply pass the original image through. Image presets won't work but at least the image will be displayed.

Backend Improvements

  • Failed Payment Handling: Improved backend communications for failed payments, and fixed some issues with temporary site deactivation due to repeated failed payments attempts.
  • SSL Certificate Generation: Fixed a bug and made some improvements for SSL certificate generation and maintenance.
  • Unverified Domain Cleanup: Periodically clean up domains that failed to verify.
  • Disabled Email Click Tracking: Improved email deliverability by disabling click tracking.
  • CDN Purging: Improved reliability of CDN purging, including correct capitalization for some cache paths and improving error handling when the cache path is empty.
  • Site Permanent Deletion: Improved reliability of the site permanent deletion workflow.
  • Updated Dependencies: Updated all dependencies except those with major regression and compatability issues.
  • Adjusted parallel and timeout settings: Made relevant tweaks to server timeouts and max parallelism, particularly for websockets.
  • Updated javascript libraries and API Selection: Calls to the Marketpath APIs are now based on configuration objects, which gives increased flexibility regarding selection of websocket vs rest APIs, etc...

Stylesheet Compilation

Another major effort in this release was an improvement for performance when compiling stylesheets. Previously, it would often take 30 seconds or more to publish stylesheets due to slow compile times. This issue was particularly noticable on sites with a lot of stylesheets, since republishing one partial stylesheet might result in recompiling many compiled stylesheets. This issue was aggrevated by poor site design - including too many compiled stylesheets on a page can decrease browser performance. Regardless of site design, however, Marketpath CMS should be able to handle this number of stylesheets without such dramatic performance degredation. By updating our backend architecture and the way that stylesheet compilation is handled, we were able to reduce the compile time in this release to under a second without any changes to capability or functionality.

Bugfixes

  • Record the correct referrer URL for form submissions.
  • Fixed a UI bug with infinite redirects when navigating to the incorrect URL when the user's session is not active.
  • Several attempts to fix token lifetime management issues (ie: different session information between identity.marketpath.com and cms.marketpath.com)
  • Fixed a UI bug with viewing preview pages while logged in to Marketpath CMS.
  • Fixed a bug with setting the site package update information during package installation.
  • Fixed an edge-case bug with the liquid automatic markup that only occurred when the output HTML contained an empty head tag with no characters in between the opening and closing tags.
  • Fixed a UI bug with browsing the contents of a package
  • Fixed a bug that was preventing the live edit button from ever being displayed
  • Fixed a bug with inviting a new user to manage an account
  • Fixed an edge-case bug with missing login information for API users
  • Fixed some issues with imports related to nested folders, using GUIDs instead of names, and menu items without proper ordering.
  • Fixed the broken "Site Inactive" page (displayed when a free site is temporarily deactivated)
  • Fixed a permission issue during site creation when the user is also creating a new account
  • Fixed a persistent bug with websocket timeout errors.
  • Attempt to fix bug where the stylesheet URL on the live site is different from the URL on the manage site when the stylesheet name contains special characters (such as spaces and colons).
  • Fixed a bug with the liquid slice filter.
  • UI bugfix for removing users and agencies form sites, accounts, and agencies. The UI would previously say there was an error even when the operation succeeded.

This is not a comprehensive list. It only contians the most significant bugfixes in this release.