[prev in list] [next in list] [prev in thread] [next in thread] 

List:       esb-java-dev
Subject:    Re: [Dev] Dashboard Component - Hierarchical Page Support
From:       Nipuna Chandradasa <nipunac () wso2 ! com>
Date:       2017-08-31 5:49:38
Message-ID: CAHexQBASnqB=CR7VMyJjgK8rR+dtOV=Oq_o7-7w8yqgWGU6bFg () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


So all the dashboard level metas like updatedTime and all will be available
in the DB level.

That is good and +1 for this.

On Thu, Aug 31, 2017 at 11:05 AM, Nisala Nanayakkara <nisala@wso2.com>
wrote:

> Hi Nipuna,
>
> Yes. We do not support authentication and authorization yet in the
> Dashboard Component. Once we do, we are going to maintain a separate table
> for dashboard permissions. So we do not need this information inside
> dashboard JSON. As an example, when there is a request to view a dashboard,
> we can check the whether the user has the permission or not from the
> permission DB and fetch the dashboard from dashboard DB according to the
> permission.
>
> Thanks,
> Nisala
>
> On Thu, Aug 31, 2017 at 10:38 AM, Nipuna Chandradasa <nipunac@wso2.com>
> wrote:
>
>> +1 for this format.
>>
>> Why are we removing lastUpdatedTime? isn't that important meta for an
>> admin?
>>
>> Are we not yet supporting Autherization for dashboard ( who owns, who can
>> edit or who can view and so on)? I thought those are parts of the dashboard
>> json (not the most secure place but) ...
>>
>> On Wed, Aug 30, 2017 at 5:16 PM, Nisala Nanayakkara <nisala@wso2.com>
>> wrote:
>>
>>> Hi all,
>>>
>>> We had an off-line discussion regarding this with Suho,Tanya,
>>> SajithR,Lasantha, SajithAR and came up with following structure for
>>> dashboard JSON,
>>>
>>>> {
>>>>     "id": "2",
>>>>     "url": "sampledashboard",
>>>>     "name": "Sample Dashboard",
>>>>     "description": "Lorem ipsum dolor sit amet DAS",
>>>>     "landingPage": "page0",
>>>>     "parentId": "1",
>>>>     "content": {
>>>>         "pages": [
>>>>             {
>>>>                 "id": "page0",
>>>>                 "name": "Page 0",
>>>>                 "content": []
>>>>             },
>>>>             {
>>>>                 "id": "page1",
>>>>                 "name": "Page 1",
>>>>                 "content": [],
>>>>                 "pages": [
>>>>                     {
>>>>                         "id": "page2",
>>>>                         "name": "Page 2",
>>>>                         "content": [],
>>>>                         "pages": [
>>>>                             {
>>>>                                 "id": "page3",
>>>>                                 "name": "Page 3",
>>>>                                 "content": []
>>>>                             }
>>>>                         ]
>>>>                     },
>>>>                     {
>>>>                         "id": "page4",
>>>>                         "name": "Page 4",
>>>>                         "content": []
>>>>                     }
>>>>                 ]
>>>>             }
>>>>         ]
>>>>     }
>>>> }
>>>>
>>> So we keep the pageIds and its content with their hierarchy as in the
>>> above sample dashboard JSON. There are several reasons to follow
>>> above-mentioned approach,
>>>
>>>    - If we follow this we do not need to keep separate mapping between
>>>    pageIds and its attributes
>>>    - Convenience in processing the dashboard JSON, when there is a
>>>    modification or deletion in the pages.
>>>
>>> Moreover, we are going to remove additional attributes which were
>>> introduced in the UUF based dashboard component(version, lastUpdatedTime
>>> and etc) as Tanya mentioned.
>>>
>>>
>>> Thanks,
>>> Nisala
>>>
>>> On Wed, Aug 30, 2017 at 8:51 AM, Tanya Madurapperuma <tanya@wso2.com>
>>> wrote:
>>>
>>>> Hi Nisala,
>>>>
>>>> First of all I think this mail should go to architecture@ :)
>>>>
>>>> On Mon, Aug 28, 2017 at 11:26 PM, Nisala Nanayakkara <nisala@wso2.com>
>>>> wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> We are in the process of re-writing dashboard component using React.
>>>>> Currently we have dashboard view component with following features,
>>>>>
>>>>>    - Dashboard listing (will retrieve the dashboard from the DB and
>>>>>    list down)
>>>>>    - Backend API support for dashboard CRUD activities.
>>>>>    - Dashboard view support (This will retrieve the selected
>>>>>    dashboard from DB and render using Golden Layout)
>>>>>    - Multiple pages support for dashboards (This will introduce
>>>>>    multiple pages at the same level, We need to support hierarchical page
>>>>>    support )
>>>>>    - Internal routing between dashboard listing and dashboard view
>>>>>
>>>>> Since we are using the golden layout for layouting, we keep the
>>>>> content of the each page with respect to page resource url. When we are
>>>>> going to implement the hierarchical pages support, we are going to process
>>>>> these page urls and display the hierarchical menu according these page
>>>>> urls. Please find the sample dashboard json given below,
>>>>>
>>>>>>     {
>>>>>>         "id": "1",
>>>>>>         "url": "sampledashboard",
>>>>>>         "name": "Sample Dashboard",
>>>>>>         "version": "2.0.0",
>>>>>
>>>>> As we don't have versioning support for dashboards any reason for
>>>> maintaining version info?
>>>>
>>>>>
>>>>>>         "description": "Lorem ipsum dolor sit amet DAS",
>>>>>>         "owner": "admin",
>>>>>>         "lastUpdatedBy": "admin",
>>>>>>         "createdTime": 1502820091111,
>>>>>>         "lastUpdatedTime": 1502820091112,
>>>>>
>>>>> Could you also explain the usage of lastUpdatedBy, createdTime and
>>>> lastUpdateTime fields?
>>>>
>>>>>
>>>>>>         "isShared": false,
>>>>>
>>>>> I don't think we need isShared any more since we don't have a tenancy
>>>> concept now. We used this attribute earlier to indicate whether a
>>>> particular dashboard which is in super tenant is shared between other
>>>> tenants.
>>>>
>>>>>
>>>>>>         "parentId": "1",
>>>>>>         "content": [
>>>>>>             {
>>>>>>                 "page0": {
>>>>>>                     *content of page0*
>>>>>>                 },
>>>>>>                 "page1": {
>>>>>>                     *content of page1*
>>>>>>                 }
>>>>>>             }
>>>>>>         ]
>>>>>>     }
>>>>>
>>>>>
>>>>>
>>>>> So we do not keep any mapping between pages and its hierarchy as in
>>>>> the previous versions of the dashboard component. But we may need to
>>>>> maintain some additional attributes such as Page title, isHidden and etc
>>>>> wrt page URL. In that case, I think it is better to maintain a separate
>>>>> mapping between these attributes and page URLs as in the previous dashboard
>>>>> component. Please find the sample dashboard json given below.
>>>>>
>>>>>> {
>>>>>>     "id": "1",
>>>>>>     "url": "sampledashboard",
>>>>>>     "name": "Sample Dashboard",
>>>>>>     "version": "2.0.0",
>>>>>>     "description": "Lorem ipsum dolor sit amet DAS",
>>>>>>     "owner": "admin",
>>>>>>     "lastUpdatedBy": "admin",
>>>>>>     "createdTime": 1502820091111,
>>>>>>     "lastUpdatedTime": 1502820091112,
>>>>>>     "isShared": false,
>>>>>>     "parentId": "1",
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> *    "menu": {        "page0": {            "ishidden": false,
>>>>>>     "title": "Page 0"        },        "page1": {            "ishidden":
>>>>>> false,            "title": "Page 1"        }    }*,
>>>>>>     "content": [
>>>>>>         {
>>>>>>             "page0": {},
>>>>>>             "page1": {}
>>>>>>         }
>>>>>>     ]
>>>>>> }
>>>>>>
>>>>> I am -1 to have separate menu section since it duplicates certain
>>>> information and also we don't have lot of meta info to go for a separation.
>>>> Can't we have page level meta under the page resource url as below?
>>>>
>>>>
>>>>    - "content":[
>>>>       1. {
>>>>          - "page0":{
>>>>             - "ishidden":false,
>>>>             - "title":"Page 0",
>>>>             - "content":[
>>>>                ]
>>>>          },
>>>>          - "page0/page1":{
>>>>             - "ishidden":false,
>>>>             - "title":"Page 1",
>>>>             - "content":[
>>>>                ]
>>>>          }
>>>>       }
>>>>    ]
>>>>
>>>>
>>>> WDYT?
>>>>
>>>> Thanks,
>>>> Tanya
>>>>
>>>>>
>>>>>> Because It will give a clear separation between dashboard content and
>>>>> the pages' menu attributes. WDYT?
>>>>>
>>>>> Thanks,
>>>>> Nisala
>>>>>
>>>>> --
>>>>> *Nisala Niroshana Nanayakkara,*
>>>>> Software Engineer
>>>>> Mobile | +94 717600022
>>>>> WSO2 Inc | http://wso2.com/
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Tanya Madurapperuma
>>>>
>>>> Associate Technical Lead,
>>>> WSO2 Inc. : wso2.com
>>>> Mobile : +94718184439 <+94%2071%20818%204439>
>>>> Blog : http://tanyamadurapperuma.blogspot.com
>>>>
>>>
>>>
>>>
>>> --
>>> *Nisala Niroshana Nanayakkara,*
>>> Software Engineer
>>> Mobile | +94 717600022
>>> WSO2 Inc | http://wso2.com/
>>>
>>> _______________________________________________
>>> Dev mailing list
>>> Dev@wso2.org
>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>
>>>
>>
>>
>> --
>> Nipuna Marcus
>> *Senior Software Engineer*
>> WSO2 Inc.
>> http://wso2.com/ - "lean . enterprise . middleware"
>> Mobile : +94 (0) 713 667906 <+94%2071%20366%207906>
>> nipunac@wso2.com
>>
>
>
>
> --
> *Nisala Niroshana Nanayakkara,*
> Software Engineer
> Mobile | +94 717600022
> WSO2 Inc | http://wso2.com/
>



