From 0a7e8ea439ccc5b54b3b8c59a5d8cacadd6cba84 Mon Sep 17 00:00:00 2001 From: Kirill Nikitin Date: Thu, 22 Aug 2013 02:38:52 +0400 Subject: [PATCH] Closes #1120 Removed slim. --- Changes.md | 1 + Gemfile | 2 - lib/sidekiq/web.rb | 20 ++++---- myapp/Gemfile | 1 - sidekiq.gemspec | 1 - web/views/_job_info.erb | 76 +++++++++++++++++++++++++++++++ web/views/_job_info.slim | 51 --------------------- web/views/_nav.erb | 23 ++++++++++ web/views/_nav.slim | 16 ------- web/views/_paging.erb | 25 ++++++++++ web/views/_paging.slim | 15 ------ web/views/_status.erb | 4 ++ web/views/_status.slim | 3 -- web/views/_summary.erb | 26 +++++++++++ web/views/_summary.slim | 19 -------- web/views/_workers.erb | 29 ++++++++++++ web/views/_workers.slim | 21 --------- web/views/dashboard.erb | 59 ++++++++++++++++++++++++ web/views/dashboard.slim | 46 ------------------- web/views/index.erb | 16 +++++++ web/views/index.slim | 10 ---- web/views/layout.erb | 73 +++++++++++++++++++++++++++++ web/views/layout.slim | 50 -------------------- web/views/queue.erb | 38 ++++++++++++++++ web/views/queue.slim | 27 ----------- web/views/queues.erb | 22 +++++++++ web/views/queues.slim | 15 ------ web/views/retries.erb | 57 +++++++++++++++++++++++ web/views/retries.slim | 41 ----------------- web/views/retry.erb | 30 ++++++++++++ web/views/retry.slim | 21 --------- web/views/scheduled.erb | 48 +++++++++++++++++++ web/views/scheduled.slim | 33 -------------- web/views/scheduled_job_info.erb | 7 +++ web/views/scheduled_job_info.slim | 6 --- 35 files changed, 542 insertions(+), 390 deletions(-) create mode 100644 web/views/_job_info.erb delete mode 100644 web/views/_job_info.slim create mode 100644 web/views/_nav.erb delete mode 100644 web/views/_nav.slim create mode 100644 web/views/_paging.erb delete mode 100644 web/views/_paging.slim create mode 100644 web/views/_status.erb delete mode 100644 web/views/_status.slim create mode 100644 web/views/_summary.erb delete mode 100644 web/views/_summary.slim create mode 100644 web/views/_workers.erb delete mode 100644 web/views/_workers.slim create mode 100644 web/views/dashboard.erb delete mode 100644 web/views/dashboard.slim create mode 100644 web/views/index.erb delete mode 100644 web/views/index.slim create mode 100644 web/views/layout.erb delete mode 100644 web/views/layout.slim create mode 100644 web/views/queue.erb delete mode 100644 web/views/queue.slim create mode 100644 web/views/queues.erb delete mode 100644 web/views/queues.slim create mode 100644 web/views/retries.erb delete mode 100644 web/views/retries.slim create mode 100644 web/views/retry.erb delete mode 100644 web/views/retry.slim create mode 100644 web/views/scheduled.erb delete mode 100644 web/views/scheduled.slim create mode 100644 web/views/scheduled_job_info.erb delete mode 100644 web/views/scheduled_job_info.slim diff --git a/Changes.md b/Changes.md index 65640855..7b611e25 100644 --- a/Changes.md +++ b/Changes.md @@ -4,6 +4,7 @@ - Fix more race conditions in Web UI actions - Don't reset Job enqueued\_at when retrying - Timestamp tooltips in the Web UI should use UTC +- Removed slim dependency [Locke23rus, #1120] 2.13.1 diff --git a/Gemfile b/Gemfile index 7a373014..643fba30 100644 --- a/Gemfile +++ b/Gemfile @@ -1,8 +1,6 @@ source 'http://rubygems.org' gemspec -gem 'slim', '1.1.0' # earliest verson supported - gem 'sqlite3', :platform => :mri group :test do diff --git a/lib/sidekiq/web.rb b/lib/sidekiq/web.rb index fec01783..93123e6a 100644 --- a/lib/sidekiq/web.rb +++ b/lib/sidekiq/web.rb @@ -1,8 +1,5 @@ require 'yaml' require 'sinatra/base' -require 'slim' - -raise "The Sidekiq Web UI requires slim 1.1.0 or greater. You have slim v#{Slim::VERSION}" if Gem::Version.new(Slim::VERSION) < Gem::Version.new('1.1.0') require 'sidekiq' require 'sidekiq/api' @@ -16,7 +13,6 @@ module Sidekiq set :public_folder, Proc.new { "#{root}/assets" } set :views, Proc.new { "#{root}/views" } set :locales, Proc.new { "#{root}/locales" } - set :slim, :pretty => true helpers do def strings @@ -164,12 +160,12 @@ module Sidekiq end get "/workers" do - slim :index + erb :index end get "/queues" do @queues = Sidekiq::Queue.all - slim :queues + erb :queues end get "/queues/:name" do @@ -178,7 +174,7 @@ module Sidekiq @name = params[:name] (@current_page, @total_size, @messages) = page("queue:#{@name}", params[:page], @count) @messages = @messages.map {|msg| Sidekiq.load_json(msg) } - slim :queue + erb :queue end post "/reset" do @@ -200,14 +196,14 @@ module Sidekiq @count = (params[:count] || 25).to_i (@current_page, @total_size, @retries) = page("retry", params[:page], @count) @retries = @retries.map {|msg, score| [Sidekiq.load_json(msg), score] } - slim :retries + erb :retries end get "/retries/:key" do halt 404 unless params['key'] @retry = Sidekiq::RetrySet.new.fetch(*parse_params(params['key'])).first redirect "#{root_path}retries" if @retry.nil? - slim :retry + erb :retry end post '/retries' do @@ -252,14 +248,14 @@ module Sidekiq @count = (params[:count] || 25).to_i (@current_page, @total_size, @scheduled) = page("schedule", params[:page], @count) @scheduled = @scheduled.map {|msg, score| [Sidekiq.load_json(msg), score] } - slim :scheduled + erb :scheduled end get "/scheduled/:key" do halt 404 unless params['key'] @job = Sidekiq::ScheduledSet.new.fetch(*parse_params(params['key'])).first redirect "#{root_path}scheduled" if @job.nil? - slim :scheduled_job_info + erb :scheduled_job_info end post '/scheduled' do @@ -296,7 +292,7 @@ module Sidekiq stats_history = Sidekiq::Stats::History.new((params[:days] || 30).to_i) @processed_history = stats_history.processed @failed_history = stats_history.failed - slim :dashboard + erb :dashboard end get '/dashboard/stats' do diff --git a/myapp/Gemfile b/myapp/Gemfile index 88f2a2cc..9526d8f7 100644 --- a/myapp/Gemfile +++ b/myapp/Gemfile @@ -14,7 +14,6 @@ gem 'sidekiq', :path => '..' gem 'capistrano' # sidekiq-web dependencies -gem 'slim', '1.1.0' gem 'sinatra' gem 'shotgun' diff --git a/sidekiq.gemspec b/sidekiq.gemspec index e16a056c..697b7c91 100644 --- a/sidekiq.gemspec +++ b/sidekiq.gemspec @@ -20,7 +20,6 @@ Gem::Specification.new do |gem| gem.add_dependency 'celluloid', '>= 0.14.1' gem.add_dependency 'json' gem.add_development_dependency 'sinatra' - gem.add_development_dependency 'slim', '>= 1.1.0' gem.add_development_dependency 'minitest', '~> 5' gem.add_development_dependency 'rake' gem.add_development_dependency 'actionmailer' diff --git a/web/views/_job_info.erb b/web/views/_job_info.erb new file mode 100644 index 00000000..8f00560d --- /dev/null +++ b/web/views/_job_info.erb @@ -0,0 +1,76 @@ +
+

