<%= @user.first_name %>'s CityGems

Gems I've created

<% if @created.length > 0 %>

    <% @created.each do |pin| %>

         <%= link_to pin.name, pin_path(pin) %>

Appeal: <%= pin.appeal %>

    <% end %>

<% else %>

It looks like you haven't created any pins yet!

<% end %>

Gems I've commented on

<% if @commented.length > 0 %>

    <% @commented.each do |pin| %>

         <%= link_to pin.name, pin_path(pin) %>

 My comment(s):

          <% pin.comments.where(user_id: @user.id).each do |comment| %>

<%= comment.content %>

          <% end %>

    <% end %>

<% else %>

It looks like you haven't commented on any pins yet!

<% end %>

<%= @user.first_name %>'s CityGems

Gems I've created

<% if @created.length > 0 %>

    <% @created.each do |pin| %>

         <%= link_to pin.name, pin_path(pin) %>

Appeal: <%= pin.appeal %>

    <% end %>

<% else %>

It looks like you haven't created any pins yet!

<% end %>

Gems I've commented on

<% if @commented.length > 0 %>

    <% @commented.each do |pin| %>

         <%= link_to pin.name, pin_path(pin) %>
        <% if pin.comments.where(user_id: @user.id).length > 1 %>

 My comments:

        <% else %>

 My comment:

        <% end %>

          <% pin.comments.where(user_id: @user.id).each do |comment| %>

<%= comment.content %>

          <% end %>

    <% end %>

<% else %>

It looks like you haven't commented on any pins yet!

<% end %>

Make comments label display the correct plural/singular form


# http://upstart.ubuntu.com/wiki/Stanzas

description <%= @description %>
author      <%= @author %>

stop on shutdown
respawn
respawn limit 20 5

script
  exec google-drive-sync \
    --out-dir <%= @output_dir %> \
    --credentials <%= @credentials_path %> \
    --plugins <%= @plugin_path %> \
    --interval <%= @interval %> \
    --state <%= @state_path %> \
    ><%= @log_path %> 2>&1
end script

post-start script
   echo "started <%= @description %>"
end script

# This file is managed by Puppet, do not edit manually, your changes will be overwritten.
# http://upstart.ubuntu.com/wiki/Stanzas

description <%= @description %>
author      <%= @author %>

start on filesystem and net-device-up IFACE!=lo
stop on shutdown
respawn
respawn limit 20 5

script
  exec google-drive-sync \
    --out-dir <%= @output_dir %> \
    --credentials <%= @credentials_path %> \
    --plugins <%= @plugin_path %> \
    --interval <%= @interval %> \
    --state <%= @state_path %> \
    ><%= @log_path %> 2>&1
end script

post-start script
   echo "started <%= @description %>"
end script

Make sure google-drive-sync starts on boot


exports.migrate = function(input) {
  // To view JavaScript console logs in the Rails debug log, be sure to make them single value and to only pass them
  // strings.  JSON.stringify is an easy way to dump a structure.
  console.log('the properties passed to migrate are: ');
  console.log(JSON.stringify(input));
  input.variable_migrations.push({
    from: input.properties['.web_server.generated_secret_to_migrate_to_credhub_<%= previous_major_and_minor_version %>'],
    to_variable: 'generated-secret-migrated-to-credhub'
  });
  return input;
};

exports.migrate = function(input) {
  // To view JavaScript console logs in the Rails debug log, be sure to make them single value and to only pass them
  // strings.  JSON.stringify is an easy way to dump a structure.
  console.log('the properties passed to migrate are: ');
  console.log(JSON.stringify(input));
  //migrate a secret
  input.variable_migrations.push({
    from: input.properties['.web_server.generated_secret_to_migrate_to_credhub_<%= previous_major_and_minor_version %>'],
    to_variable: 'generated-secret-migrated-to-credhub'
  });
  //migrate an rsa key
  input.variable_migrations.push({
    from: input.properties['.web_server.generated_rsa_pkey_credentials_to_migrate_to_credhub_<%= previous_major_and_minor_version %>'],
    to_variable: 'generated-rsa-key-migrated-to-credhub'
  });
  return input;
};

Add a migration to migrate an rsa pkey credential

