Created
December 4, 2018 06:38
-
-
Save foamdino/05cbb7c0ec430dcb154d3ee77b351d81 to your computer and use it in GitHub Desktop.
Coffeescript for "hot meter" dashboard widget
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class Dashing.Hotmeter extends Dashing.Widget | |
| @accessor 'value', Dashing.AnimatedValue | |
| getMeterColour: (stage) -> | |
| return switch | |
| when stage == 0 then "#88C100" | |
| when stage == 1 then "#88C100" | |
| when stage == 2 then "#FABE28" | |
| when stage == 3 then "#FF8A00" | |
| else "#FF003C" | |
| setMeterColour: (value) -> | |
| node = $(@node) | |
| cool = parseInt node.data "cool" | |
| warm = parseInt node.data "warm" | |
| level = switch | |
| when value <= cool then 0 | |
| when value >= warm then 4 | |
| else | |
| bucketSize = (warm - cool) / 3 # Total # of colours in middle | |
| Math.ceil (value - cool) / bucketSize | |
| dialColour = @getMeterColour(level) | |
| $(@node).find(".meter").val(value).trigger('configure', {"fgColor": dialColour}); | |
| constructor: -> | |
| super | |
| @observe 'value', (value) -> | |
| $(@node).find(".meter").val(value).trigger('change') | |
| @setMeterColour(value) | |
| ready: (data) -> | |
| Dashing.debugMode = true | |
| meter = $(@node).find(".meter") | |
| meter.attr("data-bgcolor", meter.css("background-color")) | |
| meter.attr("data-fgcolor", meter.css("color")) | |
| meter.knob() | |
| node = $(@node) | |
| onData: (data) -> | |
| @setMeterColour(data.value) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment