%article.c-results.js-hidden
  %section.c-graphs
    %h2.c-graphs--heading.sr-only Graphs

    .js-graph.average-price.hidden
      %h2.c-graph-heading
        Average price
      = render partial: "graphs_key"
      %svg

    .js-graph.house-price-index.hidden
      %h2.c-graph-heading
        House price index
      = render partial: "graphs_key"
      %svg

    .js-graph.percentage-monthly-change.hidden
      %h2.c-graph-heading
        Percentage monthly change
      = render partial: "graphs_key"
      %svg

    .js-graph.percentage-annual-change.hidden
      %h2.c-graph-heading
        Percentage annual change
      = render partial: "graphs_key"
      %svg

    .js-graph.sales-volume.hidden
      %h2.c-graph-heading
        Total sales volume
      %svg

  %section.c-table
    %h2.c-table--heading Data

    %p
      %button.c-change-table-view.c-action
        %i.fa.fa-table
        %span
          Switch to compact table view

    .c-results-table-container
      %table#results-table.table.table-striped

Change label for pivot table action

%article.c-results.js-hidden
  %section.c-graphs
    %h2.c-graphs--heading.sr-only Graphs

    .js-graph.average-price.hidden
      %h2.c-graph-heading
        Average price
      = render partial: "graphs_key"
      %svg

    .js-graph.house-price-index.hidden
      %h2.c-graph-heading
        House price index
      = render partial: "graphs_key"
      %svg

    .js-graph.percentage-monthly-change.hidden
      %h2.c-graph-heading
        Percentage monthly change
      = render partial: "graphs_key"
      %svg

    .js-graph.percentage-annual-change.hidden
      %h2.c-graph-heading
        Percentage annual change
      = render partial: "graphs_key"
      %svg

    .js-graph.sales-volume.hidden
      %h2.c-graph-heading
        Total sales volume
      %svg

  %section.c-table
    %h2.c-table--heading Data

    %p
      %button.c-change-table-view.c-action
        %i.fa.fa-table
        %span
          Show multi-column table view

    .c-results-table-container
      %table#results-table.table.table-striped


- page_title 'Two-factor Authentication', 'Account'

%h2.page-title Two-Factor Authentication (2FA)
%p
  Download the Google Authenticator application from App Store for iOS or
  Google Play for Android and scan this code.

%hr

= form_tag profile_two_factor_auth_path, method: :post, class: 'form-horizontal two-factor-new' do |f|
  - if @error
    .alert.alert-danger
      = @error
  .form-group
    .col-sm-2
    .col-sm-2
      = raw @qr_code
    .col-sm-8.manual-instructions
      %h3 Can't scan the code?

      %p
        To add the entry manually, provide the following details to the
        application on your phone.

      %dl
        %dt Account
        %dd= current_user.email
      %dl
        %dt Key
        %dd= current_user.otp_secret.scan(/.{4}/).join(' ')
      %dl
        %dt Time based
        %dd Yes
  .form-group
    = label_tag :pin_code, nil, class: "control-label"
    .col-sm-10
      = text_field_tag :pin_code, nil, class: "form-control", required: true, autofocus: true
  .form-actions
    = submit_tag 'Submit', class: 'btn btn-success'

Update grids for 2FA details

- page_title 'Two-factor Authentication', 'Account'

%h2.page-title Two-Factor Authentication (2FA)
%p
  Download the Google Authenticator application from App Store for iOS or Google
  Play for Android and scan this code.

  More information is available in the #{link_to('documentation', help_page_path('workflow', 'two_factor_authentication'))}.

%hr

= form_tag profile_two_factor_auth_path, method: :post, class: 'form-horizontal two-factor-new' do |f|
  - if @error
    .alert.alert-danger
      = @error
  .form-group
    .col-lg-2.col-lg-offset-2
      = raw @qr_code
    .col-lg-7.col-lg-offset-1.manual-instructions
      %h3 Can't scan the code?

      %p
        To add the entry manually, provide the following details to the
        application on your phone.

      %dl
        %dt Account
        %dd= current_user.email
      %dl
        %dt Key
        %dd= current_user.otp_secret.scan(/.{4}/).join(' ')
      %dl
        %dt Time based
        %dd Yes
  .form-group
    = label_tag :pin_code, nil, class: "control-label"
    .col-lg-10
      = text_field_tag :pin_code, nil, class: "form-control", required: true, autofocus: true
  .form-actions
    = submit_tag 'Submit', class: 'btn btn-success'


.col-xs-3.col-centered
  %ul.plan.plan1
    %li.plan-name
      = plan_image_tag(plan)
      = plan.name
    %li.plan-price
      %strong= number_to_currency(plan.price, precision: 0)
      \/ month
    %li.plan-reason
      Support morph.io on a budget. Keep morph.io open and running and
      available to all
    %li
      %strong Feel
      the warm and fuzzies
    %li
      %strong Shows
      your support publically
    %li
      %strong Forum
      Support
    %li.plan-action
      = render partial: "plan_action", locals: { plan: plan }

Replace "plan1" class with the plan ID we use

.col-xs-3.col-centered
  %ul{class: "plan #{plan.stripe_plan_id}" }
    %li.plan-name
      = plan_image_tag(plan)
      = plan.name
    %li.plan-price
      %strong= number_to_currency(plan.price, precision: 0)
      \/ month
    %li.plan-reason
      Support morph.io on a budget. Keep morph.io open and running and
      available to all
    %li
      %strong Feel
      the warm and fuzzies
    %li
      %strong Shows
      your support publically
    %li
      %strong Forum
      Support
    %li.plan-action
      = render partial: "plan_action", locals: { plan: plan }


#error_explanation
.row
  .columns.medium-6
    %ul.accordion{ data: { accordion: true, 'deep-link': 'true', 'deep-link-smudge': 'true', 'allow-all-closed': 'true' } }
      %li.accordion-item{ data: { 'accordion-item': true } }
        %a.accordion-title{ href: '#update_username' }
          %h6 Update Username
        .accordion-content{ data: { 'tab-content': true } }
          = form_with model: current_user, url: update_username_users_path do |f|
            = f.text_field :username
            = f.submit 'Change Username', class: 'button success'
      %li.accordion-item{ data: { 'accordion-item': true } }
        %a.accordion-title{ href: '#update_password' }
          %h6 Update Password
        .accordion-content{ data: { 'tab-content': true } }
          = form_with model: current_user, url: update_password_users_path do |f|
            = f.label :current_password
            = f.password_field :current_password
            = f.label :password
            = f.password_field :password
            = f.label :password_confirmation
            = f.password_field :password_confirmation
            = f.submit 'Change Password', class: 'button success'

Add label to my_account update username

#error_explanation
.row
  .columns.medium-6
    %ul.accordion{ data: { accordion: true, 'deep-link': 'true', 'deep-link-smudge': 'true', 'allow-all-closed': 'true' } }
      %li.accordion-item{ data: { 'accordion-item': true } }
        %a.accordion-title{ href: '#update_username' }
          %h6 Update Username
        .accordion-content{ data: { 'tab-content': true } }
          = form_with model: current_user, url: update_username_users_path do |f|
            = f.label :username
            = f.text_field :username
            = f.submit 'Change Username', class: 'button success'
      %li.accordion-item{ data: { 'accordion-item': true } }
        %a.accordion-title{ href: '#update_password' }
          %h6 Update Password
        .accordion-content{ data: { 'tab-content': true } }
          = form_with model: current_user, url: update_password_users_path do |f|
            = f.label :current_password
            = f.password_field :current_password
            = f.label :password
            = f.password_field :password
            = f.label :password_confirmation
            = f.password_field :password_confirmation
            = f.submit 'Change Password', class: 'button success'


= table.column(:preview_picture) do |item|
  - if item.preview_picture.present?
    %img.img-responsive.bottom-margin-2{ src: item.preview_picture.image.url, alt: item.preview_picture.description, title: item.preview_picture.description }
= table.column :locale, sortable: true
= table.column :title, sortable: true, class: 'truncate-chars truncate-chars-30'
= table.column :body, sortable: true, class: 'truncate-chars truncate-chars-30'
= table.timestamps
= table.acts_as_published_actions

Use default_thumb as preview image style.

= table.column(:preview_picture) do |item|
  - if item.preview_picture.present?
    %img.img-responsive.bottom-margin-2{ src: item.preview_picture.image.url(:default_thumb), alt: item.preview_picture.description, title: item.preview_picture.description }
= table.column :locale, sortable: true
= table.column :title, sortable: true, class: 'truncate-chars truncate-chars-30'
= table.column :body, sortable: true, class: 'truncate-chars truncate-chars-30'
= table.timestamps
= table.acts_as_published_actions


.container.content
  .body

    .container{:style => "padding-bottom: 200px; padding-top:200px; padding-left:50px; padding-right:50px"}
      .span11.well{:style => "padding-bottom: 100px; padding-top:100px; padding-left: 50px; padding-right: 50px; width:700px; background-color:#ffffff"}
        %img{:src => "tt_logo.png", :style => "padding-bottom:20px;"}
        %center
          .form-inline{:action => "demo_form.asp"}
            %input{:name => "search", :type => "text", :class => "input-mysize"}
            %input{:type => "submit", :value => "Submit", :class => "btn btn-success"}

Change submit button label to search

.container.content
  .body

    .container{:style => "padding-bottom: 200px; padding-top:200px; padding-left:50px; padding-right:50px"}
      .span11.well{:style => "padding-bottom: 100px; padding-top:100px; padding-left: 50px; padding-right: 50px; width:700px; background-color:#ffffff"}
        %img{:src => "tt_logo.png", :style => "padding-bottom:20px;"}
        %center
          .form-inline{:action => "demo_form.asp"}
            %input{:name => "search", :type => "text", :class => "input-mysize"}
            %input{:type => "submit", :value => "Search", :class => "btn btn-success"}


%table
  %thead
    %tr
      %th{colspan: 3}
        Continuities
        - if logged_in?
          = link_to new_board_path do
            .link-box.green + New Continuity
    %tr
      %th.sub Name
      %th.sub Authors
      %th.sub Last Updated
  %tbody
    - if @boards
      - @boards.each do |board|
        = render partial: 'list_item', locals: {board: board}
      - if @boards.empty?
        %tr
          %td.centered.padding-10.no-posts{ class: cycle('even','odd'), colspan: 3 } — No boards yet —
    - elsif @owned_boards
      %tr
        - @owned_boards.each do |board|
          = render partial: 'list_item', locals: {board: board}
        - if @owned_boards.empty?
          %tr
            %td.centered.padding-10.no-posts{ class: cycle('even','odd'), colspan: 3 } — No boards yet —
        - if @cameod_boards.present?
          %tr
            %td.continuity-spacer
          %th.sub{colspan: 3} Cameo Boards
          - @cameod_boards.each do |board|
            = render partial: 'list_item', locals: {board: board}

Add breadcrumbs to user continuities & hide new button on not-your page

- if @user.present? && @user.id != current_user.try(:id)
  - content_for :breadcrumbs do
    = link_to "#{@user.username}", user_path(@user)
    »
    %b #{@user.username}'s Continuities

%table
  %thead
    %tr
      %th{colspan: 3}
        - if @user.present?
          - if @user.id == current_user.try(:id)
            Your Continuities
          - else
            = @user.username + "'s Continuities"
        - else
          Continuities
        - if logged_in? && (@user.try(:id) == current_user.id)
          = link_to new_board_path do
            .link-box.green + New Continuity
    %tr
      %th.sub Name
      %th.sub Authors
      %th.sub Last Updated
  %tbody
    - if @boards
      - @boards.each do |board|
        = render partial: 'list_item', locals: {board: board}
      - if @boards.empty?
        %tr
          %td.centered.padding-10.no-posts{ class: cycle('even','odd'), colspan: 3 } — No boards yet —
    - elsif @owned_boards
      %tr
        - @owned_boards.each do |board|
          = render partial: 'list_item', locals: {board: board}
        - if @owned_boards.empty?
          %tr
            %td.centered.padding-10.no-posts{ class: cycle('even','odd'), colspan: 3 } — No boards yet —
        - if @cameod_boards.present?
          %tr
            %td.continuity-spacer
          %th.sub{colspan: 3} Cameo Boards
          - @cameod_boards.each do |board|
            = render partial: 'list_item', locals: {board: board}


