opsask 2.1.9 → 2.2.0

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
  SHA1:
3
- metadata.gz: 4f3245625d9bf275d4572fdfc4fa5201a137e968
4
- data.tar.gz: 8ac79891039bab1e396b2a98908012fb8e9a28ab
3
+ metadata.gz: 39de33ba0a9dba8e6de6179eecf083507bf82457
4
+ data.tar.gz: 2a6d56152445dbf4f2747bb71eb69b488ccaac47
5
5
  SHA512:
6
- metadata.gz: 14251899fadd6128bb20fbbb26ca1319e98a7799db5d34beb02949bbd352ef31531b30deaa94ab7704bd5f7c956d512ec8e59fb1d8238991217ef0e4dd8f65dc
7
- data.tar.gz: 0440bde8b454f4a86213f0e66a94edd97c426f1db06a8c91188be647d33ef97e64356c36afcb84ffaa27f2f9346d3d27f1d87121c42b46ca427ba9af978ef63a
6
+ metadata.gz: 20b178f635d9337c99cb2098665bd4f0cc64db6d92d435ac5de720faa4d68e4cb599ede166b493d2e8fa96b889c086188299e80ca3df629507fd164d5e0a93da
7
+ data.tar.gz: 980a1b120ec1d936754d830266f2c1951228705377a27dff6514ddb7be0bdc9c9408ae67720ea683b724b7b9169c036e72ef09c50ad424557dcf2d447ddf9a08
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.1.9
1
+ 2.2.0
data/lib/opsask/app.rb CHANGED
@@ -4,6 +4,7 @@ require 'sinatra/partial'
4
4
  require 'rack-flash'
5
5
  require 'json'
6
6
  require 'jira'
7
+ require 'tilt/erb'
7
8
 
8
9
  require_relative 'helpers'
9
10
  require_relative 'metadata'
@@ -35,9 +36,24 @@ module OpsAsk
35
36
  end
36
37
 
37
38
  get '/glance' do
