dashing-contrib 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -2
- data/lib/dashing-contrib/assets/widgets/switcher/switcher.coffee +101 -0
- data/lib/dashing-contrib/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 64ef000ef09364cdc1fbfb35a9b15f08361500bf
|
4
|
+
data.tar.gz: e49c3b4c7787815e51240e235851edbce26278d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77815a412ae3ec39ce3584fd1c8ba84c54d3ec0669e9964d219130d881f111b819a83978575136d09b977ef9a2288c5d25ead52e210fe852f0dee0c65bca9ae5
|
7
|
+
data.tar.gz: 2a1d4d7d016078504f52d22a4a65147f03a3167b03cdc8976c42c9b051be49be41462175072867efddf46f91cd6af903bc6b02042e443e242076f3cc09c57258
|
data/README.md
CHANGED
@@ -10,14 +10,15 @@ This project is an extension to Shopify's Dashing. Including this rubygem you wi
|
|
10
10
|
* Built-in jobs are only a couple of lines implementation, no repetitive copy and paste
|
11
11
|
* Existing secret parameters is automatically loaded from `.env` file
|
12
12
|
* All jobs have a final state (ok, warning, critical)
|
13
|
-
*
|
13
|
+
* Rest API to get overall state summary
|
14
|
+
* Rest API to trigger save history
|
14
15
|
|
15
16
|
Read each individual widget documentation to use dashing-contrib built-in widgets after the installation steps.
|
16
17
|
|
17
18
|
## Installation
|
18
19
|
Add this line to your Dashing's dashboard Gemfile:
|
19
20
|
|
20
|
-
gem 'dashing-contrib', '~> 0.1.
|
21
|
+
gem 'dashing-contrib', '~> 0.1.2'
|
21
22
|
|
22
23
|
Update dependencies:
|
23
24
|
|
@@ -45,6 +46,7 @@ Now you will be able to use the following widgets, click to see individual docum
|
|
45
46
|
* [Pingdom Uptime](https://github.com/QubitProducts/dashing-contrib/wiki/Widget:-Pingdom-Uptime)
|
46
47
|
* [Kue Status](https://github.com/QubitProducts/dashing-contrib/wiki/Widget:-Kue-Status)
|
47
48
|
* [Nagios List](https://github.com/QubitProducts/dashing-contrib/wiki/Widget:-Nagios-List)
|
49
|
+
* [Switcher](https://github.com/QubitProducts/dashing-contrib/wiki/Widget:-Switcher)
|
48
50
|
* Dashing State (global alert if any widget is under critical state)
|
49
51
|
|
50
52
|
## dotenv
|
@@ -0,0 +1,101 @@
|
|
1
|
+
# Switcher widget written by Juha Mustonen / SC5
|
2
|
+
|
3
|
+
# Switches (reloads to another address) the dashboards in periodic manner
|
4
|
+
# <div id="container" data-switcher-interval="10000" data-switcher-dashboards="dashboard1 dashboard2">
|
5
|
+
# <%= yield %>
|
6
|
+
# </div>
|
7
|
+
#
|
8
|
+
class DashboardSwitcher
|
9
|
+
constructor: () ->
|
10
|
+
@dashboardNames = []
|
11
|
+
# Collect the dashboard names from attribute, if provided (otherwise skip switching)
|
12
|
+
names = $('[data-switcher-dashboards]').first().attr('data-switcher-dashboards') || ''
|
13
|
+
if names.length > 1
|
14
|
+
# Get names separated with comma or space
|
15
|
+
@dashboardNames = (name.trim() for name in names.sub(' ', ',').split(','))
|
16
|
+
|
17
|
+
start: (interval=60000) ->
|
18
|
+
self = @
|
19
|
+
@maxPos = @dashboardNames.length - 1
|
20
|
+
|
21
|
+
# Skip switching if no names defined
|
22
|
+
if @dashboardNames.length == 0
|
23
|
+
return
|
24
|
+
|
25
|
+
# Take the dashboard name from that last part of the path
|
26
|
+
pathParts = window.location.pathname.split('/')
|
27
|
+
@curName = pathParts[pathParts.length - 1]
|
28
|
+
@curPos = @dashboardNames.indexOf(@curName)
|
29
|
+
|
30
|
+
# If not found, default to first
|
31
|
+
if @curPos == -1
|
32
|
+
@curPos = 0
|
33
|
+
@curName = @dashboardNames[@curPos]
|
34
|
+
|
35
|
+
# Start loop
|
36
|
+
@handle = setTimeout(() ->
|
37
|
+
# Increase the position or reset back to zero
|
38
|
+
self.curPos += 1
|
39
|
+
if self.curPos > self.maxPos
|
40
|
+
self.curPos = 0
|
41
|
+
|
42
|
+
# Switch to new dashboard
|
43
|
+
self.curName = self.dashboardNames[self.curPos]
|
44
|
+
window.location.pathname = "/#{self.curName}"
|
45
|
+
|
46
|
+
, parseInt(interval, 10))
|
47
|
+
|
48
|
+
|
49
|
+
# Switches (hides and shows) elements within on list item
|
50
|
+
# <li switcher-interval="3000">
|
51
|
+
# <div widget-1></div>
|
52
|
+
# <div widget-2></div>
|
53
|
+
# <div widget-3></div>
|
54
|
+
# </li>
|
55
|
+
#
|
56
|
+
# Supports optional switcher interval, defaults to 5sec
|
57
|
+
class WidgetSwitcher
|
58
|
+
constructor: (@elements) ->
|
59
|
+
@$elements = $(elements)
|
60
|
+
|
61
|
+
start: (interval=5000) ->
|
62
|
+
self = @
|
63
|
+
@maxPos = @$elements.length - 1;
|
64
|
+
@curPos = 0
|
65
|
+
|
66
|
+
# Show only first at start
|
67
|
+
self.$elements.slice(1).hide()
|
68
|
+
|
69
|
+
# Start loop
|
70
|
+
@handle = setInterval(()->
|
71
|
+
# Hide all at first - then show the current and ensure it uses table-cell display type
|
72
|
+
self.$elements.hide()
|
73
|
+
$(self.$elements[self.curPos]).show().css('display', 'table-cell')
|
74
|
+
|
75
|
+
# Increase the position or reset back to zero
|
76
|
+
self.curPos += 1
|
77
|
+
if self.curPos > self.maxPos
|
78
|
+
self.curPos = 0
|
79
|
+
|
80
|
+
, parseInt(interval, 10))
|
81
|
+
|
82
|
+
stop: () ->
|
83
|
+
clearInterval(@handle)
|
84
|
+
|
85
|
+
|
86
|
+
# Dashboard loaded and ready
|
87
|
+
Dashing.on 'ready', ->
|
88
|
+
# If multiple widgets per list item, switch them periodically
|
89
|
+
$('.gridster li').each (index, listItem) ->
|
90
|
+
$listItem = $(listItem)
|
91
|
+
# Take the element(s) right under the li
|
92
|
+
$widgets = $listItem.children('div')
|
93
|
+
if $widgets.length > 1
|
94
|
+
switcher = new WidgetSwitcher $widgets
|
95
|
+
switcher.start($listItem.attr('data-switcher-interval') or 5000)
|
96
|
+
|
97
|
+
# If multiple dashboards defined (using data-swticher-dashboards="board1 board2")
|
98
|
+
$container = $('#container')
|
99
|
+
ditcher = new DashboardSwitcher()
|
100
|
+
ditcher.start($container.attr('data-switcher-interval') or 60000)
|
101
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dashing-contrib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jing Dong
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dotenv
|
@@ -229,6 +229,7 @@ files:
|
|
229
229
|
- lib/dashing-contrib/assets/widgets/sidekiq/sidekiq.coffee
|
230
230
|
- lib/dashing-contrib/assets/widgets/sidekiq/sidekiq.html
|
231
231
|
- lib/dashing-contrib/assets/widgets/sidekiq/sidekiq.scss
|
232
|
+
- lib/dashing-contrib/assets/widgets/switcher/switcher.coffee
|
232
233
|
- lib/dashing-contrib/bottles/dashing.rb
|
233
234
|
- lib/dashing-contrib/bottles/kue.rb
|
234
235
|
- lib/dashing-contrib/bottles/kue/client.rb
|