<%= t('Job') %>

+
+ + + + + + + + + + + + + + + + + + + + + + + + <% unless retry_extra_items(job).empty? %> + + + + + <% end %> + <% if type == :retry %> + <% if job['retry_count'] && job['retry_count'] > 0 %> + + + + + + + + + <% else %> + + + + + <% end %> + + + + + <% end %> + <% if type == :scheduled %> + + + + + <% end %> + +
<%= t('Queue') %> + <%= job['queue'] %> +
<%= t('Class') %> + <%= job['class'] %> +
<%= t('Arguments') %> + + +
<%= display_args(job['args'], nil) %>
+
+
JID + <%= job.jid %> +
<%= t('Enqueued') %><%= relative_time(job.enqueued_at) %>
<%= t('Extras') %> + + <%= retry_extra_items(job).inspect %> + +
<%= t('RetryCount') %><%= job['retry_count'] %>
<%= t('LastRetry') %><%= relative_time(job['retried_at'].is_a?(Numeric) ? Time.at(job['retried_at']) : Time.parse(job['retried_at'])) %>
<%= t('OriginallyFailed') %><%= relative_time(job['failed_at'].is_a?(Numeric) ? Time.at(job['failed_at']) : Time.parse(job['failed_at'])) %>
<%= t('NextRetry') %><%= relative_time(job.at) %>
<%= t('Scheduled') %><%= relative_time(job.at) %>
diff --git a/web/views/_job_info.slim b/web/views/_job_info.slim deleted file mode 100644 index 48ea3442..00000000 --- a/web/views/_job_info.slim +++ /dev/null @@ -1,51 +0,0 @@ -header - h3 = t('Job') - -table class="table table-bordered table-striped" - tbody - tr - th = t('Queue') - td - a href="#{root_path}queues/#{job['queue']}" #{job['queue']} - tr - th = t('Class') - td - code= job['class'] - tr - th = t('Arguments') - td - code - // We don't want to truncate any job arguments when viewing a single job's status page - div.args-extended=display_args(job['args'], nil) - tr - th JID - td - code= job.jid - tr - th = t('Enqueued') - td== relative_time(job.enqueued_at) - - unless retry_extra_items(job).empty? - tr - th = t('Extras') - td - code - = retry_extra_items(job).inspect - - if type == :retry - - if job['retry_count'] && job['retry_count'] > 0 - tr - th = t('RetryCount') - td= job['retry_count'] - tr - th = t('LastRetry') - td== relative_time(job['retried_at'].is_a?(Numeric) ? Time.at(job['retried_at']) : Time.parse(job['retried_at'])) - - else - tr - th = t('OriginallyFailed') - td== relative_time(job['failed_at'].is_a?(Numeric) ? Time.at(job['failed_at']) : Time.parse(job['failed_at'])) - tr - th = t('NextRetry') - td== relative_time(job.at) - - if type == :scheduled - tr - th = t('Scheduled') - td== relative_time(job.at) diff --git a/web/views/_nav.erb b/web/views/_nav.erb new file mode 100644 index 00000000..cf165088 --- /dev/null +++ b/web/views/_nav.erb @@ -0,0 +1,23 @@ + diff --git a/web/views/_nav.slim b/web/views/_nav.slim deleted file mode 100644 index 05faca1e..00000000 --- a/web/views/_nav.slim +++ /dev/null @@ -1,16 +0,0 @@ -.navbar-inner - .container - a.brand href='#{{root_path}}' - = Sidekiq::NAME - ul.nav - - tabs.each do |title, url| - - if url == '' - li class="#{current_path == url ? 'active' : ''}" - a href="#{{root_path}}#{{url}}" = t(title) - - else - li class="#{current_path.start_with?(url) ? 'active' : ''}" - a href="#{{root_path}}#{{url}}" = t(title) - - - custom_tabs.each do |title, url| - li class="#{current_path.start_with?(url) ? 'active' : ''}" - a href="#{{root_path}}#{{url}}" = t(title) diff --git a/web/views/_paging.erb b/web/views/_paging.erb new file mode 100644 index 00000000..c7df58c1 --- /dev/null +++ b/web/views/_paging.erb @@ -0,0 +1,25 @@ +<% if @total_size > @count %> + +<% end %> diff --git a/web/views/_paging.slim b/web/views/_paging.slim deleted file mode 100644 index 2735cf15..00000000 --- a/web/views/_paging.slim +++ /dev/null @@ -1,15 +0,0 @@ -- if @total_size > @count - .pagination.pagination-right - ul - li class="#{'disabled' if @current_page == 1}" - a href="#{url}?page=1" « - - if @current_page > 1 - li - a href="#{url}?page=#{@current_page - 1}" #{@current_page - 1} - li.disabled - a href="#{url}?page=#{@current_page}" #{@current_page} - - if @total_size > @current_page * @count - li - a href="#{url}?page=#{@current_page + 1}" #{@current_page + 1} - li class="#{'disabled' if @total_size <= @current_page * @count}" - a href="#{url}?page=#{(@total_size.to_f / @count).ceil}" » diff --git a/web/views/_status.erb b/web/views/_status.erb new file mode 100644 index 00000000..8b0bbcd6 --- /dev/null +++ b/web/views/_status.erb @@ -0,0 +1,4 @@ + + + <% t(current_status) %> + diff --git a/web/views/_status.slim b/web/views/_status.slim deleted file mode 100644 index 4bba99ef..00000000 --- a/web/views/_status.slim +++ /dev/null @@ -1,3 +0,0 @@ -span.status - i class="status-sprite status-#{current_status}" - == t(current_status) diff --git a/web/views/_summary.erb b/web/views/_summary.erb new file mode 100644 index 00000000..cc7f2673 --- /dev/null +++ b/web/views/_summary.erb @@ -0,0 +1,26 @@ + diff --git a/web/views/_summary.slim b/web/views/_summary.slim deleted file mode 100644 index 101a1e17..00000000 --- a/web/views/_summary.slim +++ /dev/null @@ -1,19 +0,0 @@ -ul.unstyled.summary.row - li.processed.span2 - span.count #{number_with_delimiter(stats.processed)} - span.desc = t('Processed') - li.failed.span2 - span.count #{number_with_delimiter(stats.failed)} - span.desc = t('Failed') - li.busy.span2 - span.count #{number_with_delimiter(workers_size)} - span.desc = t('Busy') - li.scheduled.span2 - span.count #{number_with_delimiter(stats.scheduled_size)} - span.desc = t('Scheduled') - li.retries.span2 - span.count #{number_with_delimiter(stats.retry_size)} - span.desc = t('Retries') - li.enqueued.span2 - span.count #{number_with_delimiter(stats.enqueued)} - span.desc = t('Enqueued') diff --git a/web/views/_workers.erb b/web/views/_workers.erb new file mode 100644 index 00000000..2dd715be --- /dev/null +++ b/web/views/_workers.erb @@ -0,0 +1,29 @@ + + + + + + + + + <% workers.each_with_index do |(worker, msg), index| %> + + + + + + + + + <% end %> +
<%= t('Worker') %><%= t('Queue') %><%= t('Class') %><%= t('Arguments') %><%= t('Started') %>
<%= worker %> + = msg['queue'] %> + <%= msg['payload']['class'] %> + <% if msg['payload']['args'].to_s.size > 100 %> + <%= msg['payload']['args'].inspect[0..100] + "... " %> + + + <% else %> + <%= msg['payload']['args'] %> + <% end %> + <%= relative_time(msg['run_at'].is_a?(Numeric) ? Time.at(msg['run_at']) : Time.parse(msg['run_at'])) %>
diff --git a/web/views/_workers.slim b/web/views/_workers.slim deleted file mode 100644 index d85b99e7..00000000 --- a/web/views/_workers.slim +++ /dev/null @@ -1,21 +0,0 @@ -table class="workers table table-hover table-bordered table-striped table-white" - thead - th = t('Worker') - th = t('Queue') - th = t('Class') - th = t('Arguments') - th = t('Started') - - workers.each_with_index do |(worker, msg), index| - tr - td= worker - td - a href="#{root_path}queues/#{msg['queue']}" = msg['queue'] - td= msg['payload']['class'] - td - - if msg['payload']['args'].to_s.size > 100 - = msg['payload']['args'].inspect[0..100] + "... " - button data-toggle="collapse" data-target="#worker_#{index}" class="btn btn-mini" = t('ShowAll') - .toggle[id="worker_#{index}" style="display: none;max-width: 750px;"]= msg['payload']['args'] - - else - = msg['payload']['args'] - td== relative_time(msg['run_at'].is_a?(Numeric) ? Time.at(msg['run_at']) : Time.parse(msg['run_at'])) diff --git a/web/views/dashboard.erb b/web/views/dashboard.erb new file mode 100644 index 00000000..1442b528 --- /dev/null +++ b/web/views/dashboard.erb @@ -0,0 +1,59 @@ + + +

