rhymix/modules/menu/tpl/js/sitemap.js
2012-07-06 08:53:22 +00:00

305 lines
9.1 KiB
JavaScript

/* NHN (developers@xpressengine.com) */
jQuery(function($){
// get add/edit menu title
var $lang = $('#editMenu h2:first span');
xe.lang.add_menu = $lang.eq(0).text();
xe.lang.edit_menu = $lang.eq(1).text();
$lang.empty();
$('form.siteMap')
.delegate('li:not(.placeholder)', 'dropped.st', function() {
var $this = $(this), $pkey, $mkey, is_child;
$pkey = $this.find('>input._parent_key');
is_child = !!$this.parent('ul').parent('li').length;
if(is_child) {
$pkey.val($this.parent('ul').parent('li').find('>input._item_key').val());
} else {
$pkey.val('0');
}
});
var editForm = $('#editForm');
var menuSrl = null;
var menuForm = null;
var menuUrl = null;
$('a._edit').click(function(){
resetEditForm();
var itemKey = $(this).parent().prevAll('._item_key').val();
var itemLayoutKey = $(this).parent().prevAll('._item_layout_key').val();
var moduleSrl = $(this).parent().prevAll('input._module_srl_key').val();
editForm.find('input[name=module_srl]').val(moduleSrl);
menuSrl = $(this).parents().prevAll('input[name=menu_srl]').val();
menuForm = $('#menu_'+menuSrl);
var menuItemSrl = null;
menuItemSrl = itemKey;
var params = new Array();
var response_tags = new Array('menu_item');
params['menu_item_srl'] = menuItemSrl;
exec_xml("menu","getMenuAdminItemInfo", params, completeGetActList, response_tags);
});
function completeGetActList(obj)
{
var menuItem = obj.menu_item;
menuUrl = menuItem.url;
var successReturnUrl = editForm.find('input[name=success_return_url]').val() + menuItem.menu_srl;
editForm.find('.h2').text(xe.lang.edit_menu);
editForm.find('input[name=menu_srl]').val(menuItem.menu_srl);
editForm.find('input[name=menu_item_srl]').val(menuItem.menu_item_srl);
editForm.find('input[name=parent_srl]').val(menuItem.parent_srl);
editForm.find('input[name=menu_name_key]').val(menuItem.name_key);
editForm.find('input[name=menu_name]').val(menuItem.name);
editForm.find('input[name=success_return_url]').val(successReturnUrl);
var moduleType = menuItem.moduleType;
if(menuItem.pageType) moduleType = menuItem.pageType;
var inputCType = editForm.find('input[name=cType]');
if(moduleType == 'url')
{
inputCType[2].checked = true;
editForm.find('input[name=menu_url]').val(menuItem.url);
}
else
{
inputCType[1].checked = true;
editForm.find('select[name=module_type]').val(moduleType);
editForm.find('select[name=select_menu_url]').val(menuItem.url);
editForm.find('select[name=layout_srl]').val(menuItem.layoutSrl);
}
typeCheck();
getModuleList();
var openWindow = menuItem.open_window;
var openWindowForm = editForm.find('input=[name=menu_open_window]');
if(openWindow == 'Y') openWindowForm[1].checked = true;
else openWindowForm[0].checked = true;
var expand = menuItem.expand;
var expandForm = editForm.find('input=[name=menu_expand]');
if(expand == 'Y') expandForm[0].checked = true;
else expandForm[0].checked = false;
// button image
if(menuItem.normal_btn) $('#normal_btn_preview').html('<img src="'+menuItem.normal_btn+'" /><input type="checkbox" name="isNormalDelete" value="Y"> Delete');
if(menuItem.hover_btn) $('#hover_btn_preview').html('<img src="'+menuItem.hover_btn+'" /><input type="checkbox" name="isHoverDelete" value="Y"> Delete');
if(menuItem.active_btn) $('#active_btn_preview').html('<img src="'+menuItem.active_btn+'" /><input type="checkbox" name="isActiveDelete" value="Y"> Delete');
var htmlBuffer = '';
for(x in menuItem.groupList.item)
{
var groupObj = menuItem.groupList.item[x];
htmlBuffer += '<input type="checkbox" name="group_srls[]" id="group_srls_'+groupObj.group_srl+'" value="'+groupObj.group_srl+'"';
if(groupObj.isChecked) htmlBuffer += ' checked="checked" ';
htmlBuffer += '/> <label for="group_srls_'+groupObj.group_srl+'">'+groupObj.title+'</label>'
}
$('#groupList').html(htmlBuffer);
// reset label
var checked_labels = [];
editForm.find('label').css('font-weight', '');
editForm.find('input:checked').each(function(){
editForm.find('label[for='+this.id+']').css('font-weight', 'bold');
});
}
$('a._delete').click(function() {
if(confirmDelete())
{
menuSrl = $(this).parents().prevAll('input[name=menu_srl]').val();
menuForm = $('#menu_'+menuSrl);
var menu_item_srl = $(this).parent().prevAll('._item_key').val();
menuForm.find('input[name=menu_item_srl]').val(menu_item_srl);
menuForm.find('input[name=act]').val('procMenuAdminDeleteItem');
menuForm.submit();
}
});
var kindModuleLayer = $('#kindModule');
var createModuleLayer = $('#createModule');
var selectModuleLayer = $('#sModule_id');
var insertUrlLayer = $('#insertUrl');
var selectLayoutLayer = $('#selectLayout');
function resetEditForm()
{
kindModuleLayer.hide();
createModuleLayer.hide()
selectModuleLayer.hide()
insertUrlLayer.hide()
selectLayoutLayer.hide()
editForm.find('input[name=menu_item_srl]').val('');
editForm.find('input[name=parent_srl]').val(0);
editForm.find('input[name=menu_name]').val('');
editForm.find('input[name=cType]').attr('checked', false);
editForm.find('input[name=create_menu_url]').val('');
editForm.find('select[name=layout_srl]')[0].options[0].selected = true;
editForm.find('input[name=menu_url]').val('');
editForm.find('input[name=menu_open_window]')[0].checked = true;
editForm.find('input[name=group_srls\\[\\]]').attr('checked', false);
editForm.find('label').css('font-weight', '');
}
$('a._add').click(function()
{
var $this = $(this);
resetEditForm();
editForm.find('.h2').text(xe.lang.add_menu);
editForm.find('input[name=menu_srl]').val($this.closest('form').find('input[name=menu_srl]:first').val());
editForm.find('input[name=parent_srl]').val($this.parent().prevAll('input._item_key').val());
});
$('input._typeCheck').click(typeCheck);
var checkedValue = null;
function typeCheck()
{
var inputTypeCheck = $('input._typeCheck');
for(var i=0; i<3; i++)
{
if(inputTypeCheck[i].checked)
{
checkedValue = inputTypeCheck[i].value;
break;
}
}
if(checkedValue == 'CREATE')
{
kindModuleLayer.show();
createModuleLayer.show();
selectModuleLayer.hide();
insertUrlLayer.hide();
selectLayoutLayer.show();
changeLayoutList();
}
else if(checkedValue == 'SELECT')
{
kindModuleLayer.show();
createModuleLayer.hide();
selectModuleLayer.show();
insertUrlLayer.hide();
selectLayoutLayer.show();
changeLayoutList();
}
// type is URL
else
{
kindModuleLayer.hide();
createModuleLayer.hide()
selectModuleLayer.hide()
insertUrlLayer.show()
selectLayoutLayer.hide()
}
}
$('#kModule').change(getModuleList).change();
function getModuleList()
{
var params = new Array();
var response_tags = ['error', 'message', 'module_list'];
exec_xml('module','procModuleAdminGetList',params, completeGetModuleList, response_tags);
}
var layoutList = new Array();
var moduleList = new Array();
function completeGetModuleList(ret_obj)
{
var module = $('#kModule').val();
if(module == 'WIDGET' || module == 'ARTICLE' || module == 'OUTSIDE') module = 'page';
var htmlBuffer = "";
if(ret_obj.module_list[module] != undefined)
{
var midList = ret_obj.module_list[module].list;
var midListByCategory = new Object();
for(x in midList)
{
if(!midList.hasOwnProperty(x)){
continue;
}
var midObject = midList[x];
if(!midListByCategory[midObject.module_category_srl])
{
midListByCategory[midObject.module_category_srl] = new Array();
}
midListByCategory[midObject.module_category_srl].push(midObject);
}
for(x in midListByCategory)
{
var midGroup = midListByCategory[x];
htmlBuffer += '<optgroup label="'+x+'">'
for(y in midGroup)
{
var midObject = midGroup[y];
htmlBuffer += '<option value="'+midObject.mid+'"';
if(menuUrl == midObject.mid) htmlBuffer += ' selected ';
htmlBuffer += '>'+midObject.mid+'('+midObject.browser_title+')</option>';
layoutList[midObject.mid] = midObject.layout_srl;
moduleList[midObject.mid] = midObject.module_srl;
}
htmlBuffer += '</optgroup>'
}
}
else htmlBuffer = '';
selectModuleLayer.html(htmlBuffer);
changeLayoutList();
}
$('#sModule_id').change(changeLayoutList).change();
function changeLayoutList()
{
if(checkedValue == 'SELECT')
{
var mid = $('#sModule_id').val();
$('#layoutSrl').val(layoutList[mid]);
editForm.find('input[name=module_srl]').val(moduleList[mid]);
}
else if(checkedValue == 'CREATE')
{
$('#layoutSrl').val('0');
}
}
function tgMapBtn(){
$('.x .siteMap>ul:visible').next('.btnArea').slideDown(50);
$('.x .siteMap>ul:hidden').next('.btnArea').slideUp(50);
}
tgMapBtn();
$('a.tgMap').click(function() {
var $this = $(this);
var curToggleStatus = getCookie('sitemap_toggle_'+$this.attr('href'));
var toggleStatus = curToggleStatus == 1 ? '0' : 1;
$($this.attr('href')).slideToggle('fast');
$this.closest('.siteMap').toggleClass('fold');
setCookie('sitemap_toggle_'+$this.attr('href'), toggleStatus);
setTimeout(function(){ tgMapBtn(); }, 250);
return false;
});
});
function confirmDelete()
{
if(confirm(xe.lang.confirm_delete)) return true;
return false;
}