sidekiq 4.1.4 → 4.2.10

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sidekiq might be problematic. Click here for more details.

Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/.github/issue_template.md +6 -1
  3. data/.travis.yml +9 -9
  4. data/Changes.md +100 -0
  5. data/Ent-Changes.md +51 -1
  6. data/Gemfile +6 -6
  7. data/Pro-Changes.md +69 -0
  8. data/README.md +4 -3
  9. data/Rakefile +5 -2
  10. data/bin/sidekiqload +11 -24
  11. data/lib/generators/sidekiq/templates/worker_test.rb.erb +1 -1
  12. data/lib/sidekiq/api.rb +21 -13
  13. data/lib/sidekiq/cli.rb +19 -5
  14. data/lib/sidekiq/core_ext.rb +13 -0
  15. data/lib/sidekiq/launcher.rb +36 -23
  16. data/lib/sidekiq/manager.rb +3 -2
  17. data/lib/sidekiq/middleware/server/logging.rb +8 -17
  18. data/lib/sidekiq/middleware/server/retry_jobs.rb +1 -1
  19. data/lib/sidekiq/processor.rb +31 -16
  20. data/lib/sidekiq/rails.rb +84 -0
  21. data/lib/sidekiq/redis_connection.rb +8 -1
  22. data/lib/sidekiq/scheduled.rb +1 -0
  23. data/lib/sidekiq/testing.rb +10 -2
  24. data/lib/sidekiq/util.rb +2 -1
  25. data/lib/sidekiq/version.rb +1 -1
  26. data/lib/sidekiq/web/action.rb +93 -0
  27. data/lib/sidekiq/web/application.rb +336 -0
  28. data/lib/sidekiq/{web_helpers.rb → web/helpers.rb} +39 -16
  29. data/lib/sidekiq/web/router.rb +100 -0
  30. data/lib/sidekiq/web.rb +119 -184
  31. data/lib/sidekiq/worker.rb +3 -3
  32. data/lib/sidekiq.rb +7 -7
  33. data/sidekiq.gemspec +11 -5
  34. data/web/assets/images/{status-sd8051fd480.png → status.png} +0 -0
  35. data/web/assets/javascripts/application.js +24 -20
  36. data/web/assets/javascripts/dashboard.js +1 -1
  37. data/web/assets/stylesheets/application.css +26 -1
  38. data/web/assets/stylesheets/bootstrap.css +4 -8
  39. data/web/locales/de.yml +1 -1
  40. data/web/locales/fa.yml +79 -0
  41. data/web/views/_footer.erb +1 -1
  42. data/web/views/_job_info.erb +1 -1
  43. data/web/views/busy.erb +2 -2
  44. data/web/views/dashboard.erb +4 -4
  45. data/web/views/dead.erb +1 -1
  46. data/web/views/layout.erb +3 -4
  47. data/web/views/morgue.erb +14 -10
  48. data/web/views/queue.erb +6 -6
  49. data/web/views/queues.erb +3 -3
  50. data/web/views/retries.erb +12 -10
  51. data/web/views/retry.erb +2 -2
  52. data/web/views/scheduled.erb +2 -2
  53. data/web/views/scheduled_job_info.erb +1 -1
  54. metadata +86 -129
  55. data/test/config.yml +0 -9
  56. data/test/env_based_config.yml +0 -11
  57. data/test/fake_env.rb +0 -1
  58. data/test/fixtures/en.yml +0 -2
  59. data/test/helper.rb +0 -75
  60. data/test/test_actors.rb +0 -138
  61. data/test/test_api.rb +0 -528
  62. data/test/test_cli.rb +0 -406
  63. data/test/test_client.rb +0 -266
  64. data/test/test_exception_handler.rb +0 -56
  65. data/test/test_extensions.rb +0 -127
  66. data/test/test_fetch.rb +0 -50
  67. data/test/test_launcher.rb +0 -85
  68. data/test/test_logging.rb +0 -35
  69. data/test/test_manager.rb +0 -50
  70. data/test/test_middleware.rb +0 -158
  71. data/test/test_processor.rb +0 -201
  72. data/test/test_rails.rb +0 -22
  73. data/test/test_redis_connection.rb +0 -132
  74. data/test/test_retry.rb +0 -326
  75. data/test/test_retry_exhausted.rb +0 -149
  76. data/test/test_scheduled.rb +0 -115
  77. data/test/test_scheduling.rb +0 -50
  78. data/test/test_sidekiq.rb +0 -107
  79. data/test/test_testing.rb +0 -143
  80. data/test/test_testing_fake.rb +0 -357
  81. data/test/test_testing_inline.rb +0 -94
  82. data/test/test_util.rb +0 -13
  83. data/test/test_web.rb +0 -614
  84. data/test/test_web_helpers.rb +0 -54
  85. data/web/assets/images/bootstrap/glyphicons-halflings-white.png +0 -0
  86. data/web/assets/images/bootstrap/glyphicons-halflings.png +0 -0
  87. data/web/assets/images/status/active.png +0 -0
  88. data/web/assets/images/status/idle.png +0 -0
  89. data/web/assets/javascripts/locales/README.md +0 -27
  90. data/web/assets/javascripts/locales/jquery.timeago.ar.js +0 -96
  91. data/web/assets/javascripts/locales/jquery.timeago.bg.js +0 -18
  92. data/web/assets/javascripts/locales/jquery.timeago.bs.js +0 -49
  93. data/web/assets/javascripts/locales/jquery.timeago.ca.js +0 -18
  94. data/web/assets/javascripts/locales/jquery.timeago.cs.js +0 -18
  95. data/web/assets/javascripts/locales/jquery.timeago.cy.js +0 -20
  96. data/web/assets/javascripts/locales/jquery.timeago.da.js +0 -18
  97. data/web/assets/javascripts/locales/jquery.timeago.de.js +0 -18
  98. data/web/assets/javascripts/locales/jquery.timeago.el.js +0 -18
  99. data/web/assets/javascripts/locales/jquery.timeago.en-short.js +0 -20
  100. data/web/assets/javascripts/locales/jquery.timeago.en.js +0 -20
  101. data/web/assets/javascripts/locales/jquery.timeago.es.js +0 -18
  102. data/web/assets/javascripts/locales/jquery.timeago.et.js +0 -18
  103. data/web/assets/javascripts/locales/jquery.timeago.fa.js +0 -22
  104. data/web/assets/javascripts/locales/jquery.timeago.fi.js +0 -28
  105. data/web/assets/javascripts/locales/jquery.timeago.fr-short.js +0 -16
  106. data/web/assets/javascripts/locales/jquery.timeago.fr.js +0 -17
  107. data/web/assets/javascripts/locales/jquery.timeago.he.js +0 -18
  108. data/web/assets/javascripts/locales/jquery.timeago.hr.js +0 -49
  109. data/web/assets/javascripts/locales/jquery.timeago.hu.js +0 -18
  110. data/web/assets/javascripts/locales/jquery.timeago.hy.js +0 -18
  111. data/web/assets/javascripts/locales/jquery.timeago.id.js +0 -18
  112. data/web/assets/javascripts/locales/jquery.timeago.it.js +0 -16
  113. data/web/assets/javascripts/locales/jquery.timeago.ja.js +0 -19
  114. data/web/assets/javascripts/locales/jquery.timeago.ko.js +0 -17
  115. data/web/assets/javascripts/locales/jquery.timeago.lt.js +0 -20
  116. data/web/assets/javascripts/locales/jquery.timeago.mk.js +0 -20
  117. data/web/assets/javascripts/locales/jquery.timeago.nb.js +0 -18
  118. data/web/assets/javascripts/locales/jquery.timeago.nl.js +0 -20
  119. data/web/assets/javascripts/locales/jquery.timeago.pl.js +0 -31
  120. data/web/assets/javascripts/locales/jquery.timeago.pt-br.js +0 -16
  121. data/web/assets/javascripts/locales/jquery.timeago.pt.js +0 -16
  122. data/web/assets/javascripts/locales/jquery.timeago.ro.js +0 -18
  123. data/web/assets/javascripts/locales/jquery.timeago.rs.js +0 -49
  124. data/web/assets/javascripts/locales/jquery.timeago.ru.js +0 -34
  125. data/web/assets/javascripts/locales/jquery.timeago.sk.js +0 -18
  126. data/web/assets/javascripts/locales/jquery.timeago.sl.js +0 -44
  127. data/web/assets/javascripts/locales/jquery.timeago.sv.js +0 -18
  128. data/web/assets/javascripts/locales/jquery.timeago.th.js +0 -20
  129. data/web/assets/javascripts/locales/jquery.timeago.tr.js +0 -16
  130. data/web/assets/javascripts/locales/jquery.timeago.uk.js +0 -34
  131. data/web/assets/javascripts/locales/jquery.timeago.uz.js +0 -19
  132. data/web/assets/javascripts/locales/jquery.timeago.zh-cn.js +0 -20
  133. data/web/assets/javascripts/locales/jquery.timeago.zh-tw.js +0 -20
  134. data/web/views/_poll_js.erb +0 -5
