Code Monkey home page Code Monkey logo

shinydash's People

Contributors

jcheng5 avatar midraed avatar trestletech avatar wch 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

shinydash's Issues

Implement widget CSS class updates

Support changing the "state" of a widget via the setting of the class attribute of the widget, which can then by styled using custom CSS in each app.

Decide on and Formalize message vs. traditional reactive

Decide on the model for updating widgets for which the entire state isn't sent per message. Winston proposes that such updates should happen over a customMessage, as the traditional reactive model should be reserved for widgets whose entire state can be determined by the most recent message sent, which would likely not be the case for something like a line chart.

However, there would be advantages to encapsulating each update in a formal reactive, including being able to any element in the widget with each update. For instance, if we were to fit a spline to the data rather than use a rolling average like in his example, the entire state (of the spline) would need to be updated each tick. Similarly, if we implement #7, we may want to populate the whole widget with a single message, rather than sending each data point as a separate customMessage.

Flush out "Settings" Concept

Allow widgets to have a "settings" panel which would allow users to set (and persist) some data.

See the UI design on iPhone apps that have an "info" button that flips the app over to be configured.

AC:

  • Must persist between sessions
  • Should be implemented to handle the weather zip code
  • Must be hidden when not editing settings.

Nice!

This looks really nice. I am working on a similar package, named dashifyr to provide a modular infrastructure for dashboards based on Shiny.

http://github.com/ramnathv/dashifyr

We should certainly talk at some point and exchange notes.

PS. Apologies for posting it as an issue here.

Hide legend until first data is loaded

Required to provide initial series for data which should be hidden, even if legend is visible, until the first data update, at which point we can display the series.

Move Init JS to output binding

Move the initialization script from the UI-side functions to the Shiny output binding initialization functions like Winston had the Gage output initially.

Open JustGage API

Should be able to specify min, max, and "units" keyword.

Would be nice if also had colors, etc.

Allow overriding styles.css

At the moment, the styles defined in ShinyDash (like body) seemed to override any other css provided. I was wondering if it could be done so that includeCSS could override the ShinyDash css?

Implement ReactiveFile

Create a reactive() wrapper which can detect changes to a file. Ideally, this could be implemented using an integration like inotify to get real reactivity. This may be difficult to make consistent across R's supported operating systems, however.

We might be better off polling the file for changes to the modified time, size, and/or hash to check for changes then invalidate the relevant fields.

ShinyDash refresh

Hi,

I'm trying to use ShinyDash on my shiny server on CentOS. My problem is that sometimes it works fine and i get my app working on my localhost and sometimes it doesn't (looks like every 5 minutes, it stops for 5minutes).
When it doesn't work, it says something like: The connection was refreshed.

installing ShinyDash with Shiny Server

Hi,

I'm trying to download ShinyDash on my shiny server on CentOS. My problem is that with shiny server I have to install the package with root privilege so I have to do it through the terminal. When I do that, I get this error:

Error in contrib.url(repos, type) :
trying to use CRAN without setting a mirror

What should I do ?

Thanks.

Changing the gauge colors

How can I reverse the colors? When the gauge is low I'd like it to be green instead of red, and vice versa. Thanks in advance for your help with my rookie question! I'm using the built-in gaugeOutput function in R that I've pasted below. Unfortunately I don't know Java, can only code in R - do you know if/how I could modify this function to pass in the "levelColors" argument?

function (outputId, title = "Title", min = 0, max = 1, units = "",
width = "200px", height = "200px", value = min)
{
tagList(singleton(tags$head(initResourcePaths(), tags$script(src = "shinyDash/justgage/justgage.1.0.1.min.js"),
tags$script(src = "shinyDash/justgage/raphael.2.1.0.min.js"),
tags$script(src = "shinyDash/justgage/justgage_binding.js"))),
tags$div(id = outputId, class = "justgage_output", style = paste("width:",
validateCssUnit(width), ";", "height:", validateCssUnit(height),
";")), tags$script(paste("GageOutput('", outputId,
"',\n '", title, "',\n '",
min, "',\n '", max, "',\n '",
units, "',\n '", validateCssUnit(width),
"',\n '", validateCssUnit(height),
"',\n '", value, "')", sep = "")))
}

Ensure uniqueness of page IDs

weatherWidgetOutput.R

Using "id" attribute for the sub-elements precludes being able to have several of these on a page

Create Reactive DB Wrapper

Create a reactive wrapper around some of the Database connectivity in R that would allow the data in the widgets to be pulled in from a database in a reactive-like fashion.

Ideally we could leverage triggers to get real reactivity. We could, of course, fall-back to a reactive wrapper around a polling mechanism using invalidateLater().

Persist Layout

Persist the layout in Gridster by saving the state to a cookie upon a change. That way the layout of the grid will survive a refresh.

Make html widget outputs more robust.

htmlWidgetOutputBinding:

  • Watch out for null/"" values, presumably these should be allowed
  • Heuristic ([\d.]+) detection of numeric values seems fragile; maybe NumericTicker should be opt-in (e.g. special class type or something)

Implement Caching

It would be nice if time-series widgets (such as a line chart) weren't empty when the page initially loaded, but rather had the previous n values available to them immediately.

We may get into some tricky shiny details, however, if we want this data to be accessible for an application which may have "expired." We'd need to keep the application from suspending even if there have been no users recently.

Support rickshaw scatterplots

Should be as simple as adjusting the renderer argument, but all of the points are currently being rendered along the y-axis. May involve debugging Rickshaw.

Problem running ShinyDash - could not find function "init"

Installed ShinyDash, also Shiny 0.6.0.99. Trying to run the example in my server with Shiny-server, so I copied ui.R and server.R from ShinyDash Example.
But im getting ERROR: could not find function "init" when pointing to localhost:3838.

If i run ui.R in R im getting the same error, specifically when using function "gridster". As in :
gridster(tile.width = 250, tile.height = 250, ... ...

Do you have any tips?

Create Bar Chart Widget

Create a widget capable of plotting bar graphs.

Will want to consider features including:

  • Horizontal or Vertical presentation
  • Stacked bar charts?
  • Named legends.

Update Docs

Flush out Readme with descriptions of all widgets, make sure all examples in Roxygen are current.

Implement Line Graph Widget

Re-implement the line graph widget in a more Open-Source-friendly library than HighCharts. Features to consider include:

  • Arbitrarily spaced points (i.e. specify a point on the x axis)
  • Auto zooming and spanning
  • automatic forecasting/regression
  • Refit spline across entire graph for each update
  • Load the past n points into the graph on load (a la #7)
  • Line graph
  • bar plot
  • Area chart
  • Stacked area chart
  • Scatter plot
  • multiple named series
  • Labeled axes with x-axis as time
  • Non-time X axes.
  • Implement server-side function
  • Interactivity on hover/click.
  • Legend

Clean up package dependencies

Current process of explicitly loading XML and httr in ui.R is sloppy and should be handled by ShinyDash internally. For some reason. was working locally, but wasn't working at all on Spark.

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.