+ <%= t('Dashboard') %> + + + + +

+ +
+
+ +
+ <%= t('History') %> + "><%= t('OneWeek') %> + " ><%= t('OneMonth') %> + "><%= t('ThreeMonths') %> + "><%= t('SixMonths') %> +
+
+ +
+
Redis
+ +<% if @redis_info.fetch("redis_version", nil) %> +
+

<%= @redis_info.fetch("redis_version") %>

+

<%= t('Version') %>

+
+<% end %> + +<% if @redis_info.fetch("uptime_in_days", nil) %> +
+

<%= @redis_info.fetch("uptime_in_days") %>

+

<%= t('Uptime') %>

+
+<% end %> + +<% if @redis_info.fetch("connected_clients", nil) %> +
+

<%= @redis_info.fetch("connected_clients") %>

+

<%= t('Connections') %>

+
+<% end %> + +<% if @redis_info.fetch("used_memory_human", nil) %> +
+

<%= @redis_info.fetch("used_memory_human") %>

+

<%= t('MemoryUsage') %>

+
+<% end %> + +<% if @redis_info.fetch("used_memory_peak_human", nil) %> +
+

<%= @redis_info.fetch("used_memory_peak_human") %>

+

<%= @redis_info.fetch("used_memory_peak_human") %>