@@ -0,0 +1,79 @@
1
+ # elements like %{queue} are variables and should not be translated
2
+ fa: # <---- change this to your locale code
3
+ Dashboard: داشبورد
4
+ Status: اعلان
5
+ Time: رمان
6
+ Namespace: فضای نام
7
+ Realtime: زنده
8
+ History: تاریخچه
9
+ Busy: مشغول
10
+ Processed: پردازش شده
11
+ Failed: ناموفق
12
+ Scheduled: زمان بندی
13
+ Retries: تکرار
14
+ Enqueued: صف بندی نشدند
15
+ Worker: کارگزار
16
+ LivePoll: Live Poll
17
+ StopPolling: Stop Polling
18
+ Queue: صف
19
+ Class: کلاس
20
+ Job: کار
21
+ Arguments: آرگومنت
22
+ Extras: اضافی
23
+ Started: شروع شده
24
+ ShowAll: نمایش همه
25
+ CurrentMessagesInQueue: کار فعلی در <span class='title'>%{queue}</span>
26
+ Delete: حذف
27
+ AddToQueue: افزودن به صف
28
+ AreYouSureDeleteJob: آیا شما مطمعن هستید از حذف این کار ؟
29
+ AreYouSureDeleteQueue: ایا شما مطمعنید از حذف %{queue} ?
30
+ Queues: صف ها
31
+ Size: سایز
32
+ Actions: اعمال
33
+ NextRetry: بار دیگر تلاش کنید
34
+ RetryCount: تعداد تلاش ها
35
+ RetryNow: تلاش مجدد
36
+ Kill: کشتن
37
+ LastRetry: آخرین تلاش
38
+ OriginallyFailed: Originally Failed
39
+ AreYouSure: آیا مطمعن هستید?
40
+ DeleteAll: حذف همه
41
+ RetryAll: تلاش مجدد برای همه
42
+ NoRetriesFound: هیچ تلاش پیدا نشد
43
+ Error: خطا
44
+ ErrorClass: خطا کلاس
45
+ ErrorMessage: پیغام خطا
46
+ ErrorBacktrace: خطای معکوس
47
+ GoBack: ← برگشت
48
+ NoScheduledFound: هیچ کار برنامه ریزی شده ای یافت نشد
49
+ When: وقتی که
50
+ ScheduledJobs: کار برنامه ریزی شده
51
+ idle: بیهودی
52
+ active: فعال
53
+ Version: ورژن
54
+ Connections: ارتباطات
55
+ MemoryUsage: حافظه استفاده شده
56
+ PeakMemoryUsage: اوج حافظه استفاده شده
57
+ Uptime: آپ تایم (روز)
58
+ OneWeek: ۱ هفته
59
+ OneMonth: ۱ ماه
60
+ ThreeMonths: ۳ ماه
61
+ SixMonths: ۶ ماه
62
+ Failures: شکست ها
63
+ DeadJobs: کار مرده
64
+ NoDeadJobsFound: کار مرده ای یافت نشد
65
+ Dead: مرده
66
+ Processes: پردازش ها
67
+ Thread: رشته
68
+ Threads: رشته ها
69
+ Jobs: کار ها
70
+ Paused: مکث
71
+ Stop: توقف
72
+ Quiet: خروج
73
+ StopAll: توقف همه
74
+ QuietAll: خروج همه
75
+ PollingInterval: Polling interval
76
+ Plugins: پلاگین ها
77
+ NotYetEnqueued: بدون صف بندی
78
+ CreatedAt: ساخته شده در
79
+ BackToApp: برگشت به برنامه
@@ -3,7 +3,7 @@
3
3
  <div class="container text-center">
