📄 cform.js
字号:
var cform = {
runtime:{id_seq:0,mce:[]},
create:function(finfo,base,header){
cform.runtime.mce = [];
var tmp = [];
var i=0;
for(k in finfo.elements){
cform.runtime.currentFid = ++cform.runtime.id_seq;
o = Builder.node('tbody',{id:'form_'+cform.runtime.currentFid});
i = finfo.elements[k].items;
for(name in i){
if (i[name]['type'] != 'hidden') {
cform.insEle(i[name],name,o);
} else {
tmp.push(cform.ele(i[name],name,cform.runtime.id_seq));
}
}
tmp.each(
function(h) {
o.appendChild(h);
}
);
delete(tmp);
base.appendChild(
Builder.node('table',{className:'section '+(1%2==0?'row_1':'row_2'),width:'100%',cellspacing:0,cellpadding:5,style:finfo.elements[k].hidden?'visibility: hidden;position: absolute;z-index:-5;top:0':'visibility: visible;position: static;z-index:-5;top:0'},[
isNaN(Number(k))?Builder.node('caption',{},[k]):'',
o
])
);
i++;
}
var actionBar = Builder.node('div',{className:'actionBar'});
if(!finfo.buttons){
var btn = Builder.node('b',{className:'button',onclick:'cform.submit(this)'},[
Builder.node('label',{},__('save'))
]);
actionBar.appendChild(btn);
// header.appendChild(btn.cloneNode(true));
}else{
finfo.buttons.each(
function(b){
var btn = Builder.node('b',{className:'button',onclick:(b.onclick?('if(function(){'+b.onclick+'}())cform.submit(this)'):'cform.submit(this)')},[
Builder.node('label',{},b.label)
])
if(b.value) btn.appendChild(Builder.node('input',{type:'hidden',name:'_submit',value:b.value}));
actionBar.appendChild(btn);
// header.appendChild(btn.cloneNode(true));
}
);
}
base.appendChild(actionBar);
cform.runtime.mce.each(
function(e){
X.mce.init(e);
}
);
},
submit:function(o){
obj = Builder.node('div',{className:'disableImg',style:'z-index:999999999; background:#fff; position:absolute;filter:alpha(opacity=50);opacity:0.5;'});
document.body.appendChild(obj);
Position.clone(o, obj, {setWidth:false,setHeight:false,setWidth:100,setHeight:100});
// if (!stopSubmit) {
for(o=o.parentNode;o&&o.tagName!='FORM';o=o.parentNode){;}
X.form.submit(o);
stopSubmit = 1;
// }
setTimeout('remove()',2500);
remove = function () {
document.body.removeChild(obj);
// stopSubmit = 0;
}
},
insEle:function(e,name,field){
id=1;
var label = Builder.node('label',{'for':++cform.runtime.id_seq},[e.label,(e.required?Builder.node('span',{className:'required-dot'},'*'):' ')]);
if(e.type) label.appendChild(Builder.node('input',{type:'hidden','name':'_F['+name+'][type]',value:e.type}));
if(e.label) label.appendChild(Builder.node('input',{type:'hidden','name':'_F['+name+'][label]',value:e.label}));
if(e.required && e.type!='file') label.appendChild(Builder.node('input',{type:'hidden','name':'_F['+name+'][required]',value:e.required}));
section = Builder.node('tr',{fname:name},[
Builder.node('th',{className:'label',width:'20%',valign:'top',align:'right'},[label]),
Builder.node('td',{width:'790%',className:'value'},[cform.ele(e,name,cform.runtime.id_seq)]),
Builder.node('td',{width:'1%',valign:'top',className:'helpMsg'},[
e.helpMsg?Builder.node('span',{style:"display:none;"},e.helpMsg):''
])
]);
if(e.hidden){
section.style.visibility='hidden';
section.style.position='absolute';
section.style.zIndex=-5;
section.style.top=0;
} else {
section.style.visibility='visible';
section.style.position='static';
section.style.zIndex=-5;
section.style.top=0;
}
field.appendChild(section);
},
appendAttrs:function(obj,opts){
for(i in opts){
if(['onclick','onchange'].include(i)){
eval('Event.observe(obj,"'+i.substr(2)+'",function(e){var o=Event.element(e);'+opts[i]+'},false)');
}else{
if(!['type','label','options','adv','value','style','required','link'].include(i) && typeof(opts[i])=='string')
obj.setAttribute(i,opts[i]);
else if(i=='style'){
for(s in opts[i]){
obj.style[s]=opts[i][s];
}
}
}
}
if(opts.required && opts.type!='checkbox'){
Element.addClassName(obj,'required');
}
if(opts.type && !['checkbox','label'].include(opts.type)){
Element.addClassName(obj,'validate-'+opts.type);
}
return obj;
},
ele:function(e,c_name,c_id){
switch(e.type){
case 'bool':
if(e.value == 1){
var y = cform.appendAttrs(Builder.node('input',{type:'radio',name:c_name,value:'1',checked:'checked'},[]),e);
var n = cform.appendAttrs(Builder.node('input',{type:'radio',name:c_name,value:'0'},[]),e);
} else {
var y = cform.appendAttrs(Builder.node('input',{type:'radio',name:c_name,value:'1'},[]),e);
var n = cform.appendAttrs(Builder.node('input',{type:'radio',name:c_name,value:'0',checked:'checked'},[]),e);
}
return Builder.node('span',{},[ __('yes'), y , __('no'), n ]);
break;
case 'checkbox':
var sel=Builder.node('span',{},[]), key, opt=e.options,s=0,i=0;
if(opt){
if(opt.each){
opt.each(
function(o,i){
sel.appendChild(
Builder.node('label',{'for':'_ele_'+c_id+'_'+i,className:'check_label'},[
(e.value && e.value.include && e.value.include(i))?
cform.appendAttrs(Builder.node('input',{id:'_ele_'+c_id+'_'+i,name:c_name+'[]',type:'checkbox',value:i,checked:'checked'}),e)
:
cform.appendAttrs(Builder.node('input',{id:'_ele_'+c_id+'_'+i,name:c_name+'[]',type:'checkbox',value:i}),e)
, o ])
);
}
)
}else{
for(key in opt){
sel.appendChild(
Builder.node('label',{'for':'_ele_'+c_id+'_'+i,className:'check_label'},[
(e.value && e.value.include && e.value.include(key))?
cform.appendAttrs(Builder.node('input',{id:'_ele_'+c_id+'_'+i,name:c_name+'[]',type:'checkbox',value:key,checked:'checked'}),e)
:
cform.appendAttrs(Builder.node('input',{id:'_ele_'+c_id+'_'+i,name:c_name+'[]',type:'checkbox',value:key}),e)
, opt[key] ])
);
i++;
}
}
}
return sel;
case 'radio':
var sel=Builder.node('span',{},[]), key, opt=e.options,s=0,i=0;
if(opt){
if(opt.each){
opt.each(
function(o,i){
sel.appendChild(
Builder.node('label',{'for':'_ele_'+c_id+'_'+i,className:'check_label'},[
(i == e.value)?
cform.appendAttrs(Builder.node('input',{id:'_ele_'+c_id+'_'+i,name:c_name,type:'radio',value:i,checked:'checked'}),e)
:
cform.appendAttrs(Builder.node('input',{id:'_ele_'+c_id+'_'+i,name:c_name,type:'radio',value:i}),e)
, o ])
);
}
)
}else{
for(key in opt){
sel.appendChild(
Builder.node('label',{'for':'_ele_'+c_id+'_'+i,className:'check_label'},[
(key == e.value)?
cform.appendAttrs(Builder.node('input',{id:'_ele_'+c_id+'_'+i,name:c_name,type:'radio',value:key,checked:'checked'}),e)
:
cform.appendAttrs(Builder.node('input',{id:'_ele_'+c_id+'_'+i,name:c_name,type:'radio',value:key}),e)
, opt[key] ])
);
i++;
}
}
}
return sel;
case 'select':
var sel=Builder.node('select',{name:c_name},[]), key, opt=e.options,s=0;
if(opt){
if(opt.toArray){
s=e.value;
for(i=0;i<opt.length;i++){
sel.appendChild(Builder.node('option',{value:i},[opt[i]]));
}
}else{
var i=0;
for(key in opt){
sel.appendChild(Builder.node('option',{value:key},[opt[key]]));
if(key == e.value){
s=i;
}
i++;
}
}
if(sel.childNodes.length>s)
sel.selectedIndex=s;
}
return cform.appendAttrs(sel,e);
case 'file':
return Builder.node('span',{},[
cform.appendAttrs(Builder.node('input',{className:'file',type:'file',name:c_name},[]),e)
]);
case 'hidden':
return cform.appendAttrs(Builder.node('input',{type:'hidden',name:c_name,value:(e.value?e.value:'')},[]),e) ;
case 'check':
if(e.value == 1){
return Builder.node('input',{type:'checkbox',name:c_name,value:1,checked:'checked'},[]) ;
}else{
return Builder.node('input',{type:'checkbox',name:c_name,value:1},[]) ;
}
case 'label':
var link = e.link, target = e.target, value = e.value, style = e.style, str = '';
if(typeof(link) == "undefined"){
a = Builder.node('span',{},[value?value:'']);
}else{
if(typeof(link)=='object'){
args = link.args;
args.each(
function(item){
str += '\''+item+'\',';
}
);
str = str.substr(0, str.length-1);
a = Builder.node('span',{className:'link',onclick:'X.go({ctl:\''+link.ctl+'\',act:\''+link.act+'\',p:['+str+']},{target:\''+(target?target:'')+'\'})'},[value]);
}else{
a = Builder.node('a',{href:link,target:(target?target:'')},[value]);
}
}
return Builder.node('span',{},[cform.appendAttrs(a,e)]);
case 'color':
ele = cform.appendAttrs(Builder.node('input',{id:'colorinput-'+c_id,name:c_name,value:(e.value?e.value:'')}),e);
ele.onclick=function(){
if(!$("colorpicker201")){
new Insertion.Bottom(document.body, '<div id="colorpicker201" class="colorpicker201"></div>');
//new Insertion.Top($("colorpicker201"),'<iframe src="javascript:false" scrolling="no" frameborder="0" style="z-index:-1;position:absolute; top:5px; left:2px;width:300;height:400px;"></iframe>');
}
showColorGrid2(this.id,this.id);
};
return ele;
case 'date':
return cform.appendAttrs(Builder.node('input',{id:c_id,name:c_name,onclick:"new Date().datePicker('"+c_id+"')",value:(e.value?e.value:'')}),e);
case 'time':
return Builder.node('span',{},[
cform.appendAttrs(Builder.node('input',{id:c_id,name:c_name+'[date]',onfocus:"new Date().datePicker('"+c_id+"')",value:(e.date || '')}),e),
Builder.node('input',{style:'margin-left:20px',name:c_name+'[h]',value:(e.time.h || ''),size:2,maxlength:2,className:''}),':',
Builder.node('input',{value:(e.time.m || ''),name:c_name+'[m]',size:2,maxlength:2})
]);
case 'password':
return cform.appendAttrs(Builder.node('input',{'type':'password',value:(e.value?e.value:''),name:c_name}),e) ;
case 'passwordAgain':
ele = Builder.node('span',{},[
Builder.node('input',{id:c_id,className:'validate-passwordag','type':'password',value:(e.value?e.value:''),name:c_name+'[0]'}),
Builder.node('span',{},' - '),
cform.appendAttrs(Builder.node('input',{'for':c_id,className:'validate-passwordag','type':'password',value:(e.value?e.value:''),name:c_name+'[1]'}),e)
]);
return ele;
case 'rtf':
e=Builder.node('textarea',{className:'_rtf',style:'height:180px;width:100%',name:c_name,id:'e_'+c_id},[(e.value?e.value:'')]);
cform.runtime.mce.push(e);
return e;
case 'html':
e = Builder.node('textarea',{className:'_html',style:'height:100px;width:100%',name:c_name,id:'e_'+c_id},[(e.value?e.value:'')]);
cform.runtime.mce.push(e);
return e;
case 'text':
return cform.appendAttrs(Builder.node('textarea',{style:'height:150px;width:100%',name:c_name,id:'e_'+c_id},[(e.value?e.value:'')]),e);
case 'shortText':
return cform.appendAttrs(Builder.node('textarea',{style:'height:150px;width:300px',name:c_name,id:'e_'+c_id},[(e.value?e.value:'')]),e);
case 'list':
// if(e.view){
// var body = Builder.node('ul',{cname:c_name,style:'height:200px;overflow-y:scroll'});
// body.innerHTML = e.view;
// base = Builder.node('div',{className:'',style:'border:1px solid #999;'},[
// body
// ]);
// return base;
// }else{
return Builder.node('div',{className:'clist',list:e.list});
// }
case 'view':
box = Builder.node('span',{name:c_name});
box.innerHTML = e.view;
return box;
case 'goods':
if(e.multiSelect){
base = Builder.node('div',{className:'selectboxbar'},[
Builder.node('div',{className:'title'},[
Builder.node('input',{type:'button',className:'buttoninput',value:__('Add'),onclick:"Dialog.goods("+(e.jsdisplay?e.jsdisplay:'cform.object.goods.addItem')+",{obj:this.parentNode.nextSibling,type:'checkbox',name:'goods'})"}),
Builder.node('input',{type:'button',className:'buttoninput',onclick:"this.parentNode.nextSibling.innerHTML=''",value:__('Clear')})
]),
content=Builder.node('ul',{cname:c_name,style:'height:200px;overflow-y:scroll'}),
]);
}else{
base =
Builder.node('div',{className:''},[
content=Builder.node('ul',{cname:c_name,style:'float:left;'}),
Builder.node('div',{style:'float:right;text-align:left;'},[
Builder.node('input',{type:'button',className:'buttoninput',className:'button',value:__('Add'),onclick:"Dialog.goods(cform.object.goods.addItem,{obj:this.parentNode.previousSibling,type:'radio',name:'goods'})"}),
]),
]);
}
if(e.value){
cform.object.setValue(content,e.value,c_name,e.multiSelect);
}
return base;
case 'goodsGrp':
if(e.multiSelect){
if(e.view){
var body = Builder.node('ul',{cname:c_name});
body.innerHTML = e.view;
base = Builder.node('div',{className:'selectboxbar'},[
Builder.node('div',{className:'title'},[
Builder.node('input',{type:'button',className:'buttoninput',value:__('Add'),onclick:"Dialog.goodsGrp("+(e.jsdisplay?e.jsdisplay:'cform.object.goodsGrp.addItem')+",{obj:this.parentNode.nextSibling,type:'checkbox',name:'goodsGrp',name:'goodsGrp'})"}),
Builder.node('input',{type:'button',className:'buttoninput',onclick:"this.parentNode.nextSibling.innerHTML=''",value:__('Clear')})
]),
body
]);
}else{
base = Builder.node('div',{className:'selectboxbar'},[
Builder.node('div',{className:'title'},[
Builder.node('input',{type:'button',className:'buttoninput',value:__('Add'),onclick:"Dialog.goodsGrp("+(e.jsdisplay?e.jsdisplay:'cform.object.goodsGrp.addItem')+",{obj:this.parentNode.nextSibling,type:'checkbox',name:'goodsGrp',name:'goodsGrp'})"}),
Builder.node('input',{type:'button',className:'buttoninput',onclick:"this.parentNode.nextSibling.innerHTML=''",value:__('Clear')})
]),
content=Builder.node('ul',{cname:c_name,style:'height:200px;overflow-y:scroll'})
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -