From eb4b0024d48daee3b4810a6caad320899cc8f7a4 Mon Sep 17 00:00:00 2001 From: Harish Krishna Date: Sat, 2 Jan 2016 17:54:51 -0500 Subject: [PATCH] grade filter (backend and a naive frontend) --- app/assets/javascripts/application.js | 9 ++++++++- app/controllers/daycare_controller.rb | 4 ++++ app/views/daycare/_daycare.html.slim | 2 +- app/views/daycare/grade.html.slim | 15 +++++++++++++++ app/views/layouts/application.html.slim | 7 +++++-- config/routes.rb | 1 + 6 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 app/views/daycare/grade.html.slim diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 54996b6..e1e9a1a 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -18,4 +18,11 @@ //= require jquery/jquery.shorten //= require map -$('.ui.dropdown').dropdown(); \ No newline at end of file +$(function(){ + $('.ui.dropdown').dropdown({ + onChange: function(e) { + e = e.toLowerCase(); + window.location = e === 'all' ? "/" : "/grade/" + e; + } + }); +}); \ No newline at end of file diff --git a/app/controllers/daycare_controller.rb b/app/controllers/daycare_controller.rb index bcd319e..bb4e5fd 100644 --- a/app/controllers/daycare_controller.rb +++ b/app/controllers/daycare_controller.rb @@ -6,4 +6,8 @@ def index def show @daycare = Daycare.find_by(permalink: params[:id]) end + + def grade + @daycares = Daycare.where(grade: params[:grade]).page(params[:page]) + end end diff --git a/app/views/daycare/_daycare.html.slim b/app/views/daycare/_daycare.html.slim index 6934c1b..c929734 100644 --- a/app/views/daycare/_daycare.html.slim +++ b/app/views/daycare/_daycare.html.slim @@ -10,7 +10,7 @@ .image .grade class="grade-#{daycare.grade}"= daycare.grade .content - .header=link_to(daycare.center_name, "daycare/#{daycare.permalink}") + .header=link_to(daycare.center_name, "/daycare/#{daycare.permalink}") .street_address small= daycare.address .city_state_info diff --git a/app/views/daycare/grade.html.slim b/app/views/daycare/grade.html.slim new file mode 100644 index 0000000..c2b1cb6 --- /dev/null +++ b/app/views/daycare/grade.html.slim @@ -0,0 +1,15 @@ += javascript_include_tag "daycares" + +.ui.stackable.grid#results + .two.column.row + .column + .ui.basic.segment + .ui.large.divided.list.results-list + - @daycares.each do |daycare| + = render "daycare", daycare: daycare, details: false + + .ui.basic.segment + = paginate @daycares + .column + .map-wrapper + #map diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index 761c87c..c31693c 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -47,11 +47,14 @@ html lang="en" .ui.green.empty.circular.label | B .item(data-value="C") - .ui.orange.empty.circular.label + .ui.yellow.empty.circular.label | C .item(data-value="D") - .ui.red.empty.circular.label + .ui.orange.empty.circular.label | D + .item(data-value="E") + .ui.red.empty.circular.label + | E .ui.stackable.secondary.menu .header.item .item.violations diff --git a/config/routes.rb b/config/routes.rb index f3d0206..ce589fa 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,6 +1,7 @@ Rails.application.routes.draw do get "/" => "daycare#index" get "/daycare/:id" => "daycare#show" + get "/grade/:grade" => "daycare#grade" # get "/auth/auth0/callback" => "auth0#callback" # get "/auth/failure" => "auth0#failure"