mirror of
https://github.com/danbee/danbarberphoto
synced 2025-03-04 08:49:07 +00:00
Use Kaminari instead of WillPaginate
This is to avoid any conflict with Kaminari in Administrate. We also add some specs for pagination in the front end.
This commit is contained in:
parent
5d15bfaf5f
commit
e2c4ebf0e9
@ -2,7 +2,7 @@ class CategoriesController < ApplicationController
|
|||||||
# GET /categories
|
# GET /categories
|
||||||
# GET /categories.xml
|
# GET /categories.xml
|
||||||
def index
|
def index
|
||||||
@categories = Category.order('sort ASC').paginate page: params[:page], per_page: 4
|
@categories = Category.order('sort ASC').page(params[:page]).per(4)
|
||||||
|
|
||||||
@photos = Photo.featured.limit(2).order('RANDOM()')
|
@photos = Photo.featured.limit(2).order('RANDOM()')
|
||||||
|
|
||||||
|
|||||||
@ -28,13 +28,13 @@ class PhotosController < ApplicationController
|
|||||||
def for_category(category_id)
|
def for_category(category_id)
|
||||||
@category = Category.find_by_id(category_id)
|
@category = Category.find_by_id(category_id)
|
||||||
@photos = @category.photos.enabled.order { taken_at.desc }
|
@photos = @category.photos.enabled.order { taken_at.desc }
|
||||||
.paginate(page: params[:page], per_page: 11)
|
.page(params[:page])
|
||||||
@page_title = @category.name
|
@page_title = @category.name
|
||||||
end
|
end
|
||||||
|
|
||||||
def all
|
def all
|
||||||
@photos = Photo.enabled.order { taken_at.desc }
|
@photos = Photo.enabled.order { taken_at.desc }
|
||||||
.paginate(page: params[:page], per_page: 11)
|
.page(params[:page])
|
||||||
@page_title = 'All Photos'
|
@page_title = 'All Photos'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
<% content_for :navigation do %>
|
<% content_for :navigation do %>
|
||||||
<div class="sg-5 page-links">
|
<div class="sg-5 page-links">
|
||||||
<% if @categories.previous_page -%>
|
<% if !@categories.first_page? -%>
|
||||||
<%= link_to content_tag(:div, e(:larr)), { page: @categories.previous_page }, class: 'prev-link' %>
|
<%= link_to content_tag(:div, e(:larr)), { page: @categories.prev_page }, class: 'prev-link' %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<div class="sg-5 page-links">
|
<div class="sg-5 page-links">
|
||||||
<% if @categories.next_page -%>
|
<% if !@categories.last_page? -%>
|
||||||
<%= link_to content_tag(:div, e(:rarr)), { page: @categories.next_page }, class: 'next-link' %>
|
<%= link_to content_tag(:div, e(:rarr)), { page: @categories.next_page }, class: 'next-link' %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
<% content_for :navigation do %>
|
<% content_for :navigation do %>
|
||||||
<div class="sg-5 page-links">
|
<div class="sg-5 page-links">
|
||||||
<% if @photos.previous_page -%>
|
<% if !@photos.first_page? -%>
|
||||||
<%= link_to content_tag(:div, e(:larr)), { page: @photos.previous_page }, class: 'prev-link' %>
|
<%= link_to content_tag(:div, e(:larr)), { page: @photos.prev_page }, class: 'prev-link' %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<div class="sg-5 page-links">
|
<div class="sg-5 page-links">
|
||||||
<% if @photos.next_page -%>
|
<% if !@photos.last_page? -%>
|
||||||
<%= link_to content_tag(:div, e(:rarr)), { page: @photos.next_page }, class: 'next-link' %>
|
<%= link_to content_tag(:div, e(:rarr)), { page: @photos.next_page }, class: 'next-link' %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -2,6 +2,6 @@
|
|||||||
|
|
||||||
FactoryGirl.define do
|
FactoryGirl.define do
|
||||||
factory :category do
|
factory :category do
|
||||||
name 'Test Category'
|
sequence(:name) { |n| "Test Category #{n}" }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -1,19 +1,21 @@
|
|||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
feature 'visitor navigates site' do
|
feature 'visitor navigates site' do
|
||||||
let!(:category) { create(:category) }
|
|
||||||
let!(:photo) { create(:photo, featured: true, categories: [category]) }
|
|
||||||
|
|
||||||
it 'shows the featured image on the home page' do
|
it 'shows the featured image on the home page' do
|
||||||
|
category = create(:category)
|
||||||
|
photo = create(:photo, featured: true, categories: [category])
|
||||||
|
|
||||||
visit root_path
|
visit root_path
|
||||||
expect(page).to have_selector("a[data-id='#{photo.id}']")
|
expect(page).to have_selector("a[data-id='#{photo.id}']")
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'increments the view counter when an image is displayed', js: true do
|
it 'increments the view counter when an image is displayed', js: true do
|
||||||
|
category = create(:category)
|
||||||
|
photo = create(:photo, featured: true, categories: [category])
|
||||||
|
|
||||||
visit root_path
|
visit root_path
|
||||||
|
|
||||||
selector = "a[data-id='#{photo.id}']"
|
selector = "a[data-id='#{photo.id}']"
|
||||||
expect(page).to have_selector(selector)
|
|
||||||
|
|
||||||
page.find(selector).click
|
page.find(selector).click
|
||||||
|
|
||||||
@ -26,14 +28,22 @@ feature 'visitor navigates site' do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it 'shows the categories' do
|
it 'shows the categories' do
|
||||||
visit root_path
|
categories = create_list(:category, 5)
|
||||||
|
|
||||||
|
visit root_path
|
||||||
click_link 'portfolio'
|
click_link 'portfolio'
|
||||||
|
|
||||||
expect(page).to have_link(category.name.downcase)
|
expect(page).to have_link(categories.first.name.downcase)
|
||||||
|
|
||||||
|
click_link '→'
|
||||||
|
|
||||||
|
expect(page).to have_link(categories.last.name.downcase)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'shows the photos for the category' do
|
it 'shows the photos for the category' do
|
||||||
|
category = create(:category)
|
||||||
|
photo = create(:photo, featured: true, categories: [category])
|
||||||
|
|
||||||
visit categories_path
|
visit categories_path
|
||||||
|
|
||||||
click_link category.name.downcase
|
click_link category.name.downcase
|
||||||
@ -41,4 +51,16 @@ feature 'visitor navigates site' do
|
|||||||
selector = "a[data-id='#{photo.id}']"
|
selector = "a[data-id='#{photo.id}']"
|
||||||
expect(page).to have_selector(selector)
|
expect(page).to have_selector(selector)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'shows the second page of photos' do
|
||||||
|
category = create(:category)
|
||||||
|
photos = create_list(:photo, 12, featured: true, categories: [category])
|
||||||
|
|
||||||
|
visit url_for([category, :photos])
|
||||||
|
|
||||||
|
click_link '→'
|
||||||
|
|
||||||
|
selector = "a[data-id='#{photos.last.id}']"
|
||||||
|
expect(page).to have_selector(selector)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user