stoplight-admin 0.3.6 → 0.4.0.pre1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ea092c1ab6285d75d91b6b7582c0c521304c6aa9a417067793224a4b31cbc83f
4
- data.tar.gz: d31a8c40d3adf0cf517194b3ffdb96f4c1d425d7b1655fe8d2d7717051d08104
3
+ metadata.gz: ace5002a748d22a3962307104e9c8fa8b66d499923b4d1f8273177136c05b424
4
+ data.tar.gz: e04b845c22c1cfa0111f6744a260111456f3f852be02a16102db2a730143c09f
5
5
  SHA512:
6
- metadata.gz: 3bf410421247546b33d42ba22eb4180b92027713806a8bdd55c6f93adcdf07bf5771d7a10c7ca0706e4cf55828d160fcae5da1326352ff5078b115742a28108e
7
- data.tar.gz: e8e8a55b481d9ac832206596afc412ff2f72cb127befdb6ffc0b776393c805cab25ac96fdf41f2d4df1c8ce6ceacd265cc5d98762df845c6e22cb616c1745b2a
6
+ metadata.gz: 9acb82ce2680895afe2fdfb9ba82c38c73945fd548bbaf58c8ca93ee363612c8729ca3be8445f542460b81aa9d6b42a66ee3079c264452314261bca3e1060d35
7
+ data.tar.gz: c6076049c06185f4bd47e9c4299b860f51152cbca9484466e4654f71fe5bf67ea5e4b2293eb9db96874a0a2f276f471c6b37e33d9cd8d3881d874fb2d4be10ee
data/README.md CHANGED
@@ -32,6 +32,15 @@ example using a local Redis data store:
32
32
  ``` rb
33
33
  # app.rb
34
34
 
35
+ require 'bundler/inline'
36
+
37
+ gemfile do
38
+ source 'https://rubygems.org'
39
+
40
+ gem 'webrick'
41
+ gem 'stoplight-admin'
42
+ end
43
+
35
44
  require 'redis'
36
45
  require 'sinatra'
37
46
  require 'sinatra/stoplight_admin'
@@ -1,6 +1,5 @@
1
1
  # coding: utf-8
2
2
 
3
- require 'haml'
4
3
  require 'sinatra/base'
5
4
  require 'sinatra/json'
6
5
  require 'stoplight'
@@ -118,7 +117,7 @@ module Sinatra
118
117
  ls = lights
119
118
  stats = stat_params(ls)
120
119
 
121
- haml :index, locals: stats.merge(lights: ls)
120
+ erb :index, locals: stats.merge(lights: ls)
122
121
  end
123
122
 
124
123
  app.get '/stats' do
@@ -0,0 +1,120 @@
1
+ <div class="jumbotron hidden-xs hidden-sm">
2
+ <h1>&#x1f6a6; All of the Lights</h1>
3
+ <p>Cop lights, flashlights, spotlights, strobe lights&hellip;</p>
4
+ </div>
5
+
6
+ <div class="main">
7
+ <% if lights.empty? %>
8
+ <div class="alert alert-warning" role="alert">
9
+ <strong>No lights found.</strong>
10
+ Ensure that your Stoplight data store is properly configured and that your Stoplight blocks have been run.
11
+ </div>
12
+ <% else %>
13
+ <div class="well">
14
+ <form method="post" action="<%= url('/green_all') %>">
15
+ <button class="btn-lg btn btn-success"
16
+ type="submit"
17
+ <%= count_red + count_yellow > 0 ? nil : "disabled" %>>
18
+ Greenify All
19
+ </button>
20
+ </form>
21
+ </div>
22
+
23
+ <div class="progress">
24
+ <div class="progress-bar progress-bar-danger" style="width: <%= percent_red %>%">
25
+ <span><%= count_red %></span>
26
+ </div>
27
+ <div class="progress-bar progress-bar-warning" style="width: <%= percent_yellow %>%">
28
+ <span><%= count_yellow %></span>
29
+ </div>
30
+ <div class="progress-bar progress-bar-success" style="width: <%= percent_green %>%">
31
+ <span><%= count_green %></span>
32
+ </div>
33
+ </div>
34
+
35
+ <div class="lights">
36
+ <table class="table table-hover">
37
+ <thead class="hidden-xs">
38
+ <tr>
39
+ <th>Status</th>
40
+ <th>
41
+ <abbr title="Locked lights will not change color automatically.">Locked?</abbr>
42
+ </th>
43
+ <th>Name</th>
44
+ <th>
45
+ <abbr title="Exceptions which caused the light to turn red.">Failures</abbr>
46
+ </th>
47
+ </tr>
48
+ </thead>
49
+ <tbody>
50
+ <% lights.each do |l| %>
51
+ <tr>
52
+ <td class="indicator">
53
+ <% if l[:color] == GREEN %>
54
+ <form method="post" action="<%= url('/red') %>">
55
+ <input type="hidden" name="names" value="<%= ERB::Util.html_escape(l[:name]) %>">
56
+ <button type="submit" class="btn btn-success">
57
+ <span>G</span><span class="hidden-xs">REEN</span>
58
+ </button>
59
+ </form>
60
+ <% elsif l[:color] == YELLOW %>
61
+ <form method="post" action="<%= url('/green') %>">
62
+ <input type="hidden" name="names" value="<%= ERB::Util.html_escape(l[:name]) %>">
63
+ <button type="submit" class="btn btn-warning">
64
+ <span>Y</span><span class="hidden-xs">ELLOW</span>
65
+ </button>
66
+ </form>
67
+ <% else %>
68
+ <form method="post" action="<%= url('/green') %>">
69
+ <input type="hidden" name="names" value="<%= ERB::Util.html_escape(l[:name]) %>">
70
+ <button type="submit" class="btn btn-danger">
71
+ <span>R</span><span class="hidden-xs">ED</span>
72
+ </button>
73
+ </form>
74
+ <% end %>
75
+ </td>
76
+ <td class="locked">
77
+ <% if l[:locked] %>
78
+ <form method="post" action="<%= url('/unlock') %>">
79
+ <input type="hidden" name="names" value="<%= ERB::Util.html_escape(l[:name]) %>">
80
+ <button type="submit" class="btn btn-link">
81
+ <span class="glyphicon glyphicon-lock"></span>
82
+ </button>
83
+ </form>
84
+ <% else %>
85
+ <form method="post" action="<%= url('/lock') %>">
86
+ <input type="hidden" name="names" value="<%= ERB::Util.html_escape(l[:name]) %>">
87
+ <button type="submit" class="btn btn-link">
88
+ <span class="glyphicon glyphicon-minus"></span>
89
+ </button>
90
+ </form>
91
+ <% end %>
92
+ </td>
93
+ <td class="name">
94
+ <%= l[:name] %>
95
+ </td>
96
+ <td class="failures">
97
+ <% if l[:failures] %>
98
+ <ul>
99
+ <% l[:failures].each do |failure| %>
100
+ <li>
101
+ <span class="error">
102
+ <%= ERB::Util.html_escape(failure.error_class) %>
103
+ \:
104
+ <%= ERB::Util.html_escape(failure.error_message) %>
105
+ </span>
106
+ <span class="timestamp">
107
+ <%= ERB::Util.html_escape(failure.time) %>
108
+ </span>
109
+ </li>
110
+ <% end %>
111
+ </ul>
112
+ <% end %>
113
+ </td>
114
+ </tr>
115
+ <% end %>
116
+ </tbody>
117
+ </table>
118
+ </div>
119
+ <% end %>
120
+ </div>
@@ -0,0 +1,55 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+
7
+ <title>Stoplight Admin</title>
8
+
9
+ <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
10
+ <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap-theme.min.css">
11
+ <link rel="shortcut icon" href="//i.imgur.com/qvfoNuh.png">
12
+
13
+ <style>
14
+ td.indicator {
15
+ font-size: 200%;
16
+ }
17
+
18
+ td.name {
19
+ font-weight: bold;
20
+ }
21
+
22
+ td.locked button {
23
+ font-size: 200%;
24
+ }
25
+
26
+ td.failures span.error {
27
+ font-weight: bold;
28
+ }
29
+
30
+ td.failures ul {
31
+ padding: 0;
32
+ list-style-type: none;
33
+ }
34
+
35
+ .btn-group form {
36
+ display: inline-block;
37
+ }
38
+ </style>
39
+ </head>
40
+ <body>
41
+ <div class="navbar navbar-inverse navbar-static-top" role="navigation">
42
+ <div class="container">
43
+ <div class="navbar-header">
44
+ <a class="navbar-brand" href="<%= url('/') %>">Stoplight Admin</a>
45
+ </div>
46
+ </div>
47
+ </div>
48
+
49
+ <div class="container" role="main">
50
+ <%= yield %>
51
+ </div>
52
+
53
+ <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
54
+ </body>
55
+ </html>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stoplight-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.4.0.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cameron Desautels
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-02-27 00:00:00.000000000 Z
12
+ date: 2023-06-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: haml
15
+ name: redis
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '5.0'
20
+ version: '3.2'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - "~>"
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: '5.0'
27
+ version: '3.2'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: sinatra-contrib
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -39,20 +39,6 @@ dependencies:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
41
  version: 2.2.3
42
- - !ruby/object:Gem::Dependency
43
- name: redis
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - ">="
47
- - !ruby/object:Gem::Version
48
- version: '3.2'
49
- type: :runtime
50
- prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- version: '3.2'
56
42
  - !ruby/object:Gem::Dependency
57
43
  name: stoplight
58
44
  requirement: !ruby/object:Gem::Requirement
@@ -67,62 +53,6 @@ dependencies:
67
53
  - - ">="
68
54
  - !ruby/object:Gem::Version
69
55
  version: '1.4'
70
- - !ruby/object:Gem::Dependency
71
- name: bundler
72
- requirement: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - "~>"
75
- - !ruby/object:Gem::Version
76
- version: '2.4'
77
- type: :development
78
- prerelease: false
79
- version_requirements: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - "~>"
82
- - !ruby/object:Gem::Version
83
- version: '2.4'
84
- - !ruby/object:Gem::Dependency
85
- name: pry-byebug
86
- requirement: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - "~>"
89
- - !ruby/object:Gem::Version
90
- version: 3.10.0
91
- type: :development
92
- prerelease: false
93
- version_requirements: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - "~>"
96
- - !ruby/object:Gem::Version
97
- version: 3.10.0
98
- - !ruby/object:Gem::Dependency
99
- name: rake
100
- requirement: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - "~>"
103
- - !ruby/object:Gem::Version
104
- version: '13.0'
105
- type: :development
106
- prerelease: false
107
- version_requirements: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - "~>"
110
- - !ruby/object:Gem::Version
111
- version: '13.0'
112
- - !ruby/object:Gem::Dependency
113
- name: rspec
114
- requirement: !ruby/object:Gem::Requirement
115
- requirements:
116
- - - "~>"
117
- - !ruby/object:Gem::Version
118
- version: 3.12.0
119
- type: :development
120
- prerelease: false
121
- version_requirements: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - "~>"
124
- - !ruby/object:Gem::Version
125
- version: 3.12.0
126
56
  description: A simple administration interface for Stoplight.
127
57
  email:
128
58
  - camdez@gmail.com
@@ -134,8 +64,8 @@ files:
134
64
  - LICENSE.md
135
65
  - README.md
136
66
  - lib/sinatra/stoplight_admin.rb
137
- - lib/sinatra/views/index.haml
138
- - lib/sinatra/views/layout.haml
67
+ - lib/sinatra/views/index.erb
68
+ - lib/sinatra/views/layout.erb
139
69
  homepage: https://github.com/bolshakov/stoplight-admin
140
70
  licenses:
141
71
  - MIT
@@ -151,11 +81,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
151
81
  version: 2.5.0
152
82
  required_rubygems_version: !ruby/object:Gem::Requirement
153
83
  requirements:
154
- - - ">="
84
+ - - ">"
155
85
  - !ruby/object:Gem::Version
156
- version: '0'
86
+ version: 1.3.1
157
87
  requirements: []
158
- rubygems_version: 3.3.7
88
+ rubygems_version: 3.4.6
159
89
  signing_key:
160
90
  specification_version: 4
161
91
  summary: A simple administration interface for Stoplight.
@@ -1,79 +0,0 @@
1
- .jumbotron.hidden-xs.hidden-sm
2
- %h1 &#x1f6a6; All of the Lights
3
- %p Cop lights, flashlights, spotlights, strobe lights&hellip;
4
-
5
- .main
6
- - if lights.empty?
7
- .alert.alert-warning{role: 'alert'}
8
- %strong No lights found.
9
- Ensure that your Stoplight data store is properly configured and that your Stoplight blocks have been run.
10
- - else
11
- .well
12
- %form{method: 'post', action: url('/green_all')}
13
- %button.btn-lg.btn.btn-success{type: 'submit', disabled: count_red + count_yellow > 0 ? nil : 'disabled'} Greenify All
14
-
15
- .progress
16
- .progress-bar.progress-bar-danger{style: "width: #{percent_red}%"}
17
- .span= count_red
18
- .progress-bar.progress-bar-warning{style: "width: #{percent_yellow}%"}
19
- .span= count_yellow
20
- .progress-bar.progress-bar-success{style: "width: #{percent_green}%"}
21
- .span= count_green
22
-
23
- .lights
24
- %table.table.table-hover
25
- %thead.hidden-xs
26
- %tr
27
- %th Status
28
- %th
29
- %abbr{title: 'Locked lights will not change color automatically.'} Locked?
30
- %th Name
31
- %th
32
- %abbr{title: 'Exceptions which caused the light to turn red.'} Failures
33
- %tbody
34
- - lights.each do |l|
35
- %tr
36
- %td.indicator
37
- - if l[:color] == GREEN
38
- %form{method: 'post', action: url('/red')}
39
- %input{type: 'hidden', name: 'names', value: CGI.escape(l[:name])}
40
- %button{type: 'submit', class: 'btn btn-success'}
41
- G
42
- %span.hidden-xs> REEN
43
- - elsif l[:color] == YELLOW
44
- %form{method: 'post', action: url('/green')}
45
- %input{type: 'hidden', name: 'names', value: CGI.escape(l[:name])}
46
- %button{type: 'submit', class: 'btn btn-warning'}
47
- Y
48
- %span.hidden-xs> ELLOW
49
- - else
50
- %form{method: 'post', action: url('/green')}
51
- %input{type: 'hidden', name: 'names', value: CGI.escape(l[:name])}
52
- %button{type: 'submit', class: 'btn btn-danger'}
53
- R
54
- %span.hidden-xs> ED
55
- %td.locked
56
- - if l[:locked]
57
- %form{method: 'post', action: url('/unlock')}
58
- %input{type: 'hidden', name: 'names', value: CGI.escape(l[:name])}
59
- %button{type: 'submit', class: 'btn btn-link'}
60
- %span{class: 'glyphicon glyphicon-lock'}
61
- - else
62
- %form{method: 'post', action: url('/lock')}
63
- %input{type: 'hidden', name: 'names', value: CGI.escape(l[:name])}
64
- %button{type: 'submit', class: 'btn btn-link'}
65
- %span{class: 'glyphicon glyphicon-minus'}
66
- %td.name
67
- = l[:name]
68
- %td.failures
69
- - if l[:failures]
70
- %ul
71
- - l[:failures].each do |failure|
72
- %li
73
- %span.error
74
- &= failure.error_class
75
- \:
76
- &= failure.error_message
77
- @
78
- %span.timestamp
79
- &= failure.time
@@ -1,48 +0,0 @@
1
- !!! 5
2
- %html{lang: 'en'}
3
- %head
4
- %meta{charset: 'utf-8'}
5
- %meta{name: 'viewport', content: 'width=device-width, initial-scale=1'}
6
-
7
- %title Stoplight Admin
8
-
9
- %link{rel: 'stylesheet', href: '//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css'}
10
- %link{rel: 'stylesheet', href: '//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap-theme.min.css'}
11
- %link{rel: 'shortcut icon', href: '//i.imgur.com/qvfoNuh.png'}
12
-
13
- :css
14
- td.indicator {
15
- font-size: 200%;
16
- }
17
-
18
- td.name {
19
- font-weight: bold;
20
- }
21
-
22
- td.locked button {
23
- font-size: 200%;
24
- }
25
-
26
- td.failures span.error {
27
- font-weight: bold;
28
- }
29
-
30
- td.failures ul {
31
- padding: 0;
32
- list-style-type: none;
33
- }
34
-
35
- .btn-group form {
36
- display: inline-block;
37
- }
38
-
39
- %body
40
- .navbar.navbar-inverse.navbar-static-top{role: 'navigation'}
41
- .container
42
- .navbar-header
43
- %a{class: 'navbar-brand', href: url('/')} Stoplight Admin
44
-
45
- .container{role: 'main'}
46
- = yield
47
-
48
- %script{src: '//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js'}