Llama Hoof
public domain (CC0 - http://creativecommons.org/licenses/publicdomain/): https://pixnio.com/fauna-animals/alpacas-and-llamas/hoof-animal-fur-grass-lama-leg

With over 19 completed tasks in this sprint, it'll be difficult to do all of them justice, but we'll do our best! First, though, here is the general overview:

  1. Bugfix: Form and form field validation
  2. Bugfix: Fixed several minor import bugs
  3. Bugfix: Domain selector in page edit interface previously always displayed the site default.
  4. Feature: Custom Site Settings
  5. Feature: Default displays for all objects on live sites.
  6. Feature: Default displays for all object collections on live sites.
  7. Feature: {{ entity.linked_title }}
  8. Feature: {{ authorCollection.linked_list }} and {{ tagCollection.linked_list }}
  9. Feature: Change form field types
  10. Feature: Notify users when other users overwrite their checkouts
  11. Feature: In order to view a preview site, you must now either view it from the CMS portal or enter a password.
  12. Improvement: Link to live and preview pages in Page Edit interface
  13. Improvement: Import and Export jobs are now run automatically
  14. Improvement: When a user navigates to the main CMS page while not logged in, redirect them back to the same page after login
  15. Improvement: Simplified the creation of new sites, including the ability to copy a template site at creation.
  16. Improvement: Updated HTML editor to include the latest set of bugfixes and enhancements.
  17. Improvement: Menu items on preview sites now link to preview pages instead of live pages where applicable.
  18. Maintenance: Miscellaneous dependency updates and a number of backend infrastructure improvements.
  19. Maintenance: Other small miscellaneous bugfixes and improvements

Bugfixes

Form and form field validation: There were previously several form fields that were not being validated properly. This was caused by two separate issues, but to skip the boring details we'll just say that form fields are validated (or not validated) properly now.

Import bugs: Among some other bugs, form fields in groups were not being imported properly. Following this bugfix, we were able to successfully export and import entire sites and everything worked as expected immediately following the import without requiring further manual attention to fix any broken references, etc..

Domain selector: Do to an odd timing conflict in our codebase, when you navigate to the page editor it always re-selected the default site domain for every page. This has been corrected and in our testing it now properly selects the domain previously saved on the page.

Feature: Custom Site Settings

Custom Site Settings

Add custom site-wide settings accessible from the templates. Some examples might be to select the logo or main menu, enter a third-party javascript API key, or make a shared template customizable per site without modifying code.

Site settings may be exported and imported between sites, which facilitates the creation of plugin-type packages which may be imported onto multiple sites to duplicates the same functionality.

Creating a New Site Setting

Creating custom site settings is similar to creating form fields. You can use any name you want for the site setting, but I would recommend to utilizing a naming convention that you will be happy to use in your templates (so avoid spaces and non-alpha characters).

Accessing custom site settings in the templates may be done from the page object, although currently all site settings are only accessible as text regardless of what the setting type is. Eg: To fetch the main site menu, you might create a new Custom Site Setting with Name = "mainmenu" and Type = Menu, then access it using {% menu my_main_menu site.mainmenu %}.

Template Settings

Custom site settings are currently entered in the same place as other template settings. Navigate to "Site Settings" -> "Templating" and look for the section labeled "Custom Site Settings". Note that even if you want to keep the default value, you still have to Publish your site settings in order for it to be accessible on the live site.

Custom Site Settings

Feature: Default Object Displays

All objects now have a default display output in Liquid. This feature is intended to make it easier for template developers to focus on more custom functionality while providing a fallback in case they get lazy (which is typically a desirable feature in a developer) or are not sure what to display.

Ideally, this should only be used as a fallback, since one of the weaknesses of this approach as it is implemented at the moment is that it is not versioned, meaning that if we ever decide to change the default display then it will affect all sites currently using the default output. We may address this in the future, or we may find a cleaner way to accomplish the same thing.

In addition to creating a default display output for all objects, we also created default display outputs for all object collections. This is currently inflicted by the same benefits and limitations as the default display output for objects. It does make it convenient if you just want to do something like {{ blog_post_collection }} without worrying about the specifics of the formatting.

Feature: Liquid Helper Properties

There are several notable helper properties that we added to objects in order to make template development easier.

First of all, all entities (objects that can have pages) now have a linked_title property, which is simply a shortcut for <a href="{{ entity.default_page_url }}">{{ entity.title | escape }}</a> with a fallback to simply {{ entity.title | escape }} for objects that do not have a default page.

Secondly, author and tag collections can now be output directly using the {{ collection.linked_list }} syntax. Try it and tell me that is not easier than writing the equivalent syntax.

Feature: Change Form Field Types

Previously, once you created a form field, you could not change its field type. There are still several exceptions (eg: Captcha and Submit fields), but you can now change almost any field into another field type and it will remember the relevant settings.

Eg: Changing a select list into a checkbox list will remember your options. You could even change it into a text field, but then your options would not mean anything. Remember to publish your fields after you change them.

Change Form Field Type

Feature: Notify users when other users overwrite their checkouts

Previously, if someone else overwrote your checkout, you wouldn't know about it until you tried to save your object and it asked you to overwrite their checkout instead. Now you will receive a notification when other users overwrite your checkout, although it is only visible on the screen for about 10 seconds and if you are not paying attention you still might miss it.

Feature: Password protect all preview sites

This feature has been on our roadmap since the beginning. In order to prevent abuse of the CMS and to keep your non-public changes safe, we have implemented a password-protected preview system.

Preview Password in Site Settings

You should not notice any difference while previewing pages in the page editor, but if you navigate directly to a preview site you will be prompted for a password. In order to retrieve that password, you (or someone else with management access for the site) will have to log in to the CMS, go to Site Setting -> Preview Password.

The password displayed in that interface may be shared with as many people as you like, but it is only valid for two weeks and only 10 people may view your preview site at a time outside of the management interface.

This password is periodically regenerated, so do not be surprised if you come back a few days later and see a different password. BOTH passwords will be valid on the preview site until they expire on their respective dates.

Improvement: Links in Page Edit Interface

The page edit interface now includes a link to the preview page and a link to the live page (if published) that you are currently editing. The links are located to the right of the page selector. Clicking on the "Binoculars" icon will open the page in the preview site. Clicking on the "Checkmark" icon will open the page in the live site.

Links in Page Edit Interface

Improvement: Automatically run import and export jobs

You previously had to navigate to a specially crafted URL in order to manually kick off import and export jobs. We now have an automated process that handles that for you.

You may notice a small delay in how long it takes the import and export jobs to start, but the delay should be minimal and it comes with some significant improvements as well.

Most notably for you, import and export jobs should not be limited by the same time and memory limits when they are started by our internal processors as opposed to when they are started by a HTTP request.

Most notably for our infrastructure, we will be able to start, stop, and delay imports and exports during periods where our servers are experiencing unusually high loads.

Improvement: Login Redirect

When you click on a link to edit a particular object, the URL looks something like "cms.marketpath.com/m#!/asdf/blogpost/wxyz". If you are not logged in, however, then you are automatically redirected to the login page, and after logging back in you are redirected to the main dashboard.

After this improvement, however, logging back in will instead redirect you to the URL you originally attempted to access: "cms.marketpath.com/m#!/asdf/blogpost/wxyz". This change makes it much easier to share links to specific resources that need to be managed.

Improvement: Site Creation

We made a number of significant improvements to the process of initial site creation in this release.

This not only makes it simpler and more intuitive to create a new site, it also adds some extra functionality and it opens up the door for us to make further significant improvements to the site creation and management processes in the future.

Now when you create a new site, you will be guided through a series of selections for the initial configuration of the site. All of this information may be altered later, but having all at the beginning makes the whole process faster and more convenient.

One of the most helpful improvements related to site creation is the ability to use free development domains when creating sites. These development domains are simple to set up and are easy to swap our for your final live domains when you are ready.

The other helpful improvement related to site creation is the ability to select a "Theme" for your site. In essence, this enables you to create a fully functional website from the beginning instead of starting with a "blank slate" and building up from nothing. The current options are all fairly minimal, but our selection of themes and the functionality offered by those themes will grow as we are able to add and improve our selection over time.

Improvement: HTML Editor

We made a minor update to our HTML editor, which includes several fixes and usability improvements. For full details on the update, see the 2.7.1 Froala Changelog notes.

Improvement: Menu Items on Preview Sites

Previously, menu items published to our preview environment contained the same links as those published to our live environment, regardless of the type of link. This improvement simply updates any links to pages in the preview environment to link to the page on the preview domain instead of the live domain, thereby making the preview website that much easier to browser before go-live.