git-svn-id: http://xe-core.googlecode.com/svn/trunk@1173 201d5d3c-b55e-5fd7-737f-ddc643e51545

This commit is contained in:
zero 2007-04-16 11:37:12 +00:00
parent d08a5b7787
commit 1869df4ddc
17 changed files with 313 additions and 378 deletions

View file

@ -5,5 +5,9 @@
<response callback_func="completeDeleteMenuItem">
<tag name="error" />
<tag name="message" />
<tag name="menu_title" />
<tag name="xml_file" />
<tag name="menu_srl" />
<tag name="menu_item_srl" />
</response>
</filter>

View file

@ -8,5 +8,6 @@
<tag name="menu_srl" />
<tag name="xml_file" />
<tag name="menu_title" />
<tag name="menu_item_srl" />
</response>
</filter>

View file

@ -4,7 +4,7 @@
<response callback_func="completeMoveMenuItem">
<tag name="error" />
<tag name="message" />
<tag name="menu_id" />
<tag name="source_node_srl" />
<tag name="xml_file" />
<tag name="source_item_srl" />
</response>
</filter>

View file

@ -21,29 +21,31 @@ function completeDeleteMenu(ret_obj) {
}
/* 빈 메뉴 아이템 추가 */
function doInsertLayoutMenuItem(parent_srl) {
function doInsertMenuItem(parent_srl) {
if(typeof(parent_srl)=='undefined') parent_srl = 0;
var params = {node_srl:0, parent_srl:parent_srl}
doGetMenuItemInfo(params);
doGetMenuItemInfo('menu', params);
deSelectNode();
}
/* 메뉴 클릭시 적용할 함수 */
function doGetMenuItemInfo(obj) {
// layout, menu_id, node_srl을 추출
function doGetMenuItemInfo(menu_id, obj) {
// menu, menu_id, node_srl을 추출
var fo_obj = xGetElementById("fo_menu");
var node_srl = 0;
var parent_srl = 0;
if(typeof(obj.getAttribute)!="undefined") {
node_srl = obj.getAttribute("node_srl");
} else {
node_srl = obj.node_srl;
parent_srl = obj.parent_srl;
if(typeof(obj)!="undefined") {
if(typeof(obj.getAttribute)!="undefined") {
node_srl = obj.getAttribute("node_srl");
} else {
node_srl = obj.node_srl;
parent_srl = obj.parent_srl;
}
}
var params = new Array();
params["menu_srl"] = node_srl;
params["menu_item_srl"] = node_srl;
params["parent_srl"] = parent_srl;
// 서버에 요청하여 해당 노드의 정보를 수정할 수 있도록 한다.
@ -59,87 +61,80 @@ function completeGetMenuItemTplInfo(ret_obj, response_tags) {
fo_obj.menu_name.focus();
}
/* 메뉴를 드래그하여 이동한 후 실행할 함수 , 이동하는 node_srl과 대상 node_srl을 받음 */
function doMoveTree(menu_id, source_node_srl, target_node_srl) {
var fo_obj = xGetElementById("fo_move_menu");
fo_obj.menu_id.value = menu_id;
fo_obj.source_node_srl.value = source_node_srl;
fo_obj.target_node_srl.value = target_node_srl;
// 이동 취소를 선택하였을 경우 다시 그림;;
if(!procFilter(fo_obj, move_layout_menu)) {
var params = new Array();
params["menu_id"] = menu_id;
params["source_node_srl"] = source_node_srl;
completeMoveLayoutMenu(params);
}
}
function completeMoveLayoutMenu(ret_obj) {
var menu_id = ret_obj['menu_id'];
var source_node_srl = ret_obj['source_node_srl'];
var fo_menu = xGetElementById("fo_"+menu_id);
if(!fo_menu) return;
var params = new Array();
params["menu_id"] = menu_id;
params["layout"] = fo_menu.layout.value;
params["layout_srl"] = fo_menu.layout_srl.value;
var xml_file = fo_menu.xml_file.value;
var menu_title = fo_menu.menu_title.value;
var tmp = source_node_srl.split('_');
var menu_srl = tmp[tmp.length-1];
loadTreeMenu(xml_file, menu_id, "menu_zone_"+menu_id, menu_title, doGetMenuItemInfo, menu_srl, doMoveTree);
}
/* 메뉴 아이템 입력후 */
function completeInsertMenuItem(ret_obj) {
var menu_id = ret_obj['menu_id'];
var xml_file = ret_obj['xml_file'];
var menu_title = ret_obj['menu_title'];
var menu_srl = ret_obj['menu_srl'];
var menu_item_srl = ret_obj['menu_item_srl'];
if(!xml_file) return;
loadTreeMenu(xml_file, menu_id, "menu_zone_"+menu_id, menu_title, doGetMenuItemInfo, menu_srl, doMoveTree);
if(!menu_srl) xInnerHtml("menu_zone_info_"+menu_id, "");
loadTreeMenu(xml_file, 'menu', 'menu_zone_menu', menu_title, doGetMenuItemInfo, menu_item_srl, doMoveTree);
if(!menu_srl) xInnerHtml("menu_zone_info", "");
}
/* 메뉴 삭제 */
function doDeleteLayoutMenu(menu_srl, menu_id) {
var fo_obj = xGetElementById("fo_"+menu_id);
if(!fo_obj) return;
procFilter(fo_obj, delete_layout_menu);
/* 메뉴를 드래그하여 이동한 후 실행할 함수 , 이동하는 item_srl과 대상 item_srl을 받음 */
function doMoveTree(menu_id, source_item_srl, target_item_srl) {
var fo_obj = xGetElementById("fo_move_menu");
fo_obj.menu_id.value = menu_id;
fo_obj.source_item_srl.value = source_item_srl;
fo_obj.target_item_srl.value = target_item_srl;
// 이동 취소를 선택하였을 경우 다시 그림;;
if(!procFilter(fo_obj, move_menu_item)) {
var params = new Array();
params["xml_file"] = xGetElementById('fo_menu').xml_file.value;
params["source_item_srl"] = source_item_srl;
completeMoveMenuItem(params);
}
}
function completeMoveMenuItem(ret_obj) {
var source_item_srl = ret_obj['source_item_srl'];
var xml_file = ret_obj['xml_file'];
var fo_menu = xGetElementById("fo_menu");
if(!fo_menu) return;
var title = fo_menu.title.value;
loadTreeMenu(xml_file, 'menu', "menu_zone_menu", title, doGetMenuItemInfo, source_item_srl, doMoveTree);
}
/* 메뉴 목록 갱신 */
function doReloadTreeMenu(menu_id) {
var fo_obj = xGetElementById("fo_"+menu_id);
if(!fo_obj) return;
function doReloadTreeMenu(menu_srl) {
var params = new Array();
params["menu_id"] = menu_id;
params["layout"] = fo_obj.layout.value;
params["layout_srl"] = fo_obj.layout_srl.value;
params["menu_srl"] = menu_srl;
// 서버에 요청하여 해당 노드의 정보를 수정할 수 있도록 한다.
var response_tags = new Array('error','message','menu_id', 'xml_file', 'menu_title');
exec_xml('layout', 'procLayoutAdminMakeXmlFile', params, completeInsertLayoutMenu, response_tags, params);
var response_tags = new Array('error','message', 'xml_file', 'menu_title');
exec_xml('menu', 'procMenuAdminMakeXmlFile', params, completeInsertMenuItem, response_tags, params);
}
/* 메뉴 삭제 */
function doDeleteMenuItem(menu_item_srl) {
var fo_obj = xGetElementById("fo_menu");
if(!fo_obj) return;
procFilter(fo_obj, delete_menu_item);
}
/* 메뉴 아이템 삭제 후 */
function completeDeleteMenuItem(ret_obj) {
var menu_title = ret_obj['menu_title'];
var menu_srl = ret_obj['menu_srl'];
var menu_item_srl = ret_obj['menu_item_srl'];
var xml_file = ret_obj['xml_file'];
alert(ret_obj['message']);
loadTreeMenu(xml_file, 'menu', 'menu_zone_menu', menu_title, doGetMenuItemInfo, menu_item_srl, doMoveTree);
xInnerHtml("menu_zone_info", "");
}
/* 레이아웃의 메뉴에 mid 추가 */
function doInsertMid(mid, menu_id) {
if(!opener) {
@ -147,7 +142,7 @@ function doInsertMid(mid, menu_id) {
return;
}
var fo_obj = opener.xGetElementById("fo_"+menu_id);
var fo_obj = opener.xGetElementById("fo_menu");
if(!fo_obj) {
window.close();
return;

View file

@ -1,39 +1,39 @@
<input type="hidden" name="menu_item_srl" value="{$menu_info->menu_item_srl}" />
<input type="hidden" name="parent_srl" value="{$menu_info->parent_srl}" />
<input type="hidden" name="menu_item_srl" value="{$item_info->menu_item_srl}" />
<input type="hidden" name="parent_srl" value="{$item_info->parent_srl}" />
<table border="1" width="100%">
<col width="100" />
<col width="*" />
<!--@if($menu_info->parent_menu_name)-->
<!--@if($item_info->parent_menu_name)-->
<tr>
<th>{$lang->parent_menu_name}</th>
<td>{$menu_info->parent_menu_name}</td>
<td>{$item_info->parent_menu_name}</td>
</tr>
<!--@end-->
<tr>
<th rowspan="2">{$lang->menu_name}</th>
<td><input type="text" name="menu_name" value="{htmlspecialchars($menu_info->name)}" /></td>
<td><input type="text" name="menu_name" value="{htmlspecialchars($item_info->name)}" /></td>
</tr>
<tr>
<td>{$lang->about_menu_name}</td>
</tr>
<tr>
<th rowspan="2">{$lang->menu_url}</th>
<td><input type="text" name="menu_url" value="{htmlspecialchars($menu_info->url)}" /><input type="button" value="{$lang->cmd_search_mid}" onclick="popopen('{getUrl('module','menu','act','dispMenuAdminMidList','menu_id', $menu_id)}');return false;"/></td>
<td><input type="text" name="menu_url" value="{htmlspecialchars($item_info->url)}" /><input type="button" value="{$lang->cmd_search_mid}" onclick="popopen('{getUrl('module','menu','act','dispMenuAdminMidList','menu_id', $menu_id)}');return false;"/></td>
</tr>
<tr>
<td>{$lang->about_menu_url}</td>
</tr>
<tr>
<th rowspan="2">{$lang->menu_open_window}</th>
<td><input type="checkbox" name="menu_open_window" value="Y" <!--@if($menu_info->open_window=="Y")-->checked="true"<!--@end--> /></td>
<td><input type="checkbox" name="menu_open_window" value="Y" <!--@if($item_info->open_window=="Y")-->checked="true"<!--@end--> /></td>
</tr>
<tr>
<td>{$lang->about_menu_open_window}</td>
</tr>
<tr>
<th rowspan="2">{$lang->menu_expand}</th>
<td><input type="checkbox" name="menu_expand" value="Y" <!--@if($menu_info->expand=="Y")-->checked="true"<!--@end--> /></td>
<td><input type="checkbox" name="menu_expand" value="Y" <!--@if($item_info->expand=="Y")-->checked="true"<!--@end--> /></td>
</tr>
<tr>
<td>{$lang->about_menu_expand}</td>
@ -44,21 +44,21 @@
</tr>
<tr>
<td>{$lang->menu_normal_btn}</td>
<td><input type="text" name="menu_normal_btn" value="{htmlspecialchars($menu_info->normal_btn)}" /></td>
<td><input type="text" name="menu_normal_btn" value="{htmlspecialchars($item_info->normal_btn)}" /></td>
</tr>
<tr>
<td>{$lang->menu_hover_btn}</td>
<td><input type="text" name="menu_hover_btn" value="{htmlspecialchars($menu_info->hover_btn)}" /></td>
<td><input type="text" name="menu_hover_btn" value="{htmlspecialchars($item_info->hover_btn)}" /></td>
</tr>
<tr>
<td>{$lang->menu_active_btn}</td>
<td><input type="text" name="menu_active_btn" value="{htmlspecialchars($menu_info->active_btn)}" /></td>
<td><input type="text" name="menu_active_btn" value="{htmlspecialchars($item_info->active_btn)}" /></td>
</tr>
<tr>
<th rowspan="2">{$lang->menu_group_srls}</th>
<td>
<!--@foreach($group_list as $key=>$val)-->
<input type="checkbox" name="group_srls" value="{$key}" id="group_{$key}" <!--@if(in_array($key, $menu_info->group_srls))-->checked="true"<!--@end-->/>
<input type="checkbox" name="group_srls" value="{$key}" id="group_{$key}" <!--@if(is_array($item_info->group_srls)&&in_array($key, $item_info->group_srls))-->checked="true"<!--@end-->/>
<label for="group_{$key}">{$val->title}</label>
<!--@end-->
</td>
@ -68,10 +68,10 @@
</tr>
<tr>
<td colspan="2">
<!--@if($menu_info->name)-->
<!--@if($item_info->name)-->
<input type="submit" value="{$lang->cmd_save}" />
<input type="button" value="{$lang->cmd_make_child}" onclick="doInsertLayoutMenu('{$menu_info->menu_item_srl}');return false" />
<input type="button" value="{$lang->cmd_delete}" onclick="doDeleteLayoutMenu('{$menu_item_srl}');return false" />
<input type="button" value="{$lang->cmd_make_child}" onclick="doInsertMenuItem('{$item_info->menu_item_srl}');return false" />
<input type="button" value="{$lang->cmd_delete}" onclick="doDeleteMenuItem('{$menu_item_srl}');return false" />
<!--@else-->
<input type="submit" value="{$lang->cmd_submit}" />
<!--@end-->

View file

@ -5,8 +5,9 @@
<!-- 메뉴 이동을 위해 임시로 사용하는 form -->
<form id="fo_move_menu" action="./" method="get">
<input type="hidden" name="source_node_srl" />
<input type="hidden" name="target_node_srl" />
<input type="hidden" name="menu_id" />
<input type="hidden" name="source_item_srl" />
<input type="hidden" name="target_item_srl" />
</form>
@ -22,7 +23,8 @@
</tr>
</table>
<form id="fo_menu" action="./" method="get" onsubmit="return procFilter(this, insert_menu)">
<form id="fo_menu" action="./" method="get" onsubmit="return procFilter(this, insert_menu_item)">
<input type="hidden" name="title" value="{$menu_info->title}" />
<input type="hidden" name="menu_srl" value="{$menu_info->menu_srl}" />
<input type="hidden" name="xml_file" value="{$menu_info->xml_file}" />
<input type="hidden" name="php_file" value="{$menu_info->php_file}" />
@ -37,10 +39,10 @@
<input type="checkbox" id="menu_enable_move" /> <label for="menu_enable_move">{$lang->cmd_enable_move_menu}</label>
</div>
<div>
<input type="button" value="{$lang->cmd_insert}" onclick="doInsertLayoutMenuItem('{$menu_info->menu_srl}');return false;" />
<input type="button" value="{$lang->cmd_insert}" onclick="doInsertMenuItem('menu');return false;" />
<input type="button" value="{$lang->cmd_open_all}" onclick="openAllTreeMenu('menu');return false;" />
<input type="button" value="{$lang->cmd_close_all}" onclick="closeAllTreeMenu('menu');return false;" />
<input type="button" value="{$lang->cmd_remake_cache}" onclick="doReloadTreeMenu('menu');return false;" />
<input type="button" value="{$lang->cmd_remake_cache}" onclick="doReloadTreeMenu('{$menu_info->menu_srl}');return false;" />
</div>
</td>
<td>