Issue 2041: Module search UI in widget configuration page modified for easier use

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.3.1@10922 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
nagoon97 2012-07-22 08:34:24 +00:00
parent 804f42a8e1
commit 216d72919d
4 changed files with 53 additions and 43 deletions

View file

@ -595,6 +595,13 @@ $.fn.xeModuleSearch = function(){
var MAX_LIST_HEIGHT = 280;
var t = this;
this.onModuleSelect = function(sModuleType, sModuleInstanceName, sModuleInstanceSrl){
$('#_target_module').val(sModuleInstanceName);
$('#index_module_srl').val(sModuleInstanceSrl);
};
function setListSize($UL, nHeight){
var nWidth, $div;
$UL.find('li div').width('');
@ -663,7 +670,6 @@ $.fn.xeModuleSearch = function(){
setSiteList($siteListSearchInput.val());
console.log(data);
$siteListSearchInput.focus();
};
@ -682,7 +688,6 @@ $.fn.xeModuleSearch = function(){
$finder = $this.closest('.modulefinder');
function on_complete(data) {
console.log(data);
var list = data.module_list, x;
@ -724,6 +729,7 @@ $.fn.xeModuleSearch = function(){
list = $this.data('moduleInstanceList');
if(!list) return;
t.sSelectedModuleType = $this.text();
$moduleInstanceList.empty();
for(var x in list) {
@ -749,11 +755,10 @@ $.fn.xeModuleSearch = function(){
.delegate('a','click',function(oEvent){
$this = $(this);
var target_module = $this.text();
var index_module_srl = $this.data('module_srl');
$('#_target_module').val(target_module);
$('#index_module_srl').val(index_module_srl);
t.sSelectedModuleInstanceName = $this.text();
t.sSelectedModuleSrl = $this.data('module_srl');
t.onModuleSelect(t.sSelectedModuleType, t.sSelectedModuleInstanceName, t.sSelectedModuleSrl);
$('.tgAnchor.moduleSearch').trigger('close.tc');
oEvent.preventDefault();
@ -762,7 +767,7 @@ $.fn.xeModuleSearch = function(){
return this;
};
$('.modulefinder').xeModuleSearch();
xe.ModuleSearch = $('.modulefinder').xeModuleSearch();
});

View file

@ -18,23 +18,23 @@ j;f++)e=a("<li />").appendTo(b),a('<button type="button" />').text(g[f].domain).
a("<option />").attr("value",g).text(d[g].title).appendTo(e);e.prop("selectedIndex",0).change().focus();e.is(":visible")||e.slideDown(100,function(){b.find(".moduleIdList:not(:visible)").slideDown(100).trigger("show")}).trigger("show")}})}).end().find(".moduleList,.moduleIdList").hide().end().find(".moduleList").change(function(){var d,b,e;d=a(this);b=d.val();e=d.data("module_list");if(e[b]){e=e[b].list;d=d.closest(".modulefinder").find(".moduleIdList").removeAttr("disabled").empty();for(var k in e)e.hasOwnProperty(k)&&
a("<option />").attr("value",e[k].module_srl).text(e[k].browser_title).appendTo(d);d.prop("selectedIndex",0).change()}});return this};a(".modulefinder").xeModuleFinder()});
jQuery(function(a){a.fn.xeModuleSearch=function(){function d(a,b){var e;a.find("li div").width("");a.css("height","");a.css("overflow-y","");a.height()>b&&(e=a.find("li div"),e.width(e.width()-20+"px"),a.css("height",b+"px"),a.css("overflow-y","auto"))}function b(b){var e,f=RegExp(b,"ig"),h=m;j.empty();i=0;for(c=h.length;i<c;i++){e=h[i].domain;if(b){if(!e.match(f))continue;e=e.replace(f,function(a){return'<span class="highlight">'+a+"</span>"})}$li=a("<li />").appendTo(j);a('<a href="#" >').html("<div>"+
e+'</div><span class="icon-circle-arrow-right" style="display:inline-block;float:right;width:16px;height:16px;"></span>').data("site_srl",h[i].site_srl).appendTo($li)}d(j,n-l.parent("DIV").height())}var e=a("#moduleSearchWindow"),k=e.find(".siteList"),g=e.find(".moduleTypeList"),f=e.find(".moduleInstanceList"),j=k.find("UL"),o=g.find("UL"),h=f.find("UL"),l=e.find("INPUT.siteListSearchInput"),m,n=280;l.keyup(function(){b(l.val())});"undefined"==typeof console&&(console={log:function(){}});this.not(".xe-module-search").addClass("xe-module-search").find("a.tgAnchor.moduleSearch").bind("before-open.tc",
function(){var e;e=a(this);j.empty();h.empty();g.hide();f.hide();a.exec_json("admin.getSiteAllList",{domain:""},function(d){var h=d.site_list;d.error||!a.isArray(h)?e.trigger("close.tc"):(m=h,b(l.val()),console.log(d),l.focus())})}).end().find(".tgContent .siteListUL").delegate("a","click",function(b){var h;h=a(this);h.closest(".modulefinder");o.empty();f.hide();a.exec_json("module.procModuleAdminGetList",{site_srl:h.data("site_srl")},function(b){console.log(b);var f=b.module_list,l;if(!b.error&&
f){for(l in f)f.hasOwnProperty(l)&&($li=a("<li />").appendTo(o),a('<a href="#" >').html("<div>"+f[l].title+'</div><span class="icon-circle-arrow-right" style="display:inline-block;float:right;width:16px;height:16px;"></span>').data("moduleInstanceList",f[l].list).appendTo($li));e.find(".moduleTypeList").show();d(o,n);j.find("li").removeClass("on");h.parent("li").addClass("on")}});b.preventDefault()}).end().find(".moduleTypeListUL").delegate("a","click",function(b){var e,l;e=a(this);if(l=e.data("moduleInstanceList")){h.empty();
for(var g in l)l.hasOwnProperty(g)&&($li=a("<li />").appendTo(h),a('<a href="#" >').html("<div>"+l[g].browser_title+"</div>").data("module_srl",l[g].module_srl).appendTo($li));f.show();d(h,n);o.find("li").removeClass("on");e.parent("li").addClass("on");b.preventDefault()}}).end().find(".moduleInstanceListUL").delegate("a","click",function(b){$this=a(this);var e=$this.text(),d=$this.data("module_srl");a("#_target_module").val(e);a("#index_module_srl").val(d);a(".tgAnchor.moduleSearch").trigger("close.tc");
b.preventDefault()});return this};a(".modulefinder").xeModuleSearch()});
jQuery(function(a){function d(a,b){for(var d=0,f=0;a&&a!=b;)d+=a.offsetTop,f+=a.offsetLeft,a=a.offsetParent;return{top:d,left:f}}var b=a('<tr class="placeholder"><td>&nbsp;</td></tr>');a.fn.xeSortableTable=function(){this.not(".xe-sortable-table").addClass("xe-sortable-table").delegate("button.dragBtn","mousedown.st",function(e){var k,g,f,j,o,h,l,m,n,u;if(1==e.which){g=a(this);f=g.closest("tr");j=g.closest("table");u=j.get(0).offsetParent;g=f.height();o=f.width();before_event=a.Event("before-drag.st");
j.trigger(before_event);if(before_event.isDefaultPrevented())return!1;k=e.pageY;h=d(f.get(0),u);$clone=f.attr("target",!0).clone(!0).appendTo(j);n=(e=j.find("thead th")).length;e.filter("[colspan]").attr("colspan",function(a,b){n+=b-1});b.find("td").attr("colspan",n);l=[];j.find("tbody>tr:not([target],.sticky,:hidden)").each(function(){var b=a(this),e;e=d(this,u);l.push({top:e.top,bottom:e.top+b.height(),$item:b})});$clone.addClass("draggable").css({position:"absolute",opacity:0.6,width:o,height:g,
e+'</div><span class="icon-circle-arrow-right" style="display:inline-block;float:right;width:16px;height:16px;"></span>').data("site_srl",h[i].site_srl).appendTo($li)}d(j,n-l.parent("DIV").height())}var e=a("#moduleSearchWindow"),k=e.find(".siteList"),g=e.find(".moduleTypeList"),f=e.find(".moduleInstanceList"),j=k.find("UL"),o=g.find("UL"),h=f.find("UL"),l=e.find("INPUT.siteListSearchInput"),m,n=280,p=this;this.onModuleSelect=function(b,e,d){a("#_target_module").val(e);a("#index_module_srl").val(d)};
l.keyup(function(){b(l.val())});"undefined"==typeof console&&(console={log:function(){}});this.not(".xe-module-search").addClass("xe-module-search").find("a.tgAnchor.moduleSearch").bind("before-open.tc",function(){var e;e=a(this);j.empty();h.empty();g.hide();f.hide();a.exec_json("admin.getSiteAllList",{domain:""},function(d){var h=d.site_list;d.error||!a.isArray(h)?e.trigger("close.tc"):(m=h,b(l.val()),l.focus())})}).end().find(".tgContent .siteListUL").delegate("a","click",function(b){var h;h=a(this);
h.closest(".modulefinder");o.empty();f.hide();a.exec_json("module.procModuleAdminGetList",{site_srl:h.data("site_srl")},function(b){var f=b.module_list,l;if(!b.error&&f){for(l in f)f.hasOwnProperty(l)&&($li=a("<li />").appendTo(o),a('<a href="#" >').html("<div>"+f[l].title+'</div><span class="icon-circle-arrow-right" style="display:inline-block;float:right;width:16px;height:16px;"></span>').data("moduleInstanceList",f[l].list).appendTo($li));e.find(".moduleTypeList").show();d(o,n);j.find("li").removeClass("on");
h.parent("li").addClass("on")}});b.preventDefault()}).end().find(".moduleTypeListUL").delegate("a","click",function(b){var e,l;e=a(this);if(l=e.data("moduleInstanceList")){p.sSelectedModuleType=e.text();h.empty();for(var g in l)l.hasOwnProperty(g)&&($li=a("<li />").appendTo(h),a('<a href="#" >').html("<div>"+l[g].browser_title+"</div>").data("module_srl",l[g].module_srl).appendTo($li));f.show();d(h,n);o.find("li").removeClass("on");e.parent("li").addClass("on");b.preventDefault()}}).end().find(".moduleInstanceListUL").delegate("a",
"click",function(b){$this=a(this);p.sSelectedModuleInstanceName=$this.text();p.sSelectedModuleSrl=$this.data("module_srl");p.onModuleSelect(p.sSelectedModuleType,p.sSelectedModuleInstanceName,p.sSelectedModuleSrl);a(".tgAnchor.moduleSearch").trigger("close.tc");b.preventDefault()});return this};xe.ModuleSearch=a(".modulefinder").xeModuleSearch()});
jQuery(function(a){function d(a,b){for(var d=0,f=0;a&&a!=b;)d+=a.offsetTop,f+=a.offsetLeft,a=a.offsetParent;return{top:d,left:f}}var b=a('<tr class="placeholder"><td>&nbsp;</td></tr>');a.fn.xeSortableTable=function(){this.not(".xe-sortable-table").addClass("xe-sortable-table").delegate("button.dragBtn","mousedown.st",function(e){var k,g,f,j,o,h,l,m,n,p;if(1==e.which){g=a(this);f=g.closest("tr");j=g.closest("table");p=j.get(0).offsetParent;g=f.height();o=f.width();before_event=a.Event("before-drag.st");
j.trigger(before_event);if(before_event.isDefaultPrevented())return!1;k=e.pageY;h=d(f.get(0),p);$clone=f.attr("target",!0).clone(!0).appendTo(j);n=(e=j.find("thead th")).length;e.filter("[colspan]").attr("colspan",function(a,b){n+=b-1});b.find("td").attr("colspan",n);l=[];j.find("tbody>tr:not([target],.sticky,:hidden)").each(function(){var b=a(this),e;e=d(this,p);l.push({top:e.top,bottom:e.top+b.height(),$item:b})});$clone.addClass("draggable").css({position:"absolute",opacity:0.6,width:o,height:g,
left:h.left,top:h.top,zIndex:100});b.css({position:"absolute",opacity:0.6,width:o,height:"10px",left:h.left,top:h.top,backgroundColor:"#bbb",overflow:"hidden",zIndex:99}).appendTo(j);f.css("opacity",0.6);a(document).unbind("mousedown.st mouseup.st").bind("mousemove.st",function(a){var e,d,f;m=null;a=h.top-(k-a.pageY);e=0;for(d=l.length;e<d;e++)f=l[e],e&&f.top>a||e<d-1&&f.bottom<a||(m={element:f.$item},f.top>a-12?(m.state="before",b.css("top",f.top-5)):(m.state="after",b.css("top",f.bottom-5)));$clone.css({top:a})}).bind("mouseup.st",
function(){var e;a(document).unbind("mousemove.st mouseup.st");f.removeAttr("target").css("opacity","");$clone.remove();b.remove();m&&(e=a(m.element),e[m.state](f),j.trigger("after-drag.st"))})}});return this};a("table.sortable").xeSortableTable()});
jQuery(function(a){var d=null,b=null,e=0,k=null,g=!1,f=!1,j;a(".multiLangEdit").delegate("input.vLang:text,textarea.vLang",{textchange:function(){function d(){f.addClass("loading");n.parent().is(":visible")&&n.parent().hide();show_waiting_message=!1;a.exec_json("module.getLangListByLangcodeForAutoComplete",{search_keyword:m},function(b){return function(d){var h=d.results,g,m;if(!d.error&&h&&e==b+1){f.removeClass("loading");n.empty();g=0;for(m=h.length;g<m;g++)d=a('<button type="button" class="_btnLang" />').data("langkey",
h[g].name).text(h[g].value),a("<li />").append(d).appendTo(n);j.trigger("show")}}}(e++));show_waiting_message=!0}var f=a(this),m=a.trim(f.val()),n;b&&(clearTimeout(b),b=null);f.data("mle-container");n=j.find(">ul");!m||g?(g=!1,n.parent().hide(),f.prev("input.vLang").val("")):(f.data("mle-langkey").val(""),f.prev("input.vLang").val(m),b=setTimeout(d,100))},keydown:function(b){var e,d,f=b.which;a(this);b=j.find(">ul");if(!j.is(":visible")||0>a.inArray(f,[38,40,13,27]))return!0;if(27==f)return j.trigger("hide"),
!1;e=b.find("button.active");if(13==f)return e.click(),!1;if(!e.length)return b.find("li>button:first").addClass("active"),!1;38==f?(d=e.parent().prev("li").find(">button"),d.length||(d=b.find(">li:last>button"))):40==f&&(d=e.parent().next("li").find(">button"),d.length||(d=b.find(">li:first>button")));e.removeClass("active");d.addClass("active");return!1},focus:function(){var b=a(this),e=a.trim(b.val()),f=b.closest(".multiLangEdit");b.after(j);b.data("mle-container")||b.data("mle-container",f);b.data("mle-langkey")||
b.data("mle-langkey",f.find("input.vLang:first"));(function(){var f=a.trim(b.val());f!=e&&(e=f,b.trigger("textchange"));d=setTimeout(arguments.callee,50)})()},blur:function(){clearTimeout(d);d=null;a(this).closest(".multiLangEdit").focusout()},focusout:function(){var b=a(this);clearTimeout(k);k=setTimeout(function(){f?f=!1:b.find(":focus").is(".vLang,button._btnLang")||j.trigger("hide")},10)}}).delegate("a.tgAnchor.editUserLang",{"before-open.tc":function(){var b,e,d;b=a(this);e=a(b.attr("href")).insertBefore(b);
d=b.closest(".multiLangEdit").find("input.vLang,textarea.vLang");b=d.eq(0).val();d=d.eq(1).val();var f=e,g=function(){var a=[];v.each(function(){a.push(this.value)});return a.join("\n")},k=function(){f.data("multilang-current-name")?f.find("h2").find("strong").text(p==x?r:y).end().find("a").text(p==x?y:r).show().end():f.find("h2").find("strong").text(r).end().find("a").hide()},q,v,w="",s=0,p,r,y,t=[],x=0;f.data("init-multilang-editor")||(f.data("init-multilang-editor",!0).bind("multilang-reset",function(){f.data("multilang-current-name",
"").find(".langInput li").find(">input:text,>textarea").val("").prev("label").css("visibility","visible");p=x;k()}).find("h2 a").click(function(){p=!p;k();return!1}).end().delegate("a.langItem","click",function(){var b=a(this),e,d,h;d=f.data("multilang-list");h=b.data("multilang-name");if(d&&d[h]){d=d[h];e=f.find(".langInput");f.trigger("multilang-reset").find(".langList li.active").removeClass("active").end().data("multilang-current-name",h);b.parent("li").addClass("active");for(var j in d)d.hasOwnProperty(j)&&
e.find("li."+j).find(">input:text,>textarea").data("multilang-value",d[j]).val(d[j]).prev("label").css("visibility","hidden");w=g();s=0;q.val(t[s]);p=1;k();return!1}}).data("layer_index",o).find(".langInput").attr("id","langInput_"+o++),y=f.find("h2 strong").text(),r=f.find("h2 a").text(),v=f.find("input:text,textarea").change(function(){var a=g()==w?0:1;a!=s&&q.val(t[s=a])}),q=f.find("input[type=submit]").click(function(){function b(){f.hide().closest(".multiLangEdit").find(".vLang").eq(0).val("$user_lang->"+
d).end().eq(1).val(f.find(".langInput li."+xe.current_lang).find(">input:text,>textarea").val()).end()}function e(a){a&&(!a.error&&a.name)&&(d=a.name,b())}var d=f.data("multilang-current-name");if(g()==w)b();else{var h={};d&&1==p&&(h.lang_name=d);v.each(function(){var b=a(this);h[b.parent("li").attr("class")]=b.val()});a.exec_json("module.procModuleAdminInsertLang",h,e)}return!1}),t=q.val().split("|"),q.val(t[0]));e.trigger("multilang-reset").removeClass("showChild").find(".langList").empty().end();
d=b.closest(".multiLangEdit").find("input.vLang,textarea.vLang");b=d.eq(0).val();d=d.eq(1).val();var f=e,g=function(){var a=[];v.each(function(){a.push(this.value)});return a.join("\n")},k=function(){f.data("multilang-current-name")?f.find("h2").find("strong").text(q==x?t:y).end().find("a").text(q==x?y:t).show().end():f.find("h2").find("strong").text(t).end().find("a").hide()},r,v,w="",s=0,q,t,y,u=[],x=0;f.data("init-multilang-editor")||(f.data("init-multilang-editor",!0).bind("multilang-reset",function(){f.data("multilang-current-name",
"").find(".langInput li").find(">input:text,>textarea").val("").prev("label").css("visibility","visible");q=x;k()}).find("h2 a").click(function(){q=!q;k();return!1}).end().delegate("a.langItem","click",function(){var b=a(this),e,d,h;d=f.data("multilang-list");h=b.data("multilang-name");if(d&&d[h]){d=d[h];e=f.find(".langInput");f.trigger("multilang-reset").find(".langList li.active").removeClass("active").end().data("multilang-current-name",h);b.parent("li").addClass("active");for(var j in d)d.hasOwnProperty(j)&&
e.find("li."+j).find(">input:text,>textarea").data("multilang-value",d[j]).val(d[j]).prev("label").css("visibility","hidden");w=g();s=0;r.val(u[s]);q=1;k();return!1}}).data("layer_index",o).find(".langInput").attr("id","langInput_"+o++),y=f.find("h2 strong").text(),t=f.find("h2 a").text(),v=f.find("input:text,textarea").change(function(){var a=g()==w?0:1;a!=s&&r.val(u[s=a])}),r=f.find("input[type=submit]").click(function(){function b(){f.hide().closest(".multiLangEdit").find(".vLang").eq(0).val("$user_lang->"+
d).end().eq(1).val(f.find(".langInput li."+xe.current_lang).find(">input:text,>textarea").val()).end()}function e(a){a&&(!a.error&&a.name)&&(d=a.name,b())}var d=f.data("multilang-current-name");if(g()==w)b();else{var h={};d&&1==q&&(h.lang_name=d);v.each(function(){var b=a(this);h[b.parent("li").attr("class")]=b.val()});a.exec_json("module.procModuleAdminInsertLang",h,e)}return!1}),u=r.val().split("|"),r.val(u[0]));e.trigger("multilang-reset").removeClass("showChild").find(".langList").empty().end();
e.find(".langInput li."+xe.current_lang).find(">input:text,>textarea").val(d).prev("label").css("visibility","hidden");j.trigger("hide");/^\$user_lang->(.+)$/.test(b)?(b="module.getModuleAdminLangListByName",d={lang_name:RegExp.$1}):(b="module.getModuleAdminLangListByValue",d={value:d});show_waiting_message=!1;a.exec_json(b,d,function(b){var d=b.lang_list,f;if(!b.error&&d){var b=d,g,h={},j,d=0;for(g=b.length;d<g;d++){j=b[d];h[j.name]||(h[j.name]={});h[j.name][j.lang_code]=j.value}d=h;e.data("multilang-list",
d);f=e.find(".langList");a.each(d,function(b){var d=a("<li />").appendTo(f),g=e.data("layer_index");a('<a href="#langInput_'+g+'" class="langItem" />').text(this[xe.current_lang]).data("multilang-name",b).appendTo(d)});var b=d,d=0,k;for(k in b)b.hasOwnProperty(k)&&d++;d>1&&e.addClass("showChild");e.find(".langList>li>a:first").click()}});show_waiting_message=!0}}).delegate("button._btnLang",{click:function(){var b=a(this);g=!0;j.trigger("hide");b.closest(".multiLangEdit").find("input.vLang,textarea.vLang").eq(0).val(b.data("langkey")).end().eq(1).val(b.text()).end();
return!1},mousedown:function(){f=!0},focus:function(){a(this).mouseover()},mouseover:function(){a(this).closest("ul").find("button.active").removeClass("active")}});j=a('<div class="suggestion"><ul></ul></div>').bind("show",function(){a(this).show()}).bind("hide",function(){a(this).hide()});var o=0});