- show_counter = local_assigns.fetch(:show_counter, false)
- primary = local_assigns.fetch(:primary, false)
- panel_class = primary ? 'bg-primary' : ''

.card{ class: panel_class }
  .card-header
    .title
      = title
    - if show_counter
      .counter
        = number_with_delimiter(issuables.length)

  - class_prefix = dom_class(issuables).pluralize
  %ul{ class: "well-list milestone-#{class_prefix}-list", id: "#{class_prefix}-list-#{id}" }
    = render partial: 'shared/milestones/issuable',
             collection: issuables,
             as: :issuable,
             locals: { show_project_name: show_project_name, show_full_project_name: show_full_project_name }

Add text white for milestone card

- show_counter = local_assigns.fetch(:show_counter, false)
- primary = local_assigns.fetch(:primary, false)
- panel_class = primary ? 'bg-primary text-white' : ''

.card{ class: panel_class }
  .card-header
    .title
      = title
    - if show_counter
      .counter
        = number_with_delimiter(issuables.length)

  - class_prefix = dom_class(issuables).pluralize
  %ul{ class: "well-list milestone-#{class_prefix}-list", id: "#{class_prefix}-list-#{id}" }
    = render partial: 'shared/milestones/issuable',
             collection: issuables,
             as: :issuable,
             locals: { show_project_name: show_project_name, show_full_project_name: show_full_project_name }


= semantic_form_for @salary do |f|
  = f.semantic_errors
  = f.inputs do
    = f.input :state, :collection => invoice_states_as_collection
    = f.input :customer_id, :as => :hidden
    = f.input :company_id, :as => :hidden
    = f.input :title
    = f.input :duration_from, :as => :date_field
    = f.input :duration_to, :as => :date_field
    = f.input :amount, :input_html => {:size => 12}
    = f.input :remarks, :input_html => {:rows => 4}

  = f.buttons do
    = f.commit_button

Use AJAX for Salary form.

= semantic_form_for @salary, :remote => true do |f|
  = f.semantic_errors
  = f.inputs do
    = f.input :state, :collection => invoice_states_as_collection
    = f.input :customer_id, :as => :hidden
    = f.input :company_id, :as => :hidden
    = f.input :title
    = f.input :duration_from, :as => :date_field
    = f.input :duration_to, :as => :date_field
    = f.input :amount, :input_html => {:size => 12}
    = f.input :remarks, :input_html => {:rows => 4}

  = f.buttons do
    = f.commit_button


Add a '_vote' partial containing vote buttons

- if user_signed_in?
  - if @user_vote
    - if @user_vote.value == 1
      = link_to 'Delete Vote', remove_idea_vote_path(@idea), :method => :delete
    - else
      = link_to 'Vote Up', change_idea_vote_path(@idea, :value => 1), :method => :patch
  - else
    = link_to 'Vote Up', create_idea_vote_path(@idea, :value => 1), :method => :post
  - if @user_vote
    - if @user_vote.value == -1
      = link_to 'Delete Vote', remove_idea_vote_path(@idea), :method => :delete
    - else
      = link_to 'Vote Down', change_idea_vote_path(@idea, :value => -1), :method => :patch
  - else
    = link_to 'Vote Down', create_idea_vote_path(@idea, :value => -1), :method => :post


Add a view for detecting (once) that the user might prefer a different language.

:javascript
  function setCookie(key, value, days) {
    var expires = new Date();
    expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000));
    document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();
  }

  function getCookie(key) {
    var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
    return keyValue ? keyValue[2] : null;
  }

  $( document ).ready(function() {
    already_shown = !!getCookie('_loc_notice');
    if(!already_shown) {
      $.getJSON( "/v2/client-location", function( data ) {
        country_code = data['country_code'];
        if(country_code != 'US') {
          alert(country_code);
        }
      });
      setCookie('_loc_notice', '1', 365)
    }
  });


Add missing partial for ShareTransaction :mark_payment_received task.

%p
  = task.subject.to_account.owner.name
  applied for
  = pluralize(task.subject.amount, "share", "shares")
  = task.subject.created_at.to_s(:at_on) + '.'
  A payment of
  = "£#{task.subject.amount}"
  is due.


.form-view
  = render "form"

= render 'show_invoices'
= render 'show_attachments'

Use tabs for contact, invoice, attachment parts in people view.

%ul.tabs
  %li.active= link_to 'Kontakt', '#contact'
  %li= link_to 'Rechnungen', '#invoic'
  %li= link_to 'Dokumente', '#attachments'

.tab-content
  #contact.active= render "form"
  #invoic= render 'show_invoices'
  #attachments= render 'show_attachments'


Add page for all contributors by looping over all module pages and their contributor view

---
layout: base
title: Contributors
---
#main
  .container
    %h1 All Contributors

    #contributors
      - for contributor in site.contributors.sort{|a,b| a[0].to_s.downcase<=>b[0].to_s.downcase}
        .contributor
          .photo
            %a{ :href=> "#{contributor[1]['user']['html_url']}"}
              %img{ :src=>"#{contributor[1]['avatar_url']}", :title=>"#{contributor[1]['user']['name']}" }
            .user
              %table{ :style=>"border:0"}
                %tr
                  %td="#{contributor[1]['user']['name']}, #{contributor[1]['user']['company']}"
                %tr
                  %td=contributor[1]['user']['location']
                %tr
                  %td
                    %a{ :href=>"#{contributor[1]['user']['blog']}"}="blog"


---
title: The Wiki
kind: article
categories:
  - about
  - wiki.template
---

This page is about this wiki itself.

= Wiki::Article.new_section "What this wiki is"

%p
  This is a template for a wiki, whereas the content of the template is the
  documentation on how to use the template. So it is a self-documenting wiki.

= Wiki::Article.new_subsection "Build with nanoc"

%p
  This site is build with nanoc 4, a static site compiler. I have build this
  wiki template with it because I wanted to be able to version-controll my wiki
  content with git, the stupid content tracker. And I wanted to be able to
  develop a wiki on github.

%p
  With a static site compiler like nanoc, the content gets compiled into static
  html files which can then be put on a webserver. No dynamic content means less
  security issues, less cpu/ram usage on the server and faster delivery of the
  content.

%p
  Contributions can be done via git(hub) and are written in (almost) plain text.
  There is no way yet to write wiki articles in markdown, for example. But this
  very page is written using haml and some utility helpers I wrote for nanoc, so
  it is
  %i
    almost
  plain text.


-if current_user
  .likebutton.js-likebutton{ data: { list_id: @list.id }, class: ('likebutton--has-liked' if current_user.voted_up_on? @list) }
    %i.material-icons.likebutton__filled favorite
    %i.material-icons.likebutton__border favorite_border

-else
  .likebutton.js-likebutton
    %i.material-icons favorite_border


.contextual
  = link_to t_action('edit'), edit_company_path(@company)
  = link_to t_action('index'), companies_path
%h1= t_title

= @company.vcard.try(:full_name)

.contextual
  = link_to t_action('new', t('activerecord.models.employment')), new_employment_path, :remote => true, :class => "icon icon-add"
%h2= t_title :index, t('activerecord.models.employment')

#new_employment
- @employments = @company.employments.paginate(:page => params[:page])
= render 'employments/list'

Fix bad use of t_title.

.contextual
  = link_to t_action('edit'), edit_company_path(@company)
  = link_to t_action('index'), companies_path
%h1= t_title

= @company.vcard.try(:full_name)

.contextual
  = link_to t_action('new', t('activerecord.models.employment')), new_employment_path, :remote => true, :class => "icon icon-add"
%h2= t_title :index, Employment

#new_employment
- @employments = @company.employments.paginate(:page => params[:page])
= render 'employments/list'


= render 'invoices/sidebar'

%table.zebra-striped.invoices.collection
  %thead
    %tr
      %th= t_attr :value_date, Invoice
      %th= t_attr :title, Invoice
      %th= t_attr :company, Invoice
      %th= t_attr :due_date, Invoice
      %th.currency= t_attr :amount, Invoice
      %th.currency= t_attr :balance, Invoice
      %th.action-links
  %tbody
    = render @invoices
  %tfoot
    %tr#invoices_list_footer
      %th{:style => "width: 10em"}= l Date.today
      %th{:colspan => 3}= t('bookyt.total')
      %th= currency_fmt(@invoices.to_a.sum(&:amount))
      %th= currency_fmt(@invoices.to_a.sum(&:balance))
      %th

Fix alignment of invoices list footer.

= render 'invoices/sidebar'

%table.zebra-striped.invoices.collection
  %thead
    %tr
      %th= t_attr :value_date, Invoice
      %th= t_attr :title, Invoice
      %th= t_attr :company, Invoice
      %th= t_attr :due_date, Invoice
      %th.currency= t_attr :amount, Invoice
      %th.currency= t_attr :balance, Invoice
      %th.action-links
  %tbody
    = render @invoices
  %tfoot
    %tr#invoices_list_footer
      %th{:style => "width: 10em"}= l Date.today
      %th{:colspan => 3}= t('bookyt.total')
      %th.currency= currency_fmt(@invoices.to_a.sum(&:amount))
      %th.currency= currency_fmt(@invoices.to_a.sum(&:balance))
      %th


Add a new shared view for request expiration date selector.