4
4
  <ul class="nav">
5
5
  <li>
6
- <p class="navbar-text" style="color:white;"><%= product_version %></p>
6
+ <p class="navbar-text product-version"><%= product_version %></p>
7
7
  </li>
8
8
  <li>
9
9
  <p class="navbar-text redis-url" title="<%= redis_connection_and_namespace %>"><%= redis_connection_and_namespace %></p>
@@ -80,7 +80,7 @@
80
80
  <% if type == :dead %>
81
81
  <tr>
82
82
  <th><%= t('LastRetry') %></th>
83
- <td><%= relative_time(job.at) %></td>
83
+ <td><%= relative_time(job.at) if job['retry_count'] %></td>
84
84
  </tr>
85
85
  <% end %>
86
86
  </tbody>
data/web/views/busy.erb CHANGED
@@ -3,7 +3,7 @@
3
3
  <h3><%= t('Processes') %></h3>
4
4
  </div>
5
5
  <div class="col-sm-4 pull-right">
6
- <form method="POST" style="margin-top: 20px; margin-bottom: 10px;">
6
+ <form method="POST" class="warning-messages">
7
7
  <%= csrf_tag %>
8
8
  <div class="btn-group pull-right">
9
9
  <button class="btn btn-warn" type="submit" name="quiet" value="1" data-confirm="<%= t('AreYouSure') %>"><%= t('QuietAll') %></button>
