Fixed a bug. Width of multilingual UI

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12284 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
flyskyko 2012-11-22 06:59:53 +00:00
parent 6cb2b49153
commit d1d9bce775
3 changed files with 89 additions and 18 deletions

View file

@ -1587,11 +1587,11 @@ jQuery(function($){
var width = $this.width(); var width = $this.width();
if(t.tagName == 'TEXTAREA' || $this.data('type') == 'textarea'){ if(t.tagName == 'TEXTAREA' || $this.data('type') == 'textarea'){
var $displayInput = $('<textarea id="lang_' + id + '" class="displayInput" style="width:' + width + 'px">').data('lang-id', id); var $displayInput = $('<textarea id="lang_' + id + '" class="displayInput" style="width:' + width + 'px" data-width="' + width + '">').data('lang-id', id);
}else{ }else{
var $displayInput = $('<input type="text" id="lang_' + id + '" class="displayInput" style="width:' + width + 'px">').data('lang-id', id); var $displayInput = $('<input type="text" id="lang_' + id + '" class="displayInput" style="width:' + (width-28) + 'px" data-width="' + (width-28) + '">').data('lang-id', id);
} }
$displayInput.attr('placeholder', $this.attr('placeholder')); $displayInput.attr('placeholder', $this.attr('placeholder'))
var $remover = $('<button type="button" class="x_add-on remover" title="' + xe.cmd_remove_multilingual_text + '"><i class="x_icon-remove"></i>' + xe.cmd_remove_multilingual_text + '</button>').data('lang-target', id); var $remover = $('<button type="button" class="x_add-on remover" title="' + xe.cmd_remove_multilingual_text + '"><i class="x_icon-remove"></i>' + xe.cmd_remove_multilingual_text + '</button>').data('lang-target', id);
var $setter = $('<a href="#g11n" class="x_add-on modalAnchor" title="' + xe.cmd_set_multilingual_text + '"><i class="x_icon-globe"></i>' + xe.cmd_set_multilingual_text + '</a>').data('lang-target', id); var $setter = $('<a href="#g11n" class="x_add-on modalAnchor" title="' + xe.cmd_set_multilingual_text + '"><i class="x_icon-globe"></i>' + xe.cmd_set_multilingual_text + '</a>').data('lang-target', id);
@ -1604,7 +1604,7 @@ jQuery(function($){
$displayInput.bind('selected.g11n', function(e, code, value){ $displayInput.bind('selected.g11n', function(e, code, value){
var width = $displayInput.width(); var width = $displayInput.width();
if(!$(this).parent().hasClass('active')){ if(!$displayInput.data('active')){
width -= 44; width -= 44;
} }
@ -1612,6 +1612,7 @@ jQuery(function($){
.width(width) .width(width)
.attr('disabled', 'disabled') .attr('disabled', 'disabled')
.val(value) .val(value)
.data('active', true)
.parent('.g11n').addClass('active'); .parent('.g11n').addClass('active');
$displayInput.siblings('#' + $displayInput.data('lang-id')).val('$user_lang->' + code); $displayInput.siblings('#' + $displayInput.data('lang-id')).val('$user_lang->' + code);
$setter.trigger('close.mw'); $setter.trigger('close.mw');
@ -1622,7 +1623,7 @@ jQuery(function($){
var $this = $(this); var $this = $(this);
var $displayInput = $this.siblings('.displayInput'); var $displayInput = $this.siblings('.displayInput');
if($this.closest('.g11n').hasClass('active')){ if($displayInput.data('active')){
$multilingualWindow.trigger('before-open.g11n', $displayInput.prev('.lang_code').val().replace('$user_lang->', '')); $multilingualWindow.trigger('before-open.g11n', $displayInput.prev('.lang_code').val().replace('$user_lang->', ''));
}else{ }else{
$multilingualWindow.trigger('before-open.g11n'); $multilingualWindow.trigger('before-open.g11n');
@ -1639,14 +1640,18 @@ jQuery(function($){
// Remover click // Remover click
$remover.click(function(){ $remover.click(function(){
var $this = $(this); var $this = $(this);
var $displayInput = $this.siblings('.displayInput');
if(!$this.closest('.g11n').hasClass('active')) return; if(!$displayInput.data('active')) return;
var $g11n_set_input = $('#lang_' + $this.data('lang-target')); var $g11n_set_input = $('#lang_' + $this.data('lang-target'));
var width = $g11n_set_input.width(); var width = $g11n_set_input.width();
$g11n_set_input.val('').removeAttr('disabled') $g11n_set_input
.width(width + 44) .val('')
.parent('.g11n').removeClass('active'); .removeAttr('disabled')
.width(width + 44)
.data('active', false)
.parent('.g11n').removeClass('active');
$this.siblings('.lang_code').val(''); $this.siblings('.lang_code').val('');
}); });
@ -1655,17 +1660,23 @@ jQuery(function($){
$displayInput.bind('change keyup', function(){ $displayInput.bind('change keyup', function(){
$this = $(this); $this = $(this);
if($this.closest('.g11n').hasClass('active')) return; if($this.data('active')) return;
$hiddenInput.val($this.val()); $hiddenInput.val($this.val());
}); });
// reset
function reset(){
$displayInput
.val($hiddenInput.val())
.width($displayInput.data('width'))
.removeAttr('disabled');
$displayInput.parent('.g11n').removeClass('active');
}
// load value // load value
function loadValue(){ function loadValue(){
var value = $hiddenInput.val(); reset();
$remover.trigger('click');
$hiddenInput.val(value);
$displayInput.val(value);
var pattern = /^\$user_lang->/; var pattern = /^\$user_lang->/;
if(pattern.test($displayInput.val())){ if(pattern.test($displayInput.val())){
function on_complete2(data){ function on_complete2(data){
@ -1674,7 +1685,7 @@ jQuery(function($){
var width = $displayInput.width(); var width = $displayInput.width();
$displayInput.closest('.g11n').addClass('active'); $displayInput.closest('.g11n').addClass('active');
$displayInput.val(data.langs[xe.current_lang]).attr('disabled', 'disabled').width(width - 44); $displayInput.val(data.langs[xe.current_lang]).attr('disabled', 'disabled').width(width - 44).data('active', true);
} }
$.exec_json('module.getModuleAdminLangCode', {'name': $displayInput.val().replace('$user_lang->', '')}, on_complete2); $.exec_json('module.getModuleAdminLangCode', {'name': $displayInput.val().replace('$user_lang->', '')}, on_complete2);

File diff suppressed because one or more lines are too long

View file

@ -117,7 +117,7 @@
<li> <li>
<div class="multilingual x_input-append"> <div class="multilingual x_input-append">
<label for="lang_menuName2">{$lang->menu_name}</label> <label for="lang_menuName2">{$lang->menu_name}</label>
<input id="menuName2" class="_menuName lang_code" type="text" required style="width:179px"> <input id="menuName2" class="_menuName lang_code" type="text" required>
</div> </div>
</li> </li>
<li class="typePage"> <li class="typePage">
@ -174,7 +174,7 @@
<li> <li>
<div class="multilingual x_input-append"> <div class="multilingual x_input-append">
<label for="lang_menuName">{$lang->menu_name}</label> <label for="lang_menuName">{$lang->menu_name}</label>
<input id="menuName" class="_menuName lang_code" type="text" required style="width:179px"> <input id="menuName" class="_menuName lang_code" type="text" required>
</div> </div>
</li> </li>
<li style="padding:6px 0 0 0"> <li style="padding:6px 0 0 0">