Joget DX 8 Stable Released
The stable release for Joget DX 8 is now available, with a focus on UX and Governance.
[ { title : 'Page Title', properties : [ { name : 'Property Name', label : 'Property Label', description : 'Property Description', //optional, default is NULL type : 'Property Type', value : 'Property Value', //optional, default is null required : 'Mandatory or Not', //optional, 'true' or 'false', default is 'false' //… more attributes … }, //… more fields … ], validators : [ //optional //… properties custom validators … ], buttons : [ //optional //… custom properties page buttons … ] }, //… more properties page … ]
columns : [ {key : 'key', label : 'Columns'}, {key : 'value', label : 'Value', required: 'true'}, {key : 'label', label : 'Label', required: 'true'}, {key : 'width', label : 'Width', options:[ {value : '10%', label : '10%'}, {value : '20%', label : '20%'}, {value : '30%', label : '20%'}, {value : '40%', label : '20%'} ]} ]
columns : [ {key : 'key', label : 'Columns'}, // first column will used to populate row label {key : 'value', label : 'Value', required: 'true'}, {key : 'label', label : 'Label', required: 'true'}, {key : 'width', label : 'Width', options:[ {value : '10%', label : '10%'}, {value : '20%', label : '20%'}, {value : '30%', label : '20%'}, {value : '40%', label : '20%'} ]} ], rows : [ {label : 'Username', required: 'true'}, {label : 'Status'}, {label : 'Message'}, {label : 'Date'} ], value : [ {label : 'Username'}, {label : 'Status'}, {label : 'Message', width : '20%'}, {label : 'Date', value : 'dateCreated'} ]
value : A JSON array of grid row values in JSON Object format with all the 'key' attribute of 'column' object used as attribute.
columns : [ {key : 'value', label : 'Value', required: 'true'}, {key : 'label', label : 'Label', required: 'true'}, {key : 'width', label : 'Width', options:[ {value : '10%', label : '10%'}, {value : '20%', label : '20%'}, {value : '30%', label : '20%'}, {value : '40%', label : '20%'} ]} ], value : [ {label : 'Username', value : 'username'}, {label : 'Status', value : 'status'}, {label : 'Message', value : 'message', width : '20%'}, {label : 'Date', value : 'dateCreated'} ]
{ regex_validation : '^[a-zA-Z0-9_]+$', validation_message : 'Invalid ID!!' }
{ control_field: 'chartType', control_value: 'bar|xy|area|bubble|line|candlestick|ohlc', control_use_regex: 'true', }
options : [ {value: 'value1', label : 'Value 1'}, {value: 'value2', label : 'Value 2'}, {value: 'value3', label : 'Value 3'} ]
options_ajax : '[CONTEXT_PATH]/web/json/console/app[APP_PATH]/datalist/options'
options_ajax_on_change : 'type' options_ajax : '[CONTEXT_PATH]/web/json/app[APP_PATH]/plugin/org.joget.plugin.enterprise.SamplePlugin/service?action=getJson'
options_callback: 'DatalistBuilder.getColumnOptions'
options_script: 'var tempArray = [{\'label\':\'\',\'value\':\'\'}]; for(ee in DatalistBuilder.availableColumns){ var temp = { \'label\' : UI.escapeHTML(DatalistBuilder.availableColumns[ee].label), \'value\' : DatalistBuilder.availableColumns[ee].id}; tempArray.push(temp);}tempArray;'
DatalistBuilder.getColumnOptions(properties)
Can be used by plugins related to Datalist Builder. It return all available columns based on binder configuration.
Example:
buttons : [{ name : 'testmail', label : 'Send Test Email', ajax_url : '[CONTEXT_PATH]/web/json/app[APP_PATH]/plugin/org.joget.apps.app.lib.EmailTool/service?action=testmail', fields : ['host', 'port', 'security', 'username', 'password'], addition_fields : [ { name : 'from', label : 'From', type : 'textfield', required : 'True' }, { name : 'toSpecific', label : 'To', type : 'textfield', required : 'True' } ] }]