Изменение css по данным

Я делаю виджет с dashing.io и хотел бы изменить задания jenkins в соответствии с цветом, который я получаю в своем файле json (который я получаю из Jenkins API).

то есть: задание завершено, я получаю значение цвета «синий» из моего файла json, и я хочу, чтобы текст был синим на «виджете jenkins» на моей панели инструментов.

Проблема: я действительно не знаю, как получить данные из моего json-файла в моем сценарии coffeescript. Также я не знаю, как изменить css.

Мой файл json выглядит следующим образом:

{
    "assignedLabels" : [
      {

      }
    ],
    "mode" : "NORMAL",
    "nodeDescription" : "blabla",
    "nodeName" : "",
    "numExecutors" : blabla,
    "description" : blabla,
    "jobs" : [
      {
        "name" : "JOB_NAME",
        "url" : "MY_JOB_URL",
        "color" : "blue"
      }
    ]
}

Вот мой код виджета:

require 'net/http'
require 'json'
require 'time'

JENKINS_URI = URI.parse("jenkins_url")

JENKINS_AUTH = {
  'name' => 'user',
  'password' => 'pwd'
}

def get_json_for_master_jenkins()
    http = Net::HTTP.new(JENKINS_URI.host, JENKINS_URI.port)
    request = Net::HTTP::Get.new("/jenkins/api/json?pretty=true")

    if JENKINS_AUTH['name']
        request.basic_auth(JENKINS_AUTH['name'], JENKINS_AUTH['password'])
    end
    response = http.request(request)
    JSON.parse(response.body)
end
# the key of this mapping must be a unique identifier for your job, the according value must be the name that is specified in jenkins

SCHEDULER.every '100s', :first_in => 0 do |job|
    thom = get_json_for_master_jenkins()
send_event('master_jobs', 
    jobs: thom['jobs'][0..4],
    colors:thom['jobs']['color']
)

end

Не могли бы вы, ребята, помочь мне? Я действительно новичок в этом, постарайтесь сделать это проще, пожалуйста.


person EZPK    schedule 24.09.2014    source источник
comment
Не могли бы вы опубликовать код, который вы уже сделали?   -  person user3241019    schedule 24.09.2014
comment
Вот, спасибо за заботу :)   -  person EZPK    schedule 24.09.2014


Ответы (1)


Хорошо, кажется, я нашел ответ.

Jenkins построен на batman.js, и есть способ взаимодействия с DOM.

Я использую предоставленный атрибут batman.js data-bind-class в моем HTML-виджете следующим образом:

.blue{

    #CSS stuff goes here

}
person EZPK    schedule 24.09.2014