+
+<% end %> diff --git a/web/views/dashboard.slim b/web/views/dashboard.slim deleted file mode 100644 index a0a4d23d..00000000 --- a/web/views/dashboard.slim +++ /dev/null @@ -1,46 +0,0 @@ -script type="text/javascript" src="#{{root_path}}javascripts/dashboard.js" - -h3 - = t('Dashboard') - span.beacon - .ring - .dot - -h5 = t('Realtime') -#realtime - -h5 - span.history-heading = t('History') - a href="#{{root_path}}?days=7" class="history-graph #{{"active" if params[:days] == "7"}}" = t('OneWeek') - a href="#{{root_path}}" class="history-graph #{{"active" if params[:days].nil? || params[:days] == "30"}}" = t('OneMonth') - a href="#{{root_path}}?days=90" class="history-graph #{{"active" if params[:days] == "90"}}" = t('ThreeMonths') - a href="#{{root_path}}?days=180" class="history-graph #{{"active" if params[:days] == "180"}}" = t('SixMonths') -#history data-processed="#{Sidekiq.dump_json(@processed_history)}" data-failed="#{Sidekiq.dump_json(@failed_history)}" data-update-url="#{{root_path}}dashboard/stats" - -br -h5 Redis - -- if @redis_info.fetch("redis_version", nil) - .stat - h3.redis_version= @redis_info.fetch("redis_version") - p = t('Version') - -- if @redis_info.fetch("uptime_in_days", nil) - .stat - h3.uptime_in_days= @redis_info.fetch("uptime_in_days") - p = t('Uptime') - -- if @redis_info.fetch("connected_clients", nil) - .stat - h3.connected_clients= @redis_info.fetch("connected_clients") - p = t('Connections') - -- if @redis_info.fetch("used_memory_human", nil) - .stat - h3.used_memory_human= @redis_info.fetch("used_memory_human") - p = t('MemoryUsage') - -- if @redis_info.fetch("used_memory_peak_human", nil) - .stat - h3.used_memory_peak_human= @redis_info.fetch("used_memory_peak_human") - p = t('PeakMemoryUsage') diff --git a/web/views/index.erb b/web/views/index.erb new file mode 100644 index 00000000..c5c643b4 --- /dev/null +++ b/web/views/index.erb @@ -0,0 +1,16 @@ +
+
+

