mirror of
https://github.com/silverstripe/silverstripe-translatable
synced 2024-10-22 11:05:59 +02:00
616a123ddc
Adds a language dropdown to the link form in the html editor, so that linking to pages in different locales is possible.
39 lines
1.3 KiB
JavaScript
39 lines
1.3 KiB
JavaScript
(function($) {
|
|
$.entwine('ss', function($){
|
|
$('form.htmleditorfield-linkform').entwine({
|
|
redraw: function() {
|
|
this._super();
|
|
// show language field for internal links
|
|
var linkType = this.find(':input[name=LinkType]:checked').val(), list = ['internal', 'external', 'file', 'email'];
|
|
if(linkType == 'internal') {
|
|
this.find('.field#Language').show();
|
|
}
|
|
},
|
|
updateFromEditor: function() {
|
|
var data = this.getCurrentLink();
|
|
if(data && data.internal) {
|
|
// fetch locale for given sitetree object
|
|
var localeField = $(this).find('#Form_EditorToolbarLinkForm_Language');
|
|
$.ajax({
|
|
url: $.path.addSearchParams(localeField.data('localeUrl'), {'id': data.internal, 'class': 'SiteTree'}),
|
|
success: function(data) {
|
|
localeField.val(data);
|
|
localeField.change();
|
|
localeField.trigger('liszt:updated');
|
|
}
|
|
});
|
|
}
|
|
this._super();
|
|
}
|
|
});
|
|
|
|
$('form.htmleditorfield-linkform #Form_EditorToolbarLinkForm_Language').entwine({
|
|
onchange: function(e) {
|
|
// reload tree with selected locale
|
|
var treeDropdown = $(this).parents('form').find('#internal .treedropdown');
|
|
treeDropdown.data('urlTree', $.path.addSearchParams(treeDropdown.data('urlTree').replace(/locale=[^&]*/, ''), 'locale='+$(this).val()));
|
|
treeDropdown.loadTree();
|
|
}
|
|
});
|
|
});
|
|
}(jQuery)); |