Page Menu
Home
GRNET
Search
Configure Global Search
Log In
Files
F1969809
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, May 17, 10:50 AM
Size
6 KB
Mime Type
text/x-diff
Expires
Tue, May 19, 10:50 AM (1 d, 46 m)
Engine
blob
Format
Raw Data
Handle
385263
Attached To
rWEBDNS WebDNS (edet4)
View Options
diff --git a/app/controllers/admin/jobs_controller.rb b/app/controllers/admin/jobs_controller.rb
index 48d6d8c..486203d 100644
--- a/app/controllers/admin/jobs_controller.rb
+++ b/app/controllers/admin/jobs_controller.rb
@@ -1,41 +1,43 @@
module Admin
class JobsController < ApplicationController
before_action :authenticate_user!
before_action :admin_only!
before_action :job, only: [:destroy, :update]
# GET /jobs
def index
@job_categories = {
'Pending' => Job.includes(:domain).pending,
'Completed' => Job.includes(:domain).completed.order('id desc')
}
+
+ @category = params[:category] || 'pending'
end
# DELETE /jobs/1
def destroy
@job.destroy
redirect_to admin_jobs_url, notice: "#{@job.id} was successfully destroyed."
end
# PUT /jobs/1
def update
if @job.update(job_params)
redirect_to admin_jobs_url, notice: 'Job was successfully updated.'
else
render :edit
end
end
private
def job
@job = Job.find(params[:id])
end
def job_params
params.require(:job).permit(:status)
end
end
end
diff --git a/app/views/admin/jobs/index.html.erb b/app/views/admin/jobs/index.html.erb
index eb795fe..d2b4434 100644
--- a/app/views/admin/jobs/index.html.erb
+++ b/app/views/admin/jobs/index.html.erb
@@ -1,53 +1,55 @@
<ul class="nav nav-tabs">
<% @job_categories.each_with_index do |pair, idx| %>
<% title, jobs = pair %>
- <li role="presentation" class="<%= 'active' if idx.zero? %>"><a data-toggle="tab" href="#<%= title.downcase %>"><%= title %></a></li>
+ <% active = title.downcase == @category.try(:to_s) %>
+ <li role="presentation" class="<%= 'active' if active %>"><a data-toggle="tab" href="#<%= title.downcase %>"><%= title %></a></li>
<% end %>
</ul>
<div class="tab-content">
<% @job_categories.each_with_index do |pair, idx| %>
<% title, jobs = pair %>
- <div role="tabpanel" class="tab-pane <%= 'active' if idx.zero? %>" id="<%= title.downcase %>">
+ <% active = title.downcase == @category.try(:to_s) %>
+ <div role="tabpanel" class="tab-pane <%= 'active' if active %>" id="<%= title.downcase %>">
<table class="table table-striped">
<thead>
<tr>
<th>Id</th>
<th>Created at</th>
<th>Domain</th>
<th>Type</th>
<th>Args</th>
<th>Retries</th>
<th colspan="2">Controls</th>
</tr>
</thead>
<tbody>
<% jobs.each do |job| %>
<tr class="<%= 'danger' if job.failed? %>">
<td><%= job.id %></td>
<td><%= job.created_at %></td>
<% if job.domain %>
<td><%= link_to job.domain.name, domain_path(job.domain) %></td>
<% else %>
<td><%= job.arguments['zone'] %></td>
<% end %>
<td><%= job.job_type %></td>
<% if job.args.size > 70 %>
<td data-toggle="tooltip" data-placement="right" title="<%= job.args %>"><%= truncate(job.args, length: 70) %></td>
<% else %>
<td><%= job.args %></td>
<% end %>
<td><%= job.retries %></td>
<td>
<%= link_to('done', done_admin_job_path(job), method: :put) unless job.done? %>
<%= link_to('pending', pending_admin_job_path(job), method: :put) if job.failed? %>
</td>
<td><%= link_to_destroy admin_job_path(job), method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>
</table>
</div>
<% end %>
</div>
diff --git a/config/routes.rb b/config/routes.rb
index c76f3ab..291cad9 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,79 +1,81 @@
Rails.application.routes.draw do
# Override devise user removal
devise_scope :users do
delete :users, to: redirect('/')
end
devise_for :users
get '/auth/saml', to: 'auth#saml'
root to: redirect('/domains')
resources :users, only: [] do
get :token, to: 'users#token', on: :member
post :generate_token, to: 'users#generate_token', on: :member
end
resources :groups, only: [:show] do
get :search_member,
to: 'groups#search_member', on: :member
post :members,
to: 'groups#create_member', as: :create_member, on: :member
delete 'member/:user_id',
to: 'groups#destroy_member', as: :destroy_member, on: :member
end
resources :domains do
get :edit_dnssec, to: 'domains#edit_dnssec', on: :member
delete :full_destroy, to: 'domains#full_destroy', on: :member
resources :records, except: [:index, :show] do
# Reuse records#update instead of introducing new controller actions
#
# rubocop:disable Style/AlignHash
put :disable, to: 'records#update', on: :member,
defaults: { record: { disabled: true } }
put :enable, to: 'records#update', on: :member,
defaults: { record: { disabled: false } }
put :editable, to: 'records#editable', on: :collection
post :valid, to: 'records#valid', on: :collection
post :bulk, to: 'records#bulk', on: :collection
# rubocop:enable Style/AlignHash
end
end
get '/records/search', to: 'records#search'
# Admin
namespace :admin do
root to: redirect('/admin/groups')
resources :groups, except: [:show]
resources :jobs, only: [:index, :destroy] do
put :done, to: 'jobs#update', on: :member,
defaults: { job: { status: 1 } }
put :pending, to: 'jobs#update', on: :member,
defaults: { job: { status: 0 } }
+ get '/type/:category', to: 'jobs#index', on: :collection,
+ constraints: proc { |req| ['completed', 'pending'].include?(req.params[:category]) }
end
resources :users, only: [:destroy] do
get :orphans, to: 'users#orphans', on: :collection
put :update_groups, to: 'users#update_groups', on: :collection
end
end
# API
scope '/api' do
get :ping, to: 'api#ping'
get :whoami, to: 'api#whoami'
get '/domain/:domain/list', to: 'api#list', constraints: { domain: /[^\/]+/}
post '/domain/:domain/bulk', to: 'api#bulk', constraints: { domain: /[^\/]+/}
end if WebDNS.settings[:api]
# Private
put 'private/replace_ds', to: 'private#replace_ds'
put 'private/trigger_event', to: 'private#trigger_event'
get 'private/zones', to: 'private#zones'
get 'help/api', to: 'help#api'
end
Event Timeline
Log In to Comment