@@ -24,7 +24,7 @@
24
24
  </thead>
25
25
  <% processes.each do |process| %>
26
26
  <tr>
27
- <td width="50%">
27
+ <td class="box">
28
28
  <%= "#{process['hostname']}:#{process['pid']}" %>
29
29
  <span class="label label-success"><%= process.tag %></span>
30
30
  <% process.labels.each do |label| %>
@@ -9,9 +9,9 @@
9
9
  </h3>
10
10
  <div class="interval-slider">
11
11
  <span class="interval-slider-label"><%= t('PollingInterval') %>:</span>
12
- <span class="current-interval">2 sec</span>
12
+ <span class="current-interval">5 sec</span>
13
13
  <br/>
14
- <input type="range" min="2000" max="20000" step="1000" value="2000"/>
14
+ <input type="range" min="2000" max="20000" step="1000" value="5000"/>
15
15
  </div>
16
16
  </div>
17
17
 
@@ -58,14 +58,14 @@
58
58
  </div>
59
59
  <% end %>
60
60
 
61
- <% if @redis_info.fetch("used_memory_human", nil) %>
61
+ <% if @redis_info.fetch("used_memory_human", nil) %>
62
62
  <div class="stat">
63
63
  <h3 class="used_memory_human"><%= @redis_info.fetch("used_memory_human") %></h3>
64
64
  <p><%= t('MemoryUsage') %></p>
65
65
  </div>
66
66
  <% end %>
67
67
 
68
- <% if @redis_info.fetch("used_memory_peak_human", nil) %>
68
+ <% if @redis_info.fetch("used_memory_peak_human", nil) %>
69
69
  <div class="stat">
