Was fetching the record from live (and its direct URLSegment),
but all of its parents from the current stage, which might be draft,
leading to "mixed" draft/live nested URLs which might no longer
be reachable in live mode.
By renaming fields to "StageLink" and "LiveLink",
which means they don't get influenced by the model getters
on Form->loadDataFrom(). Its also a more accurate
name for the field value, since it contains a full (nested) URL
rather than just a segment. Only used internally, so no API change.
Removed ineffective FieldGroup->subfieldParam setting,
replaced with a specialised template, as well as a new "stacked" styling
(both added to framework codebase)
Installer was feeing the title "Title" to the template. Template
rearranged for usability concerns (people were missing the email and
password when going to the CMS login page)
translations were not added in the same translation group, and the
translation module didn't work. Also commited changes in the translation module, which will need this commit.
Called for each subclass by the collector,
so we don't need to aggregate here.
In fact, its harmful because it causes entities
to be placed in the wrong definitions file.
The <class>.DESCRIPTION entity was always placed in cms/lang/en.yml,
regardless of the original location of the file containing the class.
Allow loading a SiteConfig by ID (by specifying $tree_class),
and pass the ID through with the form data. Unifies processing
with SiteTree, and allows the Translatable module
to use the same logic for interacting with the load/save process.
Mainly to make it compatible with the Translatable
extension linking to existing translations of it,
but also to make it work similarly to the SiteTree logic elsewhere.
- Use DataQuery for generating the search query.
- For custom field matching, use searchcontext rather than a LIKE query.
- Added an extension hook for updating the search form.
The specific situation is if the SearchForm.ss is overriden, and the
$SearchQuery parameter is used in the template. This will throw a Notice
in case the form is rendered without searching.
It is already applied to the parent template container,
which means that tab state finds two nested sets,
setting the wrong id (#Root instead of #pages-controller-cms-content
The ".action-detail" link behaviour overloads GridField's
showDetailForm() method, which in turn appends any query params
to the URL (including the existing search params).
Had the pjax "CurrentForm" marker set to the <form> tag,
which makes sense, but excludes the tabs. On refresh,
the tabset wasn't reinitialized, showing all form elements on
one page. Its easier to simply refresh the whole content area.
- Moved report table generation back to its original location in Report->getCMSFields(),
in order to keep it customisable rather than duplicating it in ReportAdmin.
- Using History.js to set URL state and reload panel
- Namespacing filter GET parameters in order to only include them in URL state