From 230f5ec213b50442c208051ed7e37a07f41c5286 Mon Sep 17 00:00:00 2001 From: Christoph Haas Date: Tue, 23 Aug 2016 19:01:01 +0200 Subject: [PATCH] Logs controller added --- app/assets/javascripts/logs.coffee | 3 +++ app/assets/stylesheets/logs.scss | 3 +++ app/controllers/logs_controller.rb | 7 +++++++ app/helpers/logs_helper.rb | 2 ++ app/views/logs/_paginator.slim | 8 ++++++++ app/views/logs/index.html.slim | 26 ++++++++++++++++++++++++ config/routes.rb | 1 + test/controllers/logs_controller_test.rb | 9 ++++++++ test/helpers/logs_helper_test.rb | 7 +++++++ 9 files changed, 66 insertions(+) create mode 100644 app/assets/javascripts/logs.coffee create mode 100644 app/assets/stylesheets/logs.scss create mode 100644 app/controllers/logs_controller.rb create mode 100644 app/helpers/logs_helper.rb create mode 100644 app/views/logs/_paginator.slim create mode 100644 app/views/logs/index.html.slim create mode 100644 test/controllers/logs_controller_test.rb create mode 100644 test/helpers/logs_helper_test.rb diff --git a/app/assets/javascripts/logs.coffee b/app/assets/javascripts/logs.coffee new file mode 100644 index 0000000..24f83d1 --- /dev/null +++ b/app/assets/javascripts/logs.coffee @@ -0,0 +1,3 @@ +# Place all the behaviors and hooks related to the matching controller here. +# All this logic will automatically be available in application.js. +# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/stylesheets/logs.scss b/app/assets/stylesheets/logs.scss new file mode 100644 index 0000000..4f6a162 --- /dev/null +++ b/app/assets/stylesheets/logs.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the logs controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/logs_controller.rb b/app/controllers/logs_controller.rb new file mode 100644 index 0000000..e63b34e --- /dev/null +++ b/app/controllers/logs_controller.rb @@ -0,0 +1,7 @@ +class LogsController < ApplicationController + before_action :authenticate_user! + + def index + @logs = Log.paginate(page: params[:page], per_page: 20) + end +end diff --git a/app/helpers/logs_helper.rb b/app/helpers/logs_helper.rb new file mode 100644 index 0000000..99736f0 --- /dev/null +++ b/app/helpers/logs_helper.rb @@ -0,0 +1,2 @@ +module LogsHelper +end diff --git a/app/views/logs/_paginator.slim b/app/views/logs/_paginator.slim new file mode 100644 index 0000000..81eab7d --- /dev/null +++ b/app/views/logs/_paginator.slim @@ -0,0 +1,8 @@ +- if @logs.length>0 + // Use different pagination navigators depending on the screen width + div.show-for-large + =will_paginate @logs, :renderer => FoundationPaginationRenderer, :inner_window => 3 + div.show-for-medium-only + =will_paginate @logs, :renderer => FoundationPaginationRenderer, :inner_window => 1 + div.show-for-small-only + =will_paginate @logs, :renderer => FoundationPaginationRenderer, :page_links => false diff --git a/app/views/logs/index.html.slim b/app/views/logs/index.html.slim new file mode 100644 index 0000000..c37aa39 --- /dev/null +++ b/app/views/logs/index.html.slim @@ -0,0 +1,26 @@ +// Paginator and search bar +.row + .small-6.medium-8.large-9.columns + // Paginator + = render 'logs/paginator' + + .small-6.medium-4.large-3.columns + // Search form + = render 'packages/searchfield' + +// List of log messages +.row + - if @logs.length>0 + table + tr + th Timestamp + th Message + - @logs.each do |log| + tr + th =log.created_at + th =log.message + - else + p No logs. Crazy. + + // Second paginator at the bottom so the user does not have to scroll up again + = render 'logs/paginator' diff --git a/config/routes.rb b/config/routes.rb index caf3224..5eafc3d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -15,6 +15,7 @@ Debshots::Application.routes.draw do get 'packages' => 'packages#grid', as: :packages_grid get 'packages/list' => 'packages#list', as: :packages_list get 'moderate' => 'moderate#index' + get 'logs' => 'logs#index' get 'package/:name' => 'packages#details', as: :package, name: /[^\/]+/ get 'package_reviews/:name' => 'packages#reviews', as: :package_reviews, name: /[^\/]+/ get 'upload', to: redirect('/packages') # legacy upload form diff --git a/test/controllers/logs_controller_test.rb b/test/controllers/logs_controller_test.rb new file mode 100644 index 0000000..8e83d94 --- /dev/null +++ b/test/controllers/logs_controller_test.rb @@ -0,0 +1,9 @@ +require "test_helper" + +class LogsControllerTest < ActionController::TestCase + def test_index + get :index + assert_response :success + end + +end diff --git a/test/helpers/logs_helper_test.rb b/test/helpers/logs_helper_test.rb new file mode 100644 index 0000000..581447c --- /dev/null +++ b/test/helpers/logs_helper_test.rb @@ -0,0 +1,7 @@ +require "test_helper" + +class LogsHelperTest < ActionView::TestCase + def test_sanity + flunk "Need real tests" + end +end