70
70
  <h3 class="used_memory_peak_human"><%= @redis_info.fetch("used_memory_peak_human") %></h3>
71
71
  <p><%= t('PeakMemoryUsage') %></p>
data/web/views/dead.erb CHANGED
@@ -1,4 +1,4 @@
1
- <%= erb :_job_info, :locals => {:job => @dead, :type => :dead} %>
1
+ <%= erb :_job_info, locals: { job: @dead, type: :dead } %>
2
2
 
3
3
  <h3><%= t('Error') %></h3>
4
4
  <div class="table_container">
data/web/views/layout.erb CHANGED
@@ -2,16 +2,16 @@
2
2
  <html>
3
3
  <head>
4
4
  <title><%= environment_title_prefix %><%= Sidekiq::NAME %></title>
5
+ <meta charset="utf8" />
5
6
  <meta name="viewport" content="width=device-width,initial-scale=1.0" />
6
7
  <link href="<%= root_path %>stylesheets/bootstrap.css" media="screen" rel="stylesheet" type="text/css" />
7
8
  <link href="<%= root_path %>stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
8
9
  <link rel="shortcut icon" type="image/ico" href="<%= root_path %>images/favicon.ico" />
9
10
  <script type="text/javascript" src="<%= root_path %>javascripts/application.js"></script>
10
- <script type="text/javascript" src="<%= root_path %>javascripts/locales/jquery.timeago.<%= locale %>.js"></script>
11
11
  <meta name="google" content="notranslate" />
12
12
  <%= display_custom_head %>
13
13
  </head>
14
- <body class="admin">
14
+ <body class="admin" data-poll-path="<%= poll_path %>" data-locale="<%= locale %>">
15
15
  <%= erb :_nav %>
16
16
  <div id="page">
17
17
  <div class="container">
@@ -26,7 +26,6 @@
26
26
  </div>
27
27
  </div>
28
28
  </div>
29
- <%= erb :_footer %>
30
- <%= erb :_poll_js %>
29
+ <%= erb :_footer %>
31
30
  </body>
32
31
  </html>
data/web/views/morgue.erb CHANGED
@@ -4,7 +4,7 @@
4
4
  </div>
5
5
  <% if @dead.size > 0 && @total_size > @count %>
6
6
  <div class="col-sm-4">
7
- <%= erb :_paging, :locals => { :url => "#{root_path}morgue" } %>
7
+ <%= erb :_paging, locals: { url: "#{root_path}morgue" } %>
8
8
  </div>
9
9
  <% end %>
10
10
  <%= filtering('dead') %>
@@ -17,7 +17,7 @@
17
17
  <table class="table table-striped table-bordered table-white">
18
18
  <thead>
19
19
  <tr>
20
- <th width="20px" class="table-checkbox">
20
+ <th class="table-checkbox checkbox-column">
21
21
  <label>
22
22
  <input type="checkbox" class="check_all" />
23
23
  </label>
@@ -47,7 +47,9 @@
47
47
  <div class="args"><%= display_args(entry.display_args) %></div>
48
48
  </td>
49
49
  <td>
50
+ <% if entry.error? %>
50
51
  <div><%= h truncate("#{entry['error_class']}: #{entry['error_message']}", 200) %></div>
52
+ <% end %>
51
53
  </td>
52
54
  </tr>
53
55
  <% end %>
@@ -57,14 +59,16 @@
57
59
  <input class="btn btn-danger btn-xs pull-left" type="submit" name="delete" value="<%= t('Delete') %>" />
58
60
  </form>
59
61
 
60
- <form action="<%= root_path %>morgue/all/delete" method="post">
61
- <%= csrf_tag %>
62
- <input class="btn btn-danger btn-xs pull-right" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
63
- </form>
64
- <form action="<%= root_path %>morgue/all/retry" method="post">
65
- <%= csrf_tag %>
66
- <input class="btn btn-danger btn-xs pull-right" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
67
- </form>
62
+ <% unfiltered? do %>
63
+ <form action="<%= root_path %>morgue/all/delete" method="post">
64
+ <%= csrf_tag %>
65
+ <input class="btn btn-danger btn-xs pull-right" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
66
+ </form>
67
+ <form action="<%= root_path %>morgue/all/retry" method="post">
68
+ <%= csrf_tag %>
69
+ <input class="btn btn-danger btn-xs pull-right" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
70
+ </form>
71
+ <% end %>
68
72
 
