GithubHelp home page GithubHelp logo

carbon-dashboards's Introduction

WSO2 Dashboard Component


Branch Build Status
master Build Status

Getting Started

Please follow the below steps to setup the WSO2 Dashboard Component.

  1. Clone and build carbon-dashboards repository.
  2. Clone and build the carbon-ui-server repository available here ( Carbon-UI-Server - https://github.com/wso2/carbon-ui-server )
  3. Install Dashboard Core API Feature and Dashboard Portal Feature in to distribution available in carbon-ui-server.

You can add following properties to pom file available in Carbon-UI-Server/tests/distribution directory.

        <dependency>
            <groupId>org.wso2.carbon.dashboards</groupId>
            <artifactId>org.wso2.carbon.dashboards.api.feature</artifactId>
            <version>4.0.0-SNAPSHOT</version>
            <type>zip</type>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon.dashboards</groupId>
            <artifactId>org.wso2.carbon.dashboards.portal.feature</artifactId>
            <version>4.0.0-SNAPSHOT</version>
            <type>zip</type>
        </dependency>
        <feature>
            <id>org.wso2.carbon.dashboards.api.feature</id>
            <version>4.0.0-SNAPSHOT</version>
        </feature>
        <feature>
            <id>org.wso2.carbon.dashboards.portal.feature</id>
            <version>4.0.0-SNAPSHOT</version>
        </feature>
  1. Unzip the distribution and run the server. You can access the dashboard component from https://localhost:9292/analytics-dashboard/ or http://localhost:9090/analytics-dashboard/

License

Carbon dashboards is available under the Apache 2 License.

How To Contribute

Contact Us

WSO2 developers can be contacted via the mailing lists:

carbon-dashboards's People

Contributors

anoukh avatar anugayan avatar charukak avatar dilini-muthumala avatar erangatl avatar gimantha avatar gowthamyvaseekaran avatar hasiniravindi avatar heshansudarshana avatar irindu avatar ksdperera avatar kts-desilva avatar lakshanss avatar lasanthas avatar minoli avatar minudika avatar mohanvive avatar nisalaniroshana avatar niveathika avatar pcnfernando avatar ramindu90 avatar raveensr avatar ruks avatar ruwiniwj avatar senthuran16 avatar suhothayan avatar tanyam avatar this avatar tishan89 avatar wso2-jenkins-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

carbon-dashboards's Issues

Remove sortable library and use jQuery Draggable/Droppable instead

We are using Sortable library to manage widget listing. Apart from listing drag/drop capability is also coming from this lib. It should be possible to remove this lib and use jQuery Draggable/Droppable instead

https://github.com/wso2/carbon-dashboards/blob/uuf-portal/components/org.wso2.carbon.dashboards.designer/src/main/fragments/dashboard-designer/public/js/common/Sortable.js

            Sortable.create(document.getElementById("gadgetList"), {
                group: {
                    name: 'tile__list',
                    pull: 'clone',
                    put: false
                },
                animation: 150,
                sort: true
            }); 

Add multiple page support

The dashboard designer should have capability to create multiple pages for a single dashboard. The view should also provide navigation between pages as well.

Update ReadMe

The current readme is out-dated. It needs to be updated with information as what is carbon-dashboard, etc..

Expose dashboard's APIs per contexts

Currently dashboard related APIs are exposed in the designer component. But we need to expose these apis from both designer and view component.

Left panel doesn't stay fixed when scrolled

Left panel which contains Gadgets, Add Block and Pages leaves the page when scrolled down.
Ex: If a user wants to add a gadget to a block which in the very bottom of the page, that cannot be done.

Move widgets into common UUF component

Currently dashboard widgets are in the designer component. We should move these widgets into common UUF component and use it. Since they are sample widgets, we have to name this component as "sample store" or etc. Moreover we have to change current widgetInfoProvider into sample bundle and make a separate sample feature to install it.

Add Sharable dashboard support

User should be able to share a dashboard by providing a URL. The current state of the dashboard needs to be persisted once the other users viewing the dashboard.

CEP - getDatasources

I'm trying to create a new gadget in the dashboard 'create a gadget' feature. I've configured a datasource in CEP and am getting an error message back "No datasources available to create a gadget. Please create a datasource to proceed.". Looking at rt.jag it looks as though you are searching for eventPublishers that are of type ui. This doesn't look right to me. Please help.

Use UUFClient in dashboard view

Currently dashboard view does not use UUFClient in order to render widgets and widget boxes. We need to use UUFClient in dashboard view and remove hard coded html segments.

Introduce theme support using GoldenLayout

Currently, we do not have the theme support in react-based dashboard component. We need to provide the inbuilt dark-light theme support using available css of GoldenLayout framework.

Externalize database scripts

Currently the database scripts are hard-coded. We need to externalize these database scripts, hence it is possible to maintain separate sets of queries for each database types.

Use existing libraries available in UUF-Commons

Currently carbon-dashboards uses separate libraries for jquery, wso2theme and etc. But these libraries are available from UUF level. So we need to use this libraries in carbon-dashboards

Properly copy samples to the distribution

With the current implementation the sources of the samples are resides in /samples while all the transpiled sample widgets are copied into the portal feature. This is not the correct implementation since the keeping the transpiled JS files are similar to keeping compiled class files along with the sources.

Therefore this needs to be rectified by providing a proper way to compile and deploy the samples by user or the component compile time.

Save widget states for sharing dashboards

A user should be able to share a dashboard by copying the dashboard URL.

In this case the problem is that the state (drill-down levels, user selections) are not getting shared with the other party. Therefore there should be a mechanism to store the current state of the dashboard when sharing.

Modify the dashboard.json to place widgets inside blocks

Currently dashboard.json maps widgets with each block using the block ID as follows.

{
  ...
  "blocks": [
    {
      "id": "3f64fcc44bafcd84a593072c6c9bdbd603",
      "x": 0,
      "y": 0,
      "width": 6,
      "height": 4
    },
    ...
  ],
  "widgets": {
    "3f64fcc44bafcd84a593072c6c9bdbd603": {
        ...
    },
    ...
  },
  ...
}

Instead it is better and cleaner if we can remove this mapping and place the widget descriptor within the block itself as follows.

{
  ...
  "blocks": [
    "3f64fcc44bafcd84a593072c6c9bdbd603": {
      "x": 0,
      "y": 0,
      "width": 6,
      "height": 4,
      "widget": {
        ...
      }
    },
    ...
  ],
  ...
}

Revamp dashboard UI using Material UI

Currently the dashboard UI is based on previous dashboard server user interfaces. This uses Bootstrap, jQuery and Theme WSO2 heavily. This needs to be fixed and the new user interfaces needs to be re-written using Material UI.

Intial implementation for dashboard designer

Currently there is no working implementation in dashboard designer. So we need to provide working solution for dashboard designer which will cover basic use cases of Analytics & CEP

Widget cannot be added to a newly added block in a page

Steps to reproduce

  1. Create a dashboard and add a page with a desired layout
  2. Add a new block to the page from left panel
  3. Add a widget to the newly added block (Not to an existing block)
  4. Widget doesn't get rendered until a page refresh

Implement dashboard component with React

The following features should be available with the first milestone.

  • Dashboard listing (This 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

Remove the dashboard database from portal feature

Currently, we are packing dashboard database with sample dashboard and copy it from the portal feature. We need to do the samples in a proper way and remove the dashboard database from portal feature.

Add library support from uuf-commons

Currently carbon-dashboards keeps several libraries such as gridstack, jquiry-ui, underscore within the repo itself. We need to move these libraries into carbon-uuf-commons repo and use it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.