<%= t('Workers') %>

+
+
+ +<%= erb :_workers %> +<% if workers_size > 0 %> +
+
+
+ +
+
+
+<% end %> diff --git a/web/views/index.slim b/web/views/index.slim deleted file mode 100644 index 42a3d7c2..00000000 --- a/web/views/index.slim +++ /dev/null @@ -1,10 +0,0 @@ -.row.header - .span7 - h3 = t('Workers') - -== slim :_workers -- if workers_size > 0 - .row - .span2.pull-right - form action="#{root_path}reset" method="post" - button.btn.btn-primary.btn-block type="submit" = t('ClearWorkerList') diff --git a/web/views/layout.erb b/web/views/layout.erb new file mode 100644 index 00000000..cb45c7c7 --- /dev/null +++ b/web/views/layout.erb @@ -0,0 +1,73 @@ + + + + <%= Sidekiq::NAME %> + + + + + + <% if params[:poll] %> + + <% end %> + + + + +
+
+
+
+
+

+ <%= t('Status') %> + <%= erb :_status %> +

+ <% unless current_path == '' %> +
+ <% if params[:poll] %> + <%= t('StopPolling') %> + <% else %> + <%= t('LivePoll') %> + <% end %> +
+ <% end %> +
+ <%= erb :_summary %> +
+ +
+ <%= yield %> +
+
+
+
+ + + + diff --git a/web/views/layout.slim b/web/views/layout.slim deleted file mode 100644 index 126f0439..00000000 --- a/web/views/layout.slim +++ /dev/null @@ -1,50 +0,0 @@ -doctype html -html - head - title= Sidekiq::NAME - meta name="viewport" content="width=device-width,initial-scale=1.0" - link href='#{{root_path}}stylesheets/bootstrap.css' media='screen' rel='stylesheet' type='text/css' - link href='#{{root_path}}stylesheets/application.css' media='screen' rel='stylesheet' type='text/css' - script type="text/javascript" src="#{{root_path}}javascripts/application.js" - script type="text/javascript" src="#{{root_path}}javascripts/locales/jquery.timeago.#{locale}.js" - - - if params[:poll] - javascript: - setInterval("window.location.reload(true)", 2000); - - body.admin - .navbar.navbar-fixed-top - ==slim :_nav - - #page - .container - .row - .span12.summary_bar - .row - h4.span10 - span.title = t('Status') - == slim :_status - - unless current_path == '' - .span2.pull-right.actions - - if params[:poll] - a#live-poll.btn.btn-block.btn-primary.active href='#{{root_path}}#{{current_path}}' = t('StopPolling') - - else - a#live-poll.btn.btn-block.btn-primary href='#{{root_path}}#{{current_path}}?poll=true' = t('LivePoll') - == slim :_summary - - .span12 - == yield - - .navbar.navbar-fixed-bottom.navbar-inverse - .navbar-inner - .container - ul.nav - li - p.navbar-text style="color:white;" Sidekiq v#{Sidekiq::VERSION} - li - p.navbar-text Redis: #{location} - li - p.navbar-text #{t('Time')}: #{Time.now.utc.strftime('%H:%M:%S UTC')} - - if namespace - li - p.navbar-text #{t('Namespace')}: #{namespace} diff --git a/web/views/queue.erb b/web/views/queue.erb new file mode 100644 index 00000000..4a859fde --- /dev/null +++ b/web/views/queue.erb @@ -0,0 +1,38 @@ +
+
+

