2016-08-24 5 views
0

루비 기반 Dashing 프레임 워크를 사용하여 대시 보드를 만들었습니다. 모두 잘 돌아가고있는 것처럼 보이지만 목록 위젯 중 하나의 배경색을 변경하고 싶습니다. mywidget) 목록의 값 중 하나를 기반으로합니다.Dashing 위젯의 배경색을 동적으로 변경합니다.

내 updatelist.rb 작업 파일이 현재 보이는 같은 :

Status; Good 
Active; No 
Duration; 1000 

난을 변경하고 싶습니다 :

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 = 녹색, Average = 노란색, Poor = 빨간색의 값에 따라 목록 위젯의 배경색.

어떻게하면됩니까? 커피 스크립트에 무언가를 추가하는 것은 명백한 해결책 인 것 같지만 그것을 성취 할 방법을 찾을 수 없습니다.

+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

관련 문제