If the logged in user doesn't have permission to add a Folder record,
AssetAdmin::getEditForm() tries to enter an empty value into the
children of a ComposteField. This breaks SSViewer with a
call_user_func invalid args PHP warning.
Only include these buttons when they're available to the user.
- Based on new (last) translation download from getlocalization.com
- Removed untranslated strings. Getlocalization started including those at some point
which is highly annoying, unnecessary and breaks the new transfix system,
since it'll mark all of the english strings as actual translations
- Avoid dots in entities. It confuses the Transifex YML parser
- Removed some locales unknown to Transifex which didn't have any translations anyway
- Removed "lolcat" locale, uses custom notation (en@lolcal)
which SilverStripe's i18n system can't handle
(needs mapping from SS naming to Zend naming)
- Renamed "Te Reo/Maori" locale from "mi_NZ" to "mi" (Transifex/CLDR notation)
- Namespaced all entities used in templates (deprecated usage)
- Converted dots to underscores where template filenames are used for namespaces,
since Transifex YML parsing handles them as separate YML keys otherwise
- Removed whitespace in entity names, SilverStripe i18n can't handle it
- Only allow selection of locales registered through i18n::$all_locales to avoid
issues with unknown locales in Zend's CLDR database
- Based on new (last) translation download from getlocalization.com
- Removed untranslated strings. Getlocalization started including those at some point
which is highly annoying, unnecessary and breaks the new transfix system,
since it'll mark all of the english strings as actual translations
- Avoid dots in entities. It confuses the Transifex YML parser
- Removed some locales unknown to Transifex which didn't have any translations anyway
- Removed "lolcat" locale, uses custom notation (en@lolcal)
which SilverStripe's i18n system can't handle
(needs mapping from SS naming to Zend naming)
- Renamed "Te Reo/Maori" locale from "mi_NZ" to "mi" (Transifex/CLDR notation)
- Namespaced all entities used in templates (deprecated usage)
- Converted dots to underscores where template filenames are used for namespaces,
since Transifex YML parsing handles them as separate YML keys otherwise
- Removed whitespace in entity names, SilverStripe i18n can't handle it
- Based on new (last) translation download from getlocalization.com
- Removed untranslated strings. Getlocalization started including those at some point
which is highly annoying, unnecessary and breaks the new transfix system,
since it'll mark all of the english strings as actual translations
- Avoid dots in entities. It confuses the Transifex YML parser
- Removed some locales unknown to Transifex which didn't have any translations anyway
- Renamed "lolcat" locale from "lc_xx" to "en@lolcat" (Transifex/CLDR notation)
- Renamed "Te Reo/Maori" locale from "mi_NZ" to "mi" (Transifex/CLDR notation)
- Namespaced all entities used in templates (deprecated usage)
- Converted dots to underscores where template filenames are used for namespaces,
since Transifex YML parsing handles them as separate YML keys otherwise
- Removed whitespace in entity names, SilverStripe i18n can't handle it
SiteTree versions that arent the live version shouldnt be accessed by
regular users, but the logic to check that was split off into canViewStage,
which wasnt checked by code that isnt specifically SiteTree aware
(like RestfulServer)
It was possible to append '/successfullyinstalled' to any SilverStripe
URL (with the cms module present), and the code would run, including
republishing the 404 page.
Now, if the install.php file is gone, this controller method throws the
410 (Gone) status code. The 410 status is chosen rather than 404 to
mitigate the likelihood that crawlers such as the Googlebot will follow
stray links to this URI.
Currently reverts are not creating the new versions anymore - they are
simply copying the Version over. Remove incorrect message about new
version creation and remove the "cancel draft changes" message that's
not correct.
Instead of cloning the Request object and losing all the custom
attributes that don't come through the construct (eg: headers) we can
now set the URL alone.
Avoids showing unescaped HTML on fields which didn't allow it otherwise,
e.g. TextField. This also fixes problems with SiteTree->ExtraMeta
which got evaluated within the CMS. If this section contains any
JavaScript it gets executed and can disrupt CMS operation.
If the redirect is to an internal page, the preview iframe
will automatically load this new URL, causing the CMS edit
form to switch as well - effectively making it impossible
to edit a redirector page in the CMS as soon as it is saved
with an internal redirection target.
Utilise the new features provided by the framework to get richer
interface:
* save buttons that highlight the current state of the page
* minor actions in a drop-up
* embed last publishing and saving information
Moving to another page in the GridField for the root assets folder in AssetAdmin
caused all files to be displayed. This was caused by the functionality that tries
to fix some edge cases for detail view kicked in and didn't filter the list properly.
Fixed by making the edge case detection a little more specific (i.e. checking if
a numeric ID was sent as a request variable).
Introduces a preview window that appears when the screen is wide enough,
removes old preview button, adds a draft-public switch, adds variety of
preview options which are not hooked up yet.
Relies on sapphire's f95fadc84416835302fe6c8448054960b5e7ec65
- Fix support for $allowed_children
- Added note when type selection is restricted
- Removed overly complex specs for "allowed children",
the data should be inferred from "disallowed children"
- Added support for SiteTree::$can_be_root
- Return raw JSON (not entity-encoded) from CMSMain->SiteTreeHints()
- Added tests for CMSMain->SiteTreeHints()
https://github.com/silverstripe/sapphire/pull/827 adds some extension points for catching HTTP errors such as 404. This change fixes some issues where httpError() isn't used all the time. Note that the aforementioned pull request will be necessary to ensure that it works properly.
setFolderName expects a folder name relative to the root. Specifying
ASSETS_DIR will create a duplicate folder called "assets", so the
file gets uploaded into "assets/assets". Specifying "/" means the
file will get uploaded into the root instead, which is correct.
Ideally we could do this without session, but pragmatically
we still need it, because of the inflexible routing system,
and because of performance considerations.
Example: The tree is lazy loaded via a generic URL (admin/pages/treeview).
While we could add ?ID=<currentpage> to make the view (more or less) stateless,
it would trigger a full tree reload on every tree navigation action.
Instead, we assume that all "reachable" nodes are already cached,
and simply mark a different one as current. For this to work, we need
shared session state between CMS controllers.
See http://open.silverstripe.org/ticket/7815 for detail.
Related to #7740. The sort field gets stale if the current
record is moved in the tree. Since the sort value can't
be altered by interacting with the form, its not required
as a hidden field, either.
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)
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.
- 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.
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.