* Replace will_paginate with kaminari * Use #page instead of #paginate in controllers * Replace will_paginate.page_gap with pagination.truncate in i18n * Customize kaminari views to match prior styles * Set kaminari options to match prior behavior * Replace will_paginate with paginate in viewsmaster
@@ -32,6 +32,7 @@ gem 'htmlentities' | |||||
gem 'http' | gem 'http' | ||||
gem 'http_accept_language' | gem 'http_accept_language' | ||||
gem 'httplog' | gem 'httplog' | ||||
gem 'kaminari' | |||||
gem 'link_header' | gem 'link_header' | ||||
gem 'nokogiri' | gem 'nokogiri' | ||||
gem 'oj' | gem 'oj' | ||||
@@ -52,7 +53,6 @@ gem 'simple_form' | |||||
gem 'statsd-instrument' | gem 'statsd-instrument' | ||||
gem 'twitter-text' | gem 'twitter-text' | ||||
gem 'tzinfo-data' | gem 'tzinfo-data' | ||||
gem 'will_paginate' | |||||
gem 'react-rails' | gem 'react-rails' | ||||
gem 'browserify-rails' | gem 'browserify-rails' | ||||
@@ -203,6 +203,18 @@ GEM | |||||
railties (>= 4.2.0) | railties (>= 4.2.0) | ||||
thor (>= 0.14, < 2.0) | thor (>= 0.14, < 2.0) | ||||
json (2.0.3) | json (2.0.3) | ||||
kaminari (1.0.1) | |||||
activesupport (>= 4.1.0) | |||||
kaminari-actionview (= 1.0.1) | |||||
kaminari-activerecord (= 1.0.1) | |||||
kaminari-core (= 1.0.1) | |||||
kaminari-actionview (1.0.1) | |||||
actionview | |||||
kaminari-core (= 1.0.1) | |||||
kaminari-activerecord (1.0.1) | |||||
activerecord | |||||
kaminari-core (= 1.0.1) | |||||
kaminari-core (1.0.1) | |||||
launchy (2.4.3) | launchy (2.4.3) | ||||
addressable (~> 2.3) | addressable (~> 2.3) | ||||
letter_opener (1.4.1) | letter_opener (1.4.1) | ||||
@@ -433,7 +445,6 @@ GEM | |||||
websocket-driver (0.6.5) | websocket-driver (0.6.5) | ||||
websocket-extensions (>= 0.1.0) | websocket-extensions (>= 0.1.0) | ||||
websocket-extensions (0.1.2) | websocket-extensions (0.1.2) | ||||
will_paginate (3.1.5) | |||||
PLATFORMS | PLATFORMS | ||||
ruby | ruby | ||||
@@ -472,6 +483,7 @@ DEPENDENCIES | |||||
httplog | httplog | ||||
i18n-tasks (~> 0.9.6) | i18n-tasks (~> 0.9.6) | ||||
jquery-rails | jquery-rails | ||||
kaminari | |||||
letter_opener | letter_opener | ||||
letter_opener_web | letter_opener_web | ||||
link_header | link_header | ||||
@@ -513,7 +525,6 @@ DEPENDENCIES | |||||
tzinfo-data | tzinfo-data | ||||
uglifier (>= 1.3.0) | uglifier (>= 1.3.0) | ||||
webmock | webmock | ||||
will_paginate | |||||
RUBY VERSION | RUBY VERSION | ||||
ruby 2.4.1p111 | ruby 2.4.1p111 | ||||
@@ -173,7 +173,7 @@ | |||||
text-align: center; | text-align: center; | ||||
overflow: hidden; | overflow: hidden; | ||||
a, .current, .next_page, .previous_page, .gap { | |||||
a, .current, .page, .gap { | |||||
font-size: 14px; | font-size: 14px; | ||||
color: $color5; | color: $color5; | ||||
font-weight: 500; | font-weight: 500; | ||||
@@ -193,12 +193,12 @@ | |||||
cursor: default; | cursor: default; | ||||
} | } | ||||
.previous_page, .next_page { | |||||
.prev, .next { | |||||
text-transform: uppercase; | text-transform: uppercase; | ||||
color: $color2; | color: $color2; | ||||
} | } | ||||
.previous_page { | |||||
.prev { | |||||
float: left; | float: left; | ||||
padding-left: 0; | padding-left: 0; | ||||
@@ -208,7 +208,7 @@ | |||||
} | } | ||||
} | } | ||||
.next_page { | |||||
.next { | |||||
float: right; | float: right; | ||||
padding-right: 0; | padding-right: 0; | ||||
@@ -226,11 +226,11 @@ | |||||
@media screen and (max-width: 360px) { | @media screen and (max-width: 360px) { | ||||
padding: 30px 20px; | padding: 30px 20px; | ||||
a, .current, .next_page, .previous_page, .gap { | |||||
a, .current, .next, .prev, .gap { | |||||
display: none; | display: none; | ||||
} | } | ||||
.next_page, .previous_page { | |||||
.next, .prev { | |||||
display: inline-block; | display: inline-block; | ||||
} | } | ||||
} | } | ||||
@@ -35,11 +35,11 @@ class AccountsController < ApplicationController | |||||
end | end | ||||
def followers | def followers | ||||
@followers = @account.followers.order('follows.created_at desc').paginate(page: params[:page], per_page: 12) | |||||
@followers = @account.followers.order('follows.created_at desc').page(params[:page]).per(12) | |||||
end | end | ||||
def following | def following | ||||
@following = @account.following.order('follows.created_at desc').paginate(page: params[:page], per_page: 12) | |||||
@following = @account.following.order('follows.created_at desc').page(params[:page]).per(12) | |||||
end | end | ||||
private | private | ||||
@@ -5,7 +5,7 @@ module Admin | |||||
before_action :set_account, except: :index | before_action :set_account, except: :index | ||||
def index | def index | ||||
@accounts = Account.alphabetic.paginate(page: params[:page], per_page: 40) | |||||
@accounts = Account.alphabetic.page(params[:page]) | |||||
@accounts = @accounts.local if params[:local].present? | @accounts = @accounts.local if params[:local].present? | ||||
@accounts = @accounts.remote if params[:remote].present? | @accounts = @accounts.remote if params[:remote].present? | ||||
@@ -3,7 +3,7 @@ | |||||
module Admin | module Admin | ||||
class DomainBlocksController < BaseController | class DomainBlocksController < BaseController | ||||
def index | def index | ||||
@blocks = DomainBlock.paginate(page: params[:page], per_page: 40) | |||||
@blocks = DomainBlock.page(params[:page]) | |||||
end | end | ||||
def new | def new | ||||
@@ -3,7 +3,7 @@ | |||||
module Admin | module Admin | ||||
class PubsubhubbubController < BaseController | class PubsubhubbubController < BaseController | ||||
def index | def index | ||||
@subscriptions = Subscription.order('id desc').includes(:account).paginate(page: params[:page], per_page: 40) | |||||
@subscriptions = Subscription.order('id desc').includes(:account).page(params[:page]) | |||||
end | end | ||||
end | end | ||||
end | end |
@@ -5,7 +5,7 @@ module Admin | |||||
before_action :set_report, except: [:index] | before_action :set_report, except: [:index] | ||||
def index | def index | ||||
@reports = Report.includes(:account, :target_account).order('id desc').paginate(page: params[:page], per_page: 40) | |||||
@reports = Report.includes(:account, :target_account).order('id desc').page(params[:page]) | |||||
@reports = params[:action_taken].present? ? @reports.resolved : @reports.unresolved | @reports = params[:action_taken].present? ? @reports.resolved : @reports.unresolved | ||||
end | end | ||||
@@ -1,12 +0,0 @@ | |||||
# frozen_string_literal: true | |||||
module AccountsHelper | |||||
def pagination_options | |||||
{ | |||||
previous_label: safe_join([fa_icon('chevron-left'), t('pagination.prev')], ' '), | |||||
next_label: safe_join([t('pagination.next'), fa_icon('chevron-right')], ' '), | |||||
inner_window: 1, | |||||
outer_window: 0, | |||||
} | |||||
end | |||||
end |
@@ -9,4 +9,4 @@ | |||||
- else | - else | ||||
= render partial: 'grid_card', collection: @followers, as: :account, cached: true | = render partial: 'grid_card', collection: @followers, as: :account, cached: true | ||||
= will_paginate @followers, pagination_options | |||||
= paginate @followers |
@@ -9,4 +9,4 @@ | |||||
- else | - else | ||||
= render partial: 'grid_card', collection: @following, as: :account, cached: true | = render partial: 'grid_card', collection: @following, as: :account, cached: true | ||||
= will_paginate @following, pagination_options | |||||
= paginate @following |
@@ -31,4 +31,4 @@ | |||||
.pagination | .pagination | ||||
- if @statuses.size == 20 | - if @statuses.size == 20 | ||||
= link_to safe_join([t('pagination.next'), fa_icon('chevron-right')], ' '), short_account_url(@account, max_id: @statuses.last.id), class: 'next_page', rel: 'next' | |||||
= link_to safe_join([t('pagination.next'), fa_icon('chevron-right')], ' '), short_account_url(@account, max_id: @statuses.last.id), class: 'next', rel: 'next' |
@@ -46,4 +46,4 @@ | |||||
= table_link_to 'globe', 'Public', TagManager.instance.url_for(account) | = table_link_to 'globe', 'Public', TagManager.instance.url_for(account) | ||||
= table_link_to 'pencil', 'Edit', admin_account_path(account.id) | = table_link_to 'pencil', 'Edit', admin_account_path(account.id) | ||||
= will_paginate @accounts, pagination_options | |||||
= paginate @accounts |
@@ -13,5 +13,5 @@ | |||||
%samp= block.domain | %samp= block.domain | ||||
%td= block.severity | %td= block.severity | ||||
= will_paginate @blocks, pagination_options | |||||
= paginate @blocks | |||||
= link_to 'Add new', new_admin_domain_block_path, class: 'button' | = link_to 'Add new', new_admin_domain_block_path, class: 'button' |
@@ -26,4 +26,4 @@ | |||||
- else | - else | ||||
= l subscription.last_successful_delivery_at | = l subscription.last_successful_delivery_at | ||||
= will_paginate @subscriptions, pagination_options | |||||
= paginate @subscriptions |
@@ -29,4 +29,4 @@ | |||||
%td= truncate(report.comment, length: 30, separator: ' ') | %td= truncate(report.comment, length: 30, separator: ' ') | ||||
%td= table_link_to 'circle', 'View', admin_report_path(report) | %td= table_link_to 'circle', 'View', admin_report_path(report) | ||||
= will_paginate @reports, pagination_options | |||||
= paginate @reports |
@@ -0,0 +1,9 @@ | |||||
-# Link to the "Next" page | |||||
-# available local variables | |||||
-# url: url to the next page | |||||
-# current_page: a page object for the currently displayed page | |||||
-# total_pages: total number of pages | |||||
-# per_page: number of items to fetch per page | |||||
-# remote: data-remote | |||||
%span.next | |||||
= link_to_unless current_page.last?, safe_join([t('pagination.next'), fa_icon('chevron-right')], ' '), url, rel: 'next', remote: remote |
@@ -0,0 +1,16 @@ | |||||
-# The container tag | |||||
-# available local variables | |||||
-# current_page: a page object for the currently displayed page | |||||
-# total_pages: total number of pages | |||||
-# per_page: number of items to fetch per page | |||||
-# remote: data-remote | |||||
-# paginator: the paginator that renders the pagination tags inside | |||||
= paginator.render do | |||||
%nav.pagination | |||||
= prev_page_tag unless current_page.first? | |||||
- each_page do |page| | |||||
- if page.display_tag? | |||||
= page_tag page | |||||
- elsif !page.was_truncated? | |||||
= gap_tag | |||||
= next_page_tag unless current_page.last? |
@@ -0,0 +1,9 @@ | |||||
-# Link to the "Previous" page | |||||
-# available local variables | |||||
-# url: url to the previous page | |||||
-# current_page: a page object for the currently displayed page | |||||
-# total_pages: total number of pages | |||||
-# per_page: number of items to fetch per page | |||||
-# remote: data-remote | |||||
%span.prev | |||||
= link_to_unless current_page.first?, safe_join([fa_icon('chevron-left'), t('pagination.prev')], ' '), url, rel: 'prev', remote: remote |
@@ -15,4 +15,4 @@ | |||||
- if @statuses.size == 20 | - if @statuses.size == 20 | ||||
.pagination | .pagination | ||||
= link_to safe_join([t('pagination.next'), fa_icon('chevron-right')], ' '), tag_url(@tag, max_id: @statuses.last.id), class: 'next_page', rel: 'next' | |||||
= link_to safe_join([t('pagination.next'), fa_icon('chevron-right')], ' '), tag_url(@tag, max_id: @statuses.last.id), class: 'next', rel: 'next' |
@@ -33,7 +33,7 @@ search: | |||||
ignore_unused: | ignore_unused: | ||||
- 'activerecord.attributes.*' | - 'activerecord.attributes.*' | ||||
- '{devise,will_paginate,doorkeeper}.*' | |||||
- '{devise,pagination,doorkeeper}.*' | |||||
- '{datetime,time}.*' | - '{datetime,time}.*' | ||||
- 'simple_form.{yes,no}' | - 'simple_form.{yes,no}' | ||||
- 'simple_form.{placeholders,hints,labels}.*' | - 'simple_form.{placeholders,hints,labels}.*' | ||||
@@ -0,0 +1,7 @@ | |||||
# frozen_string_literal: true | |||||
Kaminari.configure do |config| | |||||
config.default_per_page = 40 | |||||
config.window = 1 | |||||
config.left = 3 | |||||
config.right = 1 | |||||
end |
@@ -88,5 +88,3 @@ de: | |||||
default: "%d.%m.%Y %H:%M" | default: "%d.%m.%Y %H:%M" | ||||
users: | users: | ||||
invalid_email: Inkorrekte E-mail-Addresse | invalid_email: Inkorrekte E-mail-Addresse | ||||
will_paginate: | |||||
page_gap: "…" |
@@ -126,6 +126,7 @@ en: | |||||
pagination: | pagination: | ||||
next: Next | next: Next | ||||
prev: Prev | prev: Prev | ||||
truncate: "…" | |||||
remote_follow: | remote_follow: | ||||
acct: Enter your username@domain you want to follow from | acct: Enter your username@domain you want to follow from | ||||
missing_resource: Could not find the required redirect URL for your account | missing_resource: Could not find the required redirect URL for your account | ||||
@@ -169,5 +170,3 @@ en: | |||||
users: | users: | ||||
invalid_email: The e-mail address is invalid | invalid_email: The e-mail address is invalid | ||||
invalid_otp_token: Invalid two-factor code | invalid_otp_token: Invalid two-factor code | ||||
will_paginate: | |||||
page_gap: "…" |
@@ -160,5 +160,3 @@ eo: | |||||
users: | users: | ||||
invalid_email: La retpoŝt-adreso ne estas valida | invalid_email: La retpoŝt-adreso ne estas valida | ||||
invalid_otp_token: La dufaktora aŭtentigila kodo ne estas valida | invalid_otp_token: La dufaktora aŭtentigila kodo ne estas valida | ||||
will_paginate: | |||||
page_gap: "…" |
@@ -51,5 +51,3 @@ es: | |||||
settings: | settings: | ||||
edit_profile: Editar perfil | edit_profile: Editar perfil | ||||
preferences: Preferencias | preferences: Preferencias | ||||
will_paginate: | |||||
page_gap: "…" |
@@ -160,5 +160,3 @@ fi: | |||||
users: | users: | ||||
invalid_email: Virheellinen sähköposti | invalid_email: Virheellinen sähköposti | ||||
invalid_otp_token: Virheellinen kaksivaihe tunnistus koodi | invalid_otp_token: Virheellinen kaksivaihe tunnistus koodi | ||||
will_paginate: | |||||
page_gap: "…" |
@@ -167,5 +167,3 @@ fr: | |||||
users: | users: | ||||
invalid_email: L'adresse courriel est invalide | invalid_email: L'adresse courriel est invalide | ||||
invalid_otp_token: Le code d'authentification à deux facteurs est invalide | invalid_otp_token: Le code d'authentification à deux facteurs est invalide | ||||
will_paginate: | |||||
page_gap: "…" |
@@ -51,5 +51,3 @@ hu: | |||||
settings: | settings: | ||||
edit_profile: Profil szerkesztése | edit_profile: Profil szerkesztése | ||||
preferences: Beállítások | preferences: Beállítások | ||||
will_paginate: | |||||
page_gap: "…" |
@@ -160,5 +160,3 @@ | |||||
users: | users: | ||||
invalid_email: E-post addressen er ugyldig | invalid_email: E-post addressen er ugyldig | ||||
invalid_otp_token: Ugyldig two-faktor kode | invalid_otp_token: Ugyldig two-faktor kode | ||||
will_paginate: | |||||
page_gap: "…" |
@@ -51,5 +51,3 @@ pt: | |||||
settings: | settings: | ||||
edit_profile: Editar perfil | edit_profile: Editar perfil | ||||
preferences: Preferências | preferences: Preferências | ||||
will_paginate: | |||||
page_gap: "…" |
@@ -161,5 +161,3 @@ ru: | |||||
users: | users: | ||||
invalid_email: Введенный e-mail неверен | invalid_email: Введенный e-mail неверен | ||||
invalid_otp_token: Введен неверный код | invalid_otp_token: Введен неверный код | ||||
will_paginate: | |||||
page_gap: "…" |
@@ -51,5 +51,3 @@ uk: | |||||
settings: | settings: | ||||
edit_profile: Редагувати профіль | edit_profile: Редагувати профіль | ||||
preferences: Налаштування | preferences: Налаштування | ||||
will_paginate: | |||||
page_gap: "…" |
@@ -150,5 +150,3 @@ zh-CN: | |||||
users: | users: | ||||
invalid_email: 无效的邮箱 | invalid_email: 无效的邮箱 | ||||
invalid_otp_token: 无效的两步验证码 | invalid_otp_token: 无效的两步验证码 | ||||
will_paginate: | |||||
page_gap: "…" |
@@ -1,5 +0,0 @@ | |||||
require 'rails_helper' | |||||
RSpec.describe AccountsHelper, type: :helper do | |||||
end |