mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 01:01:41 +09:00
Menu selector
git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12449 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
8a8b2f5400
commit
67bdda04ec
4 changed files with 362 additions and 285 deletions
|
|
@ -189,250 +189,6 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';
|
|||
}
|
||||
</style>
|
||||
<script>
|
||||
jQuery._xeAdminVar = jQuery._xeAdminVar || {};
|
||||
|
||||
jQuery(function($){
|
||||
var $container;
|
||||
var aSelectedModules;
|
||||
var htNodeInfo;
|
||||
var fnOnSelect;
|
||||
|
||||
$.template( "menuSelector_menuTree", '<ul>{{html Nodes}}</ul>' );
|
||||
$.template( "menuSelector_menuTreeNode", ' <li>\
|
||||
<a href="#" class="_nodeType_${NodeType} _menu_url_${MenuUrl}" >${MenuTitle}</a>\
|
||||
{{html SubTree}}\
|
||||
</li>' );
|
||||
//data-param=\'{ "sMenuId":"${MenuId}", "sMenuUrl":"${MenuUrl}", "sMenuTitle":"${MenuTitle}" }\'
|
||||
function onSiteMapReceived(htData){
|
||||
var $ = jQuery;
|
||||
|
||||
var aMenuList = htData.menuList;
|
||||
|
||||
var sTreeHtml = createTreeMarkup(aMenuList, 0, "menuSelector_menuTree", "menuSelector_menuTreeNode");
|
||||
$container.html(sTreeHtml);
|
||||
|
||||
$container
|
||||
.jstree({
|
||||
"plugins" : ["themes","html_data","ui","crrm"],
|
||||
|
||||
"crrm" : {
|
||||
"move" : {
|
||||
"check_move" : function (m) {
|
||||
var p = this._get_parent(m.o);
|
||||
|
||||
// root is not draggable
|
||||
if(p === -1) return false;
|
||||
|
||||
// a menu cann't be dragged to a root position
|
||||
p = this._get_parent(m.np);
|
||||
if(!p) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"core" : { }
|
||||
})
|
||||
.bind("loaded.jstree", function (event, data) {
|
||||
data.inst.open_all();
|
||||
|
||||
var sRenameId = $._xeAdminVar.sRenameOnload;
|
||||
$._xeAdminVar.sRenameOnload = null;
|
||||
|
||||
var sSelectOnload = $._xeAdminVar.sSelectOnload;
|
||||
$._xeAdminVar.sSelectOnload = null;
|
||||
|
||||
if(sRenameId){
|
||||
//console.log('renaming', sRenameId);
|
||||
$("#siteMapTree").jstree("rename", $("#menu"+sRenameId));
|
||||
$("#menu"+sRenameId)[0].scrollIntoView(true);
|
||||
}
|
||||
|
||||
if(sSelectOnload){
|
||||
//console.log('selecting', sSelectOnload);
|
||||
var el = $("#menu"+sSelectOnload)[0];
|
||||
|
||||
if(el){
|
||||
$("#siteMapTree").jstree("select_node", $(el));
|
||||
el.scrollIntoView(true);
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
.bind("select_node.jstree", function(event, data){
|
||||
//console.log(data);
|
||||
//jstree-clicked
|
||||
});
|
||||
|
||||
// disable sitemap labels and shortcuts.
|
||||
$container.find('._nodeType_1, ._nodeType_3').parent('li').addClass('x_disabled');
|
||||
|
||||
/*
|
||||
if(sSelectedModule){
|
||||
$container.find('._menu_url_'+sSelectedModule).click();
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
$.xeShowMenuSelector = function($container_param, fnOnSelect_param, aSelectedModules_param){
|
||||
var $ = jQuery;
|
||||
|
||||
var params = {
|
||||
menu_srl : 0
|
||||
};
|
||||
|
||||
$container = $container_param;
|
||||
aSelectedModules = aSelectedModules_param;
|
||||
fnOnSelect = fnOnSelect_param;
|
||||
htNodeInfo = {};
|
||||
|
||||
$.exec_json("menu.getMenuAdminSiteMap", params, onSiteMapReceived);
|
||||
}
|
||||
|
||||
// return html
|
||||
function createTreeMarkup(aNode, sParentSrl, sMenuTree, sMenuTreeNode){
|
||||
var $ = jQuery;
|
||||
|
||||
sMenuTree = sMenuTree || "menuSelector_menuTree";
|
||||
sMenuTreeNode = sMenuTreeNode || "menuSelector_menuTreeNode";
|
||||
|
||||
var $ = jQuery;
|
||||
|
||||
if(aNode.length == 0){
|
||||
return "";
|
||||
}
|
||||
|
||||
var sActiveBtn, sNormalBtn, sHoverBtn, sExpand, sLink, aSubNodes, sNodeSrl, sOpenWindow, sParentSrl, nSelected, sText, sURL, sIsStartModule, aSubNode, sModuleType;
|
||||
|
||||
// 1: Sitemap node, 2: Menu node
|
||||
var nNodeType;
|
||||
|
||||
var sResult = "";
|
||||
var sTargetPanel;
|
||||
for(var i=0, nLen=aNode.length; i<nLen; i++){
|
||||
aNode[i].sParentSrl = sParentSrl;
|
||||
|
||||
// Only sitemap node has menuSrl
|
||||
if(aNode[i].menuSrl){
|
||||
nNodeType = 1;
|
||||
}else{
|
||||
nNodeType = 2;
|
||||
}
|
||||
|
||||
sURL = "";
|
||||
switch(nNodeType){
|
||||
case 1:
|
||||
sText = aNode[i].title;
|
||||
sNodeSrl = aNode[i].menuSrl;
|
||||
|
||||
aSubNode = aNode[i].menuItems.list;
|
||||
|
||||
sTargetPanel = "#propertiesRoot";
|
||||
break;
|
||||
|
||||
case 2:
|
||||
sText = aNode[i].text;
|
||||
sLink = aNode[i].link;
|
||||
sURL = aNode[i].url;
|
||||
sNodeSrl = aNode[i].node_srl;
|
||||
//sParentSrl = aNode[i].parent_srl;
|
||||
|
||||
sExpand = aNode[i].expand;
|
||||
sOpenWindow = aNode[i].open_window;
|
||||
|
||||
nSelected = aNode[i].selected;
|
||||
|
||||
sActiveBtn = aNode[i].active_btn;
|
||||
sNormalBtn = aNode[i].normal_btn;
|
||||
sHoverBtn = aNode[i].hover_btn;
|
||||
|
||||
sIsStartModule = aNode[i].is_start_module;
|
||||
|
||||
aSubNode = aNode[i].list;
|
||||
|
||||
sModuleType = aNode[i].module_type;
|
||||
sModule = aNode[i].module;
|
||||
|
||||
sTargetPanel = "#properties";
|
||||
|
||||
if(aNode[i].is_shortcut === "Y"){
|
||||
sModuleType = "_SHORTCUT";
|
||||
sURL = "";
|
||||
aNode[i].bShortCut = true;
|
||||
}else{
|
||||
aNode[i].bShortCut = false;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
}
|
||||
|
||||
htNodeInfo[sNodeSrl] = aNode[i];
|
||||
htNodeInfo[sNodeSrl].aNode = aSubNode || [];
|
||||
|
||||
htNodeInfo[sNodeSrl].nNodeType = nNodeType;
|
||||
htNodeInfo[sNodeSrl].sNodeSrl = sNodeSrl;
|
||||
htNodeInfo[sNodeSrl].sText = sText;
|
||||
htNodeInfo[sNodeSrl].sMenuNameKey = htNodeInfo[sNodeSrl].menu_name_key;
|
||||
|
||||
htNodeInfo[sNodeSrl].sModuleType = sModuleType;
|
||||
|
||||
sSubTree = "";
|
||||
if(aSubNode && aSubNode.length>0){
|
||||
sSubTree = createTreeMarkup(aSubNode, sNodeSrl, sMenuTree, sMenuTreeNode);
|
||||
}
|
||||
/*
|
||||
if(sMenuType === "shortcut"){
|
||||
sText = sText + " ${s}";
|
||||
}
|
||||
*/
|
||||
var sTextWithIcons = sText;
|
||||
if(sIsStartModule){
|
||||
sTextWithIcons += " ${h}";
|
||||
}
|
||||
if(htNodeInfo[sNodeSrl].sModuleType === "_SHORTCUT"){
|
||||
sTextWithIcons += " ${s}";
|
||||
nNodeType = 3;
|
||||
}
|
||||
|
||||
var $node = $.tmpl( sMenuTreeNode, {MenuTitleWithHome:sTextWithIcons,MenuTitle:sText,MenuId:sNodeSrl,MenuUrl:sURL,NodeType:nNodeType,SubTree:sSubTree,Target:sTargetPanel} )
|
||||
.data('sMenuId', sNodeSrl).data('sMenuUrl', sURL).data('sMenuTitle', sText);
|
||||
//data-param=\'{ "sMenuId":"${MenuId}", "sMenuUrl":"${MenuUrl}", "sMenuTitle":"${MenuTitle}" }\'
|
||||
//console.log($node);
|
||||
sResult += $node[0].outerHTML.replace("${h}", "<i class='x_icon-home' title='Home Page'>[HOME]</i>").replace("${s}", "<i class='x_icon-share' title='Shortcut'></i>");
|
||||
}
|
||||
|
||||
return $.tmpl( sMenuTree, {Nodes:sResult} ).get()[0].outerHTML;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
jQuery(function($){
|
||||
$.xeMsgBox.confirmDialog({
|
||||
sTitle : 'TITLE',
|
||||
|
||||
sText : '<div style="width:368px;height:300px;border:1px solid;overflow:scroll"><div class="tree"></div></div>',
|
||||
|
||||
bSmall: true,
|
||||
|
||||
bDanger: true,
|
||||
|
||||
fnOnOK : function(){
|
||||
console.log($container.find('.jstree-clicked'));
|
||||
|
||||
$container.find('.jstree-clicked').each(function(idx, el){
|
||||
console.log($(el).closest('li').data('sMenuId'));
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$container = $('.x_modal._common .tree');
|
||||
|
||||
$.xeShowMenuSelector($container);
|
||||
});
|
||||
|
||||
jQuery(function($){
|
||||
// Modal anchor activation
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue