Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Keynote

  • Plugin Properties Options allow a

Introduction

  • Allow plugin to gather configuration data from the a plugin user.
  • Plugin properties options Properties Options should be returned in the abstract method "getPropertyOptions" of each plugin.
  • Plugin properties options Properties Options are in JSON format.

Basic Properties Options Structure 

...

Properties Option Types

  1. Hidden field - hidden
  2. Read only field – readonly
  3. Text field – textfield
  4. Password field – password
  5. Text area Area field – textarea
  6. HTML editor Editor field – htmleditor
  7. Checkbox field – checkbox
  8. Radio button Button field – radio
  9. Select box Box field – selectbox
  10. Multi select box Select Box field – multiselect
  11. Element (Plugin) select Select field – elementselect
  12. Grid field - grid

Properties Validator Types

  1. AJAX - ajax

...

Detail

...

Attributes of Option Types 

Common Attributes for All Properties Options

...

Types Except Hidden Field and Grid

{
    name : 'Property Name',
    label : 'Property Label',
    description : 'Property Description', //optional, default is NULL
    type : 'readonly',
    value : 'Property Value', //optional , default is empty string
    required : 'true', //optional, boolean value, default is false
}

Extra Attributes for Text Field, Password Field, Text Area and HTML Editor

{
    size : '50', //optional , integer value, default is NULL, only for text field and password field
    maxlength : '50', //optional, integer value, default is NULL, only for text field and password field
    rows : '50', //optional, integer value, default is NULL, only for text area and html editor
    cols : '50', //optional, integer value, default is NULL , only for text area and html editor
    regex_validation : '^ Wiki Markup\[a-zA-Z0-9_\|KB:a-zA-Z0-9_\]+$', //optional, default is NULL
    validation_message : 'Error!!' //optional, default is NULL
}

...

Extra Attributes for Checkbox, Radio Button, Select Box and Multi Select BoxElement Select Field

...

{
    size : '10',

Wiki Markup{ &nbsp; &nbsp; *size* : '<span style="color: #0000ff">10</span>', <span style="color: #99cc00">//optional, integer value, default is 4,</span> <span style="color: #008000">only for multi select box</span> &nbsp; &nbsp; *options* : \[<span style="color: #99cc00">//is optional to use this attribute or options_ajax</span> &nbsp; &nbsp; &nbsp; &nbsp; {value: '<span style="color: #0000ff">value1</span>', label : '<span style="color: #0000ff">Value 1</span>'}, &nbsp; &nbsp; &nbsp; &nbsp; {value: '<span style="color: #0000ff">value2</span>', label : '<span style="color: #0000ff">Value 2</span>'}, &nbsp; &nbsp; &nbsp; &nbsp; {value: '<span style="color: #0000ff">value3</span>', label : '<span style="color: #0000ff">Value 3</span>'} &nbsp; &nbsp; \], &nbsp; &nbsp; * only for multi select box
    options : [//is optional to use this attribute or options_ajax
        {value: 'value1', label : 'Value 1'},
        {value: 'value2', label : 'Value 2'},
        {value: 'value3', label : 'Value 3'}
    ],
    options_ajax_on_change* : '<span style="color: #0000ff">property1</span>', <span style="color: #99cc00">'property1', //optional, value of this property name and value will passed over to load options from ajax</span> &nbsp; &nbsp; *options_ajax* : '<span style="color: #0000ff">URL to load options JSON</span>' <span style="color: #99cc00">//optional, URL return JSON Array of a set of Objects that have value &amp; label attribute</span> passed as HTTP request parameter to the URL defined in the options_ajax property
    options_ajax : 'URL to load options JSON' //optional, URL which returns the JSON Array of a set of Objects that have value & label attribute
}

Attributes for Hidden Field

{
    name : 'Property Name',
    type : 'hidden',
    value : 'Property Value'
}

Attributes for Grid

{
    name : 'Property Name',
    label : 'Property Label',
    description : 'Property Description', //optional, default is NULL
    type : 'grid',
    columns : [// 2 types of column, with and without options attribute
        {key : 'col1', label : 'Col 1'},
        {key : 'col2', label : 'Col 2',
            options :[
                {value :'option1', label : 'Option 1'},
                {value :'option2', label : 'Option 2'}
            ]
        },
    ],

   value:[    //Optional. Default is null. The name of each sub-object must match a key from the columns object above. (e.g. col1 below matches col1 in one of the columns:key names above)
       { col1 : 'abc', col2 : 'option1' },       

        {col1 : 'def', col2 : 'option2'}

    ],
    required : 'true', //optional, boolean value, default is false
}

...

Extra Attributes for Element Select Field

...

{
    options_ajax_on_change : 'property1', //optional, this property name and value will passed as HTTP request parameter to the URL defined in the options_ajax property
    options_ajax : '[KB:CONTEXT_PATH]/web/property/json/getElements?classname= org.joget.apps.form.model.FormLoadElementBinder', //Load plugin list based on class name given
    url : '[KB:CONTEXT_PATH]/web/property/json[KB:APP_PATH]/getPropertyOptions'//Load plugin properties
    keep_value_on_change : 'true' //optional, boolean value, default is false. To keep current configuration for the next selected element
}

Detail Attributes of Validator Type

 Attributes for AJAX

{
    type : 'ajax',
    url : 'URL to validate properties page value' , // All properties in the same page will send to this url to validate, URL return a JSON Object with status (success or fail) & message (JSONArray of String) attribute
    default_error_message : 'Error in this page!!' //optional, default is null
Wiki Markup{ &nbsp; &nbsp; *name* : '<span style="color: #0000ff">Property Name</span>', &nbsp; &nbsp; *label* : '<span style="color: #0000ff">Property Label</span>', &nbsp; &nbsp; *description* : '<span style="color: #0000ff">Property Description</span>', <span style="color: #99cc00">//optional, default is NULL</span> &nbsp; &nbsp; *type* : '<span style="color: #ff6600">grid</span>', &nbsp; &nbsp; *columns* : \[<span style="color: #99cc00">// 2 type of column, with and without options attribute</span> &nbsp; &nbsp; &nbsp; &nbsp; {*key* : '<span style="color: #0000ff">col1</span>', *label* : '<span style="color: #0000ff">Col 1</span>'}, &nbsp; &nbsp; &nbsp; &nbsp; {*key* : '<span style="color: #0000ff">col2</span>', *label* : '<span style="color: #0000ff">Col 2</span>', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *options* :\[ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {*value* :'<span style="color: #0000ff">option1</span>', *label* : '<span style="color: #0000ff">Option 1</span>'}, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {*value* :'<span style="color: #0000ff">option2</span>', *label* : '<span style="color: #0000ff">Option 2</span>'} &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \] &nbsp; &nbsp; &nbsp; &nbsp; }, &nbsp; &nbsp; \] &nbsp; &nbsp; *value* : \[<span style="color: #99cc00">//optional, default is NULL</span> &nbsp; &nbsp; &nbsp; &nbsp; {col1 : 'abc', col2 : 'option1'}, &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;{col1 : 'def', col2 : 'option2'} &nbsp; &nbsp; \], &nbsp; &nbsp; *required* : '<span style="color: #0000ff">true</span>', <span style="color: #99cc00">//optional, boolean value, default is false</span> }