andey/bestofama

View on GitHub
app/views/amas/index.html.slim

Summary

Maintainability
Test Coverage
/ SEO
- if @order != 'date' and params[:page] && params[:page].to_i > 1
  - set_meta_tags title: ["Page #{params[:page]}", "ordered by #{@order}", 'AMAs Directory']
  - set_meta_tags canonical: amas_url(page: params[:page], order: @order)
  - set_meta_tags prev: amas_url(page: params[:page].to_i - 1, order: @order)
  - set_meta_tags next: amas_url(page: params[:page].to_i + 1, order: @order)
  - set_meta_tags description: "Directory of Reddit AMAs ordered by #{@order}. Page #{params[:page]}"

- elsif params[:page] && params[:page].to_i > 1
  - set_meta_tags title: ["Page #{params[:page]}", 'AMAs Directory']
  - set_meta_tags canonical: amas_url(page: params[:page])
  - set_meta_tags prev: amas_url(page: params[:page].to_i - 1)
  - set_meta_tags next: amas_url(page: params[:page].to_i + 1)
  - set_meta_tags description: "Directory of Reddit AMAs ordered by #{@order}. Page #{params[:page]}"

- elsif @order != "date"
  - set_meta_tags title: ["ordered by #{@order}", 'AMAs Directory']
  - set_meta_tags canonical: amas_url(order: @order)
  - set_meta_tags prev: amas_url(order: @order)
  - set_meta_tags next: amas_url(page: 2, order: @order)
  - set_meta_tags description: "Directory of Reddit AMAs ordered by #{@order}"

- else
  - set_meta_tags title: 'AMAs Directory'
  - set_meta_tags canonical: amas_url
  - set_meta_tags prev: amas_url
  - set_meta_tags next: amas_url(page: 2)
  - set_meta_tags description: "Directory of Reddit AMAs ordered by #{@order}"

.row
  .col-xs-12.col-sm-12.col-md-10.col-lg-10
    h1.pull-left AMAs Directory

  .col-xs-12.col-sm-12.col-md-2.col-lg-2
    .btn-actions.btn-group.pull-right.filter
      button.btn.btn-default.dropdown-toggle type="button" data-toggle="dropdown"
        | Order By
        span.caret style="margin-left: 5px;"
      ul.dropdown-menu
        li= link_to "Date", amas_path
        li= link_to "Karma", amas_path(:order => "karma")
        li= link_to "Comment", amas_path(:order => "comments")
        li= link_to "Responses", amas_path(:order => "responses")

.row
  .col-xs-12.col-sm-12.col-md-12.col-lg-12
    .list-group
      - cache ["amas", @order, params[:page]], :expires_in => 15.minutes do
        - @amas.each do |ama|
          = render partial: 'snippet', locals: { ama: ama }

.row.sticky-scroll-bottom.text-center
  = will_paginate @amas

.row
  .col-sm-12
    ol.breadcrumb itemscope="itemscope" itemtype="http://data-vocabulary.org/Breadcrumb"
      li= link_to (root_path), itemprop: "url" do
        span itemprop="title" BestofAMA
      li= link_to (amas_path), itemprop: "url" do
        span itemprop="title" AMAs
      - if @order != "date"
        li= link_to (amas_path(order: @order)), itemprop: "url" do
          span itemprop="title"= "Ordered by #{@order}"
      li.active= "Page #{@amas.current_page}"