summaryrefslogtreecommitdiff
path: root/widgets/jenkins_build_status/jenkins_build_status.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/jenkins_build_status/jenkins_build_status.coffee')
-rw-r--r--widgets/jenkins_build_status/jenkins_build_status.coffee28
1 files changed, 28 insertions, 0 deletions
diff --git a/widgets/jenkins_build_status/jenkins_build_status.coffee b/widgets/jenkins_build_status/jenkins_build_status.coffee
new file mode 100644
index 0000000..d7d8630
--- /dev/null
+++ b/widgets/jenkins_build_status/jenkins_build_status.coffee
@@ -0,0 +1,28 @@
+class Dashing.JenkinsBuildStatus extends Dashing.Widget
+
+ lastPlayed: 0
+ timeBetweenSounds: 300000
+
+ onData: (data) ->
+ if data.failed
+ $(@node).find('div.build-failed').show()
+ $(@node).find('div.build-succeeded').hide()
+ $(@node).css("background-color", "red")
+
+ if 'speechSynthesis' of window
+ @playSoundForUser data.failedJobs[0].value if Date.now() - @lastPlayed > @timeBetweenSounds
+ else
+ $(@node).find('div.build-failed').hide()
+ $(@node).find('div.build-succeeded').show()
+ $(@node).css("background-color", "#12b0c5")
+
+ playSoundForUser: (user) ->
+ @lastPlayed = Date.now()
+ texts = ["#{user} has broken the build.", "The build is broken by #{user}", "#{user} is great, but lacks some programming skills", "Oops, I did it again."]
+ textNr = Math.floor((Math.random() * texts.length));
+ @playSound texts[textNr]
+
+ playSound: (text) ->
+ msg = new SpeechSynthesisUtterance(text)
+ msg.voice = speechSynthesis.getVoices()[0]
+ speechSynthesis.speak msg \ No newline at end of file