.small-12.medium-6.columns.text-right
  .profile-checkbox
    %input{"ng-model" => "show_profiles", type: "checkbox", name: "profile"}><
    %label Show profiles
    %button.button.secondary.tiny.help-btn.ng-scope{:popover => "Profiles do not have a shopfront on the Open Food Network, but do have their own physical or online shop elsewhere", "popover-placement" => "left"}><
      %i.ofn-i_013-help

Tweak message on profile label

.small-12.medium-6.columns.text-right
  .profile-checkbox
    %input{"ng-model" => "show_profiles", type: "checkbox", name: "profile"}><
    %label Show profiles
    %button.button.secondary.tiny.help-btn.ng-scope{:popover => "Profiles do not have a shopfront on the Open Food Network, but may have their own physical or online shop elsewhere", "popover-placement" => "left"}><
      %i.ofn-i_013-help


= label_tag attribute.name do
  = check_box_tag "#{@resource.model.model_name.param_key}[#{attribute.name}]"
  = @resource.model.human_attribute_name(attribute.name)

Update boolean form partial to use bootstrap indicator style

%label.c-input.c-checkbox
  = check_box_tag "#{@resource.model.model_name.param_key}[#{attribute.name}]"
  %span.c-indicator
  = @resource.model.human_attribute_name(attribute.name)


- constraints.each do |constraint|
  :ruby
    opts = {
      :id    => "constraint_#{constraint.id}",
      :class => (constraint.id == 1) ? 'first' : nil,
      :href  => "/constraints/#{constraint.id}"
    }
    key = if constraint.key == 'co2_reduction' or constraint.key == 'local_co2_reduction'
      Current.setting.use_fce ? 'greenhouse_gas' : 'co2_reduction'
    else
      constraint.key
    end

  .constraint{opts}
    .header
      = raw I18n.t("constraints.#{key}.label")
      %span.sub_header
    .arrow
    %strong

Fix local CO2 emissions title when FCE is disbaled

- constraints.each do |constraint|
  :ruby
    opts = {
      :id    => "constraint_#{constraint.id}",
      :class => (constraint.id == 1) ? 'first' : nil,
      :href  => "/constraints/#{constraint.id}"
    }
    key = if constraint.key == 'co2_reduction' or constraint.key == 'local_co2_reduction'
      Current.setting.use_fce ? 'greenhouse_gas' : constraint.key
    else
      constraint.key
    end

  .constraint{opts}
    .header
      = raw I18n.t("constraints.#{key}.label")
      %span.sub_header
    .arrow
    %strong


.container
  .row
    .col-md-3
      %h1.page-header
        Machine Learning Resources
        -#%small Helpful Links
.row
  .col-md-3
  .list-group
    = link_to 'Quick review of the linear algebra concepts relevant to machine learning', "http://www.deeplearningbook.org/contents/linear_algebra.html", class: 'list-group-item', target: '_blank'
    = link_to 'An Introduction to Statistical Learning (Book and MOOC slides', "http://www-bcf.usc.edu/~gareth/ISL/", class: 'list-group-item', target: '_blank'
    = link_to 'Every single Machine Learning course on the internet, ranked by your reviews', "https://medium.freecodecamp.org/every-single-machine-learning-course-on-the-internet-ranked-by-your-reviews-3c4a7b8026c0", class: 'list-group-item', target: '_blank'

Add link to Deep Learning book.

.container
  .row
    .col-md-3
      %h1.page-header
        Machine Learning Resources
        -#%small Helpful Links
.row
  .col-md-3
  .list-group
    = link_to 'Quick review of the linear algebra concepts relevant to machine learning', "http://www.deeplearningbook.org/contents/linear_algebra.html", class: 'list-group-item', target: '_blank'
    = link_to 'An Introduction to Statistical Learning (Book and MOOC slides', "http://www-bcf.usc.edu/~gareth/ISL/", class: 'list-group-item', target: '_blank'
    = link_to 'Every single Machine Learning course on the internet, ranked by your reviews', "https://medium.freecodecamp.org/every-single-machine-learning-course-on-the-internet-ranked-by-your-reviews-3c4a7b8026c0", class: 'list-group-item', target: '_blank'
    = link_to 'Deep Learning Book, a.k.a. the Bible of Deep Learning, authored by Ian Goodfellow, Yoshua Bengio, and Aaron Courville', "http://www.deeplearningbook.org/", class: 'list-group-item', target: '_blank'


- content_for :create_access_levels do
  .create_access_levels-container
    = dropdown_tag('Select',
                   options: { toggle_class: 'js-allowed-to-create wide',
                   dropdown_class: 'dropdown-menu-selectable',
                   data: { field_name: 'protected_tag[create_access_levels_attributes][0][access_level]', input_id: 'create_access_levels_attributes' }})

= render 'projects/protected_tags/shared/create_protected_tag'

Add missing CSS class to capitalize the protectec tag header dropdown

- content_for :create_access_levels do
  .create_access_levels-container
    = dropdown_tag('Select',
                   options: { toggle_class: 'js-allowed-to-create wide',
                   dropdown_class: 'dropdown-menu-selectable capitalize-header',
                   data: { field_name: 'protected_tag[create_access_levels_attributes][0][access_level]', input_id: 'create_access_levels_attributes' }})

= render 'projects/protected_tags/shared/create_protected_tag'


#table-image-modal.table-edit-modal.modal.fade{ tabindex: "-1", role: "dialog"}
  .modal-dialog{role: "document"}
    .modal-content
      .modal-header
        %h4.modal-title
          Node Image
        %button.close{type: "button", "data-dismiss" => "modal", "aria-label" => "Close"}
      .modal-body

Add table image modal content

#table-image-modal.table-edit-modal.modal.fade{ tabindex: "-1", role: "dialog"}
  .modal-dialog{role: "document"}
    .modal-content
      .modal-header
        %h4.modal-title
          Node Image
        %button.close{type: "button", "data-dismiss" => "modal", "aria-label" => "Close"}
      .modal-body
        %p
          This is the image used to display in the visualization
          %br
          %small
            2 MB max. jpg / png / gif
        %hr
        .row
          .col-sm-6
            .form-group
              %label
                Upload from your computer
              %input.form-control{type: "file"}
                Browse
          .col-sm-6
            .form-group
              %label
                Choose it from internet
              %input.form-control{type: "text"}


%h1 カテゴリの編集

= render 'form'

= link_to 'Add children', new_editor_category_url, parend_id: @category
\|
= link_to 'Show', editor_category_url
\|
= link_to 'Back', editor_categories_url

Remove link to add children

%h1 カテゴリの編集

= render 'form'

= link_to 'Show', editor_category_url
\|
= link_to 'Back', editor_categories_url


