diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss index a0b3abbfbfa5e83c7398203012ab736101dae2b5..4752dfd4d7f919792feaf11ccbe4d56e98b1071d 100644 --- a/app/assets/stylesheets/common.scss +++ b/app/assets/stylesheets/common.scss @@ -903,3 +903,20 @@ li.note { .milestone { @extend .wll; } + +/** + * Admin area + * + */ +.admin_dash { + .data { + a { + h1 { + line-height:48px; + font-size:48px; + padding:20px; + text-align:center; + } + } + } +} diff --git a/app/controllers/admin/dashboard_controller.rb b/app/controllers/admin/dashboard_controller.rb new file mode 100644 index 0000000000000000000000000000000000000000..ad80f4d59030fa53e1328635bf58f3378b292e24 --- /dev/null +++ b/app/controllers/admin/dashboard_controller.rb @@ -0,0 +1,12 @@ +class Admin::DashboardController < ApplicationController + layout "admin" + before_filter :authenticate_user! + before_filter :authenticate_admin! + + def index + @workers = Resque.workers + @pending_jobs = Resque.size(:post_receive) + @projects = Project.order("created_at DESC").limit(10) + @users = User.order("created_at DESC").limit(10) + end +end diff --git a/app/views/admin/dashboard/index.html.haml b/app/views/admin/dashboard/index.html.haml new file mode 100644 index 0000000000000000000000000000000000000000..b5b453d51854f88c6b28be9be1092b42a2a2487f --- /dev/null +++ b/app/views/admin/dashboard/index.html.haml @@ -0,0 +1,45 @@ +.admin_dash.row + .span4 + .ui-box + %h5 + Resque Workers + .data.padded + = link_to "/info/resque" do + %h1{:class => @workers.present? ? "cgreen" : "cred"} + = @workers.count + %hr + %p + %strong{:class => @pending_jobs > 0 ? "cred" : "cgreen"} + #{@pending_jobs} post receive jobs waiting + + .span4 + .ui-box + %h5 Projects + .data.padded + = link_to admin_projects_path do + %h1= Project.count + %hr + = link_to 'New Project', new_admin_project_path, :class => "btn small" + .span4 + .ui-box + %h5 Users + .data.padded + = link_to admin_users_path do + %h1= User.count + %hr + = link_to 'New User', new_admin_user_path, :class => "btn small" + + +.row + .span6 + %h3 Latest projects + %hr + - @projects.each do |project| + %h5 + = link_to project.name, [:admin, project] + .span6 + %h3 Latest users + %hr + - @users.each do |user| + %h5 + = link_to user.name, [:admin, user] diff --git a/app/views/layouts/admin.html.haml b/app/views/layouts/admin.html.haml index a71dd57de02619fc290250bcfba4911d751bbd84..2d5387c0357feb1abb1ca06f9dd393b2a853f2e9 100644 --- a/app/views/layouts/admin.html.haml +++ b/app/views/layouts/admin.html.haml @@ -7,6 +7,7 @@ .container %nav.main_menu = render "layouts/const_menu_links" + = link_to "Stats", admin_root_path, :class => controller.controller_name == "dashboard" ? "current" : nil = link_to "Projects", admin_projects_path, :class => controller.controller_name == "projects" ? "current" : nil = link_to "Users", admin_users_path, :class => controller.controller_name == "users" ? "current" : nil = link_to "Emails", admin_emails_path, :class => controller.controller_name == "mailer" ? "current" : nil diff --git a/config/routes.rb b/config/routes.rb index 6e29ec7e3dd9af2f66fcd6db3892b41e7b4ca658..a6e32bc1f5b8a38a525a877b02528ce485bc22ec 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -29,7 +29,7 @@ Gitlab::Application.routes.draw do get 'mailer/preview_note' get 'mailer/preview_user_new' get 'mailer/preview_issue_new' - root :to => "users#index" + root :to => "dashboard#index" end get "errors/githost"