Menu selector

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12481 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
nagoon97 2012-12-27 08:07:32 +00:00
parent 240a8f4e5e
commit b8acee08f6

View file

@ -869,7 +869,7 @@ jQuery(function($){
$(this).each(_xeModuleSearch); $(this).each(_xeModuleSearch);
}; };
$('.moduleTrigger').xeModuleSearch(); //$('.moduleTrigger').xeModuleSearch();
// Add html for .module_search // Add html for .module_search
$.fn.xeModuleSearchHtml = function(){ $.fn.xeModuleSearchHtml = function(){
@ -999,30 +999,7 @@ jQuery(function($){
<button type="submit" class="x_btn x_btn-inverse x_pull-right _ok">'+xe.cmd_confirm+'</button>\ <button type="submit" class="x_btn x_btn-inverse x_pull-right _ok">'+xe.cmd_confirm+'</button>\
</div>'); </div>');
//console.log($msgBox.html());
$("body").append($msgBox); $("body").append($msgBox);
//console.log($msgBox);
//console.log($.find("body"));
//$msgBox.show();
/*
<div class="x_modal x" id="exModal-2" style="display: block;"><button type="button" class="x_close">×</button>
<div class="x_modal-header">
<h3>Modal 2 header</h3>
</div>
<div class="x_modal-body">
<p>One fine body</p>
</div>
<div class="x_modal-footer">
<button type="button" class="x_btn x_pull-left" data-hide="#exModal-2">Close</button>
<span class="x_btn-group x_pull-right">
<button type="submit" class="x_btn">Modify</button>
<button type="submit" class="x_btn x_btn-danger">Delete</button>
</span>
</div>
</div>
*/
//var $msgBox = $("#msgBox");
$msgBox.find("._ok").click(function(){ $msgBox.find("._ok").click(function(){
$.xeMsgBox.fnOnOK(); $.xeMsgBox.fnOnOK();
}); });
@ -2012,10 +1989,14 @@ jQuery(function($){
var aSelectedModules; var aSelectedModules;
var htNodeInfo; var htNodeInfo;
var fnOnSelect; var fnOnSelect;
var bMultiSelect;
//data-multiple
$.xeMenuSelectorVar = {bMultiSelect: false};
$.template( "menuSelector_menuTree", '<ul>{{html Nodes}}</ul>' ); $.template( "menuSelector_menuTree", '<ul>{{html Nodes}}</ul>' );
$.template( "menuSelector_menuTreeNode", ' <li>\ $.template( "menuSelector_menuTreeNode", ' <li>\
<a href="#" class="_nodeType_${NodeType} _menu_url_${MenuUrl}" data-param=\'{ "sMenuId":"${MenuId}", "sMenuUrl":"${MenuUrl}", "sMenuTitle":"${MenuTitle}" }\'>${MenuTitle}</a>\ <a href="#" class="_nodeType_${NodeType} _menu_url_${MenuUrl}" data-param=\'{ "sMenuId":"${MenuId}", "sMenuUrl":"${MenuUrl}", "sMenuTitle":"${MenuTitle}", "sType":"${MenuType}" }\'>${MenuTitle}</a>\
{{html SubTree}}\ {{html SubTree}}\
</li>' ); </li>' );
//data-param=\'{ "sMenuId":"${MenuId}", "sMenuUrl":"${MenuUrl}", "sMenuTitle":"${MenuTitle}" }\' //data-param=\'{ "sMenuId":"${MenuId}", "sMenuUrl":"${MenuUrl}", "sMenuTitle":"${MenuTitle}" }\'
@ -2027,8 +2008,9 @@ jQuery(function($){
var sTreeHtml = createTreeMarkup(aMenuList, 0, "menuSelector_menuTree", "menuSelector_menuTreeNode"); var sTreeHtml = createTreeMarkup(aMenuList, 0, "menuSelector_menuTree", "menuSelector_menuTreeNode");
$container.html(sTreeHtml); $container.html(sTreeHtml);
$container bMultiSelect = $.xeMenuSelectorVar.bMultiSelect;
.jstree({
var htConf = {
"plugins" : ["themes","html_data","ui","crrm"], "plugins" : ["themes","html_data","ui","crrm"],
"crrm" : { "crrm" : {
@ -2049,7 +2031,15 @@ jQuery(function($){
}, },
"core" : { } "core" : { }
}) };
if(!bMultiSelect){
htConf.ui = {
select_multiple_modifier : false
};
}
$container
.jstree(htConf)
.bind("loaded.jstree", function (event, data) { .bind("loaded.jstree", function (event, data) {
data.inst.open_all(); data.inst.open_all();
@ -2091,11 +2081,12 @@ jQuery(function($){
*/ */
} }
$.xeShowMenuSelector = function($container_param, fnOnSelect_param, aSelectedModules_param){ $.xeShowMenuSelector = function($container_param, site_srl_param, fnOnSelect_param, aSelectedModules_param){
var $ = jQuery; var $ = jQuery;
var params = { var params = {
menu_srl : 0 menu_srl : 0,
site_srl : site_srl_param
}; };
$container = $container_param; $container = $container_param;
@ -2213,8 +2204,8 @@ jQuery(function($){
nNodeType = 3; nNodeType = 3;
} }
var $node = $.tmpl( sMenuTreeNode, {MenuTitleWithHome:sTextWithIcons,MenuTitle:sText,MenuId:sNodeSrl,MenuUrl:sURL,NodeType:nNodeType,SubTree:sSubTree,Target:sTargetPanel} ) var $node = $.tmpl( sMenuTreeNode, {MenuTitleWithHome:sTextWithIcons,MenuTitle:sText,MenuId:sNodeSrl,MenuUrl:sURL,NodeType:nNodeType,MenuType:sModuleType,SubTree:sSubTree,Target:sTargetPanel} )
.data('sMenuId', sNodeSrl).data('sMenuUrl', sURL).data('sMenuTitle', sText); .data('sMenuId', sNodeSrl).data('sMenuUrl', sURL).data('sMenuTitle', sText).data('sMenuType', sModuleType);
//data-param=\'{ "sMenuId":"${MenuId}", "sMenuUrl":"${MenuUrl}", "sMenuTitle":"${MenuTitle}" }\' //data-param=\'{ "sMenuId":"${MenuId}", "sMenuUrl":"${MenuUrl}", "sMenuTitle":"${MenuTitle}" }\'
//console.log($node); //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>"); 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>");
@ -2235,21 +2226,22 @@ jQuery(function($){
.parent() .parent()
.find('.moduleTrigger') .find('.moduleTrigger')
*/ */
function xeMenuSearch(ev){ function xeMenuSearch(ev){
var $btn = $(ev.target); var $btn = $(ev.target);
$.xeMenuSelectorVar.bMultiSelect = ""+$btn.data('multiple') == "true";
//bMultiSelect = //data-multiple
$.xeMsgBox.confirmDialog({ $.xeMsgBox.confirmDialog({
sTitle : 'TITLE', sTitle : 'TITLE',
sText : '<select style="width:100%"><option>...</option></select><div class="tree"></div>', sText : '<select class="site_selector" style="width:100%;display:none"></select><div class="tree"></div>',
bSmall: true, bSmall: true,
bDanger: true, bDanger: true,
fnOnOK : function(){ fnOnOK : function(){
console.log($container.find('.jstree-clicked')); // console.log($container.find('.jstree-clicked'));
var aSelected = []; var aSelected = [];
$container.find('.jstree-clicked').each(function(idx, el){ $container.find('.jstree-clicked').each(function(idx, el){
@ -2259,18 +2251,48 @@ jQuery(function($){
sMenuTitle : "222" sMenuTitle : "222"
sMenuUrl : "page_QLQK2400" sMenuUrl : "page_QLQK2400"
*/ */
aSelected.push({browser_title: htParam.sMenuTitle, mid: htParam.sMenuUrl, module_srl: htParam.sMenuId}); aSelected.push({browser_title: htParam.sMenuTitle, mid: htParam.sMenuUrl, module_srl: htParam.sMenuId, type: htParam.sType});
console.log(htParam); // console.log(htParam);
//console.log($(el).closest('li'), $(el).closest('li').data('sMenuId'));
}); });
$btn.trigger('moduleSelect', [aSelected]); $btn.trigger('moduleSelect', [aSelected]);
} }
}); });
$.exec_json('admin.getSiteAllList', {domain:""}, onSiteAllListCompleted);
}
function onSiteAllListCompleted(htRes){
var aSiteList = htRes.site_list;
$container = $('.x_modal._common .tree'); $container = $('.x_modal._common .tree');
$.xeShowMenuSelector($container);
console.log(ev); //console.log(aSiteList);
/*
[
{
domain : "nagoon97.xpressengine.com/maserati/"
site_srl : "0"
},
{
domain : "nagoon97.xpressengine.com/maserati123/"
site_srl : "1"
},
]
*/
var nLen = aSiteList.length;
if(nLen <= 1){
// leave the site selector hidden
}else{
// show and fill in
$SiteSelector = $('.x_modal._common .site_selector');
for(var i=0; i<nLen; i++){
$SiteSelector.append($("<option>").val(aSiteList[i].site_srl).html(aSiteList[i].domain));
}
$SiteSelector.show();
}
$.xeShowMenuSelector($container, "0");
} }
// Add html for .module_search // Add html for .module_search
@ -2287,6 +2309,7 @@ jQuery(function($){
var $btn = $('<a class="x_btn moduleTrigger">' + xe.cmd_find + '</a>'); var $btn = $('<a class="x_btn moduleTrigger">' + xe.cmd_find + '</a>');
var $displayInput = $('<input type="text" readonly>'); var $displayInput = $('<input type="text" readonly>');
$this.after($btn).after('&nbsp;').after($displayInput).hide(); $this.after($btn).after('&nbsp;').after($displayInput).hide();
$btn.data('multiple', $(this).data('multiple'));
$btn.on('click', xeMenuSearch); $btn.on('click', xeMenuSearch);
// on selected module // on selected module
@ -2308,24 +2331,22 @@ jQuery(function($){
return this; return this;
} }
$('.module_search').xeMenuSearchHtml(); $msgBox = $('.x_modal._common');
$msgBox.on('change', '.site_selector', function(ev){
//$.xeShowMenuSelector($container); var sSiteSrl = $(this).val();
//$('.module_search').xeModuleSearchHtml(); $.xeShowMenuSelector($container, sSiteSrl);
//console.log($('.module_search'));
/*
$('.module_search').each(function(){
var $t = $(this);
if($t.hasClass('.xe-module-search')) return;
$t.addClass('xe-module-search');
console.log($t);
}); });
*/
$.fn.xeMenuSearch = function(){
$(this).each(function(nIdx, el){
$(el).on('click', xeMenuSearch);
});
};
$('.module_search').xeMenuSearchHtml();
$('.moduleTrigger').xeMenuSearch();
}); });
//----------------menu selector end //----------------menu selector end