[#143464505]

Signed-off-by: Tom Dunlap <329c7d75de881b58d3d971dc02fa4530c06ae3cb@pivotal.io>


[This notification is delivered by Amazon SNS]

Dear <%= @target.printable_target_name %>

<%= @notification.notifier.present? ? @notification.notifier.printable_notifier_name : 'Someone' %> notified you of <%= @notification.notifiable.printable_notifiable_name(@notification.target) %><%= " in #{@notification.group.printable_group_name}" if @notification.group.present? %>.

<%= "Move to notified #{@notification.notifiable.printable_type.downcase}:" %>
  <%= move_notification_url_for(@notification, open: true) %>

[This notification is delivered by ActivityNotification with Amazon SNS]

Dear <%= @target.printable_target_name %>

<%= @notification.notifier.present? ? @notification.notifier.printable_notifier_name : 'Someone' %> notified you of <%= @notification.notifiable.printable_notifiable_name(@notification.target) %><%= " in #{@notification.group.printable_group_name}" if @notification.group.present? %>.

<%= "Move to notified #{@notification.notifiable.printable_type.downcase}:" %>
  <%= move_notification_url_for(@notification, open: true) %>

Update sample view for Amazon SNS optional target


Send invitation

<%= form_for resource, :as => resource_name, :url => invitation_path(resource_name), :html => {:method => :post, :class => "form-horizontal"} do |f| %>
  <fieldset>
    <legend>
      Invitations left: <%= current_user.invitation_limit %>
    </legend>
    <%= devise_error_messages! %>

    <% if current_user.has_invitations_left? %>

        <%= f.label :email, class: "control-label" %>

          <%= f.text_field :email, class: "input-xlarge" %>

      <% content_for :personalized_message do %>

        <%= f.label :message, class: "control-label" %>

          <%= text_area :invite, :message, class: "input-xlarge", rows: 4 %>

      <% end %>

      <%= render 'users/mailer/invitation_text' %>

        <%= f.submit "Send an invitation", class: "btn btn-primary" %>

    <% end %>
  </fieldset>
<% end %>

Send invitation

<%= form_for resource, :as => resource_name, :url => invitation_path(resource_name), :html => {:method => :post, :class => "form-horizontal"} do |f| %>
  <fieldset>
    <legend>
      Invitations left: <%= current_user.invitation_limit %>
    </legend>
    <%= devise_error_messages! %>

    <% if current_user.has_invitations_left? %>

        <%= f.label :email, class: "control-label" %>

          <%= f.text_field :email, class: "input-xlarge" %>

      <% content_for :personalized_message do %>

        <%= f.label :message, class: "control-label" %>

          <%= text_area :invite, :message, class: "input-xlarge", rows: 4 %>

      <% end %>

      <%= render 'users/mailer/invitation_text' %>

        <%= f.submit "Send an invitation", class: "btn btn-primary", disable_with: "Sending..." %>

    <% end %>
  </fieldset>
<% end %>

Disable "Send an invitation"-button on click

Signed-off-by: tomdev <96835dd8bfa718bd6447ccc87af89ae1675daeca@codigy.nl>


<% breadcrumb = "
#{current_page.data.section}
" %>
<% html = "#{breadcrumb}
#{current_page.data.title}
#{yield}" %>

<% content_for :page_description, Snippet.generate(html) %>

<% content_for :sidebar do %>
  ‹ Manual
  <%= single_page_table_of_contents html, max_level: 3 %>
<% end %>

<% wrap_layout :core do %>
  <% if current_page.data.section == "Icinga alerts" %>

      This page describes what to do in case of an
      Icinga alert.
      For more information you could
      <a href='https://github.com/alphagov/govuk-puppet/search?utf8=%E2%9C%93&q=<%= File.basename(current_page.path, ".*") %>'>
        search the govuk-puppet repo for the source of the alert

  <% end %>

  <%= html %>

  <%= partial 'partials/related_content' %>
<% end %>

<%
  breadcrumb = if current_page.data.section == "Icinga alerts"
                 ""
               else
                 "
#{current_page.data.section}
"
               end
%>
<% html = "#{breadcrumb}
#{current_page.data.title}
#{yield}" %>

<% content_for :page_description, Snippet.generate(html) %>

<% content_for :sidebar do %>
  ‹ Manual
  <%= single_page_table_of_contents html, max_level: 3 %>
<% end %>

<% wrap_layout :core do %>
  <% if current_page.data.section == "Icinga alerts" %>

      This page describes what to do in case of an
      Icinga alert.
      For more information you could
      <a href='https://github.com/alphagov/govuk-puppet/search?utf8=%E2%9C%93&q=<%= File.basename(current_page.path, ".*") %>'>
        search the govuk-puppet repo for the source of the alert

  <% end %>

  <%= html %>

  <%= partial 'partials/related_content' %>
<% end %>

Stop generating 'Icinga alerts' breadcrumb for non-existing anchor

There is no 'Icinga alerts' section on manual.html, as alerts are
their own special thing. We already have logic in the manual_layout
template to do something different with Icinga Alerts, so it doesn't
seem controversial to add another conditional.

I did consider removing all 'section: Icinga alerts' lines from the
docs under /alerts, as they are ALL the same and we can infer it
from the path. But that feels like a future optimisation. In the
meantime I just want to stop linking to an anchor point that
doesn't exist.


Listing feeds

<% @feeds.each do |feed| %>

    <%= link_to 'Show', feed %>
    <%= link_to 'Destroy', feed, method: :delete, data: { confirm: 'Are you sure?' } %>

<% end %>

<% if @feeds.empty? %>

    No news at the moment

<% else %>

<% end %>

Add default notice for empty feed

Add default notice for empty feed


<% content_for :title, person.title %>

<%= render partial: "header", locals: { person: person } %>

    <%= render "govuk_publishing_components/components/image_card", {
      href: "#",
      image_src: person.image_url,
      image_alt: person.image_alt_text,
    } %>

    <%= render "govuk_publishing_components/components/contents_list", {
      contents: [
        {
          text: "Biography",
          href: "#biography"
        },
        person.has_previous_roles? ? {
          text: "Previous roles",
          href: "#previous-roles"
        } : nil,
      ].compact
    } %>

    <%= render partial: "biography", locals: { person: person } %>

    <%= render partial: "previous_roles", locals: { person: person } %>

    <%= render partial: "announcements", locals: { person: person } %>

<% content_for :title, person.title %>

<%= render partial: "header", locals: { person: person } %>

    <%= render "govuk_publishing_components/components/image_card", {
      href: "#",
      image_src: person.image_url,
      image_alt: person.image_alt_text,
    } %>

    <%= render "govuk_publishing_components/components/contents_list", {
      contents: [
        {
          text: "Biography",
          href: "#biography"
        },
        person.has_previous_roles? ? {
          text: "Previous roles",
          href: "#previous-roles"
        }: nil,
        person.has_announcements? ? {
            text: "Announcements",
            href: "#announcements"
        }: nil,
      ].compact
    } %>

    <%= render partial: "biography", locals: { person: person } %>

    <%= render partial: "previous_roles", locals: { person: person } %>

    <%= render partial: "announcements", locals: { person: person } %>

Add link to announcements to sidebar

Add link to announcements to sidebar


Add window divs to view

Add window divs to view


Enable to embed png to notebooks including Markdown cells


development: &default
  adapter: postgresql
  database: <%= app_name %>_development
  encoding: utf8
  host: localhost
  min_messages: warning
  pool: <%%= Integer(ENV.fetch("DB_POOL", 5)) %>
  reaping_frequency: <%%= Integer(ENV.fetch("DB_REAPING_FREQUENCY", 10)) %>
  timeout: 5000

test:
  <<: *default
  database: <%= app_name %>_test

production: &deploy
  encoding: utf8
  min_messages: warning
  pool: <%%= [Integer(ENV.fetch("MAX_THREADS", 5)), Integer(ENV.fetch("DB_POOL", 5))].max %>
  timeout: 5000
  url:  <%%= ENV.fetch("DATABASE_URL", "") %>

staging: *deploy

development: &default
  adapter: postgresql
  database: <%= app_name %>_development
  encoding: utf8
  min_messages: warning
  pool: <%%= Integer(ENV.fetch("DB_POOL", 5)) %>
  reaping_frequency: <%%= Integer(ENV.fetch("DB_REAPING_FREQUENCY", 10)) %>
  timeout: 5000

test:
  <<: *default
  database: <%= app_name %>_test

production: &deploy
  encoding: utf8
  min_messages: warning
  pool: <%%= [Integer(ENV.fetch("MAX_THREADS", 5)), Integer(ENV.fetch("DB_POOL", 5))].max %>
  timeout: 5000
  url:  <%%= ENV.fetch("DATABASE_URL", "") %>

staging: *deploy

Remove database host config for Linux support

Extracted from https://github.com/thoughtbot/administrate/pull/359.
Issue first reported in https://github.com/thoughtbot/administrate/issues/296.

Problem:

Ubuntu (and possibly other Linux distributions)
don't recognize `localhost` as a valid host parameter
in `config/database.yml`.

Running `bin/setup` gives them the error:

```
Couldn't create database for {"adapter"=>"postgresql",
"database"=>"administrate-prototype_development",
"encoding"=>"utf8",
"host"=>"localhost",
"min_messages"=>"warning",
"pool"=>2,
"timeout"=>5000}
```

Solution:

Remove the `host` key from `config/database.yml`.

Without the `host` key, OS X defaults to `localhost`
and Ubuntu defaults to its Linux-y equivalent.

[closes #683]


<% if Rails.env.production? && request.domain == ENV.fetch("ANNICT_JP_DOMAIN") %>
  <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
  <script>
    (adsbygoogle = window.adsbygoogle || []).push({
      google_ad_client: "<%= ENV.fetch('GOOGLE_AD_CLIENT_JP') %>",
      enable_page_level_ads: true
    });
  </script>
<% end %>

<% if Rails.env.production? %>
  <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
  <script>
    (adsbygoogle = window.adsbygoogle || []).push({
      google_ad_client: "<%= ENV.fetch('GOOGLE_AD_CLIENT_JP') %>",
      enable_page_level_ads: true
    });
  </script>
<% end %>

Allow to display ads even if domain is .com


  <% @categories.each do |category| %>
    <li class="<%= @category == category ? "active" : "" %>">
      <%= link_to category.description, items_path(category_id: category.id) %>

  <% end %>

<a href="<%= new_category_path %>" type="button" class="btn btn-primary btn-block">
  Create Category

Add id to the category ul for styling

Add id to the category ul for styling


<%= cache page do %>
  <%= content_tag :section, :id => page.perma_id, :class => page_css_class(page), :data => {:template => page.template, :id => page.id, :chapter_id => page.chapter_id} do %>
    <%= render_page_template(page, entry: entry) %>
    <%= t('pageflow.public.goto_top') %>
  <% end %>
<% end %>

<%= cache page do %>
  <%= content_tag(:section,
                  id: page.perma_id,
                  class: page_css_class(page),
                  data: {
                    template: page.template,
                    id: page.id, chapter_id: page.chapter_id
                  }) do -%>
    <% concat(render_page_template(page, entry: entry)) -%>
  <% end %>
  <%= t('pageflow.public.goto_top') %>
<% end %>

Move top links out of page sections

Move top links out of page sections

Fix React render warnings by removing whitespace and other nodes which
are not rendered by React from page section elements.


<%= form_for [@review,@comment]  do |f|%>

    <%= f.label :body %>
    <%= f.text_field :body %>

    <%= f.check_box :anonymous,{}, checked_value = true, unchecked_value = false %>
    <%= f.label :anonymous  %>

    <%= f.submit "Submit Comment" %>

<% end %>

Create new partital for the comment

Create new partital for the comment


---
- job:
    name: record-taxonomy-metrics
    display-name: Record metrics about the Topic Taxonomy
    project-type: freestyle
    description: |
      This job runs a rake task in Content Tagger to send metrics
      about the Topic Taxonomy to statsd.
    logrotate:
      daysToKeep: 30
    triggers:
      - timed: 'H/30 * * * *'
    builders:
      - shell: |
          #!/bin/bash
          set -eu

          cd "${WORKSPACE}"

          CONTENT_TAGGER=$(govuk_node_list --single-node -c backend)

          ssh deploy@$CONTENT_TAGGER "cd /var/apps/content-tagger && govuk_setenv content-tagger bundle exec rake metrics:taxonomy:count_content_per_level metrics:taxonomy:record_content_coverage_metrics"

---
- job:
    name: record-taxonomy-metrics
    display-name: Record metrics about the Topic Taxonomy
    project-type: freestyle
    description: |
      This job runs a rake task in Content Tagger to send metrics
      about the Topic Taxonomy to statsd.
    logrotate:
      daysToKeep: 30
    triggers:
      - timed: 'H/30 * * * *'
    builders:
      - shell: |
          #!/bin/bash
          set -eu

          cd "${WORKSPACE}"

          CONTENT_TAGGER=$(govuk_node_list --single-node -c backend)

          ssh deploy@$CONTENT_TAGGER "cd /var/apps/content-tagger && govuk_setenv content-tagger bundle exec rake metrics:taxonomy:record_all"

Update record taxonomy metrics Jenkins job

Running the tasks to record taxonomy metrics is consolidated in
a single 'record_all' Rake task. This change changes the Jenkins
job to run this single task instead of the individual recording
tasks.

See also: https://github.com/alphagov/content-tagger/pull/611


<%= notice %>

Welcome to <%= @city.name %>, <%= @city.state %>

<%= @city.state %>, <%= @city.zip %>

<% @city.bins.each do |bin| %>

The following items can be thrown in the <%= bin.name %> bin:

<% bin.categories.each do |category| %>

<%= category.name %>

		<% category.items.each do |item| %>

<%= item.name %>

		<% end %>
	<% end %>

<% end %>

<%= link_to 'Edit', edit_city_path(@city) %> |
<%= link_to 'Back', cities_path %>

<%= notice %>

Welcome to <%= @city.name %>, <%= @city.state %>

<%= @city.zip %>

<% @city.bins.each do |bin| %>

The following items can be thrown in the <%= bin.name %> bin:

<% bin.categories.each do |category| %>

<%= category.name %>

		<% bin.items.where(category: category).each do |item| %>

<%= item.name %>

		<% end %>
	<% end %>

<% end %>

<%= link_to 'Edit', edit_city_path(@city) %> |
<%= link_to 'Back', cities_path %>

Fix issue where all items for a category were displayed on city show.

Instead, we display only the items in that category which can be
recycled by the city.


Contact the [relevant local authorities](http://www.dha.gov.za/index.php/civic-services/marriage-certificates) in South Africa to find out about local marriage laws, including what documents you’ll need.

^You should [get legal advice](/government/collections/list-of-lawyers) and check the [travel advice for South Africa](/foreign-travel-advice/south-africa) before making any plans.^

The UK doesn’t issue certificates of no impediment (CNIs) for marriages in Commonwealth countries. The British High Commission in Pretoria or the Consulate General in Cape Town can provide a letter to explain this if you’re asked to provide a CNI or a similar document to prove you’re allowed to marry.

Contact the High Commission and Consulate General to arrange to collect a letter.

$C
<southafrica.consulate@fco.gov.uk>
$C

The letter must be signed and stamped by a member of the consular staff.

##Naturalisation of your partner if they move to the UK

Your partner can apply to [become a British citizen](/becoming-a-british-citizen/if-your-spouse-is-a-british-citizen) once they’ve lived in the UK for 3 years.

Contact the [relevant local authorities](http://www.dha.gov.za/index.php/civic-services/marriage-certificates) in South Africa to find out about local marriage laws, including what documents you’ll need.

^You should [get legal advice](/government/collections/list-of-lawyers) and check the [travel advice for South Africa](/foreign-travel-advice/south-africa) before making any plans.^

The UK doesn’t issue certificates of no impediment (CNIs) for marriages in Commonwealth countries. You can get a letter to explain this if you’re asked to provide a CNI or a similar document to prove you’re allowed to marry.

Book an appointment to collect a letter at the [British Consulate General in Cape Town](https://www.consular-appointments.service.gov.uk/fco/#!/british-consulate-general-cape-town/providing-an-informative-note/slot_picker) or the [British High Commission in Pretoria](https://www.consular-appointments.service.gov.uk/fco/#!/british-high-commission-pretoria/providing-an-informative-note/slot_picker).

The letter is free. If you can't go to an appointment, you can ask a friend or family member to make an appointment and collect it for you.

##Naturalisation of your partner if they move to the UK

Your partner can apply to [become a British citizen](/becoming-a-british-citizen/if-your-spouse-is-a-british-citizen) once they’ve lived in the UK for 3 years.

Add appointment link for explanatory letter


Panel with heading right

Panel title

      Default

    Panel content

<%= highlight do %>

Panel title

    Default

  Panel content

<% end %>

Add label-default to panel heading right


[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
buffer-size=<%= @uwsgi_buffer_size %>
listen=<%= @uwsgi_listen_backlog_limit %>
post-buffering=4096
env= LANG=C.UTF-8
uid=zulip
gid=zulip

stats=/home/zulip/deployments/uwsgi-stats

<% if @uwsgi_rolling_restart != '' -%>
master-fifo=/home/zulip/deployments/uwsgi-control
hook-post-fork=chdir:/home/zulip/deployments/current
# lazy-apps are required for rolling restarts:
# https://uwsgi-docs.readthedocs.io/en/latest/articles/TheArtOfGracefulReloading.html#preforking-vs-lazy-apps-vs-lazy
lazy-apps=true
<% end -%>

ignore-sigpipe = true
ignore-write-errors = true
disable-write-exception = true

[uwsgi]
# Basic environment
env=LANG=C.UTF-8
uid=zulip
gid=zulip

# Where the main application is located
chdir=/home/zulip/deployments/current/
module=zproject.wsgi:application

# Start a master process listening on this socket
master=true
chmod-socket=700
chown-socket=zulip:zulip
socket=/home/zulip/deployments/uwsgi-socket
listen=<%= @uwsgi_listen_backlog_limit %>

# How many serving processes to fork
processes=<%= @uwsgi_processes %>

# Longest response allowed, in seconds, before killing the worker
harakiri=20

# Size of HTTP headers to read
buffer-size=<%= @uwsgi_buffer_size %>

# The master process will buffer requests with bodies longer than 4096
# bytes, freeing up workers from hanging around waiting to read them.
post-buffering=4096

# Create a socket to serve very basic UWSGI stats
stats=/home/zulip/deployments/uwsgi-stats

<% if @uwsgi_rolling_restart != '' -%>
# If we are doing a rolling restart, re-chdir to the current "current"
# directory in each forked process
hook-post-fork=chdir:/home/zulip/deployments/current

# lazy-apps are required for rolling restarts:
# https://uwsgi-docs.readthedocs.io/en/latest/articles/TheArtOfGracefulReloading.html#preforking-vs-lazy-apps-vs-lazy
lazy-apps=true

# Create a control socket, allowing fancier runtime control
master-fifo=/home/zulip/deployments/uwsgi-control

<% end -%>
# Silence warnings from clients closing their connection early
ignore-sigpipe = true
ignore-write-errors = true
disable-write-exception = true

Reorganize and comment uwsgi.ini file.

puppet: Reorganize and comment uwsgi.ini file.

As the uwsgi documentation is somewhat obtuse, more comments are added
here than might usually be.


You may be able to register a civil partnership or get married at the British embassy or consulate in Peru.

[Make an appointment at the embassy in Lima.](https://www.book-consular-appointment.service.gov.uk/TimeSelection?location=125&service=10)

##What documents you’ll need

You need to have been living in Peru for 21 days. You and your partner will need to sign a declaration and provide proof of residence for example, an employer’s letter or a bank statement.

You’ll both need to bring your original passports. You’ll also need evidence that your partner is free to marry - a document from their government or their passport that says they are unmarried. If either of you have been divorced, widowed or in a civil partnership before, you’ll also need to provide:

- a [decree absolute or final order](/copy-decree-absolute-final-order)
- the [death certificate](/order-copy-birth-death-marriage-certificate/)

##What you need to do

At your appointment the embassy or consulate will give you:

-  a notice of registration
-  a declaration that you and your partner will need to swear, stating that you’re legally entitled to marry or enter into a civil partnership

Once you’ve completed these and paid the registration fee, the embassy or consulate will display your notice publicly for 14 days.

As long as nobody registers an objection you can get married or enter into a civil partnership up to 3 months after you gave notice.

You’ll need to bring two witnesses to your ceremony - they’ll need to show their photo ID (for example passport or driver’s licence).

You’ll need to pay a fee to register your marriage or civil partnership and a fee for your marriage or civil partnership certificate.

^All same-sex marriages must take place under English and Welsh or Scottish law even if you live in or are from Northern Ireland. Tell the embassy or consulate which law you want to get married under at your appointment.^

##Naturalisation of your partner if they move to the UK

Your partner can apply to [become a British citizen](/becoming-a-british-citizen/if-your-spouse-is-a-british-citizen) once they’ve lived in the UK for 3 years.

## Fees

<%= render partial: 'consular_fees_table_items',
    collection: calculator.services,
    as: :service,
    locals: { calculator: calculator } %>

You normally have to pay fees for consular services in the local currency - these are shown in the list of [consular fees for Peru](/government/publications/peru-consular-fees).

You can pay by cash or credit card, but not by personal cheque.

It’s not possible to get legal recognition for your same-sex relationship in Jordan.

Remove same-sex option for Peru - UK, local 1


<% content_for :title do %>
  What was the old average weekly amount you gave the Tax Credit Office?
<% end %>

<% content_for :body do %>
  If you don’t know what your previous childcare costs were, check your award or renewal notice.

  Round the total up to the nearest pound.

<% end %>

<% content_for :title do %>
  What was the old average weekly amount you gave the Tax Credit Office?
<% end %>

<% content_for :post_body do %>
  If you don’t know what your previous childcare costs were, check your award or renewal notice.
<% end %>

<% content_for :hint do %>
  Round the total up to the nearest pound.
<% end %>

Split body into post_body and hint

Split body into post_body and hint


<% if calculator.want_to_get_married? %>
  Marriage in Mayotte
<% else %>
  PACS in Mayotte
<% end %>

<% if calculator.ceremony_country_is_french_overseas_territory? %>
  Marriage in Mayotte
<% end %>

Add correct title for Mayotte as French Overseas Territory


<% content_for :title do %>
  Find coronavirus financial support for your business
<% end %>

<% content_for :meta_description do %>
  Coronavirus (COVID-19) support is available to employers and the
  self-employed. You may be eligible for loans, tax relief and cash grants,
  whether your business is open or closed.
<% end %>

<% content_for :body do %>
  Coronavirus (COVID-19) support is available to employers and the
  self-employed. You may be eligible for loans, tax relief and cash grants.

  Use this business support finder to see what support is available for you
  and your business.
<% end %>

<% content_for :title do %>
  Find coronavirus financial support for your business
<% end %>

<% content_for :meta_description do %>
  Coronavirus (COVID-19) support is available to employers and the
  self-employed. You may be eligible for loans, tax relief and cash grants,
  whether your business is open or closed.
<% end %>

<% content_for :body do %>
  Coronavirus (COVID-19) support is available to employers and the
  self-employed. You may be eligible for loans, tax relief and cash grants,
  whether your business is open or closed.

  Use this business support finder to see what support is available for you
  and your business.
<% end %>

Fix missing content coronavirus business support start page.

Content was added to the meta description, but missed for the
description block.


# DO NOT EDIT - This file is being maintained by Chef

/var/log/squid/*.log {
  daily
  compress
  compresscmd /usr/bin/xz
  uncompresscmd /usr/bin/unxz
  compressext .xz
  rotate 2
  missingok
  nocreate
  sharedscripts
  postrotate
    test ! -e /var/run/squid.pid || /usr/sbin/squid -k rotate
    /usr/bin/rsync /var/log/squid/zere.log.1.xz ironbelly::logs/tile.openstreetmap.org/<%= node[:hostname] %>-`date -d "-1 days" +%Y-%m-%d`.xz || true
  endscript
}

# DO NOT EDIT - This file is being maintained by Chef

/var/log/squid/*.log {
  daily
  compress
  compresscmd /usr/bin/xz
  uncompresscmd /usr/bin/unxz
  compressext .xz
  rotate 2
  missingok
  nocreate
  sharedscripts
  postrotate
    test ! -e /var/run/squid.pid || /usr/sbin/squid -k rotate
  endscript
  lastaction
    /usr/bin/rsync /var/log/squid/zere.log.1.xz ironbelly::logs/tile.openstreetmap.org/<%= node[:hostname] %>-`date -d "-1 days" +%Y-%m-%d`.xz || true
  endscript
}

Move log copying to a lastaction scriptlet


<%= bootstrap_form_for user_organization, url: destroy_user_organization_path(user_organization, format: :json), remote: :true, method: :delete, data: { id: "destroy-user-organization-form" } do |f| %>

<%= t("users.settings.organizations.edit.destroy_uo_message", user: user_organization.user.full_name, org: user_organization.organization.name) %>

    <%= t("users.settings.organizations.edit.destroy_uo_alert_heading") %>

<%= t("users.settings.organizations.edit.destroy_uo_alert_line_1") %>

<%= t("users.settings.organizations.edit.destroy_uo_alert_line_2").html_safe %>

<%= t("users.settings.organizations.edit.destroy_uo_alert_line_3") %>

<% end %>

<%= bootstrap_form_for user_organization, url: destroy_user_organization_path(user_organization, format: :json), remote: :true, method: :delete, data: { id: "destroy-user-organization-form" } do |f| %>

<%= t("users.settings.organizations.edit.destroy_uo_message", user: user_organization.user.full_name, org: user_organization.organization.name) %>

  <% if user_organization.user.confirmed? %>

      <%= t("users.settings.organizations.edit.destroy_uo_alert_heading") %>

<%= t("users.settings.organizations.edit.destroy_uo_alert_line_1") %>

<%= t("users.settings.organizations.edit.destroy_uo_alert_line_2").html_safe %>

<%= t("users.settings.organizations.edit.destroy_uo_alert_line_3") %>

  <% end %>
<% end %>

Remove warning info when removing pending user from organization


<%= f.label t("fb_app_plugin.views.myprofile.catalogs.query_label") %>
<%= f.text_field :query, placeholder: t('fb_app_plugin.views.page_tab.query.placeholder') %>

<%= f.label t("fb_app_plugin.views.myprofile.catalogs.query_label") %>
<%= f.text_field :query, placeholder: t('fb_app_plugin.views.page_tab.query.placeholder'), class: 'form-control' %>

Add form-control to query select

Add form-control to query select


<Directory /usr/share/foreman/public/assets>

  # Use standard http expire header for assets instead of ETag
  <IfModule mod_expires.c>
    Header unset ETag
    FileETag None
    ExpiresActive On
    ExpiresDefault "access plus 1 year"
  </IfModule>

  # Return compressed assets if they are precompiled
  <IfModule mod_rewrite.c>
    RewriteEngine on
    # Make sure the browser supports gzip encoding and file with .gz added
    # does exist on disc before we rewrite with the extension
    RewriteCond %{HTTP:Accept-Encoding} \b(x-)?gzip\b
    RewriteCond %{REQUEST_FILENAME}.gz -s
    RewriteRule ^(.+) $1.gz [L]
    # Set headers for all possible assets which are compressed
    <FilesMatch \.css\.gz$>
      ForceType text/css
      Header set Content-Encoding gzip
      SetEnv no-gzip
    </FilesMatch>
    <FilesMatch \.js\.gz$>
      ForceType text/javascript
      Header set Content-Encoding gzip
      SetEnv no-gzip
    </FilesMatch>
  </IfModule>

</Directory>

Add rewrite rules in the right section for Foreman vhost


<script>
  (function (i, s, o, g, r, a, m) {
    i['GoogleAnalyticsObject'] = r;
    i[r] = i[r] || function () {
          (i[r].q = i[r].q || []).push(arguments)
        }, i[r].l = 1 * new Date();
    a = s.createElement(o),
        m = s.getElementsByTagName(o)[0];
    a.async = 1;
    a.src = g;
    m.parentNode.insertBefore(a, m)
  })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');

  ga('create', <%= Rails.application.secrets.google_analytics_id %>, 'auto');
  ga('send', 'pageview');

</script>

<script>
  (function (i, s, o, g, r, a, m) {
    i['GoogleAnalyticsObject'] = r;
    i[r] = i[r] || function () {
          (i[r].q = i[r].q || []).push(arguments)
        }, i[r].l = 1 * new Date();
    a = s.createElement(o),
        m = s.getElementsByTagName(o)[0];
    a.async = 1;
    a.src = g;
    m.parentNode.insertBefore(a, m)
  })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');

  ga("create", "<%= Rails.application.secrets.google_analytics_id %>", "auto");
  ga("send", "pageview");

</script>

Fix bug in google_analytics partial so tid is passed as a string.


🎧 アプリで聴く

    <%= lazy_image_tag('https://tools.applemediaservices.com/api/badges/listen-on-apple-podcasts/badge/ja-JP?size=250x83&releaseDate=1596412800&h=47ef418d9788a856fa78aa97c154cfe5', alt: 'Listen on Apple Podcasts', style: 'border-radius: 13px; width: 250px; height: 83px;') %>

Enable lazyload for Listen on Apple image


<% content_for(:page_title, t('styleguide.title', page_title: 'Locations near you')) %>

Face-to-face appointments near sw

sw is not a valid postcode. Please try again.

<form action="/styleguide/pages/locations-index" method="get">
  Find a location near you
  <input type="text" class="form-control" name="postcode" id="location" value="sw">
  <input type="submit" class="button" value="Search">
</form>

Or you can book a phone appointment instead.

<% content_for :sidebar do %>
  <%= render 'styleguide/components/locator_link_promo_book' %>
<% end %>

<% content_for :breadcrumbs do %>
  <%= render 'styleguide/components/locator_breadcrumbs_items', items: 2 %>
<% end %>

<% content_for(:page_title, t('styleguide.title', page_title: 'Locations near you')) %>

Face-to-face appointments near sw

<form action="/styleguide/pages/locations-index" method="get">

      Find a location

        London is not a valid postcode. Please try again.
e.g SW17 0QE

    <input type="text" class="form-control" name="postcode" id="location" value="London">
    <input type="submit" class="button" value="Search">

</form>

Or you can book a phone appointment instead.

<% content_for :sidebar do %>
  <%= render 'styleguide/components/locator_link_promo_book' %>
<% end %>

<% content_for :breadcrumbs do %>
  <%= render 'styleguide/components/locator_breadcrumbs_items', items: 2 %>
<% end %>

Improve invalid postcode feedback in style guide


<%= link_to "home", '/' %>

<%= link_to "jots", '/jots' %>

<%= link_to "projects", '/projects' %>

      <form role="search" action="/search" method="get">
        <input class="search-term" type="search" placeholder="Search..." name="q" />
        <button class="search-submit" type="submit">

        </button>
      </form>

<%= link_to "home", '/' %>

<%= link_to "jots", '/jots' %>

<%= link_to "projects", '/projects' %>

<%= link_to "academia", '/academia' %>

      <form role="search" action="/search" method="get">
        <input class="search-term" type="search" placeholder="Search..." name="q" />
        <button class="search-submit" type="submit">

        </button>
      </form>

Add an “academia” section to the main nav


Trailmix Privacy Policy

Your entries are private.

  Your entries are not publicly-accessible. They can only be viewed by logging
  into your account or when sent to you via email.

  We will never view your entries unless absolutely necessary for technical
  reasons, such as fixing a bug (unlikely).

  The entries are not searchable by Google.

Your entries are deletable.

  If you no longer wish to use Trailmix, we will happily delete your account
  and all entries.

No third parties.

  We will never sell or share your information with third parties.

Trailmix Privacy Policy

Your entries are private.

  Your entries are not publicly-accessible. They can only be viewed by logging
  into your account or when sent to you via email.

  We will never view your entries unless absolutely necessary for technical
  reasons, such as fixing a bug (unlikely).

  The entries are not searchable by Google.

Your entries are deletable.

  If you no longer wish to use Trailmix, you can delete your account and all
  your entries with a click.

No third parties.

  We will never sell or share your information with third parties.

Clarify users can delete their own accounts


<%= @project.title %>

<% if is_professor? %>

<%= @project.remaining_time %> hours remaining

	<% if @project.remaining_time < 0 %>

over budget

	<% end %>
<% elsif is_student? %>

<%= @student_total_hours %> hours worked on this project

<% end %>

<%= @project.hypothesis %>

<%= @project.summary %>

Status: <%= @project.status %>

<% @project.records.each do |record| %>
	<%= record.student.name%>

	<%= record.observations %>

	<% if is_professor? %>
		<%= record.hours_worked%> hours worked

	<% end %>
<% end %>

<% if is_student? %>
	<%= form_for @record , html: {class: "form-group"} do |f| %>
	  <%= f.hidden_field :project_id, value: @project.id %>
	  <%= f.label :hours_worked %>
	  <%= f.number_field :hours_worked %>

	  <%= f.label :observations %>
	  <%= f.text_area :observations, cols: 30, rows: 15%>

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

<%= @project.title %>

<% if is_professor? %>

<%= @project.remaining_time %> hours remaining

	<% if @project.remaining_time < 0 %>

over budget

	<% end %>
<% elsif is_student? %>

<%= @student_total_hours %> hours worked on this project

<% end %>

<%= @project.hypothesis %>

<%= @project.summary %>

Status: <%= @project.status %>

<%= render :"shared/errors" %>
<% @project.records.each do |record| %>
	<%= record.student.name%>

	<%= record.observations %>

	<% if is_professor? %>
		<%= record.hours_worked%> hours worked

	<% end %>
<% end %>

<% if is_student? %>
	<%= form_for @record , html: {class: "form-group"} do |f| %>
	  <%= f.hidden_field :project_id, value: @project.id %>
	  <%= f.label :hours_worked %>
	  <%= f.number_field :hours_worked %>

	  <%= f.label :observations %>
	  <%= f.text_area :observations, cols: 30, rows: 15%>

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

Add errors to the project show page for when records are created


<%= 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' %>
<%= button_to 'Moved? Update Your Neighborhood', groups_assign_path, method: 'get' %>

Add a small styling fix.

Add a small styling fix.


New Question

			<textarea class="new_question" placeholder="What would you like to know?" cols="75" rows="1" autofocus></textarea>
			<button>Formulate</button>

Tags

			<input class="new_tag" placeholder="Any Tags?" autofocus>

Add potential templates for tags and questions using handlebars templating to new question view


<%= form_for @response, url: {action: "create"} do |f| %>

    <%= f.label :content, 'Make a Comment:'%>

    <%= f.text_area :content, size: "24x6" %>

    <%= f.submit 'comment' %>

<% end %>

Add view to create new comment

Add view to create new comment


<% content_for :title, "Suspend [#{@user.name}]" %>

<%= link_to @user.name, user_path(@user) %>

Suspend

Suspend “<%= @user.name %>”

<%= form_tag suspension_path(@user), method: "put", :class => 'well remove-top-padding' do %>

      <%= check_box_tag "user[suspended]", "1", @user.suspended? %>
      Suspended?

    Reason for suspension
    <%= text_field_tag "user[reason_for_suspension]", @user.reason_for_suspension, class: 'form-control input-md-6' %>

  <%= submit_tag "Save", class: "btn btn-primary add-right-margin" %>
  <%= link_to "Cancel", user_path(@user), class: "btn btn-default" %>
<% end %>

<% content_for :title, "Suspend [#{@user.name}]" %>

<%= link_to @user.name, user_path(@user) %>

Suspend

Suspend “<%= @user.name %>”

<%= form_tag suspension_path(@user), method: "put", :class => 'well remove-top-padding' do %>

      <%= check_box_tag "user[suspended]", "1", @user.suspended? %>
      Suspended?

    Reason for suspension
    <%= text_field_tag "user[reason_for_suspension]", @user.reason_for_suspension, class: 'form-control input-md-6' %>

After the user has been unsuspended, they will need to reset their password.

  <%= submit_tag "Save", class: "btn btn-primary add-right-margin" %>
  <%= link_to "Cancel", user_path(@user), class: "btn btn-default" %>
<% end %>

Add note about password reset after unsuspension


    x

        <% if flash[:user_create_error] %>

<%= flash[:user_create_error] %>

        <% end %>
        <% if flash[:user_successful_destroy] %>

<%= flash[:user_successful_destroy] %>

        <% end %>

Register

        <%= form_for :user, url: users_path, html: { class: "pure-form pure-form-stacked"} do |f| %>

            <%= f.label :username %>
            <%= f.text_field :username, placeholder: "Username" %>

            <%= f.label :email %>
            <%= f.email_field :email, placeholder: "Email" %>

            <%= f.label :password %>
            <%= f.password_field :password, placeholder: "Password" %>

            <%= f.submit :Register, class: 'pure-button pure-button-primary' %>

        <% end %>

Update pure grid to u-1.

Update pure grid to u-1.


<%= link_to_function 'Post a message', "Element.show('wall_message'); $('message_body').focus();" %>
on <%=h @person.name_possessive %> wall.

  <% form_for Message.new(:wall => @person), :html => {:style => 'border:none;'} do |form| %>
    <%= form.hidden_field :wall_id %>
    All users will see your message; to send a private
    message, <%= link_to 'click here', new_message_path(:person_id => @person) %>.

    <%= form.text_area :body, :rows => 3, :cols => 40 %>
    Please respect the privacy of others. Abusing the wall will get you banned from the site.

    <%= submit_tag 'Save Message' %>
  <% end %>

<%= link_to_function 'Post a message', "Element.show('wall_message'); $('message_body').focus();" %>
on <%=h @person.name_possessive %> wall.

  <% form_for Message.new(:wall => @person), :html => {:style => 'border:none;'} do |form| %>
    <%= form.hidden_field :wall_id %>
    All users will see your message; to send a private
    message, <%= link_to 'click here', new_message_path(:to_person_id => @person) %>.

    <%= form.text_area :body, :rows => 3, :cols => 40 %>
    Please respect the privacy of others. Abusing the wall will get you banned from the site.

    <%= submit_tag 'Save Message' %>
  <% end %>

Fix link to new private message (thanks to Ben Hudson).


<% cache [asset] do %>
  <a class="deprecated-card" href="<%= asset.url %>">

    <div class="deprecated-card-hero hover-toggle-wrapper" style="background-image:url(<%= firesize(asset.url, '426x284', 'g_center')%>)">
      <% if signed_in? && (asset.product.core_team?(current_user) || current_user.staff?) %>
        <a href="<%= product_asset_path(asset.product, asset) %>"
            class="hover-toggle-target"
            data-method="DELETE"
            data-confirm="Are you sure you want to delete this asset?"
            style="position:relative; top: -25px; left: 90%; color: gray;">
          <%= inline_react_component 'Icon', { icon: 'close' } %>

      <% end %>

          <%= asset.name %>
          <% if asset.room %>
            #<%= asset.room.number %>
          <% end %>

<% end %>

<% cache [asset] do %>

    <div class="deprecated-card-hero hover-toggle-wrapper" style="background-image:url(<%= firesize(asset.url, '426x284', 'g_center')%>)">
      <% if signed_in? && (asset.product.core_team?(current_user) || current_user.staff?) %>
        <a href="<%= product_asset_path(asset.product, asset) %>"
            class="hover-toggle-target"
            data-method="DELETE"
            data-confirm="Are you sure you want to delete this asset?"
            style="position: relative; top: 0; left: 90%; color: gray;">
          <%= inline_react_component 'Icon', { icon: 'close' } %>

      <% end %>

      <a href="<%= asset.url %>">

            <%= asset.name %>
            <% if asset.room %>
              #<%= asset.room.number %>
            <% end %>

<% end %>

Fix nested anchor tag issue on assets page

Browsers were interpreting the delete button differently and occasionally making it difficult to delete an asset (in Safari, for example)


        Claremontreview

Search for classes and professors.

          <%= render "layouts/search" %>

        Claremontreview

Search for classes, departments, and professors.

          <%= render "layouts/search" %>

Revert "Removed departments in welcome page"

This reverts commit 46d006e565fe019bbfc46fee9fd085ccc4cbf2d6.


<%= tab :overview, :route => :admin, :icon => 'icon-dashboard' %>
<%= tab :orders, :payments, :creditcard_payments, :shipments, :credit_cards, :return_authorizations, :icon => 'icon-shopping-cart' %>
<%= tab :products , :option_types, :properties, :prototypes, :variants, :product_properties, :taxons, :icon => 'icon-th-large' %>
<%= tab :reports, :icon => 'icon-file'  %>
<%= tab :configurations, :general_settings, :mail_methods, :tax_categories, :zones, :states, :payment_methods, :inventory_settings, :taxonomies, :shipping_methods, :trackers, :label => 'configuration', :icon => 'icon-wrench', :url => edit_admin_general_settings_path %>

<%= tab :overview, :route => :admin, :icon => 'icon-dashboard' %>
<%= tab :orders, :payments, :creditcard_payments, :shipments, :credit_cards, :return_authorizations, :icon => 'icon-shopping-cart' %>
<%= tab :products , :option_types, :properties, :prototypes, :variants, :product_properties, :taxons, :icon => 'icon-th-large' %>
<%= tab :reports, :icon => 'icon-file'  %>
<%= tab :configurations, :general_settings, :mail_methods, :tax_categories, :zones, :states, :payment_methods, :inventory_settings, :taxonomies, :shipping_methods, :trackers, :label => 'configuration', :icon => 'icon-wrench', :url => spree.edit_admin_general_settings_path %>

Fix for improperly namespaced url in admin

Without this change controllers which are:
a) outside of the Spree module namespace and
b) inherit from Spree::Admin::BaseController and
c) are routed inside the application's routing, not Spree's

will not be able to determine the url and their views will not
compile.

Fixes #2500


<%= t('.sign_in', :default => "Sign in") %>

    <%= form_for(resource, as: resource_name, url: session_path(resource_name), html: { role: "form" }) do |f| %>

        <%= f.label :email %>
        <%= f.email_field :email, autofocus: true, class: "form-control" %>

        <%= f.label :password %>
        <%= f.password_field :password, autocomplete: "off", class: "form-control" %>

      <% if devise_mapping.rememberable? %>

            <%= f.check_box :remember_me %>
            <%= f.label :remember_me %>

        <% end %>
      <%= f.submit  t('.sign_in', :default => "Sign in"), class: "btn btn-primary" %>
    <% end %>

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

<%= t('.sign_in', :default => "Sign in") %>

    <%= form_for(resource, as: resource_name, url: session_path(resource_name), html: { role: "form" }) do |f| %>

        <%= f.label :email %>
        <%= f.email_field :email, autofocus: true, class: "form-control" %>

        <%= f.label :password %>
        <%= f.password_field :password, autocomplete: "off", class: "form-control" %>

      <% if devise_mapping.rememberable? %>

          <%= f.label :remember_me do %>
            <%= f.check_box :remember_me %>remember me
          <% end %>

      <% end %>
      <%= f.submit  t('.sign_in', :default => "Sign in"), class: "btn btn-primary" %>
    <% end %>

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

Fix remember_me check box in new session file


<% content_for :head do %>
  <%= stylesheet_link_tag "application", media: "all" %>
  <%= javascript_include_tag 'application' %>
  <%= csrf_meta_tags %>
<% end %>

<% content_for :navbar_items do %>
  <% if user_can_administer_taxonomy? %>
    <li class='<%= active_navigation_item == 'taggings' ? 'active' : nil %>'>
      <%= link_to t('navigation.tagging_content'), lookup_taggings_path %>

  <% end %>

  <% if user_can_administer_taxonomy? %>
    <li class='<%= active_navigation_item.in?(%w[bulk_tags tag_migrations tagging_spreadsheets]) ? 'active' : nil %>'>
      <%= link_to t('navigation.bulk_tag'), new_bulk_tag_path %>

  <% end %>

  <% if user_can_administer_taxonomy? %>
    <li class='<%= active_navigation_item.in?(%w[taxons taxon_migrations root_taxons]) ? 'active' : nil %>'>
      <%= link_to t('navigation.taxons'), taxons_path %>

  <% end %>

  <% if user_can_access_tagathon_tools? %>
    <li class='<%= active_navigation_item == 'projects' ? 'active' : nil %>'>
      <%= link_to t('navigation.projects'), projects_path %>

  <% end %>
<% end %>

<%= render template: 'layouts/govuk_admin_template' %>

<% content_for :head do %>
  <%= stylesheet_link_tag "application", media: "all" %>
  <%= javascript_include_tag 'application' %>
  <%= csrf_meta_tags %>
<% end %>

<% content_for :navbar_items do %>
  <% if user_can_administer_taxonomy? %>
    <li class='<%= active_navigation_item == 'taggings' ? 'active' : nil %>'>
      <%= link_to t('navigation.tagging_content'), lookup_taggings_path %>

  <% end %>

  <% if user_can_administer_taxonomy? %>
    <li class='<%= active_navigation_item.in?(%w[bulk_tags tag_migrations tagging_spreadsheets]) ? 'active' : nil %>'>
      <%= link_to t('navigation.bulk_tag'), new_bulk_tag_path %>

  <% end %>

  <% if user_can_administer_taxonomy? %>
    <li class='<%= active_navigation_item.in?(%w[taxons taxon_migrations root_taxons]) ? 'active' : nil %>'>
      <%= link_to t('navigation.taxons'), taxons_path %>

  <% end %>

  <% if user_can_access_tagathon_tools? %>
    <li class='<%= active_navigation_item.in?(%w[projects project_content_items]) ? 'active' : nil %>'>
      <%= link_to t('navigation.projects'), projects_path %>

  <% end %>
<% end %>

<%= render template: 'layouts/govuk_admin_template' %>

Include project_content_items in the scope for the Project tab


# Copy this to .env and update values
WEB_HOST=localhost                                        # Web host local or remote
WEB_PORT=8080                                             # Web port local or remote
DB_HOST=localhost                                         # Database host local or remote
DB_PORT=3306                                              # Database port local or remote
PROJECT_DIR=<%= node['test']['hopsworks']['base_dir'] %>  # where hopsworks project is.
RSPEC_REPORT=<%= node['test']['hopsworks']['report'] %>   # where to put the report name should be test-report.html.
HOPSWORKS_API=/hopsworks-api/api                          # The path to the rest api to be tested.
HOPSWORKS_ADMIN=/hopsworks-admin/                         # The path to hopsworks admin pages.
HOPSWORKS_CA=/hopsworks-ca/v2                             # The path to hopsworks admin pages.
JENKINS=true                                              # Avoid cleaning up as we are testing with Jenkins
LAUNCH_BROWSER=false                                      # If set to true will launch test report in a browser
OS=<%= node['platform'] %>

Add platform entry to distinguish where tests fail


<%= simple_form_for(@event, remote: true, authenticity_token: true) do |f| %>
  <% if @event.errors.any? %>

<%= pluralize(@event.errors.count, "error") %> prohibited this event from being saved:

      <% @event.errors.full_messages.each do |message| %>

<%= message %>

      <% end %>

  <% end %>

    <%= f.input :name %>

    <%= f.input :schedule, as: :schedule %>

    <%= f.submit %>

<% end %>

Add form-group class to simple form

Add form-group class to simple form


# Generated via
#  `rails generate hyrax:work <%= class_name %>`
class <%= class_name %> < ActiveFedora::Base
  include ::Hyrax::WorkBehavior
  # This must come after the WorkBehavior because it finalizes the metadata
  # schema (by adding accepts_nested_attributes)
  include ::Hyrax::BasicMetadata

  self.indexer = <%= class_name %>Indexer
  # Change this to restrict which works can be added as a child.
  # self.valid_child_concerns = []
  validates :title, presence: { message: 'Your work must have a title.' }

  self.human_readable_type = '<%= name.underscore.titleize %>'
end

# Generated via
#  `rails generate hyrax:work <%= class_name %>`
class <%= class_name %> < ActiveFedora::Base
  include ::Hyrax::WorkBehavior

  self.indexer = <%= class_name %>Indexer
  # Change this to restrict which works can be added as a child.
  # self.valid_child_concerns = []
  validates :title, presence: { message: 'Your work must have a title.' }

  self.human_readable_type = '<%= name.underscore.titleize %>'

  # This must be included at the end, because it finalizes the metadata
  # schema (by adding accepts_nested_attributes)
  include ::Hyrax::BasicMetadata
end

Work generator: move BasicMetadata mixin to bottom of class


<%= link_to 'Back to search results', :back %>

<%= @job['title'] %>

<%= @job['employer_name'].presence || "No employer information." %>

<%= @job['location_name'].presence || "No location information." %>

Wage

<%= @job['wage_display_text'] %>

Hours

<%= @job['hours_display_text'] %>

Vacancy Description

  <%= auto_link(simple_format(@job['vacancy_description'].presence || "No information."), :html => { :rel => 'nofollow' }) %>

How To Apply

  <%= auto_link(simple_format(@job['how_to_apply'].presence || "No information."), :html => { :rel => 'nofollow'}) %>

  <%- if @job['message'].present? && @job['message'].any? -%>

Notes

    <%- @job['message'].each do |message| -%>

<%= message %>

    <%- end -%>
  <%- end -%>

Remove messages from an individual job.

Remove messages from an individual job.


Page Not Found

Sorry, the page you tried to visit doesn't exist. This could be our fault,
and if so we'll fix that up right away. Please go back, or go back
home to get back on track.

Fix invalid closing tag for 404 page

website: Fix invalid closing tag for 404 page


<% content_for :title do %>
  What is your annual turnover?
<% end %>

<% options(
  "500m_and_over": "£500m and over",
  "45m_to_500m": "£45m, and over, and under £500m",
  "85k_to_45m": "£85,000, and over, and under £45m",
  "under_85k": "Under £85,000",
) %>

<% content_for :title do %>
  What is your annual turnover?
<% end %>

<% options(
  "500m_and_over": "£500 million and over",
  "45m_to_500m": "£45 million to £500 million",
  "85k_to_45m": "£85,000 to £45 million",
  "under_85k": "Under £85,000",
) %>

Update copy for annual turnover question


New employee

<%= form_for :employee, url: employees_path do |f| %>

		Name

		<%= f.text_field :name %>

		Contacts

		<%= f.text_area :contact %>

		Avaliable for job

		<%= f.check_box :search %>

		Money rate

		<%= f.text_area :salary %>

		<%= f.submit %>

<% end %>

New employee

<%= form_for :employee, url: employees_path do |f| %>

		Name

		<%= f.text_field :name %>

		Phone or mail

		<%= f.text_area :contact %>

		Avaliable for job

		<%= f.check_box :search %>

		Money rate

		<%= f.text_area :salary %>

		<%= f.submit %>

<% end %>

Update new view for employees

Update new view for employees


<%= notice %>

<%= link_to 'Edit', edit_student_path(@student) %> |
<%= link_to 'Back', students_path %>
<%= link_to 'New Quiz Result', new_student_quiz_result_path(@quiz_result, student_id: @student.student_id) %>
<%= @student.category %>
<% @quiz_results.each do |r| %>

 Created at:  <%= r.created_at %>

 Contributor: <%= r.contributor %>

 Collaborator: <%= r.collaborator %>

 Communicator: <%= r.communicator %>

 Challenger: <%= r.challenger %>

 Reflection:  <%= simple_format(r.reflection) %>

 <%= link_to "Edit Reflection", student_quiz_result_path(r, student_id: @student.student_id) %>

<% end %>

<%= notice %>

<%= link_to 'Edit', edit_student_path(@student) %> |
<%= link_to 'Back', students_path %>

 Category: <%= @student.category %>

<% if not current_admin %>
  <%= link_to 'Take Quiz', new_student_quiz_result_path(@quiz_result, student_id: @student.student_id), class: 'btn btn-primary' %>
<% end %>

<% @quiz_results.each do |r| %>

 Contributor: <%= r.contributor %>

 Collaborator: <%= r.collaborator %>

 Communicator: <%= r.communicator %>

 Challenger: <%= r.challenger %>

 Reflection:  <%= simple_format(r.reflection) %>

  <% if not current_admin %>

 <%= link_to "Edit Reflection", student_quiz_result_path(r, student_id: @student.student_id) %>

  <% end %>
<% end %>

Hide student links from admin

Hide student links from admin


    <%= f.label :amount, t(:amount) %>
    <%= f.text_field :amount, :size => 8, :value => @order.outstanding_balance %>

  <% @payment_methods.each do |method| %>

      <%= radio_button_tag 'payment[payment_method_id]', method.id, method == @payment_method %>
      <%= t(method.name, :scope => :payment_methods, :default => method.name) %>

    <%= render :partial => "spree/admin/payments/source_forms/#{method.method_type}", :locals => { :payment_method => method } %>

  <% end %>

Rename payment_method hook in admin/payments/_form to payment_method_field

This hook conflicts with the hook in payment_methods/_form

Fixes #1737


<% content_for :title do %>
  What would you like to check?
<% end %>

<% options(
  "current_payment": "If you're getting the National Minimum Wage (from October 2015)",
  "past_payment": "If an employer owes you past payments (before October 2015)",
) %>

<% content_for :title do %>
  What would you like to check?
<% end %>

<% options(
  "current_payment": "If you're getting the National Minimum Wage (from October 2015) or the National Living Wage (from April 2016)",
  "past_payment": "If an employer owes you past payments (before October 2015)"
) %>

Update options copy of Question: `what_would_you_like_to_check`

Copy should be updated to support the National Living Wage from
April 2016


:base_path: <%= "#{ENV['GEMSTASH_HOME']}/data" %>
:cache_type: memory
:rubygems_url: https://rubygems.org
:puma_threads: 16
:bind: tcp://0.0.0.0:9292
:protected_fetch: false
:fetch_timeout: 20
:log_file: :stdout

<% if ENV['GEMSTASH_DB_ADAPTER'] == 'mysql2' %>
# mysql2 adapter
:db_adapter: mysql2
:db_url: <%= "mysql2://#{ENV['GEMSTASH_DB_USERNAME']}:#{ENV['GEMSTASH_DB_PASSWORD']}@#{ENV['GEMSTASH_DB_HOST']}:#{ENV['GEMSTASH_DB_PORT']}/#{ENV['GEMSTASH_DB_DATABASE']}" %>
# sqlite adapter (default)
:db_adapter: sqlite
:db_url: sqlite://gemstash.db
<% end %>

:base_path: <%= "#{ENV['GEMSTASH_HOME']}/data" %>
:cache_type: memory
:rubygems_url: https://rubygems.org
:puma_threads: 16
:bind: tcp://0.0.0.0:9292
:protected_fetch: false
:fetch_timeout: 20
:log_file: :stdout

<% if ENV['GEMSTASH_DB_ADAPTER'] == 'mysql2' %>
# mysql2 adapter
:db_adapter: mysql2
:db_url: {}
:db_connection_options:
  :adapter: 'mysql2'
  :host: <%= ENV['GEMSTASH_DB_HOST'] %>
  :port: <%= ENV['GEMSTASH_DB_PORT'] %>
  :database: <%= ENV['GEMSTASH_DB_DATABASE'] %>
  :user: <%= ENV['GEMSTASH_DB_USERNAME'] %>
  :password: <%= ENV['GEMSTASH_DB_PASSWORD'] %>
  :test: true
# sqlite adapter (default)
:db_adapter: sqlite
:db_url: sqlite://gemstash.db
<% end %>

Configure mysql2 adapter as per official documentation

http://sequel.jeremyevans.net/rdoc/files/doc/opening_databases_rdoc.html#label-mysql2
http://www.rubydoc.info/gems/mysql2#Connection_options


Move

    <%= form_for(@user, url: {action: 'auth_local'}, html: { class: "card", role: "form", id: "login-form"}) do |f| %>

                    <input id="picture" type="text" class="validate">
                    Picture

                    <input id="name" type="text" class="validate">
                    Name

                    <input id="email" type="text" class="validate">
                    Email

                    <input id="country" type="text" class="validate">
                    Country

                    <input id="last_name" type="text" class="validate">
                    Password

                    <input id="tel" type="text" class="validate">
                    Telephone

                    <button class="waves-effect" id="btn-login">Registrarse</button>

¿Ya tienes una cuenta? <%= link_to "Inicia sesión con tu cuenta", root_path %>

    <% end %>

New: Make the register template for user registration.


How does your communication stack up?

    Negative
    Positive
    <input class="sentiment-spacing" type="range">

<%= link_to "Sign in with Google", "/auth/google_oauth2", id: "sign_in" %>

<%= link_to "SIGN IN", "/auth/google_oauth2", id: "sign_in" %>

TheFeels

    Negative
    Positive
    <input class="sentiment-spacing" type="range">

Change text for landing page and add font awesome heart


<% content_for :title do %>
  What was the old average weekly amount you gave the Tax Credit Office?
<% end %>

<% content_for :body do %>
  If you don’t know what your previous childcare costs were, check your award or renewal notice.

  Round the total up to the nearest pound.

<% end %>

<% content_for :title do %>
  What was the old average weekly amount you gave the Tax Credit Office?
<% end %>

<% content_for :hint do %>
  Round the total up to the nearest pound.
<% end %>

<% content_for :post_body do %>
  If you don’t know what your previous childcare costs were, check your award or renewal notice.
<% end %>

Split body into post_body and hint

Split body into post_body and hint


#!/bin/bash
# vim: set ft=sh

set -e -x

pidfile=/var/vcap/sys/run/bpm/haproxy/haproxy.pid
logfile=/var/vcap/sys/log/haproxy/drain.log

<% if not p("ha_proxy.drain_enable") -%>
echo "drain is disabled" >> ${logfile}
echo 0
exit 0
<% else -%>
mkdir -p "$(dirname ${logfile})"

if [[ ! -f ${pidfile} ]]; then
  echo "$(date): pidfile does not exist" >> ${logfile}
  echo 0
  exit 0
fi

pid="$(cat ${pidfile})"

haproxy_pids=$(pgrep -P $pid -l | grep haproxy | awk '{print $1}')

for haproxy_pid in $haproxy_pids; do
  kill -USR1 "${haproxy_pid}"
  echo "$(date): triggering drain for process ${haproxy_pid}" >> ${logfile}
done

echo <%= p("ha_proxy.drain_timeout") -%>
<% end -%>

#!/bin/bash
# vim: set ft=sh

set -e

pidfile=/var/vcap/sys/run/bpm/haproxy/haproxy.pid
logfile=/var/vcap/sys/log/haproxy/drain.log

<% if not p("ha_proxy.drain_enable") -%>
echo "drain is disabled" >> ${logfile}
echo 0
exit 0
<% else -%>
mkdir -p "$(dirname ${logfile})"

if [[ ! -f ${pidfile} ]]; then
  echo "$(date): pidfile does not exist" >> ${logfile}
  echo 0
  exit 0
fi

pid="$(cat ${pidfile})"

haproxy_pids=$(pgrep -P $pid -l | grep haproxy | awk '{print $1}')

for haproxy_pid in $haproxy_pids; do
  kill -USR1 "${haproxy_pid}"
  echo "$(date): triggering drain for process ${haproxy_pid}" >> ${logfile}
done

echo <%= p("ha_proxy.drain_timeout") -%>
<% end -%>

Remove leftover `-x` bash opt

Remove leftover `-x` bash opt

Too verbose, probably leftover from debugging.


@import 'lib';

@import 'utilities/visually_hidden';

@import 'layout/common';
@import 'layout/pages';

<% if Rails.env.development? %>
  @import 'dev_tools/debug';
<% end %>

//atoms
@import 'components/logo';
@import 'components/intro';
@import 'components/lists';
@import 'components/icon';
@import 'components/button';

//molecules
@import 'components/social_links';

//organisms
@import 'components/footer_site_links';
@import 'components/footer_social_links';
@import 'components/header';
@import 'components/menu';
@import 'components/primary_nav';
@import 'components/search_box';
@import 'components/skip_to_content';

//standalone content
@import 'components/error_page_message';
@import 'components/opt_out_bar';

.editorial {
  @import 'components/editorial/action_item';
  @import 'components/editorial/collapsible';
  @import 'components/editorial/links';
  @import 'components/editorial/media';
  @import 'components/editorial/add-action';
}

@import 'components/editorial/tables';
@import 'components/editorial/callout';

@import 'lib';

@import 'utilities/visually_hidden';

@import 'layout/common';
@import 'layout/pages';
@import 'layout/header';

<% if Rails.env.development? %>
  @import 'dev_tools/debug';
<% end %>

//atoms
@import 'components/logo';
@import 'components/intro';
@import 'components/lists';
@import 'components/icon';
@import 'components/button';

//molecules
@import 'components/social_links';

//organisms
@import 'components/footer_site_links';
@import 'components/footer_social_links';
@import 'components/header';
@import 'components/menu';
@import 'components/primary_nav';
@import 'components/search_box';
@import 'components/skip_to_content';

//standalone content
@import 'components/error_page_message';
@import 'components/opt_out_bar';

.editorial {
  @import 'components/editorial/action_item';
  @import 'components/editorial/collapsible';
  @import 'components/editorial/links';
  @import 'components/editorial/media';
  @import 'components/editorial/add-action';
}

@import 'components/editorial/tables';
@import 'components/editorial/callout';

Add header layout partial to index.

Add header layout partial to index.


    <% field_name = "#{param_prefix}[calculator_type]" %>
    <%= label_tag field_name, Spree.t(:calculator) %>
    <%= select_tag field_name,
                   options_from_collection_for_select(calculators, :to_s, :description, promotion_action.calculator.type),
                   :class => 'type-select select2 fullwidth' %>
    <% if promotion_action.calculator.respond_to?(:preferences) %>
      <%= Spree.t(:calculator_settings_warning) %>
    <% end %>

  <% unless promotion_action.new_record? %>

      <% type_name = promotion_action.calculator.type.demodulize.underscore %>
      <% if lookup_context.exists?("fields",
          ["spree/admin/promotions/calculators/#{type_name}"], true) %>
        <%= render "spree/admin/promotions/calculators/#{type_name}/fields",
          calculator: promotion_action.calculator, prefix: param_prefix %>
      <% else %>
        <%= render "spree/admin/promotions/calculators/default_fields",
          calculator: promotion_action.calculator, prefix: param_prefix %>
      <% end %>
      <%= hidden_field_tag "#{param_prefix}[calculator_attributes][id]", promotion_action.calculator.id %>

  <% end %>

    <% field_name = "#{param_prefix}[calculator_type]" %>
    <%= label_tag field_name, Spree::Calculator.model_name.human %>
    <%= select_tag field_name,
                   options_from_collection_for_select(calculators, :to_s, :description, promotion_action.calculator.type),
                   :class => 'type-select select2 fullwidth' %>
    <% if promotion_action.calculator.respond_to?(:preferences) %>
      <%= Spree.t(:calculator_settings_warning) %>
    <% end %>

  <% unless promotion_action.new_record? %>

      <% type_name = promotion_action.calculator.type.demodulize.underscore %>
      <% if lookup_context.exists?("fields",
          ["spree/admin/promotions/calculators/#{type_name}"], true) %>
        <%= render "spree/admin/promotions/calculators/#{type_name}/fields",
          calculator: promotion_action.calculator, prefix: param_prefix %>
      <% else %>
        <%= render "spree/admin/promotions/calculators/default_fields",
          calculator: promotion_action.calculator, prefix: param_prefix %>
      <% end %>
      <%= hidden_field_tag "#{param_prefix}[calculator_attributes][id]", promotion_action.calculator.id %>

  <% end %>

Use model name translation for calculator


<%= javascript_include_tag :application %>

<%= yield :javascript %>

<% if Rails.env.test? %>
  <%= javascript_tag do %>
    $.ajaxSetup({ async: false });
  <% end %>
<% end %>

<%= javascript_include_tag :application %>

<%= yield :javascript %>

<% if Rails.env.test? %>
  <%= javascript_tag do %>
    $.fx.off = true;
    $.ajaxSetup({ async: false });
  <% end %>
<% end %>

Disable jQuery animations in tests

Disable jQuery animations in tests


<% breadcrumb.add @model.description, edit_backend_email_template_path(@model) %>
<% breadcrumb.add t('b.edit') %>
<%= render 'backend/breadcrumbs' %>

<%= simple_form_for([:backend, @translation], url: edit_translation_backend_email_template_path) do |f| %>
  <%= render 'backend/email_templates/tabs', active: params[:translation_locale].to_sym %>

      <% if @model.vars.present? %>
        <fieldset class="radius">
          <legend><%= t 'b.variables' %></legend>

          <%= @model.vars.html_safe %>
        </fieldset>
      <% end %>

      <fieldset class="radius">
        <legend><%= t 'b.general' %></legend>

        <%= f.input :subject, as: :string %>
        <%= f.input :html_content, as: :ckeditor %>
        <%= f.input :plain_content, as: :text, input_html: { rows: 10 } %>
      </fieldset>

  <%= render 'backend/form_actions', cancel_url: backend_email_templates_path %>
<% end %>

<% breadcrumb.add @model.description, edit_backend_email_template_path(@model) %>
<% breadcrumb.add t('b.edit') %>
<%= render 'backend/breadcrumbs' %>

<%= render 'backend/email_templates/tabs', active: params[:translation_locale].to_sym %>

<%= simple_form_for([:backend, @translation], url: edit_translation_backend_email_template_path) do |f| %>

  <% if @model.vars.present? %>

            <%= t 'b.variables' %>

            <%= @model.vars.to_s.html_safe %>

  <% end %>

          <%= t 'b.content' %>

              <%= f.input :subject, as: :string %>

              <%= f.input :html_content, as: :ckeditor %>
              <%= f.input :plain_content, as: :text, input_html: { rows: 10 } %>

  <%= render 'backend/form_actions', cancel_url: backend_email_templates_path %>
<% end %>

Fix the layout for editing email template translations.


<% content_for :nav_extras do %>

    <% if logged_in? %>
      <%= link_to 'Add', new_project_path %>
    <% end %>

<% end %>

Projects

  <%= search_form_for @search do |f| %>
      <%= f.label :badge_status %>
      <%= f.collection_select(:badge_status_eq,
                              Project::BADGE_STATUS_CHOICE, :id, :name) %>
      <%= f.label(:name_or_homepage_url_or_repo_url_start,
                  "Name or URLs begin with") %>
      <%= f.search_field :name_or_homepage_url_or_repo_url_start %>
      <%= f.submit %>
  <% end %>

<%= link_to 'Add New Project', new_project_path, class:"btn btn-success" %>

  <%= render 'table', projects: @projects %>
  <%= will_paginate @projects %>

<% content_for :nav_extras do %>

    <% if logged_in? %>
      <%= link_to 'Add', new_project_path %>
    <% end %>

<% end %>

Projects

  <%= search_form_for @search do |f| %>
      <%= f.label :badge_status_eq %>
      <%= f.collection_select(:badge_status_eq,
                              Project::BADGE_STATUS_CHOICE, :id, :name) %>
      <%= f.label(:name_or_homepage_url_or_repo_url_start,
                  "Name or URLs begin with") %>
      <%= f.search_field :name_or_homepage_url_or_repo_url_start %>
      <%= f.submit %>
  <% end %>

<%= link_to 'Add New Project', new_project_path, class:"btn btn-success" %>

  <%= render 'table', projects: @projects %>
  <%= will_paginate @projects %>

Tweak projects index, to see if it fixes things

Signed-off-by: David A. Wheeler <9ae72d22d8b894b865a7a496af4fab6320e6abb2@dwheeler.com>


<% categories.each do |category, contents| %>

    <%= t('related_links.title_prefix') %> <%= category.title %>

    <% contents.each do |article| %>

        <%= link_to article.title, article.path %>

    <% end %>

  <%= link_to category.path, class: 'related-links__all'  do %>
    <%= t('related_links.link') %>
    <%= t('related_links.hidden_link') %> <%= category.title %>
  <% end %>

<% end %>

Fix indenting in related_links partial.

Fix indenting in related_links partial.


<%%= render 'submenu' %>

  <%% if searching? %>

<%%= t('shared.admin.search.results_for', :query => params[:search]) %>

    <%% if @<%%= plural_name %>.any? %>

        <%%= render :partial => '<%= singular_name %>', :collection => @<%%= plural_name %> %>

    <%% else %>

<%%= t('shared.admin.search.no_results') %>

    <%% end %>
  <%% else %>
    <%% if @grouped_<%%= plural_name %>.any? -%>
      <%% @grouped_<%%= plural_name %>.each do |container| %>

<%%= l((<%= singular_name %>_group = container.last).first.created_at) %>

          <%%= render :partial => '<%= singular_name %>', :collection => <%= singular_name %>_group %>

      <%% end %>
    <%% else -%>

        <%%= t('.no_spam') %>

    <%% end -%>
  <%% end %>

<%%= render 'submenu' %>

  <%% if searching? %>

<%%= t('shared.admin.search.results_for', :query => params[:search]) %>

    <%% if @<%= plural_name %>.any? %>

        <%%= render :partial => '<%= singular_name %>', :collection => @<%= plural_name %> %>

    <%% else %>

<%%= t('shared.admin.search.no_results') %>

    <%% end %>
  <%% else %>
    <%% if @grouped_<%= plural_name %>.any? -%>
      <%% @grouped_<%= plural_name %>.each do |container| %>

<%%= l((<%= singular_name %>_group = container.last).first.created_at) %>

          <%%= render :partial => '<%= singular_name %>', :collection => <%= singular_name %>_group %>

      <%% end %>
    <%% else -%>

        <%%= t('.no_spam') %>

    <%% end -%>
  <%% end %>

Use proper syntax when evaluating code in form generator's spam view file.


<% if object.errors.any? %>

      <%= pluralize(object.errors.count, 'error') %> were found

      <% object.errors.full_messages.each do |msg| %>

<%= msg %>

      <% end %>

<% end %>

<% if object.errors.any? %>

      <%= pluralize(object.errors.count, 'error') %> was found

      <% object.errors.full_messages.each do |msg| %>

<%= msg %>

      <% end %>

<% end %>

Add h3 tag to error message

Add h3 tag to error message


<%= render :partial => 'src_images/src_images' %>

<% unless @src_sets.empty? %>
    <%= render :partial => 'src_sets/src_sets' %>
<% end %>

<% unless @gend_images.empty? %>
    <%= render :partial => 'gend_images/gend_images' %>
<% end %>

<%= render partial: 'src_images/src_images' %>

<% unless @src_sets.empty? %>
    <%= render partial: 'src_sets/src_sets' %>
<% end %>

<% unless @gend_images.empty? %>
    <%= render partial: 'gend_images/gend_images' %>
<% end %>

Convert to new style hashes.

Convert to new style hashes.


---
pageable: true
per_page: 10
---
<% if paginate && num_pages > 1 %>

Page <%= page_number %> of <%= num_pages %>

  <% if prev_page %>

<%= link_to 'Previous page', prev_page %>

  <% end %>
<% end %>

<% page_articles.each_with_index do |article, i| %>

<%= link_to article.title, article %> <%= article.date.strftime('%b %e') %>

  <%= article.body %>
<% end %>

<% if paginate %>
  <% if next_page %>

<%= link_to 'Next page', next_page %>

  <% end %>
<% end %>

---
pageable: true
per_page: 10
---
<% if paginate && num_pages > 1 %>

Page <%= page_number %> of <%= num_pages %>

  <% if prev_page %>

<%= link_to 'Previous page', prev_page %>

  <% end %>
<% end %>

<% page_articles.each_with_index do |article, i| %>

<%= link_to article.title, article %>

    <%= 'Posted on ' + article.date.strftime('%B %e, %G') %>
    <%= 'by ' + article.data.author unless article.data.author.nil? %>

  <%= article.body %>
<% end %>

<% if paginate %>
  <% if next_page %>

<%= link_to 'Next page', next_page %>

  <% end %>
<% end %>

Add ability to display date and author in posts on home page


<%- courses.each_with_index do |course, i| %>
  <div class="course <%= 'course-first' if i == 0 %>">

<%= link_to course.title, "#" %>

<%- end %>

<%- courses.each_with_index do |course, i| %>
  <div class="course <%= 'course-first' if i == 0 %>">

<%= link_to course.title, edit_course_path(course) %>

<%- end %>

Add Edit Link for Listed Courses

Add Edit Link for Listed Courses

Update the listed Courses to link to the edit action/view when the title
is clicked on.


Scheduler

          Presentation Name
          <% @presentations.each do |presentation| %>
              <%= presentation.title %>
          <% end %>

        <% @presentations.each do |presentation1| %>

              <%= presentation1.title %>
              <% @presentations.each do |presentation2| %>
                  <% if presentation1 == presentation2 %>

                  <% else %>
                    <%= (presentation1.users & presentation2.users).collect{|u| u.short_name} %>
                  <% end %>
              <% end %>

        <% end %>

Scheduler

          Presentation Name
          <% @presentations.each do |presentation| %>
              <%= presentation.title %>
          <% end %>

        <% @presentations.each do |presentation1| %>

              <%= presentation1.title %>
              <% @presentations.each do |presentation2| %>
                  <% if presentation1 == presentation2 %>

                  <% else %>
                    <td title="<%= presentation1.title %> & <%= presentation2.title %>"><%= (presentation1.users & presentation2.users).collect{|u| u.short_name} %>
                  <% end %>
              <% end %>

        <% end %>

Add hover to improve readability

Add hover to improve readability


<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title><%= APP_TITLE %></title>
    <link rel="stylesheet" href="https://d13nj05qmdn3m1.cloudfront.net/assets/external_triggers.css" />
    <link rel="stylesheet" href="/style.css" />

    <script type="text/javascript" src="https://d13nj05qmdn3m1.cloudfront.net/assets/external_triggers.js"></script>
    <script type="text/javascript">easyXDM.DomHelper.requiresJSON("https://d13nj05qmdn3m1.cloudfront.net/assets/json2.js");</script>
    <script>
var pbt = new PachubeTrigger();
    </script>
  </head>
  <body>
    <%= yield %>
  </body>
</html>

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title><%= APP_TITLE %></title>
    <link rel="stylesheet" href="https://d2npiipx5ecxt9.cloudfront.net/assets/external_triggers.css" />
    <link rel="stylesheet" href="/style.css" />

    <script type="text/javascript" src="https://d2npiipx5ecxt9.cloudfront.net/assets/external_triggers.js"></script>
    <script type="text/javascript">easyXDM.DomHelper.requiresJSON("https://d2npiipx5ecxt9.cloudfront.net/assets/json2.js");</script>
    <script>
var pbt = new PachubeTrigger();
    </script>
  </head>
  <body>
    <%= yield %>
  </body>
</html>

Update to point at correct cloudfront bucket.


  <% navigation_tree.each do |item| %>

      <a href='/<%= item %>'><%= I18n.t item.gsub('/','_') %>

  <% end %>

  <% navigation_tree.each do |item| %>

      <a href='/<%= item %>'><%= I18n.t item.gsub('/','.') %>

  <% end %>

Make navigation use new il8n style

Make navigation use new il8n style


Listing feeds

    Url
    Interval

<% @feeds.each do |feed| %>

    <%=h feed.url %>
    <%=h feed.interval %>
    <%= link_to 'Show', feed %>
    <%= link_to 'Edit', edit_feed_path(feed) %>
    <%= link_to 'Destroy', feed, :confirm => 'Are you sure?', :method => :delete %>

<% end %>

<%= link_to 'New feed', new_feed_path %>

Listing feeds

    Url
    Description
    Interval
    Last Updated

<% @feeds.each do |feed| %>

    <%=h feed.url %>
    <%=h feed.description %>
    <%=h feed.interval %>
    <%=h feed.published %>
    <%= link_to 'Show', feed %>
    <%= link_to 'Edit', edit_feed_path(feed) %>
    <%= link_to 'Destroy', feed, :confirm => 'Are you sure?', :method => :delete %>

<% end %>

<%= link_to 'New feed', new_feed_path %>

Update the details shown the feeds index page.


<li class="<%= 'active' if current_page? link.url  %>"><%= link_to link.title, url_for(link.url) %>

Add active class to links when current url


All Bloggers

    <% @users.each do |user| %>

            <%= link_to gravatar_for(user, size: 1000), user_path(user) %>

@<%= user.username %>

                <stong><%= pluralize(user.articles.count, "article") if user.articles%></stong>

    <% end %>

All Bloggers

        <%= will_paginate @user, renderer: MaterializeRenderer %>

    <% @users.each do |user| %>

            <%= link_to gravatar_for(user, size: 1000), user_path(user) %>

@<%= user.username %>

                <stong><%= pluralize(user.articles.count, "article") if user.articles%></stong>

    <% end %>

        <%= will_paginate @user, renderer: MaterializeRenderer %>

Add paginate to user listing view(index)


[blob-indexer]
namespace = <%= @ns %>
user = <%= scope['openiosds::user'] %>
volume = <%= @volume %>
report_interval = <%= @report_interval %>
chunks_per_second = <%= @chunks_per_second %>
interval = <%= @interval %>
log_level = <%= scope['openiosds::log_level'] %>
log_facility = LOG_LOCAL0
log_address = /dev/log
syslog_prefix = OIO,<%= @ns %>,<%= @type %>,<%= @num %>

[blob-indexer]
namespace = <%= @ns %>
user = <%= scope['openiosds::user'] %>
volume = <%= @_volume %>
report_interval = <%= @report_interval %>
chunks_per_second = <%= @chunks_per_second %>
interval = <%= @interval %>
log_level = <%= scope['openiosds::log_level'] %>
log_facility = LOG_LOCAL0
log_address = /dev/log
syslog_prefix = OIO,<%= @ns %>,<%= @type %>,<%= @num %>

Replace @volume by the default @_volume

Replace @volume by the default @_volume


Ruby on Rails Guides (<%= @edge ? @version[0, 7] : @version %>)

<% if @edge %>

  These are Edge Guides, based on the current <a href="https://github.com/rails/rails/tree/<%= @version %>">master branch.

  If you are looking for the ones for the stable version, please check
  http://guides.rubyonrails.org instead.

<% else %>

  These are the new guides for Rails 4.0 based on <a href="https://github.com/rails/rails/tree/<%= @version %>"><%= @version %>.
  These guides are designed to make you immediately productive with Rails, and to help you understand how all of the pieces fit together.

<% end %>

  The guides for Rails 3.2.x are available at http://guides.rubyonrails.org/v3.2.13/.

  The guides for Rails 2.3.x are available at http://guides.rubyonrails.org/v2.3.11/.

Ruby on Rails Guides (<%= @edge ? @version[0, 7] : @version %>)

<% if @edge %>

  These are Edge Guides, based on the current <a href="https://github.com/rails/rails/tree/<%= @version %>">master branch.

  If you are looking for the ones for the stable version, please check
  http://guides.rubyonrails.org instead.

<% else %>

  These are the new guides for Rails 4.0 based on <a href="https://github.com/rails/rails/tree/<%= @version %>"><%= @version %>.
  These guides are designed to make you immediately productive with Rails, and to help you understand how all of the pieces fit together.

<% end %>

  The guides for Rails 3.2.x are available at http://guides.rubyonrails.org/v3.2.14/.

  The guides for Rails 2.3.x are available at http://guides.rubyonrails.org/v2.3.11/.

Update Rails 3.2.x guide link

Update Rails 3.2.x guide link [ci skip]


# httpd configuration settings for use with mailman.
# WARNING: this file is managed by Puppet.

<VirtualHost *:80>
ServerName   <%= @server_name %>
ServerAdmin  <%= @server_admin %>
DocumentRoot <%= @document_root %>
CustomLog    <%= @custom_log %> common
ErrorLog     <%= @error_log %>

ScriptAlias /mailman/ <%= @mailman_cgi_dir %>/
<Directory <%= @mailman_cgi_dir %>>
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>

Alias /pipermail/ <%= @public_archive_dir %>/
<Directory <%= @public_archive_dir %>>
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    AddDefaultCharset Off
</Directory>

# Redirect queries from /mailman to the listinfo page (recommended).
RedirectMatch ^/mailman[/]*$ /mailman/listinfo

# Redirect the root index page to listinfo (custom for this module)
RedirectMatch ^/?$ /mailman/listinfo

</VirtualHost>

# httpd configuration settings for use with mailman.
# WARNING: this file is managed by Puppet.

<VirtualHost *:80>
ServerName   <%= @server_name %>
ServerAdmin  <%= @server_admin %>
DocumentRoot <%= @document_root %>
CustomLog    <%= @custom_log %> common
ErrorLog     <%= @error_log %>

ScriptAlias /mailman/ <%= @mailman_cgi_dir %>/
<Directory <%= @mailman_cgi_dir %>>
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>

Alias /pipermail/ <%= @public_archive_dir %>/
<Directory <%= @public_archive_dir %>>
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    AddDefaultCharset Off
</Directory>

# Redirect queries from /mailman to the listinfo page (recommended).
RedirectMatch ^/mailman[/]*$ http://<%= @server_name %>/mailman/listinfo

# Redirect the root index page to listinfo (custom for this module)
RedirectMatch ^/?$ http://<%= @server_name %>/mailman/listinfo

</VirtualHost>

Use fully qualified redirects in Apache

Use fully qualified redirects in Apache


# vim: filetype=apache sts=4 sw=4 autoindent
#
# This file is managed by Puppet.
#
<Directory <%= @upload_dir %>>
    Require all granted
    Header set Access-Control-Allow-Origin "*"
</Directory>

Alias <%= @upload_path %> <%= @upload_dir %>

# vim: filetype=apache sts=4 sw=4 autoindent
#
# This file is managed by Puppet.
#
<Directory <%= @upload_dir %>>
    Require all granted
    Header set Access-Control-Allow-Origin "*"
    Header set Access-Control-Allow-Headers "Range"
    Header set Access-Control-Expose-Headers "Content-Range"
</Directory>

Alias <%= @upload_path %> <%= @upload_dir %>

Allow range requests on uploads; fixes 'commons' role video in Safari

Adds a CORS allowance for the 'Range' header incoming and the
'Content-Range' header outgoing, which allows the ogv.js video shim
for Safari and old Edge/IE11 to play video from the "commons" role
on the other local sites.

Bug: T225452
Change-Id: If6244027dfcb92009f604004a04bf82b9f43c206


<!doctype html>

  <meta charset="UTF-8">
  <title>index</title>

      home /
      quotes
        (random,
        top 100,
        by votes)

      <% if @loggedIn %>
        // logged in as <%= @username %>
        [<% @userFlags.each do |uf| %>
          <%= uf.to_s %>
        <% end %>]
        (logout)
      <% else %>
        / login
        / register
      <% end %>

    <%= yield %>

<!doctype html>

  <meta charset="UTF-8">
  <title>index</title>

      home /
      quotes
        (random,
        top 100,
        by votes)

      <% if @loggedIn %>
        <% if @userFlags.include? :approve_quotes %>
        / moderation queue
        <% end %>
        // logged in as <%= @username %>
        [<% @userFlags.each do |uf| %>
          <%= uf.to_s %>
        <% end %>]
        (logout)
      <% else %>
        / login
        / register
      <% end %>

    <%= yield %>

Add mod queue link to logged-in page

Add mod queue link to logged-in page


---
title: EuRuKo 2013 - Athens | Speakers
---

    <% data.speakers.speakers.each_with_index do |speaker, i| %>
        <li class="<%= i.even? ? "left" : "right" %>" id="<%= speaker.short_name %>">

<%= speaker.name %>

<a href="/speakers/<%= speaker.short_name %>"><%= speaker.name %><%= speaker.title %>

<%= speaker.bio %>

    <% end %>

Add missing itemscope for speakers

Add missing itemscope for speakers


<%= @question.title %>

<%= @question.body %>

  <% if @question.user_id == current_user.id %>
    <%= button_to "Edit", {action: "edit"}, method: "get" %>
    <%= button_to "Delete", @question, {method: "delete", confirm: "Are you sure you want to delete this question?"} %>
  <% end %>

  <%= render template: "answers/new.html.erb", locals: { question: @question, answer: @answer} %>
    <% @question.answers.each do |answer| %>

<%= answer.body %>
<%= button_to 'Edit',edit_question_answer_path(@question, answer), :method => :get %>

    <% end %>

=======

Clean up whitespace in questions show view.


<% # Allow a faux dynamic header override per institution by rescuing when the template is missing %>
<% begin %>
<%= render "#{institution.code.downcase}/header" %>
<% rescue %>

<%= current_primary_institution.name %>

  <%= render_umlaut_permalink %>

<%= login("umlaut.institution" => institution.code ) %>

<% end %>

<% # Allow a faux dynamic header override per institution by rescuing when the template is missing %>
<%= render partial: 'common/header' %>

  <%= render_umlaut_permalink %>

<%= login("umlaut.institution" => institution.code ) %>

Use institution header within resolve header


<!DOCTYPE html>

  <title>Text Your City</title>
  <%= stylesheet_link_tag    "application", :media => "all" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
  <link href='http://fonts.googleapis.com/css?family=Signika+Negative' rel='stylesheet' type='text/css'>

<%= yield %>

<!DOCTYPE html>

  <title>Textizen | Citizen feedback for the digital age, by Code for America</title>
  <%= stylesheet_link_tag    "application", :media => "all" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
  <link href='http://fonts.googleapis.com/css?family=Signika+Negative' rel='stylesheet' type='text/css'>

<%= yield %>

Change page title to Textizen and update tagline


<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title><%= content_for?(:title) ? yield(:title) : "foundation-rails" %></title>

    <%= stylesheet_link_tag    "application" %>
    <%= javascript_include_tag "vendor/modernizr" %>
    <%= csrf_meta_tags %>

home

map

    <%= yield %>
    <%= javascript_include_tag "application" %>

<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title><%= content_for?(:title) ? yield(:title) : "Crime near CenturyLink Field, Seattle" %></title>

    <%= stylesheet_link_tag    "application" %>
    <%= javascript_include_tag "vendor/modernizr" %>
    <%= csrf_meta_tags %>

home

map

    <%= yield %>
    <%= javascript_include_tag "application" %>

Add links to Google Maps API, change title from default FOundation to Crime near CenturyLink Field


<!DOCTYPE html>
<html>
<head>
  <%= stylesheet_link_tag 'application' %>
  <title><%= title %></title>
  <%= csrf_meta_tags %>
</head>
<body>

<div class="container">
  <%= yield %>
</div>

<%= javascript_include_tag 'application' %>
</body>
</html>

<!DOCTYPE html>
<html>
<head>
  <%= stylesheet_link_tag 'rehttp' %>
  <title><%= title %></title>
  <%= csrf_meta_tags %>
</head>
<body>

<div class="container">
  <%= yield %>
</div>

<%= javascript_include_tag 'rehttp' %>
</body>
</html>

Update main layout file names for CSS/JS


<!DOCTYPE html>
<html>
<head>
  <title>Mguides</title>
  <%= stylesheet_link_tag :all %>
  <%= javascript_include_tag :defaults %>
  <%= csrf_meta_tag %>
</head>
<body>

<%= yield %>

</body>
</html>

<!DOCTYPE html>
<html>
<head>
  <title>Mguides</title>
  <%= stylesheet_link_tag :all %>
  <script type="text/javascript" charset="utf-8" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
  <%= javascript_include_tag 'jquery.mustache.js' %>
  <%# javascript_include_tag :defaults %>
  <%= csrf_meta_tag %>
</head>
<body>

<%= yield %>

</body>
</html>

Load jquery and mustache JS in the layout


<!DOCTYPE html>

  <title>HangmanLeague</title>
  <%= stylesheet_link_tag    "application", :media => "all" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>

<% if notice -%>

<%= notice %>

<% elsif alert -%>

<%= alert %>

<% end -%>

<%= yield %>

Use divs instead of sections in layout

Use divs instead of sections in layout


Edit an Existing Buy Post

      <%= form_for(@buy_post), :url => {:action => 'update'}, :id => @buy_post.id) do |f| %>

        <%= f.label :name %>
        <%= f.text_field :name, class: 'form-control' %>

        <%= f.label :price %>
        <%= f.number_field :price, class: 'form-control' %>

        <%= f.label :photo %>
        <%= f.text_field :photo, class: 'form-control' %>

        <%= f.submit "Update post", class: 'btn btn-primary' %>

      <% end %>
      <%= link_to "Back", current_user %>

Edit an Existing Buy Post

      <%= form_for(@buy_post, :url => {:action => 'update'}, :id => @buy_post.id, html: { method: :put }) do |f| %>

        <%= f.label :name %>
        <%= f.text_field :name %>

        <%= f.label :price %>
        <%= f.number_field :price %>

        <%= f.label :photo %>
        <%= f.text_field :photo %>

        <%= f.submit "Update post", class: 'btn btn-primary' %>

      <% end %>
      <%= link_to "Back", current_user %>

Fix syntax error in edit buy post

Fix syntax error in edit buy post


<!DOCTYPE html>
<html>
  <head>
    <%= stylesheet_link_tag 'application', media: 'all' %>
    <%= stylesheet_link_tag 'errors', media: 'all' %>
    <%= render 'layouts/head' %>
  </head>
  <body>
    <%= render 'layouts/navigation' %>
    <div>
      <%= render 'layouts/messages' %>
      <%= yield %>
    </div>
    <%= javascript_include_tag 'errors' %>
  </body>
</html>

<!DOCTYPE html>
<html>
  <head>
    <%= stylesheet_link_tag 'application', media: 'all' %>
    <%= stylesheet_link_tag 'errors', media: 'all' %>
    <%= render 'layouts/head' %>
  </head>
  <body>
    <div>
      <%= render 'layouts/messages' %>
      <%= yield %>
    </div>
    <%= javascript_include_tag 'errors' %>
  </body>
</html>

Remove Atomic Jolt logo from error pages

No need to have our logo on the error page.


<!DOCTYPE html>

<meta content='text/html; charset=utf-8' http-equiv='Content-Type'>
<link href="<%= url 'reset.css' %>" media="screen" rel="stylesheet" type="text/css">
<link href="<%= url 'style.css' %>" media="screen" rel="stylesheet" type="text/css">

<title>Split</title>

Split Dashboard

<%= @current_env %>

<a href="<%= url '?evilmode=true' %>">enter the dark side

    <%= yield %>

Powered by Split v<%=Split::VERSION %>

<!DOCTYPE html>

<meta content='text/html; charset=utf-8' http-equiv='Content-Type'>
<link href="<%= url 'reset.css' %>" media="screen" rel="stylesheet" type="text/css">
<link href="<%= url 'style.css' %>" media="screen" rel="stylesheet" type="text/css">

<title>Split</title>

Split Dashboard

<%= @current_env %>

<a href="<%= url '?evilmode=true' %>">enter the dark side

    <%= yield %>

Powered by SplitWimudDashboard v<%=SplitWimduDashboard::VERSION %>

Change the powered by link at the bottom of the page

to link to split_wimdu_dashboard


Login Code

<%= @login_code %>

Use the above to continue your Hack Club application.

Simplify HTML login code email

Simplify HTML login code email


<div class="govuk-emergency-banner <%= banner.campaign_class %>" role="banner">

<%= banner.heading %>

      <%= banner.short_description %>

    <% if banner.link %>
      <a href="<%= banner.link %>">More information
    <% end %>

<div class="govuk-emergency-banner <%= banner.campaign_class %>" role="banner">

<%= banner.heading %>

    <% if banner.short_description %>

<%= banner.short_description %>

    <% end %>
    <% if banner.link %>
      <a href="<%= banner.link %>">More information
    <% end %>

Add conditional around short_description in emergency banner

This should prevent any unnecessary paragraphs appearing in the banner.


<% if flash.present? %>
  <script>
    <% message = flash.map { |key, value| value }.join("\r\n") %>
    HTMLImports.whenReady(function(){
        var app = document.getElementById('oj-app');
        app.showNotification(<%= raw message.to_json %>);
    });
  </script>
<% end %>

<% if flash.present? %>
  <script>
      <% message = flash.map { |key, value| value }.join("\r\n") %>
      HTMLImports.whenReady(function(){
          var app = document.querySelector('oj-app');
          app.showNotification(<%= raw message.to_json %>);
      });
  </script>
<% end %>

Fix flash messages from back-end

Fix flash messages from back-end


<!DOCTYPE html>

    <%= render "head" %>

    <%= render "header" %>

            <%= yield %>

        <%= render "footer" %>

Move Devise forms to middle of page.

Move Devise forms to middle of page.


<% form_for @project do |f| %>
  <%= f.error_messages %>

    <%= f.label :name %>

    <%= f.text_field :name %>

Tasks

  <% f.fields_for :tasks do |task_form| %>
    <%= render :partial => 'task', :locals => { :f => task_form } %>
  <% end %>

<%= add_child_link "New Task", f, :tasks %>

<%= f.submit "Submit" %>

<% end %>

<% form_for @project do |f| %>
  <%= f.error_messages %>

    <%= f.label :name %>

    <%= f.text_field :name %>

Tasks

  <% f.fields_for :tasks do |task_form| %>
    <%= render :partial => 'task', :locals => { :f => task_form } %>
  <% end %>

<%= add_child_link "New Task", :tasks %>

  <%= new_child_fields_template(f, :tasks)%>

<%= f.submit "Submit" %>

<% end %>

Update call to add_child_link in the view & include a call to the new_child_fields_template helper so that the new child form fields are available.


<% content_for :page_title, "Releases" %>

Releases

<%= link_to "Create Release", new_release_path, class: "btn btn-success" %>

Today's Releases

  <% @todays_releases.each do |release| %>

      <%= link_to release.unique_applications.map(&:name).join(", "), release_path(release) %>
      <%= release.deploy_at.strftime('%l:%M%P') %>

  <% end %>

Future Releases

  <% @future_releases.each do |release| %>

      <%= link_to release.unique_applications.map(&:name).join(", "), release_path(release) %>
      <%= release.deploy_at.strftime('%l:%M%P - %A %e %B') %>

  <% end %>

<% content_for :page_title, "Releases" %>

Releases

<%= link_to "Create Release", new_release_path, class: "btn btn-success" %>

Today's Releases

  <% @todays_releases.each do |release| %>

      <%= link_to "##{release.id}", release_path(release) %>
      <%= link_to release.unique_applications.map(&:name).join(", "), release_path(release) %>
      <%= release.deploy_at.strftime('%l:%M%P') %>

  <% end %>

Future Releases

  <% @future_releases.each do |release| %>

      <%= link_to "##{release.id}", release_path(release) %>
      <%= link_to release.unique_applications.map(&:name).join(", "), release_path(release) %>
      <%= release.deploy_at.strftime('%l:%M%P - %A %e %B') %>

  <% end %>

Add release IDs to the releases table

Add release IDs to the releases table