69
73
  <% else %>
70
74
  <div class="alert alert-success"><%= t('NoDeadJobsFound') %></div>
data/web/views/queue.erb CHANGED
@@ -8,7 +8,7 @@
8
8
  </h3>
9
9
  </div>
10
10
  <div class="col-sm-4 pull-right">
11
- <%= erb :_paging, :locals => { :url => "#{root_path}queues/#{@name}" } %>
11
+ <%= erb :_paging, locals: { url: "#{root_path}queues/#{CGI.escape(@name)}" } %>
12
12
  </div>
13
13
  </header>
14
14
  <div class="table_container">
@@ -24,15 +24,15 @@
24
24
  <td>
25
25
  <% a = msg.display_args.inspect %>
26
26
  <% if a.size > 100 %>
27
- <%= h(msg.display_args.inspect[0..100]) + "... " %>
28
- <button data-toggle="collapse" data-target="#worker_<%= index %>" class="btn btn-default btn-xs"><%= t('ShowAll') %></button>
29
- <div class="toggle" id="worker_<%= index %>" style="display: none;"><%= h(msg.display_args) %></div>
27
+ <span class="worker_<%= index %>"><%= h(msg.display_args.inspect[0..100]) + "... " %></span>
28
+ <button data-toggle="collapse" data-target=".worker_<%= index %>" class="btn btn-default btn-xs"><%= t('ShowAll') %></button>
29
+ <div class="toggle worker_<%= index %>"><%= h(msg.display_args) %></div>
30
30
  <% else %>
31
31
  <%= h(msg.display_args) %>
32
32
  <% end %>
33
33
  </td>
34
34
  <td>
35
- <form action="<%= root_path %>queues/<%= @name %>/delete" method="post">
35
+ <form action="<%= root_path %>queues/<%= CGI.escape(@name) %>/delete" method="post">
36
36
  <%= csrf_tag %>
37
37
  <input name="key_val" value="<%= h Sidekiq.dump_json(msg.item) %>" type="hidden" />
38
38
  <input class="btn btn-danger btn-xs" type="submit" name="delete" value="<%= t('Delete') %>" data-confirm="<%= t('AreYouSure') %>" />
@@ -42,4 +42,4 @@
42
42
  <% end %>
43
43
  </table>
44
44
  </div>
45
- <%= erb :_paging, :locals => { :url => "#{root_path}queues/#{@name}" } %>
45
+ <%= erb :_paging, locals: { url: "#{root_path}queues/#{@name}" } %>
data/web/views/queues.erb CHANGED
@@ -10,14 +10,14 @@
10
10
  <% @queues.each do |queue| %>
11
11
  <tr>
12
12
  <td>
13
- <a href="<%= root_path %>queues/<%= queue.name %>"><%= queue.name %></a>
13
+ <a href="<%= root_path %>queues/<%= CGI.escape(queue.name) %>"><%= h queue.name %></a>
14
14
  <% if queue.paused? %>
15
15
  <span class="label label-danger"><%= t('Paused') %></span>
16
16
  <% end %>
17
17
  </td>
18
18
  <td><%= number_with_delimiter(queue.size) %> </td>
19
- <td width="20%">
20
- <form action="<%=root_path %>queues/<%= queue.name %>" method="post">
19
+ <td class="delete-confirm">
20
+ <form action="<%=root_path %>queues/<%= CGI.escape(queue.name) %>" method="post">
21
21
  <%= csrf_tag %>
22
22
  <input class="btn btn-danger btn-xs" type="submit" name="delete" value="<%= t('Delete') %>" data-confirm="<%= t('AreYouSureDeleteQueue', :queue => h(queue.name)) %>" />