.anime-discover.anime-show.anime-show-full
  .row
    .three.columns
      = render partial: 'anime/card', locals: {data: [@anime, @watchlist, 'twelve']}

    .nine.columns
      .panel.top-bar
        %h4= title "#{@anime.title} Quotes"
        %a{"data-reveal-id" => "submit-quote", :href => "#"}
          %span= "Submit a quote for #{@anime.title}"

      - @quotes.each do |quote|
        %fieldset
          %blockquote
            = quote.content
            - if quote.character_name
              %cite #{quote.character_name}
          %p.option-bar
            - if quote.creator
              (Submitted by #{link_to quote.creator.name, quote.creator})
              |
            = pluralize quote.votes.to_i, "vote"
            |
            - if current_user && quote.has_evaluation?(:votes, current_user)
              = link_to "(^) remove vote", vote_anime_quote_path(@anime, quote, type: "down"), method: :post
            - else
              = link_to "^ vote", vote_anime_quote_path(@anime, quote, type: "up"), method: :post
            |
            = link_to "report", "#"

#submit-quote.reveal-modal{:class => "[expand, xlarge, large, medium, small]"}
  = render 'quotes/new'

Replace textual quote vote link with full & empty star.

.anime-discover.anime-show.anime-show-full
  .row
    .three.columns
      = render partial: 'anime/card', locals: {data: [@anime, @watchlist, 'twelve']}

    .nine.columns
      .panel.top-bar
        %h4= title "#{@anime.title} Quotes"
        %a{"data-reveal-id" => "submit-quote", :href => "#"}
          %span= "Submit a quote for #{@anime.title}"

      - @quotes.each do |quote|
        %fieldset
          %blockquote
            = quote.content
            - if quote.character_name
              %cite #{quote.character_name}
          %p.option-bar
            - if quote.creator
              (Submitted by #{link_to quote.creator.name, quote.creator})
              |
            = pluralize quote.votes.to_i, "vote"

            - if current_user && quote.has_evaluation?(:votes, current_user)
              = link_to vote_anime_quote_path(@anime, quote, type: "down"), method: :post do
                %i.icon-star
            - else
              = link_to vote_anime_quote_path(@anime, quote, type: "up"), method: :post do
                %i.icon-star-empty
            |
            = link_to "report", "#"

#submit-quote.reveal-modal{:class => "[expand, xlarge, large, medium, small]"}
  = render 'quotes/new'


- if development?
  %nav.jg-navbar.navbar.navbar-default{"role"=>"navigation"}
    .navbar-header
      .navbar-collapse.collapse
        %ul.nav.navbar-nav
          %li= link_to server.name, server
          %li= link_to 'Backups', server_backups_path(server)
          %li= link_to 'Console', console_server_path(server)

Allow nav menu for servers on all env


%h2
  =h t('.search.for', :q => params[:q])
- unless @result.empty?
  %ul#searchresult
    - @result.each do |entry|
      %li
        = link_to "#{entry['display_name']}", root_path(:a => :b, :lat => entry['lat'], :lon => entry['lon'], :zoom => 17, :q => params[:q], :node_id => entry['osm_id'])
- else
  %p
    =t('.search.not_found')

Use negative ids as url param for pseudo nodes.

%h2
  =h t('.search.for', :q => params[:q])
- unless @result.empty?
  %ul#searchresult
    - @result.each do |entry|
      %li
        = link_to "#{entry['display_name']}", root_path(:a => :b, :lat => entry['lat'], :lon => entry['lon'], :zoom => 17, :q => params[:q], :node_id => entry['osm_type'] == 'way' ? (entry['osm_id'].to_i * -1) : entry['osm_id'])
- else
  %p
    =t('.search.not_found')


#map.pane

  .row
    .small-12.columns.text-center
      %h2 Map
      %h5 of all our food hubs and producers
      %p
      %button.neutral-btn.light
        %i.ofn-i_037-map
        View map

Add in link to map page for homepage pane

#map.pane

  .row
    .small-12.columns.text-center
      %h2 Map
      %h5 of all our food hubs and producers
      %p
      %a.neutral-btn.light{href: "/map"}
        %i.ofn-i_037-map
        View map


/[if lt IE9]
  :javascript
    document.createElement('header');
    document.createElement('nav');
    document.createElement('section');
    document.createElement('article');
    document.createElement('aside');
    document.createElement('footer');
    document.createElement('figure');
    document.createElement('figurecap');
    document.createElement('hgroup');

:javascript
  // Switch no-js class for js
  (function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement);

  // Initialise a flamsteed buffer
  window.fs = {
    buffer: [],
    log : function(x){this.buffer.push({e: x})},
    time: function(x){!!window.performance && !!window.performance.now && this.buffer.push({e: x, t: window.performance.now()})}
  };

Fix up lt IE conditional

/[if lt IE 9]
  :javascript
    document.createElement('header');
    document.createElement('nav');
    document.createElement('section');
    document.createElement('article');
    document.createElement('aside');
    document.createElement('footer');
    document.createElement('figure');
    document.createElement('figurecap');
    document.createElement('hgroup');

:javascript
  // Switch no-js class for js
  (function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement);

  // Initialise a flamsteed buffer
  window.fs = {
    buffer: [],
    log : function(x){this.buffer.push({e: x})},
    time: function(x){!!window.performance && !!window.performance.now && this.buffer.push({e: x, t: window.performance.now()})}
  };


= content_for :breadcrumbs do
  %li.current= link_to "#{@response.survey.title} - Response of #{@response.respondable.full_name}", @response.respondable

%section

  %header
    %h2 #{@response.survey.title} - Response of #{@response.respondable.full_name}

  %article.body
    %dl.responses
      - @response.response_answers.group_by { |ra| ra.question }.each do |question, responses|
        .response-block
          %dt.question
            = question.content

            - responses.each do |response|
              %dd.answer
                = response.answer.try(:content) || response.free_content

    .form-actions
      = link_to 'Back', :back, class: 'button'

Make the display of responses compatible for both moneywise and fls.

= content_for :breadcrumbs do
  %li.current= link_to "#{@response.survey.title} - Response of #{@response.respondable}", '#'

%section

  %header
    %h2 #{@response.survey.title} - Response of #{@response.respondable}

  %article.body
    %dl.responses
      - @response.response_answers.group_by { |ra| ra.question }.each do |question, responses|
        .response-block
          %dt.question
            = question.content

            - responses.each do |response|
              %dd.answer
                = response.answer.try(:content) || response.free_content

    .form-actions
      = link_to 'Back', :back, class: 'button'


.form-buttons.filter-actions.actions
  = button t('update'), 'icon-refresh'
  %span.or= t(:or)
  = button_link_to t('cancel'), collection_url, icon: 'icon-remove'

Use root translation keys for basic actions

.form-buttons.filter-actions.actions
  = button t(:update), 'icon-refresh'
  %span.or= t(:or)
  = button_link_to t(:cancel), collection_url, icon: 'icon-remove'


%li.card.article.has-signal{ class: ('has-article-footer' unless article.tags.empty? )}
  = article.signal
  = link_to article.title, article, class: 'article-title'
  - unless article.tags.empty?
    .article-footer
      %ul.list.list--inline{ 'data-ui-component' => 'tag-list' }
        - article.tags.each do |t|
          %li.list-item= link_to t.name, tag_path(t), class: 'label label--link'

Add `list-item` class to Article partial

%li.card.list-item.article.has-signal{ class: ('has-article-footer' unless article.tags.empty? )}
  = article.signal
  = link_to article.title, article, class: 'article-title'
  - unless article.tags.empty?
    .article-footer
      %ul.list.list--inline{ 'data-ui-component' => 'tag-list' }
        - article.tags.each do |t|
          %li.list-item= link_to t.name, tag_path(t), class: 'label label--link'


#main_div
  - if ["instances"].include?(@display) && @showtype != "compare"
    = render :partial => "layouts/gtl", :locals => {:action_url => "show/#{@record.id}"}
  - elsif @showtype == 'main'
    = render(:partial => 'main')

Allow cloud_subnet to show nested cloud_subnet

#main_div
  - if ["instances", "cloud_subnets"].include?(@display) && @showtype != "compare"
    = render :partial => "layouts/gtl", :locals => {:action_url => "show/#{@record.id}"}
  - elsif @showtype == 'main'
    = render(:partial => 'main')


%h1= Rails.application.class.parent_name.underscore.titleize
%h2 Dashboard

= link_to 'Check for updates', app_express.updates_path

Remove check for updates link in dashboard


= render :partial => "layouts/flash_msg"
#column_lists
  .col-md-7.col-sm-10.col-xs-10
    = _('Class Schema Sequencing:')
    = select_tag('seq_fields[]',
      options_for_select(@edit[:new][:fields_list], @selected),
      :multiple => true, :class  => "form-control", :style => "overflow-x: scroll;", :size => 20, :id => "seq_fields")
    %small= _('* Select one or more consecutive fields to move up or down.')

  - button_params = @edit[:new][:fields].length >= 2 ? [[_("Move selected fields up"),   'column_lists', 'up',    'fa-angle-up'],
                                                        [_("Move selected fields down"), 'column_lists', 'down',  'fa-angle-down']] : []
  = render :partial => "shared/views/seq_selector_buttons",
           :locals  => {:fields_count  => @edit[:new][:fields].length,
                        :button_params => button_params,
                        :button_action => 'fields_seq_field_changed',
                        :id            => 'seq'}

:javascript
  // disable any other tabs on screen when in edit
  miq_tabs_disable_inactive('#ae_tabs');

Automate Datastore Schema Edit reset click message


#storage_pod_folders_div
  - if @folders
    = render(:partial => "layouts/flash_msg")
    %table.table.table-bordered.table-striped.table-hover
      %tbody
        - @folders.each do |f|
          %tr{:title => _("View '%{name}' Cluster") % {:name => f.name},
            :onclick => "miqTreeActivateNode('storage_pod_tree', 'dsc_xx-#{to_cid(f.id)}');"}
            %td.narrow
              %i.pficon.pficon-folder-close
            %td
              = h(f.name)

Fix link to display Datastore Clusters

#storage_pod_folders_div
  - if @folders
    = render(:partial => "layouts/flash_msg")
    %table.table.table-bordered.table-striped.table-hover
      %tbody
        - @folders.each do |f|
          %tr{:title => _("View '%{name}' Cluster") % {:name => f.name},
            :onclick => "miqTreeActivateNode('storage_pod_tree', 'xx-#{to_cid(f.id)}');"}
            %td.narrow
              %i.pficon.pficon-folder-close
            %td
              = h(f.name)


.panel.panel-green.box.col4
  .panel-heading
    .media
      .media-left.media-middle.pull-left
        = gravatar_for("nishiguchi.masa@gmail.com")
      .media-body
        %h4.media-heading
          Masatoshi Nishiguchi
        %ul.list-unstyled
          %li
            %i.fa.fa-map-marker
            Washington, DC
          %li
            %i.fa.fa-birthday-cake
            = Faker::Time.between(2.days.ago, Time.now, :day).strftime('%b %d, %Y')
  .panel-body.person_sentence
    %i
      = Faker::Lorem.sentence(3)
  .panel-footer
    %ul.list-unstyled
      %li
        %i.fa.fa-envelope
        = Faker::Internet.free_email

Add css-classes to expermental template

.panel.panel-green.box.col4
  .panel-heading
    .media
      .avatar-wrapper.media-left.media-middle.pull-left
        = gravatar_for("nishiguchi.masa@gmail.com")
      .info-wrapper.media-body
        %h4.media-heading
          Masatoshi Nishiguchi
        %ul.list-unstyled
          %li
            %i.fa.fa-map-marker
            Washington, DC
          %li
            %i.fa.fa-birthday-cake
            = Faker::Time.between(2.days.ago, Time.now, :day).strftime('%b %d, %Y')
  .person_sentence.panel-body
    %i
      = Faker::Lorem.sentence(3)
  .contact-info.panel-footer
    %ul.list-unstyled
      %li
        %i.fa.fa-envelope
        = Faker::Internet.free_email


:ruby
  column_type_dom_id = form.dom_id(field).sub(field.method_name.to_s, "")
  attr = column_type_dom_id.gsub(/[a-z]+_variants_attributes/, '').gsub(/^_/, '[').gsub(/_$/, ']')

- options_for_klass(@object.class).each do |option|
  %h5= option.name
  = hidden_field_tag "#{@object.class.to_s.downcase}[variants_attributes]#{attr}[option_value_ids][]", nil
  - option.option_values.each do |option_value|
    %p
      = check_box_tag "#{@object.class.to_s.downcase}[variants_attributes]#{attr}[option_value_ids][]", option_value.id, form.object.option_values.include?(option_value), :style => "margin:-2px 5px 0px 0px;"
      %span= option_value.name

Fix allow underscore in field name.

:ruby
  column_type_dom_id = form.dom_id(field).sub(field.method_name.to_s, "")
  attr = column_type_dom_id.gsub(/[a-z_]+_variants_attributes/, '').gsub(/^_/, '[').gsub(/_$/, ']')

- options_for_klass(@object.class).each do |option|
  %h5= option.name
  = hidden_field_tag "#{@object.class.to_s.downcase}[variants_attributes]#{attr}[option_value_ids][]", nil
  - option.option_values.each do |option_value|
    %p
      = check_box_tag "#{@object.class.to_s.downcase}[variants_attributes]#{attr}[option_value_ids][]", option_value.id, form.object.option_values.include?(option_value), :style => "margin:-2px 5px 0px 0px;"
      %span= option_value.name


%table.zebra-striped
  %thead
    %th.first
    %th= t('activerecord.attributes.user.email')
    %th= t(:actions)
  %tbody
    - collection.each do |user|
      %tr
        %td
        %td= user.email
        %td
          = action_button 'small danger', t('edit'), edit_crew_profile_path(user.person)
          = action_button 'small danger', t('destroy'), conference_users_path(person_id: user.person), confirm: 'Are you sure', method: :delete

Add edit user link to conference users admin list

%table.zebra-striped
  %thead
    %th.first
    %th= t('activerecord.attributes.user.email')
    %th= t(:actions)
  %tbody
    - collection.each do |user|
      %tr
        %td
        %td= user.email
        %td
          = action_button 'small danger', t('user'), edit_crew_user_path(user.person)
          = action_button 'small danger', t('person'), edit_crew_profile_path(user.person)
          = action_button 'small danger', t('destroy'), conference_users_path(person_id: user.person), confirm: 'Are you sure', method: :delete


%h3 Induction - Organisation details
= form(:action => url(:controller => 'induction', :action => 'create_organisation_details')) do
  %p
    = text_field(:name => 'organisation_name', :value => @organisation_name, :label => "The organisation's name")
  %p
    = label("The organisation's objectives", :for => 'objectives')
    %br
    = text_area(@objectives, :name => 'objectives')
  %p
    = check_box(:name => 'assets', :checked => @assets, :label => 'The organisation will have the power to hold and transfer assets')
  %p
    = submit("Save and move on")
%p
  = link_to("Discard and go back", url(:controller => 'induction', :action => 'founder'))

Fix that selection for assets clause during induction wasn't being saved.

%h3 Induction - Organisation details
= form(:action => url(:controller => 'induction', :action => 'create_organisation_details')) do
  %p
    = text_field(:name => 'organisation_name', :value => @organisation_name, :label => "The organisation's name")
  %p
    = label("The organisation's objectives", :for => 'objectives')
    %br
    = text_area(@objectives, :name => 'objectives')
  %p
    = check_box(:name => 'assets', :checked => @assets, :label => 'The organisation will have the power to hold and transfer assets', :value => '1')
  %p
    = submit("Save and move on")
%p
  = link_to("Discard and go back", url(:controller => 'induction', :action => 'founder'))


%h1
  = t('share')
  = t('virtual_machine_templates.long_title_single')

= simple_form_for [:admin, @virtual_machine_template], url: export_admin_virtual_machine_template_path, method: :post do |f|
  = f.error_notification

  .inputs
    = f.input :compute_site_id, collection: @compute_sites

  .actions
    %button.btn.btn-success{id: "action-button", type: "submit"}
      =fa_icon 'copy'
      = t('export')
    = link_to t('back'), admin_virtual_machine_templates_path, class: 'btn btn-default'

Fix namespace used in application controller, fix icon funciton usage

%h1
  = t('share')
  = t('virtual_machine_templates.long_title_single')

= simple_form_for [:admin, @virtual_machine_template], url: export_admin_virtual_machine_template_path, method: :post do |f|
  = f.error_notification

  .inputs
    = f.input :compute_site_id, collection: @compute_sites

  .actions
    %button.btn.btn-success{id: "action-button", type: "submit"}
      =icon 'copy'
      = t('export')
    = link_to t('back'), admin_virtual_machine_templates_path, class: 'btn btn-default'


:javascript
  GitLab.GfmAutoComplete.dataSource = "#{autocomplete_sources_project_path(@project)}"
  GitLab.GfmAutoComplete.Emoji.assetBase = '/assets/emoji'
  GitLab.GfmAutoComplete.setup();

Add support for relative url to GitLab.GfmAutoComplete.Emoji.assetBase

:javascript
  GitLab.GfmAutoComplete.dataSource = "#{autocomplete_sources_project_path(@project)}"
  GitLab.GfmAutoComplete.Emoji.assetBase = "#{Gitlab.config.gitlab.relative_url_root + '/assets/emoji'}"
  GitLab.GfmAutoComplete.setup();


.row
  .col-sx-6.col-sm-6.col-md-6.choice-1
    = button_to "#{@choices[@i][0]}", controller: 'learn_sessions', :action => 'check_answer', learn_session_id: @learn_session.id, index: @i,  :value => @choices[@i][0]
  .col-sx-6.col-sm-6.col-md-6.choice-2
    = @choices[@i][1]
.row
  .col-sx-6.col-sm-6.col-md-6.choice-3
    = @choices[@i][2]
  .col-sx-6.col-sm-6.col-md-6.choice-4
    = @choices[@i][3]

Implement button_to for all choices Looks ugly at the moment, styling comes later.

.row
  .col-sx-6.col-sm-6.col-md-6.choice-1
    = button_to "#{@choices[@i][0]}", controller: 'learn_sessions', :action => 'check_answer', learn_session_id: @learn_session.id, index: @i,  :value => @choices[@i][0]
  .col-sx-6.col-sm-6.col-md-6.choice-2
    = button_to "#{@choices[@i][1]}", controller: 'learn_sessions', :action => 'check_answer', learn_session_id: @learn_session.id, index: @i,  :value => @choices[@i][1]
.row
  .col-sx-6.col-sm-6.col-md-6.choice-3
    = button_to "#{@choices[@i][2]}", controller: 'learn_sessions', :action => 'check_answer', learn_session_id: @learn_session.id, index: @i,  :value => @choices[@i][2]
  .col-sx-6.col-sm-6.col-md-6.choice-4
    = button_to "#{@choices[@i][3]}", controller: 'learn_sessions', :action => 'check_answer', learn_session_id: @learn_session.id, index: @i,  :value => @choices[@i][3]


%main.row
  .cell.well.well--l

    - if user_signed_in?

      .form.form--inline
        = form_tag articles_path, method: :get, remote: true, class: 'js-search-form' do
          = search_field_tag :search, params[:search],
            class: 'form-input js-search-input',
            placeholder: 'Search articles by keyword',
            autofocus: true

      %ul.list.list--xs.js-article-list.dn
        = render @articles

      .mbm
        = render 'guides/guides', guides: @articles

    - else

      %h1
        = link_to "Please Log in to Continue", login_path, data: { no_turbolink: true }

Add bottom margin to article search results

%main.row
  .cell.well.well--l

    - if user_signed_in?

      .form.form--inline
        = form_tag articles_path, method: :get, remote: true, class: 'js-search-form' do
          = search_field_tag :search, params[:search],
            class: 'form-input js-search-input',
            placeholder: 'Search articles by keyword',
            autofocus: true

      %ul.list.list--xs.js-article-list.dn.mbm
        = render @articles

      .mbm
        = render 'guides/guides', guides: @articles

    - else

      %h1
        = link_to "Please Log in to Continue", login_path, data: { no_turbolink: true }


= semantic_form_for resource do |f|
  = f.semantic_errors
  = f.inputs do
    = f.input :amount, :input_html => {"data-autofocus" => true, :size => 12, :style => 'text-align: right'}
    = f.input :amount_relates_to, :collection => amount_relations_as_collection
    = f.input :code
    = f.input :title
    = f.input :charge_rate_code
    = f.input :credit_account
    = f.input :debit_account
    = f.input :comments, :input_html => {:rows => 5}
  = f.buttons do
    = f.commit_button

Drop unused amount in charge booking templat form.

= semantic_form_for resource do |f|
  = f.semantic_errors
  = f.inputs do
    = f.input :amount_relates_to, :collection => amount_relations_as_collection
    = f.input :code
    = f.input :title
    = f.input :charge_rate_code
    = f.input :credit_account
    = f.input :debit_account
    = f.input :comments, :input_html => {:rows => 5}
  = f.buttons do
    = f.commit_button


- @title = t('.heading')

= tls_warning(email_setup: true)

%p= t('.domain.intro')

- unless @domains.map { |d| d['name'] }.include?(Site.current.host)
  .alert.alert-warning
    %h4
      = icon 'fa fa-warning'
      = t('.domain_missing.heading')
    = t('.domain_missing.message_html', domain: Site.current.host)

= form_tag administration_email_setup_path, class: 'form', method: 'put' do
  .form-group
    = label_tag :domain, t('.domain.label')
    = select_tag :domain, options_for_select([''] + @domains.map { |d| d['name'] }), class: 'form-control'
  .form-group
    = button_tag t('.submit'), class: 'btn btn-success'

Select current site's domain by default

- @title = t('.heading')

= tls_warning(email_setup: true)

%p= t('.domain.intro')

- unless @domains.map { |d| d['name'] }.include?(Site.current.host)
  .alert.alert-warning
    %h4
      = icon 'fa fa-warning'
      = t('.domain_missing.heading')
    = t('.domain_missing.message_html', domain: Site.current.host)

= form_tag administration_email_setup_path, class: 'form', method: 'put' do
  .form-group
    = label_tag :domain, t('.domain.label')
    = select_tag :domain, options_for_select([''] + @domains.map { |d| d['name'] }, Site.current.host), class: 'form-control'
  .form-group
    = button_tag t('.submit'), class: 'btn btn-success'


%table.table.table-hover.table-bordered
  %tbody
    %tr
      %th= t('terms.backup_file')
      %th= t('terms.backup_time')
      %th= t('terms.note')
  - @backup_files.each do |file|
    %tr
      %td= link_to(file.name, daemon_setting_history_path(id: file.file_id))
      %td= file.ctime.strftime t('time.formats.default')
      %td
        = form_for :note, url: daemon_setting_note_path(id: file.note.file_id), method: :patch do |f|
          = f.text_field :content, value: file.note.content
          = submit_tag t('terms.save'), class: 'btn'

Add css class instead of id due to multiple forms.

%table.table.table-hover.table-bordered
  %tbody
    %tr
      %th= t('terms.backup_file')
      %th= t('terms.backup_time')
      %th= t('terms.note')
  - @backup_files.each do |file|
    %tr
      %td= link_to(file.name, daemon_setting_history_path(id: file.file_id))
      %td= file.ctime.strftime t('time.formats.default')
      %td
        = form_for :note, url: daemon_setting_note_path(id: file.note.file_id), method: :patch do |f|
          = f.text_field :content, value: file.note.content, class: "note-content", id: nil
          = submit_tag t('terms.save'), class: 'btn'


%article.card.card--single.card--poi.card--poi--sight.js-card.js-single{class: stack_item.image_url ? 'card--small-image card--extended-content' : 'card--no-image' }
  %a.link--wrapper(href="#{stack_item.slug}")
    = render :partial => '/shared/cards/things_to_do/card_tags', :locals => { :stack_item => stack_item }
    - if stack_item.image_url
      %figure.card__hero.obj-media__img
        = image_tag(stack_item.image_url, class: 'portrait card__image')
    %section.card__content.obj-media__body
      %span.card__context
        Sight
      %h1.card__name.js-card-name
        = stack_item.name
      %p.card__description
        = stack_item.card_description

Add preceding slash to item url

%article.card.card--single.card--poi.card--poi--sight.js-card.js-single{class: stack_item.image_url ? 'card--small-image card--extended-content' : 'card--no-image' }
  %a.link--wrapper(href="/#{stack_item.slug}")
    = render :partial => '/shared/cards/things_to_do/card_tags', :locals => { :stack_item => stack_item }
    - if stack_item.image_url
      %figure.card__hero.obj-media__img
        = image_tag(stack_item.image_url, class: 'portrait card__image')
    %section.card__content.obj-media__body
      %span.card__context
        Sight
      %h1.card__name.js-card-name
        = stack_item.name
      %p.card__description
        = stack_item.card_description


.controls{data: { nestedone: true }}
  %ul.nav{style: 'margin-bottom:0px; display:none'}
  .btn-group
    %a.btn.btn-info.toggler{:'data-toggle' => "button", :'data-target' => "#{form.jquery_namespace(field)} > .tab-content", class: (field.active? ? 'active' : '') }
      %i.icon-white
    - unless field.nested_form[:update_only] || !field.inline_add
      = form.link_to_add " #{wording_for(:link, :new, field.associated_model_config.abstract_model)}".html_safe,
        field.name,
        { class: 'btn btn-info', :'data-add-label' => " #{wording_for(:link, :new, field.associated_model_config.abstract_model)}".gsub("\n", "") }
  = form.errors_for(field)
  = form.help_for(field)

.tab-content
  = form.fields_for field.name do |nested_form|
    - if field.nested_form[:allow_destroy]
      = nested_form.link_to_remove ''.html_safe
    = nested_form.generate({action: :nested, model_config: field.associated_model_config, nested_in: field })

Fix form nested one style

.controls.col-md-offset-2{data: { nestedone: true }}
  %ul.nav{style: 'margin-bottom:0px; display:none'}
  .btn-group
    %a.btn.btn-info.toggler{:'data-toggle' => "button", :'data-target' => "#{form.jquery_namespace(field)} > .tab-content", class: (field.active? ? 'active' : '') }
      %i.icon-white
    - unless field.nested_form[:update_only] || !field.inline_add
      = form.link_to_add " #{wording_for(:link, :new, field.associated_model_config.abstract_model)}".html_safe,
        field.name,
        { class: 'btn btn-info', :'data-add-label' => " #{wording_for(:link, :new, field.associated_model_config.abstract_model)}".gsub("\n", "") }
  = form.errors_for(field)
  = form.help_for(field)

.tab-content
  = form.fields_for field.name do |nested_form|
    - if field.nested_form[:allow_destroy]
      = nested_form.link_to_remove ''.html_safe
    = nested_form.generate({action: :nested, model_config: field.associated_model_config, nested_in: field })


%h1.m-b-3
  = @resource.model_name.human.pluralize
%table.table.m-b-3.table-striped
  %thead
    %tr
      - @attributes_for_index.each do |attribute|
        %th{ :class => ('text-md-center' if attribute.center?) }
          = @resource.human_attribute_name(attribute.name)
      %th
  %tbody
    - @entries.each do |entry|
      %tr
        - @attributes_for_index.each do |attribute|
          %td{ :class => ('text-md-center' if attribute.center?) }
            = render attribute.index_partial_path, entry: entry, attribute: attribute, value: entry[attribute.key]
        %td.text-nowrap.text-md-right
          = link_to 'Edit', edit_polymorphic_path(entry),
            class: 'label label-primary'
          = link_to 'Delete', polymorphic_path(entry),
            class: 'label label-danger', method: :delete, data: { confirm: 'Are you sure?' }
= paginate @entries, views_prefix: 'cms'
= link_to "New #{ @resource.model_name.human }",
  new_polymorphic_path(@resource), class: 'btn btn-primary'

Add message if no entries

%h1.m-b-3
  = @resource.model_name.human.pluralize
%table.table.m-b-3.table-striped
  %thead
    %tr
      - @attributes_for_index.each do |attribute|
        %th{ :class => ('text-md-center' if attribute.center?) }
          = @resource.human_attribute_name(attribute.name)
      %th
  %tbody
    - @entries.each do |entry|
      %tr
        - @attributes_for_index.each do |attribute|
          %td{ :class => ('text-md-center' if attribute.center?) }
            = render attribute.index_partial_path, entry: entry, attribute: attribute, value: entry[attribute.key]
        %td.text-nowrap.text-md-right
          = link_to 'Edit', edit_polymorphic_path(entry),
            class: 'label label-primary'
          = link_to 'Delete', polymorphic_path(entry),
            class: 'label label-danger', method: :delete, data: { confirm: 'Are you sure?' }
    - if @entries.empty?
      %tr
        %td.text-md-center.text-muted{ :colspan => @attributes_for_index.size + 1 }
          No data available
= paginate @entries, views_prefix: 'cms'
= link_to "New #{ @resource.model_name.human }",
  new_polymorphic_path(@resource), class: 'btn btn-primary'


#container
  .row
    .span9.offset4
      = render_flash

  .content-wrap
    .content
      .login.clearfix
        .promo_box
          %h2=t('devise.sign_in.headline')
          %p.osm= t('.osm_promo_text')
          %p.wheelmap= t('.wheelmap_promo_text')
          %p
            %em= t('.promo_text_thank_you')
        .login_box

          .image_block
            = link_to '/users/auth/osm' do
              = image_tag('openstreetmap_logo.png')

            =link_to t('.sign_in_with', :kind => 'OpenstreetMap'), user_omniauth_authorize_path(:osm), :class => 'button'

          %p
            =t('.no_osm_account')
            = link_to t('.sign_up_with_osm'), register_osm_oauth_index_url

Fix lang picker on login

#container
  .row
    .span9.offset4
      = render_flash

  .content-wrap
    .content
      .login.clearfix
        .promo_box
          %h2=t('devise.sign_in.headline')
          %p.osm= t('.osm_promo_text')
          %p.wheelmap= t('.wheelmap_promo_text')
          %p
            %em= t('.promo_text_thank_you')
        .login_box

          .image_block
            = link_to '/users/auth/osm' do
              = image_tag('openstreetmap_logo.png')

            =link_to t('.sign_in_with', :kind => 'OpenstreetMap'), user_omniauth_authorize_path(:osm), :class => 'button'

          %p
            =t('.no_osm_account')
            = link_to t('.sign_up_with_osm'), register_osm_oauth_index_url

- content_for :javascript do
  = javascript_include_tag "jquery"
  = javascript_include_tag "bootstrap"
  = javascript_include_tag "bootstrap-select"
  %script
    $(document).ready(function () { $('.selectpicker').selectpicker(); });


- raise 'No title' unless content_for?(:title)
!!!
%html
  %head
    %meta{:name => "viewport", :content => "width=device-width, initial-scale=1.0"}
    %title= content_for?(:title) ? yield(:title) : 'Techradar'
    %meta{:name => "description", :content => "#{content_for?(:description) ? yield(:description) : 'Techradar'}"}
    = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
    = javascript_include_tag 'application', 'data-turbolinks-track' => true
    = csrf_meta_tags
  %body
    %header
      = render 'layouts/navigation'
    %main{:role => "main"}
      .container
        = render 'layouts/messages'
        = yield

Include site name in page titles

- raise 'No title' unless content_for?(:title)
!!!
%html
  %head
    %meta{:name => "viewport", :content => "width=device-width, initial-scale=1.0"}
    %title= yield(:title) + ' :: techradar.io'
    %meta{:name => "description", :content => "#{content_for?(:description) ? yield(:description) : 'Techradar'}"}
    = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
    = javascript_include_tag 'application', 'data-turbolinks-track' => true
    = csrf_meta_tags
  %body
    %header
      = render 'layouts/navigation'
    %main{:role => "main"}
      .container
        = render 'layouts/messages'
        = yield


.block#block-tables
  .content
    %h2.title
      Cookbooks
    .inner
      %table.table#cookbook_version_table
        %thead
          %tr
            %th Cookbook
            %th Latest Version
            %th Other Versions
        %tbody.cookbook_versions
          - @cl.each do |cookbook, versions|
            %tr
              %td= cookbook
              %td
                %ul.cookbook_versions{ :id => "#{cookbook}_versions" }
                  - versions[0..4].each_with_index do |v, i|
                    - klass = i > 0 ? "other_version" : "latest_version"
                    %li{ :class => klass }
                      = link_to(v["version"], v["url"])
                - if versions.length > 5
                  = all_versions_link(cookbook)
              %td.show_more
                = versions.length > 1 ? more_versions_link(cookbook) : ""
= js_include_tag "cookbook_versions"

Sort cookbooks by name in webui index

.block#block-tables
  .content
    %h2.title
      Cookbooks
    .inner
      %table.table#cookbook_version_table
        %thead
          %tr
            %th Cookbook
            %th Latest Version
            %th Other Versions
        %tbody.cookbook_versions
          - @cl.keys.sort.each do |cookbook|
            - versions = @cl[cookbook]
            %tr
              %td= cookbook
              %td
                %ul.cookbook_versions{ :id => "#{cookbook}_versions" }
                  - versions[0..4].each_with_index do |v, i|
                    - klass = i > 0 ? "other_version" : "latest_version"
                    %li{ :class => klass }
                      = link_to(v["version"], v["url"])
                - if versions.length > 5
                  = all_versions_link(cookbook)
              %td.show_more
                = versions.length > 1 ? more_versions_link(cookbook) : ""
= js_include_tag "cookbook_versions"


- current_teachers = portal_clazz.teachers.sort { |a,b| (a.user.last_name <=> b.user.last_name) }
- if current_teachers.length > 0
  %ul
    - current_teachers.each do |portal_teacher|
      %li
        = portal_teacher.name
        - reason = portal_clazz.reason_user_cannot_remove_teacher_from_class(current_visitor, portal_teacher)
        - if !reason
          - if portal_teacher.user_id == current_visitor.id
            - confirm = Portal::Clazz.WARNING_REMOVE_TEACHER_CURRENT_USER(portal_clazz.name)
          - else
            - confirm = Portal::Clazz.CONFIRM_REMOVE_TEACHER(portal_teacher.name, portal_clazz.name)
          = remote_link_button "delete.png", :url => {:action=>'remove_teacher', :id => portal_clazz, :teacher_id => portal_teacher.id}, :confirm => confirm, :method => :delete, :title => "Remove #{portal_teacher.name} from #{portal_clazz.name}"
        - else
          %span{:class => "rollover remove"}
            remove teacher
-else
  %div No teachers assigned to this class

Revert to using image for delete button in class teacher list.

- current_teachers = portal_clazz.teachers.sort { |a,b| (a.user.last_name <=> b.user.last_name) }
- if current_teachers.length > 0
  %ul
    - current_teachers.each do |portal_teacher|
      %li
        = portal_teacher.name
        - reason = portal_clazz.reason_user_cannot_remove_teacher_from_class(current_visitor, portal_teacher)
        - if !reason
          - if portal_teacher.user_id == current_visitor.id
            - confirm = Portal::Clazz.WARNING_REMOVE_TEACHER_CURRENT_USER(portal_clazz.name)
          - else
            - confirm = Portal::Clazz.CONFIRM_REMOVE_TEACHER(portal_teacher.name, portal_clazz.name)
          = remote_link_button "delete.png", :url => {:action=>'remove_teacher', :id => portal_clazz, :teacher_id => portal_teacher.id}, :confirm => confirm, :method => :delete, :title => "Remove #{portal_teacher.name} from #{portal_clazz.name}"
        - else
          %span{:class => "rollover"}
            = image_tag "delete_grey.png", :title => reason
-else
  %div No teachers assigned to this class


%aside#search-options-screen
	%section#search-screen
		= form_tag('/organizations', :method => :get)
		%section#search-box.mini
			= render :partial => 'home/searchbox'

	%div
		%h1
			Search Options
		= render 'layouts/search_options'

%section#search-content
	%section#inside-content
		%section#results-list
			%header
				%h1
					Service Providers
				%nav
					== #{@results_text}
			%ul
				- @organizations.each do |org|
					%li
						%a{:href=>"#{organization_path(org)}", :title=>"#{org.name}"}
							%section{:class => "results-entry"}
								%h1.entry-title
									%p
										= org.name
									%p
										= org.address
									- unless @location.blank?
										== (#{org.distance_to(@location).round(2)} miles)

Add logic to results list to detect when no results are returned If we don't have any results, display "NO RESULTS" in the results list section. Otherwise, display the results.

%aside#search-options-screen
	%section#search-screen
		= form_tag('/organizations', :method => :get)
		%section#search-box.mini
			= render :partial => 'home/searchbox'

	%div
		%h1
			Search Options
		= render 'layouts/search_options'

%section#search-content
	%section#inside-content
		%section#results-list
			%header
				%h1
					Service Providers
				%nav
					== #{@results_text}
			- if @organizations.blank?
				%p
					NO RESULTS
			- else
			%ul
				- @organizations.each do |org|
					%li
						%a{:href=>"#{organization_path(org)}", :title=>"#{org.name}"}
							%section{:class => "results-entry"}
								%h1.entry-title
									%p
										= org.name
									%p
										= org.address
									- unless @location.blank?
										== (#{org.distance_to(@location).round(2)} miles)


- form = local_assigns.fetch(:form)

.form-group
  .checkbox.builds-feature
    = form.label :only_allow_merge_if_build_succeeds do
      = form.check_box :only_allow_merge_if_build_succeeds
      %strong Only allow merge requests to be merged if the build succeeds
      %br
      %span.descr
        Builds need to be configured to enable this feature.
        = link_to icon('question-circle'), help_page_path('user/project/merge_requests/merge_when_pipeline_succeeds.md')
  .checkbox
    = form.label :only_allow_merge_if_all_discussions_are_resolved do
      = form.check_box :only_allow_merge_if_all_discussions_are_resolved
      %strong Only allow merge requests to be merged if all discussions are resolved

Remove markdown file extension and add anchor to link

- form = local_assigns.fetch(:form)

.form-group
  .checkbox.builds-feature
    = form.label :only_allow_merge_if_build_succeeds do
      = form.check_box :only_allow_merge_if_build_succeeds
      %strong Only allow merge requests to be merged if the build succeeds
      %br
      %span.descr
        Builds need to be configured to enable this feature.
        = link_to icon('question-circle'), help_page_path('user/project/merge_requests/merge_when_pipeline_succeeds', anchor: 'only-allow-merge-requests-to-be-merged-if-the-pipeline-succeeds')
  .checkbox
    = form.label :only_allow_merge_if_all_discussions_are_resolved do
      = form.check_box :only_allow_merge_if_all_discussions_are_resolved
      %strong Only allow merge requests to be merged if all discussions are resolved


- if @page.scheduled_on <= Time.current
  .menu__item
    = button_tag value: :publish_changes, type: :submit, name: :state_event, class: "menu__action t-publish_changes" do
      Publish changes

  .menu__item
    = button_tag value: :unpublish, type: :submit, name: :state_event, class: "menu__action t-unpublish" do
      Unpublish

- else
  .menu__item
    = button_tag value: :publish_changes, type: :submit, name: :state_event, class: "menu__action t-publish_changes" do
      Publish now

Remove ability to take a scheduled post to published.

- if @page.scheduled_on <= Time.current
  .menu__item
    = button_tag value: :unpublish, type: :submit, name: :state_event, class: "menu__action t-unpublish" do
      Unpublish


- autocomplete = properties[:autocomplete]
- tooltip = properties[:tooltip]
- type = properties[:type] || 'text'
%input.input{ class: "input--#{type} #{!tooltip.nil? ? 'tooltip--focus' : ''} #{!autocomplete.nil? ? ('js-autocomplete-' + autocomplete) : ''}",
             id: properties[:id], name: properties[:name], value: properties[:value] || "", type: type, placeholder: properties[:placeholder], data: properties[:data], maxlength: properties[:maxlength]}

= render :partial => 'components/forms/partials/tooltip', :locals => { tooltip: tooltip }

Allow text inputs to be required

- autocomplete = properties[:autocomplete]
- tooltip = properties[:tooltip]
- type = properties[:type] || 'text'
%input.input{ class: "input--#{type} #{!tooltip.nil? ? 'tooltip--focus' : ''} #{!autocomplete.nil? ? ('js-autocomplete-' + autocomplete) : ''}",
             id: properties[:id], name: properties[:name], value: properties[:value] || "", type: type, placeholder: properties[:placeholder], data: properties[:data], maxlength: properties[:maxlength], required: properties[:required] || false}

= render :partial => 'components/forms/partials/tooltip', :locals => { tooltip: tooltip }


%li{class: ("active" if action_name == 'home')}
  = link_to main_app.root_path do
    .fa.fa-home
    Home
%li{class: ("active" if controller_name == 'forums')}= link_to "Forum", forem.root_path
%li{class: ("active" if action_name == 'intro')}= link_to "About", main_app.intro_path
%li{class: ("active" if action_name == 'faqs')}= link_to "Help", main_app.faqs_path

- if current_user
  - if current_user.can?(:view_admin_dashboard)
    %li
      %a{href: main_app.admin_path, :title => "Admin Panel"}
        %i.fa.fa-wrench
          Admin Panel
  %li.dropdown{class: ("active" if @active_top_nav_link == 'my_settings')}
    %a.dropdown-toggle{"data-toggle" => "dropdown", href: "#"}
      My Settings
      %b.caret
    %ul.dropdown-menu
      %li
        %a{href: main_app.account_path}
          %i.fa.fa-user
            Account Settings
      %li
        = link_to main_app.destroy_user_session_path, :method => :delete do
          %i.fa.fa-sign-out
            Sign out
- else
  %li
    %a{:href => main_app.new_user_session_path}
      %i.fa.fa-sign-in
        Sign In

Use Forums consistently versus just Forum

%li{class: ("active" if action_name == 'home')}
  = link_to main_app.root_path do
    .fa.fa-home
    Home
%li{class: ("active" if controller_name == 'forums')}= link_to "Forums", forem.root_path
%li{class: ("active" if action_name == 'intro')}= link_to "About", main_app.intro_path
%li{class: ("active" if action_name == 'faqs')}= link_to "Help", main_app.faqs_path

- if current_user
  - if current_user.can?(:view_admin_dashboard)
    %li
      %a{href: main_app.admin_path, :title => "Admin Panel"}
        %i.fa.fa-wrench
          Admin Panel
  %li.dropdown{class: ("active" if @active_top_nav_link == 'my_settings')}
    %a.dropdown-toggle{"data-toggle" => "dropdown", href: "#"}
      My Settings
      %b.caret
    %ul.dropdown-menu
      %li
        %a{href: main_app.account_path}
          %i.fa.fa-user
            Account Settings
      %li
        = link_to main_app.destroy_user_session_path, :method => :delete do
          %i.fa.fa-sign-out
            Sign out
- else
  %li
    %a{:href => main_app.new_user_session_path}
      %i.fa.fa-sign-in
        Sign In


%h3.page-title Welcome to GitLab!
%p.light Self Hosted Git Management application.
%hr
%div
  .dashboard-intro-icon
    %i.icon-bookmark-empty
  %div
    %p.slead
      You don't have access to any projects right now.
      %br
      - if current_user.can_create_project?
        You can create up to
        %strong= pluralize(current_user.projects_limit, "project") + "."
        Click on the button below to add a new one
      - else
        If you are added to a project, it will be displayed here

    - if current_user.can_create_project?
      .link_holder
        = link_to new_project_path, class: "btn btn-new" do
          New project »

- if current_user.can_create_group?
  %hr
  %div
    .dashboard-intro-icon
      %i.icon-group
    %div
      %p.slead
        You can create a group for several dependent projects.
        %br
        Group is the best way to manage projects and members
      .link_holder
        = link_to new_group_path, class: "btn btn-new" do
          New group »

Fix grammar in zero_authorized_projects view

%h3.page-title Welcome to GitLab!
%p.light Self Hosted Git Management application.
%hr
%div
  .dashboard-intro-icon
    %i.icon-bookmark-empty
  %div
    %p.slead
      You don't have access to any projects right now.
      %br
      - if current_user.can_create_project?
        You can create up to
        %strong= pluralize(current_user.projects_limit, "project") + "."
        Click on the button below to add a new one
      - else
        If you are added to a project, it will be displayed here

    - if current_user.can_create_project?
      .link_holder
        = link_to new_project_path, class: "btn btn-new" do
          New project »

- if current_user.can_create_group?
  %hr
  %div
    .dashboard-intro-icon
      %i.icon-group
    %div
      %p.slead
        You can create a group for several dependent projects.
        %br
        Groups are the best way to manage projects and members
      .link_holder
        = link_to new_group_path, class: "btn btn-new" do
          New group »


= resource_form(@blog_entry) do |f|
  = content do
    = f.fieldset(:class => 'primary') do
      = f.input(:title)
      = f.input(:body, :as => 'text')
      = f.input(:tag_summary, :label => 'Tags')

    = f.fieldset do
      = f.input(:published)
      = f.input(:author_id, :collection => @users)

      %div.field.multi-images
        %label Assets
        %ul(data-name="blog_entry[asset_ids][]")
          - @blog_entry.assets.each do |asset|
            %li{:id => "image-#{asset.id}"}
              %label
                = asset.name
                = check_box_tag('blog_entry[asset_ids][]', asset.id, :boolean => true)
              = image_tag(asset.preview.url(:thumb_medium))
          %li.add
            = link_to('Add Asset', '', :rel => 'add')

  = footer do
    = save_button
    = cancel_button(@blog_entry)

Use the generic asset picker.

= resource_form(@blog_entry) do |f|
  = content do
    = f.fieldset(:class => 'primary') do
      = f.input(:title)
      = f.input(:body, :as => 'text')
      = f.input(:tag_summary, :label => 'Tags')

    = f.fieldset do
      = f.input(:published)
      = f.input(:author_id, :collection => @users)
      = asset_picker(f)

  = footer do
    = save_button
    = cancel_button(@blog_entry)


.group-title
  %span
    %h2
      = link_to @group.parent.name, group_path(@group.parent), title: "group" unless @group.parent.nil?
      = " - " unless @group.parent.nil?
      = @group.name
      - if @group.can_be_edited_by? current_user
        = link_to "Edit group", edit_group_path(@group), class: "btn btn-mini"
      - if @group.users_include? current_user
        - membership = current_user.group_membership(@group)
        = link_to "Leave group", membership, method: :delete, class: "btn btn-mini",
          confirm: "Are you sure you wish to leave #{@group.name}?"
.row
  %section.span4#content-left
    - if display_subgroups_block?(@group)
      .block
        =render 'subgroups', group: @group

    =render 'users', group: @group

  %section.span8#content-main
    %h1 Discussions
    = link_to 'Start a new discussion', new_discussion_path(discussion: { group_id: @group }), class: "btn btn-info", id: "new-discussion"
    #discussions
      - @group.discussions_sorted.each do |discussion|
        =render discussion

Remove 'Start a new discussion' button for non-members.

.group-title
  %span
    %h2
      = link_to @group.parent.name, group_path(@group.parent), title: "group" unless @group.parent.nil?
      = " - " unless @group.parent.nil?
      = @group.name
      - if @group.can_be_edited_by? current_user
        = link_to "Edit group", edit_group_path(@group), class: "btn btn-mini"
      - if @group.users_include? current_user
        - membership = current_user.group_membership(@group)
        = link_to "Leave group", membership, method: :delete, class: "btn btn-mini",
          confirm: "Are you sure you wish to leave #{@group.name}?"
.row
  %section.span4#content-left
    - if display_subgroups_block?(@group)
      .block
        =render 'subgroups', group: @group

    =render 'users', group: @group

  %section.span8#content-main
    %h1 Discussions
    - if current_user && @group.users_include?(current_user)
      = link_to 'Start a new discussion', new_discussion_path(discussion: { group_id: @group }), class: "btn btn-info", id: "new-discussion"
    #discussions
      - @group.discussions_sorted.each do |discussion|
        =render discussion


.row
  .small-12.columns
    %a.button.success.tiny.filterbtn{"ng-click" => "filtersActive = !filtersActive",
    "ng-show" => "FilterSelectorsService.selectors.length > 0"}
      {{ filterText(filtersActive) }}
      %i.ofn-i_005-caret-down{"ng-show" => "!filtersActive"}
      %i.ofn-i_006-caret-up{"ng-show" => "filtersActive"}

    %a.button.secondary.tiny.filterbtn.disabled{"ng-show" => "FilterSelectorsService.selectors.length == 0"}
      No filters

Add checkbox for show / hide profiles

.row
  .small-12.medium-6.columns
    %a.button.success.tiny.filterbtn{"ng-click" => "filtersActive = !filtersActive",
    "ng-show" => "FilterSelectorsService.selectors.length > 0"}
      {{ filterText(filtersActive) }}
      %i.ofn-i_005-caret-down{"ng-show" => "!filtersActive"}
      %i.ofn-i_006-caret-up{"ng-show" => "filtersActive"}

    %a.button.secondary.tiny.filterbtn.disabled{"ng-show" => "FilterSelectorsService.selectors.length == 0"}
      No filters
  .small-12.medium-6.columns.text-right
    %input{type: "checkbox", name: "profile"}><
    %label Show profiles


!!!
%head
  %title serveme.tf - free TF2 server reservations
  = stylesheet_link_tag    "application", :media => "all"
  = javascript_include_tag "application"
  = csrf_meta_tags
  = render 'shared/google_analytics'
  = content_for(:head)
%body

  = render 'shared/navigation'

  .container-fluid

    .row
      .span11.alert.alert-error
        The system will be down today to swap a defective hard drive.

    = render 'shared/nag_message' if current_user

    = render 'shared/flash'

    = yield

  = render 'shared/timezone'

Revert "temporary warning mesasge on top of the page"

!!!
%head
  %title serveme.tf - free TF2 server reservations
  = stylesheet_link_tag    "application", :media => "all"
  = javascript_include_tag "application"
  = csrf_meta_tags
  = render 'shared/google_analytics'
  = content_for(:head)
%body

  = render 'shared/navigation'

  .container-fluid

    .row
      .span11.alert.alert-success
        You can now
        = link_to('trade me', 'http://steamcommunity.com/id/ariekanarie')
        keys/bills/buds for donator status, or just
        = link_to('trade me', 'http://steamcommunity.com/id/ariekanarie')
        items to say thanks :)

    = render 'shared/nag_message' if current_user

    = render 'shared/flash'

    = yield

  = render 'shared/timezone'


!!! 5
%html
  %head
    %title radvent
    %meta{"http-equiv"=>"X-UA-Compatible", :content=>"IE=Edge"}
    = stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true
    = javascript_include_tag 'application', 'data-turbolinks-track' => true
    = csrf_meta_tags
    %link{:href=>"//netdna.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css", :rel=>"stylesheet"}
    %script{:src=>"//netdna.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"}
    %link{:href=>"//maxcdn.bootstrapcdn.com/bootswatch/3.3.0/flatly/bootstrap.min.css", :rel=>"stylesheet"}
    %link{:href=>"//netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css", :rel=>"stylesheet"}
    %link{:href=>"//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/styles/default.min.css", :rel=>"stylesheet"}
    %script{:src=>"//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/highlight.min.js"}
    :javascript
      hljs.initHighlightingOnLoad()
  %body
    = yield

Reorder css/js import tags to apply custom css

!!! 5
%html
  %head
    %title radvent
    %meta{"http-equiv"=>"X-UA-Compatible", :content=>"IE=Edge"}
    %link{:href=>"//netdna.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css", :rel=>"stylesheet"}
    %link{:href=>"//maxcdn.bootstrapcdn.com/bootswatch/3.3.0/flatly/bootstrap.min.css", :rel=>"stylesheet"}
    %link{:href=>"//netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css", :rel=>"stylesheet"}
    %link{:href=>"//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/styles/default.min.css", :rel=>"stylesheet"}
    = stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true
    = javascript_include_tag 'application', 'data-turbolinks-track' => true
    = csrf_meta_tags
    %script{:src=>"//netdna.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"}
    %script{:src=>"//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/highlight.min.js"}
    :javascript
      hljs.initHighlightingOnLoad()
  %body
    = yield


%section.new-thread
  %h1= t ".title"
  = semantic_form_for @thread, as: :thread, url: {action: :create}, remote: true do |f|
    = f.semantic_errors
    = f.inputs do
      = f.input :title
      = f.input :privacy, as: :select, collection: MessageThread::ALLOWED_PRIVACY.map {|n| [n.capitalize, n] }
      = semantic_fields_for @message do |f2|
        = f2.semantic_errors
        = f2.inputs :body
      = f.input :tags_string, as: :tags
    = f.buttons do
      = f.commit_button
      %li
        = cancel_link

Remove extraneous remote attribute from new thread form.

%section.new-thread
  %h1= t ".title"
  = semantic_form_for @thread, as: :thread, url: {action: :create} do |f|
    = f.semantic_errors
    = f.inputs do
      = f.input :title
      = f.input :privacy, as: :select, collection: MessageThread::ALLOWED_PRIVACY.map {|n| [n.capitalize, n] }
      = semantic_fields_for @message do |f2|
        = f2.semantic_errors
        = f2.inputs :body
      = f.input :tags_string, as: :tags
    = f.buttons do
      = f.commit_button
      %li
        = cancel_link


:css
  .panel-body-fixed {
    height: 300px;
    overflow: scroll;
  }
  .component_subform {
    width: 94%;
  }

  .subheader-label {
    border-bottom: 1px solid #e5e5e5;
  }

.subheader-label
  %h2 #{@asset.respond_to? :fta_asset_category ? @asset.fta_asset_category.name.singularize : @asset.asset_type.name.singularize} Profile

= render 'subheader'
.row
  .col-sm-12
    .panel.panel-default
      .panel-heading
        .row
          .col-sm-10
            %h3.panel-title
              Highlights
          .col-sm-2
            = render 'actions'
      .panel-body.panel-body-fixed
        = render 'details'
.row
  .col-sm-12.col-md-2
    .panel.panel-default
      .panel-heading
        %h3.panel-title
          Asset Summary
      .panel-body
        = render :partial => 'summary', :locals => {:asset => @asset}

  .col-sm-12.col-md-10#profile
    .panel.panel-default
      .panel-heading
        %h3.panel-title
          Profile
      .panel-body
        = render 'profile'

.modal.fade#form-modal{:tabindex => -1, :role => 'dialog', :aria => {:hidden => true}}

=render 'show_scripts'

Fix syntax on fta_asset_category check.

:css
  .panel-body-fixed {
    height: 300px;
    overflow: scroll;
  }
  .component_subform {
    width: 94%;
  }

  .subheader-label {
    border-bottom: 1px solid #e5e5e5;
  }

.subheader-label
  %h2 #{@asset.respond_to?(:fta_asset_category) ? @asset.fta_asset_category.name.singularize : @asset.asset_type.name.singularize} Profile

= render 'subheader'
.row
  .col-sm-12
    .panel.panel-default
      .panel-heading
        .row
          .col-sm-10
            %h3.panel-title
              Highlights
          .col-sm-2
            = render 'actions'
      .panel-body.panel-body-fixed
        = render 'details'
.row
  .col-sm-12.col-md-2
    .panel.panel-default
      .panel-heading
        %h3.panel-title
          Asset Summary
      .panel-body
        = render :partial => 'summary', :locals => {:asset => @asset}

  .col-sm-12.col-md-10#profile
    .panel.panel-default
      .panel-heading
        %h3.panel-title
          Profile
      .panel-body
        = render 'profile'

.modal.fade#form-modal{:tabindex => -1, :role => 'dialog', :aria => {:hidden => true}}

=render 'show_scripts'


.card.seed-card
  = link_to seed do
    = image_tag(seed_image_path(seed, full_size: true), alt: seed, class: 'img-card')
  .card-body
    %h5= link_to seed, seed
    - if seed.tradable?
      %span.badge.badge-pill.badge-secondary Will trade #{seed.tradable_to}
  = link_to seed.owner do
    .card-footer
      %ul.nav.nav-justified.small
        %li.nav-item
          %span.badge.badge-pill.badge-secondary=seed.owner.location
        %li.nav-item
          = render 'members/tiny', member: seed.owner

Tidy up display of member avatar on seeds

.card.seed-card
  = link_to seed do
    = image_tag(seed_image_path(seed, full_size: true), alt: seed, class: 'img-card')
  .card-body
    %h5= link_to seed, seed
    - if seed.tradable?
      %span.badge.badge-pill.badge-secondary Will trade #{seed.tradable_to}
  = link_to seed.owner do
    .card-footer
      %span.badge.badge-pill.badge-secondary=seed.owner.location
      = render 'members/tiny', member: seed.owner


!!!
%html
  %head
    %title= title

    %link{rel: "icon", type: "image/png", href: "/assets/favicon.png"}
    %link{rel: "apple-touch-icon-precomposed", href: "/assets/apple-touch-icon.png"}

    %meta{'http-equiv' => "Content-Type", content: "text/html; charset=UTF-8"}
    %meta{'http-equiv' => "Content-Script-Type", content: "text/javascript"}
    %meta{'http-equiv' =>"X-UA-Compatible", content: "IE=edge" }
    %meta{name: "viewport", content: "width=device-width, initial-scale=1"}
    = yield :meta

    = stylesheet_link_tag "rocket_job_mission_control/application", :media => "all"
    = javascript_include_tag "rocket_job_mission_control/application"

    = csrf_meta_tag

    %link{href: "//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css", rel: "stylesheet"}/

  %body.rocket_job
    #wrapper.toggled
      = render partial: 'layouts/rocket_job_mission_control/partials/sidebar'

      #page-content-wrapper
        = render partial: 'layouts/rocket_job_mission_control/partials/header'

        = yield

Add a flash to the layout.

!!!
%html
  %head
    %title= title

    %link{rel: "icon", type: "image/png", href: "/assets/favicon.png"}
    %link{rel: "apple-touch-icon-precomposed", href: "/assets/apple-touch-icon.png"}

    %meta{'http-equiv' => "Content-Type", content: "text/html; charset=UTF-8"}
    %meta{'http-equiv' => "Content-Script-Type", content: "text/javascript"}
    %meta{'http-equiv' =>"X-UA-Compatible", content: "IE=edge" }
    %meta{name: "viewport", content: "width=device-width, initial-scale=1"}
    = yield :meta

    = stylesheet_link_tag "rocket_job_mission_control/application", :media => "all"
    = javascript_include_tag "rocket_job_mission_control/application"

    = csrf_meta_tag

    %link{href: "//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css", rel: "stylesheet"}/

  %body.rocket_job
    #wrapper.toggled
      = render partial: 'layouts/rocket_job_mission_control/partials/sidebar'

      #page-content-wrapper
        = render partial: 'layouts/rocket_job_mission_control/partials/header'

        .flash
          - flash.each do |key, msg|
            - if msg
              .alert{class: "alert-#{key}", role: 'alert'}
                -if msg.kind_of? Array
                  %ul.list-unstyled.margin-bottom-0
                    - msg.each do |m|
                      %li= m.html_safe
                - else
                  = msg.html_safe

        = yield


.row
  .col-md-3
    = dialog_tag('Instructions', {:icon => "fa fa-info-circle", :class => "header-part"}) do
      = render 'new_project_instructions'

  .col-md-6
    = dialog_tag('Step 4 of 4: Confirm selections', {:class => "header-part"}) do
      %fieldset
        %legend Project Details
        = format_field("Name", @proxy.name)
        = format_field("Fiscal Year", @proxy.fiscal_year)
        = format_field("Scope", @proxy.scope)
        = format_field("Scope Context", @proxy.scope.context)
        = format_field("Scope Type", @proxy.scope.name)
      %fieldset
        %legend Description
        = @proxy.description.html_safe
      %fieldset
        %legend Justification
        = @proxy.justification.html_safe

      = link_to "Go back", previous_wizard_path, :class => 'btn btn-primary'
      = link_to "Create project", next_wizard_path, :class => 'btn btn-primary'

  .col-md-3
    = dialog_tag('Info', {:icon => "fa fa-question-circle", :class => "header-part"}) do
      = render 'summary'

= render 'scripts'

:javascript

  // Document Ready
  $(document).ready(function(){
    $('#capital_project_proxy_description').wysihtml5();
    $('#capital_project_proxy_justification').wysihtml5();
  });

Add space between the end of the info and the action buttons in the last page of the CP wizard

.row
  .col-md-3
    = dialog_tag('Instructions', {:icon => "fa fa-info-circle", :class => "header-part"}) do
      = render 'new_project_instructions'

  .col-md-6
    = dialog_tag('Step 4 of 4: Confirm selections', {:class => "header-part"}) do
      %fieldset
        %legend Project Details
        = format_field("Name", @proxy.name)
        = format_field("Fiscal Year", @proxy.fiscal_year)
        = format_field("Scope", @proxy.scope)
        = format_field("Scope Context", @proxy.scope.context)
        = format_field("Scope Type", @proxy.scope.name)
      %fieldset
        %legend Description
        = @proxy.description.html_safe
      %fieldset
        %legend Justification
        = @proxy.justification.html_safe

      %fieldset
        %legend
        = link_to "Go back", previous_wizard_path, :class => 'btn btn-primary'
        = link_to "Create project", next_wizard_path, :class => 'btn btn-primary'

  .col-md-3
    = dialog_tag('Info', {:icon => "fa fa-question-circle", :class => "header-part"}) do
      = render 'summary'

= render 'scripts'

:javascript

  // Document Ready
  $(document).ready(function(){
    $('#capital_project_proxy_description').wysihtml5();
    $('#capital_project_proxy_justification').wysihtml5();
  });


%h2 Routes
- TransportMode.active.find(:all).each do |transport_mode|
  = link_to transport_mode.name, "?mode=#{transport_mode.id}"
%table.routes
  %tr
    %th ID
    %th Name
    %th
  -@routes.each do |route|
    %tr
      %td= link_to route.id, admin_url(admin_route_path(route))
      %td= route.name
      %td
= will_paginate @routes

Add view links and admin links for routes

%h2 Routes
- TransportMode.active.find(:all).each do |transport_mode|
  = link_to transport_mode.name, "?mode=#{transport_mode.id}"
%table.routes
  %tr
    %th ID
    %th Name
    %th
  -@routes.each do |route|
    %tr
      %td
        = link_to route.id, route_url(route)
        = link_to "(admin)", admin_url(admin_route_path(route))
      %td= route.name
      %td
= will_paginate @routes


- if @location == "about"
  About
- else
  = link_to "About", :controller => "main", :action => "info"

- if @location == "rules"
  Rules
- else
  = link_to "Rules", :controller => "main", :action => "rules"

= link_to "FAQ", "/faq/index.html"

= link_to "BLOG", "https://blog.turkopticon.info", target: "_blank"

= link_to "REVIEW", "/report"

= link_to "DONATE", "/donate", target: "_blank"

Change blog link to .net

- if @location == "about"
  About
- else
  = link_to "About", :controller => "main", :action => "info"

- if @location == "rules"
  Rules
- else
  = link_to "Rules", :controller => "main", :action => "rules"

= link_to "FAQ", "/faq/index.html"

= link_to "BLOG", "https://blog.turkopticon.net", target: "_blank"

= link_to "REVIEW", "/report"

= link_to "DONATE", "/donate", target: "_blank"


%h3 Show Templates
%hr
%ul
  - @templates.each do |tpl|
    %li
      - form_tag(:action => 'configure') do
        = hidden_field :instance, :template_id, :value => tpl.id
        = hidden_field :instance, :pool_id, :value => @instance.pool.id
        = image_tag "platform_#{tpl.platform}.png", :size => "32x32", :alt => tml.platform
        %h3= tpl.name
        %p= tpl.summary
        %p
          %label Group:
          System
          %label Version:
          2.5
        = submit_tag 'Launch', :name => 'launch'
= will_paginate(@templates)
= page_entries_info(@templates)

Fix a typo in the "Remove absolute paths to graphics" commit.

%h3 Show Templates
%hr
%ul
  - @templates.each do |tpl|
    %li
      - form_tag(:action => 'configure') do
        = hidden_field :instance, :template_id, :value => tpl.id
        = hidden_field :instance, :pool_id, :value => @instance.pool.id
        = image_tag "platform_#{tpl.platform}.png", :size => "32x32", :alt => tpl.platform
        %h3= tpl.name
        %p= tpl.summary
        %p
          %label Group:
          System
          %label Version:
          2.5
        = submit_tag 'Launch', :name => 'launch'
= will_paginate(@templates)
= page_entries_info(@templates)


.number
  %p="#{answer.question_index}."
.prompt
  = strip_tags(answer.prompt_no_itals)
.answer
  - if !answer.answer_text.blank?
    = answer.answer_text
  - else
    %p!
.image_answer
  = image_tag(answer.image_url)

Use annotated image for local report.

.number
  %p="#{answer.question_index}."
.prompt
  = strip_tags(answer.prompt_no_itals)
.answer
  - if !answer.answer_text.blank?
    = answer.answer_text
  - else
    %p!
.image_answer
  = image_tag(answer.annotated_image_url || answer.image_url)


!!!
%html
  %head
    %title Where's My School Bus
    %link{:href => 'http://fonts.googleapis.com/css?family=Enriqueta:400,700', :rel => 'stylesheet', :type => 'text/css'}
    = stylesheet_link_tag 'application', media: 'all'
    = javascript_include_tag 'application'
    = csrf_meta_tags

    %script{ src: "https://maps.googleapis.com/maps/api/js?key=#{ENV['GOOGLE_MAPS_KEY']}&sensor=false", type: 'text/javascript' }

  %body
    .notifications= notice || alert
    #header
      #bps-logo
    = yield

Load font from secure URL

!!!
%html
  %head
    %title Where's My School Bus
    %link{:href => 'https://fonts.googleapis.com/css?family=Enriqueta:400,700', :rel => 'stylesheet', :type => 'text/css'}
    = stylesheet_link_tag 'application', media: 'all'
    = javascript_include_tag 'application'
    = csrf_meta_tags

    %script{ src: "https://maps.googleapis.com/maps/api/js?key=#{ENV['GOOGLE_MAPS_KEY']}&sensor=false", type: 'text/javascript' }

  %body
    .notifications= notice || alert
    #header
      #bps-logo
    = yield


%ul.breadcrumb
  %li
    %i.icon-angle-right
    = link_to project_tree_path(@project, @ref) do
      = @project.path
  - tree_breadcrumbs(@tree, 6) do |title, path|
    %li
      - if path
        - if path.end_with?(@path)
          = link_to project_blob_path(@project, path) do
            %span.cblue
              = truncate(title, length: 40)
        - else
          = link_to truncate(title, length: 40), project_tree_path(@project, path)
      - else
        = link_to title, '#'

%ul.blob-commit-info.bs-callout.bs-callout-info
  - blob_commit = @repository.last_commit_for_path(@commit.id, @blob.path)
  = render blob_commit, project: @project

%div#tree-content-holder.tree-content-holder
  .file-holder
    .file-title
      %i.icon-file
      %span.file_name
        = blob.name
        %small= number_to_human_size blob.size
      %span.options= render "actions"
    - if blob.text?
      = render "text", blob: blob
    - elsif blob.image?
      = render "image", blob: blob
    - else
      = render "download", blob: blob

Hide control elements and last login for xs display

%ul.breadcrumb
  %li
    %i.icon-angle-right
    = link_to project_tree_path(@project, @ref) do
      = @project.path
  - tree_breadcrumbs(@tree, 6) do |title, path|
    %li
      - if path
        - if path.end_with?(@path)
          = link_to project_blob_path(@project, path) do
            %span.cblue
              = truncate(title, length: 40)
        - else
          = link_to truncate(title, length: 40), project_tree_path(@project, path)
      - else
        = link_to title, '#'

%ul.blob-commit-info.bs-callout.bs-callout-info.hidden-xs
  - blob_commit = @repository.last_commit_for_path(@commit.id, @blob.path)
  = render blob_commit, project: @project

%div#tree-content-holder.tree-content-holder
  .file-holder
    .file-title.clearfix
      %i.icon-file
      %span.file_name
        = blob.name
        %small= number_to_human_size blob.size
      %span.options.hidden-xs= render "actions"
    - if blob.text?
      = render "text", blob: blob
    - elsif blob.image?
      = render "image", blob: blob
    - else
      = render "download", blob: blob


:javascript
  var require = {
    baseUrl: '/assets',
    paths: {
      jquery: "jquery/jquery-1.7.2.min",
      jplugs: "/assets/jquery/plugins",
      jsmin: "/assets/lonelyplanet_minjs/dist/$",
      s_code: "/assets/omniture/s_code",
      gpt: "http://www.googletagservices.com/tag/js/gpt",
      sailthru: "/assets/sailthru/v1"
    }
    waitSeconds: 20
  };

Add missing comma in rjs config

:javascript
  var require = {
    baseUrl: '/assets',
    paths: {
      jquery: "jquery/jquery-1.7.2.min",
      jplugs: "/assets/jquery/plugins",
      jsmin: "/assets/lonelyplanet_minjs/dist/$",
      s_code: "/assets/omniture/s_code",
      gpt: "http://www.googletagservices.com/tag/js/gpt",
      sailthru: "/assets/sailthru/v1"
    },
    waitSeconds: 20
  };


:javascript
  var require = {
    baseUrl: '/assets',
    paths: {
      jquery: "jquery/jquery-1.7.2.min",
      jplugs: "/assets/jquery/plugins",
      jsmin: "/assets/lonelyplanet_minjs/dist/$",
      s_code: "/assets/omniture/s_code",
      gpt: "http://www.googletagservices.com/tag/js/gpt",
      sailthru: "/assets/sailthru/v1"
    }
    waitSeconds: 20
  };

Replace missing comma in require_js_config


%table.table
  %tr
    %th{ style: 'width:30%' }= t('checkin.times.table.time')
    %th= t('checkin.times.table.campus')
    %th= t('checkin.times.table.groups.heading')
    %th
  - times.each do |time|
    %tr.row-with-actions
      %td= time
      %td= time.campus
      %td= t('checkin.times.table.groups.count', count: time.groups.count)
      %td.actions
        = link_to administration_checkin_time_groups_path(time), class: 'btn btn-info' do
          = icon 'fa fa-bars'
          = t('checkin.times.groups.button')
        = link_to edit_administration_checkin_time_path(time), class: 'btn btn-warning' do
          = icon 'fa fa-pencil'
          = t('checkin.times.edit.button')
        = link_to administration_checkin_time_path(time), data: { method: 'delete', confirm: t('are_you_sure') }, class: 'btn btn-danger' do
          = icon 'fa fa-trash-o'

Fix count in check-in times listing

%table.table
  %tr
    %th{ style: 'width:30%' }= t('checkin.times.table.time')
    %th= t('checkin.times.table.campus')
    %th= t('checkin.times.table.groups.heading')
    %th
  - times.each do |time|
    %tr.row-with-actions
      %td= time
      %td= time.campus
      %td= t('checkin.times.table.groups.count', count: time.all_group_times.count)
      %td.actions
        = link_to administration_checkin_time_groups_path(time), class: 'btn btn-info' do
          = icon 'fa fa-bars'
          = t('checkin.times.groups.button')
        = link_to edit_administration_checkin_time_path(time), class: 'btn btn-warning' do
          = icon 'fa fa-pencil'
          = t('checkin.times.edit.button')
        = link_to administration_checkin_time_path(time), data: { method: 'delete', confirm: t('are_you_sure') }, class: 'btn btn-danger' do
          = icon 'fa fa-trash-o'


= resource_form(@blog_entry) do |f|
  = record_name(@blog_entry.title, 'file-text', :when_blank => 'New Entry')

  = content do
    = f.fieldset(:class => 'primary') do
      = f.input(:title)
      = f.input(:body, :as => 'text')
      = f.input(:tag_summary, :label => 'Tags')

    - f.metadata do |attrs|
      = f.fieldset('Attributes', :class => 'attributes') do
        - attrs.each do |name, opts|
          = f.metadata_input(name, opts)

    = f.fieldset do
      = f.input(:published)
      = f.input(:author_id, :collection => @users)
      = f.input(:asset_ids, :collection => @assets, :as => 'multi_asset', :label => 'Images and Documents')

  = footer do
    = save_button
    = cancel_button(@blog_entry)

Add error notice to blog entry form.

= resource_form(@blog_entry) do |f|
  = record_name(@blog_entry.title, 'file-text', :when_blank => 'New Entry')

  = form_errors(@blog_entry)

  = content do
    = f.fieldset(:class => 'primary') do
      = f.input(:title)
      = f.input(:body, :as => 'text')
      = f.input(:tag_summary, :label => 'Tags')

    - f.metadata do |attrs|
      = f.fieldset('Attributes', :class => 'attributes') do
        - attrs.each do |name, opts|
          = f.metadata_input(name, opts)

    = f.fieldset do
      = f.input(:published)
      = f.input(:author_id, :collection => @users)
      = f.input(:asset_ids, :collection => @assets, :as => 'multi_asset', :label => 'Images and Documents')

  = footer do
    = save_button
    = cancel_button(@blog_entry)


.widget-wrapper
  .row
    .large-12.small-12.columns
      .header-wrapper
        %h5 Device Status
    .large-12.small-12.columns
      .content-wrapper
        .row
          .large-6.small-6.columns
            %label.left.inline Current Operation
          .large-6.small-6.columns
            %label.left.inline ?
        .row
          .large-6.small-6.columns
            %label.left.inline Status
          .large-6.small-6.columns
            %label.left.inline {{ device.current.status }}
        .row
          .large-6.small-6.columns
            %label.left.inline Gantry Position(X)
          .large-6.small-6.columns
            %label.left.inline {{ device.current.x }}
        .row
          .large-6.small-6.columns
            %label.left.inline Cross Slide Position(Y)
          .large-6.small-6.columns
            %label.left.inline {{ device.current.x }}
        .row
          .large-6.small-6.columns
            %label.left.inline Z-Axis Position(Z)
          .large-6.small-6.columns
            %label.left.inline {{ device.current.x }}
        .row.padding-bottom
          .large-6.small-6.columns
            %button.red.button-like STOP
          .large-6.small-6.columns
            %button.yellow.button-like{ng_click: 'setRefreshTimer()'} RESTART

Reposition elements on status panel

.widget-wrapper
  .row
    .large-12.small-12.columns
      .header-wrapper
        %h5 Device Status
    .large-12.small-12.columns
      .content-wrapper
        .row
          .large-5.small-5.columns
            %label.left.inline Current Operation
          .large-7.small-7.columns
            %label.left.inline ?
        .row
          .large-5.small-5.columns
            %label.left.inline Status
          .large-7.small-7.columns
            %label.left.inline {{ device.current.status }}
        .row
          .large-5.small-5.columns
            %label.left.inline Gantry (X)
          .large-7.small-7.columns
            %label.left.inline {{ device.current.x }}
        .row
          .large-5.small-5.columns
            %label.left.inline Cross Slide (Y)
          .large-7.small-7.columns
            %label.left.inline {{ device.current.x }}
        .row
          .large-5.small-5.columns
            %label.left.inline Z-Axis (Z)
          .large-7.small-7.columns
            %label.left.inline {{ device.current.x }}
        .row.padding-bottom
          .large-5.small-5.columns
            %button.red.button-like STOP
          .large-7.small-7.columns
            %button.yellow.button-like{ng_click: 'setRefreshTimer()'} RESTART


-#   Copyright (c) 2010-2011, Diaspora Inc.  This file is
-#   licensed under the Affero General Public License version 3 or later.  See
-#   the COPYRIGHT file.

- content_for :page_title do
  = @stream.display_tag_name

- content_for :meta_data do
  = metas_tags @stream.metas_attributes

.container-fluid#tags_show
  .row
    .col-md-3.hidden-xs
      .sidebar
        .sidebar-header.clearfix
          %h3
            = t(".tagged_people", count: @stream.tagged_people_count, tag: @stream.display_tag_name)

        .side_stream.stream
          = render partial: "people/index", locals: {people: @stream.tagged_people}

    .col-md-9
      .stream_container
        #author_info
          %h2
            = @stream.display_tag_name

        - if current_user
          = render 'publisher/publisher', :selected_aspects => @stream.aspect_ids, :aspect_ids => @stream.aspect_ids, aspect: @stream.aspect

        #main_stream.stream

        #paginate
          .loader.hidden
            .spinner

      %a.entypo-chevron-up.back-to-top#back-to-top{title: "#{t('layouts.application.back_to_top')}", href: "#"}

Fix tag page when default aspect is "public" or a single aspect

-#   Copyright (c) 2010-2011, Diaspora Inc.  This file is
-#   licensed under the Affero General Public License version 3 or later.  See
-#   the COPYRIGHT file.

- content_for :page_title do
  = @stream.display_tag_name

- content_for :meta_data do
  = metas_tags @stream.metas_attributes

.container-fluid#tags_show
  .row
    .col-md-3.hidden-xs
      .sidebar
        .sidebar-header.clearfix
          %h3
            = t(".tagged_people", count: @stream.tagged_people_count, tag: @stream.display_tag_name)

        .side_stream.stream
          = render partial: "people/index", locals: {people: @stream.tagged_people}

    .col-md-9
      .stream_container
        #author_info
          %h2
            = @stream.display_tag_name

        - if current_user
          = render "publisher/publisher", publisher_aspects_for(@stream)

        #main_stream.stream

        #paginate
          .loader.hidden
            .spinner

      %a.entypo-chevron-up.back-to-top#back-to-top{title: "#{t('layouts.application.back_to_top')}", href: "#"}