2016-08-24 85 views
0

我已经构建了一个使用基于ruby的Dashing框架的仪表板,并且所有部分似乎都运行良好,但我希望能够更改我的List小部件之一的背景颜色( mywidget)基于列表中的一个值。动态更改Dashing小部件的背景颜色

我updatelist.rb工作文件目前的样子:

hashdata = Hash.new({ value: 0 }) 

SCHEDULER.every '10s' do 

    File.open('xxx.txt').each do |line| 
    field = line.split(;).first 
    value = line.split(;).last 

    if ['Status', 'Active', 'Duration].include? field 
    hashdata[field] = { label: field, value: value } 
    end 
    end 
    send_event('mywidget', { items: hashdata.values }) 
end 

的文件时,它读取(xxx.txt)的格式如下:

Status; Good 
Active; No 
Duration; 1000 

我想改变基于状态值的列表小部件的背景颜色,即好=绿色,平均=黄色,差=红色。

我该怎么做?在咖啡脚本中添加一些东西似乎是显而易见的解决方案,但我看不到如何实现它

+0

小心使用颜色来表示状态/状态。色盲可以影响用户与页面交互的方式,特别是与整体页面颜色相结合时。 –

回答

1

您对在咖啡脚本中需要代码是正确的。我建议如下:

class Dashing.List extends Dashing.List 

color:() -> 
    data = @get('items') 
    status = # code to process color from your data (I'm not sure exactly your format) 
    switch status 
    when "Good" then "#33cc33" # green 
    when "Average" then "#ffff00" # yellow 
    when "Poor" then "#ff0000" # red 
    else "#000000" 

onData: (data) -> 
    # change the background color every time that new data is sent 
    $(@get('node')).css 'background-color', @color() 
+0

谢谢@Dallan - 工作过! – Mark