IMHO it is better to keep the layout information along with the page contents in the dashboard.json file. Separating those information into another set of files will only complex the entire flow.
In order to reduce the bulkiness of the dashboard.json what we can do is remove all the unnecessary GoldenLayout properties from the page configuration section. We can add them at the code level on runtime. Only the limited set of those properties which the users really need to manipulate should goes along with the page content. *Lasantha Samarakoon* | Software Engineer WSO2, Inc. #20, Palm Grove, Colombo 03, Sri Lanka Mobile: +94 (71) 214 1576 Email: [email protected] Web: www.wso2.com lean . enterprise . middleware On Tue, Aug 29, 2017 at 11:55 AM, Nisala Nanayakkara <[email protected]> wrote: > Hi Nipuna, > > We do not keep layout information separately in dashboard JSON as in the > previous version. Since layouting is handled by the GoldenLayout framework, > we keep the dashboard content and layouting information in the "content" > object of dashboard JSON. Since this is somewhat bound to the GoldenLayout > framework, it is bit difficult to separate the layout information into a > separate file. > > Thanks, > Nisala > > On Tue, Aug 29, 2017 at 10:50 AM, Nipuna Chandradasa <[email protected]> > wrote: > >> Hi Nisala, >> >> In previous dashboard.json we had a problem like we have bulky >> information(ex:- layout) inside the same JSON. So i assume inside the >> content attribute which holds the page contents we are going to keep these >> information? if it Is there's a plan to move these information to a >> separate file? >> >> Other than that i'm +1 for above mentioned JSON format. >> >> Thank you, >> >> On Tue, Aug 29, 2017 at 9:44 AM, Nisala Nanayakkara <[email protected]> >> wrote: >> >>> Hi Udara, >>> >>> Please find my comments inline. >>> >>> Assume we have a page2, which is going to be listed under page0>page1. >>> So are we going to have a object like "page0/page1/page2" : {} >>> ? This bit is not clear in the above. >>> >>> Yes. we are going to keep an object as mentioned above. >>> >>> Also better if you can explain what is a *page resource URL* so others >>> can understand. >>> >>> It simply means the resource path of the page URL. Ex:- >>> "page0/page1/page2" >>> >>> { >>> "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", >>> >>> Yes. We are going to have a dashboard to dashboard relationship. As an >>> example, if someone personalizes a dashboard and save it, we are going >>> maintain its original dashboard id as the parentId. >>> >>> Thanks, >>> Nisala >>> >>> >>> On Tue, Aug 29, 2017 at 8:37 AM, Udara Rathnayake <[email protected]> >>> wrote: >>> >>>> Hi Nisala, >>>> >>>> Assume we have a page2, which is going to be listed under page0>page1. >>>> So are we going to have a object like "page0/page1/page2" : {} >>>> ? This bit is not clear in the above. >>>> >>>> Also better if you can explain what is a *page resource URL* so >>>> others can understand. >>>> >>>> >>>> On Mon, Aug 28, 2017 at 11:26 PM, Nisala Nanayakkara <[email protected]> >>>> 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", >>>>>> "description": "Lorem ipsum dolor sit amet DAS", >>>>>> "owner": "admin", >>>>>> "lastUpdatedBy": "admin", >>>>>> "createdTime": 1502820091111, >>>>>> "lastUpdatedTime": 1502820091112, >>>>>> "isShared": false, >>>>>> "parentId": "1", >>>>>> >>>>> Also what is the use of parentId here? >>>> >>>> Are we going to have any dashboard to dashboard relationship? >>>> >>>>> "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": {} >>>>>> } >>>>>> ] >>>>>> } >>>>>> >>>>> 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/ >>>>> >>>>> _______________________________________________ >>>>> Dev mailing list >>>>> [email protected] >>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>> >>>>> >>>> >>>> >>>> -- >>>> Regards, >>>> UdaraR <http://bit.ly/udarakr> >>>> >>> >>> >>> >>> -- >>> *Nisala Niroshana Nanayakkara,* >>> Software Engineer >>> Mobile | +94 717600022 >>> WSO2 Inc | http://wso2.com/ >>> >>> _______________________________________________ >>> Dev mailing list >>> [email protected] >>> 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> >> [email protected] >> > > > > -- > *Nisala Niroshana Nanayakkara,* > Software Engineer > Mobile | +94 717600022 > WSO2 Inc | http://wso2.com/ > > _______________________________________________ > Dev mailing list > [email protected] > http://wso2.org/cgi-bin/mailman/listinfo/dev > >
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
