Hi All,
The term defaultData will be changed to defaultValue.

The Option list will be changed as follows
{
 id: "someId"
 title: "Some Title"
 type:
    {
     name: "text"
    }
defaultValue: "some-default-value"
},
{
 id: "someId"
 title: "Some Title"
 type:
    {
     name: "boolean"
    }
defaultValue: true

},
{
 id: "someId"
 title: "Some Title"
 type:
    {
     name: "enum"
     possibleValues: ["foo", "bar"]
    }
defaultValue: "foo"
}

Note: the default values is a property of option not a property of type.

The feature is expected to support types enum, boolean and Text as of now.
Thank you very much.

On Thu, Feb 22, 2018 at 12:31 PM, SajithAR Ariyarathna <sajit...@wso2.com>
wrote:

> Hi Devs,
>
> On Tue, Feb 20, 2018 at 7:06 PM, Irindu Nugawela <iri...@wso2.com> wrote:
>
>> Hi All,
>> I am implementing a feature for Widget Configuration Panel of Carbon
>> Dashboard's designer view,
>> to allow users(dashboard designers)  to configure the properties of the
>> widgets such as the widget background color, widget title etc.
>>
>> The Current situation is that he user(dashboard designer) can only add or
>> drop one of the sample widgets or create a new widget of his/her own. but
>> has no control over the widget there after except for the complete removal
>> of it from the dashboard.
>>
>> The new feature will allow modification of certain properties of the
>> widget so that the user(dashboard designer) won't have to create a
>> completely new widget in order to make the changes in a existing widget.
>>
>> Every widget has a JSON file named widgetConf.json containing it's
>> configurations,
>> for example: widgetConf.json of widget Overall Revenue Info
>>
>> {
>>     "name": "Overall Revenue Info",
>>     "id": "OverallRevenueInfo",
>>     "thumbnailURL": "",
>>     "configs": {
>>         "pubsub": {
>>             "types": [
>>                 "subscriber"
>>             ]
>>         }
>>     }
>> }
>>
>> To implement the above feature the widgetConf.json needs to be changed as
>> follows
>>
>> {
>>
>>  "name": "Widget Name",
>>
>>  "id": "WidgetID",
>>
>>  "thumbnailURL": "",
>>
>>  "configs": {
>>
>>     "pubsub": {
>>
>>      "types": [
>>
>>        "subscriber"
>>
>>      ]
>>
>>     },
>>
>>     "options" : [
>>
>>        {
>>
>>          "id": "sampleId1",
>>
>>          "title": "sampleTitle1",
>>
>>          "type" : "text",
>>
>>          "defaultData" : "SamapleData"
>>
>>        },
>>
>>        {
>>
>>          "id": "sampleId2",
>>
>>          "title": "sampleTitle2",
>>
>>          "type" : "boolean",
>>
>>          "defaultData" : "true"
>>
>>        },
>>
>>        {
>>
>>          "id": "sampleId3",
>>
>>          "title": "sampleTitle3",
>>
>>          "type" : "enum",
>>
>>          "possibleValues" : ["SamapleEnumeratedData1","Sam
>> apleEnumeratedData2","SamapleEnumeratedData3"],
>>
>>          "defaultData" : "SamapleEnumeratedData1"
>>
>>        },
>>
>>        {
>>
>>          "id": "sampleId4",
>>
>>          "title": "sampleTitle4",
>>
>>          "type" : "text",
>>
>>          "defaultData" : "SamapleData"
>>
>>        }
>>
>>      ]
>>
> IMO, option list should be something like following:
>
> {
>  id: "someId"
>  title: "Some Title"
>  type:
>     {
>      name: "text"
>      defaultValue: "some-default-value"
>     }
> },
> {
>  id: "someId"
>  title: "Some Title"
>  type:
>     {
>      name: "boolean"
>      defaultValue: true
>     }
> },
> {
>  id: "someId"
>  title: "Some Title"
>  type:
>     {
>      name: "enum"
>      defaultValue: "foo"
>      values: ["foo", "bar"]
>     }
> }
>
>
> Why?
>
> - Proposed structure mixes properties of an option object with the
> properties of a type object.
>
> - Proposing structure gives a consistent object structure for an option
> object.
>
>  id: "someId"
>  title: "Some Title"
>  type: {}
>
>  - Therefore, we can easily  introduce a new type without disrupting
> (much) to option list processing logic.
> - "defaultData" feels awkward to me, correct term is "defaultValue"
>
> Thanks.
>
>>     }
>>
>>  }
>>
>> }
>>
>>
>>   All the user changeable options should be included in the options
>> array of the widgetConf.json with one option object for each user
>> changeable property.
>>
>> The Structure of each option object is as follows
>>
>>    -
>>
>>    id : this will be used to identify the corresponding property of the
>>    widget the option value is supposed to change.
>>    -
>>
>>    title : this is the text displayed to the user(widget designer) at
>>    the widget configuration panel.
>>    -
>>
>>    type : the type of option, it can be text, boolean or enum,
>>    -
>>
>>       A text type option results in a text box.
>>       -
>>
>>       A boolean type option results in a checkbox.
>>       -
>>
>>       An enum type option would result in a drop down select.
>>
>>
>>
>> The minimal  widget  configuration panel for a widget with no other user
>> changeable options would look like this.
>>
>>
>> [image: Inline image 1]
>>
>>
>> Please suggest any further changes required.
>>
>>
>> Thanks & regards,
>> Irindu
>>
>> Software Engineer Intern, WSO2 Inc.
>> Mobile: +94712325238 <+94%2071%20232%205238>
>>
>>
>
>
> --
> Sajith Janaprasad Ariyarathna
> Senior Software Engineer; WSO2, Inc.;  http://wso2.com/
> <https://wso2.com/signature>
>



-- 
Thanks & regards,
Irindu

Software Engineer Intern, WSO2 Inc.
Mobile: +94712325238
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to