+ <%= t('CurrentMessagesInQueue', :queue => @name) %> +

+
+
+ <%= erb :_paging, :locals => { :url => "#{root_path}queues/#{@name}" } %> +
+
+ + + + + + + <% @messages.each_with_index do |msg, index| %> + + + + + + <% end %> +
<%= t('Class') %><%= t('Arguments') %>
<%= msg['class'] %> + <% if msg['args'] and msg['args'].to_s.size > 100 %> + <%= msg['args'].inspect[0..100] + "... " %> + + + <% else %> + <%= msg['args'] %> + <% end %> + +
+ + +
+
+<%= erb :_paging, :locals => { :url => "#{root_path}queues/#{@name}" } %> diff --git a/web/views/queue.slim b/web/views/queue.slim deleted file mode 100644 index 57ebb1bb..00000000 --- a/web/views/queue.slim +++ /dev/null @@ -1,27 +0,0 @@ -header.row - .span5 - h3 - == t('CurrentMessagesInQueue', :queue => @name) - .span4.pull-right - == slim :_paging, :locals => { :url => "#{root_path}queues/#{@name}" } - -table class="queue table table-hover table-bordered table-striped" - thead - th = t('Class') - th = t('Arguments') - th - - @messages.each_with_index do |msg, index| - tr - td= msg['class'] - td - - if msg['args'] and msg['args'].to_s.size > 100 - = msg['args'].inspect[0..100] + "... " - button data-toggle="collapse" data-target="#worker_#{index}" class="btn btn-mini" = t('ShowAll') - .toggle[id="worker_#{index}" style="display: none;"]= msg['args'] - - else - = msg['args'] - td - form action="#{root_path}queues/#{@name}/delete" method="post" - input name="key_val" value="#{Sidekiq.dump_json(msg)}" type="hidden" - input.btn.btn-danger.btn-mini type="submit" name="delete" value="#{t('Delete')}" data-confirm="#{t('AreYouSure')}" -== slim :_paging, :locals => { :url => "#{root_path}queues/#{@name}" } diff --git a/web/views/queues.erb b/web/views/queues.erb new file mode 100644 index 00000000..ebd62583 --- /dev/null +++ b/web/views/queues.erb @@ -0,0 +1,22 @@ +

<%= t('Queues') %>