23
23
  </form>
@@ -4,7 +4,7 @@
4
4
  </div>
5
5
  <% if @retries.size > 0 && @total_size > @count %>
6
6
  <div class="col-sm-4">
7
- <%= erb :_paging, :locals => { :url => "#{root_path}retries" } %>
7
+ <%= erb :_paging, locals: { url: "#{root_path}retries" } %>
8
8
  </div>
9
9
  <% end %>
10
10
  <%= filtering('retries') %>
@@ -17,7 +17,7 @@
17
17
  <table class="table table-striped table-bordered table-white">
18
18
  <thead>
19
19
  <tr>
20
- <th width="20px" class="table-checkbox">
20
+ <th class="table-checkbox checkbox-column">
21
21
  <label>
22
22
  <input type="checkbox" class="check_all" />
23
23
  </label>
@@ -60,14 +60,16 @@
60
60
  <input class="btn btn-danger btn-xs pull-left" type="submit" name="kill" value="<%= t('Kill') %>" />
61
61
  </form>
62
62
 
63
- <form action="<%= root_path %>retries/all/delete" method="post">
64
- <%= csrf_tag %>
65
- <input class="btn btn-danger btn-xs pull-right" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
66
- </form>
67
- <form action="<%= root_path %>retries/all/retry" method="post">
68
- <%= csrf_tag %>
69
- <input class="btn btn-danger btn-xs pull-right" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
70
- </form>
63
+ <% unfiltered? do %>
64
+ <form action="<%= root_path %>retries/all/delete" method="post">
65
+ <%= csrf_tag %>
66
+ <input class="btn btn-danger btn-xs pull-right" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
67
+ </form>
68
+ <form action="<%= root_path %>retries/all/retry" method="post">
69
+ <%= csrf_tag %>
70
+ <input class="btn btn-danger btn-xs pull-right" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
71
+ </form>
72
+ <% end %>
71
73
 
72
74
  <% else %>
73
75
  <div class="alert alert-success"><%= t('NoRetriesFound') %></div>
data/web/views/retry.erb CHANGED
@@ -1,4 +1,4 @@
1
- <%= erb :_job_info, :locals => {:job => @retry, :type => :retry} %>
1
+ <%= erb :_job_info, locals: { job: @retry, type: :retry } %>
2
2
 
3
3
  <h3><%= t('Error') %></h3>
4
4
  <div class="table_container">
@@ -7,7 +7,7 @@
7
7
  <tr>
8
8
  <th><%= t('ErrorClass') %></th>
9
9
  <td>
10
- <code><%= h @retry.display_class %></code>
10
+ <code><%= h @retry['error_class'] %></code>
11
11
  </td>
12
12
  </tr>
13
13
  <tr>
@@ -4,7 +4,7 @@
4
4
  </div>
5
5
  <% if @scheduled.size > 0 && @total_size > @count %>
6
6
  <div class="col-sm-4">
7
- <%= erb :_paging, :locals => { :url => "#{root_path}scheduled" } %>
7
+ <%= erb :_paging, locals: { url: "#{root_path}scheduled" } %>
8
8
  </div>
9
9
  <% end %>
10
10
  <%= filtering('scheduled') %>
@@ -18,7 +18,7 @@
18
18
  <table class="table table-striped table-bordered table-white">
19
19
  <thead>
20
20
  <tr>
21
- <th width="20px">
21
+ <th class="checkbox-column">
22
22
  <input type="checkbox" class="check_all" />
23
23
  </th>
24
24
  <th><%= t('When') %></th>
@@ -1,4 +1,4 @@
1
- <%= erb :_job_info, :locals => {:job => @job, :type => :scheduled} %>
1
+ <%= erb :_job_info, locals: { job: @job, type: :scheduled } %>
2
2
 
3
3
  <form class="form-horizontal" action="<%= root_path %>scheduled/<%= job_params(@job, @job.score) %>" method="post">
4
4
  <%= csrf_tag %>