📄 main.js
字号:
if(jsonObj.tabs){
th = Builder.node('ul');
tb = Builder.node('div');
var i = jsonObj.tabidx?jsonObj.tabidx:0;
for(var t in jsonObj.tabs){
tc = Builder.node('div',{name:t});
Element.update(tc,jsonObj.tabs[t]);
tb.appendChild(tc);
th.appendChild(
Builder.node('TD',{name:t,className:(0==i++?'current':'')},[t])
);
}
c.appendChild(
Builder.node('div',{className:'page-tab'},[
th
])
);
c.appendChild(tb);
}else{
Element.update(c,jsonObj.body);
}
e.body.appendChild(c);
try{(uiRender||Prototype.emptyFunction)(c)}catch(err){;}
f = e.body.getElementsByTagName('form');
var fbase={};
for(var i=0;i<f.length;i++){
name = f[i].getAttribute('name');
if(jsonObj.form && jsonObj.form[name]){
f[i].appendChild(Builder.node('input',{type:'hidden',value:name,'name':'_FORM_ID_'}));
cform.create(jsonObj.form[name],f[i],b);
}
var valid = new Validation(f[i], {immediate : true, onFormValidate : X.form.onValidate});
}
if(jsonObj.list){
fds = Element.getElementsByClassName(c,'clist');
var tbase={};
for(i=0;i<fds.length;i++){
tbase[fds[i].getAttribute('list')] = fds[i];
}
for(i in jsonObj.list){
if(tbase[i]){
clist.create(jsonObj.list[i],tbase[i],i,jsonObj.pager?jsonObj.pager[i]:null,jsonObj._get);
}
}
}
if(jsonObj.charts){
for(i in jsonObj.charts){
var options = {
padding: {left: 30, right: 0, top: 10, bottom: 30},
backgroundColor: '#f0f0f0',
colorScheme: 'blue',
xTicks: jsonObj.charts[i].cols
};
var bar = new Plotr.BarChart(i,options);
bar.addDataset(jsonObj.charts[i].data);
bar.render();
}
}
e.body.appendChild(Builder.node('div',{style:'clear:both'}));
sMenu.init(e.body);
e.body.style.visibility='';
X.tab.alert(jsonObj.tab);
}
}
if(jsonObj.elements){
a = e.body.getElementsByTagName('*');
for(i=0;i<a.length;i++){
n = a[i].getAttribute('name');
if(n && jsonObj.elements[n]){
Element.update(a[i],jsonObj.elements[n]);
sMenu.init(a[i]);
}
}
}
if(jsonObj.scripts){
jsonObj.scripts.each(
function(s){
if(!X.runtime.js[s]){
shobj = Builder.node('script',{src:'?ctl=sfile&act=script&p[0]='+s,language:'JavaScript',type:'text/javascript'});
document.body.appendChild(shobj);
X.runtime.js[s]=1;
}
}
)
}
data = jsonObj.data;
body = e.body;
X.removeMask();
if(jsonObj.jscall){
try{
eval(jsonObj.jscall);
}catch(err){
X.messager.show({string:__('Runtime error: script error!'),type:X.messager.code.error},json.id);
X.dbg.show('<div style="color:red"><b>jsCall Error: </b>'+jsonObj.jscall+'</div>');
X.dbg.append('<hr />');
X.dbg.append(err.description||err.message);
X.dbg.onError(err);
}
}
}catch(err){
X.messager.show({string:__('Display error!'),type:X.messager.code.error},json?json.id:Math.random());
X.dbg.show(err.description||err.message);
X.dbg.append('<hr />');
X.dbg.append('<div style="height:300px;overflow:scroll;border:1px solid #f90;padding:10px">'+ret.responseText+'</div>');
X.dbg.onError(err);
}
},
mask:function(toMask){
if (toMask) {
mask = Builder.node('div', {className:'loading',style:'position:absolute;left:100px;top:100px;z-index:100;background-color:red;'}, ['信息加载中...']);
toMask.parentNode.replaceChild(mask, toMask);
X.runtime.toMask = toMask;
X.runtime.mask = mask;
}
},
removeMask:function(){
if (X.runtime.toMask) {
X.runtime.mask.parentNode.replaceChild(X.runtime.toMask, X.runtime.mask);
X.runtime.toMask = X.runtime.mask = '';
}
},
jsrunner:{
run:function(callid){
}
},
dbg:{
show:function(msg){
if($('_debugger')){
$('_debugger_output').innerHTML=msg;
if($('_debugger_output').empty())
$('_debugger_output').hide();
else
$('_debugger_output').show();
}
},
append:function(msg){
if($('_debugger')){
$('_debugger_output').innerHTML+=msg;
if(!$('_debugger_output').innerHTML)
$('_debugger_output').hide();
else
$('_debugger_output').show();
}
},
onError:function(err){
throw(err);
},
ajaxError:function(obj,err){
if($('_debugger')) throw(err);
}
},
tab:{/*{{{*/
$:function(t){
tds = $('nav').getElementsByTagName('td');
for(i=0;i<tds.length;i++){
if(tds[i].getAttribute('name')==t){
var r_tab=tds[i];
break;
}
}
if(!r_tab){
return false;
}
for(var n=$('workground').firstChild;n;n=n.nextSibling){
if(n.tagName=='DIV'){
if(n.getAttribute('name')==t){
return {tab:r_tab,body:n};
}
}
}
return false;
},
resize:function(){
if($('nav').getElementsByTagName('table')[0].offsetWidth < $('workground').offsetWidth-40){
$('navtools').hide();
$('nav').style.left='';
$('nav').style.width = $('workground').offsetWidth-40+'px';
$('nav').scrollLeft=0;
}else{
$('navtools').show();
if(!X.runtime.nleft){
X.runtime.nleft = $('navtools').firstChild.offsetWidth;
X.runtime.nright = $('navtools').lastChild.offsetWidth;
}
$('nav').style.left=X.runtime.nleft+'px';
$('nav').style.width = $('workground').offsetWidth-X.runtime.nleft-5-X.runtime.nright+'px';
}
},
goleft:function(){
$('nav').scrollLeft-=100;
},
goright:function(){
$('nav').scrollLeft+=100;
},
home:function(t){
t = t?t:Setting.home.tab;
if(X.runtime.currentTab!=t){
X.runtime.lastTab = X.runtime.currentTab;
if(!X.tab.$(t)){
X.go(Setting.home,{target:t});
}
X.tab.fg(t,true);
}else if(X.tab.$(X.runtime.lastTab)){
X.tab.fg(t,true);
}
},
alert:function(t){
tds = $('nav').getElementsByTagName('td');
for(i=0;i<tds.length;i++){
if(tds[i].getAttribute('name')==t){
if(tds[i].className!='current'){
tds[i].className='alert';
}
break;
}
}
},
ren:function(t,name){
if(X.tab.$(name)){
X.tab.fg(name);
return false;
}
tds = $('nav').getElementsByTagName('td');
for(i=0;i<tds.length;i++){
if(tds[i].getAttribute('name')==t){
tds[i].setAttribute('name',name);
}
}
for(var n=$('workground').firstChild;n;n=n.nextSibling){
if(n.tagName=='DIV'){
if(n.getAttribute('name')==t){
n.setAttribute('name',name);
}
}
}
return true;
},
create:function(t){
w=0;
tab=Builder.node('td',{name:t},[
Builder.node('div',{className:'button',onDblClick:'X.tab.close(this.parentNode)',onClick:'X.tab.fg(this.parentNode)'},[
Builder.node('label',{},[__('loading...')]),
Builder.node('b',{className:'close',onClick:'X.tab.close(this.parentNode.parentNode)'},'x')
]),
]);
c=Builder.node('div',{name:t,className:'body',style:'display:none'});
$('workground').appendChild(c);
$('nav').getElementsByTagName('tr')[0].appendChild(tab);
X.tab.resize();
return {'tab':tab,'body':c};
},
setLabel:function(t,l){
if(X.runtime.currentTab == t){
X.setTitle(l);
}
tds = $('nav').getElementsByTagName('td');
for(i=0;i<tds.length;i++){
if(tds[i].getAttribute('name')==t){
tds[i].getElementsByTagName('label')[0].innerHTML = l;
tds[i].getElementsByTagName('label')[0].title = l;
return;
}
}
},
close:function(t){
if(typeof(t)=='object'){
n=t;
t=t.getAttribute('name');
removeElement(n);
}else{
tds = $('nav').getElementsByTagName('td');
for(i=0;i<tds.length;i++){
if(tds[i].getAttribute('name')==t){
removeElement(tds[i]);
}
}
}
for(var n=$('workground').firstChild;n;n=n.nextSibling){
if(n.tagName=='DIV'){
if(n.getAttribute('name')==t){
removeElement(n);
}
}
}
$('nav').scrollLeft+=1;
X.tab.resize();
try{
CollectGarbage();
}catch(e){;}
a=[];
b=[];
for(i=0;i<tds.length;i++){
a.push(tds[i].getAttribute('idx'));
b[tds[i].getAttribute('idx')]=tds[i];
}
a.sort();
X.tab.fg(b[a[a.length-1]]);
},
fg:function(t,noUpSeq){
X.runtime.tabidx++;
if(typeof(t)=='object'){
n=t;
n.className='current';
X.setTitle(n.getElementsByTagName('label')[0].innerHTML);
if(!noUpSeq){
n.setAttribute('idx',X.runtime.tabidx);
}
t=t.getAttribute('name');
}
tds = $('nav').getElementsByTagName('td');
for(i=0;i<tds.length;i++){
if(tds[i].getAttribute('name')==t){
if(!noUpSeq){
tds[i].setAttribute('idx',X.runtime.tabidx);
}
tds[i].className='current';
if(tds[i].offsetLeft+tds[i].offsetWidth > $('nav').offsetWidth+$('nav').scrollLeft){
$('nav').scrollLeft = tds[i].offsetLeft + tds[i].offsetWidth - $('nav').offsetWidth;
}else if($('nav').scrollLeft > tds[i].offsetLeft){
$('nav').scrollLeft = tds[i].offsetLeft;
}
X.setTitle(tds[i].getElementsByTagName('label')[0].innerHTML);
tdcrt = tds[i];
}else if(tds[i].className=='current'){
tds[i].className=null;
}
}
for(var n=$('workground').firstChild;n;n=n.nextSibling){
if(n.tagName=='DIV'){
if(n.getAttribute('name')==t){
n.style.display='';
}else if(n.style.display==''){
n.style.display='none';
}
}
}
X.runtime.currentTab=t;
},
bg:function(t){
a=[];
b=[];
if(typeof(t)=='object')t=t.getAttribute('name');
tds = $('nav').getElementsByTagName('td');
for(i=0;i<tds.length;i++){
if(tds[i].getAttribute('name')!=t){
a.push(tds[i].getAttribute('idx'));
b[tds[i].getAttribute('idx')]=n;
}
}
a.sort();
X.tab.fg(b[a[a.length-1]]);
}
,browser:function(obj){
var tList = Builder.node('ul',{className:'menu',style:'visibility: hidden;'});
var tds = $('nav').getElementsByTagName('td');
var curGrp = X.tab.getGrp(X.runtime.currentTab);
var t={s:[],o:[]};
for(i=0;i<tds.length;i++){
var item = { name:tds[i].getAttribute('name'),
cname:tds[i].className,
label:tds[i].getElementsByTagName('label')[0].innerHTML };
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -