silverstripe-reports/javascript/CMSMain.Translatable.js
Ingo Schommer 01d06dd47e API CHANGE Replaced CMSMain->LangSelector() with CMSMain->LangForm() to provide more accessible backend and properly wrap existing <select> tag in a form
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@92728 467b73ca-7a2a-4603-9d3b-597d59a354a9
2009-11-21 03:16:00 +00:00

58 lines
1.8 KiB
JavaScript
Executable File

(function($) {
/**
* @class Dropdown with languages above CMS tree, causing a redirect upon translation
* @name ss.CMSMain.LangSelector
*/
$('.CMSMain #Form_LangForm').concrete('ss', function($){
return/** @lends ss.CMSMain.LangSelector */{
onmatch: function() {
var self = this;
// monitor form loading for any locale changes
$('#Form_EditForm').bind('loadnewpage', function(e) {
var newLocale = $(this).find(':input[name=Locale]').val();
if(newLocale) self.val(newLocale);
});
// whenever a new value is selected, reload the whole CMS in the new locale
this.find(':input[name=Locale]').bind('change', function(e) {
document.location = 'admin/?locale=' + $(e.target).val();
return false;
});
}
};
});
/**
* Loads /admin/createtranslation, which will create the new record,
* and redirect to an edit form.
*
* @class Dropdown in "Translation" tab in CMS forms, with button to
* trigger translating the currently loaded record.
* @name ss.CMSMain.createtranslation
* @requires jquery.metadata
*/
$('.CMSMain .createTranslation').concrete('ss', function($){
return/** @lends ss.CMSMain.createtranslation */{
onmatch: function() {
var self = this;
this.find(':input[name=action_createtranslation]').bind('click', function(e) {
var form = self.parents('form');
// redirect to new URL
// TODO This should really be a POST request
document.location.href = $('base').attr('href') +
jQuery(self).metadata().url +
'?ID=' + form.find(':input[name=ID]').val() +
'&newlang=' + self.find(':input[name=NewTransLang]').val() +
'&locale=' + form.find(':input[name=Locale]').val();
return false;
});
}
};
});
}(jQuery));