Skip to content
This repository has been archived by the owner on Jan 24, 2020. It is now read-only.

Commit

Permalink
Adds attribute filtering for repositories index view
Browse files Browse the repository at this point in the history
  • Loading branch information
Erin Fahy committed Aug 18, 2017
1 parent 7755f18 commit 5ccdbe9
Show file tree
Hide file tree
Showing 7 changed files with 81 additions and 9 deletions.
3 changes: 3 additions & 0 deletions app/assets/images/logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions app/assets/stylesheets/application.scss
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,11 @@
.badge-repos a:visited {
color: #FFFFFF
}

.fixed-top-2 {
margin-top: 57px;
}

.repo-table {
padding-top: 111px;
}
2 changes: 1 addition & 1 deletion app/controllers/repositories_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

class RepositoriesController < ApplicationController
def index
@repositories = Repository.filter(params.slice(:language, :deployable, :monitorable, :tested, :documented))
@repositories = Repository.order(:name).filter(params.slice(:language, :deployable, :monitorable, :tested, :documented))
end

def show
Expand Down
21 changes: 21 additions & 0 deletions app/views/repositories/_repo_navbar.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<nav class="navbar navbar-light bg-faded fixed-top fixed-top-2">
<%= form_tag repositories_path, method: :get, enforce_utf8: false , class: 'form-inline justify-content-center' do %>
<label class="mr-sm-2">Language</label>
<%= select_tag 'language', options_for_select(@repositories.collect { |repo| repo.language }.uniq, selected: params[:language]), include_blank: true, class: 'custom-select mr-sm-2' %>

<label class="mr-sm-2">Deployable</label>
<%= select_tag 'deployable', options_for_select([true, false], selected: params[:deployable]), include_blank: true, class: 'custom-select mr-sm-2' %>

<label class="mr-sm-2">Monitorable</label>
<%= select_tag 'monitorable', options_for_select([true, false], selected: params[:monitorable]), include_blank: true, class: 'custom-select mr-sm-2' %>

<label class="mr-sm-2">Tested</label>
<%= select_tag 'tested', options_for_select([true, false], selected: params[:tested]), include_blank: true, class: 'custom-select mr-sm-2' %>

<label class="mr-sm-2">Documented</label>
<%= select_tag 'documented', options_for_select([true, false], selected: params[:documented]), include_blank: true, class: 'custom-select mr-sm-2' %>
<%= submit_tag 'Filter', class: 'btn btn-outline-primary btn-sm mr-sm-2', name: nil %>
<%= link_to 'Reset', repositories_path, class: 'btn btn-outline-secondary btn-sm' %>
<% end %>
</nav>
3 changes: 2 additions & 1 deletion app/views/repositories/index.html.erb
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<div class="container">
<%= render 'repo_navbar' %>
<div class="container repo-table">
<table class="table table-hover">
<thead>
</thead>
Expand Down
9 changes: 2 additions & 7 deletions app/views/shared/_navbar.html.erb
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
<nav class="navbar navbar-toggleable-md navbar-light bg-faded">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<%= link_to 'Quimby', root_path, class: "navbar-brand" %>
<div class="collapse navbar-collapse" id="navbarNav">
<nav class="navbar navbar-toggleable-sm navbar-inverse fixed-top" style="background-color: #6bb5ea;">
<%= link_to image_tag('logo.svg') + ' Quimby', root_path, class: "navbar-brand" %>
<ul class="navbar-nav mr-auto">
<% if current_page?(repositories_path) || current_page?(root_path) %>
<li class="nav-item active">
Expand All @@ -20,5 +16,4 @@
<%= link_to 'Servers', servers_path, class: 'nav-link' %>
</li>
</ul>
</div>
</nav>
44 changes: 44 additions & 0 deletions spec/features/repositories_table_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,48 @@
expect(body).to have_text('okcomputer')
expect(body).to have_text('is_it_working')
end

it 'form sets valid params' do
create(:repository_index)
visit repositories_path
find('#deployable').select('true')
find('#documented').select('false')
find('#language').select('ruby')
find('#monitorable').select('true')
find('#tested').select('true')
click_button 'Filter'
expect(body).to have_link('Hello-World', href: '/repositories/Hello-World')
end

it 'filters from deployable' do
create(:repository_index)
visit repositories_path
find('#deployable').select('false')
click_button 'Filter'
expect(body).not_to have_link('Hello-World', href: '/repositories/Hello-World')
end

it 'filters from documented' do
create(:repository_index)
visit repositories_path
find('#documented').select('true')
click_button 'Filter'
expect(body).not_to have_link('Hello-World', href: '/repositories/Hello-World')
end

it 'filters from monitorable' do
create(:repository_index)
visit repositories_path
find('#monitorable').select('false')
click_button 'Filter'
expect(body).not_to have_link('Hello-World', href: '/repositories/Hello-World')
end

it 'filters from tested' do
create(:repository_index)
visit repositories_path
find('#tested').select('false')
click_button 'Filter'
expect(body).not_to have_link('Hello-World', href: '/repositories/Hello-World')
end
end

0 comments on commit 5ccdbe9

Please sign in to comment.