Previously by setting the response status code inside the action, this prevented response bodies from being included due to 403/401 being matched by SS_HTTPResponse::isFinished() (which stops popular
I assume SS_HTTPResponse::isFinished() is valid for the permission error use case (and I would be hesitant to change it) so this simply moves the declaration of the response status code till after the parent has populated the body of the response.
The `%s` parent ID placeholder was being URL encoded, so it was not being
replaced properly when adding a new page. This fix separately adds
placeholder parameters to the URL to avoid this issue.
The fix is not ideal, but there is no easy way to indicate that some
URL parameters should be URL encoded and others should not while still
correctly constructing the URL.
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
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.
the getCount method works out the number of "entries" for each report. E.g. if the report is "missing pages" and the method returns 3 then there are three "missing pages".
Before this was only possible for some specific ones, like onBeforeWrite.
This excludes any callbacks with augment*() or update*() naming,
since these are assumed to be on extension only, with a corresponding
base method available on the class itself (e.g. "updateCMSFields()"
vs "getCMSFields()").
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.
- Refactored SiteTreeURLSegmentField to render controls in template
rather than JS for better clientside performance, and cleaner behaviour.
- Added dynamic ellipsis to start of URL, to retain most relevant
part of the URL (the last bits)
- Added "suffix" setting to field, which defaults to ?stage=Stage
- Removed prefix from edit view to leave more room for URL
Thanks to @sunnysideup for getting this started in
https://github.com/silverstripe/silverstripe-cms/pull/269
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).
Used to return ArrayList, but since 9d74c99e08 its no
longer using keys, which they functionality using these return
values rely on. Hence the breakage of ReportAdmin,
since no report was being detected as "current" by looking
through the array keys.
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
The custom SQL does not take subsites into account and breaks the CMS
on certain pages - under some circumstances the custom count will return
1 or more, while the set will be in fact empty because of augmentation.