<%
  type_class = case type.downcase
                when "new" then "govuk-tag--green"
                when "improved" then "govuk-tag--blue"
                when "changed" then "govuk-tag--red"
                when "fixed" then "govuk-tag--yellow"
               end
%>

<strong class="govuk-tag <%= type_class %>">
  <%= type %>
</strong>

<%
  type_class = case type.downcase
                when "new" then "govuk-tag--green"
                when "improvement" then "govuk-tag--blue"
                when "change" then "govuk-tag--red"
                when "fix" then "govuk-tag--yellow"
               end
%>

<strong class="govuk-tag <%= type_class %>">
  <%= type %>
</strong>

Update types to not use past tense

Update types to not use past tense

This makes the types work if the change is either an upcoming or recent changes.


My code challenges

<% @code_challenges.each do |code_challenge| %>
  <%= content_tag_for :section, code_challenge, class: "panel panel-default" do %>

      <%= code_challenge.goal.humanize %>:
      #<%= code_challenge.slug %>

        <%= link_to [:edit, code_challenge], class: "btn btn-default" do %>
           Edit
        <% end %>
        <%= link_to code_challenge, class: "btn btn-default" do %>
           View
        <% end %>
        <%= link_to code_challenge, class: "btn btn-default btn-danger-on-hover", method: :delete,
          data: { confirm: "Are you sure you want to remove this code challenge?\n(This action cannot be undone.)" } do %>

        <% end %>

          <%= render_code_snippet code_challenge.left_code_sample %>

          <%= render_code_snippet code_challenge.right_code_sample %>

  <% end %>
<% end %>

<% if @code_challenges.empty? %>

    You currently do not have any submitted code challenges. Why don't you submit one?

<% end %>

Add call-to-action for user with no code challenge


<%= form_tag product_chat_path(@product), method: :post do %>

      <%= avatar_tag(current_user, 30) %>

        <%= text_area_tag 'event_comment[body]', nil, class: 'form-control', rows: 1,
        placeholder: "Have a thought or question about #{@product.name}? We'd love to hear from you", disabled: (!signed_in?)  %>

<% end %>

<% unless signed_in? %>

<% end %>

<%= form_tag product_chat_path(@product), method: :post do %>

      <%= avatar_tag(current_user, 30) %>

        <% if signed_in? %>
          <%= text_area_tag 'event_comment[body]', nil, class: 'form-control', rows: 1 %>
      <% else %>
        <%= text_area_tag 'event_comment[body]', nil, class: 'form-control', rows: 1, placeholder: "Introduce yourself, we'd love to hear from you", disabled: true %>
      <% end %>

<% end %>

<% unless signed_in? %>

<% end %>

Fix chat box going onto multiple lines

Fix chat box going onto multiple lines


<%
  @owner_id = owner_id_line(@observation)
  @title = add_sequence_title(@observation)
  tabs = [
    link_with_query(:cancel_and_show.t(type: :observation),
                    @observation.show_link_args),
    link_with_query(:sequence_add_edit.t, controller: :observer,
                    action: :edit_observation, id: @observation.id)
  ]
  @tabsets = { right: draw_tab_set(tabs) }
%>

<%= form_for(:sequence, url: {action: :add_sequence}) do |form| %>
  <%= render(partial: "form_sequence", locals: {form: form}) %>
<% end %>

