app/views/layouts/application.html.erb

Summary

Maintainability
Test Coverage
<!DOCTYPE html>
<html>
  <head>
    <% if params[:controller] == "articles" && [:show, :edit].include?(params[:action].to_sym) %>
      <title><%= @article.title %> - Lodge</title>
    <% else %>
      <title>Lodge</title>
    <% end %>
    <%= favicon_link_tag %>
    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
    <%= csrf_meta_tags %>
    <!--[if (lt IE 9) & (!IEMobile)]>
    <%= javascript_include_tag 'externals/html5shiv', 'data-turbolinks-track' => true %>
    <%= javascript_include_tag 'externals/respond.min', 'data-turbolinks-track' => true %>
    <![endif]-->
    <%= stylesheet_link_tag "pygments-css/#{ENV['SYNTAX_HIGHLIGHT_THEME']}", media: 'all', 'data-turbolinks-track' => true %>
    <%= controller_stylesheet_link_tag %>
    <%= controller_javascript_include_tag %>
  </head>
  <body>

    <div class="container">

      <% # Page header %>
      <div class="navbar navbar-default" role="navigation">
        <div class="container-fluid">
          <div class="row">
            <div class="col-xs-4">
              <% title_link_url = (ENV['TITLE_LINK_URL'] == 'articles') ? articles_path : root_path %>
              <h1 class="navbar-header"><%= link_to "Lodge", title_link_url, class: ["nav", "navbar-brand"] %></h1>
            </div>
            <div class="col-xs-8">
              <div class="row">
                <ul class="nav navbar-nav navbar-right">
                  <% if user_signed_in? %>
                    <li class="dropdown">
                      <%= render partial: "notifications/info_dropdown", locals: {notifications: @notifications} %>
                    </li>
                    <li class="dropdown">
                      <%= render partial: "users/info_dropdown", locals: {user: current_user} %>
                    </li>
                    <li class="dropdown">
                      <%= link_to "", "#", class: ["glyphicon", "glyphicon-cog", "dropdown-toggle"], "data-toggle" => "dropdown" %>
                      <ul class="user-menu dropdown-menu" role="menu">
                        <li>
                          <%= link_to t("users.edit_profile"), edit_user_registration_path, :class => '' %>
                        </li>
                        <li>
                          <%= link_to t("users.logout"), destroy_user_session_path, method: :delete, :class => ''  %>
                        </li>
                      </ul>
                    </li>
                  <% else %>
                    <li><%= link_to t("users.sign_up"), new_user_registration_path, :class => 'navbar-link'  %></li>
                    <li><span class="navbar-text">|</span></li>
                    <li><%= link_to t("users.login"), new_user_session_path, :class => 'navbar-link'  %></li>
                  <% end %>
                </ul>
                <% if user_signed_in? %>
                <% end %>
              </div>

              <% # Menu list %>
              <div class="global-menu-list row navbar-right">
                <% if current_user %>
                  <ul class="navbar-text list-inline">

                    <% # Recent feed article list %>
                    <li class="dropdown">
                      <%= link_to tco("feed_article_list_title"), feed_articles_path %><i class="caret dropdown-toggle" data-toggle="dropdown"></i>
                      <div class="dropdown-menu" role="menu">
                        <h5><strong><%= tco("feed_article_list_title") %></strong></h5>
                        <ol>
                          <% @recent_feed.each do |article| %>
                            <li><u><%= link_to article.title, article_path(article) %></u></li>
                          <% end %>
                        </ol>
                        <% unless @recent_articles.empty? %>
                          <div class="clearfix">
                            <%= link_to tco("more_display"), feed_articles_path, class: ["pull-right"] %> 
                          </div>
                        <% end %>
                      </div>
                    </li> 

                    <% # Recent article list %>
                    <li class="dropdown">
                      <%= link_to tco("recent_article_list_title"), articles_path %><i class="caret dropdown-toggle" data-toggle="dropdown"></i>
                      <div class="dropdown-menu" role="menu">
                        <h5><strong><%= tco("recent_article_list_title") %></strong></h5>
                        <ol>
                          <% @recent_articles.each do |article| %>
                            <li><u><%= link_to article.title, article_path(article) %></u></li>
                          <% end %>
                        </ol>
                        <% unless @recent_articles.empty? %>
                          <div class="clearfix">
                            <%= link_to tco("more_display"), articles_path, class: ["pull-right"] %> 
                          </div>
                        <% end %>
                      </div>
                    </li>

                    <% # Recent stocked article list %>
                    <li class="dropdown">
                      <%= link_to tco("stocked_article_list_title"), stocked_articles_path %><i class="caret dropdown-toggle" data-toggle="dropdown"></i>
                      <div class="dropdown-menu" role="menu">
                        <h5><strong><%= tco("stocked_article_list_title") %></strong></h5>
                        <ol>
                          <% @stocked_articles.each do |article| %>
                            <li><u><%= link_to article.title, article_path(article) %></u></li>
                          <% end %>
                        </ol>
                        <% unless @stocked_articles.empty? %>
                          <div class="clearfix">
                            <%= link_to tco("more_display"), stocked_articles_path, class: ["pull-right"] %> 
                          </div>
                        <% end %>
                      </div>
                    </li> 

                    <% # Posted article list %>
                    <li class="dropdown">
                      <u></u>
                      <%= link_to tco("user_article_list_title"), owned_articles_path %><i class="caret dropdown-toggle" data-toggle="dropdown"></i>
                      <div class="dropdown-menu" role="menu">
                        <h5><strong><%= tco("user_article_list_title") %></strong></h5>
                        <ol>
                          <% @user_articles.each do |article| %>
                            <li><u><%= link_to article.title, article_path(article) %></u></li>
                          <% end %>
                        </ol>
                        <% unless @user_articles.empty? %>
                          <div class="clearfix">
                            <%= link_to tco("more_display"), owned_articles_path, class: ["pull-right"] %> 
                          </div>
                        <% end %>
                      </div>
                  </li> 
                  </ul>
                <% end %>

                <p class="navbar-text">
                  <% if user_signed_in? %>
                    <strong class="num-of-contribution"><%= current_user.contribution %></strong> <%= tco :contribution %>
                  <% end %>
                </p>
              </div>
            </div>
          </div>
        </div>
      </div>

      <% # Page Body %>
      <div class="container-fluid">

        <% # Notification area %>
        <div class="row">
          <div>
            <% if notice %>
              <p id="notice" class="alert alert-success"><%= notice %></p>
            <% end %>
            <% if alert %>
              <p class="alert alert-danger"><%= alert %></p>
            <% end %>
          </div>
        </div>

        <div class="row">

          <% # Search area %>
          <% if current_user %>
            <%= form_tag search_articles_path, method: :get, id: "article-search-area", role: "search" do %>
              <div class="input-group col-xs-6 col-xs-offset-3">
                <%= text_field_tag "query", params[:query], class: ["form-control", "search-query-help"], data: { content: markdown(tco('article_search_query_help_md')) }, placeholder: tco("article_search") %> 
                <span class="input-group-btn">
                  <%= button_tag "", type: "submit", class: ["btn", "btn-default", "glyphicon", "glyphicon-search"] %>
                </span>
              </div>
            <% end %>
          <% end %>

          <hr />

          <% # Contents area %>
          <div class="col-xs-9">
            <article>
              <%= yield %>
            </article>
          </div>

          <% # Right area %>
          <% if current_user %>
            <nav class="col-xs-3">
              <% # Post new article %>
              <p class="article-new-link-area">
                <%= link_to t('articles.new_title'), new_article_path, class: ["btn", "btn-block", "btn-success"] %>
              </p>

              <% # Pupular article list %>
              <h5><strong><%= tco("popular_article_list_title") %></strong></h5>
              <div>
                <ol>
                  <% @popular_articles.each do |article| %>
                    <li>
                      <u><%= link_to article.title, article_path(article) %></u>
                      <%= render partial: "articles/stock_count", locals: {article: article} %> 
                    </li>
                  <% end %>
                </ol>
              </div>

              <hr />

              <% # Recent tag list %>
              <h5><strong><%= tco("recent_tag_list_title") %></strong></h5>
              <div>
                <ol class="recent-tag-list">
                  <% @recent_tags.each do |tag| %>
                    <li>
                      <u><%= link_to tag.name, tagged_articles_path(tag.name) %></u>
                      <%= render partial: "tags/follow", locals: {tag: tag.name} %>
                    </li>
                  <% end %>
                </ol>
                <% unless @user_articles.empty? %>
                  <div class="clearfix">
                    <%= link_to tco("more_display"), tags_path %>
                  </div>
                <% end %>
              </div>
            </nav>
          <% end %>
        </div>
      </div>
    </div>

  </body>
</html>