From f940e960140a7445f5a0480100c1be7213fba102 Mon Sep 17 00:00:00 2001 From: Christoph Haas Date: Sun, 30 Nov 2014 19:25:21 +0100 Subject: [PATCH] Packages grid/list view are different controller actions now --- app/controllers/packages_controller.rb | 21 ++++++++-------- app/views/packages/_sidebar.slim | 33 +++++++++++++------------- app/views/packages/index-grid.slim | 2 +- app/views/packages/index-list.slim | 2 +- app/views/welcome/home.slim | 2 +- config/routes.rb | 3 ++- 6 files changed, 32 insertions(+), 31 deletions(-) diff --git a/app/controllers/packages_controller.rb b/app/controllers/packages_controller.rb index 94d934d..d0242b6 100644 --- a/app/controllers/packages_controller.rb +++ b/app/controllers/packages_controller.rb @@ -19,17 +19,18 @@ class PackagesController < ApplicationController @packages = @packages.without_screenshots logger.debug 'Limiting packages to those without screenshots' end + end - # Show packages as list or grid - if params['view']=='list' - # List view - @packages = @packages.paginate(page: params[:page], per_page: 12) - render 'packages/index-list.slim' - else - # Grid view - @packages = @packages.paginate(page: params[:page], per_page: 24) - render 'packages/index-grid.slim' - end + def list + index + @packages = @packages.paginate(page: params[:page], per_page: 12) + render 'packages/index-list.slim' + end + + def grid + index + @packages = @packages.paginate(page: params[:page], per_page: 24) + render 'packages/index-grid.slim' end def details diff --git a/app/views/packages/_sidebar.slim b/app/views/packages/_sidebar.slim index fac2c90..92fbe9b 100644 --- a/app/views/packages/_sidebar.slim +++ b/app/views/packages/_sidebar.slim @@ -1,50 +1,49 @@ -- raise // Navigation sidebar #sidebar .caption View - - if params['view'] == 'list' + - if current_page? packages_list_path .item // Switch to grid view //a href=url(:package, :index) - a href=url_for(view: 'grid') - img src="images/sidebar/grid0.svg" width=40 height=40 + = link_to packages_grid_path + img src="/images/sidebar/grid0.svg" width=40 height=40 .item.space - img src="images/sidebar/list1.svg" width=40 height=40 + img src="/images/sidebar/list1.svg" width=40 height=40 - else .item - img src="images/sidebar/grid1.svg" width=40 height=40 + img src="/images/sidebar/grid1.svg" width=40 height=40 .item.space // Switch to list view //a href=url(:package, :index, view: 'list') - a href=url_for(view: 'list') - img src="images/sidebar/list0.svg" width=40 height=40 + = link_to packages_list_path + img src="/images/sidebar/list0.svg" width=40 height=40 // Cycling between with/without/any packages filter .caption Screenshots - if params['show'] == 'with' .item a href=url_for(show: 'without') - img src="images/sidebar/show-without0.svg" width=40 height=40 + img src="/images/sidebar/show-without0.svg" width=40 height=40 .item - img src="images/sidebar/show-with1.svg" width=40 height=40 + img src="/images/sidebar/show-with1.svg" width=40 height=40 .item.space a href=url_for(show: 'any') - img src="images/sidebar/show-any0.svg" width=40 height=40 + img src="/images/sidebar/show-any0.svg" width=40 height=40 - elsif params['show'] == 'without' .item - img src="images/sidebar/show-without1.svg" width=40 height=40 + img src="/images/sidebar/show-without1.svg" width=40 height=40 .item a href=url_for(show: 'with') - img src="images/sidebar/show-with0.svg" width=40 height=40 + img src="/images/sidebar/show-with0.svg" width=40 height=40 .item.space a href=url_for(show: 'any') - img src="images/sidebar/show-any0.svg" width=40 height=40 + img src="/images/sidebar/show-any0.svg" width=40 height=40 - else # any .item a href=url_for(show: 'without') - img src="images/sidebar/show-without0.svg" width=40 height=40 + img src="/images/sidebar/show-without0.svg" width=40 height=40 .item a href=url_for(show: 'with') - img src="images/sidebar/show-with0.svg" width=40 height=40 + img src="/images/sidebar/show-with0.svg" width=40 height=40 .item.space - img src="images/sidebar/show-any1.svg" width=40 height=40 + img src="/images/sidebar/show-any1.svg" width=40 height=40 diff --git a/app/views/packages/index-grid.slim b/app/views/packages/index-grid.slim index e2b1812..e0e5002 100644 --- a/app/views/packages/index-grid.slim +++ b/app/views/packages/index-grid.slim @@ -6,7 +6,7 @@ .small-6.medium-4.large-3.columns // Search form - = form_tag packages_path, :method=>'GET' + = form_tag url_for, :method=>'GET' = text_field_tag('search', params[:search], placeholder: "Search...") // Grid view diff --git a/app/views/packages/index-list.slim b/app/views/packages/index-list.slim index 23cc526..7dad3fd 100644 --- a/app/views/packages/index-list.slim +++ b/app/views/packages/index-list.slim @@ -6,7 +6,7 @@ .small-6.medium-4.large-3.columns // Search form - = form_tag packages_path, :method=>'GET' + = form_tag url_for, :method=>'GET' = text_field_tag(:search, params[:search], placeholder: "Search...") // Package list diff --git a/app/views/welcome/home.slim b/app/views/welcome/home.slim index bee64f6..8a829b0 100644 --- a/app/views/welcome/home.slim +++ b/app/views/welcome/home.slim @@ -15,7 +15,7 @@ ' Debian and other Linux distributions. And of course you are encouraged to upload ' your own screenshots for others to explore. p - = form_tag(packages_path, method: 'GET') + = form_tag(packages_grid_path, method: 'GET') div.row.collapse.postfix-round div.small-9.columns input type="text" name="search" placeholder="Looking for a special software?" autofocus="true" diff --git a/config/routes.rb b/config/routes.rb index 72ec73c..fecc40b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -11,7 +11,8 @@ Debshots::Application.routes.draw do #get 'packages/moderate' #get 'welcome/index' - get 'packages' => 'packages#index' + get 'packages' => 'packages#grid', as: :packages_grid + get 'packages/list' => 'packages#list', as: :packages_list get 'package/:name' => 'packages#details', as: :package get 'upload/:name' => 'packages#upload', as: :upload_package