+ + + + + + + + <% @queues.each do |queue| %> + + + + + + <% end %> +
<%= t('Queue') %><%= t('Size') %><%= t('Actions') %>
+ <%= queue.name %> + <%= number_with_delimiter(queue.size) %> +
+ +
+
diff --git a/web/views/queues.slim b/web/views/queues.slim deleted file mode 100644 index ceac0cfa..00000000 --- a/web/views/queues.slim +++ /dev/null @@ -1,15 +0,0 @@ -h3 = t('Queues') - -table class="queues table table-hover table-bordered table-striped table-white" - thead - th = t('Queue') - th = t('Size') - th = t('Actions') - - @queues.each do |queue| - tr - td - a href="#{root_path}queues/#{queue.name}" #{queue.name} - td= number_with_delimiter(queue.size) - td width="20%" - form action="#{root_path}queues/#{queue.name}" method="post" - input.btn.btn-danger.btn-small type="submit" name="delete" value="#{t('Delete')}" data-confirm="#{t('AreYouSureDeleteQueue', :queue => queue.name)}" diff --git a/web/views/retries.erb b/web/views/retries.erb new file mode 100644 index 00000000..b922861e --- /dev/null +++ b/web/views/retries.erb @@ -0,0 +1,57 @@ +
+
+

<%= t('Retries') %>

+
+
+ <% if @retries.size > 0 %> + <%= erb :_paging, :locals => { :url => "#{root_path}retries" } %> + <% end %> +
+
+ +<% if @retries.size > 0 %> +
+ + + + + + + + + + <% @retries.each do |msg, score| %> + + + + + + + + + <% end %> +
+ + <%= t('NextRetry') %><%= t('RetryCount') %><%= t('Queue') %><%= t('Worker') %><%= t('Arguments') %>
+ + + <%= relative_time(Time.at(score)) %> + <%= msg['retry_count'] %> + <%= msg['queue'] %> + <%= msg['class'] %> +
<%= display_args(msg['args']) %>
+
+ + +
+ +
+ +
+
+ +
+ +<% else %> +
<%= t('NoRetriesFound') %>
+<% end %> diff --git a/web/views/retries.slim b/web/views/retries.slim deleted file mode 100644 index f43d8203..00000000 --- a/web/views/retries.slim +++ /dev/null @@ -1,41 +0,0 @@ -header.row - .span5 - h3 = t('Retries') - .span4 - - if @retries.size > 0 - == slim :_paging, :locals => { :url => "#{root_path}retries" } - -- if @retries.size > 0 - - form action="#{root_path}retries" method="post" - table class="table table-striped table-bordered table-white" - tr - th width="20px" - input type="checkbox" class="check_all" - th width="25%" = t('NextRetry') - th width="11%" = t('RetryCount') - th = t('Queue') - th = t('Worker') - th = t('Arguments') - - @retries.each do |msg, score| - tr - td - input type='checkbox' name='key[]' value='#{job_params(msg, score)}' - td - a href="#{root_path}retries/#{job_params(msg, score)}"== relative_time(Time.at(score)) - td= msg['retry_count'] - td - a href="#{root_path}queues/#{msg['queue']}" #{msg['queue']} - td= msg['class'] - td - div.args=display_args(msg['args']) - input.btn.btn-primary.btn-small.pull-left type="submit" name="retry" value="#{t('RetryNow')}" - input.btn.btn-danger.btn-small.pull-left type="submit" name="delete" value="#{t('Delete')}" - - form action="#{root_path}retries/all/delete" method="post" - input.btn.btn-danger.btn-small.pull-right type="submit" name="delete" value="#{t('DeleteAll')}" data-confirm="#{t('AreYouSure')}" - form action="#{root_path}retries/all/retry" method="post" - input.btn.btn-danger.btn-small.pull-right type="submit" name="retry" value="#{t('RetryAll')}" data-confirm="#{t('AreYouSure')}" - -- else - .alert.alert-success = t('NoRetriesFound') diff --git a/web/views/retry.erb b/web/views/retry.erb new file mode 100644 index 00000000..9dc8631d --- /dev/null +++ b/web/views/retry.erb @@ -0,0 +1,30 @@ +<%= erb :_job_info, :locals => {:job => @retry, :type => :retry} %> + +

<%= t('Error') %>

