UNPKG

json-object-editor

Version:

JOE the Json Object Editor | Platform Edition

97 lines (84 loc) 3.38 kB
var demo_config = { schemas:{ 'function':{ fields:[ 'name', 'global_function', 'source_code', 'description', 'parameters', '_id' ], idprop:'name', _listTitle: '<div class="joe-fright"><div class="joe-subtext">${_id}</div></div>' +'<div class="joe-title">${name}()</div><p>${parameters}</p>' + '<div>${description}</div>', _title:'&fnof; ${name}', _listMenuTitle:'Functions | ${_listCount}', listmenu:[__createBtn__] }, 'schema':{ fields:[ 'name', ] } }, fields:{ //all items name:{label:'${} Name', onblur:'updateSourceCode()'}, _id:{label:'ID',type:'guid'}, description:{label:'Description',type:'code'}, created:{label:'created',type:'text',width:'50%',locked:true}, //function global_function:{label:'Global',type:'boolean', onchange:'updateSourceCode()'}, source_code:{label:'Code',type:'content', run:function(item){ // item = _joe.constructObjectFromFields()|| item; var evalString = ''; try{ if(item.global_function){ evalString = eval(item.name); }else{ if(item.ref && eval(item.ref+'.'+item.name)){ evalString = eval(item.ref+'.'+item.name); }else{ evalString =(item.ref||'object')+' does not have the function '+item.name; } } }catch(e){ evalString = 'Could not evalutate: \n'+e; } return '<code><pre>'+evalString+'</pre></code>'; } } //schema /* _title:{ 'Element | ${name}', _listWindowTitle: 'Elements', _listTitle: '<div class="fright joe-subtext">sort:${sort_order}</div>'+ '<h4>${name}</h4>' + '<div class="joe-subtext">${RUN[_COUNT;${sub_modules};]} submodules</div>'+ '<div class="subtext">${RUN[enumerate;${itags};]}</div>',*/ }, menu:[ __saveBtn__, __quicksaveBtn__, __deleteBtn__, __duplicateBtn__ /* {name:'save',label:'Save', action:'NPC.saveJoeItem();', css:'joe-right-button joe-confirm-button'}, {name:'cancel',label:'Cancel', action:'_joe.hide()', css:'joe-right-button'}, {name:'duplicate',label:'Duplicate', action:'_joe.duplicateObject({deletes:[\'id\',\'_id\']});', css:'joe-left-button'}, {name:'view',label:'Object', action:'alert(JSON.stringify(_joe.current.object,\' \',\' \')); logit(_joe.current.object);', css:'joe-left-button'}, //__saveBtn__, {name:'delete',label:'Delete', action:'NPC.deleteJoeItem();', css:'joe-left-button'}*/ ], //filters:true, useBackButton:true, listSubMenu:{filters:true}, useHashlink:true, _title:'${itemtype} | ${name}' }; function updateSourceCode(){ _joe.rerenderField('source_code'); }