Page MenuHomeGRNET

No OneTemporary

File Metadata

Created
Mon, Dec 8, 4:29 PM
diff --git a/app/controllers/admin/base_controller.rb b/app/controllers/admin/base_controller.rb
new file mode 100644
index 0000000..835b2df
--- /dev/null
+++ b/app/controllers/admin/base_controller.rb
@@ -0,0 +1,24 @@
+class Admin::BaseController < ApplicationController
+ before_action :require_admin
+
+ def index
+ @client_ids = Client.pluck(:ClientId)
+ get_charts
+ render 'admin/index'
+ end
+
+ protected
+
+ def get_charts
+ days_ago = params.fetch(:days_back, 7).to_i rescue 7
+ @job_status = ChartGenerator.job_statuses(@client_ids, days_ago)
+ @job_stats = ChartGenerator.job_stats(@client_ids, days_ago - 1)
+ end
+
+ def require_admin
+ return if current_user.try(:admin?)
+
+ flash[:alert] = 'You need to log in first'
+ redirect_to root_path
+ end
+end
diff --git a/app/views/admin/index.html.erb b/app/views/admin/index.html.erb
new file mode 100644
index 0000000..be1cc05
--- /dev/null
+++ b/app/views/admin/index.html.erb
@@ -0,0 +1,3 @@
+<h1>BaaS</h1>
+
+<%= render partial: 'clients/client_graphs', locals: { path: admin_path } %>
diff --git a/app/views/shared/_nav.html.erb b/app/views/shared/_nav.html.erb
index 148beee..fefa4ff 100644
--- a/app/views/shared/_nav.html.erb
+++ b/app/views/shared/_nav.html.erb
@@ -1,29 +1,34 @@
<!-- Fixed navbar -->
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">Baas</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="/clients">Clients</a></li>
<li><a href="/contact">Contact</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Profile <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Logout</a></li>
<li class="divider"></li>
<li class="dropdown-header">Profile</li>
<li><a href="#">Edit</a></li>
</ul>
</li>
</ul>
+ <ul class="nav navbar-nav navbar-right">
+ <% if current_user.admin? %>
+ <li><%= link_to 'Admin', admin_path %></li>
+ <% end %>
+ </ul>
</div><!--/.nav-collapse -->
</div>
</nav>
diff --git a/config/routes.rb b/config/routes.rb
index b2d7f87..d8f978d 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,24 +1,28 @@
Rails.application.routes.draw do
+ root 'clients#index'
+
resources :clients, only: [:index, :show]
resources :hosts, only: [:new, :create, :show, :edit, :update, :destroy] do
member do
post :submit_config
get :restore
post :run_restore
delete :revoke
end
resources :jobs, only: [:new, :create, :show, :edit, :update, :destroy] do
member do
patch :toggle_enable
post :backup_now
end
end
resources :filesets, only: [:show, :new, :create, :destroy]
resources :schedules, only: [:show, :new, :edit, :create, :update, :destroy]
end
- root 'clients#index'
+ namespace :admin do
+ get '/' => 'base#index'
+ end
end

Event Timeline