.control-group
  %label.control-label{:for => 'latest-date'} If item remains unavailable, cancel hold after:
  #latest-date.controls
    %label.radio{ :for => "30 days"}
      %input(type="radio" name="latest-date" value="#{d30.strftime("%Y-%m-%d")}" id="30 days")
      30 days (#{d30.strftime("%m-%d-%Y")})
    %label.radio{ :for => "60 days"}
      %input(type="radio" name="latest-date" value="#{d60.strftime("%Y-%m-%d")}" id="60 days")
      60 days (#{d60.strftime("%m-%d-%Y")})
    %label.radio{ :for => "180 days"}
      %input(type="radio" name="latest-date" value="#{d180.strftime("%Y-%m-%d")}" id="180 days")
      180 days (#{d180.strftime("%m-%d-%Y")})


= link_to new_snippet_path, class: 'btn btn-grouped new-snippet-link', title: "New Snippet" do
  = icon('plus')
  New Snippet
- if can?(current_user, :admin_personal_snippet, @snippet)
  = link_to snippet_path(@snippet), method: :delete, data: { confirm: "Are you sure?" }, class: "btn btn-grouped btn-remove", title: 'Delete Snippet' do
    = icon('trash-o')
    Delete
- if can?(current_user, :update_personal_snippet, @snippet)
  = link_to edit_snippet_path(@snippet), class: "btn btn-grouped snippable-edit" do
    = icon('pencil-square-o')
    Edit

Put delete snippet btn after edit btn

= link_to new_snippet_path, class: 'btn btn-grouped new-snippet-link', title: "New Snippet" do
  = icon('plus')
  New Snippet
- if can?(current_user, :update_personal_snippet, @snippet)
  = link_to edit_snippet_path(@snippet), class: "btn btn-grouped snippable-edit" do
    = icon('pencil-square-o')
    Edit
- if can?(current_user, :admin_personal_snippet, @snippet)
  = link_to snippet_path(@snippet), method: :delete, data: { confirm: "Are you sure?" }, class: "btn btn-grouped btn-remove", title: 'Delete Snippet' do
    = icon('trash-o')
    Delete


%tr[@booking]
  %td= @booking.value_date
  %td
    = link_to @booking.title, @booking, {'data-href-container' => 'tr'}
    - if @booking.comments.present?
      %hr{:style => "height: 1px; margin: 0"}/
      %i= @booking.comments
  %td= link_to @booking.reference, @booking.reference unless @booking.reference.nil?
  %td.currency= (@booking.credit_account == @account) ? currency_fmt(@booking.amount) : content_tag('i', link_to(@booking.credit_account.code, account_path(@booking.credit_account), :title => @booking.credit_account.title))
  %td.currency= (@booking.debit_account == @account) ? currency_fmt(@booking.amount) : content_tag('i', link_to(@booking.debit_account.code, account_path(@booking.debit_account), :title => @booking.debit_account.title))
  %td.currency= currency_fmt(@saldo)
  %td.action-links
    = icon_edit_link_to edit_account_booking_path(@account, @booking, :page => params['page'])
    = icon_delete_link_to @booking, account_booking_path(@account, @booking, :page => params['page'])

Drop page param in action links for booking items in account view.

%tr[@booking]
  %td= @booking.value_date
  %td
    = link_to @booking.title, @booking, {'data-href-container' => 'tr'}
    - if @booking.comments.present?
      %hr{:style => "height: 1px; margin: 0"}/
      %i= @booking.comments
  %td= link_to @booking.reference, @booking.reference unless @booking.reference.nil?
  %td.currency= (@booking.credit_account == @account) ? currency_fmt(@booking.amount) : content_tag('i', link_to(@booking.credit_account.code, account_path(@booking.credit_account), :title => @booking.credit_account.title))
  %td.currency= (@booking.debit_account == @account) ? currency_fmt(@booking.amount) : content_tag('i', link_to(@booking.debit_account.code, account_path(@booking.debit_account), :title => @booking.debit_account.title))
  %td.currency= currency_fmt(@saldo)
  %td.action-links
    = icon_edit_link_to edit_account_booking_path(@account, @booking)
    = icon_delete_link_to @booking, account_booking_path(@account, @booking)


.row
	.col-md-12
		%h1.page-header= "#{user.name}/#{repo.name}##{build.number}"
.row-fluid
	.panel.panel-default
		.panel-heading
			- case build.status
			- when :failed
				.fa.fa-warning.fa-fw{:style => 'color: firebrick'}
				failing
			- when :success
				%i.fa.fa-check.fa-fw{:style => 'color: green'}
				succeeding
			- else
				%i.fa.fa-gear.fa-fw
				working
		.panel-body
			.col-md-8
				%pre= build.log

Make build log fill parent

.row
	.col-md-12
		%h1.page-header= "#{user.name}/#{repo.name}##{build.number}"
.row-fluid
	.panel.panel-default
		.panel-heading
			- case build.status
			- when :failed
				.fa.fa-warning.fa-fw{:style => 'color: firebrick'}
				failing
			- when :success
				%i.fa.fa-check.fa-fw{:style => 'color: green'}
				succeeding
			- else
				%i.fa.fa-gear.fa-fw
				working
		.panel-body
			.col-md-8
				%pre{:style => 'width: 100%'}= build.log


= simple_form_for [:admin, resource] do |f|
  .row-fluid
    .span6
      = f.input :code, :wrapper => :append, :class => 'inline' do
        = f.input_field :code, 'data-autofocus' => true, :class => 'span6'
        .add-on .bookyt.ch

  = simple_fields_for :user do |u|
    = u.input :role_texts, :as => :hidden
    .row-fluid
      .span6= u.input :email
      .span6= u.input :login if u.object.respond_to? :login
    .row-fluid
      .span6= u.input :password, :input_html => {:autocomplete => "off"}
      .span6= u.input :password_confirmation

  .form-actions
    = f.button :submit

Use right aligned text for code field in tenant form.

= simple_form_for [:admin, resource] do |f|
  .row-fluid
    .span6
      = f.input :code, :wrapper => :append, :class => 'inline' do
        = f.input_field :code, 'data-autofocus' => true, :class => 'span6', :style => 'text-align: right'
        .add-on .bookyt.ch

  = simple_fields_for :user do |u|
    = u.input :role_texts, :as => :hidden
    .row-fluid
      .span6= u.input :email
      .span6= u.input :login if u.object.respond_to? :login
    .row-fluid
      .span6= u.input :password, :input_html => {:autocomplete => "off"}
      .span6= u.input :password_confirmation

  .form-actions
    = f.button :submit


Update schemas search view, add form_tag and truncate schema text

.box-search-schemas
  .container
    .col-md-12{:class => "text-center"}
      %h1
        Directorio de Esquemas
      .form-group.col-md-6.container-form
        = form_tag(search_schemas_path, method: "get") do
          .inner-addon.left-addon
            %i.glyphicon.glyphicon-search
            %input#search-schema.form-control{:placeholder => "Ingresa nombre de Esquema", :type => "text", :name => "schema"}/
.container.no-gutter
  .row.no-gutter
    .col-md-12.schema-wrapper
      - @schemas.each do |schema|
        .box-schema
          .title
            %a{href: "#"}
              = truncate(schema.name, :length => 56)
          .body
            %span
              Descripción:
            = schema.description


- url = submodule_item.url(@ref) rescue nil
- name = submodule_item.basename
- return unless url
%tr{ class: "tree-item", url: url }
  %td.tree-item-file-name
    = image_tag "submodule.png"
    %strong= truncate(name, length: 40)
  %td
    %code= submodule_item.id[0..10]
  %td{ colspan: 2 }
    = link_to truncate(url, length: 40), url

Fix 500 error on tree view woth submodule

- url = submodule_item.url(@ref) rescue ''
- name = submodule_item.basename
- return unless url
%tr{ class: "tree-item", url: url }
  %td.tree-item-file-name
    = image_tag "submodule.png"
    %strong= truncate(name, length: 40)
  %td
    %code= submodule_item.id[0..10]
  %td{ colspan: 2 }
    = link_to truncate(url, length: 40), url


Make text changes to Instructional Materials page

D:\GIT\RIGSE>@git.exe %*
%div
  %table.investigationdata{:width=>"100%"}
    %tr
      %td.subheader
        Investigation:
      %td
        %div{:style=>"float:left;font-size:16px;font-weight:bold"}
          = current_offering.name
        %div.item{:style=>"float:left;padding-top:2px"}
          = "(assigned on #{current_offering.created_at.strftime('%d %B %Y')})"
      %td{:style=>"white-space:nowrap"}
        = link_to "Run Investigation", run_url_for(current_offering, {}), :class=>"button pie"
%br
%div
  = render :partial => 'investigation_activities', :locals => { :investigation => investigation }

%div
  %table{:width=>"100%"}
    %tr
      %td{:width=>"200px"}
        %span.subheader
          Student Submissions
      %td
        %table
          %tr
            %td
              %span.legend_progress

              %span
                 In Progress
            %td

            %td
              %span.legend_not_started

              %span
                 Not yet started

      %td
        %div.right
          %span.linkbutton.pie
            = report_link_for(current_offering, 'report', 'Run Report')
    %tr
      %td{:colspan=>"3"}
        %div{:style=>"overflow:auto;width:575px"}
          = render :partial => 'investigation_report_summary', :locals => { :investigation => investigation, :offering=>current_offering }
D:\GIT\RIGSE>@set ErrorLevel=%ErrorLevel%

D:\GIT\RIGSE>@rem Restore the original console codepage.

D:\GIT\RIGSE>@chcp %cp_oem% > nul < nul


- page_title    'New Group'
- header_title  "Groups", dashboard_groups_path

%h3.page-title
  New Group
%hr

= form_for @group, html: { class: 'group-form form-horizontal' } do |f|
  = form_errors(@group)
  = render 'shared/group_form', f: f, autofocus: true

  .form-group.group-description-holder
    = f.label :avatar, "Group avatar", class: 'control-label'
    .col-sm-10
      = render 'shared/choose_group_avatar_button', f: f

  = render 'shared/visibility_level', f: f, visibility_level: default_group_visibility, can_change_visibility_level: true, form_model: @group

  .form-group
    .col-sm-offset-2.col-sm-10
      = render 'shared/group_tips'

  .form-actions
    = f.submit 'Create group', class: "btn btn-create", tabindex: 3
    = link_to 'Cancel', dashboard_groups_path, class: 'btn btn-cancel'

Initialize form validation on new group form.

- page_title    'New Group'
- header_title  "Groups", dashboard_groups_path

%h3.page-title
  New Group
%hr

= form_for @group, html: { class: 'group-form form-horizontal gl-show-field-errors' } do |f|
  = form_errors(@group)
  = render 'shared/group_form', f: f, autofocus: true

  .form-group.group-description-holder
    = f.label :avatar, "Group avatar", class: 'control-label'
    .col-sm-10
      = render 'shared/choose_group_avatar_button', f: f

  = render 'shared/visibility_level', f: f, visibility_level: default_group_visibility, can_change_visibility_level: true, form_model: @group

  .form-group
    .col-sm-offset-2.col-sm-10
      = render 'shared/group_tips'

  .form-actions
    = f.submit 'Create group', class: "btn btn-create", tabindex: 3
    = link_to 'Cancel', dashboard_groups_path, class: 'btn btn-cancel'


.jumbotron
  %h2
    GitLab CI
    %span= GitlabCi::VERSION
    %small= GitlabCi::REVISION
  %p
    GitLab CI integrates with your GitLab installation and run tests for your projects.
    %br
    Login with GitLab account, add project with one click and enjoy running tests.
    %br
    Read more about GitLab CI at #{link_to "gitlab.org", "http://gitlab.org/gitlab-ci/", target: "_blank"}.

Add useful links for GitLab CI users on help page

.jumbotron
  %h2
    GitLab CI
    %span= GitlabCi::VERSION
    %small= GitlabCi::REVISION
  %p
    GitLab CI integrates with your GitLab installation and run tests for your projects.
    %br
    Login with GitLab account, add project with one click and enjoy running tests.
    %br
    Read more about GitLab CI at #{link_to "gitlab.org", "http://gitlab.org/gitlab-ci/", target: "_blank"}.

.bs-callout.bs-callout-success
  %h4
    = link_to 'https://gitlab.com/gitlab-org/gitlab-ci/blob/master/doc/api/api.md' do
      %i.icon-cogs
      API
  %p Explore how you can access GitLab CI via API.

.bs-callout.bs-callout-info
  %h4
    = link_to 'https://gitlab.com/gitlab-org/gitlab-ci/tree/master/doc/examples' do
      %i.icon-info-sign
      Build Examples
  %p Includes build script we use to test GitLab CE.

.bs-callout.bs-callout-danger
  %h4
    = link_to 'https://gitlab.com/gitlab-org/gitlab-ci/issues' do
      %i.icon-bug
      Issue tracker
  %p Report about bugs you find to our issue tracker.

.bs-callout.bs-callout-warning
  %h4
    = link_to 'http://feedback.gitlab.com/forums/176466-general/category/64310-gitlab-ci' do
      %i.icon-thumbs-up
      Feedback forum
  %p Suggest improvements or new feature for GitLab CI.


= form_for @<%= singular_table_name %> do |f|
  -if @<%= singular_table_name %>.errors.any?
    #error_explanation
      %h2= "#{pluralize(@<%= singular_table_name %>.errors.count, "error")} prohibited this <%= singular_table_name %> from being saved:"
      %ul
        - @<%= singular_table_name %>.errors.full_messages.each do |msg|
          %li= msg

<% for attribute in attributes -%>
  .field
    = f.label :<%= attribute.name %>
    = f.<%= attribute.field_type %> :<%= attribute.name %>
<% end -%>
  .actions
    = f.submit 'Save'

Fix spaces in generated scaffold haml

= form_for @<%= singular_table_name %> do |f|
  - if @<%= singular_table_name %>.errors.any?
    #error_explanation
      %h2= "#{pluralize(@<%= singular_table_name %>.errors.count, "error")} prohibited this <%= singular_table_name %> from being saved:"
      %ul
        - @<%= singular_table_name %>.errors.full_messages.each do |msg|
          %li= msg

<% for attribute in attributes -%>
  .field
    = f.label :<%= attribute.name %>
    = f.<%= attribute.field_type %> :<%= attribute.name %>
<% end -%>
  .actions
    = f.submit 'Save'


Use a different layout sign in / sign up

!!! 5
%html(lang="en")
  %head
    %meta(charset="utf-8")
    %meta(http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1")
    %meta(name="viewport" content="width=device-width, initial-scale=1.0")
    %title= content_for?(:title) ? yield(:title) : "Cuttlefish"
    = csrf_meta_tags
    / Le HTML5 shim, for IE6-8 support of HTML elements
    /[if lt IE 9]
      = javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.6.1/html5shiv.js"
    = stylesheet_link_tag "application", :media => "all", "data-turbolinks-track" => true
    %link(href="images/apple-touch-icon-144x144.png" rel="apple-touch-icon-precomposed" sizes="144x144")
    %link(href="images/apple-touch-icon-114x114.png" rel="apple-touch-icon-precomposed" sizes="114x114")
    %link(href="images/apple-touch-icon-72x72.png" rel="apple-touch-icon-precomposed" sizes="72x72")
    %link(href="images/apple-touch-icon.png" rel="apple-touch-icon-precomposed")
    %link(href="/favicon.ico" rel="shortcut icon")

  %body
    .container

      .row
        .span9
          = bootstrap_flash
          = yield

      %footer
        %p
          Made by
          = link_to "@matthewlandauer", "https://twitter.com/matthewlandauer"
        %p
          Cuttlefish is free and open source software. Get it at
          = link_to "http://github.com/mlandauer/cuttlefish" do
            %i.icon.icon-github
            Github
    /
      Javascripts
      \==================================================
    / Placed at the end of the document so the pages load faster
    = javascript_include_tag "application", "data-turbolinks-track" => true


%tr[@booking]
  %td= @booking.value_date
  %td
    = link_to @booking.title, @booking, {'data-href-container' => 'tr'}
    - if @booking.comments.present?
      %hr{:style => "height: 1px; margin: 0"}/
      %i= @booking.comments
  %td= link_to @booking.reference, @booking.reference unless @booking.reference.nil?
  %td.currency= (@booking.credit_account == @account) ? currency_fmt(@booking.amount) : content_tag('i', link_to(@booking.credit_account.code, account_path(@booking.credit_account), :title => @booking.credit_account.title))
  %td.currency= (@booking.debit_account == @account) ? currency_fmt(@booking.amount) : content_tag('i', link_to(@booking.debit_account.code, account_path(@booking.debit_account), :title => @booking.debit_account.title))
  %td.currency= currency_fmt(@saldo)
  %td.action-links
    = list_link_for(:edit, [@account, @booking])
    = list_link_for(:delete, [@account, @booking])
    = icon_link_to :copy, copy_booking_path(@booking)

Use list_link_for for copy action in account bookings.

%tr[@booking]
  %td= @booking.value_date
  %td
    = link_to @booking.title, @booking, {'data-href-container' => 'tr'}
    - if @booking.comments.present?
      %hr{:style => "height: 1px; margin: 0"}/
      %i= @booking.comments
  %td= link_to @booking.reference, @booking.reference unless @booking.reference.nil?
  %td.currency= (@booking.credit_account == @account) ? currency_fmt(@booking.amount) : content_tag('i', link_to(@booking.credit_account.code, account_path(@booking.credit_account), :title => @booking.credit_account.title))
  %td.currency= (@booking.debit_account == @account) ? currency_fmt(@booking.amount) : content_tag('i', link_to(@booking.debit_account.code, account_path(@booking.debit_account), :title => @booking.debit_account.title))
  %td.currency= currency_fmt(@saldo)
  %td.action-links
    = list_link_for(:edit, [@account, @booking])
    = list_link_for(:delete, [@account, @booking])
    = list_link_for(:copy, @booking)


= contextual_links

%h1= t_title

= render 'persons/show'

- unless @employments.empty?
  .contextual
    = link_to t_action('new', t('activerecord.models.employment')), new_employment_path, :remote => true, :class => "icon icon-add"
  %h2= t_title :index, Employment

  #new_employment
  = render 'employments/list'

- unless @credit_invoices.empty?
  %h2= t_title :index, CreditInvoice

  = render 'credit_invoices/list'

- unless @debit_invoices.empty?
  %h2= t_title :index, DebitInvoice

  = render 'debit_invoices/list'

Drop empty line in companies show.


%h2 Check your .gitlab-ci.yml
%hr

.row
  = form_tag ci_lint_path, method: :post do
    .form-group
      = label_tag(:content, 'Content of .gitlab-ci.yml', class: 'control-label text-nowrap')
      .col-sm-12
        = text_area_tag(:content, @content, class: 'form-control span1', rows: 7, require: true)
    .col-sm-12
      .pull-left.prepend-top-10
        = submit_tag('Validate', class: 'btn btn-success submit-yml')

.row.prepend-top-20
  .col-sm-12
    .results
      = render partial: 'create' if defined?(@status)

Add title to CI lint page

- page_title "CI Lint"
- page_description "Validate your GitLab CI configuration file"

%h2 Check your .gitlab-ci.yml
%hr

.row
  = form_tag ci_lint_path, method: :post do
    .form-group
      = label_tag(:content, 'Content of .gitlab-ci.yml', class: 'control-label text-nowrap')
      .col-sm-12
        = text_area_tag(:content, @content, class: 'form-control span1', rows: 7, require: true)
    .col-sm-12
      .pull-left.prepend-top-10
        = submit_tag('Validate', class: 'btn btn-success submit-yml')

.row.prepend-top-20
  .col-sm-12
    .results
      = render partial: 'create' if defined?(@status)


%p.slead
  Please save this recovery codes so you can access your account if you lose your phone.

.codes.well
  %ul
    - @codes.each do |code|
      %li
        %span.monospace
          = code

= link_to profile_account_path, class: 'btn btn-success' do
  I saved the codes

Update copy for recovery codes

%p.slead
  Should you ever lose your phone, each of these recovery codes can be used one
  time each to regain access to your account. Please save them in a safe place.

.codes.well
  %ul
    - @codes.each do |code|
      %li
        %span.monospace= code

= link_to 'Proceed', profile_account_path, class: 'btn btn-success'


.recent.six.columns
  .panel.cards.cf
    %figure
      .overlay
        .poster.four.columns.hide-for-small
          = link_to image_tag(wl.anime.cover_image.url(:"thumb@2x")), wl.anime
        .title-info.eight.columns
          %h4= link_to wl.anime.title, wl.anime
          %p.seen-count
            Seen
            %span{:class => "fat-card-episodes-watched-#{wl.anime.slug}"}= wl.episodes_watched
            of
            %span= wl.anime.episode_count
            episodes.
          / TODO: Make these actually functional.
          .vote-blocks
            %span.like
              %strong.active= link_to "[:)]", "#"
            %span.dislike
              %strong= link_to ":(", "#"
      = image_tag wl.anime.cover_image.url(:thumb), class: "background"
      .progress.six
        %span.meter{:style => "width: 60%"}
    = render partial: "episodes/list_four", locals: {episodes: select_four_episodes(wl, wl.anime), anime: wl.anime, write: write}

Switch the @2x images in the fat card to the correct order.

.recent.six.columns
  .panel.cards.cf
    %figure
      .overlay
        .poster.four.columns.hide-for-small
          = link_to image_tag(wl.anime.cover_image.url(:thumb)), wl.anime
        .title-info.eight.columns
          %h4= link_to wl.anime.title, wl.anime
          %p.seen-count
            Seen
            %span{:class => "fat-card-episodes-watched-#{wl.anime.slug}"}= wl.episodes_watched
            of
            %span= wl.anime.episode_count
            episodes.
          / TODO: Make these actually functional.
          .vote-blocks
            %span.like
              %strong.active= link_to "[:)]", "#"
            %span.dislike
              %strong= link_to ":(", "#"
      = image_tag wl.anime.cover_image.url(:"thumb@2x"), class: "background"
      .progress.six
        %span.meter{:style => "width: 60%"}
    = render partial: "episodes/list_four", locals: {episodes: select_four_episodes(wl, wl.anime), anime: wl.anime, write: write}


- breadcrumb_title _("Gitaly Servers")

%h3.page-title= _("Gitaly Servers")
%hr
.gitaly_servers
  - if @gitaly_servers.any?
    .table-holder
      %table.table.responsive-table
        %thead.d-none.d-sm-none.d-md-block
          %tr
            %th= _("Storage")
            %th= n_("Gitaly|Address")
            %th= _("Server version")
            %th= _("Git version")
            %th= _("Up to date")
        - @gitaly_servers.each do |server|
          %tr
            %td
              = server.storage
            %td
              = server.address
            %td
              = server.server_version
            %td
              = server.git_binary_version
            %td
              = boolean_to_icon(server.up_to_date?)
  - else
    .empty-state
      .text-center
        %h4= _("No connection could be made to a Gitaly Server, please check your logs!")

Revert extra CSS causing Gitaly Servers table to be misalgined

- breadcrumb_title _("Gitaly Servers")

%h3.page-title= _("Gitaly Servers")
%hr
.gitaly_servers
  - if @gitaly_servers.any?
    .table-holder
      %table.table.responsive-table
        %thead
          %tr
            %th= _("Storage")
            %th= n_("Gitaly|Address")
            %th= _("Server version")
            %th= _("Git version")
            %th= _("Up to date")
        - @gitaly_servers.each do |server|
          %tr
            %td
              = server.storage
            %td
              = server.address
            %td
              = server.server_version
            %td
              = server.git_binary_version
            %td
              = boolean_to_icon(server.up_to_date?)
  - else
    .empty-state
      .text-center
        %h4= _("No connection could be made to a Gitaly Server, please check your logs!")


Add placeholder HTML partial for dynamic modal loading.

- title ||= 'Loading...'
.modal-dialog
  .modal-content
    .modal-header
      %a.close{href: "#", 'data-dismiss' => 'modal'} ×
      %h4.modal-title= title
    #modal-body.modal-body
      Loading...
    .modal-footer
      %button.btn.btn-warning.btn-xs{"aria-hidden" => "true", "data-dismiss" => "modal", :id => 'cancel-btn'} Cancel


- if current_user
  - if @offset > 0
    = render @projects
  - else
    .gray-content-block.top-block
      = render "search"
    .projects
      .gray-content-block.clearfix.light.second-block
        .pull-left.fetch-status
          - if params[:search].present?
            by keyword: "#{params[:search]}",
          #{@total_count} projects

        .wide-table-holder
          %table.table.projects-table.content-list
            %thead
              %tr
                %th Project Name
                %th Last commit
                %th Access
                %th Commits

            = render @projects
  %p.text-center.hide.loading
    %i.fa.fa-refresh.fa-spin
  :coffeescript
    CiPager.init "#{ci_projects_path}", #{Ci::ProjectsController::PROJECTS_BATCH}, false

- else
  = render 'public'

Fix gitlab ci projects page UI


%h1 Partial layout used with for block:
- render :layout => 'layout_for_partial.haml' do
  %p Some content within a layout

Use = with render :partial :layout in Rails 3.

%h1 Partial layout used with for block:
- if Haml::Util.ap_geq_3?
  = render :layout => 'layout_for_partial.haml' do
    %p Some content within a layout
- else
  - render :layout => 'layout_for_partial.haml' do
    %p Some content within a layout


<!-- Modal -->
%div{ class: "modal fade", id: "gallery", tabindex: "-1", role: "dialog", "aria-labelledby" => "myLargeModalLabel", "aria-hidden"=> "true" }
  %div{ class: "modal-dialog modal-lg" }
    %div{ class: "modal-content" }
      %div{ class: "modal-body" }
        %div{ id: "carousel-example-generic", class: "carousel slide", "data-ride" => "carousel" }
          <!-- Wrapper for slides -->
          %div{ class: "carousel-inner" }

          <!-- Controls -->
          %a{ class: "left carousel-control", href: "#carousel-example-generic", role: "button", "data-slide" => "prev" }
            %span{ class: "glyphicon glyphicon-chevron-left" }
          %a{ class: "right carousel-control", href: "#carousel-example-generic", role: "button", "data-slide" => "next" }
            %span{ class: "glyphicon glyphicon-chevron-right" }

:javascript
  $(document).ready(function(){
    var count = 0;
    $('#gallery-btn').click(function(){
      if(count == 0){
        $('#gallery').modal('show');
        $('#gallery .modal-body').append('<i class="fa fa-spinner fa-spin fa-4x"></i>');
        count +=1;
      }
      else{
        $('#gallery').modal('show');
        return false;
      }
    });
  });

Switch Splash gallery glyphs to FontAwesome

<!-- Modal -->
%div{ class: "modal fade", id: "gallery", tabindex: "-1", role: "dialog", "aria-labelledby" => "myLargeModalLabel", "aria-hidden"=> "true" }
  %div{ class: "modal-dialog modal-lg" }
    %div{ class: "modal-content" }
      %div{ class: "modal-body" }
        %div{ id: "carousel-example-generic", class: "carousel slide", "data-ride" => "carousel" }
          <!-- Wrapper for slides -->
          %div{ class: "carousel-inner" }

          <!-- Controls -->
          %a{ class: "left carousel-control", href: "#carousel-example-generic", role: "button", "data-slide" => "prev" }
            %span.fa.fa-chevron-left
          %a{ class: "right carousel-control", href: "#carousel-example-generic", role: "button", "data-slide" => "next" }
            %span.fa.fa-chevron-right

:javascript
  $(document).ready(function(){
    var count = 0;
    $('#gallery-btn').click(function(){
      if(count == 0){
        $('#gallery').modal('show');
        $('#gallery .modal-body').append('<i class="fa fa-spinner fa-spin fa-4x"></i>');
        count +=1;
      }
      else{
        $('#gallery').modal('show');
        return false;
      }
    });
  });


.search
  = form_tag search_path, method: :get, class: 'navbar-form pull-left' do |f|
    = search_field_tag "search", nil, placeholder: 'search', class: "search-input form-control", spellcheck: false
    = hidden_field_tag :group_id, @group.try(:id)
    - if @project && @project.persisted?
      = hidden_field_tag :project_id, @project.id

      - if current_controller?(:issues)
        = hidden_field_tag :scope, 'issues'
      - elsif current_controller?(:merge_requests)
        = hidden_field_tag :scope, 'merge_requests'
      - elsif current_controller?(:wikis)
        = hidden_field_tag :scope, 'wiki_blobs'
      - elsif current_controller?(:commits)
        = hidden_field_tag :scope, 'commits'
      - else
        = hidden_field_tag :search_code, true

    - if @snippet || @snippets
      = hidden_field_tag :snippets, true
    = hidden_field_tag :repository_ref, @ref
    = button_tag 'Go' if ENV['RAILS_ENV'] == 'test'
    .search-autocomplete-opts.hide{:'data-autocomplete-path' => search_autocomplete_path, :'data-autocomplete-project-id' => @project.try(:id), :'data-autocomplete-project-ref' => @ref }

:javascript
  $('.search-input').on('keyup', function(e) {
    if (e.keyCode == 27) {
      $('.search-input').blur();
    }
  });

Improve placeholder: search -> Search

.search
  = form_tag search_path, method: :get, class: 'navbar-form pull-left' do |f|
    = search_field_tag "search", nil, placeholder: 'Search', class: "search-input form-control", spellcheck: false
    = hidden_field_tag :group_id, @group.try(:id)
    - if @project && @project.persisted?
      = hidden_field_tag :project_id, @project.id

      - if current_controller?(:issues)
        = hidden_field_tag :scope, 'issues'
      - elsif current_controller?(:merge_requests)
        = hidden_field_tag :scope, 'merge_requests'
      - elsif current_controller?(:wikis)
        = hidden_field_tag :scope, 'wiki_blobs'
      - elsif current_controller?(:commits)
        = hidden_field_tag :scope, 'commits'
      - else
        = hidden_field_tag :search_code, true

    - if @snippet || @snippets
      = hidden_field_tag :snippets, true
    = hidden_field_tag :repository_ref, @ref
    = button_tag 'Go' if ENV['RAILS_ENV'] == 'test'
    .search-autocomplete-opts.hide{:'data-autocomplete-path' => search_autocomplete_path, :'data-autocomplete-project-id' => @project.try(:id), :'data-autocomplete-project-ref' => @ref }

:javascript
  $('.search-input').on('keyup', function(e) {
    if (e.keyCode == 27) {
      $('.search-input').blur();
    }
  });


-# TRIP PLANNED DATE RANGE
=f.input :trip_time_from_date, required: false,
  input_html: {class: 'datepicker'},
  as: :string, label: "From Date"
=f.input :trip_time_to_date, required: false,
  input_html: {class: 'datepicker'},
  as: :string, label: "To Date"


!!!
%html{html_attrs}
  %head
    %title= content_for :title or @app.name

    = stylesheet_link_tag    'application',  media: 'all'
    = stylesheet_link_tag    app_stylesheet, media: 'all'
    = javascript_include_tag 'application'

    = content_for :head

    = setup_browserid
    = csrf_meta_tags

    %meta{name: 'viewport', content: 'width=device-width, initial-scale=1'}

  %body{class: app_class}
    #background.theme-dark-background
      #container.container

        #page.theme-page-shadow

          %header#header.jumbotron.theme-primary-background.theme-primary-image{role: 'banner'}
            %h1= link_to @app.name, app_route.root_url

            - if not @app.default?
              %h2
                %span.powered-by Powered by
                = link_to 'Uplifting Lemma', app_route(App.default).root_url

          = render partial: '/layouts/toolbar'

          %main#content{role: 'main'}
            = content_for :content

          %footer#footer{role: 'contentinfo'}
            - if not @app.default? and @app.owner.present?
              #{@app.name} © 2015 #{@app.owner.name}.
            Uplifting Lemma © 2015 Chris Bouchard.


%section.input-content
  %h2
    Url to onebox
  %input#onebox-url(placeholder="url")
  %button#go{type: 'button'}
    Go
%section.preview
  %h2
    Onebox preview
  .onebox-container
%section.debug-message
  %h2
    Debug message
  .message-group
    %label(for='oneboxed-url')
      url
    %span#oneboxed-url
  .message-group
    %label(for='onebox-engine')
      engine
    %span#onebox-engine
  .message-group
    %label(for='placeholder-html')
      placeholder_html
    %span#placeholder-html
  .message-group
    %label(for='preview-html')
      to_s
    %span#preview-html

Use <pre> for debugging HTML

%section.input-content
  %h2
    Url to onebox
  %input#onebox-url(placeholder="url")
  %button#go{type: 'button'}
    Go
%section.preview
  %h2
    Onebox preview
  .onebox-container
%section.debug-message
  %h2
    Debug message
  .message-group
    %label(for='oneboxed-url')
      url
    %span#oneboxed-url
  .message-group
    %label(for='onebox-engine')
      engine
    %span#onebox-engine
  .message-group
    %label(for='placeholder-html')
      placeholder_html
    %pre#placeholder-html
  .message-group
    %label(for='preview-html')
      to_s
    %pre#preview-html


= render 'users/demo' if Rails.env.demo?

= simple_form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f|
  = f.input :email, :input_html => {'data-autofocus' => true}
  = f.input :password, :hint => false
  - if devise_mapping.rememberable?
    = f.input :remember_me, :as => :boolean

  .form-actions
    = f.button :submit, t('devise.sign_in')

= render "devise/shared/links"

Add page title to login form.

= boot_page_title t('devise.sign_in')

= render 'users/demo' if Rails.env.demo?

= simple_form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f|
  = f.input :email, :input_html => {'data-autofocus' => true}
  = f.input :password, :hint => false
  - if devise_mapping.rememberable?
    = f.input :remember_me, :as => :boolean

  .form-actions
    = f.button :submit, t('devise.sign_in')

= render "devise/shared/links"


= csrf_meta_tags

- content_for :page_actions do
  %li= event_links
  %li= button_link_to t(:resend), resend_admin_order_url(@order), :method => :post, :icon => 'icon-email'
  %li= button_link_to t(:back_to_orders_list), admin_orders_path, :icon => 'icon-arrow-left'

= render :partial => 'spree/admin/shared/order_tabs', :locals => { :current => 'Order Details' }
%div{"data-hook" => "admin_order_edit_header"}
  = render :partial => 'spree/shared/error_messages', :locals => { :target => @order }

= render :partial => 'add_product'

%div{"data-hook" => "admin_order_edit_form"}
  #order-form-wrapper
    = render :partial => 'form', :locals => { :order => @order }

- content_for :head do
  = javascript_tag 'var expand_variants = true;'


#menu
  %ul
    %li= link_to 'See page', url(:page, @page)

%h1= title 'History'

#list_version
  %ul#versions
    // with datamapper 0.9, you can use @page.versions.all(:order =>
    // [:number])
    - @page.versions.each do |version|
      %li= "#{version.number} - #{version.created_at.strftime '%m/%d/%Y %I:%M%p'} - #{@page.name}"


%div
  .login-box
    .login-heading
      %h3 Two-factor Authentication
    .login-body
      = form_for(resource, as: resource_name, url: session_path(resource_name), method: :post) do |f|
        - if @error
          .alert.alert-danger
            = @error
        = f.text_field :otp_attempt, class: 'form-control', placeholder: 'Two-factor authentication code', required: true, autofocus: true
        .prepend-top-20
          = f.submit "Verify code", class: "btn btn-save"

Add a hint on login form about using a recovery code

%div
  .login-box
    .login-heading
      %h3 Two-factor Authentication
    .login-body
      = form_for(resource, as: resource_name, url: session_path(resource_name), method: :post) do |f|
        - if @error
          .alert.alert-danger
            = @error
        = f.text_field :otp_attempt, class: 'form-control', placeholder: 'Two-factor authentication code', required: true, autofocus: true
        %p.help-block.hint If you've lost your phone, you may enter one of your recovery codes.
        .prepend-top-20
          = f.submit "Verify code", class: "btn btn-save"


---
layout: 'default'
title: 'Freelancing - Exit Survey'
class: 'work'
javascripts:
  - "https://s3-eu-west-1.amazonaws.com/share.typeform.com/embed.js"
---
:sass
  html
    margin: 0
    height: 100%
    overflow: hidden
  iframe
    position: absolute
    left: 0
    right: 0
    bottom: 0
    top: 0
    border: 0

%p Sending You To Typeform

%iframe#typeform-full{width:"100%", height:"100%", frameborder:"0", src:"https://jackyalcine.typeform.com/to/YgfDGs"}


!!! 5
%html{ lang: "en", class: "devise-layout-html"}
  = render "layouts/head"
  %body.ui_charcoal.login-page.application.navless{ data: { page: body_data_page }}
    .page-wrap
      = Gon::Base.render_data
      = render "layouts/header/empty"
      = render "layouts/broadcast"
      .container.navless-container
        .content
          = render "layouts/flash"
          .row
            .col-sm-5.pull-right.new-session-forms-container
              = yield
            .col-sm-7.brand-holder.pull-left
              %h1
                = brand_title
              - if brand_item
                = brand_image
                = brand_text
              - else
                %h3 Open source software to collaborate on code

                %p
                  Manage Git repositories with fine-grained access controls that keep your code secure.
                  Perform code reviews and enhance collaboration with merge requests.
                  Each project can also have an issue tracker and a wiki.

            - if current_application_settings.sign_in_text.present?
              = markdown_field(current_application_settings, :sign_in_text)

      %hr.footer-fixed
      .container.footer-container
        .footer-links
          = link_to "Explore", explore_root_path
          = link_to "Help", help_path
          = link_to "About GitLab", "https://about.gitlab.com/"

Add custom text to column


Add basic BEM markup for main navigation

%nav.nav-main
  .l-constrained
    %ul.nav-main__items
      - if @site && !@site.new_record?
        %li= active_link_to t('comfy.admin.cms.base.pages'), comfy_admin_cms_site_pages_path(@site)
        %li= active_link_to t('comfy.admin.cms.base.files'), comfy_admin_cms_site_files_path(@site)
        %li= active_link_to t('comfy.admin.cms.base.snippets'), comfy_admin_cms_site_snippets_path(@site)
        %li= active_link_to t('comfy.admin.cms.base.layouts'), comfy_admin_cms_site_layouts_path(@site)
        / @TODO @modsognir @douglasroper @finitud Add entries for Categories, Reporting and Admin
        / %li= active_link_to t('comfy.admin.cms.base.categories'), comfy_admin_cms_site_categories_path(@site)
        / %li= active_link_to t('comfy.admin.cms.base.reporting'),
        /   comfy_admin_cms_site_reporting_path(@site)
        / %li= active_link_to t('comfy.admin.cms.base.admin'),
        /   comfy_admin_cms_site_admin_path(@site)

        = cms_hook :navigation


%ul.nav.nav-pills.nav-stacked.project-menu
  = nav_link path: 'projects#show' do
    = link_to project_path(@project) do
      %i.icon-list-alt
      Commits
      %small.pull-right= @project.commits.count
  = nav_link path: 'charts#show' do
    = link_to project_charts_path(@project) do
      %i.icon-bar-chart
      Charts
  = nav_link path: 'web_hooks#index' do
    = link_to project_web_hooks_path(@project) do
      %i.icon-link
      Web Hooks
  = nav_link path: 'runners#index' do
    = link_to project_runners_path(@project) do
      %i.icon-cog
      Runners
  = nav_link path: ['jobs#index', 'jobs#deploy_jobs'] do
    = link_to project_jobs_path(@project) do
      %i.icon-code
      Jobs
  = nav_link path: 'services#index' do
    = link_to project_services_path(@project) do
      %i.icon-gear
      Services
  = nav_link path: 'events#index' do
    = link_to project_events_path(@project) do
      %i.icon-book
      Events
  %li
    %hr
  = nav_link path: 'projects#edit' do
    = link_to edit_project_path(@project) do
      %i.icon-cogs
      Settings

Put webhooks and service navs together for consistency with GitLab

%ul.nav.nav-pills.nav-stacked.project-menu
  = nav_link path: 'projects#show' do
    = link_to project_path(@project) do
      %i.icon-list-alt
      Commits
      %small.pull-right= @project.commits.count
  = nav_link path: 'charts#show' do
    = link_to project_charts_path(@project) do
      %i.icon-bar-chart
      Charts
  = nav_link path: 'runners#index' do
    = link_to project_runners_path(@project) do
      %i.icon-cog
      Runners
  = nav_link path: ['jobs#index', 'jobs#deploy_jobs'] do
    = link_to project_jobs_path(@project) do
      %i.icon-code
      Jobs
  = nav_link path: 'web_hooks#index' do
    = link_to project_web_hooks_path(@project) do
      %i.icon-link
      Web Hooks
  = nav_link path: 'services#index' do
    = link_to project_services_path(@project) do
      %i.icon-gear
      Services
  = nav_link path: 'events#index' do
    = link_to project_events_path(@project) do
      %i.icon-book
      Events
  %li
    %hr
  = nav_link path: 'projects#edit' do
    = link_to edit_project_path(@project) do
      %i.icon-cogs
      Settings


= render partial: 'shared/title', locals: { title: "Coaching guide", date: nil }
%section#banner
  .row
    .large-12.columns
      %ul.square
        %li= t('dashboard.teacher_guide.laptop')
        %li= t('dashboard.teacher_guide.keyboard')
        %li= t('dashboard.teacher_guide.typing')
        %li= t('dashboard.teacher_guide.questions')
        %li= t('dashboard.teacher_guide.mistakes')
        %li= t('dashboard.teacher_guide.introduction')
        %li= t('dashboard.teacher_guide.backgrounds')
        %li= t('dashboard.teacher_guide.limits')
        %li= t('dashboard.teacher_guide.colaboration')
        %li= t('dashboard.teacher_guide.discussion')
        %li= t('dashboard.teacher_guide.talk_slow')
        %li= t('dashboard.teacher_guide.mild_approach')
        %li= t('dashboard.teacher_guide.paper')
        %li= t('dashboard.teacher_guide.stubling')

  .row
    .large-12.columns
      %p Do you have something to suggest? Make a #{link_to "pull request", "https://github.com/codebar/planner"} or #{link_to "create an issue", "https://github.com/codebar/planner/issues/new"}.

Update coach guide to use new styling

.stripe.reverse
  .row
    .large-12.columns
      %h3
        Coach Guide
      %p
        This is a brief guide we've put together for our coaches. If you have any suggestions to make open a #{link_to "pull request", "https://github.com/codebar/planner"} or #{link_to "create an issue", "https://github.com/codebar/planner/issues/new"}.

.stripe.reverse
  .row
    .large-12.columns
      %ul.circle
        %li= t('dashboard.teacher_guide.laptop')
        %li= t('dashboard.teacher_guide.keyboard')
        %li= t('dashboard.teacher_guide.typing')
        %li= t('dashboard.teacher_guide.questions')
        %li= t('dashboard.teacher_guide.mistakes')
        %li= t('dashboard.teacher_guide.introduction')
        %li= t('dashboard.teacher_guide.backgrounds')
        %li= t('dashboard.teacher_guide.limits')
        %li= t('dashboard.teacher_guide.colaboration')
        %li= t('dashboard.teacher_guide.discussion')
        %li= t('dashboard.teacher_guide.talk_slow')
        %li= t('dashboard.teacher_guide.mild_approach')
        %li= t('dashboard.teacher_guide.paper')
        %li= t('dashboard.teacher_guide.stubling')

  .row
    .large-12.columns


.centered
  %h1
    = AppConfig.app_name.upcase

  = yield :logo
  #loading
  %nav#appnav
    = yield :tabs
  #widget-container
    = yield :widgets
  = yield :extra_header

Fix to abstract app name. Allows user of converge-ui to pass in any string.

.centered
  %h1
    = yield :appname

  = yield :logo
  #loading
  %nav#appnav
    = yield :tabs
  #widget-container
    = yield :widgets
  = yield :extra_header


/ Down the line, this will support the dashboard view too
- dataset = dataset_min

.dataset{class: defined?(expanded) ? 'expanded': ''}
  .row
    .span4
      %a.level-badge{class: "level-badge-#{dataset.certificate.attained_level}", href: url_for(dataset)}
      %h3.badge-align
        = link_to_unless_current dataset.title, dataset
    .span3
      =link_to 'View certificate', [dataset, dataset.certificate], class: 'btn btn-info'
    .span3
      .details
        %p
          %span Published By
          %strong= dataset.certificate.curator
        %p
          %span Issued
          %strong= "#{time_ago_in_words(dataset.updated_at)} ago"
    .span2
      .expand
        %i.show-more.icon-chevron-down
        %i.hide-more.icon-chevron-up
      .jurisdiction
        .badge
          = dataset.response_set.jurisdiction
        %span.status
          = dataset.response_set.survey.try(:status)

  .more
    %hr
    .row
      .span4
        =render 'shared/response_set_summary_short', response_set: dataset.response_set

      .span8
        =render 'shared/response_set_description', response_set: dataset.response_set

%hr.heavy

Use published_at for certificate issued date

/ Down the line, this will support the dashboard view too
- dataset = dataset_min

.dataset{class: defined?(expanded) ? 'expanded': ''}
  .row
    .span4
      %a.level-badge{class: "level-badge-#{dataset.certificate.attained_level}", href: url_for(dataset)}
      %h3.badge-align
        = link_to_unless_current dataset.title, dataset
    .span3
      =link_to 'View certificate', [dataset, dataset.certificate], class: 'btn btn-info'
    .span3
      .details
        %p
          %span Published By
          %strong= dataset.certificate.curator
        %p
          %span Issued
          %strong= "#{time_ago_in_words(dataset.certificate.published_at)} ago"
    .span2
      .expand
        %i.show-more.icon-chevron-down
        %i.hide-more.icon-chevron-up
      .jurisdiction
        .badge
          = dataset.response_set.jurisdiction
        %span.status
          = dataset.response_set.survey.try(:status)

  .more
    %hr
    .row
      .span4
        =render 'shared/response_set_summary_short', response_set: dataset.response_set

      .span8
        =render 'shared/response_set_description', response_set: dataset.response_set

%hr.heavy


.contextual
  = link_to t_action('new', Salary), new_salary_path(:salary => {:employee_id => @employee.id}), :class => "icon icon-add"
%h2= t_title :index, Salary

- @salaries = @employee.salaries
= render 'salaries/list'

Fix link to create new salary from employee view.

.contextual
  = link_to t_action('new', Salary), select_employee_salaries_path(:salary => {:employee_id => @employee.id}), :class => "icon icon-add"
%h2= t_title :index, Salary

- @salaries = @employee.salaries
= render 'salaries/list'


.row
  .col-md-12
    .page-header
      %h1
        -if @target.new_record?
          New
        Target
.row
  .col-md-8
    = semantic_form_for(@target, url: (@target.new_record? ? admin_conference_targets_path : admin_conference_target_path(@conference.short_title, @target))) do |f|
      = f.input :due_date, as: :string, input_html: { class: 'target-due-date-datepicker'}, label: 'Until when do you want to have '
      = f.input :target_count, label: 'this amount of '
      = f.input :unit, as: :select, label: 'Unit', class: 'form-control', collection: Target.units.values, include_blank: false, label: 'units '
      %p.text-right
        = f.action :submit, as: :button, button_html: { class: 'btn btn-primary' }

Remove duplicated label - target/form

.row
  .col-md-12
    .page-header
      %h1
        -if @target.new_record?
          New
        Target
.row
  .col-md-8
    = semantic_form_for(@target, url: (@target.new_record? ? admin_conference_targets_path : admin_conference_target_path(@conference.short_title, @target))) do |f|
      = f.input :due_date, as: :string, input_html: { class: 'target-due-date-datepicker'}, label: 'Until when do you want to have '
      = f.input :target_count, label: 'this amount of '
      = f.input :unit, as: :select, label: 'Unit', class: 'form-control', collection: Target.units.values, include_blank: false
      %p.text-right
        = f.action :submit, as: :button, button_html: { class: 'btn btn-primary' }


Add stats page layout missing from previous commit

- content_for :javascripts do
  = javascript_include_tag "pages/stats"

- content_for :stylesheets do
  = stylesheet_link_tag "stats"

- content_for :secondary_navigation do
  = link_to "back", "index.html", :id => "stats_back"

#stats.content
  %ul


- content_for :right_column do
  #form-save.box
    %label.checkbox-inline
      %input{:type => 'checkbox'}
      = ::Comfy::Cms::Page.human_attribute_name(:is_published)
    %button.btn.btn-sm.btn-primary.pull-right
  = render 'comfy/admin/cms/files/index'

= render 'comfy/admin/cms/partials/page_form_before', :object => form

= form.text_field :label, :data => {:slugify => @page.new_record?}

- unless @site.pages.count == 0 || @site.pages.root == @page
  = form.text_field :slug, :data => {:slug => true}
  - unless @page.new_record?
    = form.text_field :full_path, :id => 'full-path', :disabled => true

- if (options = ::Comfy::Cms::Layout.options_for_select(@site)).present?
  = form.select :layout_id, options, {}, 'data-url' => form_blocks_comfy_admin_cms_site_page_path(@site, @page.id.to_i)

- if (options = ::Comfy::Cms::Page.options_for_select(@site, @page)).present?
  = form.select :parent_id, options

- if (options = ::Comfy::Cms::Page.options_for_select(@site, @page, nil, 0, false)).present?
  = form.select :target_page_id, [["---- #{t('.select_target_page')} ----", nil]] + options

= render 'comfy/admin/cms/partials/page_form_inner', :object => form

= render :partial => 'comfy/admin/cms/categories/form', :object => form

= render :partial => 'form_blocks'

.form-group
  .col-sm-12
    = form.check_box :is_published, :label => t('.is_published')

= render 'comfy/admin/cms/partials/page_form_after', :object => form

.form-group.form-actions
  .col-sm-12
    = link_to t('.preview'), "https://www.moneyadviceservice.org.uk/#{I18n.locale}/articles#{@page.full_path}/preview", :class => 'btn btn-default', id: 'preview', target: '_blank'
    = form.submit t(@page.new_record?? '.create' : '.update'), :class => 'btn btn-primary'


%tr[attachment]
  %td= link_to attachment.title, attachment.file.url, {'data-href-container' => 'tr'}
  %td.action-links
    =link_to t_action(:show), resource_url(attachment), 'data-href-container' => 'tr'
    =link_to t_action(:edit), edit_resource_url(attachment)
    =link_to t_action(:delete), resource_url(attachment), :confirm => t_confirm_delete(attachment), :method => :delete

Fix action links for attachments in invoice view.

%tr[attachment]
  %td= link_to attachment.title, attachment.file.url, {'data-href-container' => 'tr'}
  %td.action-links
    =link_to t_action(:show), attachment_url(attachment), 'data-href-container' => 'tr'
    =link_to t_action(:edit), edit_attachment_url(attachment)
    =link_to t_action(:delete), attachment_url(attachment), :confirm => t_confirm_delete(attachment), :method => :delete


- project = @target_project || @project
- extra_class = extra_class || ''
- selected_text = selected.try(:title)
- if selected.present?
  = hidden_field_tag(name, name == :milestone_title ? selected.title : selected.id)
= dropdown_tag(milestone_dropdown_label(selected_text), options: { title: "Filter by milestone", toggle_class: "js-milestone-select js-filter-submit #{extra_class}", filter: true, dropdown_class: "dropdown-menu-selectable dropdown-menu-milestone",
  placeholder: "Search milestones", footer_content: project.present?, data: { show_no: true, show_menu_above: true, show_any: show_any, show_upcoming: show_upcoming, field_name: name, selected: selected.try(:title), project_id: project.try(:id), milestones: milestones_filter_dropdown_path, default_label: "Milestone" } }) do
  - if project
    %ul.dropdown-footer-list
      - if can? current_user, :admin_milestone, project
        %li
          = link_to new_namespace_project_milestone_path(project.namespace, project), title: "New Milestone" do
            Create new
      %li
        = link_to namespace_project_milestones_path(project.namespace, project) do
          - if can? current_user, :admin_milestone, project
            Manage milestones
          - else
            View milestones

Set default value for show_menu_above variable.

- project = @target_project || @project
- extra_class = extra_class || ''
- show_menu_above = show_menu_above || false
- selected_text = selected.try(:title)
- if selected.present?
  = hidden_field_tag(name, name == :milestone_title ? selected.title : selected.id)
= dropdown_tag(milestone_dropdown_label(selected_text), options: { title: "Filter by milestone", toggle_class: "js-milestone-select js-filter-submit #{extra_class}", filter: true, dropdown_class: "dropdown-menu-selectable dropdown-menu-milestone",
  placeholder: "Search milestones", footer_content: project.present?, data: { show_no: true, show_menu_above: show_menu_above, show_any: show_any, show_upcoming: show_upcoming, field_name: name, selected: selected.try(:title), project_id: project.try(:id), milestones: milestones_filter_dropdown_path, default_label: "Milestone" } }) do
  - if project
    %ul.dropdown-footer-list
      - if can? current_user, :admin_milestone, project
        %li
          = link_to new_namespace_project_milestone_path(project.namespace, project), title: "New Milestone" do
            Create new
      %li
        = link_to namespace_project_milestones_path(project.namespace, project) do
          - if can? current_user, :admin_milestone, project
            Manage milestones
          - else
            View milestones


%br
%br
%h1 All Snap! Courses
%br
-if flash[:message]
    %h3= flash[:message]

-@courses do |course|
    =link_to course.title, course_show_path(course)
    %br

Fix iteration error for courses

%br
%br
%h1 All Snap! Courses
%br
-if flash[:message]
    %h3= flash[:message]

-@courses.each do |course|
    =link_to course.title, course_show_path(course)
    %br


!!! 5
%html{:xmlns => "http://www.w3.org/1999/xhtml"}
  %head
    %meta{:charset => 'utf-8'}/
    %meta{:content => "Simon Huerlimann <simon.huerlimann@cyt.ch>", :name => "author"}/

    %link{:rel => "shortcut icon", :href => image_path('favicon.ico')}/

    = stylesheet_link_tag 'compiled/screen.css', :media => 'screen, projection'
    = stylesheet_link_tag 'compiled/print.css', :media => 'print'
    /[if lt IE 8]
      = stylesheet_link_tag 'compiled/ie.css', :media => 'screen, projection'
    /[if lt IE 7]
      = stylesheet_link_tag 'compiled/ie6.css', :media => 'screen, projection'
    = csrf_meta_tag
    %title
      = "#{t('application.title')} - #{controller.action_name.capitalize}"
  %body
    #container
      #header
        #logo{:style => 'margin: 0px'}
          = image_tag('logo.png')
          %h1#logo-text bookyt
        #main-menu
          = render_navigation(:level => 1)

      #content-column
        #content
          - if flash[:notice]
            #flash.flash.notice
              = flash[:notice]
          = yield

      #sidebar-column
        #sidebar
          = yield :sidebar
    = javascript_include_tag :defaults

Add notice output to layout.

!!! 5
%html{:xmlns => "http://www.w3.org/1999/xhtml"}
  %head
    %meta{:charset => 'utf-8'}/
    %meta{:content => "Simon Huerlimann <simon.huerlimann@cyt.ch>", :name => "author"}/

    %link{:rel => "shortcut icon", :href => image_path('favicon.ico')}/

    = stylesheet_link_tag 'compiled/screen.css', :media => 'screen, projection'
    = stylesheet_link_tag 'compiled/print.css', :media => 'print'
    /[if lt IE 8]
      = stylesheet_link_tag 'compiled/ie.css', :media => 'screen, projection'
    /[if lt IE 7]
      = stylesheet_link_tag 'compiled/ie6.css', :media => 'screen, projection'
    = csrf_meta_tag
    %title
      = "#{t('application.title')} - #{controller.action_name.capitalize}"
  %body
    #container
      #header
        #logo{:style => 'margin: 0px'}
          = image_tag('logo.png')
          %h1#logo-text bookyt
        #main-menu
          = render_navigation(:level => 1)

      #content-column
        #content
          - if notice
            #flash.flash.notice= notice
          - if alert
            #alert.flash.alert= alert
          = yield

      #sidebar-column
        #sidebar
          = yield :sidebar
    = javascript_include_tag :defaults


%h3= t('title.line_items')
%table#line_items.table.table-striped{'data-direct-account-id' => resource.direct_account.id, 'data-direct-account-factor' => resource.direct_account_factor}
%thead
  = render 'line_items/list_header', :invoice => invoice
%tbody.sortable
  = f.fields_for :line_items do |line_item|
    = render "#{line_item.object.class.name.underscore.pluralize}/form", :line_item => line_item
%tfoot
  = render 'line_items/list_footer', :total_amount => invoice.amount

Fix broken line item table in invoice views.


= render "commits/head"

%h3.page_title
  Compare View
%hr

= render "form"

- if @commits.present?
  %div.ui-box
    %h5.small Commits (#{@commits.count})
    %ul.well-list= render @commits

  - unless @diffs.empty?
    %h4 Diff
    = render "commits/diffs", diffs: @diffs

Fix minor style issue for compare

= render "commits/head"

%h3.page_title
  Compare View
%hr

= render "form"

- if @commits.present?
  %div.ui-box
    %h5.title
      Commits (#{@commits.count})
    %ul.well-list= render @commits

  - unless @diffs.empty?
    %h4 Diff
    = render "commits/diffs", diffs: @diffs


= offering.runnable.name
= link_to 'run as learner', rites_portal_offering_url(offering, :format => :jnlp)
= otml_link_for(offering.runnable)
= run_link_for(offering.runnable)


%table.list.charge_rates.collection
  %thead
    %tr
      %th= t_attr :title
      %th= t_attr :code
      %th= t_attr :duration
      %th= t_attr :person
      %th.number= t_attr :rate
      %th.action-links

  = render collection

Make charge_rates list work when included as partial.

%table.list.charge_rates.collection
  %thead
    %tr
      %th= t_attr :title
      %th= t_attr :code
      %th= t_attr :duration
      %th= t_attr :person
      %th.number= t_attr :rate
      %th.action-links

  = render @charge_rates


%li{class: "milestone", id: dom_id(milestone) }
  .right
    - if can? current_user, :admin_milestone, milestone.project
      = link_to edit_project_milestone_path(milestone.project, milestone), class: "btn small edit-milestone-link grouped" do
        %i.icon-edit
        Edit
  %h4
    = link_to_gfm truncate(milestone.title, length: 100), project_milestone_path(milestone.project, milestone)
    %small
      = milestone.expires_at
  .row
    .progress.progress-info.span4
      .bar{style: "width: #{milestone.percent_complete}%;"}
    .span6
      - if milestone.issues.any?
        = link_to project_issues_path(milestone.project, milestone_id: milestone.id), class: "btn very_small" do
          %strong= pluralize milestone.issues.count, 'Issue'

      - if milestone.merge_requests.any?
        = link_to project_merge_requests_path(milestone.project, milestone_id: milestone.id), class: "btn very_small" do
          %strong= pluralize milestone.issues.count, 'Merge Request'

Fix merge request count for milestone index

%li{class: "milestone", id: dom_id(milestone) }
  .right
    - if can? current_user, :admin_milestone, milestone.project
      = link_to edit_project_milestone_path(milestone.project, milestone), class: "btn small edit-milestone-link grouped" do
        %i.icon-edit
        Edit
  %h4
    = link_to_gfm truncate(milestone.title, length: 100), project_milestone_path(milestone.project, milestone)
    %small
      = milestone.expires_at
  .row
    .progress.progress-info.span4
      .bar{style: "width: #{milestone.percent_complete}%;"}
    .span6
      - if milestone.issues.any?
        = link_to project_issues_path(milestone.project, milestone_id: milestone.id), class: "btn very_small" do
          %strong= pluralize milestone.issues.count, 'Issue'

      - if milestone.merge_requests.any?
        = link_to project_merge_requests_path(milestone.project, milestone_id: milestone.id), class: "btn very_small" do
          %strong= pluralize milestone.merge_requests.count, 'Merge Request'


%script{ "data-dojo-config" => "usePlainJson: true, isDebug: false",
  :src => "//downloads.mailchimp.com/js/signup-forms/popup/embed.js",
  :type => "text/javascript" }
:javascript
  require(["mojo/signup-forms/Loader"], function(L) {
    L.start({
      "baseUrl":"mc.us6.list-manage.com",
      "uuid":"672df31cd6d0e7132c9c4c7d1",
      "lid":"d107e57061"
    })
  })


.file-content.code{class: user_color_scheme_class}
  .line-numbers
    - if blob.data.present?
      - blob.data.lines.to_a.size.times do |index|
        - offset = defined?(first_line_number) ? first_line_number : 1
        - i = index + offset
        = link_to "#L#{i}", id: "L#{i}", rel: "#L#{i}" do
          %i.fa.fa-link
          = i
  = highlight(blob.name, blob.data)

Fix code rendering for snippets

.file-content.code{class: user_color_scheme_class}
  .line-numbers
    - if blob.data.present?
      - blob.data.lines.to_a.size.times do |index|
        - offset = defined?(first_line_number) ? first_line_number : 1
        - i = index + offset
        = link_to "#L#{i}", id: "L#{i}", rel: "#L#{i}" do
          %i.fa.fa-link
          = i
  :preserve
    #{highlight(blob.name, blob.data)}


- if show_last_push_widget?(event)
  .event_lp
    = image_tag "event_push.png"

    %span You pushed to
    = link_to project_commits_path(event.project, event.ref_name) do
      %strong= truncate(event.ref_name, length: 28)
    at
    %strong= link_to_project event.project
    %span
      = time_ago_in_words(event.created_at)
      ago.

    = link_to new_mr_path_from_push_event(event), title: "New Merge Request", class: "btn btn-new-mr" do
      Create Merge Request

Fix missing image for last push

- if show_last_push_widget?(event)
  .event_lp
    %span You pushed to
    = link_to project_commits_path(event.project, event.ref_name) do
      %strong= truncate(event.ref_name, length: 28)
    at
    %strong= link_to_project event.project
    %span
      = time_ago_in_words(event.created_at)
      ago.

    = link_to new_mr_path_from_push_event(event), title: "New Merge Request", class: "btn btn-new-mr" do
      Create Merge Request


.span5
  %h2 Sign Up
  = form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :class => 'form-horizontal' }) do |f|
    = devise_error_messages!

    .control-group
      = f.label :name, 'Username', :class => 'control-label'
      .controls
        = f.text_field :name, :autofocus => true

    .control-group
      = f.label :email, :class => 'control-label'
      .controls
        = f.email_field :email

    .control-group
      = f.label :password, :class => 'control-label'
      .controls
        = f.password_field :password

    .control-group
      = f.label :password_confirmation, :class => 'control-label'
      .controls
        = f.password_field :password_confirmation

    .control-group
      .controls
        .btn-group
          = f.submit 'Sign up', :class => 'btn btn-primary'
          = render 'devise/shared/links'
.span6
  %h2 You're just about there...
  %p
    In
    %b just a few moments
    you will be reading the news you want to read.


Copy the application layout into the join layout.

!!!
%html
  %head
    %title Circle - Continuous Integration made easy

    %meta{:content => "text/html; charset=utf-8", "http-equiv" => "Content-Type"}

    -# Stylesheets first
    = stylesheet_link_tag "application"
    - if not params[:controller].start_with? "devise" then
      = stylesheet_link_tag "controller-specific/" + params[:controller]

    -# JS
    = javascript_include_tag "application"
    - if not params[:controller].start_with? "devise" then
      = javascript_include_tag "controller-specific/" + params[:controller]

    = csrf_meta_tags

    = render :partial => 'google-analytics'

  %body
    %ul.hmenu
      - flash.each do |name, msg|
        = content_tag :div, msg, :id => "flash_#{name}" if msg.is_a?(String)

    = yield


= render layout: 'help/layout' do
  %h3.page-title SSH Keys

  %p.slead
    SSH key allows you to establish a secure connection between your computer and GitLab

  %p.slead
    Before generating an SSH key, check if your system already has one by running cat ~/.ssh/id_rsa.pub . If your see a long string starting with 'ssh-rsa' or 'ssh-dsa', you can skip the ssh-keygen step.

  %p.slead
    To generate a new SSH key just open your terminal and use code below. The ssh-keygen command prompts you for a location and filename to store the key pair and for a password. When prompted for the location/filename, you can press enter to use the default. It is a best practice to use a password for an SSH key but it is not required and you can skip the step by pressing enter. Note that the password you choose here can't be altered or retrieved.

  %pre.dark
    ssh-keygen -t rsa -C "#{current_user.email}"

  %p.slead
    Use code below to show your public key.

  %pre.dark
    cat ~/.ssh/id_rsa.pub

  %p.slead
    Copy-paste the key to the 'My SSH Keys' section under the 'SSH' tab in your user profile. Please copy the complete key starting with 'ssh-' and ending with your username and host.

Split into one sentence per line for future edits.

= render layout: 'help/layout' do
  %h3.page-title SSH Keys

  %p.slead
    SSH key allows you to establish a secure connection between your computer and GitLab

  %p.slead
    Before generating an SSH key, check if your system already has one by running cat ~/.ssh/id_rsa.pub
    If your see a long string starting with 'ssh-rsa' or 'ssh-dsa', you can skip the ssh-keygen step.

  %p.slead
    To generate a new SSH key just open your terminal and use code below. The ssh-keygen command prompts you for a location and filename to store the key pair and for a password.
    When prompted for the location and filename you can press enter to use the default.
    It is a best practice to use a password for an SSH key but it is not required and you can skip creating a password by pressing enter.
    Note that the password you choose here can't be altered or retrieved.

  %pre.dark
    ssh-keygen -t rsa -C "#{current_user.email}"

  %p.slead
    Use code below to show your public key.

  %pre.dark
    cat ~/.ssh/id_rsa.pub

  %p.slead
    Copy-paste the key to the 'My SSH Keys' section under the 'SSH' tab in your user profile.
    Please copy the complete key starting with 'ssh-' and ending with your username and host.


= contextual_links

%h1= t_title
%ul.overview-list.level-1
  %li
    = link_to t_model(DebitInvoice), debit_invoices_path
    %ul.overview-list.level-2
      %li= link_to "Offene Rechnungen", debit_invoices_path(:by_state => :booked)
      %li= link_to "Überfällige Rechnungen", debit_invoices_path(:overdue => true)
      %li= link_to "Neue Rechnung", new_debit_invoice_path

  %li
    = link_to t_model(CreditInvoice), credit_invoices_path
    %ul.overview-list.level-2
      %li= link_to "Offene Rechnungen", credit_invoices_path(:by_state => :booked)
      %li= link_to "Überfällige Rechnungen", credit_invoices_path(:overdue => true)
      %li= link_to "Neue Rechnung", new_credit_invoice_path

Add link to upload new esr file to invoice overview.

= contextual_links

%h1= t_title
%ul.overview-list.level-1
  %li
    = link_to t_model(DebitInvoice), debit_invoices_path
    %ul.overview-list.level-2
      %li= link_to "Offene Rechnungen", debit_invoices_path(:by_state => :booked)
      %li= link_to "Überfällige Rechnungen", debit_invoices_path(:overdue => true)
      %li= link_to "Neue Rechnung", new_debit_invoice_path
      %li= link_to "VESR Datei einlesen", new_esr_file_path

  %li
    = link_to t_model(CreditInvoice), credit_invoices_path
    %ul.overview-list.level-2
      %li= link_to "Offene Rechnungen", credit_invoices_path(:by_state => :booked)
      %li= link_to "Überfällige Rechnungen", credit_invoices_path(:overdue => true)
      %li= link_to "Neue Rechnung", new_credit_invoice_path


.helper-bot
  %a{ :href => "http://loomio.org/how-it-works"}
    %img{:src => "/assets/helper-bot.gif",
     :alt => "Click for tutorial video"}

Set helper bot to open help in new tab.

.helper-bot
  %a{ :href => "http://loomio.org/how-it-works", :target => "_blank"}
    %img{:src => "/assets/helper-bot.gif",
     :alt => "Click for tutorial video"}


- if cookies[:hide_project_limit_message].blank? && !current_user.d-none_project_limit && !current_user.can_create_project? && current_user.projects_limit > 0
  .project-limit-message.alert.alert-warning.d-none.d-sm-block
    You won't be able to create new projects because you have reached your project limit.

    .float-right
      = link_to "Don't show again", profile_path(user: {hide_project_limit: true}), method: :put, class: 'alert-link'
      |
      = link_to 'Remind later', '#', class: 'hide-project-limit-message alert-link'

Remove bad replacement of .hide

- if cookies[:hide_project_limit_message].blank? && !current_user.hide_project_limit && !current_user.can_create_project? && current_user.projects_limit > 0
  .project-limit-message.alert.alert-warning.d-none.d-sm-block
    You won't be able to create new projects because you have reached your project limit.

    .float-right
      = link_to "Don't show again", profile_path(user: {hide_project_limit: true}), method: :put, class: 'alert-link'
      |
      = link_to 'Remind later', '#', class: 'hide-project-limit-message alert-link'


- page_title "FogBugz Import"
- header_title "Projects", root_path
%h3.page-title
  %i.fa.fa-bug
  Import projects from FogBugz
%hr

= form_tag callback_import_fogbugz_path do
  %p
    To get started you enter your FogBugz URL and login information below.
    In the next steps, you'll be able to map users and select the projects
    you want to import.
  .form-group.row
    = label_tag :uri, 'FogBugz URL', class: 'col-form-label col-sm-8'
    .col-sm-4
      = text_field_tag :uri, nil, placeholder: 'https://mycompany.fogbugz.com', class: 'form-control'
  .form-group.row
    = label_tag :email, 'FogBugz Email', class: 'col-form-label col-sm-8'
    .col-sm-4
      = text_field_tag :email, nil, class: 'form-control'
  .form-group.row
    = label_tag :password, 'FogBugz Password', class: 'col-form-label col-sm-8'
    .col-sm-4
      = password_field_tag :password, nil, class: 'form-control'
  .form-actions
    = submit_tag 'Continue to the next step', class: 'btn btn-create'

Fix FogBugz import form col sizing

- page_title "FogBugz Import"
- header_title "Projects", root_path
%h3.page-title
  %i.fa.fa-bug
  Import projects from FogBugz
%hr

= form_tag callback_import_fogbugz_path do
  %p
    To get started you enter your FogBugz URL and login information below.
    In the next steps, you'll be able to map users and select the projects
    you want to import.
  .form-group.row
    = label_tag :uri, 'FogBugz URL', class: 'col-form-label col-md-2'
    .col-md-4
      = text_field_tag :uri, nil, placeholder: 'https://mycompany.fogbugz.com', class: 'form-control'
  .form-group.row
    = label_tag :email, 'FogBugz Email', class: 'col-form-label col-md-2'
    .col-md-4
      = text_field_tag :email, nil, class: 'form-control'
  .form-group.row
    = label_tag :password, 'FogBugz Password', class: 'col-form-label col-md-2'
    .col-md-4
      = password_field_tag :password, nil, class: 'form-control'
  .form-actions
    = submit_tag 'Continue to the next step', class: 'btn btn-create'


!!! 5

%html
  %head
    %title CronChecker
    = stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true
    = csrf_meta_tags
    %meta{name: "google-site-verification", content: "XsTtBFfW_5jcRrEfNL0lHtPU-_qaLzqRvfRrYklrFYw"}

  %body
    = render "shared/header"
    = render "shared/flash"
    = yield
    = render "shared/footer"

Make Google webmaster code configurable

!!! 5

%html
  %head
    %title CronChecker
    = stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true
    = csrf_meta_tags
    %meta{name: "google-site-verification", content: ENV['GOOGLE_WEBMASTER_VERIFICATION']}

  %body
    = render "shared/header"
    = render "shared/flash"
    = yield
    = render "shared/footer"


%h1 Wie melde ich mich als Vermittler an?

%p.lead
  Veggies sunt bona vobis, proinde vos postulo esse magis wattle seed yarrow
  kohlrabi amaranth silver beet chard lettuce carrot kale salsify courgette
  horseradish welsh onion water spinach.

%p
  Seakale kale zucchini potato okra melon spinach summer purslane gumbo
  kohlrabi pea sprouts lettuce scallion. Wakame radicchio azuki bean seakale
  lentil black-eyed pea welsh onion shallot tomato cauliflower bell pepper
  celery pumpkin water chestnut beet greens earthnut pea groundnut.
  Ricebean summer purslane taro corn onion kombu winter purslane bitterleaf
  lantain water spinach melon sea lettuce sierra leone bologi amaranth fava
  bean burdock.

%p
  Winter purslane onion dandelion prairie turnip chicory mustard garlic
  eggplant aubergine welsh onion. Fennel seakale tatsoi sorrel broccoli rabe
  sierra leone bologi celery welsh onion desert raisin tigernut lettuce
  cucumber maize. Sea lettuce lotus root cress daikon beet greens seakale
  celery aubergine sorrel sea lettuce horseradish garbanzo shallot caulie
  green bean dandelion water spinach parsley. Beetroot broccoli maize soybean
  bush tomato sorrel radicchio garbanzo parsley desert raisin courgette endive
  beet greens daikon jícama ricebean catsear arugula. Leek scallion gumbo
  earthnut pea eggplant brussels sprout.

%p
  Fennel courgette caulie potato tomato yarrow daikon gourd water chestnut.
  Ricebean dandelion coriander celtuce cress nori squash broccoli rabe napa
  cabbage collard greens asparagus salad sierra leone bologi turnip greens
  tomato epazote fava bean tigernut. Potato lentil jícama tigernut pumpkin
  turnip chickweed groundnut.


= semantic_form_for @charge_rate do |f|
  = f.semantic_errors
  = f.inputs do
    = f.input :title
    = f.input :code
    = f.input :rate, :input_html => {:size => 3}

  = f.inputs t('title.period') do
    = f.input :duration_from, :as => :date_field
    = f.input :duration_to, :as => :date_field

  = f.buttons do
    = f.commit_button


- page_title "Deploy Keys"
.panel.panel-default.prepend-top-default
  .panel-heading
    Public deploy keys (#{@deploy_keys.count})
    .controls
      = link_to 'New Deploy Key', new_admin_deploy_key_path, class: "btn btn-new btn-sm"
  - if @deploy_keys.any?
    .table-holder
      %table.table
        %thead.panel-heading
          %tr
            %th Title
            %th Fingerprint
            %th Write access allowed
            %th Added at
            %th
        %tbody
          - @deploy_keys.each do |deploy_key|
            %tr
              %td
                %strong= deploy_key.title
              %td
                %code.key-fingerprint= deploy_key.fingerprint
              %td
                - if deploy_key.can_push?
                  Yes
                - else
                  No
              %td
                %span.cgray
                  added #{time_ago_with_tooltip(deploy_key.created_at)}
              %td
                = link_to 'Remove', admin_deploy_key_path(deploy_key), data: { confirm: 'Are you sure?'}, method: :delete, class: "btn btn-sm btn-remove delete-key pull-right"

Use btn-inverted for New Deploy Key

- page_title "Deploy Keys"
.panel.panel-default.prepend-top-default
  .panel-heading
    Public deploy keys (#{@deploy_keys.count})
    .controls
      = link_to 'New Deploy Key', new_admin_deploy_key_path, class: "btn btn-new btn-sm btn-inverted"
  - if @deploy_keys.any?
    .table-holder
      %table.table
        %thead.panel-heading
          %tr
            %th Title
            %th Fingerprint
            %th Write access allowed
            %th Added at
            %th
        %tbody
          - @deploy_keys.each do |deploy_key|
            %tr
              %td
                %strong= deploy_key.title
              %td
                %code.key-fingerprint= deploy_key.fingerprint
              %td
                - if deploy_key.can_push?
                  Yes
                - else
                  No
              %td
                %span.cgray
                  added #{time_ago_with_tooltip(deploy_key.created_at)}
              %td
                = link_to 'Remove', admin_deploy_key_path(deploy_key), data: { confirm: 'Are you sure?'}, method: :delete, class: "btn btn-sm btn-remove delete-key pull-right"


Move show_salaries partial to bookyt_salary.

.contextual
  = link_to t_action('new', Salary), select_employee_salaries_path(:salary => {:employee_id => @employee.id}), :class => "icon icon-add"
%h2= t_title :index, Salary

- @salaries = @employee.salaries
= render 'salaries/list'


%tr.nested-form-item[line_item.object]
  %td
  %td= line_item.text_field :title, :required => true, :style => 'width: 30em'
  %td
  %td
  %td
  %td.currency.total_amount= currency_fmt(line_item.object.accounted_amount)
  %td{:colspan => 2}
    .clearfix
      .input-prepend
        .add-on Σ
        = line_item.text_field :reference_code
  %td.action_links
    = line_item.hidden_field :position
    = line_item.hidden_field :code
    = line_item.hidden_field :reference_code
    = line_item.hidden_field :booking_template_id
    = line_item.hidden_field :include_in_saldo_list
    = line_item.hidden_field :date
    = line_item.hidden_field :quantity, :value => 'saldo_of'
    = line_item.hidden_field :times
    = line_item.hidden_field :price
    = line_item.hidden_field :_destroy
    = link_to t_action(:delete), '#', :class => 'icon-delete-text delete-nested-form-item'

Fix width for reference_code fields in saldo items.

%tr.nested-form-item[line_item.object]
  %td
  %td= line_item.text_field :title, :required => true, :style => 'width: 30em'
  %td
  %td
  %td
  %td.currency.total_amount= currency_fmt(line_item.object.accounted_amount)
  %td{:colspan => 2}
    .clearfix
      .input-prepend
        .add-on Σ
        = line_item.text_field :reference_code, :class => 'span5'

  %td.action_links
    = line_item.hidden_field :position
    = line_item.hidden_field :code
    = line_item.hidden_field :reference_code
    = line_item.hidden_field :booking_template_id
    = line_item.hidden_field :include_in_saldo_list
    = line_item.hidden_field :date
    = line_item.hidden_field :quantity, :value => 'saldo_of'
    = line_item.hidden_field :times
    = line_item.hidden_field :price
    = line_item.hidden_field :_destroy
    = link_to t_action(:delete), '#', :class => 'icon-delete-text delete-nested-form-item'


- page_title "Import repository"
%h3.page-title
  - if @project.import_failed?
    Import failed. Retry?
  - else
    Import repository

%hr

= form_for @project, url: namespace_project_import_path(@project.namespace, @project), method: :post, html: { class: 'form-horizontal' } do |f|
  .form-group.import-url-data
    = f.label :import_url, class: 'control-label' do
      %span Import existing git repo
    .col-sm-10
      = f.text_field :import_url, class: 'form-control', placeholder: 'https://github.com/randx/six.git'
      .well.prepend-top-20
        This URL must be publicly accessible or you can add a username and password like this: https://username:password@gitlab.com/company/project.git.
        %br
        The import will time out after 4 minutes. For big repositories, use a clone/push combination.
        For SVN repositories, check #{link_to "this migrating from SVN doc.", "http://doc.gitlab.com/ce/workflow/migrating_from_svn.html"}
  .form-actions
    = f.submit 'Start import', class: "btn btn-create", tabindex: 4

Fix import from SVN link

- page_title "Import repository"
%h3.page-title
  - if @project.import_failed?
    Import failed. Retry?
  - else
    Import repository

%hr

= form_for @project, url: namespace_project_import_path(@project.namespace, @project), method: :post, html: { class: 'form-horizontal' } do |f|
  .form-group.import-url-data
    = f.label :import_url, class: 'control-label' do
      %span Import existing git repo
    .col-sm-10
      = f.text_field :import_url, class: 'form-control', placeholder: 'https://github.com/randx/six.git'
      .well.prepend-top-20
        This URL must be publicly accessible or you can add a username and password like this: https://username:password@gitlab.com/company/project.git.
        %br
        The import will time out after 4 minutes. For big repositories, use a clone/push combination.
        For SVN repositories, check #{link_to "this migrating from SVN doc.", "http://doc.gitlab.com/ce/workflow/importing/migrating_from_svn.html"}
  .form-actions
    = f.submit 'Start import', class: "btn btn-create", tabindex: 4


- can_remove_source_branch = local_assigns.fetch(:source_branch_exists, false) && @merge_request.can_remove_source_branch?(current_user)
- mr_can_be_reverted = @merge_request.can_be_reverted?(current_user)
- mr_can_be_cherry_picked = @merge_request.can_be_cherry_picked?

- if can_remove_source_branch || mr_can_be_reverted || mr_can_be_cherry_picked
  .clearfix.merged-buttons
    - if can_remove_source_branch
      = link_to namespace_project_branch_path(@merge_request.source_project.namespace, @merge_request.source_project, @merge_request.source_branch), remote: true, method: :delete, class: "btn btn-default btn-sm remove_source_branch" do
        = icon('trash-o')
        Remove Source Branch
    - if mr_can_be_reverted
      = revert_commit_link(@merge_request.merge_commit, namespace_project_merge_request_path(@project.namespace, @project, @merge_request), btn_class: "warning")
    - if mr_can_be_cherry_picked
      = cherry_pick_commit_link(@merge_request.merge_commit, namespace_project_merge_request_path(@project.namespace, @project, @merge_request), btn_class: "default")

Set “Remove branch” button to default size

- can_remove_source_branch = local_assigns.fetch(:source_branch_exists, false) && @merge_request.can_remove_source_branch?(current_user)
- mr_can_be_reverted = @merge_request.can_be_reverted?(current_user)
- mr_can_be_cherry_picked = @merge_request.can_be_cherry_picked?

- if can_remove_source_branch || mr_can_be_reverted || mr_can_be_cherry_picked
  .clearfix.merged-buttons
    - if can_remove_source_branch
      = link_to namespace_project_branch_path(@merge_request.source_project.namespace, @merge_request.source_project, @merge_request.source_branch), remote: true, method: :delete, class: "btn btn-default remove_source_branch" do
        = icon('trash-o')
        Remove Source Branch
    - if mr_can_be_reverted
      = revert_commit_link(@merge_request.merge_commit, namespace_project_merge_request_path(@project.namespace, @project, @merge_request), btn_class: "warning")
    - if mr_can_be_cherry_picked
      = cherry_pick_commit_link(@merge_request.merge_commit, namespace_project_merge_request_path(@project.namespace, @project, @merge_request), btn_class: "default")


- page_title    "Snippets"
- header_title  "Snippets", dashboard_snippets_path

= render 'dashboard/snippets_head'

.gray-content-block
  .pull-right
    = link_to new_snippet_path, class: "btn btn-new", title: "New Snippet" do
      = icon('plus')
      New Snippet

  .btn-group.btn-group-next.event-filter
    = link_to dashboard_snippets_path, class: "btn btn-default #{"active" unless params[:scope]}" do
      All
      %span.badge
        = current_user.snippets.count

    = link_to dashboard_snippets_path(scope: 'are_private'), class: "btn btn-default #{"active" if params[:scope] == "are_private"}" do
      Private
      %span.badge
        = current_user.snippets.are_private.count

    = link_to dashboard_snippets_path(scope: 'are_internal'), class: "btn btn-default #{"active" if params[:scope] == "are_internal"}" do
      Internal
      %span.badge
        = current_user.snippets.are_internal.count

    = link_to dashboard_snippets_path(scope: 'are_public'), class: "btn btn-default #{"active" if params[:scope] == "are_public"}" do
      Public
      %span.badge
        = current_user.snippets.are_public.count

= render 'snippets/snippets'

Change dashboard snippet index menu class to match test

- page_title    "Snippets"
- header_title  "Snippets", dashboard_snippets_path

= render 'dashboard/snippets_head'

.gray-content-block
  .pull-right
    = link_to new_snippet_path, class: "btn btn-new", title: "New Snippet" do
      = icon('plus')
      New Snippet

  .btn-group.btn-group-next.snippet-scope-menu
    = link_to dashboard_snippets_path, class: "btn btn-default #{"active" unless params[:scope]}" do
      All
      %span.badge
        = current_user.snippets.count

    = link_to dashboard_snippets_path(scope: 'are_private'), class: "btn btn-default #{"active" if params[:scope] == "are_private"}" do
      Private
      %span.badge
        = current_user.snippets.are_private.count

    = link_to dashboard_snippets_path(scope: 'are_internal'), class: "btn btn-default #{"active" if params[:scope] == "are_internal"}" do
      Internal
      %span.badge
        = current_user.snippets.are_internal.count

    = link_to dashboard_snippets_path(scope: 'are_public'), class: "btn btn-default #{"active" if params[:scope] == "are_public"}" do
      Public
      %span.badge
        = current_user.snippets.are_public.count

= render 'snippets/snippets'


!!! 5
%html
  %body
    %h1
      Hello!

    %p
      %a(href=@public_url) Here
      is the recording of today's call to #{@recording_metadata[:to]}. You called from #{@recording_metadata[:from]} at #{@recording_metadata[:time]}.

    %p
      This recording will be archived after 6 months. Once archived, it can still be accessed but will take a few hours to be retrieved.

    %p
      Thank you for using MoshiMoshi!


= form_tag(omniauth_callback_path(:user, server['provider_name']), id: 'new_ldap_user', class: "show-gl-field-errors") do
  .form-group
    = label_tag :username, "#{server['label']} Username"
    = text_field_tag :username, nil, {class: "form-control top", title: "This field is required.", autofocus: "autofocus", required: true }
  .form-group
    = label_tag :password
    = password_field_tag :password, nil, { class: "form-control bottom", title: "This field is required.", required: true }
  - if devise_mapping.rememberable?
    .remember-me.checkbox
      %label{for: "remember_me"}
        = check_box_tag :remember_me, '1', false, id: 'remember_me'
        %span Remember me
  = button_tag "Sign in", class: "btn-save btn btn-block"

Fix superfluous margin on new_ldap submit.

= form_tag(omniauth_callback_path(:user, server['provider_name']), id: 'new_ldap_user', class: "show-gl-field-errors") do
  .form-group
    = label_tag :username, "#{server['label']} Username"
    = text_field_tag :username, nil, {class: "form-control top", title: "This field is required.", autofocus: "autofocus", required: true }
  .form-group
    = label_tag :password
    = password_field_tag :password, nil, { class: "form-control bottom", title: "This field is required.", required: true }
  - if devise_mapping.rememberable?
    .remember-me.checkbox
      %label{for: "remember_me"}
        = check_box_tag :remember_me, '1', false, id: 'remember_me'
        %span Remember me
  = submit_tag "Sign in", class: "btn-save btn"


- if current_user
  %button.btn.btn-default.star-btn.toggle-star{ type: "button", data: { endpoint: toggle_star_project_path(@project, :json) } }
    - if current_user.starred?(@project)
      = sprite_icon('star')
      %span.starred= _('Unstar')
    - else
      = sprite_icon('star-o')
      %span= s_('StarProject|Star')
  .count-with-arrow
    %span.arrow
    %span.count.star-count
      = @project.star_count

- else
  = link_to new_user_session_path, class: 'btn has-tooltip star-btn', title: _('You must sign in to star a project') do
    = sprite_icon('star')
    #{ s_('StarProject|Star') }
  .count-with-arrow
    %span.arrow
    %span.count
      = @project.star_count

Remove extra whitespace in star project button

- if current_user
  %button.btn.btn-default.star-btn.toggle-star{ type: "button", data: { endpoint: toggle_star_project_path(@project, :json) } }>
    - if current_user.starred?(@project)
      = sprite_icon('star')
      %span.starred= _('Unstar')
    - else
      = sprite_icon('star-o')
      %span= s_('StarProject|Star')
  .count-with-arrow
    %span.arrow
    %span.count.star-count
      = @project.star_count

- else
  = link_to new_user_session_path, class: 'btn has-tooltip star-btn', title: _('You must sign in to star a project') do
    = sprite_icon('star')
    #{ s_('StarProject|Star') }
  .count-with-arrow
    %span.arrow
    %span.count
      = @project.star_count


Add rails_admin top navbar layout and link to home page

%ul.nav.navbar-nav.navbar-right.root_links
  - actions(:root).each do |action|
    %li{class: "#{action.action_name}_root_link"}= link_to wording_for(:menu, action), { action: action.action_name, controller: 'rails_admin/main' }, class: action.pjax? ? "pjax" : ""
  %li= link_to t('Home page'), main_app.store_url
  - if main_app_root_path = (main_app.root_path rescue false)
    %li= link_to t('admin.home.name'), main_app_root_path
  - if _current_user
    - if user_link = edit_user_link
      %li.edit_user_root_link= user_link
    - if logout_path.present?
      %li= link_to content_tag('span', t('admin.misc.log_out'), class: 'label label-danger'), logout_path, method: logout_method


- flash.each do |type, msg|
  - if msg.is_a?(String)
    .no-gutter{:class => "alert #{type} alert-dismissable fade in", :"data-alert" => "alert"}
      .row
        .container
          %button.close{"aria-hidden" => "true", "data-dismiss" => "alert", :type => "button"} ×
          %p
            = msg