Consistently use uppercase "Locale" GET param

Causes inconsistent behaviour between form field name ("Locale")
and view state in GET parameters ("Locale" and "locale").

Related to #156.
This commit is contained in:
Ingo Schommer 2015-06-01 20:52:07 +12:00
parent 6731a681e9
commit a0a6ec2f91
4 changed files with 8 additions and 12 deletions

View File

@ -26,8 +26,6 @@ class TranslatableCMSMainExtension extends Extension {
$id = $req->param('ID'); $id = $req->param('ID');
if($req->requestVar("Locale")) { if($req->requestVar("Locale")) {
$this->owner->Locale = $req->requestVar("Locale"); $this->owner->Locale = $req->requestVar("Locale");
} elseif($req->requestVar("locale")) {
$this->owner->Locale = $req->requestVar("locale");
} else if($id && is_numeric($id)) { } else if($id && is_numeric($id)) {
$record = DataObject::get_by_id($this->owner->stat('tree_class'), $id); $record = DataObject::get_by_id($this->owner->stat('tree_class'), $id);
if($record && $record->Locale) $this->owner->Locale = $record->Locale; if($record && $record->Locale) $this->owner->Locale = $record->Locale;
@ -53,8 +51,6 @@ class TranslatableCMSMainExtension extends Extension {
// if a locale is set, it needs to match to the current record // if a locale is set, it needs to match to the current record
if($req->requestVar("Locale")) { if($req->requestVar("Locale")) {
$requestLocale = $req->requestVar("Locale"); $requestLocale = $req->requestVar("Locale");
} else {
$requestLocale = $req->requestVar("locale");
} }
$page = $this->owner->currentPage(); $page = $this->owner->currentPage();
@ -75,7 +71,7 @@ class TranslatableCMSMainExtension extends Extension {
// If the record is not translated, redirect to pages overview // If the record is not translated, redirect to pages overview
return $this->owner->redirect(Controller::join_links( return $this->owner->redirect(Controller::join_links(
singleton('CMSPagesController')->Link(), singleton('CMSPagesController')->Link(),
'?locale=' . $requestLocale '?Locale=' . $requestLocale
)); ));
} }
} }
@ -140,12 +136,12 @@ class TranslatableCMSMainExtension extends Extension {
function updateLink(&$link) { function updateLink(&$link) {
$locale = $this->owner->Locale ? $this->owner->Locale : Translatable::get_current_locale(); $locale = $this->owner->Locale ? $this->owner->Locale : Translatable::get_current_locale();
if($locale) $link = Controller::join_links($link, '?locale=' . $locale); if($locale) $link = Controller::join_links($link, '?Locale=' . $locale);
} }
function updateLinkWithSearch(&$link) { function updateLinkWithSearch(&$link) {
$locale = $this->owner->Locale ? $this->owner->Locale : Translatable::get_current_locale(); $locale = $this->owner->Locale ? $this->owner->Locale : Translatable::get_current_locale();
if($locale) $link = Controller::join_links($link, '?locale=' . $locale); if($locale) $link = Controller::join_links($link, '?Locale=' . $locale);
} }
function updateExtraTreeTools(&$html) { function updateExtraTreeTools(&$html) {
@ -155,7 +151,7 @@ class TranslatableCMSMainExtension extends Extension {
function updateLinkPageAdd(&$link) { function updateLinkPageAdd(&$link) {
$locale = $this->owner->Locale ? $this->owner->Locale : Translatable::get_current_locale(); $locale = $this->owner->Locale ? $this->owner->Locale : Translatable::get_current_locale();
if($locale) $link = Controller::join_links($link, '?locale=' . $locale); if($locale) $link = Controller::join_links($link, '?Locale=' . $locale);
} }
/** /**

View File

@ -1119,7 +1119,7 @@ class Translatable extends DataExtension implements PermissionProvider {
'<li><a href="%s">%s</a></li>', '<li><a href="%s">%s</a></li>',
Controller::join_links( Controller::join_links(
$existingTranslation->CMSEditLink(), $existingTranslation->CMSEditLink(),
'?locale=' . $existingTranslation->Locale '?Locale=' . $existingTranslation->Locale
), ),
i18n::get_locale_name($existingTranslation->Locale) i18n::get_locale_name($existingTranslation->Locale)
); );

View File

@ -37,10 +37,10 @@
}, },
onchange: function(e) { onchange: function(e) {
// Get new locale code // Get new locale code
locale = {locale: $(e.target).val()}; var locale = {Locale: $(e.target).val()};
// Check existing url // Check existing url
search = /locale=[^&]*/; search = /Locale=[^&]*/;
url = document.location.href; url = document.location.href;
if(url.match(search)) { if(url.match(search)) {
// Replace locale code // Replace locale code

View File

@ -31,7 +31,7 @@
onchange: function(e) { onchange: function(e) {
// reload tree with selected locale // reload tree with selected locale
var treeDropdown = $(this).parents('form').find('#internal .treedropdown'); var treeDropdown = $(this).parents('form').find('#internal .treedropdown');
treeDropdown.data('urlTree', $.path.addSearchParams(treeDropdown.data('urlTree').replace(/locale=[^&]*/, ''), 'locale='+$(this).val())); treeDropdown.data('urlTree', $.path.addSearchParams(treeDropdown.data('urlTree').replace(/Locale=[^&]*/, ''), 'Locale='+$(this).val()));
treeDropdown.loadTree(); treeDropdown.loadTree();
} }
}); });