<%
  @owner_id = owner_id_line(@observation)
  @title = add_sequence_title(@observation)
  tabs = [link_with_query(:cancel_and_show.t(type: :observation),
                    @observation.show_link_args]
  @tabsets = { right: draw_tab_set(tabs) }
%>

<%= form_for(:sequence, url: {action: :add_sequence}) do |form| %>
  <%= render(partial: "form_sequence", locals: {form: form}) %>
<% end %>

Remove edit_observation link on add_sequence page

Makes no sense. This must have been an artifact of creating this file by copying create_observation template.


<% if announcements.items.present? %>
  <section id="announcements" dir="<%= page_text_direction %>" lang="<%= locale %>">
    <%= render "govuk_publishing_components/components/heading", {
        text: t("organisations.content_item.schema_name.announcement.other"),
        id: "announcements",
        margin_bottom: 5,
    } %>

    <%= render "govuk_publishing_components/components/subscription-links", {
        email_signup_link: announcements.links[:email_signup],
        feed_link: announcements.links[:subscribe_to_feed],
        margin_bottom: 5,
    } %>

    <%= render "govuk_publishing_components/components/document_list", {
        items: announcements.items
    } %>

      <%= link_to "View all announcements", announcements.links[:link_to_news_and_communications], class: "govuk-link" %>

<% end %>

<% if announcements.items.present? %>
  <section id="announcements" dir="<%= page_text_direction %>" lang="<%= locale %>">
    <%= render "govuk_publishing_components/components/heading", {
        text: t("organisations.content_item.schema_name.announcement.other"),
        lang: t_fallback("organisations.content_item.schema_name.announcement.other"),
        id: "announcements",
        margin_bottom: 5,
    } %>

    <%= render "govuk_publishing_components/components/subscription-links", {
        email_signup_link: announcements.links[:email_signup],
        feed_link: announcements.links[:subscribe_to_feed],
        margin_bottom: 5,
    } %>

    <%= render "govuk_publishing_components/components/document_list", {
        items: announcements.items
    } %>

      <%= link_to "View all announcements", announcements.links[:link_to_news_and_communications], class: "govuk-link", lang: "en" %>

<% end %>

Add lang attribute to announcements

Add lang attribute to announcements


      <%= @look_book.title %>

  <% if @look_book.look_book_images.none? %>

     <%= Spree.t(:no_look_book_images_found) %>

  <% else %>
  <% @look_book.look_book_images.each_with_index do |image, index| %>

      <section class="col-md-7 <%= 'col-md-push-5' if index.odd? %>">
        <%= image_tag image.attachment.url(:large), itemprop: "image", alt: "#{image.alt_text}", class: 'img-responsive c-look-book__image'  %>

      <section class="col-md-5 <%= 'col-md-pull-7' if index.odd? %>">

          <% image.spree_products.each do |product| %>

<%= product.name %>

<%= product.short_description %>

                <%= link_to spree.product_path(product), itemprop: "url" do %>
                  <%= "+ #{Spree.t(:buy_now)}" %>
                <% end %>

          <% end %>

    <% end %>
  <% end %>

Add look book show view for front end

Add look book show view for front end


Submitted Applications

Click on any application to see details.

    Business
    Applicant
    Submitted

  <% for application in @applications %>
    <tr class="<%= cycle("odd", "even") -%>">
      <%= application.user.answers.find_by_field_name('business_name').try(:value) %>

        <%= application.user.answers.find_by_field_name('applicant_first_name').try(:value) %>
        <%= application.user.answers.find_by_field_name('applicant_last_name').try(:value) %>

      <%= link_to 'View This Application →', admin_application_path(application), :class => 'btn btn-mini' %>

  <% end -%>

Submitted Applications

Click on any application to see details.

    Business
    Applicant

  <% for application in @applications %>
    <tr class="<%= cycle("odd", "even") -%>">
      <%= application.user.answers.find_by_field_name('business_name').try(:value) %>

        <%= application.user.answers.find_by_field_name('applicant_first_name').try(:value) %>
        <%= application.user.answers.find_by_field_name('applicant_last_name').try(:value) %>

      <%= link_to 'View', admin_application_path(application), :class => 'btn btn-mini' %>

  <% end -%>

Clean up applications list styling

Clean up applications list styling


Sign up

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
  <%= devise_error_messages! %>

<%= f.label :email %>

  <%= f.email_field :email %>

<%= f.label :first_name %>

  <%= f.text_field :first_name %>

<%= f.label :last_name %>

  <%= f.text_field :last_name %>

<%= f.label :password %>

  <%= f.password_field :password %>

<%= f.label :password_confirmation %>

  <%= f.password_field :password_confirmation %>

<%= f.submit "Sign up" %>

<% end %>

<%= render :partial => "devise/shared/links" %>

Sign up

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
  <%= devise_error_messages! %>

<%= f.label :email %>

  <%= f.email_field :email %>

We'll add you to the 40 Days mailing list if you're not already on it.

<%= f.label :first_name %>

  <%= f.text_field :first_name %>

<%= f.label :last_name %>

  <%= f.text_field :last_name %>

<%= f.label :password %>

  <%= f.password_field :password %>

<%= f.label :password_confirmation %>

  <%= f.password_field :password_confirmation %>

<%= f.submit "Sign up" %>

<% end %>

<%= render :partial => "devise/shared/links" %>

Add a note on contributor signup that we're adding them to the mailing list


[user]
  name = <%= print("Your Name: "); STDOUT.flush; STDIN.gets.chomp %>
  email = <%= print("Your Email: "); STDOUT.flush; STDIN.gets.chomp %>
[core]
  excludesfile = <%= ENV['HOME'] %>/.gitignore
  editor = subl -n -w
[pull]
  rebase = true
[push]
  default = current
[rebase]
  autosquash = true
  autostash = true
[alias]
  flog = log --oneline --abbrev-commit --graph --decorate --color
  fpush = push --force-with-lease
  peek = !git flog | head -5
  fall = fetch --all --prune
  wip = !git add --all . && git commit --message WIP
  hreset = reset --hard
  mark = !git tag --force $1 && git push --force origin
  reword = commit --amend
  fixup = !git add --all . && git reword --no-edit

[user]
  name = <%= print("Your Name: "); STDOUT.flush; STDIN.gets.chomp %>
  email = <%= print("Your Email: "); STDOUT.flush; STDIN.gets.chomp %>
[core]
  excludesfile = <%= ENV['HOME'] %>/.gitignore
  editor = subl -n -w
[pull]
  rebase = true
[push]
  default = current
[rebase]
  autosquash = true
  autostash = true
[status]
  showUntrackedFiles = all
[alias]
  flog = log --oneline --abbrev-commit --graph --decorate --color
  fpush = push --force-with-lease
  peek = !git flog | head -5
  fall = fetch --all --prune
  wip = !git add --all . && git commit --message WIP
  hreset = reset --hard
  mark = !git tag --force $1 && git push --force origin
  reword = commit --amend
  fixup = !git add --all . && git reword --no-edit

Make git-status show untracked files

Make git-status show untracked files


[user]
	name = <%= print("Your Name: "); STDOUT.flush; STDIN.gets.chomp %>
	email = <%= print("Your Email: "); STDOUT.flush; STDIN.gets.chomp %>
[alias]
	co = checkout
[color]
	diff = auto
	status = auto
	branch = auto
[core]
	excludesfile = <%= ENV['HOME'] %>/.gitignore
	editor = mate -w
	autocrlf = input
[apply]
	whitespace = nowarn
[format]
	pretty = %C(yellow)%h%Creset %s %C(red)(%cr)%Creset
[github]
	user = <%= print("GitHub Username: "); STDOUT.flush; STDIN.gets.chomp %>
	token = <%= print("GitHub API Token: "); STDOUT.flush; STDIN.gets.chomp %>

[user]
	name = <%= print("Your Name: "); STDOUT.flush; STDIN.gets.chomp %>
	email = <%= print("Your Email: "); STDOUT.flush; STDIN.gets.chomp %>
[alias]
	co = checkout
[color]
	diff = auto
	status = auto
	branch = auto
	interactive = auto
[core]
	excludesfile = <%= ENV['HOME'] %>/.gitignore
	editor = vim
	autocrlf = input
[apply]
	whitespace = nowarn
[format]
	pretty = %C(yellow)%h%Creset %s %C(red)(%cr)%Creset
[github]
	user = <%= print("GitHub Username: "); STDOUT.flush; STDIN.gets.chomp %>
	token = <%= print("GitHub API Token: "); STDOUT.flush; STDIN.gets.chomp %>

Add interactive color, change default editor


<% wrap_layout :layout do %>

<%= date %>

<%= title %>

<%= topic_list %>

    <% if soundcloud_id %>

        <iframe
          width="100%"
          height="450"
          scrolling="no"
          frameborder="no"
          src=<%= big_soundcloud_player %>

    <% end %>

    <% if interviewee %>

Other episodes with <a href="/tags/<%= dasherize(interviewee) %>.html"><%= interviewee %></a

    <% end %>

    <%= current_article.body %>

<% end %>

<% wrap_layout :layout do %>

<%= date %>

<%= title %>

<%= topic_list %>

    <% if soundcloud_id %>

        <iframe
          width="100%"
          height="450"
          scrolling="no"
          frameborder="no"
          src=<%= big_soundcloud_player %>>

    <% end %>

    <% if interviewee %>

Other episodes with <a href="/tags/<%= dasherize(interviewee) %>.html"><%= interviewee %></a

    <% end %>

    <%= current_article.body %>

<% end %>

Fix little typo that was hiding article body


[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
Type=forking
PIDFile=/var/run/redis/redis.pid

User=redis
Group=redis

RuntimeDirectory=redis
RuntimeDirectoryMode=0700

ExecStart=/usr/bin/redis-server <%= scope.lookupvar('redis_sentinel::config_file') %>
ExecStop=/usr/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target

[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
Type=forking
PIDFile=/var/run/redis/redis.pid

User=redis
Group=redis

RuntimeDirectory=redis
RuntimeDirectoryMode=0700

ExecStart=/usr/bin/redis-server <%= scope.lookupvar('redis_sentinel::config_file') %> --sentinel
ExecStop=/usr/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target

Add the missing --sentinel flag.

Add the missing --sentinel flag.


---
title:
nav: product
subnav:
description:
---

        <%= partial(:product_listing, :locals => { :product => product }) %>

      <%= partial(:side_well_fancy) %>

Fix panel border on product detail page.


<!DOCTYPE html>

    <title>App</title>
    <%= stylesheet_link_tag 'application' %>
    <%= csrf_meta_tag %>

          App

              <% if user_signed_in? %>

<%= link_to 'Home', root_path %>

<%= link_to 'Purchases', purchases_path %>

<%= link_to 'New Purchase', new_purchase_path %>

<%= link_to 'Tags', tags_path %>

              <% end %>

              <% if user_signed_in? %>

<%= link_to t('actions.logout'), destroy_user_session_path, :method => :delete %>

              <% end %>

      <% flash.each do |type, value| %>
        <div class="alert alert-<%= type.to_s %>">
          ×<%= value %>

      <% end %>
      <%= yield %>

    <%= javascript_include_tag 'application' %>

<!DOCTYPE html>

    <title>OrganizeApp</title>
    <%= stylesheet_link_tag 'application' %>
    <%= csrf_meta_tag %>

          OrganizeApp

              <% if user_signed_in? %>

<%= link_to 'Home', root_path %>

<%= link_to 'Purchases', purchases_path %>

<%= link_to 'New Purchase', new_purchase_path %>

<%= link_to 'Tags', tags_path %>

              <% end %>

              <% if user_signed_in? %>

<%= link_to t('actions.logout'), destroy_user_session_path, :method => :delete %>

              <% end %>

      <% flash.each do |type, value| %>
        <div class="alert alert-<%= type.to_s %>">
          ×<%= value %>

      <% end %>
      <%= yield %>

    <%= javascript_include_tag 'application' %>

Rename App to OrganizeApp at application layout


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  <title>Address Book</title>

  <%= stylesheet_link_tag 'stylesheet', 'jquery.fancybox-1.3.1', 'http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/soria/soria.css' %>
  <%= csrf_meta_tag %>
</head>

<body class="soria">
  <img alt="spinner" id="spinner" class="spinner_img" src="/images/spinner.gif" style="visibility:hidden;"/>
  <%= yield :layout %>
</body>

<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js" djConfig="parseOnLoad: true"></script>
<%= javascript_include_tag :defaults, 'jquery.fancybox-1.3.1.pack' %>

</html>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  <title>Address Book</title>

  <%= stylesheet_link_tag 'stylesheet', 'jquery.fancybox-1.3.1', 'http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/soria/soria.css' %>
  <%= csrf_meta_tag %>
</head>

<body class="soria">
  <img alt="spinner" id="spinner" class="spinner_img" src="/images/spinner.gif" style="visibility:hidden;"/>
  <%= yield :layout %>

  <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js" djConfig="parseOnLoad: true"></script>
  <%= javascript_include_tag :defaults, 'jquery.fancybox-1.3.1.pack' %>
</body>

</html>

Put script tags inside the page body

Put script tags inside the page body


  <% if @solve.puzzle.garronizable? %>

      <a href="<%=h garronize(@solve) %>">View on alg.garron

  <% end %>

  <% if @solve.puzzle.name =~ /3x3/ && !@solve.scramble.blank? %>

      <a href=<%=h ksim_link(@solve) %> target="_blank" >
        Try scramble on kSim

  <% end %>

  <% unless @solve.youtube.nil? || @solve.youtube.empty? %>

      <a href="http://www.youtube.com/watch?v=<%=h @solve.youtube %>" target="_blank" >
        View on YouTube

  <% end %>

  <% unless @solve.average.source_url.blank? %>
    <a href="<%= @solve.average.source_url %>">
      View source

  <% end %>

  <% if @solve.puzzle.garronizable? %>

      <%= link_to "alg.garron", garronize(@solve), target: "_blank" %>

  <% end %>

  <% if @solve.puzzle.name =~ /3x3/ && !@solve.scramble.blank? %>

      <%= link_to "kSim", ksim_link(@solve), target: "_blank" %>

  <% end %>

  <% unless @solve.youtube.nil? || @solve.youtube.empty? %>

      <%= link_to "YouTube",
        "http://www.youtube.com/watch?v=#{h @solve.youtube}",
      target: "_blank" %>

  <% end %>

  <% unless @solve.average.source_url.blank? %>

      <%= link_to "Source", @solve.average.source_url,
        target: "_blank" %>

  <% end %>

Make all links open in new window

Make all links open in new window


  <%= resource_class %> <%= resource.id %>
  <%= link_to 'Edit', [:edit, :admin, resource], class: "btn btn-primary" %>

  <% resource.attributes.sort.each do |key, value| %>

    <%= resource_class.human_attribute_name(key) %>
    <%= value %>

  <% end %>

  <%= resource_class %> <%= resource.id %>
  <%= link_to 'Edit', [:edit, :admin, resource], class: "btn btn-primary" %>
  <%= link_to [:new, :admin, resource_class.to_s.underscore.to_sym], class: 'btn btn-primary pull-right' do %>
     Lägg till ny
  <% end %>

  <% resource.attributes.sort.each do |key, value| %>

    <%= resource_class.human_attribute_name(key) %>
    <%= value %>

  <% end %>

Add option to insert new record on Show page


<%= link_to "Qualification Viewer", root_path %>

Qualifications

<% countries = [] %>
<% @qualifications.order("name").each do |qualification| %>
  <% countries.push(qualification.country) %>
<% end %>

<% countries.uniq! %>

<% countries.sort! {|a,b| a && b ? a <=> b : a ? -1 : 1 } %>

<% countries.each do |country| %>
  <% if country.nil? %>

Other

  <% else %>

 <%= country %>

  <% end %>

  <% @qualifications.order("name").each do |qualification| %>
    <% if qualification.country == country %>

<%= link_to "#{qualification.name}", qualification_path(qualification) %>

    <% end %>
  <% end %>

<% end %>

<%= link_to "QualificationsViewer", root_path %>

Qualifications

    <% countries = [] %>
    <% @qualifications.order("name").each do |qualification| %>
      <% countries.push(qualification.country) %>
    <% end %>

    <% countries.uniq! %>

    <% countries.sort! {|a,b| a && b ? a <=> b : a ? -1 : 1 } %>

    <% countries.each do |country| %>

        <% if country.nil? %>

Other

        <% else %>

 <%= country %>

        <% end %>

	  <% @qualifications.order("name").each do |qualification| %>
	    <% if qualification.country == country %>

<%= link_to "#{qualification.name}", qualification_path(qualification) %>

	    <% end %>
	  <% end %>

    <% end %>

Create divs in index view

Create divs in index view


<!DOCTYPE html>

  <title>Gnite</title>
  <%= stylesheet_link_tag :all, :recursive => true %>
  <%= csrf_meta_tag %>

<body class="<%= body_class %>">

    <% if current_user %>
      <%= render :partial => 'shared/navigation' %>
    <% end %>

      <% if content_for?(:header) %>

<%= yield :header %>

      <% end %>

      <%= yield %>

    <%= render :partial => 'shared/javascript' %>

<!DOCTYPE html>

  <title>Gnite</title>
  <%= stylesheet_link_tag :all, :recursive => true %>
  <%= csrf_meta_tag %>

<body class="<%= body_class %>">

    <% if current_user %>
      <%= render :partial => 'shared/navigation' %>
    <% end %>

      <% if content_for?(:header) %>

<%= yield :header %>

      <% end %>

      <%= render :partial => 'shared/flashes' -%>
      <%= yield %>

    <%= render :partial => 'shared/javascript' %>

Fix regression: Add shared/flashes partial to master_trees layout


<% description = local_assigns.fetch(:description, '') %>
<% description = truncate(ActionView::Base.full_sanitizer.sanitize(description), length: 140) %>
<% if local_assigns[:share_title].present? %>

<%= share_title %>

<% end %>

  <%= social_share_button_tag("#{title} #{setting['twitter_hashtag']} #{setting['twitter_handle']}",
                              url: local_assigns[:url],
                              image: local_assigns.fetch(:image_url, ''),
                              desc: description,
                              'data-twitter-title': local_assigns[:mobile],
                              'data-telegram-title': local_assigns[:mobile])%>
  <a href="whatsapp://send?text=<%= local_assigns[:mobile]%> <%= url %>"
     class="show-for-small-only" data-action="share/whatsapp/share">

    <%= t("social.whatsapp") %>

<% description = local_assigns.fetch(:description, '') %>
<% description = truncate(ActionView::Base.full_sanitizer.sanitize(description), length: 140) %>
<% mobile = local_assigns[:mobile] %>
<% mobile_url = mobile.present? ? "#{mobile.gsub(/\s+/, '%20')}%20" : "" %>

<% if local_assigns[:share_title].present? %>

<%= share_title %>

<% end %>

  <%= social_share_button_tag("#{title} #{setting['twitter_hashtag']} #{setting['twitter_handle']}",
                              url: local_assigns[:url],
                              image: local_assigns.fetch(:image_url, ''),
                              desc: description,
                              'data-twitter-title': local_assigns[:mobile],
                              'data-telegram-title': local_assigns[:mobile])%>
  <a href="whatsapp://send?text=<%= mobile_url %><%= url %>"
     class="show-for-small-only" data-action="share/whatsapp/share">

    <%= t("social.whatsapp") %>

Replace spaces to %20 on whatsapp share url

This avoid have an invalid href with spaces.


  <% @products.each do |product| %>

<%= product["name"] %>

<%= product["price"] %>

  <% end %>

  <% @products.each do |product| %>

<a href="/products/<%= product['slug'] %>"><%= product["name"] %>

<%= product["price"] %>

  <% end %>

Add links to the product list

Add links to the product list


F13 to copy & F14 to paste

F13 to Copy

F14 to Paste

Shift-F14 to Paste and Match Style

F15 to Paste and Match Style

Add rules for using Fn keys for copy & paste

F13 to Copy
F14 to Paste
⇧F14 to Paste and Match Style
F15 to Paste and Match Style

These are especially useful if you're on a full-sized Apple keyboard
(like the iMac Pro keyboard) or if you mouse on the left so your left
hand isn't always in position to hit the ⌘ shortcuts.


Analytics

<%= link_to "All",analytics_all_path %> | <%= link_to "Filter",analytics_filter_path %> | <%= link_to "Group",analytics_group_path %>

To filter data to be imported for analysis, put the JSON body in the text box below and click the button

<textarea id="body_data" cols="60" rows="10"></textarea>

<button type="button" onclick="analyzeFiltered()">Analyse Filtered Data</button>

 Sample Body

{
  "filter" : {
    "username" : ["peeyush"]
  }
}

 Brief Description

{
  "filter" : {
    "activity" : [list of activities],
    "application" : [list of applications],
    "username" : [list of usernames],
    "time" : ["start time","end time"],
    "parameters" : {
      "keys" : [list of keys],
      "pairs": {list of key-value pairs. Eg. {"teacher":"X"},{"level":"5"}}
    }
    "extras" : {
      "keys" : [list of keys],
      "pairs": {list of key-value pairs. Eg. {"teacher":"X"},{"level":"5"}}
    }
  }
}

Add description of Filter functionality in DataInteractive


<%= form_for Spree::User.new, :as => :spree_user, :url => spree.create_new_session_path do |f| %>

      <%= f.label :email, Spree.t(:email) %>

      <%= f.email_field :email, :class => 'title', :tabindex => 1 %>

      <%= f.label :password, Spree.t(:password) %>

      <%= f.password_field :password, :class => 'title', :tabindex => 2 %>

    <%= f.check_box :remember_me, :tabindex => 3 %>
    <%= f.label :remember_me, Spree.t(:remember_me) %>

<%= f.submit Spree.t(:login), :class => 'button primary', :tabindex => 4 %>

<% end %>

<%= form_for Spree::User.new, :as => :spree_user, :url => spree.create_new_session_path do |f| %>

      <%= f.label :email, Spree.t(:email) %>

      <%= f.email_field :email, :class => 'title', :tabindex => 1, autofocus: true %>

      <%= f.label :password, Spree.t(:password) %>

      <%= f.password_field :password, :class => 'title', :tabindex => 2 %>

    <%= f.check_box :remember_me, :tabindex => 3 %>
    <%= f.label :remember_me, Spree.t(:remember_me) %>

<%= f.submit Spree.t(:login), :class => 'button primary', :tabindex => 4 %>

<% end %>

Add autofocus to login form

Add autofocus to login form

Springing from the discussion in https://github.com/spree/spree/issues/4715, this change allows the HTML5 `autofocus` attribute to put the cursor into the email field when displaying the login screen, which removes one step from the user login process.

Closes #190


<!DOCTYPE html>

  <%= stylesheet_link_tag    "application", media: "all", "data-turbolinks-track" => true %>
  <%= javascript_include_tag "application", "data-turbolinks-track" => true %>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

Dear <%= @nominee %>,

  Congratulations!
  <%= if @nominator.blank?
        'Someone'
      else
        @nominator
      end %>
  thinks you would be a great fit for the Vanderbilt Performing Arts Council Executive Board for 2014-2015. If you have
  not already started the application, please consider doing so today. The form is located
  on <%= link_to 'Anchor Link', 'https://anchorlink.vanderbilt.edu/form/start/37861' %> and is due by
  Wednesday, March 19, at midnight. If you have any questions, please email VPAC President Emily Welter at
  emily.e.welter@vanderbilt.edu.

  Best,

  VPAC Executive Board

Remove extra whitespace in nomination mailer


server {
  listen 51000;
  server_name <%= all_domains.join(" ") %>;

  # Write the real client IP when it's passed via X-Forwarded-For from HAProxy.
  set_real_ip_from 127.0.0.1;
  real_ip_header X-Forwarded-For;

  access_log <%= current_path %>/log/access.log combined;
  error_log <%= current_path %>/log/error.log;

  root <%= current_path %>/public;

  # Serve this rails site with Passenger.
  passenger_enabled on;

  # Set the current environment.
  rails_env <%= rails_env %>;

  # Allow for larger request bodies to allow for huge documentation pages.
  client_max_body_size 10m;
}

server {
  listen 51000;
  server_name <%= all_domains.join(" ") %>;

  # Write the real client IP when it's passed via X-Forwarded-For from HAProxy.
  set_real_ip_from 127.0.0.1;
  real_ip_header X-Forwarded-For;

  access_log <%= current_path %>/log/access.log combined;
  error_log <%= current_path %>/log/error.log;

  root <%= current_path %>/public;

  # Serve this rails site with Passenger.
  passenger_enabled on;

  # Set the current environment.
  rails_env <%= rails_env %>;

  # Allow for larger request bodies to allow for huge documentation pages.
  client_max_body_size 10m;

  # FIXME: Some static end points for temporary benchmarking.
  location /api/api-users/benchmark {
    default_type text/plain;
    echo "Hello World";
    echo_flush;
  }

  location /api/api-users/benchmark_cached {
    default_type text/plain;
    expires 24h;
    echo "Hello World";
    echo_flush;
  }

  location /api/api-users/benchmark_delayed {
    default_type text/plain;
    echo_sleep 5;
    echo "Hello World";
    echo_flush;
  }

  location /api/api-users/benchmark_delayed_cached {
    default_type text/plain;
    expires 24h;
    echo_sleep 0.5;
    echo "Hello World";
    echo_flush;
  }
}

Add some temporary benchmark endpoints.

Add some temporary benchmark endpoints.


<% content_for :title_bar do %>

<%= t('.listing projects') %>

<% end %>

  <% @projects.each do |project| %>

        <%= link_to t('edit'), edit_project_path(project) %>
        <%= link_to User.model_name.human(:count => 2), project_users_path(project) %>
        <%= link_to t('delete'), project,
          :data => {:confirm => t('.are you sure you want to delete this project')},
          :method => :delete %>

<%= link_to project.name, project %>

      <%= Project.human_attribute_name('started_at') %>:
      <%= project.start_date %>

      <%= t('.the iteration starts on x with length of x weeks',
            :day    => t('date.day_names')[project.iteration_start_day],
            :count  => project.iteration_length) %>

  <% end %>

<%= link_to t('projects.new project'), new_project_path, :class => :button %>
<%= RUBY_VERSION %>:<%= Rails.version %>

Add ruby and rails version number

Add ruby and rails version number


    <%= link_to home_path do %>

<%= CONFIG["project_name"] %>

<%= CONFIG["project_subtitle"] %>

    <% end %>

  <%= render partial: "layouts/body/navbar" %>

    <%= link_to home_path do %>

<%= CONFIG["project_name"] %>

    <% end %>

<%= CONFIG["project_subtitle"] %>

  <%= render partial: "layouts/body/navbar" %>

Fix position of header subtitle

Fix position of header subtitle


<% title ||= "GRID-Arendal Website" %>
<% description ||= "GRID-Arendal is a Norwegian foundation working closely with the United Nations Environment. We are working on projects all around the world on biodiversity, environmental crime, climate change and Indigenous Peoples." %>
<% img_src ||= image_url("header#{[1,2,3,4,5,6,7].shuffle.first}.jpg") %>

<meta itemprop="name" content="<%= title %>">
<meta itemprop="description" content="<%= description %>">
<meta itemprop="image" content="<%= img_src %>">

<!-- Twitter Card data -->
<meta name="twitter:site" content="@GRIDArendal"/>
<meta name="twitter:title" content="<%= title %>"/>
<meta name="twitter:creator" content="@GRIDArendal"/>
<meta name="twitter:description" content="<%= description %>"/>
<meta name="twitter:card" content="summary"/>
<meta name="twitter:image" content="<%= img_src %>"/>

<!-- Open Graph data -->
<meta property="og:title" content="<%= title %>"/>
<meta property="og:type" content="<%= action_name == "index" ? "website" : "article" %>"/>
<meta property="og:url" content="<%= request.original_url %>"/>
<meta property="og:image" content="<%= img_src %>"/>
<meta property="og:description" content="<%= description %>"/>

<% title ||= "GRID-Arendal Website" %>
<% description = description.present? ? strip_tags(description) : "GRID-Arendal is a Norwegian foundation working closely with the United Nations Environment. We are working on projects all around the world on biodiversity, environmental crime, climate change and Indigenous Peoples." %>
<% img_src ||= image_url("header#{[1,2,3,4,5,6,7].shuffle.first}.jpg") %>

<meta itemprop="name" content="<%= title %>">
<meta itemprop="description" content="<%= description %>">
<meta itemprop="image" content="<%= img_src %>">

<!-- Twitter Card data -->
<meta name="twitter:site" content="@GRIDArendal"/>
<meta name="twitter:title" content="<%= title %>"/>
<meta name="twitter:creator" content="@GRIDArendal"/>
<meta name="twitter:description" content="<%= description %>"/>
<meta name="twitter:card" content="summary"/>
<meta name="twitter:image" content="<%= img_src %>"/>

<!-- Open Graph data -->
<meta property="og:title" content="<%= title %>"/>
<meta property="og:type" content="<%= action_name == "index" ? "website" : "article" %>"/>
<meta property="og:url" content="<%= request.original_url %>"/>
<meta property="og:image" content="<%= img_src %>"/>
<meta property="og:description" content="<%= description %>"/>

Remove all HTML tags from the meta og description


      User Email
      Last Login
      Associated Organisation
      Pending Organisation

    <% @users.each do |user| %>
        <tr id="<%= user.id %>" class="actions-right">
          <%= user.email %>
          <%= time_ago_in_words_with_nils(user.last_sign_in_at) %>
          <%= user.organisation.name if user.organisation %>

            <% if user.pending_organisation %>
                <%= user.pending_organisation.name %>
            <% end %>

            <%= link_to(user_reports_path(id: user.id), :method => :delete, :class => "btn btn-small btn-danger pull-right") do %>
                 Delete
            <% end %>
            <% if user.pending_organisation %>
                <%= link_to(user_report_path(id: user.id), :method => :put, :class => "btn btn-small btn-success pull-right") do %>
                     Approve
                <% end %>
            <% end %>

    <% end %>

      User Email
      Deleted
      Associated Organisation
      Pending Organisation

    <% @users.each do |user| %>
        <tr id="<%= user.id %>" class="actions-right">
          <%= user.email %>
          <%= time_ago_in_words_with_nils(user.deleted_at) %>
          <%= user.organisation.name if user.organisation %>

            <% if user.pending_organisation %>
                <%= user.pending_organisation.name %>
            <% end %>

            <%= link_to(nil, :method => :get, :class => "btn btn-small btn-danger pull-right") do %>
                 Restore User
            <% end %>

    <% end %>

Revise listing page for deleted users

Revise listing page for deleted users


<?xml version="1.0" encoding="UTF-8" ?>
<% coder = HTMLEntities.new %>
<rss version="2.0">
  <channel>
    <title>lobste.rs<%= @title.present? ? ": " + h(@title) : "" %></title>
    <description><%= @title %></description>
    <link><%= root_url + (@newest ? "newest" : "") %></link>

    <% @stories.each do |story| %>
      <item>
        <title><%= raw coder.encode(story.title, :decimal) %></title>
        <link><%= story.url_or_comments_url %></link>
        <guid isPermaLink="false"><%= story.short_id_url %></guid>
        <author><%= story.user.username %></author>
        <pubDate><%= story.created_at.rfc2822 %></pubDate>
        <comments><%= story.comments_url %></comments>
        <% if story.markeddown_description.present? %>
          <description><%= raw coder.encode(story.markeddown_description,
            :decimal) %></description>
        <% end %>
        <% story.taggings.each do |tagging| %>
          <category><%= tagging.tag.tag %></category>
        <% end %>
      </item>
    <% end %>
  </channel>
</rss>

<?xml version="1.0" encoding="UTF-8" ?>
<% coder = HTMLEntities.new %>
<rss version="2.0">
  <channel>
    <title>lobste.rs<%= @title.present? ? ": " + h(@title) : "" %></title>
    <description><%= @title %></description>
    <link><%= root_url + (@newest ? "newest" : "") %></link>

    <% @stories.each do |story| %>
      <item>
        <title><%= raw coder.encode(story.title, :decimal) %></title>
        <link><%= story.url_or_comments_url %></link>
        <guid isPermaLink="false"><%= story.short_id_url %></guid>
        <author><%= story.user.username %></author>
        <pubDate><%= story.created_at.rfc2822 %></pubDate>
        <comments><%= story.comments_url %></comments>
        <% if story.markeddown_description.present? %>
          <description><%= raw coder.encode(story.markeddown_description,
            :decimal) %></description>
        <% else %>
          <description><%= cdata_section(link_to("Comments", story.comments_url)) %></description>
        <% end %>
        <% story.taggings.each do |tagging| %>
          <category><%= tagging.tag.tag %></category>
        <% end %>
      </item>
    <% end %>
  </channel>
</rss>

Add default description, which points to comments


# Managing Step Dependencies

- buildkite creates dependencies, there's shortcuts like wait and block
- but can explicitly declare dependencies with depends_on

- can do empty deps to declare that something has no deps (~ or empty array)
`blah.sh` won't wait for `test.sh`, but `waiter.sh` will

```
steps:
  - command: "test.sh"
  - wait
  - command: "blah.sh"
    depends_on: ~
  - command: "waiter.sh"
```

- waits have implicit deps on everything before it, everything after the waits have implicit deps on the wait

```
steps:
  # runs right away
  - command: "test1.sh"

  # runs right away
  - key: t2
    command: "test2.sh"

  - wait

  # runs right away since it has no deps
  - command: "blah.sh"
    depends_on: ~

  # waits for test1 and test2
  - command: "waiter.sh"

  # waits on test2 only
  - command: "partial-waiter.sh"
    depends_on: t2
```

- new type of step: input
steps:
  - input: "ask for input"

- input steps are the same as block steps, but they don't block, can have explicit deps with depends_on

Add pre-outline notes and examples

Add pre-outline notes and examples


<%= render "header" %>

React Rails Server Rendering

<%= react_component("HelloWorld", @app_props_server_render, prerender: false, trace: true, generator_function: true) %>

<%= render "header" %>

React Rails Server Rendering

<%= react_component("HelloWorld", @app_props_server_render, prerender: false, trace: true, generator_function: false) %>

Fix generator_function setting in focused view


<!DOCTYPE html>
<html lang="<%= t("hyrax.document_language", default: '') %>" prefix="og:http://ogp.me/ns#">

    <%= render partial: 'layouts/head_tag_content' %>
    <%= content_for(:head) %>

    Skip to Content
    <%= render '/masthead' %>
    <%= content_for(:navbar) %>
    <%= content_for(:precontainer_content) %>

        <%= render '/flash_msg' %>
        <%= render_breadcrumbs builder: Hyrax::BootstrapBreadcrumbsBuilder %>
        <% if content_for?(:page_header) %>

              <%= yield(:page_header) %>

        <% end %>

        <%= content_for?(:content) ? yield(:content) : yield %>

    <%= render 'shared/footer' %>
    <%= render 'shared/ajax_modal' %>

Remove an unnecessary wrapping div

Remove an unnecessary wrapping div

`col-*-*` classes are only supposed to be children of `rows` per
bootlint.  This one was not.


  mallard

    About
    Sign Up
    Sign In
    Sign Out

Share your holy experience

      <%= render template: "accounts/new" %>

  mallard

    About
    Sign up
    Sign in
    Sign out

Share your holy experience

      <%= render template: "accounts/new" %>

Edit view of welcome page.

Edit view of welcome page.


<%= render 'requests/new_request_form', request: Request.new %>
<%= button_to 'Group Activity', river_path, method: 'get' %>
<%= button_to 'Active Requests', active_path, method: 'get' %>
<%= button_to 'Your History', history_path, method: 'get' %>

Add welcome view with new request form and options for river


server {
    listen   80;
    server_name  <%= @config['fqdn'] %>;

    access_log  /var/log/nginx/<%= @config['fqdn'] %>.access.log;
    error_log /var/log/nginx/<%= @config['fqdn'] %>.error.log

    root /srv/<%= @config['fqdn'] %>/src/public;
    index /index.php;

    client_max_body_size 1m;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ .(php|phtml)$ {
        fastcgi_pass 127.0.0.1:9000
        fastcgi_index /index.php;
        fastcgi_buffers 8 4k;
        fastcgi_buffer_size 4k;
        fastcgi_connect_timeout 60s;
        fastcgi_read_timeout 60s;
        include fastcgi_params;
    }
}

Add new template for microservices

Add new template for microservices


<%- if file.nil? -%>
Not available
<%- else -%>
<a href="<%= file.url %>"><%= file.destination_path %>
<%- end -%>

<%- if file.nil? -%>
Not available
<%- else -%>
<%= link_to file.destination_path, file, :relative => true %>
<%- end -%>

Use relative links so they'll work on github pages


[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target

[Service]
Type=forking
Restart=on-failure
PIDFile=<%= @pidfile %>
KillMode=control-group
ExecStart=/usr/sbin/zabbix_agentd -c <%= @agent_configfile_path %>
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s

[Install]
WantedBy=multi-user.target

[Unit]
Description=Zabbix Agent
After=network.target

[Service]
Type=simple
Restart=on-failure
PIDFile=<%= @pidfile %>
KillMode=control-group
ExecStart=/usr/sbin/zabbix_agentd -c <%= @agent_configfile_path %>
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s

[Install]
WantedBy=multi-user.target

Enhance the systemd unit template

Enhance the systemd unit template

there is no need to require the syslog target. Also the agent doesn't
fork, simple is correct.


    <% page_articles.each do |article| %>

<%= link_to article.title, article %>

          <% if article.data.topic_list %>

<%= article.data.topic_list %>

          <% end %>

          <% if article.data.contentful_id %>
            <%= partial "partials/index-list-contentful-image", :locals => { :article => article } %>

          <% elsif article.data.vimeo_id %>
            <%= partial "partials/index-list-item-vimeo",       :locals => { :article => article } %>

          <% elsif article.data.soudcloud_id %>
            <%= partial "partials/index-list-item-audio",       :locals => { :article => article } %>
          <% end %>

<%= article.date.strftime('%b %d | %Y') %>

    <% end %>

    <% page_articles.each do |article| %>

<%= link_to article.title, article %>

        <% if article.data.topic_list %>

<%= article.data.topic_list %>

        <% end %>

        <% if article.data.contentful_index_pic %>
          <%= partial "partials/index-list-contentful-image", :locals => { :article => article } %>

        <% elsif article.data.vimeo_id %>
          <%= partial "partials/index-list-item-vimeo",       :locals => { :article => article } %>

        <% elsif article.data.soundcloud_id %>
          <%= partial "partials/index-list-item-audio",       :locals => { :article => article } %>

        <% end %>

<%= article.date.strftime('%b %d | %Y') %>

    <% end %>

<%-#  else -%>
<%-# article.summary(250) -%>
<%-# link_to 'Read more…', article   -%>
<%-# end  -%>

Improve structure and logic of index list

Date on bottom for each article entry
Loop looks for separate_index_pic
Fix little els elsif bug


location /__canary__ {
  add_header cache-control \"max-age=0,no-store,no-cache\";
}

location /robots.txt {
  expires 1w;
}

location ~ ^/media/ {
  proxy_set_header Host <%= @asset_manager_host %>;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-Server $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Host $host;
  proxy_pass <%= @enable_ssl ? 'https' : 'http' %>://<%= @asset_manager_host %>;

  # Explicitly re-include Strict-Transport-Security header, this
  # forces nginx not to clear Cache-Control headers further up the
  # stack.
  include /etc/nginx/add-sts.conf;
}

location /static/overseas-passport/OS_Payment_Instruction.pdf {
  expires max;
  add_header cache-control 'public';
  return 301 <%= @website_root %>/government/publications/overseas-passport-creditdebit-card-payment-authorisation;
}

location /__canary__ {
  add_header cache-control "max-age=0, no-store, no-cache";
}

location /robots.txt {
  expires 1w;
}

location ~ ^/media/ {
  proxy_set_header Host <%= @asset_manager_host %>;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-Server $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Host $host;
  proxy_pass <%= @enable_ssl ? 'https' : 'http' %>://<%= @asset_manager_host %>;

  # Explicitly re-include Strict-Transport-Security header, this
  # forces nginx not to clear Cache-Control headers further up the
  # stack.
  include /etc/nginx/add-sts.conf;
}

location /static/overseas-passport/OS_Payment_Instruction.pdf {
  expires max;
  add_header cache-control 'public';
  return 301 <%= @website_root %>/government/publications/overseas-passport-creditdebit-card-payment-authorisation;
}

Remove escaped quotes in Canary block

Remove escaped quotes in Canary block

When used in a template, quotes are taken literally. This is different
behaviour than when this is used in a manifest.

Remove quotes, make it work.


Listing Confidential Morbidity Reports

<% for event in @events %>

    <%= event.event_name %>, <%= event.event_onset_date %> <%= l event.event_status %>
    <%= link_to 'Show', cmr_path(event) %>
    <%= link_to 'Edit', edit_cmr_path(event) %>
    <%= link_to 'Destroy', cmr_path(event), :confirm => 'Are you sure?', :method => :delete %>

<% end %>

<%= link_to 'New Morbidity Report', new_cmr_path %>
<%= link_to 'Export To CSV', url_for(:action => 'index', :format => 'csv') %>

Put the link for Export to CSV back on CMRs.

git-svn-id: 105a8f2fe5eb3dca76b21e204c69f6587dfa9961@342 b21a84b9-e453-0410-92a3-c4f515f7ae45


'use strict'

WebFont.load
  google:
    families: [
    ]
  custom:
    families: [
      'foundation-icons'
    ]
    urls: [
      'https://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.min.css'
    ]
    testStrings:
      'foundation-icons': '\uf100\uf101\uf102\uf103'

'use strict'

WebFont.load
  google:
    families: [
      'Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900,900italic:latin'
    ]
  custom:
    families: [
      'foundation-icons'
    ]
    urls: [
      'https://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.min.css'
    ]
    testStrings:
      'foundation-icons': '\uf100\uf101\uf102\uf103'

Add missing font loading entry

Add missing font loading entry

Suggested by Evan Sosenko in
https://github.com/razor-x/jekyll-and-zurb/issues/6

Suggested-by: Evan Sosenko <a67ed6a1087d25201d50318213760ef4657fda27@evansosenko.com>


<% if current_user %>

You are signed in as <%= link_to current_user.username, user_resources_path(current_user) %>!

<% end %>

<% if current_user %>

You are signed in as <%= link_to current_user.username, user_path(current_user) %>!

<% end %>

Change resource_path to user_path for username link.


<%= render 'form' %>

<% if @result.empty? %>
No results found.
<% else %>

      <% @result.fields.each do |field| %>
        <%= field %>
      <% end %>

    <% @result.each do |row| %>

	<% row.each do |cell| %>
          <%= cell %>
	<% end %>

    <% end %>

<% end %>

<%= render 'form' %>

      <% @result.fields.each do |field| %>
        <%= field %>
      <% end %>

    <% @result.each do |row| %>

	<% row.each do |cell| %>
          <%= cell %>
	<% end %>

    <% end %>

Check for empty report result does not work.


<% unless current_user %>

<%= link_to 'Login', new_session_path, class: 'pure-menu-link' %>

<%= link_to 'Register', new_user_path, class: 'pure-menu-link' %>

<% else %>

<%= link_to "#{current_user.username}", user_path(current_user), class: 'pure-menu-link' %>

<%= link_to 'Logout', session_path(current_user), method: :delete, class: 'pure-menu-link' %>

<% end %>

<% unless current_user %>

<%= link_to 'Login', new_session_path, class: 'pure-menu-link' %>

<%= link_to 'Register', new_user_path, class: 'pure-menu-link' %>

<% else %>

<%= link_to "#{current_user.username}", user_path(current_user), class: 'pure-menu-link' %>

<%= link_to "Groups", groups_path, class: 'pure-menu-link'%>

<%= link_to 'Logout', session_path(current_user), method: :delete, class: 'pure-menu-link' %>

<% end %>

Add Group link to menu bar for logged in members


<% if edition.can_create_new_edition? && (edition.class == edition_class) %>
  <form method="post" action="<%= duplicate_edition_path(@resource, from: edition_class.to_s)%>" >
    <div class="form-group">
    <%= label_tag :to, "Create as new" %>
    <%= select_tag :to, options_for_select(to_classes.map { |c| [c.model_name.titleize, c.to_s] }.sort!), class: "form-control input-md-3"%>
    </div>
    <input type="submit" value="Change format" class="btn btn-default">
  </form>
<% end %>

<% if edition.can_create_new_edition? && (edition.class == edition_class) %>

No content will be lost, but content in some fields might not make it into the new edition. If it can't be copied to a new format it will still be available in the previous edition. Content in multiple fields might be combined into a single field.

  <% if @edition.respond_to?(:parts) %>

All parts of Guide Editions and Programme Editions will be copied across. If the format you are converting to doesn't have parts, the content of all the parts will be copied into the body, with the part title displayed as a top-level sub-heading.

  <% end %>

  <form method="post" action="<%= duplicate_edition_path(@resource, from: edition_class.to_s)%>" >

    <%= label_tag :to, "Create as new" %>
    <%= select_tag :to, options_for_select(to_classes.map { |c| [c.model_name.titleize, c.to_s] }.sort!), class: "form-control input-md-3"%>

    <input type="submit" value="Change format" class="btn btn-default">

  </form>
<% end %>

Add text to explain what will be converted


Other platforms

Use one of the plugins for popular platforms to easily install Factlink on your site:

<%= link_to 'PivotX', 'https://github.com/Factlink/pivotx-plugin', target: '_blank' %>

<%= link_to 'Wordpress', 'https://wordpress.org/plugins/factlink', target: '_blank' %>

Manual installation

Factlink can also be manually integrated in your site. Just add the following code:

      <script async defer src="https://static.factlink.com/lib/dist/factlink_loader.min.js"></script>

Factlink will load more quickly if you include it near the top of your document.

Fix proxy redirect on On Your Site page

Fix proxy redirect on On Your Site page


<!-- Scripts -->
<%= javascript_include_tag 'application', 'data-turbolinks-track' => false %>
<% if @ext_js.present?
  Array.wrap(@ext_js).each do |js|
    concat "  #{javascript_include_tag js}\n".html_safe
  end
end %>
<% if @inline_js.present?
  Array.wrap(@inline_js).each do |js|
    concat "  <script>\n#{js}\n  </script>\n".html_safe
  end
end %>

<!-- Scripts -->
<%= javascript_include_tag 'application' %>
<% if @ext_js.present?
  Array.wrap(@ext_js).each do |js|
    concat "  #{javascript_include_tag js}\n".html_safe
  end
end %>
<% if @inline_js.present?
  Array.wrap(@inline_js).each do |js|
    concat "  <script>\n#{js}\n  </script>\n".html_safe
  end
end %>

Remove turbolinks attribute from app js tag(s)


<fieldset class="form-group">

<%= form.label(t :first_name) %>

<%= form.text_field :first_name, required: true, class: 'form-control' %>

</fieldset>
<fieldset class="form-group">

<%= form.label(t :last_name) %>

<%= form.text_field :last_name, required: true, class: 'form-control' %>

</fieldset>
<fieldset class="form-group">

<%= form.label(t :gender) %>

<%= form.select :gender, options_for_select(User.genders.map { |gender, value| [t(gender), value] }, @user.gender), {}, required: true, class: 'form-control' %>

</fieldset>
<fieldset class="form-group">

<%= form.label(t :birth_year) %>

<%= form.select :birth_year, options_for_select((1900..2016).map { |year| [year, year] }, @user.birth_year), {}, required: true, class: 'form-control' %>

</fieldset>
<fieldset class="form-group">

<%= form.label(t :email) %>

<%= form.text_field :email, readonly: true, class: 'form-control' %>

</fieldset>

<fieldset class="form-group">

<%= form.label(t :first_name) %>

<%= form.text_field :first_name, required: true, class: 'form-control' %>

</fieldset>
<fieldset class="form-group">

<%= form.label(t :last_name) %>

<%= form.text_field :last_name, required: true, class: 'form-control' %>

</fieldset>
<fieldset class="form-group">

<%= form.label(t :gender) %>

<%= form.select :gender, options_for_select(User.genders.map { |gender, value| [t(gender), value] }, @user.gender), {}, required: true, class: 'form-control' %>

</fieldset>
<fieldset class="form-group">

<%= form.label(t :birthdate) %>

<%= form.date_field :birthdate, min: Date.new(1900), max: 3.years.ago.end_of_year, required: true, class: 'form-control' %>

</fieldset>
<fieldset class="form-group">

<%= form.label(t :email) %>

<%= form.text_field :email, readonly: true, class: 'form-control' %>

</fieldset>

Replace birth year picker for full date picker


#!/bin/bash

set -e

cd /var/vcap/packages/cf-redis-smoke-tests/src

export GOPATH=$PWD/Godeps/_workspace
export GOROOT=/var/vcap/packages/go
export PATH=/var/vcap/packages/cf-cli/bin:$GOPATH/bin:$GOROOT/bin:$PATH

CONFIG_PATH=/var/vcap/jobs/smoke-tests/config.json ./bin/test

#!/bin/bash

set -e

cd /var/vcap/packages/cf-redis-smoke-tests/src/github.com/pivotal-cf/cf-redis-smoke-tests

export GOPATH=$PWD/Godeps/_workspace
export GOROOT=/var/vcap/packages/go
export PATH=/var/vcap/packages/cf-cli/bin:$GOPATH/bin:$GOROOT/bin:$PATH

mkdir -p Godeps/_workspace/src/github.com/pivotal-cf/
cp -r /var/vcap/packages/cf-redis-smoke-tests/src/github.com/pivotal-cf/cf-redis-smoke-tests Godeps/_workspace/src/github.com/pivotal-cf/

CONFIG_PATH=/var/vcap/jobs/smoke-tests/config.json ./bin/test

Copy own dependencies into godeps

Copy own dependencies into godeps

[#126857207]


root      <%= @network["admin_mail_forward"] %>
jenkins   <%= @network["admin_mail_forward"] %>
backup    <%= @network["admin_mail_forward"] %>
gerrit    <%= @network["admin_mail_forward"] %>
admin     <%= @network["admin_mail_forward"] %>
dev-robot <%= @network["admin_mail_forward"] %>

puppet: Manage dev-robot email with admin_mail_forward

dev-robot is the "To" email for periodic zuul pipeline
notifications see puppet/modules/zuul/templates/layout.yaml.erb

Change-Id: Ib4451afe6914775818a0615d448ddb712241b3ca


<% hide_image ||= false %>

    <% unless hide_image %>

        <%= link_to person.image, person %>

    <% end %>
    <<%= hlevel %> class="current-appointee"><%= person.link %></<%= hlevel %>>

      <%= roles.map { |role| role.link }.join(", ").html_safe %>

<% hide_image ||= false %>
<li class="<%= person_class %>">

    <% unless hide_image %>

        <%= link_to person.image, person %>

    <% end %>
    <<%= hlevel %> class="current-appointee"><%= person.link %></<%= hlevel %>>

      <%= roles.map { |role| role.link }.join(", ").html_safe %>

Add class variable to partial

Add class variable to partial


<%= t('grade_assignments') %>

  <%= render partial: 'assignments/list_manage',
             locals: { controller: 'submissions',
                       action: 'browse' } %>

  <%= render partial: 'grade_entry_forms/list_manage',
             locals: { action: 'grades' } %>

    <%= render partial: 'api/key_display',
               locals: { user: @current_user } %>

Remove API key from TA view

Remove API key from TA view


<?xml version='1.0' encoding='UTF-8'?>
<project>
<%= githubProject(
  repoUser:    "scala",
  repoName:    "scala",
  repoRef:     @version,
  description: "PR validation: test suite",
  nodeRestriction: "public",
  params: [
    {:name => "scalaVersion", :desc => "Version of Scala to test. Set by main build flow."},
    {:name => "testExtraArgs", :desc => "TODO"},
    {:name => "testTarget", :desc => "TODO"},
    {:name => "_scabot_pr", :desc => "For internal use by Scabot."}
  ],
  buildNameScript: setValidateBuildNameScript)
%>
</project>

<?xml version='1.0' encoding='UTF-8'?>
<project>
<%= githubProject(
  repoUser:    "scala",
  repoName:    "scala",
  repoRef:     @version,
  description: "PR validation: test suite",
  nodeRestriction: "public",
  params: [
    {:name => "scalaVersion", :desc => "Version of Scala to test. Set by main build flow."},
    {:name => "testExtraArgs", :desc => "TODO"},
    {:name => "testTarget", :desc => "TODO"},
    {:name => "_scabot_pr", :desc => "For internal use by Scabot."}
  ],
  buildNameScript: setValidateBuildNameScript)
%>
  <publishers>
    <hudson.tasks.ArtifactArchiver>
      <artifacts>build/junit/TEST-*,build/osgi/TEST-*</artifacts>
      <allowEmptyArchive>true</allowEmptyArchive>
      <onlyIfSuccessful>false</onlyIfSuccessful>
      <fingerprint>false</fingerprint>
      <defaultExcludes>true</defaultExcludes>
    </hudson.tasks.ArtifactArchiver>
  </publishers>
</project>

Archive junit logs for validate-test

Archive junit logs for validate-test


/* global $ */

var config = {
  AUTOSAVE_DELAY: 5000
};

if ('<%= Rails.env %>' === 'test') {
  $.extend(config, {
    AUTOSAVE_DELAY: 50
  });
}

/* global $ */

var config = {
  AUTOSAVE_DELAY: 2000
};

if ('<%= Rails.env %>' === 'test') {
  $.extend(config, {
    AUTOSAVE_DELAY: 50
  });
}

Reduce autosave duration to 2s

Reduce autosave duration to 2s


        <%= link_to "Create new",[ :new, :admin, @resource_class.model_name.singular_route_key ], class: "btn btn-lg btn-success" %>

All <%= @resource_class.model_name.plural %>

          <% @resource_class.attribute_names.each do |attr| %>
            <%= @resource_class.human_attribute_name attr %>
          <% end %>

        <% @resources.each do |resource| %>

            <% resource.attributes.values.each do |attr| %>
              <%= attr %>
            <% end %>

              <%= link_to "Show", [ :admin, resource ] %>
              <%= link_to "Edit", [ :edit, :admin, resource ] %>
              <%= link_to "Destroy", [ :admin, resource ], method: :delete %>

        <% end %>

Create link from index to create a new resource


<% person_members.each do |member| %>

				<%= member_heading(member) %>
				<% if member.authority? %>
				  Authority Member
				<% else %>
				  Non-Authority Member
				<% end %>

				<% policies = Policy.find_all_policies_for_member_id(member.hbx_member_id).sort_by{ |p| p.subscriber.coverage_start }.reverse %>
				<% policies.each do |policy| %>

<%= render 'policy_detail', p: policy %>

				<% end %>

<% end %>

<% person_members.each do |member| %>

				<%= member_heading(member) %>
				<% if member.authority? %>
				  Authority Member
				<% else %>
				  Non-Authority Member
				<% end %>

			<% policies = Policy.find_all_policies_for_member_id(member.hbx_member_id) %>

				<% policies.each do |policy| %>

<%= render 'policy_detail', p: policy %>

				<% end %>

<% end %>

Revert "policy sort on people show"

Revert "policy sort on people show"

This reverts commit 40d0f8106abebc38d32813b985006f6792615bf9.


<li id="timeslot<%=time_slot.id%>" style="<%=time_slot_style(time_slot, time_slot_day)%>" class="click_to_edit_timeslot timeslot">

    <% if @right_overflow or @left_overflow %>
      <%= image_tag "overflow_arrow_right.png", {class: "right_arrow", alt: "right arrow", height: 17 } if @right_overflow %>
      <%= image_tag "overflow_arrow_left.png",  {class: "left_arrow",  alt: "left arrow",  height: 17 } if @left_overflow %>
    <% end %>

        <% unless time_slot.repeating_event %>
          <%= link_to "x", time_slot, confirm: 'Are you sure?', method: :delete, remote: true, style: "float:right;margin-right:5px", class: 'delete_link' %>
        <% else %>
          <%= link_to_function "x", class: 'click_to_delete_repeating_timeslot', id: 'delete_repeating_'+time_slot.id.to_s %>
        <% end %>
        <%= link_to "#{time_slot.start.strftime("%l:%M%p")} - #{time_slot.end.strftime("%l:%M%p")}", edit_time_slot_path(time_slot) %>

<li id="timeslot<%=time_slot.id%>" style="<%=time_slot_style(time_slot, time_slot_day)%>" class="click_to_edit_timeslot timeslot">

    <% if @right_overflow or @left_overflow %>
      <%= image_tag "overflow_arrow_right.png", {class: "right_arrow", alt: "right arrow", height: 17 } if @right_overflow %>
      <%= image_tag "overflow_arrow_left.png",  {class: "left_arrow",  alt: "left arrow",  height: 17 } if @left_overflow %>
    <% end %>

        <% unless time_slot.repeating_event %>
          <%= link_to "x", time_slot, confirm: 'Are you sure?', method: :delete, remote: true, style: "float:right;margin-right:5px", class: 'delete_link' %>
        <% else %>
          <%= link_to "x", edit_time_slot_path(time_slot, delete_options: true) %>
        <% end %>
        <%= link_to "#{time_slot.start.strftime("%l:%M%p")} - #{time_slot.end.strftime("%l:%M%p")}", edit_time_slot_path(time_slot) %>

Fix delete link on the schedule view

Fix delete link on the schedule view


<%= form_for @checkin, url: place_checkins_path(@place) do |f| %>
	<%= f.label :description %>:

  <%= f.text_area :description %>

  <%= f.date_select :date_attended, order: [:month, :day, :year] %>

  <%= f.submit %>
<% end %>

<%= form_for @checkin, url: place_checkin_path(@place) do |f| %>
	<%= f.label :description %>:

  <%= f.text_area :description %>

  <%= f.date_select :date_attended, order: [:month, :day, :year] %>

  <%= f.submit %>
<% end %>

Fix route for checkin creation form

Fix route for checkin creation form


<%= form_for [@account, @canned_response], html: { class: 'form' } do |f| %>

    <%= f.label :key, 'Key', class: 'form-label' %>
    <%= f.text_field :key, autofocus: true, placeholder: 'Enter key used to lookup the response', class: 'form-control' %>

    <%= f.label :messsage, 'Message', class: 'form-label' %>
    <%= f.text_area :message, autofocus: true, placeholder: 'Include the full message to include in future responses', class: 'form-control' %>

    <%= f.submit @canned_response.persisted? ? 'Update' : 'Create', class: 'btn btn-primary' %>

<% end %>

<%= form_for [@account, @canned_response], html: { class: 'form' } do |f| %>

    <%= f.label :key, 'Key', class: 'form-label' %>
    <%= f.text_field :key, autofocus: true, placeholder: 'Enter key used to lookup the response', class: 'form-control' %>

    <%= f.label :messsage, 'Message', class: 'form-label' %>
    <%= f.text_area :message, placeholder: 'Include the full message to include in future responses', class: 'form-control' %>

    <%= f.submit @canned_response.persisted? ? 'Update' : 'Create', class: 'btn btn-primary' %>

<% end %>

Remove autofocus from second field

Remove autofocus from second field


router id <%= @ipaddress_trp1 %>;

<% if @debug %>debug protocols all;
<% end -%>
# We are only going to export routes from Calico interfaces.
# Currently, 'tap*' is used by the OpenStack implimentation
# and 'cali*' is used by the docker implimentation.
# dummy1 is the interface that bare metal "service" addresses
# should be bound to if they should be exported.
# This will need to be updated as we add new interface names.
#
# Also filter out default, just in case.
#
# We should automate the build of this out of variables when
# we have time.

filter export_bgp {
  if (ifname ~ "tap*") then {
    if  net != 0.0.0.0/0 then accept;
  }
  reject;
}

# Configure synchronization between BIRD's routing tables and the
# kernel.
protocol kernel {
  learn;          # Learn all alien routes from the kernel
  device routes;  # protect kernel device routes from being overwritten or removed by IGP routes
  persist;        # Don't remove routes on bird shutdown
  scan time 2;    # Scan kernel routing table every 2 seconds
  import all;
  graceful restart;
  export all;     # Default is export none
}

protocol bfd {
  neighbor <%= scope.function_hiera(['netcfg_trp_gateway']) %>;
}

# Watch interface up/down events.
protocol device {
  scan time 2;    # Scan interfaces every 2 seconds
}

protocol direct {
   debug all;
   interface "*";
}

protocol bgp 'rr1_ipv4' {
  description "Connection to BGP route reflector rr1_ipv4";
  local as <%= scope.function_hiera(['bgp_as']) %>;
  neighbor <%= scope.function_hiera(['netcfg_trp_gateway']) %> as <%= scope.function_hiera(['bgp_as']) %>;
  multihop;
  import all;
  graceful restart;
  export filter export_bgp;
  source address <%= @ipaddress_trp1 %>;  # The local address we use for the TCP connection
}

Add bird template for bsd nat box

Add bird template for bsd nat box


# <%= component.gem_name %> bower package repacked as gem

This gem was generated, please visit [rails-asset.org](http://rails-assets.org) for more information.

## Installation

Add this two lines to your application's Gemfile:

```ruby
source "http://rails-assets.org"

gem <%= component.gem_name.dump %>
```

## Usage

```js
//= require <%= component.name.dump %>
```

# <%= component.gem_name %>

> The Bower package inside a gem

This gem was automatically generated. You can visit [rails-assets.org](http://rails-assets.org) for more information.

## Usage

Add these two lines to your application’s `Gemfile`:

```ruby
source "http://rails-assets.org"

gem <%= component.gem_name.dump %>
```

Then, import the asset using Sprockets’ `require` directive:

```js
//= require <%= component.name.dump %>
```

Tweak the gem README template

Tweak the gem README template


<%= @name.camelize %>::Application.routes.draw do
  root to: 'home#index'
end

<%= @name.gsub(/-/, '_').camelize %>::Application.routes.draw do
  root to: 'home#index'
end

Fix routes file when using - in app name

refs #9


description "zookeeper centralized coordination service"

start on runlevel [2345]
stop on runlevel [!2345]

respawn

limit nofile 8192 8192

console log

script
    . /etc/default/zookeeper
    [ -r /etc/default/zookeeper ] && . /etc/default/zookeeper
    [ -d $ZOO_LOG_DIR ] || mkdir -p $ZOO_LOG_DIR
    chown $USER:$GROUP $ZOO_LOG_DIR

    exec start-stop-daemon --start -c $USER --exec $JAVA --name zookeeper \
        -- -cp $CLASSPATH $JAVA_OPTS -Dzookeeper.log.dir=${ZOO_LOG_DIR} \
        -Dzookeeper.root.logger=${ZOO_LOG4J_PROP} $ZOOMAIN $ZOOCFG
end script

description "zookeeper centralized coordination service"

start on runlevel [2345]
stop on runlevel [!2345]

respawn

limit nofile 8192 8192

console log

script
    [ -r /etc/default/zookeeper ] && . /etc/default/zookeeper
    [ -d $ZOO_LOG_DIR ] || mkdir -p $ZOO_LOG_DIR
    chown $USER:$GROUP $ZOO_LOG_DIR

    exec start-stop-daemon --start -c $USER --exec $JAVA --name zookeeper \
        -- -cp $CLASSPATH $JAVA_OPTS -Dzookeeper.log.dir=${ZOO_LOG_DIR} \
        -Dzookeeper.root.logger=${ZOO_LOG4J_PROP} $ZOOMAIN $ZOOCFG
end script

Remove duplicate sourcing in Upstart script


[uwsgi]
socket=/home/zulip/deployments/uwsgi-socket
module=zproject.wsgi:application
chdir=/home/zulip/deployments/current/
chmod-socket=700
chown-socket=zulip:zulip
processes=<%= @uwsgi_processes %>
harakiri=20
post-buffering=4096
env= LANG=en_US.UTF-8
uid=zulip
gid=zulip

[uwsgi]
socket=/home/zulip/deployments/uwsgi-socket
module=zproject.wsgi:application
chdir=/home/zulip/deployments/current/
master=true
chmod-socket=700
chown-socket=zulip:zulip
processes=<%= @uwsgi_processes %>
harakiri=20
post-buffering=4096
env= LANG=en_US.UTF-8
uid=zulip
gid=zulip

uwsgi: Add master mode to the main uwsgi process.

- Enable `master` parameter for `uswgi` configuration.
  It allows cleaning leaked processes if the parent
  process is closed unexpectedly or with SIGKILL command.
  Child processes follow to the master and kill themselves
  after the main process.

Fixes #3855


Third Article

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Maiores velit, optio omnis voluptate sequi obcaecati cumque officia deleniti. Maxime nam obcaecati itaque maiores quisquam deleniti ut possimus perspiciatis ex, vitae.

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Odit, ea.

Lorem ipsum dolor sit amet.

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Facilis.

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Temporibus, ad explicabo eligendi quibusdam officia, suscipit recusandae blanditiis quisquam iure voluptate. Nulla ut beatae officiis nam, voluptate nesciunt cupiditate illo qui.

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Temporibus, ad explicabo eligendi quibusdam officia, suscipit recusandae blanditiis quisquam iure voluptate. Nulla ut beatae officiis nam, voluptate nesciunt cupiditate illo qui.

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laudantium placeat, dicta aliquid fugiat, obcaecati nisi illum repellat nesciunt reiciendis nihil est, qui alias, perspiciatis accusantium libero mollitia quas aspernatur totam animi. Dignissimos unde eaque quam modi, dolores provident quaerat dolorem explicabo veniam. Doloribus illo, nostrum, ratione perspiciatis ut repellendus, quasi sint inventore et facere consequatur debitis eveniet hic deserunt earum vitae nihil cumque dignissimos porro voluptatibus modi. Porro, aspernatur a illo consequatur, commodi ab. Sint ad quia, iusto sapiente omnis recusandae, optio distinctio repellat odio nemo, tenetur voluptas perferendis quisquam qui alias quidem praesentium earum facere expedita? Hic quis ducimus atque beatae voluptatum aut dignissimos enim, temporibus voluptatibus excepturi esse officia repellendus libero consectetur qui, doloribus autem ipsum veniam in odio non recusandae! Odit maiores laudantium accusamus libero eaque! Porro asperiores sed nostrum in? Aperiam eveniet nam voluptates, dolore maxime soluta ratione, delectus quod, nulla, illum officia maiores ab labore?

Increase size of sample text in third article to test how it deals with displaying longer articles


  <% if comments %>

    <% comments.each do |comment| %>

        <%= comment.text %>

          by <%= link_to comment.user.username, user_defined_words_path(comment.user) %>

        <%= link_to "Reply", new_comment_comment_path(comment) %>

        <% if comment.comments.count > 0 %>

            <% comment.comments.each do |reply| %>

<%= reply.text %>

            <% end %>

        <% end %>
    <% end %>

  <% end %>

  <% if comments %>

    <% comments.each do |comment| %>

        <%= comment.text %>

          by <%= link_to comment.user.username, user_defined_words_path(comment.user) %>

        <%= link_to "Reply", new_comment_comment_path(comment) %>

        <% if comment.comments.count > 0 %>

            <% comment.comments.each do |reply| %>

                <%= reply.text %>

                  by <%= link_to reply.user.username, user_defined_words_path(reply.user) %>

            <% end %>

        <% end %>
    <% end %>

  <% end %>

Comment details on nested comments / replies are now visible.


  <button class="pure-button s-margin">Edit mode</button>

  <button class="pure-button s-margin">Select all</button>
  <button class="pure-button s-margin">Deselect all</button>
  <button class="pure-button s-margin">Delete</button>
  <button class="pure-button s-margin">Add to album</button>
  <button class="pure-button s-margin">Leave edit mode</button>

Add button to enter edit mode

Add button to enter edit mode


  <% guide.assignments_for(current_user).each do |assignment| %>
      <% cache [assignment.exercise, assignment.status, Organization.current] do %>
          <li <%= turbolinks_enable_for(assignment.exercise) %>>
            <%= assignment_status_icon assignment %>
            <%= link_to_path_element(assignment.exercise) %>

      <% end %>
  <% end %>

  <% guide.assignments_for(current_user).each do |assignment| %>
      <% cache [assignment.exercise, assignment.status, Organization.current, current_user?] do %>
          <li <%= turbolinks_enable_for(assignment.exercise) %>>
            <%= assignment_status_icon assignment %>
            <%= link_to_path_element(assignment.exercise) %>

      <% end %>
  <% end %>

Add current_user? to progress_listing cache


<% if policy(model).edit? %>
  <%= link_to(
          fa_icon(:pencil),
          edit_catalog_admin_choice_set_path(model.catalog, I18n.locale, model),
          class: "btn btn-xs btn-outline-secondary choiceset-action-edit",
          "data-toggle" => "tooltip", "data-placement" => "top", "title" => t("edit")
      ) %>
  <%= deactivation_toggle(
        model,
        :catalog_admin_choice_set_path,
        model.catalog,
        I18n.locale,
        model
      )%>
  <%= link_to(
        fa_icon(:trash),
        catalog_admin_choice_set_path(model.catalog, I18n.locale, model),
        method: :delete,
        class: "btn btn-xs btn-outline-secondary choiceset-action-delete",
        "data-toggle": "tooltip", "data-placement": "top", "title": t("delete")
      ) %>
<% end %>

<% if policy(model).edit? %>
  <%= link_to(
          fa_icon(:pencil),
          edit_catalog_admin_choice_set_path(model.catalog, I18n.locale, model),
          class: "btn btn-xs btn-outline-secondary choiceset-action-edit",
          "data-toggle" => "tooltip", "data-placement" => "top", "title" => t("edit")
      ) %>
  <%= deactivation_toggle(
        model,
        :catalog_admin_choice_set_path,
        model.catalog,
        I18n.locale,
        model
      )%>
  <%= link_to(
        fa_icon(:trash),
        catalog_admin_choice_set_path(model.catalog, I18n.locale, model),
        method: :delete,
        :data => {
          :confirm => t("delete_confirm", {model: model.name})
        },
        class: "btn btn-xs btn-outline-secondary choiceset-action-delete",
        "data-toggle": "tooltip", "data-placement": "top", "title": t("delete")
      ) %>
<% end %>

Add delete confirm to choice set index

Add delete confirm to choice set index


<% if collections.any? %>

  <% collections.each do |collection| %>
    <% url = "t/fabric/collection/#{collection.name}".downcase.gsub(/\s+/, "-") %>
    <li id="product_<%= collection.id %>" class="columns three <%= cycle("alpha", "secondary", "", "omega secondary", :name => "classes") %>" data-hook="products_list_item" itemscope itemtype="http://schema.org/Product">

        <%= link_to small_image(collection.products.first, :itemprop => "image"), url, :itemprop => 'url' %>

      <%= link_to collection.name, url %>

  <% end %>
  <% reset_cycle("classes") %>

<% end %>

<% if collections.any? %>

  <% collections.each do |collection| %>
    <% url = "t/fabric/collection/#{collection.name}".downcase.gsub(/\s+/, "-") %>
    <% if collection.products.any? %>
    <li id="product_<%= collection.id %>" class="columns three <%= cycle("alpha", "secondary", "", "omega secondary", :name => "classes") %>" data-hook="products_list_item" itemscope itemtype="http://schema.org/Product">

        <%= link_to small_image(collection.products.first, :itemprop => "image"), url, :itemprop => 'url' %>

      <%= link_to collection.name, url %>

    <% end %>
  <% end %>
  <% reset_cycle("classes") %>

<% end %>

Add collections controller and view.

Add collections controller and view.


<% if user_signed_in? %>
  <%= link_to image_tag("btn/#{ activity.public? ? 'public' : 'restricted' }.png", :class => 'menu_icon') + activity.audience_in_words(current_subject, :details => :summary),
    '#',
    :class => 'audience' %>

    <%= activity.audience_in_words(current_subject) %>
    <% unless activity.public? %>
    <%= link_to t('activity.audience.show'), audience_path(activity_id: activity.id), remote: true %>
      <div class="activity-audience-list-<%= activity.id %>">

    <% end %>

<% end %>

<% if user_signed_in? && controller.controller_name != 'explore' %>
  <%= link_to image_tag("btn/#{ activity.public? ? 'public' : 'restricted' }.png", :class => 'menu_icon') + activity.audience_in_words(current_subject, :details => :summary),
    '#',
    :class => 'audience' %>

    <%= activity.audience_in_words(current_subject) %>
    <% unless activity.public? %>
    <%= link_to t('activity.audience.show'), audience_path(activity_id: activity.id), remote: true %>
      <div class="activity-audience-list-<%= activity.id %>">

    <% end %>

<% end %>

Remove audience view from explore timeline


<%= @title || "Listing posts" %>

<%= magic_grid @posts, [:title, :body, :published, :user, 'Actions'],
  :searchable => [:body, 'users.name'], :id => 1 do |post| %>

    <%= post.title %>
    <%= post.body.truncate(30) %>
    <%= post.published %>
    <%= link_to post.user, post.user %>

      <%= link_to 'Show', post %>
      <%= link_to 'Edit', edit_post_path(post) %>
      <%= link_to 'Destroy', post, confirm: 'Are you sure?', method: :delete %>

<% end %>

<%= link_to 'New Post', new_post_path %>

<%= @title || "Listing posts" %>

<%= search_field_tag :posts_search %>
<%= magic_grid @posts, [:title, :body, :published, :user, 'Actions'],
  :searchable => [:body, 'users.name'], :searcher => :posts_search,
  :id => 1, :ajax => true do |post| %>

    <%= post.title %>
    <%= post.body.truncate(30) %>
    <%= post.published %>
    <%= link_to post.user, post.user %>

      <%= link_to 'Show', post %>
      <%= link_to 'Edit', edit_post_path(post) %>
      <%= link_to 'Destroy', post, confirm: 'Are you sure?', method: :delete %>

<% end %>

<%= link_to 'New Post', new_post_path %>

Update test/demo to use live search

Update test/demo to use live search


<% content_for(:page_title, "Blog | #{@post.title}")%>

<% content_for(:head) do %>
  <meta property="og:title" content="Blog | <%= @post.title %>" />
  <meta property="og:description"
    content="<%= truncate(strip_tags(format_content(@post.body)), length: 500, separator: ' ') %>" />
  <meta property="og:type" content="article" />
  <meta property="article:published_time" content="<%= @post.published_at %>" />

  <% if publisher = Blogit.configuration.facebook_app_id %>
    <meta property="article:publisher" content="<%= publisher %>" />
  <% end %>
<% end %>

<%= render partial: "blogit/posts/sidebar" %>
<%= render @post %>
<%= render "blogit/posts/post_footer", post: @post %>

<% content_for(:page_title, "Blog | #{@post.title}")%>

<% content_for(:head) do %>
  <meta property="og:title" content="Blog | <%= @post.title %>" />
  <meta property="og:description"
    content="<%= truncate(strip_tags(format_content(@post.body)), length: 500, separator: ' ') %>" />
  <meta property="og:type" content="article" />
  <meta property="article:published_time" content="<%= @post.published_at %>" />

  <% if publisher = Blogit.configuration.facebook_app_id %>
    <meta property="article:publisher" content="<%= publisher %>" />
  <% end %>

  <% if author = @post.blogger.try(:blog_author_tag) %>
    <meta property="article:author" content="<%= author %>" />
  <% end %>
<% end %>

<%= render partial: "blogit/posts/sidebar" %>
<%= render @post %>
<%= render "blogit/posts/post_footer", post: @post %>

Include a meta author tag if the blogger has an author tag attribute.


<% if disable_source_tv? %>
<%= 'tv_enable 0' %>
<%= 'tv_stop' %>
<% else %>
<%= 'tv_enable 1' %>
<% end %>

<% if first_map.present? %>
changelevel <%= first_map %>
changelevel <%= first_map %>
<% else %>
  <% if disable_source_tv? %>
    <%= 'changelevel cp_badlands' %>
    <%= 'changelevel cp_badlands' %>
  <% end %>
<% end %>

Revert "deal with STV on initial map too"

This reverts commit cd163d576f4e587544616d0d9ac7c7c71afa0815.


    <% if message.sender == message.conversation.originator %>

          <%= time_ago_in_words(message.created_at) %>

        <%= simple_format(message.body) %>

    <% else %>

          <%= time_ago_in_words(message.created_at) %>

        <%= simple_format(message.body) %>

    <% end %>

    <% if message.sender == current_user %>

          <%= time_ago_in_words(message.created_at) %>

        <%= simple_format(message.body) %>

    <% else %>

          <%= time_ago_in_words(message.created_at) %>

        <%= simple_format(message.body) %>

    <% end %>

Fix bug in conversation colors

Fix bug in conversation colors

Color for current user doesn't always match color for the conversation's
originator.


<% breadcrumb :local_authorities, @local_authority %>

<%= @authority.name %>

<% if flash[:bad_url] %>

Please enter a valid link.

<% end %>

<%= label_tag 'link_url', 'Homepage URL' %>

eg http://www.local-authority.gov.uk

<%= form_for @authority, url: {action: "update"} do |f| %>
  <div class="form-group <% if flash[:bad_url] %>has-error<% end %>">
    <%= f.text_field :homepage_url, class: "form-control" %>

      <%= link_to 'Cancel', :back, { class: 'btn btn-default add-right-margin' } %>
      <button type='submit' class='btn btn-success'>Save</button>

<% end %>

<% breadcrumb :services, @authority %>

<%= @authority.name %>

<% if flash[:bad_url] %>

Please enter a valid link.

<% end %>

<%= label_tag 'link_url', 'Homepage URL' %>

eg http://www.local-authority.gov.uk

<%= form_for @authority, url: {action: "update"} do |f| %>
  <div class="form-group <% if flash[:bad_url] %>has-error<% end %>">
    <%= f.text_field :homepage_url, class: "form-control" %>

      <%= link_to 'Cancel', local_authority_services_path(@authority.slug), { class: 'btn btn-default add-right-margin' } %>
      <button type='submit' class='btn btn-success'>Save</button>

<% end %>

Fix edit homepage link cancel button bug

Also fixed missing breadcrumb on the same page.


<%= params[:id] == 'no-name' ? 'No Name' : @product.name %>

<%= render 'shared/collection/table',
  type: 'areas', collection: @areas, columns: {
  	'name' => ->(resource) do
  	  link_to resource.name, product_area_workflow_user_index_path(params[:id], resource)
    end, 'users_count' => nil
  }
%>

<%= params[:id] == 'no-name' ? 'No Name' : @product.name %>

<%= render 'shared/collection/table',
  type: 'areas', collection: @areas, columns: {
  	'name' => ->(resource) do
  	  link_to resource.name, product_area_workflow_user_index_path(params[:id], resource)
    end, 'users_count' => nil
  }, options: { append_new_link: false }
%>

Hide new area link here.

Hide new area link here.


<%= render 'listings/tab_navigation' %>

<%= @listing.title %>

<%= @listing.description %>

Fair Market Value: <%= @listing.fair_market_value.to_i %> USD

            <%= render 'listings/follow' %>
            <%= link_to "Back to Listings", session.delete(:listings_index) %>

            <%= link_to "Request Donation", "", :class => "button", :id =>"requestbutton" %>

Add comment to designate end of Watch button section


include_once "$IP/extensions/WikimediaMessages/WikimediaLicenseTexts.php";

// This is the default in InitialiseSettings.php and triggers special
// behavior in WikimediaMessagesHooks::onSkinCopyrightFooter.
$wgRightsUrl = '//creativecommons.org/licenses/by-sa/3.0/';

// These are also defaults in InitialiseSettings.php.
$wgRightsText = 'Creative Commons Attribution-Share Alike 3.0';
$wgRightsIcon = '//creativecommons.org/images/public/somerights20.png';

Set wgRightsUrl and wgRightsText in WikimediaMessages

This affects some of its behavior (SkinCopyrightFooter).

Bug: T97371
Change-Id: I4624cbceacb42faa862165ee57ceb3d0022fd6ca


<%
  branch = if list === @portfolio_entries.first
    "branch_start"
  elsif list === @portfolio_entries.last or (list.parent and list === list.parent.children.last)
    "branch_end"
  end
-%>
<li class='clearfix record<%= " #{branch}" %>' id="<%= dom_id(list) -%>">

      <% url = (::Refinery::Portfolio.multi_level? && list.parent ? portfolio_project_url(list.parent, list) : portfolio_url(list))  %>
      <%= link_to refinery_icon_tag('application_go.png'), url, :target => "_blank",
                 :title => t('.view_live') %>
      <%= link_to refinery_icon_tag('application_edit.png'), edit_admin_portfolio_entry_path(list),
                 :title => t('.edit_this_entry') %>
      <%= link_to refinery_icon_tag('delete.png'), admin_portfolio_entry_path(list),
                 :class => "cancel confirm-delete",
                 :title => t('.confirm_delete_entry_title'),
                 :'data-confirm' => t('shared.admin.delete.message', :title => list.title),
                 :'data-method' => "delete" %>

    <%=h list.title %>

  <% if (children = list.children).any? %>
    <ul<%= " class='nested'" %>>
      <%= render :partial => 'list', :collection => children %>

  <% end %>

<%
  branch = if list === @portfolio_entries.first
    "branch_start"
  elsif list === @portfolio_entries.last or (list.parent and list === list.parent.children.last)
    "branch_end"
  end
-%>
<li class='clearfix record<%= " #{branch}" %>' id="<%= dom_id(list) -%>">

      <% url = (::Refinery::Portfolio.multi_level? && list.parent ? portfolio_project_url(list.parent, list) : portfolio_url(list))  %>
      <%= link_to refinery_icon_tag('application_go.png'), url, :target => "_blank",
                 :title => t('.view_live') %>
      <%= link_to refinery_icon_tag('application_edit.png'), edit_admin_portfolio_entry_path(list),
                 :title => t('.edit_this_entry') %>
      <%= link_to refinery_icon_tag('delete.png'), admin_portfolio_entry_path(list),
                 :class => "cancel confirm-delete",
                 :title => t('.confirm_delete_entry_title'),
                 :confirm => t('shared.admin.delete.message', :title => list.title),
                 :method => :delete %>

    <%=h list.title %>

  <% if (children = list.children).any? %>
    <ul<%= " class='nested'" %>>
      <%= render :partial => 'list', :collection => children %>

  <% end %>

Use :confirm and :method link_to methods.


  Account

<%= link_to "My Page", user_path(current_user) %>

<%= link_to "My Settings", edit_user_registration_path(current_user) %>

<%= link_to 'Sign out', destroy_user_session_path, :method => :delete %>

  Account

<%= link_to "My Page", user_path(current_user) %>

<%= link_to "My Settings", edit_user_registration_path(current_user) %>

    <% if current_user.admin? %>

<%= link_to "Articles", articles_path %>

    <% end %>

<%= link_to 'Sign out', destroy_user_session_path, :method => :delete %>

Add articles option to menu for admins

Add articles option to menu for admins


<% add_to_page_title "Editing: #{@record.to_title}" %>

<%= simple_form_for [:outpost, @record], html: { class: "form-horizontal" } do |f| %>
  <%= render 'errors', f: f %>
  <%= render 'form_fields', record: @record, f: f %>
  <%= render 'extra_fields', f: f %>
  <%= render "/outpost/shared/submit_row", record: @record %>
<% end %>

<% content_for :sidebar do %>

      Last Updated: <%= format_date @record.updated_at, time: true %>

    <%= render "/outpost/shared/form_nav" %>

<% end %>

<% content_for :footer do %>

<% end %>

Add Preview to edit page

Add Preview to edit page


(function() {
    with( require('apps/framework/app_scope') ) {

        var source = <%= source %>;

        ZendeskApps[<%= name.to_json %>] = ZendeskApps.defineApp(source)
                .reopenClass({ location: <%= location.to_json %> })
                .reopen({
                    assetUrlPrefix: <%= asset_url_prefix.to_json %>,
                    appClassName: <%= app_class_name.to_json %>,
                    author: {
                        name: <%= author[:name].to_json %>,
                        email: <%= author[:email].to_json %>
                    },
                    translations: <%= translations.to_json %>,
                    templates: <%= templates.to_json %>,
                    frameworkVersion: <%= framework_version.to_json %>
                });

    }

    ZendeskApps[<%= name.to_json %>].install({"id": <%= app_id %>, "app_id": <%= app_id %>, "settings": <%= settings.to_json %>});

}());

ZendeskApps.trigger && ZendeskApps.trigger('ready');

(function() {
  with( ZendeskApps.AppScope.create() ) {
    require.modules = {
      <% modules.each do |path, content| %>
        '<%= path %>': function(exports, require, module) {
          <%= content %>
        },
      <% end %>
      eom: undefined
    };

    var source  = <%= source %>;
    var app     = ZendeskApps.defineApp(source)
      .reopenClass({ location: <%= location.to_json %> })
      .reopen({
        assetUrlPrefix: <%= asset_url_prefix.to_json %>,
        appClassName: <%= app_class_name.to_json %>,
        author: {
          name: <%= author[:name].to_json %>,
          email: <%= author[:email].to_json %>
        },
        translations: <%= translations.to_json %>,
        templates: <%= templates.to_json %>,
        frameworkVersion: <%= framework_version.to_json %>,
      });

    ZendeskApps[<%= name.to_json %>] = app;
  }

  ZendeskApps[<%= name.to_json %>].install({"id": <%= app_id %>, "app_id": <%= app_id %>, "settings": <%= settings.to_json %>});
}());

ZendeskApps.trigger && ZendeskApps.trigger('ready');

Load modules, ZAF app scope instance, indentation


Sign up

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
    <%= devise_error_messages! %>

      <%= f.label :name %>

      <%= f.text_field :name %>

      <%= f.label :pfs_number %>

      <%= f.text_field :pfs_number %>

      <%= f.label :email %>: Please use your paizo.com email address.

      <%= f.email_field :email, autofocus: true %>

      <%= f.label :password %>
      <% if @minimum_password_length %>
          (<%= @minimum_password_length %> characters minimum)
      <% end %>

      <%= f.password_field :password, autocomplete: "off" %>

      <%= f.label :password_confirmation %>

      <%= f.password_field :password_confirmation, autocomplete: "off" %>

    <%= f.hidden_field :admin, :value => false %>

      <%= f.submit "Sign up" %>

<% end %>

<%= render "devise/shared/links" %>

Sign up

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
    <%= devise_error_messages! %>

      <%= f.label :name %>

      <%= f.text_field :name %>

      <%= f.label :pfs_number %>

      <%= f.text_field :pfs_number %>

      <%= f.label :email %>: Please use the email address that you registered with paizo.com.

      <%= f.email_field :email, autofocus: true %>

      <%= f.label :password %>
      <% if @minimum_password_length %>
          (<%= @minimum_password_length %> characters minimum)
          Please do not use the same password that you used on paizo.com.
      <% end %>

      <%= f.password_field :password, autocomplete: "off" %>

      <%= f.label :password_confirmation %>

      <%= f.password_field :password_confirmation, autocomplete: "off" %>

    <%= f.hidden_field :admin, :value => false %>

      <%= f.submit "Sign up" %>

<% end %>

<%= render "devise/shared/links" %>

Update verbiage around email and password.


<figure id="<%= dom_id(component) %>"
        class="FigureComponent <%= component.renderable.style %>"
        data-selectable="Selected"
        style="<%= "width: #{figure_component.width}px;" if figure_component.width.present? && !figure_component.width.zero? %>"
        data-commands="#<%= dom_id(component) %>_commands"
        data-reload="<%= scroll.component_path(component) %>">

  <% if figure_component.image.present? %>
    <% if figure_component.url.present? %>
      <%= link_to image_tag(figure_component.image.url(:large)), figure_component.url %>
    <% else %>
      <%= image_tag figure_component.image.url(:large) %>
    <% end %>
  <% else %>
    image missing
  <% end %>

  <% if figure_component.caption.present? %>
    <figcaption>
      <%= figure_component.caption %>
    </figcaption>
  <% end %>

</figure>

<figure id="<%= dom_id(component) %>"
        class="FigureComponent <%= component.renderable.style %>"
        data-selectable="Selected"
        data-commands="#<%= dom_id(component) %>_commands"
        data-reload="<%= scroll.component_path(component) %>">

  <% if figure_component.width.present? && !figure_component.width.zero? %>
    <% width = figure_component.width  %>
  <% else %>
    <% width = nil %>
  <% end %>

  <% if figure_component.image.present? %>
    <% if figure_component.url.present? %>
      <%= link_to image_tag(figure_component.image.url(:large), width: width), figure_component.url %>
    <% else %>
      <%= image_tag figure_component.image.url(:large), width: width %>
    <% end %>
  <% else %>
    image missing
  <% end %>

  <% if figure_component.caption.present? %>
    <figcaption>
      <%= figure_component.caption %>
    </figcaption>
  <% end %>

</figure>

Set image width instead of wrapper

Set image width instead of wrapper


#!/bin/sh
# GitLab pre-install script

DEST_DIR=<%= install_dir %>

skip_migrations_file=/etc/gitlab/skip-auto-migrations

main() {
  if [ -e "${skip_migrations_file}" ] ; then
    # The user wants us to do nothing
    return
  fi

  notify "Backing up GitLab SQL database (excluding Git repositories, uploads)"
  if ! ${DEST_DIR}/bin/gitlab-rake gitlab:backup:create SKIP=repositories,uploads ; then
    notify
    notify "Backup failed! If you want to skip this backup, run the following command and"
    notify "try again:"
    notify
    notify "  sudo touch ${skip_migrations_file}"
    notify
    exit 1
  fi

  notify "Backing up GitLab CI SQL database"
  if ! ${DEST_DIR}/bin/gitlab-ci-rake backup:create ; then
    notify
    notify "Backup failed! If you want to skip this backup, run the following command and"
    notify "try again:"
    notify
    notify "  sudo touch ${skip_migrations_file}"
    notify
    exit 1
  fi
}

notify() {
  echo "gitlab preinstall: $1"
}

if [ -n "${GITLAB_DEBUG}" ] ; then
  notify "debug: arguments: $@"
fi

case "$1" in
  2)
    # Looks like an RPM upgrade
    main
    ;;
  upgrade)
    # Looks like a DEB upgrade
    main
    ;;
  *)
    # This is not an upgrade, nothing to do.
    ;;
esac

#!/bin/sh
# GitLab pre-install script

DEST_DIR=<%= install_dir %>

skip_migrations_file=/etc/gitlab/skip-auto-migrations

main() {
  if [ -e "${skip_migrations_file}" ] ; then
    # The user wants us to do nothing
    return
  fi

  notify "Backing up GitLab SQL database (excluding Git repositories, uploads)"
  if [ -d ${DEST_DIR}/service/unicorn ] ; then
    if ! ${DEST_DIR}/bin/gitlab-rake gitlab:backup:create SKIP=repositories,uploads ; then
      notify
      notify "Backup failed! If you want to skip this backup, run the following command and"
      notify "try again:"
      notify
      notify "  sudo touch ${skip_migrations_file}"
      notify
      exit 1
    fi
  fi

  notify "Backing up GitLab CI SQL database"
  if [ -d ${DEST_DIR}/service/ci-unicorn ] ; then
    if ! ${DEST_DIR}/bin/gitlab-ci-rake backup:create ; then
      notify
      notify "Backup failed! If you want to skip this backup, run the following command and"
      notify "try again:"
      notify
      notify "  sudo touch ${skip_migrations_file}"
      notify
      exit 1
    fi
  fi
}

notify() {
  echo "gitlab preinstall: $1"
}

if [ -n "${GITLAB_DEBUG}" ] ; then
  notify "debug: arguments: $@"
fi

case "$1" in
  2)
    # Looks like an RPM upgrade
    main
    ;;
  upgrade)
    # Looks like a DEB upgrade
    main
    ;;
  *)
    # This is not an upgrade, nothing to do.
    ;;
esac

Check if unicorn dir exists as a sign which service is installed.


[Resolve]
DNS=<%= node[:networking][:nameservers].join(" ") %>
Domains=<%= node[:networking][:search].join(" ") %>
DNSSEC=allow-downgrade

Enable DNSSEC in allow-dowgrade mode

Enable DNSSEC in allow-dowgrade mode


      Fuel Type
      Alert Type
      Displayable?
      Rating
      Valid?
      Enough data?
      Relevant?
      Alert Date
      Created At
      Emails sent
      SMS sent

    <% alerts.each do |alert| %>

        <%= fa_icon(alert_icon(alert)) %> <%= alert.display_fuel_type %>
        <%= link_to alert.title, school_alert_path(school, alert) %>
        <td class="text-white <%= class_for_boolean(alert.displayable) %>"><%= y_n alert.displayable %>
        <%= alert.formatted_rating %>
        <%= y_n alert.analytics_valid %>
        <%= alert.enough_data %>
        <%= alert.relevance %>
        <%= nice_dates alert.run_on %>
        <%= nice_date_times alert.created_at %>
        <%= link_to(alert.alert_subscription_events.sent.email.count, school_alert_subscription_events_path(@school)) %>
        <%= link_to(alert.alert_subscription_events.sent.sms.count, school_alert_subscription_events_path(@school)) %>

    <% end %>

      Fuel Type
      Alert Type
      Displayable?
      Rating
      Valid?
      Enough data?
      Relevant?
      Alert Date
      Created At

    <% alerts.each do |alert| %>

        <%= fa_icon(alert_icon(alert)) %> <%= alert.display_fuel_type %>
        <%= link_to alert.title, school_alert_path(school, alert) %>
        <td class="text-white <%= class_for_boolean(alert.displayable) %>"><%= y_n alert.displayable %>
        <%= alert.formatted_rating %>
        <%= y_n alert.analytics_valid %>
        <%= alert.enough_data %>
        <%= alert.relevance %>
        <%= nice_dates alert.run_on %>
        <%= nice_date_times alert.created_at %>

    <% end %>

Remove alert subscriptions from alert reports


<a class="js-jump-scroll" href="#<%= @link %>" id="<%= @link %>"><%= @section.section %> <%= @section.filename %>

<%= @description %>

      <% if @section.modifiers.any? %>

          <% @section.modifiers.each do |modifier| %>

<%= modifier.name %> - <%= modifier.description %>

          <% end %>

      <% end %>

      <%= @example_html %>

    <% @section.modifiers.each do |modifier| %>

        <%= modifier.name %>
        <%= @example_html.gsub('$modifier_class', " #{modifier.class_name}") %>

    <% end %>

<%= @escaped_html %>

Remove extra paragraph wrapper around markdown description.


<div class='facet_item <%= "active" if item.has_key?('children') %>'>
  <%= tabs(level) %>
  <% if item.has_key?('id') %>
    <%= link_to_facet display_filter_term(item['id']), term_type, item['id'] %>
  <% else %>
    <%= link_to_facet "Any #{term_type.to_s.titleize.downcase}", term_type %>
  <% end %>
  (<%= item['count'] %>)

<div class='facet_item <%= "active" if item.has_key?('children') %>'>
  <%= tabs(level) %>
  <% if item.has_key?('id') %>
    <%= link_to_facet display_filter_term(item['id']), term_type, item['id'] %>
  <% else %>
    <%= link_to_facet "Any #{term_type.to_s.titleize.downcase}", term_type %>
	<% item['count'] = 'none' if item.has_key?('children') && item['children'].empty? %>
  <% end %>
  (<%= item['count'] %>)

Change count to None when there are no sub-categories in facet.