-- 
Nipuna Marcus
*Senior Software Engineer*
WSO2 Inc.
http://wso2.com/ - "lean . enterprise . middleware"
Mobile : +94 (0) 713 667906
nipunac@wso2.com

[Attachment #5 (text/html)]

<div dir="ltr">So all the dashboard level metas like updatedTime and all will be \
available in the DB level.<div><br></div><div>That is good and +1 for \
this.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Aug \
31, 2017 at 11:05 AM, Nisala Nanayakkara <span dir="ltr">&lt;<a \
href="mailto:nisala@wso2.com" target="_blank">nisala@wso2.com</a>&gt;</span> \
wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px \
#ccc solid;padding-left:1ex"><div dir="ltr"><div>Hi Nipuna,<br><br></div><div>Yes. We \
do not support authentication and authorization yet in the Dashboard Component. Once \
we do, we are going to maintain a separate table for dashboard permissions. So we do \
not need this information inside dashboard JSON. As an example, when there is a \
request to view a dashboard, we can check the whether the user has the permission or \
not from the permission DB and fetch the dashboard from dashboard DB according to the \
permission.<br><br></div><div>Thanks,<br></div><div>Nisala<br></div></div><div \
class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div \
class="gmail_quote">On Thu, Aug 31, 2017 at 10:38 AM, Nipuna Chandradasa <span \
dir="ltr">&lt;<a href="mailto:nipunac@wso2.com" \
target="_blank">nipunac@wso2.com</a>&gt;</span> wrote:<br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><div dir="ltr">+1 for this format.  \
<div><div><br></div><div>Why are we removing lastUpdatedTime? isn&#39;t that \
important meta for an admin?</div><div><br></div><div>Are we not yet supporting \
Autherization for dashboard ( who owns, who can edit or who can view and so on)? I \
thought those are parts of the dashboard json (not the most secure place but) ...  \
</div></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div \
class="m_-3901463969124142610h5">On Wed, Aug 30, 2017 at 5:16 PM, Nisala Nanayakkara \
<span dir="ltr">&lt;<a href="mailto:nisala@wso2.com" \
target="_blank">nisala@wso2.com</a>&gt;</span> wrote:<br></div></div><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><div><div class="m_-3901463969124142610h5"><div dir="ltr">Hi \
all,<br clear="all">	 	 	 	 	 	<p style="margin-bottom:0in;line-height:100%">We had \
an off-line discussion regarding this with Suho,Tanya, SajithR,Lasantha, SajithAR and \
came up with following structure for dashboard JSON,</p><blockquote \
class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"><p \
style="margin-bottom:0in;line-height:100%"><span style="font-family:trebuchet \
ms,sans-serif">{<br>       &quot;id&quot;: &quot;2&quot;,<span><br>       \
&quot;url&quot;: &quot;sampledashboard&quot;,<br>       &quot;name&quot;: \
&quot;Sample Dashboard&quot;,<br></span><span>       &quot;description&quot;: \
&quot;Lorem ipsum dolor sit amet DAS&quot;,<br></span>       &quot;landingPage&quot;: \
&quot;page0&quot;,<br>       &quot;parentId&quot;: &quot;1&quot;,<br>       \
&quot;content&quot;: {<br>               &quot;pages&quot;: [<br>                     \
{<br>                               &quot;id&quot;: &quot;page0&quot;,<br>            \
&quot;name&quot;: &quot;Page 0&quot;,<br>                               \
&quot;content&quot;: []<br>                       },<br>                       {<br>  \
&quot;id&quot;: &quot;page1&quot;,<br>                               \
&quot;name&quot;: &quot;Page 1&quot;,<br>                               \
&quot;content&quot;: [],<br>                               &quot;pages&quot;: [<br>   \
{<br>                                               &quot;id&quot;: \
&quot;page2&quot;,<br>                                               \
&quot;name&quot;: &quot;Page 2&quot;,<br>                                             \
&quot;content&quot;: [],<br>                                               \
&quot;pages&quot;: [<br>                                                       {<br>  \
<wbr>   &quot;id&quot;: &quot;page3&quot;,<br>                                        \
<wbr>   &quot;name&quot;: &quot;Page 3&quot;,<br>                                     \
<wbr>   &quot;content&quot;: []<br>                                                   \
}<br>                                               ]<br>                             \
},<br>                                       {<br>                                    \
&quot;id&quot;: &quot;page4&quot;,<br>                                               \
&quot;name&quot;: &quot;Page 4&quot;,<br>                                             \
&quot;content&quot;: []<br>                                       }<br>               \
]<br>                       }<br>               ]<br>       \
}<br>}</span><br></p></blockquote>

<p style="margin-bottom:0in;line-height:100%">So we keep the pageIds and its content \
with their hierarchy as in the above sample dashboard JSON. There are several reasons \
to follow above-mentioned approach,</p>

<ul><li>If we follow this we do not need to keep separate mapping between pageIds and \
its attributes</li><li>Convenience in processing the dashboard JSON, when there is a \
modification or deletion in the pages.</li></ul>

<p style="margin-bottom:0in;line-height:100%">Moreover, we are going to remove \
additional attributes which were introduced in the UUF based dashboard \
component(version, lastUpdatedTime and etc) as Tanya mentioned.</p><p \
style="margin-bottom:0in;line-height:100%"><br></p>Thanks,<br>Nisala</div><div \
class="m_-3901463969124142610m_3138365828628261996HOEnZb"><div \
class="m_-3901463969124142610m_3138365828628261996h5"><div \
class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 30, 2017 at 8:51 AM, \
Tanya Madurapperuma <span dir="ltr">&lt;<a href="mailto:tanya@wso2.com" \
target="_blank">tanya@wso2.com</a>&gt;</span> wrote:<br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><div dir="ltr">Hi Nisala,<br><div \
class="gmail_extra"><br></div><div class="gmail_extra">First of all I think this mail \
should go to architecture@ :)</div><div class="gmail_extra"><br><div \
class="gmail_quote"><span>On Mon, Aug 28, 2017 at 11:26 PM, Nisala Nanayakkara <span \
dir="ltr">&lt;<a href="mailto:nisala@wso2.com" \
target="_blank">nisala@wso2.com</a>&gt;</span> wrote:<br></span><span><blockquote \
class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi all,<br><p \
style="margin-bottom:0in;line-height:100%">We are in the process of re-writing \
dashboard component using React. Currently we have dashboard view component with \
following features,</p> <ul><li>Dashboard listing (will retrieve the dashboard from \
the DB and list down)</li><li>Backend API support for dashboard CRUD \
activities.</li><li>Dashboard view support (This will retrieve the selected dashboard \
from DB and render using Golden Layout)</li><li>Multiple pages support for dashboards \
(This will introduce multiple pages at the same level, We need to support \
hierarchical page support )</li><li>Internal routing between dashboard listing and \
dashboard view</li></ul> <p>Since we are using the golden layout for layouting, we \
keep the content of the each page with respect to page resource url. When we are \
going to implement the hierarchical pages support, we are going to process these page \
urls and display the hierarchical menu according these page urls. Please find the \
sample dashboard json given below,<br></p><blockquote class="gmail_quote" \
style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"><span style="color:rgb(102,102,102)"><span \
style="font-family:&quot;trebuchet ms&quot;,sans-serif">       {</span><br><span \
style="font-family:&quot;trebuchet ms&quot;,sans-serif">               \
&quot;id&quot;: &quot;1&quot;,</span><br><span style="font-family:&quot;trebuchet \
ms&quot;,sans-serif">               &quot;url&quot;: \
&quot;sampledashboard&quot;,</span><br><span style="font-family:&quot;trebuchet \
ms&quot;,sans-serif">               &quot;name&quot;: &quot;Sample \
Dashboard&quot;,</span><br><span style="font-family:&quot;trebuchet \
ms&quot;,sans-serif">               &quot;version&quot;: \
&quot;2.0.0&quot;,</span></span></blockquote></div></blockquote></span><div>As we \
don&#39;t have versioning support for dashboards any reason for maintaining version \
info?  </div><span><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div \
dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span \
style="color:rgb(102,102,102)"><br><span style="font-family:&quot;trebuchet \
ms&quot;,sans-serif">               &quot;description&quot;: &quot;Lorem ipsum dolor \
sit amet DAS&quot;,</span><br><span style="font-family:&quot;trebuchet \
ms&quot;,sans-serif">               &quot;owner&quot;: \
&quot;admin&quot;,</span><br><span style="font-family:&quot;trebuchet \
ms&quot;,sans-serif">               &quot;lastUpdatedBy&quot;: \
&quot;admin&quot;,</span><br><span style="font-family:&quot;trebuchet \
ms&quot;,sans-serif">               &quot;createdTime&quot;: \
1502820091111,</span><br><span style="font-family:&quot;trebuchet \
ms&quot;,sans-serif">               &quot;lastUpdatedTime&quot;: \
1502820091112,</span></span></blockquote></div></blockquote></span><div>Could you \
also explain the usage of lastUpdatedBy, createdTime and lastUpdateTime fields?  \
</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px \
solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><blockquote \
class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"><span style="color:rgb(102,102,102)"><br><span \
style="font-family:&quot;trebuchet ms&quot;,sans-serif">               \
&quot;isShared&quot;: false,</span></span></blockquote></div></blockquote><div>I \
don&#39;t think we need isShared any more since we don&#39;t have a tenancy concept \
now. We used this attribute earlier to indicate whether a particular dashboard which \
is in super tenant is shared between other tenants.  </div><div><div \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132h5"><blockquote \
class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"><div dir="ltr"><blockquote class="gmail_quote" \
style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"><span style="color:rgb(102,102,102)"><br><span \
style="font-family:&quot;trebuchet ms&quot;,sans-serif">               \
&quot;parentId&quot;: &quot;1&quot;,</span><br><span \
style="font-family:&quot;trebuchet ms&quot;,sans-serif">               \
&quot;content&quot;: [</span><br><span style="font-family:&quot;trebuchet \
ms&quot;,sans-serif">                       {</span><br><span \
style="font-family:&quot;trebuchet ms&quot;,sans-serif">                              \
&quot;page0&quot;: {</span><br><span style="font-family:&quot;trebuchet \
ms&quot;,sans-serif">                                       <b><i>content of \
page0</i></b></span><br><span style="font-family:&quot;trebuchet \
ms&quot;,sans-serif">                               },</span><br><span \
style="font-family:&quot;trebuchet ms&quot;,sans-serif">                              \
&quot;page1&quot;: {</span><br><span style="font-family:&quot;trebuchet \
ms&quot;,sans-serif">                                   <b><i>content of \
page1</i></b></span><br><span style="font-family:&quot;trebuchet \
ms&quot;,sans-serif">                               }</span><br><span \
style="font-family:&quot;trebuchet ms&quot;,sans-serif">                       \
}</span><br><span style="font-family:&quot;trebuchet ms&quot;,sans-serif">            \
]</span><br><span style="font-family:&quot;trebuchet ms&quot;,sans-serif">       \
}</span></span>  </blockquote><div>  </div><p>So we do not keep any mapping between \
pages and its hierarchy as in the previous versions of the dashboard component. But \
we may need to maintain some additional attributes such as Page title, isHidden and \
etc wrt page URL. In that case, I think it is better to maintain a separate mapping \
between these attributes and page URLs as in the previous dashboard component. Please \
find the sample dashboard json given below.<br></p><blockquote class="gmail_quote" \
style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"><p><span style="color:rgb(102,102,102)"><span \
style="font-family:&quot;trebuchet ms&quot;,sans-serif">{<br>       &quot;id&quot;: \
&quot;1&quot;,<br>       &quot;url&quot;: &quot;sampledashboard&quot;,<br>       \
&quot;name&quot;: &quot;Sample Dashboard&quot;,<br>       &quot;version&quot;: \
&quot;2.0.0&quot;,<br>       &quot;description&quot;: &quot;Lorem ipsum dolor sit \
amet DAS&quot;,<br>       &quot;owner&quot;: &quot;admin&quot;,<br>       \
&quot;lastUpdatedBy&quot;: &quot;admin&quot;,<br>       &quot;createdTime&quot;: \
1502820091111,<br>       &quot;lastUpdatedTime&quot;: 1502820091112,<br>       \
&quot;isShared&quot;: false,<br>       &quot;parentId&quot;: &quot;1&quot;,<br><b>    \
&quot;menu&quot;: {<br>              &quot;page0&quot;: {<br>                     \
&quot;ishidden&quot;: false,<br>                     &quot;title&quot;: &quot;Page \
0&quot;<br>              },<br>              &quot;page1&quot;: {<br>                 \
&quot;ishidden&quot;: false,<br>                     &quot;title&quot;: &quot;Page \
1&quot;<br>              }<br>       }</b>,<br>       &quot;content&quot;: [<br>      \
{<br>                     &quot;page0&quot;: {},<br>                     \
&quot;page1&quot;: {}<br>              }<br>       \
]<br>}</span></span></p></blockquote></div></blockquote></div></div><div>I am -1 to \
have separate menu section since it duplicates certain information and also we \
don&#39;t have lot of meta info to go for a separation.</div><div>Can&#39;t we have \
page level meta under the page resource url as below?</div><div><br></div><ul \
style="list-style-type:none;margin:0px;padding:0px 0px 0px \
20px;color:rgb(0,0,0);font-family:&quot;DejaVu Sans Mono&quot;,&quot;Courier \
New&quot;,monospace;font-size:11px"><li><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-property" \
style="color:rgb(32,74,135)">&quot;<span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-p \
m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-collapsible">content</span>&quot;</span>:<span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-array"><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-toggle" \
style="border:1px solid transparent;color:rgb(164,0,0)">[</span><ol \
style="list-style-type:none;margin:0px;padding:0px 0px 0px 20px"><li><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-object"><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-toggle" \
style="border:1px solid transparent;color:rgb(114,159,207)">{</span><ul \
style="list-style-type:none;margin:0px;padding:0px 0px 0px 20px"><li><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-property" \
style="color:rgb(32,74,135)">&quot;<span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-p \
m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-collapsible">page0</span>&quot;</span>:<span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-object"><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-toggle" \
style="border:1px solid transparent;color:rgb(114,159,207)">{</span><ul \
style="list-style-type:none;margin:0px;padding:0px 0px 0px 20px"><span><li><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-property" \
style="color:rgb(32,74,135)">&quot;<span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-p">ishidden</span>&quot;</span>:<span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-boolean" \
style="color:rgb(196,160,0)">false</span>,</li><li><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-property" \
style="color:rgb(32,74,135)">&quot;<span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-p">title</span>&quot;</span>:<span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-string" \
style="color:rgb(78,154,6)">&quot;Page 0&quot;</span>,</li></span><li><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-property" \
style="color:rgb(32,74,135)">&quot;<span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-p">content</span>&quot;</span>:<span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-array"><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-toggle" \
style="border:1px solid transparent;color:rgb(164,0,0)">[</span><ol \
style="list-style-type:none;margin:0px;padding:0px 0px 0px 20px"></ol><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-toggle-end" \
style="color:rgb(164,0,0)">]</span></span></li></ul><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-toggle-end" \
style="color:rgb(114,159,207)">}</span>,</span></li><li><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-property" \
style="color:rgb(32,74,135)">&quot;<span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-p \
m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-collapsible">page0/page1</span>&quot;</span>:<span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-object"><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-toggle" \
style="border:1px solid transparent;color:rgb(114,159,207)">{</span><ul \
style="list-style-type:none;margin:0px;padding:0px 0px 0px 20px"><span><li><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-property" \
style="color:rgb(32,74,135)">&quot;<span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-p">ishidden</span>&quot;</span>:<span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-boolean" \
style="color:rgb(196,160,0)">false</span>,</li><li><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-property" \
style="color:rgb(32,74,135)">&quot;<span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-p">title</span>&quot;</span>:<span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-string" \
style="color:rgb(78,154,6)">&quot;Page 1&quot;</span>,</li></span><li><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-property" \
style="color:rgb(32,74,135)">&quot;<span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-p">content</span>&quot;</span>:<span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-array"><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-toggle" \
style="border:1px solid transparent;color:rgb(164,0,0)">[</span><ol \
style="list-style-type:none;margin:0px;padding:0px 0px 0px 20px"></ol><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-toggle-end" \
style="color:rgb(164,0,0)">]</span></span></li></ul><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-toggle-end" \
style="color:rgb(114,159,207)">}</span></span></li></ul><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-toggle-end" \
style="color:rgb(114,159,207)">}</span></span></li></ol><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail-toggle-end" \
style="color:rgb(164,0,0)">]</span></span></li></ul><div>    \
</div><div>WDYT?</div><div><br></div><div>Thanks,</div><div>Tanya</div><span><blockquote \
class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"><div dir="ltr"><blockquote class="gmail_quote" \
style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"><p><br></p></blockquote><p>Because It will give a \
clear separation between dashboard content and the pages' menu attributes. WDYT?</p> \
<p>  </p>Thanks,<br>Nisala<span \
</font></span></div>
</blockquote></span></div><span \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132HOEnZb"><font \
color="#888888"><br><br clear="all"><div><br></div>-- <br><div \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132m_-1049361891260101042gmail_signature"><div \
dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><span \
style="color:rgb(136,136,136);font-size:12.8px;background-color:rgb(255,255,255);font-family:&quot;trebuchet \
ms&quot;,sans-serif">Tanya Madurapperuma</span></div><div><span \
style="color:rgb(136,136,136);font-size:12.8px;background-color:rgb(255,255,255);font-family:&quot;trebuchet \
ms&quot;,sans-serif"><br></span></div><div><span \
style="color:rgb(136,136,136);font-family:&quot;trebuchet \
ms&quot;,sans-serif;font-size:12.8px">Associate Technical Lead,</span><br></div><span \
style="color:rgb(136,136,136);font-size:12.8px;background-color:rgb(255,255,255);font-family:&quot;trebuchet \
ms&quot;,sans-serif">WSO2 Inc. :  </span><a href="http://wso2.com/" \
style="color:rgb(17,85,204);font-size:12.8px;background-color:rgb(255,255,255);font-family:&quot;trebuchet \
ms&quot;,sans-serif" target="_blank">wso2.com</a><br \
style="color:rgb(136,136,136);font-size:12.8px;background-color:rgb(255,255,255);font-family:&quot;trebuchet \
ms&quot;,sans-serif"><span \
style="background-color:rgb(255,255,255);color:rgb(136,136,136);font-family:&quot;trebuchet \
ms&quot;,sans-serif;font-size:12.8px">Mobile :</span><span \
style="background-color:rgb(255,255,255);color:rgb(136,136,136);font-family:&quot;trebuchet \
ms&quot;,sans-serif;font-size:12.8px">  <a href="tel:+94%2071%20818%204439" \
value="+94718184439" target="_blank">+94718184439</a></span><div><font \
face="trebuchet ms, sans-serif" color="#888888">Blog :  </font><a \
href="http://tanyamadurapperuma.blogspot.com/" \
target="_blank">http://tanyamadurapperuma.bl<wbr>ogspot.com</a></div><div></div></div></div></div></div></div></div>
 </font></span></div></div>
</blockquote></div><br><br clear="all"><br>-- <br><div \
class="m_-3901463969124142610m_3138365828628261996m_-5593941822850965132gmail_signature" \
data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div \
dir="ltr"><div><div dir="ltr"><span><font color="#888888"><div><div \
dir="ltr"><div><b>Nisala Niroshana Nanayakkara,</b><br></div><div><span \
style="color:rgb(153,153,153)">Software Engineer</span></div><div><span \
style="color:rgb(153,153,153)"><span style="font-size:12.8000001907349px">Mobile | \
</span><a value="+94773500185" style="font-size:12.8000001907349px">+94 \
717600022</a></span><span style="color:rgb(102,102,102)"><br></span></div><div><span \
style="font-size:12.8000001907349px"><font color="#000000"><span \
style="color:rgb(153,153,153)">WSO2 Inc</span><font color="#888888"><span \
style="color:rgb(153,153,153)"> </span>|</font></font></span><span \
style="color:rgb(136,136,136);font-size:12.8000001907349px"> </span><a \
href="http://wso2.com/" style="color:rgb(17,85,204);font-size:12.8000001907349px" \
target="_blank">http://wso2.com/</a></div></div></div></font></span></div></div></div></div></div></div></div></div>
 </div>
</div></div><br></div></div><span>______________________________<wbr>_________________<br>
 Dev mailing list<br>
<a href="mailto:Dev@wso2.org" target="_blank">Dev@wso2.org</a><br>
<a href="http://wso2.org/cgi-bin/mailman/listinfo/dev" rel="noreferrer" \
target="_blank">http://wso2.org/cgi-bin/mailma<wbr>n/listinfo/dev</a><br> \
<br></span></blockquote></div><span><br><br clear="all"><div><br></div>-- <br><div \
class="m_-3901463969124142610m_3138365828628261996gmail_signature" \
data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div \
dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div \
dir="ltr"><font color="#500050">Nipuna Marcus</font><br><div \
style="font-size:12.8000001907349px"><font face="arial, helvetica, sans-serif" \
color="#000000"><b>Senior Software Engineer</b></font></div><div \
style="font-size:12.8000001907349px"><span \
style="color:rgb(136,136,136);font-size:12.8000001907349px">WSO2 Inc.</span><br \
style="color:rgb(136,136,136);font-size:12.8000001907349px"><a \
href="http://wso2.com/" style="color:rgb(17,85,204);font-size:12.8000001907349px" \
target="_blank">http://wso2.com/</a><span \
style="color:rgb(136,136,136);font-size:12.8000001907349px">  - &quot;lean .  \
</span><span style="color:rgb(136,136,136);font-size:12.8000001907349px">enterprise</span><span \
style="color:rgb(136,136,136);font-size:12.8000001907349px">  .  </span><span \
style="color:rgb(136,136,136);font-size:12.8000001907349px">middleware</span><span \
style="color:rgb(136,136,136);font-size:12.8000001907349px">&quot;</span><br></div><div \
style="color:rgb(80,0,80);font-size:12.8000001907349px">Mobile :  <a \
href="tel:+94%2071%20366%207906" value="+94713667906" target="_blank">+94 (0) 713 \
667906</a></div><div style="color:rgb(80,0,80);font-size:12.8000001907349px"><a \
href="mailto:nipunac@wso2.com" style="color:rgb(17,85,204)" \
target="_blank">nipunac@wso2.com</a></div></div></div></div></div></div></div></div></div></div></div></div>
 </span></div>
</blockquote></div><br><br clear="all"><br>-- <br><div \
class="m_-3901463969124142610gmail_signature" data-smartmail="gmail_signature"><div \
dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span><font \
color="#888888"><div><div dir="ltr"><div><b>Nisala Niroshana \
Nanayakkara,</b><br></div><div><span style="color:rgb(153,153,153)">Software \
Engineer</span></div><div><span style="color:rgb(153,153,153)"><span \
style="font-size:12.8000001907349px">Mobile | </span><a value="+94773500185" \
style="font-size:12.8000001907349px">+94 717600022</a></span><span \
style="color:rgb(102,102,102)"><br></span></div><div><span \
style="font-size:12.8000001907349px"><font color="#000000"><span \
style="color:rgb(153,153,153)">WSO2 Inc</span><font color="#888888"><span \
style="color:rgb(153,153,153)"> </span>|</font></font></span><span \
style="color:rgb(136,136,136);font-size:12.8000001907349px"> </span><a \
href="http://wso2.com/" style="color:rgb(17,85,204);font-size:12.8000001907349px" \
target="_blank">http://wso2.com/</a></div></div></div></font></span></div></div></div></div></div></div></div></div>
 </div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div \
class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div \
dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div \
dir="ltr"><div dir="ltr"><font color="#500050">Nipuna Marcus</font><br><div \
style="font-size:12.8000001907349px"><font color="#000000" face="arial, helvetica, \
sans-serif"><b>Senior Software Engineer</b></font></div><div \
style="font-size:12.8000001907349px"><span \
style="color:rgb(136,136,136);font-size:12.8000001907349px">WSO2 Inc.</span><br \
style="color:rgb(136,136,136);font-size:12.8000001907349px"><a \
href="http://wso2.com/" style="color:rgb(17,85,204);font-size:12.8000001907349px" \
target="_blank">http://wso2.com/</a><span \
style="color:rgb(136,136,136);font-size:12.8000001907349px">  - &quot;lean .  \
</span><span style="color:rgb(136,136,136);font-size:12.8000001907349px">enterprise</span><span \
style="color:rgb(136,136,136);font-size:12.8000001907349px">  .  </span><span \
style="color:rgb(136,136,136);font-size:12.8000001907349px">middleware</span><span \
style="color:rgb(136,136,136);font-size:12.8000001907349px">&quot;</span><br></div><div \
style="color:rgb(80,0,80);font-size:12.8000001907349px">Mobile :  +94 (0) 713 \
667906</div><div style="color:rgb(80,0,80);font-size:12.8000001907349px"><a \
href="mailto:nipunac@wso2.com" style="color:rgb(17,85,204)" \
target="_blank">nipunac@wso2.com</a></div></div></div></div></div></div></div></div></div></div></div></div>
 </div>



_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic