mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-24 05:39:58 +09:00
Issue 2380: Admin UI Refactoring - Advanced - Layouts
git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@11661 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
81149fa5b8
commit
4eac255d7d
10 changed files with 584 additions and 936 deletions
|
|
@ -1,7 +1,7 @@
|
|||
/* NHN (developers@xpressengine.com) */
|
||||
jQuery(function($){
|
||||
// iSO mobile device toolbar remove
|
||||
window.top.scrollTo(0,0);
|
||||
window.scrollTo(0,0);
|
||||
// Skip to content
|
||||
$('.x .skipNav>a').click(function(){
|
||||
$($(this).attr('href')).attr('tabindex','0').css('outline','0').focus();
|
||||
|
|
@ -34,7 +34,7 @@ jQuery(function($){
|
|||
});
|
||||
// Tab Navigation
|
||||
$('.x .x_tab-content>.x_tab-pane:not(".x_active")').hide();
|
||||
$('.x .x_nav-tabs').find('>li>a[href^="#"]').click(function(){
|
||||
$(document.body).on('click', '.x .x_nav-tabs>li>a[href^="#"]', function(){
|
||||
var $this = $(this);
|
||||
$this.parent('li').addClass('x_active').siblings().removeClass('x_active');
|
||||
$this.closest('.x_nav-tabs').next('.x_tab-content').find($this.attr('href')).addClass('x_active').show().siblings().removeClass('x_active').hide();
|
||||
|
|
@ -234,9 +234,9 @@ $.fn.xeModalWindow = function(){
|
|||
$('.x_modal-backdrop').hide();
|
||||
$this.focus();
|
||||
});
|
||||
$('div.x_modal').addClass('x').hide();
|
||||
};
|
||||
$('a.modalAnchor').xeModalWindow();
|
||||
$('div.x_modal').addClass('x').hide();
|
||||
|
||||
});
|
||||
|
||||
|
|
@ -896,6 +896,362 @@ $('.filebox')
|
|||
simpleBtn.removeClass('x_active');
|
||||
});
|
||||
|
||||
// Multilingual
|
||||
var $multilinguals_v15 = $('.vLang[type="hidden"]');
|
||||
var $multilinguals = $('.lang_code');
|
||||
|
||||
if($multilinguals_v15.length || $multilinguals.length){
|
||||
function on_complete(data){
|
||||
var $content = $('.x #content');
|
||||
$content.append(data.html);
|
||||
|
||||
var tmpCount = 0;
|
||||
|
||||
$multilinguals_v15.each(function(){
|
||||
var $this = $(this);
|
||||
|
||||
$this.removeClass('vLang').addClass('lang_code');
|
||||
$this.parent().find('.editUserLang').remove();
|
||||
});
|
||||
|
||||
$multilinguals = $('.lang_code');
|
||||
|
||||
$multilinguals.each(function(){
|
||||
var $this = $(this);
|
||||
var id = $this.attr('id');
|
||||
if(!id){
|
||||
id = '__lang_code_' + tmpCount;
|
||||
tmpCount++;
|
||||
$this.attr('id', id);
|
||||
}
|
||||
|
||||
if(this.tagName == 'TEXTAREA' || $this.next('textarea.vLang').length){
|
||||
var $displayInput = $('<textarea id="lang_' + id + '" class="displayInput" style="width:179px">').data('lang-id', id);
|
||||
}else{
|
||||
var $displayInput = $('<input type="text" id="lang_' + id + '" class="displayInput" style="width:179px">').data('lang-id', id);
|
||||
}
|
||||
var $remover = $('<button type="button" class="x_add-on remover" title="Remove Multilingual Text"><i class="x_icon-remove"></i> Remove Multilingual Text</button>').data('lang-target', id);
|
||||
var $setter = $('<a href="#g11n" class="x_add-on modalAnchor" title="Set Multilungual Text"><i class="x_icon-globe"></i> Set Multilingual Text</a>').data('lang-target', id);
|
||||
|
||||
$this.parent().addClass('g11n').addClass('x_input-append');
|
||||
$this.after($displayInput, $remover, $setter);
|
||||
$this.parent().find('.vLang').remove();
|
||||
$this.hide();
|
||||
$setter.xeModalWindow();
|
||||
|
||||
// text change
|
||||
var $hiddenInput = $this;
|
||||
$displayInput.keydown(function(){
|
||||
$this = $(this);
|
||||
|
||||
if($this.closest('.g11n').hasClass('active')) return;
|
||||
|
||||
$hiddenInput.val($this.val());
|
||||
});
|
||||
|
||||
// load value
|
||||
$displayInput.val($hiddenInput.val());
|
||||
var pattern = /^\$user_lang->/;
|
||||
if(pattern.test($displayInput.val())){
|
||||
$.exec_json('module.getModuleAdminLangCode', {'name': $displayInput.val().replace('$user_lang->', '')}, on_complete);
|
||||
|
||||
function on_complete(data){
|
||||
if(!data || !data.langs) return;
|
||||
|
||||
$displayInput.closest('.g11n').addClass('active');
|
||||
$displayInput.val(data.langs[xe.current_lang]).attr('disabled', 'disabled').width(135);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var $g11n_set = $('.x .g11n'); // set container
|
||||
var $g11n_anchor = $g11n_set.children('.modalAnchor');
|
||||
var $g11n_get = $('.x #g11n'); // get container
|
||||
var $g11n_create = $g11n_get.find('#lang_create'); // create section
|
||||
var $g11n_search = $g11n_get.find('#lang_search'); // search section
|
||||
var is_create_changed = false;
|
||||
|
||||
// check create change
|
||||
$g11n_create.find('.editMode textarea').change(function(){
|
||||
is_create_changed = true;
|
||||
});
|
||||
|
||||
// use lang code
|
||||
function g11n_use_lang_code($this, code, value){
|
||||
var $displayInput = $('#lang_' + $this.closest('.x_modal').data('lang-target'));
|
||||
|
||||
$displayInput
|
||||
.width(135)
|
||||
.attr('disabled', 'disabled')
|
||||
.val(value)
|
||||
.parent('.g11n').addClass('active');
|
||||
$displayInput.siblings('#' + $displayInput.data('lang-id')).val('$user_lang->' + code);
|
||||
|
||||
is_create_changed = false;
|
||||
$displayInput.siblings('[href="#g11n"]').trigger('close.mw');
|
||||
|
||||
}
|
||||
|
||||
// get list
|
||||
function g11n_get_list(page, search_keyword, name){
|
||||
if(!page) page = 1;
|
||||
if(!search_keyword) search_keyword = '';
|
||||
if(!name) name = '';
|
||||
|
||||
$.exec_json('module.getModuleAdminLangListHtml', {'page': page, 'search_keyword': search_keyword, 'name': name}, on_complete);
|
||||
|
||||
function on_complete(data){
|
||||
if(!data || !data.html) return;
|
||||
|
||||
$('#lang_search').html(data.html);
|
||||
|
||||
// page
|
||||
$('#lang_search .x_pagination a').click(function(){
|
||||
var page = $(this).data('page');
|
||||
var search_keyword = $(this).data('search_keyword');
|
||||
|
||||
if(!page) return;
|
||||
|
||||
g11n_get_list(page, search_keyword);
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#lang_search .x_pagination').submit(function(){
|
||||
var page = $(this).find('[name="page"]').val();
|
||||
var search_keyword = $(this).data('search_keyword');
|
||||
|
||||
if(!page) return false;
|
||||
|
||||
g11n_get_list(page, search_keyword);
|
||||
return false;
|
||||
});
|
||||
|
||||
// search
|
||||
$('#lang_search .search').submit(function(){
|
||||
var search_keyword = $(this).find('[name="search_keyword"]').val();
|
||||
|
||||
g11n_get_list(1, search_keyword);
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#lang_search #search_cancel').click(function(){
|
||||
g11n_get_list(1, '');
|
||||
});
|
||||
|
||||
// text click
|
||||
$('#lang_search').find('[href^="#lang-"]').append('<i class="x_icon-chevron-down"></i>').click(function(){
|
||||
var $this = $(this);
|
||||
var lang_code = $this.data('lang_code');
|
||||
|
||||
g11n_search_save_confirm();
|
||||
|
||||
// Fieldset close/open display
|
||||
var up = 'x_icon-chevron-up';
|
||||
var down = 'x_icon-chevron-down';
|
||||
if($this.next('fieldset').is(':visible')){
|
||||
$this.children('i').removeClass(up).addClass(down);
|
||||
}else{
|
||||
$this.children('i').removeClass(down).addClass(up);
|
||||
$this.parent('.item').siblings('.item').find('a > i').removeClass(up).addClass(down).end().children('fieldset').hide();
|
||||
}
|
||||
|
||||
if($this.data('is_loaded')) return;
|
||||
|
||||
$.exec_json('module.getModuleAdminLangCode', {'name': lang_code}, on_complete);
|
||||
|
||||
function on_complete(data){
|
||||
var $textareas = $($this.attr('href') + ' textarea');
|
||||
|
||||
$textareas.each(function(){
|
||||
var $this = $(this);
|
||||
var value = data.langs[$this.data('lang')];
|
||||
var pattern = /^\$user_lang->/;
|
||||
|
||||
if(pattern.test(value)){
|
||||
$this.val('').data('value', '');
|
||||
}else{
|
||||
$this.val(value).data('value', value);
|
||||
}
|
||||
});
|
||||
|
||||
$this.data('is_loaded', true);
|
||||
}
|
||||
});
|
||||
|
||||
if(name){
|
||||
$('#lang_search').find('[href^="#lang-"]').trigger('click');
|
||||
}
|
||||
|
||||
// Modify click
|
||||
$('#lang_search').find('.modify').click(function(){
|
||||
$(this).closest('fieldset').addClass('editMode').find('textarea').removeAttr('disabled');
|
||||
});
|
||||
|
||||
// Cancel Click
|
||||
$('#lang_search').find('.cancel').click(function(){
|
||||
$(this).closest('fieldset').removeClass('editMode').find('textarea').attr('disabled', 'disabled').each(function(){
|
||||
var $this = $(this);
|
||||
|
||||
$this.val($this.data('value'));
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
// Save Click
|
||||
$('#lang_search').find('.item').submit(function(){
|
||||
var $this = $(this);
|
||||
var $textareas = $this.find('.editMode').children('textarea');
|
||||
var $anchor = $this.find('[href^="#lang-"]');
|
||||
var params = {};
|
||||
var current_lang_value = null;
|
||||
|
||||
// create lang list
|
||||
$textareas.each(function(){
|
||||
var $this = $(this);
|
||||
params[$this.attr('class')] = $this.val();
|
||||
$this.data('tmp_value', $this.val());
|
||||
if(xe.current_lang == $this.attr('class')){
|
||||
current_lang_value = $this.val();
|
||||
}
|
||||
});
|
||||
|
||||
params.lang_name = $anchor.data('lang_code');
|
||||
|
||||
// submit
|
||||
$.exec_json('module.procModuleAdminInsertLang', params, on_complete);
|
||||
|
||||
function on_complete(data){
|
||||
if(!data || data.error || !data.name) return;
|
||||
|
||||
$textareas.each(function(){
|
||||
var $this = $(this);
|
||||
$this.data('value', $this.data('tmp_value'));
|
||||
});
|
||||
$anchor.children('span').html(current_lang_value);
|
||||
|
||||
$('#lang_search').find('.cancel').trigger('click');
|
||||
$this.find('.useit').trigger('click');
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
// Useit click
|
||||
$('#lang_search').find('.useit').click(function(){
|
||||
var $this = $(this);
|
||||
var $anchor = $this.closest('.item').find('[href^="#lang-"]');
|
||||
var name = $anchor.data('lang_code');
|
||||
var value = $anchor.children('span').text();
|
||||
|
||||
g11n_use_lang_code($this, name, value);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// #lang_create confirm
|
||||
function g11n_create_save_confirm(){
|
||||
if($g11n_create.is(':visible') && is_create_changed){
|
||||
if(confirm(xe.msg_confirm_save_and_use_multilingual)){
|
||||
$g11n_create.find('.save-useit').trigger('click');
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// #lang_search confirm
|
||||
function g11n_search_save_confirm(){
|
||||
if($g11n_search.is(':visible') && $g11n_search.find('.editMode').length){
|
||||
var $search_item = $g11n_search.find('form.item');
|
||||
if(confirm(xe.msg_confirm_save_and_use_multilingual)){
|
||||
$search_item.find('.save').trigger('click').end().find('textarea').attr('disabled', 'disabled');
|
||||
}else{
|
||||
$search_item.find('.cancel').trigger('click');
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// #g11n Reset to default
|
||||
function g11n_reset_default(){
|
||||
$g11n_search.find('.item > fieldset').hide().prev('a').children('i').removeClass('x_icon-chevrom-up').addClass('x_icon-chevron-down');
|
||||
$g11n_get.find('[href="#lang_create"]').trigger('click');
|
||||
$g11n_create.find('.editMode').children('textarea').val('');
|
||||
is_create_changed = false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Save-Useit click
|
||||
$g11n_create.submit(function(){
|
||||
var $this = $(this);
|
||||
var params = {};
|
||||
var current_lang_value = null;
|
||||
|
||||
// create lang list
|
||||
$this.find('.editMode').children('textarea').each(function(){
|
||||
var $this = $(this);
|
||||
params[$this.attr('class')] = $this.val();
|
||||
if(xe.current_lang == $this.attr('class')){
|
||||
current_lang_value = $this.val();
|
||||
}
|
||||
});
|
||||
|
||||
if(!current_lang_value){
|
||||
alert(xe.msg_empty_multilingual);
|
||||
return false;
|
||||
}
|
||||
|
||||
// submit
|
||||
$.exec_json('module.procModuleAdminInsertLang', params, on_complete);
|
||||
|
||||
function on_complete(data){
|
||||
if(!data || data.error || !data.name) return;
|
||||
|
||||
g11n_use_lang_code($this, data.name, current_lang_value);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
});
|
||||
|
||||
// Remover click
|
||||
$g11n_set.children('.remover').click(function(){
|
||||
var $this = $(this);
|
||||
var $g11n_set_input = $('#lang_' + $this.data('lang-target'));
|
||||
$g11n_set_input.val('').removeAttr('disabled')
|
||||
.width(179)
|
||||
.parent('.g11n').removeClass('active');
|
||||
$this.siblings('.lang_code').val('');
|
||||
});
|
||||
|
||||
// Close click
|
||||
$g11n_anchor.bind('before-close.mw', function(){
|
||||
if(!g11n_create_save_confirm()) return false;
|
||||
if(!g11n_search_save_confirm()) return false;
|
||||
if(!g11n_reset_default()) return false;
|
||||
});
|
||||
|
||||
// .modalAnchor click
|
||||
$g11n_anchor.bind('open.mw',function(){
|
||||
var $this = $(this);
|
||||
var $displayInput = $this.siblings('.displayInput');
|
||||
|
||||
if($this.closest('.g11n').hasClass('active')){
|
||||
g11n_get_list(1, '', $displayInput.prev('.lang_code').val().replace('$user_lang->', ''));
|
||||
$($this.attr('href')).find('[href="#lang_search"]').trigger('click');
|
||||
}else{
|
||||
g11n_get_list();
|
||||
}
|
||||
|
||||
$($this.attr('href')).data('lang-target', $this.data('lang-target'));
|
||||
});
|
||||
}
|
||||
$.exec_json('module.getModuleAdminMultilingualHtml', {}, on_complete);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
function getOffset(elem, offsetParent) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue