Giter Club home page Giter Club logo

cilantro's People

Contributors

bruth avatar hassanns avatar jeffmax avatar murphyke avatar naegelyd avatar robromano avatar ryanjohara 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

Watchers

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

cilantro's Issues

Provide a quick-switch menu for reports

An extension of #2, this could be a drop-down menu all of saved reports and an option to start a new report (clears the session reference to the last report). When clicked, it will switch to the selected report.

One caveat to this is ensuring any unsaved changes to the current report are taken care of. An additional prompt may be necessary.

Move git submodule outside of static folder

Since the static/ directory gets collected by the project, it may be copying over an excessive number of source files. Also, now that we are using a Makefile, during normal installation via the setup.py file, a make command can be called to do all the dirty work of copy/building/compiling the static files as necessary.

UX of altering saved reports

So there are two schools of thought here:

  • document-based - every change made to a saved report is recorded, but not immediately applied to the original report
    • pro - a user can revert to the report's pristine state in case they are unsatisfied with their changes
    • con - this requires an explicit action by the user to persist and unsaved changed made to the report
  • WYSIWYG - any changes to the state of the currently active saved report will be applied and saved immediately.
    • pro - this, of course, does not require any explicit action by the user to save changes.
    • con - if a user performs a hefty destructive action that significantly alters the report's state (e.g. remove all data columns), there is no way to revert the change.

Ultimately, the latter experience is preferred, but only if there is a way to undo changes actions.

Clickable titles for graphs not obvious

In cases where the graph is too small to click on the actual bars, the numbers should be more obviously clickable (e.g. by changing the cursor to a pointer and by adding a hover color). Once selected they should change color (and possibly become bold??).

Break out SCSS into it's own repository

In order to make use of all the wonderful SCSS and various extensions that exist in a project, it needs to be broken out in it's own thing so if a project chooses to make use of mixins and such in their own SCSS code, this is available. This also serves as an avenue for creating Cilantro themes and integrating them into a project.

Update concept interface internals to use Pub/Sub

conceptmanager.js and criteriamanager.js (and fiends) should utilize the central pub/sub hub, App.hub. This will increase performance (no DOM bubbling) and make it consistent with the rest of the modules.

Use App.hub.publish(<topic>, arg1, arg2, ...) to publish content and App.hub.subscribe(<topic>, <handler>) to add a subscriber. The order does not matter since all late subscribers will be caught up in state once subscribed.

Display default view for zero-length distributions

Currently if a concept is public, but contains no data, it still attempts to render and ends up looking like a bug. A catch-all view for lacking data should be implemented for a nice representation.

Reorganize modules to be type focused

Currently modules are focused around each page which leads to fragmentation of models, collections and views for the major data elements e.g. Report, Scope, Perspective.

coffee/
    pages/
        workspace/
            main.coffee
        # etc..
    utils/
         log.coffee
         ...
    types/
         scope/
             models.coffee
             views.coffee
        # etc..

Each page will be responsible for implementing their own views, but should extend the types' views where possible.

Move external libraries to vendor directory, add git submodules

To keep up with the latest and greatest versions of external libraries, Git submodules can be used to keep a reference to the origin repositories. They can be scripted to update to the latest stable tag and copied from the submodule to the vendor directory.

Add app-level message support across pages

Add a subscriber that handles queuing up and rendering messages published by various objects. To prevent message/notification fatigue, only one (prominent) message should be shown at any given time e.g. "Report X has unsaved changes".

For example, all of the session objects may publish a message when they have unsaved changes.

Add per-report redirect

/report/31 โ†’ /report

The logic should simply reset the session report to the state of the requested report.

Collapse namespaced modules for types

The directory structure for types look like this:

types/
    domain/
        models.coffee
        views.coffee

My proposal is to collapse the output of each submodule in a main.coffee which allows for only needing to import a single module for a given type.

types/
    domain/
        main.coffee
        models.coffee
        views.coffee

Add idle timer to stop/restart polling

With the new polling features, the session never expires. After a certain amount of inactivity the polling should stop which allows for the session to timeout as normal. If the activity is detected, the polling should begin again.

Enhance Report "unsaved changes" message

The button needs to send a PUT of the current state of the session report to the reference URL. This will return the updated state of the report (and thus having no differences with the session) and will trigger the message to be dismissed (via change:has_changed.

The second part is to allow for choosing a new name for this changed report. Clicking on the "give it a new name" link in the message could slide down a input box for entering a new name. On enter or if the user clicks "Save Report", it will save changes (or create a new report).

Race condition with 'report/revert' topic

This may not be a race condition in JavaScript, but rather subsequent requests are not yet uncached on the server. It may be worth looking into using a single resource for the session object to remove the need to reference each component.

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.