38
- erb :glance, locals: {
39
- jiras_for_today: issues_for(today),
40
- jiras_for_tomorrow: issues_for(tomorrow),
39
+ erb :days, locals: {
40
+ jiras_by_day: issues_for_days(2),
41
+ untracked_jiras: untracked_issues,
42
+ stragglers: straggling_issues
43
+ }
44
+ end
45
+
46
+ get '/week' do
47
+ erb :days, locals: {
48
+ jiras_by_day: issues_for_days(4),
49
+ untracked_jiras: untracked_issues,
50
+ stragglers: straggling_issues
51
+ }
52
+ end
53
+
54
+ get '/days/:n' do
55
+ erb :days, locals: {
56
+ jiras_by_day: issues_for_days(params[:n].to_i),
41
57
  untracked_jiras: untracked_issues,
42
58
  stragglers: straggling_issues
43
59
  }
@@ -4,6 +4,12 @@ module OpsAsk
4
4
  !!session[:jira_auth]
5
5
  end
6
6
 
7
+ def no_ops jiras
8
+ jiras.reject do |jira|
9
+ jira.fields['labels'].include? 'OpsOnly'
10
+ end
11
+ end
12
+
7
13
  def ops?
8
14
  return false unless logged_in?
9
15
  @myself['groups']['items'].each do |i|
@@ -281,6 +287,21 @@ module OpsAsk
281
287
  return "#{idx}-#{jira.key}"
282
288
  end
283
289
 
290
+ def today? date
291
+ Time.new.to_date.strftime('%Y-%m-%d') == date
292
+ end
293
+
294
+ def issues_for_days n
295
+ now = Time.new.to_date
296
+ 0.upto(n-1).inject({}) do |h,i|
297
+ date = (now + i).strftime('%Y-%m-%d')
298
+ h[date] = jiras_for(date).sort_by do |jira|
299
+ sorting_key_for(jira)
300
+ end.reverse
301
+ h
302
+ end
303
+ end
304
+
284
305
  def issues_for date
285
306
  jiras_for(date).sort_by do |jira|
286
307
  sorting_key_for(jira)
data/views/_count.erb CHANGED
@@ -1,11 +1,9 @@
1
- <% unless ops? %>
2
- <% if count >= settings.config[:queue_size] %>
3
- <span class="count label alert radius">full</span>
4
- <% elsif today and now.hour >= settings.config[:cutoff_hour] %>
5
- <span class="count label alert radius">cutoff</span>
6
- <% elsif count > 0 && count < settings.config[:queue_size] %>
7
- <span class="count label radius"><%= count %> of <%= settings.config[:queue_size] %></span>
8
- <% else # count == 0 %>
9
- <span class="count label radius">empty</span>
10
- <% end %>
1
+ <% if count >= settings.config[:queue_size] %>
2
+ <span class="count label alert radius">full</span>
3
+ <% elsif today and now.hour >= settings.config[:cutoff_hour] %>
4
+ <span class="count label alert radius">cutoff</span>
5
+ <% elsif count > 0 && count < settings.config[:queue_size] %>
6
+ <span class="count label radius"><%= count %> of <%= settings.config[:queue_size] %></span>
7
+ <% else # count == 0 %>
8
+ <span class="count label radius">empty</span>
11
9
  <% end %>
data/views/days.erb ADDED
@@ -0,0 +1,14 @@
1
+ <div class="row">
2
+ <% c = 12.0 / jiras_by_day.keys.length.to_f ; c = c.floor %>
3
+ <% i = 0 %>
4
+ <% jiras_by_day.each do |date, jiras| %>
5
+ <div id="ops-queue-<%= i %>" class="ops-queue small-<%= c %> columns">
6
+ <h2>
7
+ <%= date %>
8
+ <%= partial :count, locals: { count: no_ops(jiras).length, today: today?(date) } %>
9
+ </h2>
10
+ <%= partial :queue, locals: { jiras: jiras } %>
11
+ </div>
12
+ <% i += 1 %>
13
+ <% end %>
14
+ </div>
data/views/index.erb CHANGED
@@ -1,28 +1,24 @@
1
1
  <div class="row">
2
2
  <% if its_the_weekend? %>
3
3
  <div id="ops-queue-for-coming-week" class="ops-queue small-8 columns">
4
- <h2><%= name_for_coming_week %> <%= partial :count, locals: { count: jira_count_for_today, today: false } %></h2>
4
+ <h2><%= name_for_coming_week %> <%= partial :count, locals: { count: no_ops(jiras_for_today).length, today: false } %></h2>
5
5
  <%= partial :queue, locals: { jiras: jiras_for_today } %>
6
6
  </div>
7
7
 
8
8
  <% else %>
9
9
  <div id="ops-queue-for-today" class="ops-queue small-4 columns">
10
- <h2><%= name_for_today %> <%= partial :count, locals: { count: jira_count_for_today, today: true } %></h2>
10
+ <h2><%= name_for_today %> <%= partial :count, locals: { count: no_ops(jiras_for_today).length, today: true } %></h2>
11
11
  <%= partial :queue, locals: { jiras: jiras_for_today } %>
12
12
  </div>
13
13
 
14
14
  <div id="ops-queue-for-tomorrow" class="ops-queue small-4 columns">
15
- <h2><%= name_for_tomorrow %> <%= partial :count, locals: { count: jira_count_for_tomorrow, today: false } %></h2>
15
+ <h2><%= name_for_tomorrow %> <%= partial :count, locals: { count: no_ops(jiras_for_tomorrow).length, today: false } %></h2>
16
16
  <%= partial :queue, locals: { jiras: jiras_for_tomorrow } %>
17
17
  </div>
18
18
  <% end %>
19
19
 
20
20
  <section id="ops-ask" class="small-4 columns">
21
- <h2>Create JIRA
22
- <% unless logged_in? && ops? && room_for_new_jiras?(true) %>
23
- <span id="opsonly-full" class="alert label radius">Full</span>
24
- <% end %>
25
- </h2>
21
+ <h2>Create JIRA</h2>
26
22
  <%= partial :form, locals: {
27
23
  jiras_for_today: jiras_for_today,
28
24
  jiras_for_tomorrow: jiras_for_tomorrow
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opsask
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.9
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Clemmer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-28 00:00:00.000000000 Z
11
+ date: 2015-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -180,7 +180,7 @@ files:
180
180
  - views/_flash.erb
181
181
  - views/_form.erb
182
182
  - views/_queue.erb
183
- - views/glance.erb
183
+ - views/days.erb
184
184
  - views/index.erb
185
185
  - views/layout.erb
186
186
  - views/stats.erb
data/views/glance.erb DELETED
@@ -1,19 +0,0 @@
1
- <div class="row">
2
- <% if its_the_weekend? %>
3
- <div id="ops-queue-for-coming-week" class="ops-queue small-6 small-offset-3 columns">
4
- <h2><%= name_for_coming_week %> <%= partial :count, locals: { count: jira_count_for_today, today: false } %></h2>
5
- <%= partial :queue, locals: { jiras: jiras_for_today } %>
6
- </div>
7
-
8
- <% else %>
9
- <div id="ops-queue-for-today" class="ops-queue small-6 columns">
10
- <h2><%= name_for_today %> <%= partial :count, locals: { count: jira_count_for_today, today: true } %></h2>
11
- <%= partial :queue, locals: { jiras: jiras_for_today } %>
12
- </div>
13
-
14
- <div id="ops-queue-for-tomorrow" class="ops-queue small-6 columns">
15
- <h2><%= name_for_tomorrow %> <%= partial :count, locals: { count: jira_count_for_tomorrow, today: false } %></h2>
16
- <%= partial :queue, locals: { jiras: jiras_for_tomorrow } %>
17
- </div>
18
- <% end %>
19
- </div>