+ + + + + + + + + + + <% if !@retry['error_backtrace'].nil? %> + + + + + <% end %> + +
<%= t('ErrorClass') %> + <%= @retry['error_class'] %> +
<%= t('ErrorMessage') %><%= @retry['error_message'] %>
<%= t('ErrorBacktrace') %> + <%= @retry['error_backtrace'].join("
") %>
+
+
+ <%= t('GoBack') %> + + +
diff --git a/web/views/retry.slim b/web/views/retry.slim deleted file mode 100644 index 1954094a..00000000 --- a/web/views/retry.slim +++ /dev/null @@ -1,21 +0,0 @@ -== slim :_job_info, :locals => {:job => @retry, :type => :retry} - -h3 = t('Error') -table class="error table table-bordered table-striped" - tbody - tr - th = t('ErrorClass') - td - code= @retry['error_class'] - tr - th = t('ErrorMessage') - td= @retry['error_message'] - - if !@retry['error_backtrace'].nil? - tr - th = t('ErrorBacktrace') - td - code== @retry['error_backtrace'].join("
") -form.form-horizontal action="#{root_path}retries/#{job_params(@retry, @retry.score)}" method="post" - a.btn href="#{root_path}retries" = t('GoBack') - input.btn.btn-primary type="submit" name="retry" value="#{t('RetryNow')}" - input.btn.btn-danger type="submit" name="delete" value="#{t('Delete')}" diff --git a/web/views/scheduled.erb b/web/views/scheduled.erb new file mode 100644 index 00000000..0e105c3b --- /dev/null +++ b/web/views/scheduled.erb @@ -0,0 +1,48 @@ +
+
+

<%= t('ScheduledJobs') %>

+
+
+ <% if @scheduled.size > 0 %> + <%= erb :_paging, :locals => { :url => "#{root_path}scheduled" } %> + <% end %> +
+
+ +<% if @scheduled.size > 0 %> + +
+ + + + + + + + + <% @scheduled.each do |msg, score| %> + + + + + + + + <% end %> +
+ + <%= t('When') %><%= t('Queue') %><%= t('Worker') %><%= t('Arguments') %>
+ + + <%= relative_time(Time.at(score)) %> + + <%= msg['queue'] %> + <%= msg['class'] %> +
<%= display_args(msg['args']) %>
+
+ + +
+<% else %> +
<%= t('NoScheduledFound') %>
+<% end %> diff --git a/web/views/scheduled.slim b/web/views/scheduled.slim deleted file mode 100644 index e8b5dcd2..00000000 --- a/web/views/scheduled.slim +++ /dev/null @@ -1,33 +0,0 @@ -header.row - .span5 - h3 = t('ScheduledJobs') - .span4 - - if @scheduled.size > 0 - == slim :_paging, :locals => { :url => "#{root_path}scheduled" } - -- if @scheduled.size > 0 - - form action="#{root_path}scheduled" method="post" - table class="table table-striped table-bordered table-white" - thead - th width="20px" - input type="checkbox" class="check_all" - th width="25%" = t('When') - th width="10%" = t('Queue') - th = t('Worker') - th = t('Arguments') - - @scheduled.each do |msg, score| - tr - td - input type='checkbox' name='key[]' value='#{job_params(msg, score)}' - td - a href="#{root_path}scheduled/#{job_params(msg, score)}"== relative_time(Time.at(score)) - td - a href="#{root_path}queues/#{msg['queue']}" #{msg['queue']} - td= msg['class'] - td - div.args=display_args(msg['args']) - input.btn.btn-danger.pull-right type="submit" name="delete" value="#{t('Delete')}" - input.btn.btn-danger.pull-right type="submit" name="add_to_queue" value="#{t('AddToQueue')}" -- else - .alert.alert-success = t('NoScheduledFound') diff --git a/web/views/scheduled_job_info.erb b/web/views/scheduled_job_info.erb new file mode 100644 index 00000000..039c3664 --- /dev/null +++ b/web/views/scheduled_job_info.erb @@ -0,0 +1,7 @@ +<%= erb :_job_info, :locals => {:job => @job, :type => :scheduled} %> + +
+ <%= t('GoBack') %> + + +
diff --git a/web/views/scheduled_job_info.slim b/web/views/scheduled_job_info.slim deleted file mode 100644 index 0970dc54..00000000 --- a/web/views/scheduled_job_info.slim +++ /dev/null @@ -1,6 +0,0 @@ -== slim :_job_info, :locals => {:job => @job, :type => :scheduled} - -form.form-horizontal action="#{root_path}scheduled/#{job_params(@job, @job.score)}" method="post" - a.btn href="#{root_path}scheduled" = t('GoBack') - input.btn.btn-primary type="submit" name="add_to_queue" value="#{t('AddToQueue')}" - input.btn.btn-danger type="submit" name="delete" value="#{t('Delete')}"