diff --git a/Gemfile b/Gemfile index 1730b2ce0..232089fa0 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,6 @@ source 'https://rubygems.org' gem 'rails', '4.2.5.1' -gem 'sqlite3' gem 'sass-rails', '~> 5.0' gem 'uglifier', '>= 1.3.0' gem 'coffee-rails', '~> 4.1.0' @@ -18,7 +17,6 @@ gem 'font-awesome-rails' gem 'paranoia', '~> 2.0' gem 'paperclip', '~> 4.3' -gem 'backport_new_renderer' gem 'http' gem 'addressable' @@ -36,6 +34,7 @@ gem 'fast_blank' gem 'htmlentities' gem 'onebox' gem 'simple_form' +gem 'will_paginate', '~> 3.0.6' group :development, :test do gem 'rspec-rails' diff --git a/Gemfile.lock b/Gemfile.lock index daa62c756..1fd718c8e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -39,8 +39,6 @@ GEM addressable (2.4.0) arel (6.0.3) ast (2.2.0) - backport_new_renderer (1.0.0) - rails bcrypt (3.1.11) better_errors (2.1.1) coderay (>= 1.0.0) @@ -283,7 +281,6 @@ GEM actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) - sqlite3 (1.3.11) therubyracer (0.12.2) libv8 (~> 3.16.14.0) ref @@ -310,13 +307,13 @@ GEM addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff + will_paginate (3.0.7) PLATFORMS ruby DEPENDENCIES addressable - backport_new_renderer better_errors binding_of_caller coffee-rails (~> 4.1.0) @@ -356,11 +353,11 @@ DEPENDENCIES sdoc (~> 0.4.0) simple_form simplecov - sqlite3 therubyracer uglifier (>= 1.3.0) web-console (~> 2.0) webmock + will_paginate (~> 3.0.6) BUNDLED WITH 1.11.2 diff --git a/app/assets/stylesheets/accounts.scss b/app/assets/stylesheets/accounts.scss index 1f4987527..57cc6e832 100644 --- a/app/assets/stylesheets/accounts.scss +++ b/app/assets/stylesheets/accounts.scss @@ -89,3 +89,59 @@ color: #d9e1e8; } } + +.pagination { + padding: 30px 0; + text-align: center; + overflow: hidden; + + a, .current, .next_page, .previous_page, .gap { + font-size: 14px; + color: #fff; + font-weight: 500; + display: inline-block; + padding: 6px 10px; + text-decoration: none; + } + + .current { + background: #fff; + border-radius: 100px; + color: #282c37; + cursor: default; + } + + .gap { + cursor: default; + } + + .previous_page, .next_page { + text-transform: uppercase; + color: #d9e1e8; + } + + .previous_page { + float: left; + padding-left: 0; + + .fa { + display: inline-block; + margin-right: 5px; + } + } + + .next_page { + float: right; + padding-right: 0; + + .fa { + display: inline-block; + margin-left: 5px; + } + } + + .disabled { + cursor: default; + color: lighten(#282c37, 10%); + } +} diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 47d114416..c46200811 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -8,7 +8,7 @@ class AccountsController < ApplicationController @statuses = @account.statuses.order('id desc').with_includes.with_counters respond_to do |format| - format.html + format.html { @statuses = @statuses.paginate(page: params[:page], per_page: 10)} format.atom end end diff --git a/app/views/accounts/show.html.haml b/app/views/accounts/show.html.haml index 452a0bfba..43a99a3b0 100644 --- a/app/views/accounts/show.html.haml +++ b/app/views/accounts/show.html.haml @@ -1,3 +1,6 @@ +- content_for :page_title do + = display_name(@account) + - content_for :header_tags do %link{ rel: 'salmon', href: api_salmon_url(@account.id) }/ %link{ rel: 'alternate', type: 'application/atom+xml', href: account_url(@account, format: 'atom') }/ @@ -5,7 +8,7 @@ .card{ style: "background-image: url(#{@account.header.url(:medium)})" } .avatar= image_tag @account.avatar.url(:large) %h1.name - = @account.display_name.blank? ? @account.username : @account.display_name + = display_name(@account) %small= "@#{@account.username}" .details .counter @@ -19,6 +22,9 @@ %span.counter-number= @account.followers.count .bio %p= @account.note + .activity-stream - @statuses.each do |status| = render partial: 'stream_entries/status', locals: { status: status, include_threads: false, is_successor: false, is_predecessor: false } + += will_paginate @statuses, previous_label: "#{fa_icon('chevron-left')} Prev".html_safe, next_label: "Next #{fa_icon('chevron-right')}".html_safe, inner_window: 2 diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 868944a21..afd29b04a 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -2,7 +2,9 @@ %html %head %meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/ - %title Mastodon + %title + = "#{yield(:page_title)} - " if content_for?(:page_title) + Mastodon = stylesheet_link_tag 'application', media: 'all' = javascript_include_tag 'application' = csrf_meta_tags diff --git a/app/views/layouts/dashboard.html.haml b/app/views/layouts/dashboard.html.haml index 8592144d8..5640213b2 100644 --- a/app/views/layouts/dashboard.html.haml +++ b/app/views/layouts/dashboard.html.haml @@ -6,7 +6,7 @@ .dashboard__current-user = link_to account_path(current_user.account) do = image_tag current_user.account.avatar.url(:medium), class: 'dashboard__current-user__avatar' - %strong.dashboard__current-user__display-name= current_user.account.display_name.blank? ? current_user.account.username : current_user.account.display_name + %strong.dashboard__current-user__display-name= display_name(current_user.account) %span.dashboard__current-user__username= "@#{current_user.account.username}" %ul %li{ class: active_nav_class(root_path) } diff --git a/spec/helpers/stream_entries_helper_spec.rb b/spec/helpers/stream_entries_helper_spec.rb index d2215e1eb..6227f9280 100644 --- a/spec/helpers/stream_entries_helper_spec.rb +++ b/spec/helpers/stream_entries_helper_spec.rb @@ -16,4 +16,12 @@ RSpec.describe StreamEntriesHelper, type: :helper do describe '#relative_time' do pending end + + describe '#reblogged_by_me_class' do + pending + end + + describe '#favourited_by_me_class' do + pending + end end