<% content_for :title, content_item.title %>

<% content_for :meta_tags do %>
  <meta name="description" content="<%= content_item.description %>">
<% end %>

<% content_for :breadcrumbs do %>
  <%= render 'govuk_component/beta_label' %>
  <%= render 'govuk_component/breadcrumbs', tasklist[:links] %>
<% end %>

    <%= render 'govuk_component/title',
        title: tasklist[:title],
        average_title_length: 'long',
        margin_bottom: 0 %>

<%= raw(tasklist[:description]) %>

    <%= render "components/task_list", tasklist[:tasklist] %>

<% content_for :title, content_item.title %>

<% content_for :meta_tags do %>
  <meta name="description" content="<%= content_item.description %>">
<% end %>

<% content_for :breadcrumbs do %>
  <%= render 'govuk_component/breadcrumbs', tasklist[:links] %>
<% end %>

    <%= render 'govuk_component/title',
        title: tasklist[:title],
        average_title_length: 'long',
        margin_bottom: 0 %>

<%= raw(tasklist[:description]) %>

    <%= render "components/task_list", tasklist[:tasklist] %>

Remove beta banners from task list pages


# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/etc/hive/conf.<%= node.chef_environment %>

# Folder containing extra ibraries required for hive compilation/execution can be controlled by:
# export HIVE_AUX_JARS_PATH=
export HIVE_AUX_JARS_PATH=/usr/lib/hcatalog/share/hcatalog/hcatalog-core.jar

export JAVA_HOME=<%= node["bcpc"]["hadoop"]["java"] %>
export HADOOP_HEAPSIZE=<%=node[:bcpc][:hive][:heap][:size] %>
export HIVE_LOG_DIR=/var/log/hive
export HIVE_PID_DIR=/var/run/hive
export HIVE_IDENT_STRING=hive

# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/etc/hive/conf.<%= node.chef_environment %>

# Folder containing extra ibraries required for hive compilation/execution can be controlled by:
# export HIVE_AUX_JARS_PATH=
export HIVE_AUX_JARS_PATH=/usr/hdp/current/hive-webhcat/share/hcatalog/hive-hcatalog-core.jar

export JAVA_HOME=<%= node["bcpc"]["hadoop"]["java"] %>
export HADOOP_HEAPSIZE=<%=node[:bcpc][:hive][:heap][:size] %>
export HIVE_LOG_DIR=/var/log/hive
export HIVE_PID_DIR=/var/run/hive
export HIVE_IDENT_STRING=hive

Fix Hive Aux Jar path to work with HDP2.2


<%#- anything you put here will appear as a popup warning on every screen in Alaveteli -%>

<%= link_to "Olağanüstü Hal'de Bilgi Edinme", 'http://platform24.org/Content/Uploads/Editor/OHALDE%20BILGI%20EDINME%20(1).htm' -%>

Add popup banner to display restrictions to FOI

Fixes https://github.com/mysociety/bilmehakki-theme/issues/21


    <%= t(:zone) %>:
    <%= f.collection_select(:zone_id, @available_zones, :id, :name) %>

    <%= t(:tax_category) %>:
    <%= f.collection_select(:tax_category_id, @available_categories,:id, :name) %>

    <%= t(:included_in_price) %>
    <%= f.check_box :included_in_price %>

    <%= t(:rate) %>:
    <%= f.text_field :amount %>

<%= render :partial => 'spree/admin/shared/calculator_fields', :locals => { :f => f } %>

    <%= f.label :zone, t(:zone) %>
    <%= f.collection_select(:zone_id, @available_zones, :id, :name) %>

    <%= f.label :tax_category_id, t(:tax_category) %>
    <%= f.collection_select(:tax_category_id, @available_categories,:id, :name) %>

    <%= f.label :included_in_price, t(:included_in_price) %>
    <%= f.check_box :included_in_price %>

    <%= f.label :amount, t(:rate) %>
    <%= f.text_field :amount %>

<%= render :partial => 'spree/admin/shared/calculator_fields', :locals => { :f => f } %>

Add labels to fields in tax_rates/form

Add labels to fields in tax_rates/form


backend admin_backend {
    .host = "backend-app-1";
}
backend write_backend {
    .host = "backend-app-1";
}
backend read_backend {
    .host = "backend-app-1";
}
backend stagecraft_backend {
    .host = "backend-app-1";
}
director admin_director round-robin {
  { .backend = admin_backend; }
}
director frontend_app round-robin {
  { .backend = admin_backend; }
}
director stagecraft_director round-robin {
  { .backend = stagecraft_backend; }
}
director read_director round-robin {
  { .backend = read_backend; }
}
director write_director round-robin {
  { .backend = write_backend; }
}

backend admin_backend {
    .host = "backend-app-1";
}
backend write_backend {
    .host = "backend-app-1";
}
backend read_backend {
    .host = "backend-app-1";
}
backend stagecraft_backend {
    .host = "backend-app-1";
}
backend data_backend_1 {
    .host = "backend-app-1";
}
backend data_backend_2 {
    .host = "backend-app-2";
}
director admin_director round-robin {
  { .backend = admin_backend; }
}
director frontend_app round-robin {
  { .backend = admin_backend; }
}
director stagecraft_director round-robin {
  { .backend = stagecraft_backend; }
}
director read_director round-robin {
  { .backend = read_backend; }
}
director write_director round-robin {
  { .backend = write_backend; }
}
director data_director round-robin {
    {
        .backend = data_backend_1;
    }
    {
        .backend = data_backend_2;
    }
}

Add data backend and director for development

Backends and directors are included in this file. This module should
probably be refactored so we can use one file and not include specific
parts in the dev config rather than duplicating a very similar config.


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

    Didn’t find what you were looking for?  Please contact us!

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

    Can’t find it online?
    Contact us!

Change wording. Not sure about style.

Change wording. Not sure about style.


<!DOCTYPE html>

    <title>Gem in a Box</title>
    <link rel="stylesheet" href="<%= url "/master.css" %>" type="text/css" media="screen">
    <link href="<%= url "/atom.xml" %>" type="application/atom+xml" rel="alternate" title="Atom Feed">

Gem in a Box

      <%= yield %>

<!DOCTYPE html>

    <title>Gem in a Box</title>
    <link rel="stylesheet" href="<%= url "/master.css", false %>" type="text/css" media="screen">
    <link href="<%= url "/atom.xml", false %>" type="application/atom+xml" rel="alternate" title="Atom Feed">

Gem in a Box

      <%= yield %>

Use relative path for asset

Use relative path for asset


upstream baseball {
  least_conn;
  {{range service "baseball"}}server {{.Address}}:{{.Port}} max_fails=3 fail_timeout=60 weight=1;
  {{else}}server 127.0.0.1:65535; # force a 502{{end}}
}

server {
  listen 80;
  server_name baseball.btr3.com;

  location / {
    proxy_pass http://baseball;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
  }
}

upstream baseball {
  least_conn;
  {{range service "baseball-ui"}}server {{.Address}}:{{.Port}} max_fails=3 fail_timeout=60 weight=1;
  {{else}}server 127.0.0.1:65535; # force a 502{{end}}
}

server {
  listen 80;

  location / {
    proxy_pass http://baseball;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
  }
}

Clean up template for baseball-ui

Clean up template for baseball-ui


--enable-intl
--with-openssl
--without-pear
--with-gd
--with-jpeg-dir=/usr
--with-png-dir=/usr
--with-freetype-dir=/usr
--with-freetype
--enable-exif
--enable-zip
--with-zlib
--with-zlib-dir=/usr
--with-mcrypt=/usr
--with-pdo-sqlite
--enable-soap
--enable-xmlreader
--with-xsl
--enable-ftp
--with-tidy
--with-xmlrpc
--enable-sysvsem
--enable-sysvshm
--enable-sysvmsg
--enable-shmop
--with-mysql=mysqlnd
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
--enable-pcntl
--with-readline
--enable-mbstring
--with-curl
--with-pgsql
--with-pdo-pgsql
--with-gettext
--enable-sockets
--with-bz2
--enable-bcmath
--enable-calendar
--with-libdir=lib
--enable-fpm
--enable-maintainer-zts
--with-gmp
--with-kerberos
--with-imap
--with-imap-ssl
--with-ldap=shared
--with-ldap-sasl
--enable-dba
--with-cdb
--with-inifile

Enable DBA functions for PHP

Enable DBA functions for PHP

Enable the built-in cdb and inifile DBA providers for PHP.


#!/bin/sh

/sbin/ip route add <%= @destination %> via <%= @via %>

#!/bin/sh

if ! /sbin/ip ro sh | grep -v -q '${destination} via ${via}'
then
  /sbin/ip route add <%= @destination %> via <%= @via %>
fi

Add route only if needed

Add route only if needed


<%
require File.absolute_path(File.dirname(__FILE__)) + '/helpers'

if is_distribution?("<= precise") || is_distribution?("<= squeeze")
  delete_file!
end
-%>
# Stop dance for nginx
# =======================
#
# ExecStop sends SIGSTOP (graceful stop) to the nginx process.
# If, after 5s (--retry QUIT/5) nginx is still running, systemd takes control
# and sends SIGTERM (fast shutdown) to the main process.
# After another 5s (TimeoutStopSec=5), and if nginx is alive, systemd sends
# SIGKILL to all the remaining processes in the process group (KillMode=mixed).
#
# nginx signals reference doc:
# http://nginx.org/en/docs/control.html
#
[Unit]
Description=A high performance web server and a reverse proxy server
After=network.target

[Service]
Type=forking
PIDFile=<%= localstatedir %>/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile <%= localstatedir %>/nginx.pid
TimeoutStopSec=5
KillMode=mixed

[Install]
WantedBy=multi-user.target

<%
require File.absolute_path(File.dirname(__FILE__)) + '/helpers'

if is_distribution?("<= precise") || is_distribution?("<= squeeze")
  delete_file!
end
-%>
# Stop dance for nginx
# =======================
#
# ExecStop sends SIGSTOP (graceful stop) to the nginx process.
# If, after 5s (--retry QUIT/5) nginx is still running, systemd takes control
# and sends SIGTERM (fast shutdown) to the main process.
# After another 5s (TimeoutStopSec=5), and if nginx is alive, systemd sends
# SIGKILL to all the remaining processes in the process group (KillMode=mixed).
#
# nginx signals reference doc:
# http://nginx.org/en/docs/control.html
#
[Unit]
Description=A high performance web server and a reverse proxy server
After=network.target

[Service]
Type=forking
PIDFile=<%= localstatedir %>/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=-/sbin/start-stop-daemon --quiet --stop --signal QUIT --retry QUIT/5 --pidfile <%= localstatedir %>/nginx.pid
# Give Passenger a chance to clean up before being killed by systemd.
ExecStop=/bin/sleep 1
TimeoutStopSec=5
KillMode=mixed

[Install]
WantedBy=multi-user.target

Update Nginx systemd unit file: give Passenger a chance to clean up before being killed by systemd


      <%= f.label :title, "1. Proposed Module Title:" %>

      <%= f.text_field :title %>

      <%= f.label :title, "1. Proposed Title:" %>

      <%= f.text_field :title %>

Update Module Proposal title field label


# Disable kvstore and set path to root CA if provided

[kvstore]
disabled = 1

<% if p('cf_splunk.splunk_ssl', false) && p('cf_splunk.splunk_ssl_root_ca', '') != '' %>
[sslConfig]
sslRootCAPath = $SPLUNK_HOME/etc/auth/forwarder/ca.pem
<% end %>

# Change license group to forwarder, disable kvstore, and set path to root CA if provided

[license]
active_group = Forwarder

[kvstore]
disabled = 1

<% if p('cf_splunk.splunk_ssl', false) && p('cf_splunk.splunk_ssl_root_ca', '') != '' %>
[sslConfig]
sslRootCAPath = $SPLUNK_HOME/etc/auth/forwarder/ca.pem
<% end %>

Set license group to Forwarder - free, unlimited data forwarding, and avoids 60-day trial expiration


Lots in Strata Plan

    <%= render :partial => 'list_of_plots', :locals => {
      :plots => @land_parcel_record.lga_records
    } %>

Lots in Strata Plan

    <% unless @land_parcel_record.lga_records.blank? %>
    <%= render :partial => 'list_of_plots', :locals => {
      :plots => @land_parcel_record.lga_records
    } %>
    <% else %>
      Nothing found
    <% end %>

Improve list of strata plots with empty message


<!-- Piwik -->
<script type="text/javascript">
  var _paq = _paq || [];
  (function(){
    var u=(("https:" == document.location.protocol) ? "https://<%= url %>/" : "http://<%= url %>/");
    _paq.push(['setSiteId', <%= id_site %>]);
    _paq.push(['setTrackerUrl', u+'piwik.php']);
    _paq.push(['trackPageView']);
    var d=document,
      g=d.createElement('script'),
      s=d.getElementsByTagName('script')[0];
    g.type='text/javascript';
    g.defer=true;
    g.async=true;
    g.src=u+'piwik.js';
    s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Piwik Tag -->

<!-- Piwik -->
<script type="text/javascript">
  var _paq = _paq || [];
  _paq.push(["trackPageView"]);
  _paq.push(["enableLinkTracking"]);

  (function() {
    var u = (("https:" == document.location.protocol) ? "https" : "http") + "://<%= url %>/";
    _paq.push(["setTrackerUrl", u+"piwik.php"]);
    _paq.push(["setSiteId", <%= id_site %>]);
    var d=document,
      g=d.createElement("script"),
      s=d.getElementsByTagName("script")[0];
    g.type="text/javascript";
    g.defer=true;
    g.async=true;
    g.src=u+"piwik.js";
    s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Piwik Tag -->

Update piwik's async tracking code to the latest version.


<?xml version="1.0"?>
<allocations>
  <queue name="default">
    <weight>1.0</weight>
    <schedulingPolicy>fair</schedulingPolicy>
    <fairSharePreemptionTimeout>150</fairSharePreemptionTimeout>
  </queue>

  <queuePlacementPolicy>
    <rule name="specified" />
    <rule name="secondaryGroupExistingQueue" create="false" />
    <rule name="default" />
  </queuePlacementPolicy>
</allocations>

<?xml version="1.0"?>
<allocations>
  <queue name="default">
    <weight>1.0</weight>
    <schedulingPolicy>fair</schedulingPolicy>
    <fairSharePreemptionTimeout>150</fairSharePreemptionTimeout>
    <minResources>128 mb,1vcores</minResources>
  </queue>

  <queuePlacementPolicy>
    <rule name="specified" />
    <rule name="secondaryGroupExistingQueue" create="false" />
    <rule name="default" />
  </queuePlacementPolicy>
</allocations>

Set a minimum share by default to actaully trigger pre-emption (set to a trivial quantity of RAM and one core)


      <% if signed_in? %>

<a href="/user/view/<%= current_user.id %>">PROFILE

LOGOUT

      <% else %>

REGISTER

LOGIN

      <% end %>

Change register link to /campaign/new instead of /user/register


Refinery::I18n.frontend_locales.each do |lang|
  I18n.locale = lang

  if defined?(Refinery::User)
    Refinery::User.all.each do |user|
      if user.plugins.find_by_name('<%= plural_name %>').nil?
        user.plugins.create(:name => "<%= plural_name %>",
                            :position => (user.plugins.maximum(:position) || -1) +1)
      end
    end
  end

  if defined?(Refinery::Page)
    page = Refinery::Page.where(:link_url => (url = "/<%= [(namespacing.underscore if namespacing.underscore != plural_name), plural_name].compact.join('/') %>")).first_or_create!(
      :title => "<%= class_name.pluralize.underscore.titleize %>",
      :deletable => false,
      :menu_match => "^#{url}(\/|\/.+?|)$"
    )
    thank_you_page = Refinery::Page.where(:link_url => "#{url}/thank_you").first_or_create!(
      :title => "Thank You",
      :deletable => false,
      :show_in_menu => false
    )
    thank_you_page.update_attribute(:parent, page)
    Refinery::Pages.default_parts.each do |default_page_part|
      page.parts.where(:title => default_page_part).first_or_create!(:body => nil)
      thank_you_page.parts.where(:title => default_page_part).first_or_create!(:body => nil)
    end
  end
end

Refinery::I18n.frontend_locales.each do |lang|
  I18n.locale = lang

  if defined?(Refinery::User)
    Refinery::User.all.each do |user|
      if user.plugins.find_by_name('<%= plural_name %>').nil?
        user.plugins.create(:name => "<%= plural_name %>",
                            :position => (user.plugins.maximum(:position) || -1) +1)
      end
    end
  end

  if defined?(Refinery::Page)
    url = "/<%= [(namespacing.underscore if namespacing.underscore != plural_name), plural_name].compact.join('/') %>"
    page = Refinery::Page.where(:link_url => url).first_or_create!(
      :title => "<%= class_name.pluralize.underscore.titleize %>",
      :deletable => false,
      :menu_match => "^#{url}(\/|\/.+?|)$"
    )
    thank_you_page = Refinery::Page.where(:link_url => "#{url}/thank_you").first_or_create!(
      :title => "Thank You",
      :deletable => false,
      :show_in_menu => false
    )
    thank_you_page.update_attribute(:parent, page)
    Refinery::Pages.default_parts.each do |default_page_part|
      page.parts.where(:title => default_page_part).first_or_create!(:body => nil)
      thank_you_page.parts.where(:title => default_page_part).first_or_create!(:body => nil)
    end
  end
end

Move url variable out to a less confusing placement.


Edit Profile

<%= form_for(resource, as: resource_name, url: user_path(@user), html: { method: :put }) do |f| %>
  <%= devise_error_messages! %>

    <%= f.label :first_name %>
    <%= f.text_field :first_name, autofocus: true, :value => @user.first_name %>

    <%= f.label :last_name %>
    <%= f.text_field :last_name, autofocus: true, :value => @user.last_name %>

    <%= f.label :email %>
    <%= f.email_field :email, autofocus: true, :value => @user.email %>

    <%= f.label :phone %>
    <%= f.text_field :phone, id: "phone", autofocus: true, :value => @user.phone %>

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

    <%= f.submit "Update", class: 'button success radius small' %>

<% end %>

<%= link_to 'Back', :back %>

Edit Profile

<%= form_for(resource, as: resource_name, url: user_path(@user), html: { method: :put }) do |f| %>
  <%= devise_error_messages! %>

    <%= f.label :first_name %>
    <%= f.text_field :first_name, autofocus: true, :value => @user.first_name %>

    <%= f.label :last_name %>
    <%= f.text_field :last_name, autofocus: true, :value => @user.last_name %>

    <%= f.label :email %>
    <%= f.email_field :email, autofocus: true, :value => @user.email %>

    <%= f.label :phone %>
    <%= f.text_field :phone, autofocus: true, :value => @user.phone, class: 'phone' %>

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

    <%= f.submit "Update", class: 'button success radius small' %>

<% end %>

<%= link_to 'Back', :back %>

Access class for phone masking

Access class for phone masking


[user]
  name = <%= print("Your Name: "); STDOUT.flush; STDIN.gets.chomp %>
  email = <%= print("Your Email: "); STDOUT.flush; STDIN.gets.chomp %>
[color]
  ui = auto
[core]
  excludesfile = <%= ENV['HOME'] %>/.gitignore
  editor = mvim -f
[apply]
  whitespace = nowarn
[format]
  pretty = %C(yellow)%h%Cred%d %Creset%s
[github]
  user = <%= print("Your github user: "); STDOUT.flush; STDIN.gets.chomp %>
[push]
  default = tracking
[alias]
  rmb = !sh -c 'git branch -d $1 && git push origin :$1' -

Add alias to remove local and remote branch, tks @britto


play = exports ? this

socket = new WebSocket('ws://<%= Play.config.hostname %>/realtime')

socket.onopen = () ->

socket.onmessage = (message) ->
  song = JSON.parse(message.data).now_playing

  if song
    play.renderNowPlaying(song)

  list = listFromJson(JSON.parse(message.data))
  songs = Mustache.to_html(templates.list,list,templates)
  $('#songs').html(songs)

play = exports ? this

socket = new WebSocket('wss://<%= Play.config.hostname %>/realtime')

socket.onopen = () ->

socket.onmessage = (message) ->
  song = JSON.parse(message.data).now_playing

  if song
    play.renderNowPlaying(song)

  list = listFromJson(JSON.parse(message.data))
  songs = Mustache.to_html(templates.list,list,templates)
  $('#songs').html(songs)

Secure like a motherfucker. This'll probably break everyone else though.


Vagrant::Config.run do |config|
  # This Vagrantfile is auto-generated by `vagrant package` to contain
  # the MAC address of the box. Custom configuration should be placed in
  # the actual `Vagrantfile` in this box.
  config.vm.base_mac = "<%= base_mac %>"
end

# Load include vagrant file if it exists after the auto-generated
# so it can override any of the settings
include_vagrantfile = File.expand_path(File.join(File.dirname(__FILE__), "include", "Vagrantfile"))
load include_vagrantfile if File.exist?(include_vagrantfile)

Load Vagrantfile in include/ directory for boxes if it exists


<%= @host.params['ssh_authorized_keys'].split(',').map(&:strip).each do |ssh_key| -%>

<% @host.params['ssh_authorized_keys'].split(',').map(&:strip).each do |ssh_key| %>
<%= ssh_key %>
<% end %>

Fix missing loop structure in template

Fix missing loop structure in template


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <meta http-equiv="Content-Type" content="text/html; charset=<%= charset %>" />
    <title><%= @title %></title>
    <%= erb(:headers) %>

<%= @title %>

      <%= yieldall %>

    <%= erb(:footer) %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <meta http-equiv="Content-Type" content="text/html; charset=<%= charset %>" />
    <title><%= defined?(@title) ? @title : '' %></title>
    <%= erb(:headers) %>

<%= defined?(@title) ? @title : '' %>

      <%= yieldall %>

    <%= erb(:footer) %>

Fix "warning: instance variable @title not initialized"


---
layout: application_layout
parent: /apps.html
source_url: https://github.com/alphagov/govuk-developer-docs/blob/master/data/applications.yml
edit_url: https://github.com/alphagov/govuk-developer-docs/edit/master/data/applications.yml
---

<%= application.description %>

This application is retired.

<% if application.retired? %>

<%= link_to "GitHub repo", application.repo_url %>

<% else %>

<% if application.team %>
Owned by team **<%= application.team %>**.
<% else %>
The team that owns this application isn't specified. Help out by
[adding a team name to the YAML configuration][app-yaml].
<% end %>

<%= link_to "GitHub repo", application.repo_url %>

<%= link_to "Puppet configuration", application.puppet_url %>

<%= link_to "Deploy scripts", application.deploy_url %>

  <% if application.production_url %>

<%= link_to application.production_url.gsub('https://', ''), application.production_url %>

  <% end %>

<% end %>

<%= partial 'partials/source', locals: { page: current_page.data } %>

[app-yaml]: https://github.com/alphagov/govuk-developer-docs/edit/master/data/applications.yml

---
layout: application_layout
parent: /apps.html
source_url: https://github.com/alphagov/govuk-developer-docs/blob/master/data/applications.yml
edit_url: https://github.com/alphagov/govuk-developer-docs/edit/master/data/applications.yml
---

<%= application.description %>

<% if application.retired? %>

This application is retired.

<%= link_to "GitHub repo", application.repo_url %>

<% else %>

<% if application.team %>
Owned by team **<%= application.team %>**.
<% else %>
The team that owns this application isn't specified. Help out by
[adding a team name to the YAML configuration][app-yaml].
<% end %>

<%= link_to "GitHub repo", application.repo_url %>

<%= link_to "Puppet configuration", application.puppet_url %>

<%= link_to "Deploy scripts", application.deploy_url %>

  <% if application.production_url %>

<%= link_to application.production_url.gsub('https://', ''), application.production_url %>

  <% end %>

<% end %>

<%= partial 'partials/source', locals: { page: current_page.data } %>

[app-yaml]: https://github.com/alphagov/govuk-developer-docs/edit/master/data/applications.yml

Fix bug in showing which repos are retired

"This application is retired." is currently showing everywhere.


<% if @product.subscribable? %>
  <%= hidden_field_tag (@product.variants_and_option_values.any? ? :quantity : "variants[#{@product.master.id}]"),
              1, :class => 'title' %>
<% else %>
  <%= number_field_tag (@product.variants_and_option_values.any? ? :quantity : "variants[#{@product.master.id}]"),
            1, :class => 'title', :min => 1 %>
<% end %>

<% if @product.subscribable? %>
  <%=  hidden_field_tag :quantity, 1, :class => 'title', :min => 1 %>
<% else %>
  <%=  number_field_tag :quantity, 1, :class => 'title', :min => 1 %>
<% end %>

Update number_field_tag to mach new spree syntax


<% content_for :page_title, "New corporate information page for #{@organisation.name}" %>
<% content_for :back_link, (render "govuk_publishing_components/components/back_link", {
    href: admin_editions_path
  })
%>
<% content_for :error_summary, render('shared/error_summary', object: @edition.becomes(Edition), class_name: @edition.class.name.demodulize.underscore.humanize.downcase) %>

    <%= render "govuk_publishing_components/components/title", {
      title: sanitize("Add new corporate information page to #{link_to(@organisation.name, [:admin, @organisation], class: 'govuk-link')}")
    } %>

    <%= render "legacy_form", edition: @edition %>

Add corporate information new page in design system


check process redis-server with pidfile <%= @redis_pid_path %>
  start program = "<%= @service_name %> start"
  stop program = "<%= @service_name %> stop"
  if failed host <%= @host %> port <%= @port %>
    send "PING\r\n" expect "+PONG\r\n"
  then alert

check process redis-server with pidfile <%= @redis_pid_path %>
  start program = "<%= @service_name %> start"
  stop program = "<%= @service_name %> stop"
  if failed host <%= @host %> port <%= @port %>
    send "PING\r\n" expect "\+PONG\r\n"
  then alert

Fix syntax error in Monit config for Redis


Un nouvel administrateur a été créé sur demarches-simplifiees.fr.

Plateforme : <%= TPS::Application::URL %>

Login : <%= @admin.email %>

Créateur : <%= @administration.email %>

Bonne journée,

L'équipe demarches-simplifiees.fr (anciennement Téléprocédures Simplifiées)

Un nouvel administrateur a été créé sur demarches-simplifiees.fr.

Plateforme : <%= root_url %>

Login : <%= @admin.email %>

Créateur : <%= @administration.email %>

Bonne journée,

L'équipe demarches-simplifiees.fr (anciennement Téléprocédures Simplifiées)

Use root_url in admin creation mail

Use root_url in admin creation mail


      <%= radio_button_tag "response[selection]", "yes", prefill_value_is?("yes"), id: "response_selection_yes" %>
      Yes, on <%= render "date_question", :question => question %>

      <%= radio_button_tag "response[selection]", "no", prefill_value_is?("no"), id: "response_selection_no" %>
      No

      <%= radio_button_tag "response[selection]", "yes", prefill_value_is?("yes"), id: "response_selection_yes" %>
      Yes — on <%= render "date_question", :question => question %>

      <%= radio_button_tag "response[selection]", "no", prefill_value_is?("no"), id: "response_selection_no" %>
      No

Use mdash instead of comma in optional date q.


  <a href="<%= endpoint.console_path %>" class="method">

  <%= render "method", endpoint: endpoint %>

<% if endpoint.description %>

    <%= endpoint.description %>

<% end %>

<% if endpoint.request || endpoint.response %>
  <% if endpoint.request %>
    <%= render "request", endpoint: endpoint %>
  <% end %>

  <% if endpoint.response %>
    <%= render "response", response: endpoint.response %>
  <% end %>
<% end %>

  <a href="<%= endpoint.console_path %>" class="method">

  <%= render "method", endpoint: endpoint %>

<% if endpoint.description %>

    <%= endpoint.description %>

<% end %>

<% if endpoint.request? %>
  <%= render "request", endpoint: endpoint %>
<% end %>

<% if endpoint.response? %>
  <%= render "response", response: endpoint.response %>
<% end %>

Fix response and request conditions for endpoint partial


Get your Flowdock API tokens from the help page. The tokens are specific to a single Flowdock flow.

<% Project.active.each do |project| %>

  <%= content_tag(:label, project.name) %>
  <%= text_field_tag("settings[api_token][#{project.identifier}]", @settings[:api_token][project.identifier], :size => 40) %>

<% end %>

Get your Flowdock API tokens from the help page. The tokens are specific to a single Flowdock flow. You can send updates to multiple flows by adding multiple tokens that are separated with a comma.

<% Project.active.each do |project| %>

  <%= content_tag(:label, project.name) %>
  <%= text_field_tag("settings[api_token][#{project.identifier}]", @settings[:api_token][project.identifier]) %>

<% end %>

Support sending updates to multiple flows

The API supports sending messages to multiple flows with a comma-separated token list in the URL. Remove the settings UI size limitation and update instructions.


# frozen_string_literal: true

Vedeu.configure do
  # see http://rubydoc.info/gems/vedeu/file/docs/configuration.md

  # base_path

  # colour_mode 16_777_216 # Some terminals don't render colour at all when this
                           # value is not one of 8, 16, 256 or 16777216.

  # compression false

  # debug! # Requires "gem 'ruby-prof'" in your Gemfile.
  # drb!
  # drb_host    'localhost'
  # drb_port    21420
  # drb_width   80
  # drb_height  25

  # terminal_mode :raw
  # cooked!
  # raw!

  log         "log/<%= object.name %>.log"

  # renderers

  # root :controller, :action, *args

  # run_once!

  # interactive!
  # standalone!

  # Not used yet
  # stdin  File.open("/dev/tty", "r")
  # stdout File.open("/dev/tty", "w")
  # stderr File.open("/tmp/vedeu_error.log", "w+")
end

# frozen_string_literal: true

Vedeu.configure do
  # see http://rubydoc.info/gems/vedeu/file/docs/configuration.md

  # base_path

  # colour_mode 16_777_216 # Some terminals don't render colour at all when this
                           # value is not one of 8, 16, 256 or 16777216.

  # compression false

  # debug! # Requires "gem 'ruby-prof'" in your Gemfile.
  # drb!
  # drb_host    'localhost'
  # drb_port    21420
  # drb_width   80
  # drb_height  25

  # terminal_mode :raw
  # cooked!
  # raw!

  log         "log/<%= object.name %>.log"

  # renderers

  # root :controller, :action, *args

  # run_once!

  # interactive!
  # standalone!

  # Not used yet
  # stdin  File.open('/dev/tty', 'r')
  # stdout File.open('/dev/tty', 'w')
  # stderr File.open(Dir.tmpdir + '/vedeu_error.log', 'w+')
end

Fix temporary directory path for Windows;

Also, use single quotes for strings.


<%= food.name %>

			<%= image_tag "/theme/images/icon_housemade.gif", :class => "legend_icon" if food.housemade -%>
			<%= image_tag "/theme/images/icon_vegan.gif", :class => "legend_icon" if food.vegan -%>
			<%= image_tag "/theme/images/icon_spicy.gif", :class => "legend_icon" if food.spicy -%>
		<%= food.description %>

		<%= "$" << food.price unless food.price.blank? || food.price == 0 %>

<%= food.name %>

			<%= image_tag "/theme/images/icon_housemade.gif", :class => "legend_icon" if food.housemade -%>
			<%= image_tag "/theme/images/icon_vegan.gif", :class => "legend_icon" if food.vegan -%>
			<%= image_tag "/theme/images/icon_spicy.gif", :class => "legend_icon" if food.spicy -%>
		<%= food.description %>

		<%= "$" << food.price unless food.price == nil %>

Check for nil instead of 0 for no price field


<%-# Fedena
   #Copyright 2010 Foradian Technologies Private Limited
   #
   #This product includes software developed at
   #Project Fedena - http://www.projectfedena.org/
   #
   #Licensed under the Apache License, Version 2.0 (the "License");
   #you may not use this file except in compliance with the License.
   #You may obtain a copy of the License at
   #
   #  http://www.apache.org/licenses/LICENSE-2.0
   #
   #Unless required by applicable law or agreed to in writing,
   #software distributed under the License is distributed on an
   #"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   #KIND, either express or implied.  See the License for the
   #specific language governing permissions and limitations
   #under the License. -%>

    <%= image_tag current_school_detail.logo.path||"#{Rails.root}/public/images/application/app_fedena_logo.jpg" %>

<%=Configuration.get_config_value('InstitutionName'); %>

<%=Configuration.get_config_value('InstitutionAddress'); %>

<%-# Fedena
#Copyright 2010 Foradian Technologies Private Limited
#
#This product includes software developed at
#Project Fedena - http://www.projectfedena.org/
#
#Licensed under the Apache License, Version 2.0 (the "License");
#you may not use this file except in compliance with the License.
#You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
#Unless required by applicable law or agreed to in writing,
#software distributed under the License is distributed on an
#"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#KIND, either express or implied.  See the License for the
#specific language governing permissions and limitations
#under the License. -%>

    <%= wicked_pdf_image_tag "/"+(current_school_detail.logo.path||"#{Rails.root}/public/images/application/app_fedena_logo.jpg") %>

<%=Configuration.get_config_value('InstitutionName'); %>

<%=Configuration.get_config_value('InstitutionAddress'); %>

Fix for wickedpdf image tag for windows - srihari

git-svn-id: 6fb0b63dee43263dbd2534f09c80ea129ca0b2b4@2464 1b8ff446-76f8-11e0-a33c-ba5893e5f458


var legend = new AmCharts.AmLegend;
<% builder.render_settings(legend, 'legend') %>
<%= yield(legend, 'legend') rescue nil %>
<% builder.render_listeners(legend, 'legend') %>
chart.addLegend(legend, <%= builder.to_js(div) %>);

var legend = new AmCharts.AmLegend;
<% builder.render_settings(legend, 'legend') %>
<%= yield(legend, 'legend') rescue nil %>
<% builder.render_listeners(legend, 'legend') %>
<% if div.present? %>
  chart.addLegend(legend, <%= builder.to_js(div) %>);
<% else %>
  chart.addLegend(legend);
<% end %>

Fix legend positioning when legend_div is not specified


<%= render "shared/nav" %>

<% @event.event_instances&.upcoming&.each_slice(3) do |instances| %>

    <% instances.each do |instance| %>

          <img src="<%= instance.image_url %>">
          <%= instance.name %>

<%= instance.description %>

            Start <%= instance.start_time.strftime("%H:%M")%>
            at <%= instance.address&.display_name %>

          <a href="/events/<%= instance.id %>/register">Register

    <% end %>

<% end %>

<%= render "shared/nav" %>

<% @event.event_instances&.upcoming&.each_slice(3) do |instances| %>

    <% instances.each do |instance| %>

          <img src="<%= instance.image_url.blank? ? 'https://res.cloudinary.com/dkbwcwx1s/image/upload/v1528827293/placeholder.png' : event.image_url %>">
          <%= instance.name %>

<%= instance.description %>

            Start <%= instance.start_time.strftime("%H:%M")%>
            at <%= instance.address&.display_name %>

          <a href="/events/<%= instance.id %>/register">Register

    <% end %>

<% end %>

Use the default image for subgroups of event instances


<% provide(:title, 'Användare') %>

Användare

<%= will_paginate @users, previous_label: t("föregående"), next_label: t("nästa")%>

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

        <%= user.id %>
        <%= link_to user.name, user %>
        <% if user.admin %>admin<% end %>

        <% if user.disabled %>
          Avstängd
        <% end %>
        <%= user.email %>
        <%= user.created_at.to_formatted_s(:dmy) %>
        <%= user.updated_at.to_formatted_s(:dmy) %>
        <%= link_to 'Redigera', edit_user_path(user) %>

  <% end %>

<%= will_paginate @users, previous_label: t("föregående"), next_label: t("nästa")%>

<% provide(:title, 'Användare') %>

Användare

<%= will_paginate @users, previous_label: t("föregående"), next_label: t("nästa")%>

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

        <%= user.id %>
        <%= link_to user.name, user %>
        <% if user.admin %>admin<% end %>

        <% if user.disabled %>
          Avstängd,
        <% end %>
        #Böcker: <%= user.books.count %>,
        <%= user.email %>,
        <%= user.created_at.to_formatted_s(:dmy) %>,
        <%= user.updated_at.to_formatted_s(:dmy) %>,
        <%= link_to 'Redigera', edit_user_path(user) %>

  <% end %>

<%= will_paginate @users, previous_label: t("föregående"), next_label: t("nästa")%>

Add nbr of books at the users list

Add nbr of books at the users list


* Configuration: `/etc/buildkite-agent/buildkite-agent.cfg`
* Hooks: `/etc/buildkite-agent/hooks/`
* Builds: `/var/buildkite-agent/builds/`
* Logs, depending on your system:
  - `journalctl -f -u buildkite-agent` (systemd)
  - `/var/log/upstart/buildkite-agent.log` (upstart)
  - `/var/log/buildkite-agent.log` (older systems)
* Agent user home: `/var/lib/buildkite-agent/`
* SSH keys: `/var/lib/buildkite-agent/.ssh/`

* Configuration: `/etc/buildkite-agent/buildkite-agent.cfg`
* Hooks: `/etc/buildkite-agent/hooks/`
* Builds: `/var/lib/buildkite-agent/builds/`
* Logs, depending on your system:
  - `journalctl -f -u buildkite-agent` (systemd)
  - `/var/log/upstart/buildkite-agent.log` (upstart)
  - `/var/log/buildkite-agent.log` (older systems)
* Agent user home: `/var/lib/buildkite-agent/`
* SSH keys: `/var/lib/buildkite-agent/.ssh/`

Update apt location for builds

Update apt location for builds


Boom! Resumis.

List of Sites

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

<%= link_to (u.full_name ? u.full_name : u.subdomain), "#{request.protocol}#{tenant_instance_hostname(u)}/" %> - <%= tenant_instance_hostname(u) %>

    <% end %>

    <%= link_to new_user_session_path, class: "btn btn-lg btn-success" do %>
      Login to Resumis
    <% end %>

      Wasn't expecting to see this?

        Resumis is a multi-tenancy application, seperating different user's sites by subdomain, or if they prefer, domain name.

        As such, there is no site to be accessed here on the bare domain. If you prefer that the bare domain goes to a specific user's site, conduct such a redirect within your web server configuration.

Boom! Resumis.

List of Sites

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

<%= link_to (u.full_name ? u.full_name : u.subdomain), "#{request.protocol}#{tenant_instance_hostname(u)}/" %> - <%= tenant_instance_hostname(u) %>

    <% end %>

    <%= link_to new_user_session_path, class: "btn btn-lg btn-success" do %>
      Login to Resumis
    <% end %>
    <% if Devise.mappings[:user].registerable? %>
      <%= link_to new_user_registration_path, class: "btn btn-lg btn-primary" do %>
        Sign Up
      <% end %>
    <% end %>

      Wasn't expecting to see this?

        Resumis is a multi-tenancy application, seperating different user's sites by subdomain, or if they prefer, domain name.

        As such, there is no site to be accessed here on the bare domain. If you prefer that the bare domain goes to a specific user's site, conduct such a redirect within your web server configuration.

Add sign up link to bare domain index page

Signed-off-by: Max Fierke <0706025b2bbcec1ed8d64822f4eccd96314938d0@maxfierke.com>


Case studies

    <% document.case_studies.each do |case_study| %>
      <%= content_tag_for(:li, case_study) do %>
        <%= link_to case_study.title, case_studies_path(case_study) %>
      <% end %>
    <% end %>

Case studies

    <% document.case_studies.each do |case_study| %>
      <%= content_tag_for(:li, case_study) do %>
        <%= link_to case_study.title, public_document_path(case_study) %>
      <% end %>
    <% end %>

Use correct document helper to generate case study link


<%= link_to 'Dashboard', '/dashboard' %>

Activate Device

Activate Device

<%= form_tag nil, { class: 'form-horizontal' } do %>

    <%= label_tag 'activation_token', 'Activation Token', class: 'col-sm-4 control-label' %>

      <%= text_field_tag 'activation_token', nil, class: 'form-control' %>

      <%= submit_tag 'Activate Device', class: 'btn btn-primary' %>

<% end %>

Add breadcrumb to activate page.

Add breadcrumb to activate page.


Free & easy to integrate

Just use one of our plugins for blogging platforms. Alternatively, drop a single line of code on your page, and you’re done! We will automatically match the look and feel of your site, and if this is not enough you can customize it.

    <%= link_to 'Manual installation', pages_path("on-your-site"), class: 'button' %>
    <%= link_to 'Get WordPress plugin', 'http://wordpress.org/plugins/factlink/', class: 'button' %>

Free & easy to integrate

Just use one of our plugins for blogging platforms. Alternatively, drop a single line of code on your page, and you’re done! We will automatically match the look and feel of your site, and if this is not enough you can customize it.

 Install Factlink on your site

      <%= link_to 'Manual installation', pages_path("on-your-site"), class: 'button' %>
      <%= link_to 'Get WordPress plugin', 'http://wordpress.org/plugins/factlink/', class: 'button' %>

Add CTA area on easy integration

Add CTA area on easy integration


#!/bin/sh

<%= render("make_metrics_rundir.erb") %>

echo "Received HUP from runit, sending to process group (-PID)"
kill -1 -- -$(cat /opt/gitlab/service/<%= @options[:service] %>/supervise/pid)

Add HUP script to unicorn runit control.

Override the default `HUP` handling for unicorn.  Include the metrics
directory setup/cleanup to avoid stale metrics files when reloading
unicorn.


$('#point-summary').html('<%= j render 'point_summary' %>');
<%= render 'point_summary.js.erb' %>

$('#point-summary').html('<%= j render 'point_summary.html' %>');
<%= render 'point_summary.js' %>

Fix display of donut charts

Fix display of donut charts


<%= location(link_to(image_tag("btn/btn_config.png", :class => "btn_config")+t('account.one')+": "+t('account.settings')))%>

<%= t('settings.for')%> <%= current_subject.name %>

<%= render :partial => "notifications" %>
<%= render :partial => "api_key" %>

<%= location(link_to(image_tag("btn/btn_config.png", :class => "btn_config")+t('account.one')+": "+t('account.settings')))%>

<%= t('settings.for')%> <%= current_subject.name %>

<%= render :partial => "notifications" %>
<% if current_subject.respond_to? :authentication_token%>
<%= render :partial => "api_key" %>
<% end %>

Fix for api setting crashing when representing a group


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

SSLProtocol All -SSLv2 -SSLv3

SSLHonorCipherOrder On
SSLCipherSuite <%= node[:ssl][:ciphers] %>
<% if node[:lsb][:release].to_f < 16.04 -%>

SSLCertificateChainFile /etc/ssl/certs/letsencrypt.pem
<% end -%>

SSLUseStapling On
SSLStaplingResponderTimeout 5
SSLStaplingErrorCacheTimeout 60
SSLStaplingReturnResponderErrors off
SSLStaplingFakeTryLater off
SSLStaplingCache shmcb:${APACHE_RUN_DIR}/ssl_ocspcache(512000)
<% if node[:ssl][:strict_transport_security] -%>

Header setifempty Strict-Transport-Security "<%= node[:ssl][:strict_transport_security] %>" env=HTTPS
<% end -%>

Header setifempty Expect-CT "max-age=0, report-uri=\"https://openstreetmap.report-uri.com/r/d/ct/reportOnly\"" env=HTTPS

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

SSLProtocol All -SSLv2 -SSLv3

SSLHonorCipherOrder On
SSLCipherSuite <%= node[:ssl][:ciphers] %>
<% if node[:lsb][:release].to_f < 16.04 -%>

SSLCertificateChainFile /etc/ssl/certs/letsencrypt.pem
<% end -%>

SSLUseStapling On
SSLStaplingResponderTimeout 5
SSLStaplingErrorCacheTimeout 60
SSLStaplingReturnResponderErrors off
SSLStaplingFakeTryLater off
SSLStaplingCache shmcb:${APACHE_RUN_DIR}/ssl_ocspcache(512000)

Header always set Strict-Transport-Security "<%= node[:ssl][:strict_transport_security] %>" "expr=%{HTTPS} == 'on'"
Header always set Expect-CT "max-age=0, report-uri=\"https://openstreetmap.report-uri.com/r/d/ct/reportOnly\"" "expr=%{HTTPS} == 'on'

Make sure STS and Expect-CT headers are set on redirect responses


<% cache_if edition.role_appointment_id.nil?, taggable_role_appointments_cache_digest do %>
  <%= form.label :role_appointment_id, 'Speaker' %>
  <%= form.select :role_appointment_id,
                  options_for_select(taggable_role_appointments_container, edition.role_appointment_id),
                  { include_blank: true },
                  class: 'chzn-select form-control',
                    data: { placeholder: "Choose a person…" } %>
<% end %>

  <%= form.text_field :person_override, label_text: "Speaker" %>

  <%= label_tag :person_override_active, nil do %>
    <%= check_box_tag :person_override_active, "1", edition.person_override? %> Speaker does not have a profile on GOV.UK (eg the King)
  <% end %>

<% cache_if edition.role_appointment_id.nil?, taggable_role_appointments_cache_digest do %>
  <%= form.label :role_appointment_id, 'Speaker' %>
  <%= form.select :role_appointment_id,
                  options_for_select(taggable_role_appointments_container, edition.role_appointment_id),
                  { include_blank: true },
                  class: 'chzn-select form-control',
                    data: { placeholder: "Choose a person…" } %>
<% end %>

  <%= form.text_field :person_override, label_text: "Speaker" %>

  <%= label_tag :person_override_active, nil do %>
    <%= check_box_tag :person_override_active, "1", edition.person_override? %> Speaker does not have a profile on GOV.UK (for example, the King)
  <% end %>

Replace "eg" abbreviation with "for example"


<%= form_tag(
  url_for({
    action: 'index',
    options: @options.to_json,
    size: @size
  }),
  remote: true,
  method: 'get'
) do %>
  <%= hidden_field_tag("element_id", @element.blank? ? "" : @element.id) %>
  <%= hidden_field_tag("content_id", @content.blank? ? "" : @content.id) %>
  <div class="search_field">
  <%= render_icon('search') %>
    <%= text_field_tag :query,
      params['query'],
      class: 'thin_border',
      id: 'search_input_field',
      placeholder: _t(:search) %>
    <%= link_to '', url_for({
        action: 'index',
        element_id: @element.blank? ? '' : @element.id,
        content_id: @content.blank? ? '' : @content.id,
        options: @options.to_json,
        size: @size,
        overlay: true
      }),
      remote: true,
      class: 'search_field_clear',
      id: 'search_field_clear',
      title: _t(:click_to_show_all),
      style: params[:query].nil? ? 'display: none' : 'display: block' %>
  </div>
<% end %>

<%= search_form_for @query, url: url_for(
    action: 'index',
    options: @options.to_json,
    size: @size
  ), remote: true do |f| %>
  <%= hidden_field_tag("element_id", @element.blank? ? "" : @element.id) %>
  <%= hidden_field_tag("content_id", @content.blank? ? "" : @content.id) %>
  <div class="search_field">
  <%= render_icon('search') %>
    <%= f.search_field resource_handler.search_field_name,
      id: 'search_input_field',
      placeholder: _t(:search) %>
    <%= link_to '', url_for(
        action: 'index',
        element_id: @element.blank? ? '' : @element.id,
        content_id: @content.blank? ? '' : @content.id,
        options: @options.to_json,
        size: @size,
        overlay: true
      ),
      remote: true,
      class: 'search_field_clear',
      id: 'search_field_clear',
      title: _t(:click_to_show_all),
      style: params[:q].blank? ? 'display: none' : 'display: block' %>
  </div>
<% end %>

Use ransack search in remote search form


    <%= render 'request_header_patron' %>

      <% if @submission.access_only? %>
      <%= I18n.t('requests.recap_guest.email_conf_msg') %>
      <% else %>
      <%= I18n.t('requests.recap.email_conf_msg') %>
      <% end %>

    <%= render 'covid_pickup_guidelines' %>

    <%= render 'bib_info_patron' %>

    <%= render 'item_info' %>

    <%= render 'request_header_patron' %>

      <% if @submission.access_only? %>
      <%= I18n.t('requests.recap_guest.email_conf_msg') %>
      <% else %>
      <%= I18n.t('requests.recap.email_conf_msg') %>
      <% end %>

    <%= render 'pickup_info' %>
    <%= render 'covid_pickup_guidelines' %>

    <%= render 'bib_info_patron' %>

    <%= render 'item_info' %>

Add pickup info for recap confirmation email


Push Simple - Service Worker Rails Sandbox

<%= ENV.fetch('GOOGLE_CLOUD_MESSAGE_PROJECT', 'GOOGLE_CLOUD_MESSAGE_PROJECT') %>

Add back GCM sender id to manifest - still required for VAPID


<% content_for :context, attachment.title %>
<% content_for :page_title, "Delete attachment" %>
<% content_for :title, "Delete attachment" %>
<% content_for :title_margin_bottom, 6 %>
<% content_for :back_link do %>
  <%= render "govuk_publishing_components/components/back_link", {
    href: attachable_attachments_path(attachable)
  } %>
<% end %>

    <%= form_tag [:admin, typecast_for_attachable_routing(attachable), attachment.becomes(Attachment)], method: :delete do %>

Are you sure you want to delete this attachment?

      <%= render "govuk_publishing_components/components/button", {
        text: "Delete attachment",
        destructive: true,
        margin_bottom: 8,
      } %>
    <% end %>

<% content_for :context, attachment.title %>
<% content_for :page_title, "Delete attachment" %>
<% content_for :title, "Delete attachment" %>
<% content_for :title_margin_bottom, 6 %>

    <%= form_tag [:admin, typecast_for_attachable_routing(attachable), attachment.becomes(Attachment)], method: :delete do %>

Are you sure you want to delete this attachment?

      <%= render "govuk_publishing_components/components/button", {
        text: "Delete attachment",
        destructive: true,
      } %>

      Cancel

    <% end %>

Replace attachment confirm destroy back button with cancel button

In our like for like approach we're using cancel buttons instead of back buttons in the new design system pages


List your conference

Encourage thousands of speakers to respond to your call for proposals

Is your event:

<%= icon('check-square-o') %> For professional programmers?

<%= icon('check-square-o') %> Seeking public speaker submissions?

  <%= link_to "Yes, list me!", conference_organizer_omniauth_authorize_path(:twitter), class: "button", role: "button" %>

List your conference

Encourage thousands of speakers to submit to your conference

Is your event:

<%= icon('check-square-o') %> For professional programmers?

<%= icon('check-square-o') %> Seeking speaker proposals?

  <%= link_to "Yes, list me!", conference_organizer_omniauth_authorize_path(:twitter), class: "button", role: "button" %>

Copy changes to approval page

Copy changes to approval page


Listing invoices

      Purchase
      Reference number

    <% @invoices.each do |invoice| %>

        <%= invoice.purchase %>
        <%= invoice.reference_number %>
        <%= link_to 'Show', invoice %>
        <%= link_to 'Edit', edit_invoice_path(invoice) %>
        <%= link_to 'Destroy', invoice, method: :delete, data: { confirm: 'Are you sure?' } %>

    <% end %>

<%= link_to 'New Invoice', new_invoice_path %>

Listing invoices

      Purchase
      Reference number

    <% @invoices.each do |invoice| %>

        <%= display_purchase(invoice) %>
        <%= invoice.reference_number %>
        <%= link_to 'Show', invoice %>
        <%= link_to 'Edit', edit_invoice_path(invoice) %>
        <%= link_to 'Destroy', invoice, method: :delete, data: { confirm: 'Are you sure?' } %>

    <% end %>

<%= link_to 'New Invoice', new_invoice_path %>

Add Display Purchase to Index

Add Display Purchase to Index


<% if type == :notice %>
  <%= alert_box context: :success, dismissible: true do %>
    <%= message %>
  <% end %>
<% else %>
  <%= alert_box context: :danger, dismissible: true do %>
    <%= message %>
  <% end %>
<% end %>

<% if type == :success %>
  <%= alert_box context: :success, dismissible: true do %>
    <%= message %>
  <% end %>
<% elsif type == :error %>
  <%= alert_box context: :danger, dismissible: true do %>
    <%= message %>
  <% end %>
<% elsif type == :warning %>
    <%= alert_box context: :warning, dismissible: true do %>
      <%= message %>
    <% end %>
<% else %>
  <%= alert_box context: :info, dismissible: true do %>
    <%= message %>
  <% end %>
<% end %>

Fix flash message alert boxes

Fix flash message alert boxes


<%= render :partial => 'shared/form_errors', :locals => {:object => @reading} %>

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

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

  <%= f.label :grade, class: 'control-label' %>

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

  <%= f.label :color, class: 'control-label' %>

    <%= f.text_field :color, class: 'form-control' %>
    <input type="button" class="btn btn-info" id="pickcolor_button" value="Pick color"></input>

<%= f.submit 'Save', class: 'btn btn-primary' %>

<%= render :partial => 'shared/form_errors', :locals => {:object => @reading} %>

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

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

  <%= f.label :grade, class: 'control-label' %>

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

  <%= f.label :color, class: 'control-label' %>

    <%= f.text_field :color, class: 'form-control' %>
    <input type="button" class="btn btn-info" style="padding: 5px" id="pickcolor_button" value="Pick color"></input>

<%= f.submit 'Save', class: 'btn btn-primary' %>

Fix Pick color button size

Fix Pick color button size

Now it matches the field height


        <%= image_tag 'logo_white.png', alt:'Open Addresses', class:'logo' %>

        <address>
          Open Addressess Limited

          c/o BPE Solicitors LLP, St James' House, St James Square, Cheltenham, GL50 3PR

          Company No. 09172118

          Privacy Policy
        </address>

         @OpenAddressesUK

         info@openaddressesuk.org

         github.com/OpenAddressesUK

Add footer icons and link to github

Add footer icons and link to github


<% if node['gitlab']['high-availability']['mountpoint'] %>
if ! mountpoint -q '<%= node['gitlab']['high-availability']['mountpoint'] %>' ; then
  echo 'Refusing to start because <%= node['gitlab']['high-availability']['mountpoint'] %> is not a mountpoint.'
  exit 1
fi
<% end %>

<% [node['gitlab']['high-availability']['mountpoint']].flatten.compact.each do |mountpoint| %>
if ! mountpoint -q '<%= mountpoint %>' ; then
  echo 'Refusing to start because <%= mountpoint %> is not a mountpoint.'
  exit 1
fi
<% end %>

Allow to specify multiple mountpoints as an array to high-availability:mountpoint


Reek Results

Reek detects common code smells in ruby code.

<% graph_name = 'reek' %>
<% if MetricFu.configuration.graph_engine == :gchart %>
<img src="<%= graph_name %>.png?<%= Time.now.to_i %>" />
<% else %>
<canvas id="graph"></canvas>

<% end %>

    File Path
    Method
    Description
    Type

  <% count = 0 %>
  <% @reek[:matches].each do |match| %>
    <% match[:code_smells].each do |smell| %>
      <tr class='<%= cycle("light", "dark", count) %>'>
        <%= link_to_filename(match[:file_path]) %>

          <%= smell[:method] %>

          <%= smell[:message] %>

          <%= smell[:type] %>

      <% count += 1 %>
    <% end %>
  <% end %>

Generated on <%= Time.now.localtime %>

Fix broken link to the Reek page.

Fix broken link to the Reek page.

The previous link does a redirect to a 404.


<% hide_caption true %>

<% text_for :title do %>
  What do you need help with because of coronavirus?
<% end %>

<% text_for :hint do %>
  Select all that apply
<% end %>

<% options(
  "feeling_unsafe": "Feeling unsafe where you live, or what to do if you’re worried about the safety of another adult or child",
  "paying_bills": "Paying your rent, mortgage, or bills",
  "getting_food": "Getting food",
  "being_unemployed": "Being made redundant or unemployed, or not having any work",
  "going_to_work": "Being worried about working, or off work because you’re self-isolating",
  "somewhere_to_live": "Having somewhere to live",
  "mental_health": "Mental health and wellbeing, including information for children",
  "none": "Not sure",
) %>

<% text_for :error_message do %>
  Select what you need to find help with, or ‘Not sure’
<% end %>

<% hide_caption true %>

<% text_for :title do %>
  What do you need help with because of coronavirus?
<% end %>

<% text_for :hint do %>
  Select all that apply
<% end %>

<% options(
  "feeling_unsafe": "Feeling unsafe where you live, or what to do if you’re worried about the safety of another adult or child",
  "paying_bills": "Paying your rent, mortgage, or bills",
  "getting_food": "Getting food",
  "being_unemployed": "Being made redundant or unemployed, or not having any work",
  "going_to_work": "Being worried about working, or off work because you’re self-isolating",
  "somewhere_to_live": "Having somewhere to live",
  "mental_health": "Mental health and wellbeing, including information for children",
  "none": "None of these",
) %>

<% text_for :error_message do %>
  Select what you need to find help with, or ‘None of these’
<% end %>

Change text for question option in find-support flow

This changes `Not sure` to `None of these` in the What do you need help
with question. This is to make it quicker for users to reach the results
page.


---
- scm:
    name: smokey_Smokey
    scm:
      - git:
          url: git@github.com:alphagov/smokey.git
          branches: [main]

- job:
    name: Smokey
    description: Task to run the smoke tests after each deploy.
    display-name: Smokey
    project-type: freestyle
    scm:
      - smokey_Smokey
    properties:
      - build-discarder:
          days-to-keep: 30
          artifact-num-to-keep: 5
    publishers:
      - trigger-parameterized-builds:
          - project: Success_Passive_Check
            condition: SUCCESS
            predefined-parameters: |
                NSCA_CHECK_DESCRIPTION=<%= @service_description %>
                NSCA_OUTPUT=<%= @service_description %> success
          - project: Failure_Passive_Check
            condition: FAILED
            predefined-parameters: |
                NSCA_CHECK_DESCRIPTION=<%= @service_description %>
                NSCA_OUTPUT=<%= @service_description %> failed
    parameters:
      - string:
          name: TARGET_APPLICATION
          description: Application to target (optional).
    builders:
      - shell: |
          set +x
          export TARGET_PLATFORM=<%= @environment %>
          set -x
          ./jenkins.sh
    wrappers:
      - ansicolor:
          colormap: xterm
      - build-name:
          name: '#${BUILD_NUMBER}: ${ENV,var="TARGET_APPLICATION"}'

Make Smokey job names more descriptive

Make Smokey job names more descriptive

Following on from the success of #11455, we can make a similar
change to our Smokey builds, so that it is easy to see whether
a build was for the entire test suite or for a particular app.

When TARGET_APPLICATION is set, it displays in the job name,
otherwise we have an empty string. I couldn't figure out how to
set it to a default, e.g. 'All'.


<!DOCTYPE html>

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

Dear <%= @nominee %>,

  Congratulations!
  <%= if @nominator
        @nominator
      else
        'Someone'
      end %>
   thought you would be a great fit for the Vanderbilt Performing Arts Council (VPAC) Board! If you haven't already
  started an application, please consider doing so today! The form is located on <%= link_to 'Anchor Link', 'http://google.com' %>.

  Best,

  Emily Welter

  VPAC President

<!DOCTYPE html>

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

Dear <%= @nominee %>,

  Congratulations!
  <%= if @nominator
        @nominator
      else
        'Someone'
      end %>
   thinks you would be a great fit for the Vanderbilt Performing Arts Council (VPAC) Board! If you haven't already
  started an application, please consider doing so today! The form is located on <%= link_to 'Anchor Link', 'http://google.com' %>.

  Best,

  Emily Welter

  VPAC President

Change wording a bit in nomination mailer


[Unit]
Description=Atlassian Systemd Jira Service
After=syslog.target network.target

[Service]
Type=forking
Environment="JAVA_HOME=<%= scope.lookupvar('jira::javahome') %>"
PIDFile=<%= scope.lookupvar('jira::webappdir') %>/work/catalina.pid
User=<%= scope.lookupvar('jira::user') %>
ExecStart=<%= scope.lookupvar('jira::webappdir') %>/bin/start-jira.sh
ExecStop=<%= scope.lookupvar('jira::webappdir') %>/bin/stop-jira.sh

[Install]
WantedBy=multi-user.target

[Unit]
Description=Atlassian Systemd Jira Service
After=syslog.target network.target

[Service]
Type=forking
Environment="JAVA_HOME=<%= scope.lookupvar('jira::javahome') %>"
User=<%= scope.lookupvar('jira::user') %>
ExecStart=<%= scope.lookupvar('jira::webappdir') %>/bin/start-jira.sh
ExecStop=<%= scope.lookupvar('jira::webappdir') %>/bin/stop-jira.sh

[Install]
WantedBy=multi-user.target

Remove parameter PIDFile to prevent error messages

May 26 13:01:40 centos7-64-1 systemd[1]: New main
PID 3276 does not belong to service, and PID file
is not owned by root. Refusing.


GITHUB_KEY: <%= node['twitter_key'] %>
GITHUB_SECRET: <%= node['twitter_key'] %>
TWITTER_KEY: <%= node['twitter_key'] %>
TWITTER_SECRET: <%= node['twitter_secret'] %>
DEVISE_SECRET_KEY: <%= node['devise_secret_key'] %>
SECRET_KEY_BASE: <%= node['secret_key_base'] %>
DB_USERNAME: <%= node['postgres']['user'] %>
DB_PASSWORD: <%= node['postgres']['password'] %>

GITHUB_KEY: <%= node['github_key'] %>
GITHUB_SECRET: <%= node['github_secret'] %>
TWITTER_KEY: <%= node['twitter_key'] %>
TWITTER_SECRET: <%= node['twitter_secret'] %>
DEVISE_SECRET_KEY: <%= node['devise_secret_key'] %>
SECRET_KEY_BASE: <%= node['secret_key_base'] %>
DB_USERNAME: <%= node['postgres']['user'] %>
DB_PASSWORD: <%= node['postgres']['password'] %>

Fix node attribute names for GitHub key and secret.


<!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-cd37d737b663404517cbe0c5b7132ad8.css" />
    <link rel="stylesheet" href="/style.css" />

    <script type="text/javascript" src="https://d2npiipx5ecxt9.cloudfront.net/assets/external_triggers-e4239a39b202f245ebedbaa080e09ac1.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>

Use the right css and js

Use the right css and js


---
- job:
    name: speedcurve-lux-js-version-check
    display-name: SpeedCurve LUX JS version check
    project-type: freestyle
    description: 'Job to verify that GOV.UK is using the current JS version of Speedcurve LUX'
    logrotate:
      numToKeep: 100
    triggers:
      - timed: |
          TZ=Europe/London
          H 10,16 * * *
    properties:
      - build-discarder:
          days-to-keep: 30
          artifact-num-to-keep: 5
    builders:
      - shell: |
          #!/usr/bin/env bash
          set -e

          # we grep against the version GOV.UK is currently using in
          # https://github.com/alphagov/govuk_publishing_components/blob/master/app/assets/javascripts/govuk_publishing_components/vendor/lux/lux-reporter.js
          curl -s https://cdn.speedcurve.com/js/lux.js\?id\=47044334 | grep 't="216"'
    publishers:
      - trigger-parameterized-builds:
        - project: Success_Passive_Check
          condition: 'SUCCESS'
          predefined-parameters: |
            NSCA_CHECK_DESCRIPTION=<%= @service_description %>
            NSCA_OUTPUT=<%= @service_description %> success
        - project: Failure_Passive_Check
          condition: 'FAILED'
          predefined-parameters: |
            NSCA_CHECK_DESCRIPTION=<%= @service_description %>
            NSCA_OUTPUT=<%= @service_description %> failed
    wrappers:
      - ansicolor:
          colormap: xterm

---
- job:
    name: speedcurve-lux-js-version-check
    display-name: SpeedCurve LUX JS version check
    project-type: freestyle
    description: 'Job to verify that GOV.UK is using the current JS version of Speedcurve LUX'
    logrotate:
      numToKeep: 100
    triggers:
      - timed: |
          TZ=Europe/London
          H 10,16 * * *
    properties:
      - build-discarder:
          days-to-keep: 30
          artifact-num-to-keep: 5
    builders:
      - shell: |
          #!/usr/bin/env bash
          set -e

          # we grep against the version GOV.UK is currently using in
          # https://github.com/alphagov/govuk_publishing_components/blob/master/app/assets/javascripts/govuk_publishing_components/vendor/lux/lux-reporter.js
          curl -s https://cdn.speedcurve.com/js/lux.js\?id\=47044334 | grep 'V="301"'
    publishers:
      - trigger-parameterized-builds:
        - project: Success_Passive_Check
          condition: 'SUCCESS'
          predefined-parameters: |
            NSCA_CHECK_DESCRIPTION=<%= @service_description %>
            NSCA_OUTPUT=<%= @service_description %> success
        - project: Failure_Passive_Check
          condition: 'FAILED'
          predefined-parameters: |
            NSCA_CHECK_DESCRIPTION=<%= @service_description %>
            NSCA_OUTPUT=<%= @service_description %> failed
    wrappers:
      - ansicolor:
          colormap: xterm

Update LUX check to use latest version number


<%# this partial expects 2 local to be declared -- -%>
<%# 1) "object" for which the avatar is displayed (object.name() method should be available for any supplied object); -%>

<%= panel(nil, :class => 'text-center') do %>

    <%= favouritable_icon(object, 120) -%>

  <% if object.instance_of?(Person) -%>

        <%= seek_role_icons(@person) -%>

  <% end -%>
  <% if object && (mine?(object) || object.can_be_edited_by?(current_user)) -%>

      <%= image_tag_for_key("avatars", all_avatars_link(object), nil, nil, "Change picture") %>

  <% end %>
<% end %>

<%# this partial expects 2 local to be declared -- -%>
<%# 1) "object" for which the avatar is displayed (object.name() method should be available for any supplied object); -%>

<%= panel(nil, :class => 'text-center') do %>

    <%= favouritable_icon(object, 120) -%>

  <% if object.instance_of?(Person) -%>

        <%= seek_role_icons(@person) -%>

  <% end -%>
  <% if object && (
          User.admin_logged_in? ||
          mine?(object) ||
          ([Project, Institution].include?(object.class) && object.can_be_edited_by?(current_user))) -%>

      <%= image_tag_for_key("avatars", all_avatars_link(object), nil, nil, "Change picture") %>

  <% end %>
<% end %>

Hide "change picture" link when user doesn't actually have permission to do so


<% if current_user.yammer_staging %>
  <script type="text/javascript" src="https://assets.staging.yammer.com/platform/yam.js"></script>
<% else %>
  <script type="text/javascript" src="https://assets.yammer.com/platform/yam.js"></script>
<% end %>
<script type="text/javascript">
  yam.config({appId: '<%= ENV['CONSUMER_KEY'] %>'});
  <% if signed_in? %>
    var access_token = "<%= current_user.access_token %>";
  <% end %>
</script>
<% if signed_in? %>
  <meta property="yammer-network" content="<%= current_user.yammer_network_id %>">
<% end %>

<% if current_user.yammer_staging %>
  <script type="text/javascript" src="https://assets.staging.yammer.com/platform/yam.js"></script>
<% else %>
  <script type="text/javascript" src="https://assets.yammer.com/platform/yam.js"></script>
<% end %>
<script type="text/javascript">
  <% if current_user && current_user.yammer_staging %>
    yam.config({appId: '<%= ENV['STAGING_CONSUMER_KEY'] %>'});
  <% else %>
    yam.config({appId: '<%= ENV['CONSUMER_KEY'] %>'});
  <% end %>
  <% if signed_in? %>
    var access_token = "<%= current_user.access_token %>";
  <% end %>
</script>
<% if signed_in? %>
  <meta property="yammer-network" content="<%= current_user.yammer_network_id %>">
<% end %>

Fix embedded feed on Yammer staging

Fix embedded feed on Yammer staging


<%= render 'shared/timeline/pagination' %>

  <% @date_step.each do |date| %>
    <% next unless Settings.timetable.weekdays.include?(date.wday) %>

<%= "#{l date, format: :short} #{t('date.abbr_day_names')[date.wday]}" %>

        <%= render partial: 'shared/timeline/cell', collection: @timetable.rows[date.wday].cells, as: :cell, locals: { date: date } %>

  <% end %>

<%= render 'shared/timeline/pagination' %>

<%= render 'shared/timeline/pagination' %>

  <% @date_step.each do |date| %>
    <% next unless Settings.timetable.weekdays.include?(date.wday) %>

<%= "#{l date, format: :short} #{t('date.abbr_day_names')[date.wday]}" %>

        <% if @timetable.rows[date.wday].present? %>
          <%= render partial: 'shared/timeline/cell', collection: @timetable.rows[date.wday].cells, as: :cell, locals: { date: date } %>
        <% end %>

  <% end %>

<%= render 'shared/timeline/pagination' %>

Add nil guard to timetable view

Add nil guard to timetable view


/* DO NOT EDIT: File is auto-generated */
package <%= to_package(repository.gwt.qualified_support_test_module_name) %>;

@javax.annotation.Generated( "Domgen" )
@java.lang.SuppressWarnings( { "UnusedDeclaration", "JavaDoc" } )
public class <%= repository.gwt.support_test_module_name %>
  extends org.realityforge.guiceyloops.shared.AbstractModule
{
  @java.lang.Override
  protected void configure()
  {
<% if repository.keycloak? || repository.imit? -%>
    bindSingleton( com.google.gwt.event.shared.EventBus.class, com.google.gwt.event.shared.SimpleEventBus.class );
<% end -%>
  }

  @com.google.inject.Provides
  @javax.inject.Singleton
  public com.google.web.bindery.event.shared.EventBus getKeycloak( @javax.annotation.Nonnull final com.google.gwt.event.shared.EventBus eventBus )
  {
    return eventBus;
  }
}

/* DO NOT EDIT: File is auto-generated */
package <%= to_package(repository.gwt.qualified_support_test_module_name) %>;

@javax.annotation.Generated( "Domgen" )
@java.lang.SuppressWarnings( { "UnusedDeclaration", "JavaDoc" } )
public class <%= repository.gwt.support_test_module_name %>
  extends org.realityforge.guiceyloops.shared.AbstractModule
{
  @java.lang.Override
  protected void configure()
  {
<% if repository.keycloak? || repository.imit? -%>
    bindSingleton( com.google.gwt.event.shared.EventBus.class, com.google.gwt.event.shared.SimpleEventBus.class );
<% end -%>
  }

<% if repository.keycloak? || repository.imit? -%>
  @com.google.inject.Provides
  @javax.inject.Singleton
  public com.google.web.bindery.event.shared.EventBus getSharedEventBus( @javax.annotation.Nonnull final com.google.gwt.event.shared.EventBus eventBus )
  {
    return eventBus;
  }
<% end -%>
}

FIx up generation of code for shared EventBus provider


<%% form_for(@<%= singular_name %>) do |f| %>
  <%%= f.error_messages %>

  <fieldset>
    <legend><%%= t('<%= singular_name %>', :count => 1).humanize %></legend>

<% for attribute in attributes -%>

      <%%= f.label :<%= attribute.name %>, t('<%= "attribute.#{attribute.column.name}" %>') %>
<% if attribute.name =~ /_id\Z/ -%>
<% association = attribute.name.sub(/_id\Z/, '') -%>
      <%%= f.collection_select :<%= attribute.name %>, @<%= association.pluralize %>, :id, :name,
        {:prompt => t('select_prompt')} %>
<% else -%>
      <%%= f.<%= attribute.field_type %> :<%= attribute.name %> %>
<% end -%>

<% end -%>

    <%%= f.submit t('save') %>
  </fieldset>
<%% end %>

<%% form_for(@<%= singular_name %>) do |f| %>
  <%%= f.error_messages %>

  <fieldset>
    <legend><%%= t('<%= singular_name %>', :count => 1).humanize %></legend>

<% for attribute in attributes -%>

      <%%= f.label :<%= attribute.name %>, t('<%= "attribute.#{attribute.column.name}" %>') %>
<% if attribute.name =~ /_id\Z/ -%>
<%
  association = attribute.name.sub(/_id\Z/, '')
  label_attribute = association.camelize.constantize.column_names.include?('name') ? 'name' : 'id'
-%>
      <%%= f.collection_select :<%= attribute.name %>, @<%= association.pluralize %>, :id, :<%= label_attribute %>,
        {:prompt => t('select_prompt')} %>
<% else -%>
      <%%= f.<%= attribute.field_type %> :<%= attribute.name %> %>
<% end -%>

<% end -%>

    <%%= f.submit t('save') %>
  </fieldset>
<%% end %>

Use id for label in form select when there's no name attribute in the associated model


<% content_for :email_body do %>

Hey <%= @resource.username %>!

Someone has requested a link to change your password, and you can do this through the link below.

<%= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token) %>

If you didn't request this, please ignore this email.

Your password won't change until you access the link above and create a new one.

<% end %>

<%= render template: "layouts/email" %>

<% content_for :email_body do %>

Hey <%= @resource.username %>!

Someone has requested a link to change your password, and you can do this through the link below.

  <% if (@resource.active) %>

<%= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token) %>

  <% else %>

<%= link_to 'Set up my account', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token, msg: 'welcome') %>

  <% end %>

If you didn't request this, please ignore this email.

Your password won't change until you access the link above and create a new one.

<% end %>

<%= render template: "layouts/email" %>

Send a different password reset link when the user is not active yet.


<form method="post" action="/jobs">

<%= query.persisted? ? "Edit Query" : "New Query" %>

      Title
      <input type="text" id="query_title" name="query[title]" placeholder="validate CAN/2014-12 participants" value="<%=h query.title %>">

      Author
      <input type="text" id="query_author" name="query[author]" placeholder="Pablo" value="<%=h query.author %>">

      SQL
      <textarea id="query_sql" name="query[sql]" placeholder="SELECT * FROM ..." rows="10"><%=h query.sql %></textarea>

      <input class="button primary" type="submit" value="Submit">
      Cancel

</form>

<%=h query.errors.full_messages.join(", ") %>

<form method="post" action="/jobs">

<%= query.persisted? ? "Edit Query" : "New Query" %>

    <% if query.errors.any? then %>

Error(s) on this form prevented validation:

            <% query.errors.full_messages.each do |error| %>

<%= error %>

            <% end %>

          ×

    <% end %>

      Title
      <input type="text" required id="query_title" name="query[title]" placeholder="validate CAN/2014-12 participants" value="<%=h query.title %>">

      Author
      <input type="text" required id="query_author" name="query[author]" placeholder="Pablo" value="<%=h query.author %>">

      SQL
      <textarea required id="query_sql" name="query[sql]" placeholder="SELECT * FROM ..." rows="10"><%=h query.sql %></textarea>

      <input class="button primary" type="submit" value="Submit">
      Cancel

</form>

Make forms more useable by adding validation and error messages


---
- job:
    name: content_audit_tool_import_all_content_items
    display-name: Content Audit Tool - import inventory
    project-type: freestyle
    description: "
Run the import:all_content_items rake task.
"
    builders:
      - shell: ssh deploy@$(govuk_node_list -c backend --single-node) "cd /var/apps/content-audit-tool && govuk_setenv content-audit-tool bundle exec rake import:all_content_items"
    wrappers:
      - ansicolor:
          colormap: xterm
    publishers:
      - email:
          recipients: govuk-ci-notifications@digital.cabinet-office.gov.uk
  <% if @rake_import_all_content_items_frequency %>
    triggers:
      - timed: <%= @rake_import_all_content_items_frequency %>
  <% end %>
    logrotate:
        numToKeep: 10
- job:
    name: content_audit_tool_import_all_ga_metrics
    display-name: Content Audit Tool - import GA
    project-type: freestyle
    description: "
Run the import:all_ga_metrics rake task.
"
    builders:
      - shell: ssh deploy@$(govuk_node_list -c backend --single-node) "cd /var/apps/content-audit-tool && govuk_setenv content-audit-tool bundle exec rake import:all_ga_metrics"
    wrappers:
      - ansicolor:
          colormap: xterm
    publishers:
      - email:
          recipients: govuk-ci-notifications@digital.cabinet-office.gov.uk
  <% if @rake_import_all_ga_metrics_frequency %>
    triggers:
      - timed: <%= @rake_import_all_ga_metrics_frequency %>
  <% end %>
    logrotate:
        numToKeep: 10

Add job template for Content Audit Tool

Add job template for Content Audit Tool

Jenkins jobs to run rake tasks for Content Audit Tool. These
import content items and grab GA stats for them. These are copied
over from the Content Performance Manager, as part of splitting
the Audit Tool out of the CPM.


<%
  css = if ((defined?(apply_css) && apply_css) || !defined?(apply_css)) and
           (classes = css_for_menu_branch(menu_branch, menu_branch_counter, sibling_count||=nil)).any?
    " class='#{classes.join(' ')}'"
  end
  dom_id = (" id='item_#{menu_branch_counter}'" if menu_branch.parent_id.nil? and menu_branch.title.present?)
  @menu_pages.reject! { |branch| branch == menu_branch } # Remove page from the array, so that future searching will be faster.
  children = @menu_pages.select { |p| p.parent_id == menu_branch.id && p.in_menu? }
-%>
<li<%= css -%><%= dom_id -%>>
  <%= link_to menu_branch.title, menu_branch.url %>

  <% unless hide_children or children.empty? %>
    <ul class='clearfix'>
      <%=
        render :partial => "/shared/menu_branch",
               :collection => children,
               :locals => {
                 :hide_children => false, # hide children can't be true or we wouldn't get here.
                 :sibling_count => children.size - 1
               } -%>
    </ul>
  <% end %>
</li>

<%
  css = if ((defined?(apply_css) && apply_css) || !defined?(apply_css)) and
           (classes = css_for_menu_branch(menu_branch, menu_branch_counter, sibling_count||=nil)).any?
    "class='#{classes.join(' ')}'"
  end
  dom_id = ("id='item_#{menu_branch_counter}'" if menu_branch.parent_id.nil? and menu_branch.title.present?)

  hide_children = (defined?(hide_children) && hide_children)
  children = hide_children ? [] : @menu_pages.select { |p| p.parent_id == menu_branch.id && p.in_menu? }
-%>
<li<%= ['', css, dom_id].join(' ').gsub(/\ *$/, '') %>>
  <%= link_to menu_branch.title, menu_branch.url %>

  <% if children.present? %>
    <ul class='clearfix'>
      <%=
        render :partial => "/shared/menu_branch",
               :collection => children,
               :locals => {
                 :hide_children => hide_children,
                 :sibling_count => children.size - 1
               } -%>
    </ul>
  <% end %>
</li>

Tidy up how children are generated and how the css & dom_id are combined. Stopped removing pages from the collection as it is too likely to come back to bite us later.


Editar projeto

<%= simple_form_for(@project, :url => { :action => :update }) do |f| %>

    <%= f.simple_fields_for :book do |b| %>
      <%= b.input :template, :collection => LATEX_TEMPLATES %>
      <%= b.input :cover, :as => :file %>
    <% end %>

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

<% end %>

Editar projeto

<%= simple_form_for(@project, :url => { :action => :update }) do |f| %>

    <%= f.simple_fields_for :book do |b| %>
      <%= b.input :template, :collection => LATEX_TEMPLATES %>

      Capa
      <div class="fileupload <%= @project.book.cover.present? ? 'fileupload-exists' : 'fileupload-new' %>" data-provides="fileupload">

          <%= image_tag(@project.book.cover.url) if @project.book.cover.present? %>

          Selecionar imagemAlterar
            <%= b.input_field :cover, :as => :file %>

          Remover

    <% end %>

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

<% end %>

Add file upload field to project edit form


<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />

<%= csrf_meta_tags %>

<title>
  <% if content_for? :page_title %>
    <%= yield :page_title %>
  <% else %>
    <%= "Spree #{Spree.t('administration')}: " %>
    <%= Spree.t(controller.controller_name, :default => controller.controller_name.titleize) %>
  <% end %>
</title>

<!-- Get "Open Sans" font from Google -->
<link href='//fonts.googleapis.com/css?family=Open+Sans:400italic,600italic,400,600&subset=latin,cyrillic,greek,vietnamese' rel='stylesheet' type='text/css'>

<%= stylesheet_link_tag 'spree/backend' %>

<%= javascript_include_tag 'spree/backend' %>

<%= render "spree/admin/shared/translations" %>
<%= render "spree/admin/shared/routes" %>

<%= javascript_tag do -%>
  jQuery.alerts.dialogClass = 'spree';
  <%== "var AUTH_TOKEN = #{form_authenticity_token.inspect};" %>
<% end -%>

<%= yield :head %>

<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />

<%= csrf_meta_tags %>

<title>
  <% if content_for? :title %>
    <%= yield :title %>
  <% else %>
    <%= "Spree #{Spree.t('administration')}: " %>
    <%= Spree.t(controller.controller_name, :default => controller.controller_name.titleize) %>
  <% end %>
</title>

<!-- Get "Open Sans" font from Google -->
<link href='//fonts.googleapis.com/css?family=Open+Sans:400italic,600italic,400,600&subset=latin,cyrillic,greek,vietnamese' rel='stylesheet' type='text/css'>

<%= stylesheet_link_tag 'spree/backend' %>

<%= javascript_include_tag 'spree/backend' %>

<%= render "spree/admin/shared/translations" %>
<%= render "spree/admin/shared/routes" %>

<%= javascript_tag do -%>
  jQuery.alerts.dialogClass = 'spree';
  <%== "var AUTH_TOKEN = #{form_authenticity_token.inspect};" %>
<% end -%>

<%= yield :head %>

Call shared/_head title content_for 'title', becuase 'page_title' is already taken


### THIS FILE IS MANAGED BY PUPPET. ANY MANUAL CHANGES WILL GET OVERWRITTEN.

check device <%= @fs_name %>-filesystem with path <%= @path %>
    alert <%= @servermonitor %> with reminder on 480 cycles
    if space usage > <%= @space_usage %> then <%= @action_line %>
    if inode usage > <%= @inode_usage %> then <%= @action_line %>

### THIS FILE IS MANAGED BY PUPPET. ANY MANUAL CHANGES WILL GET OVERWRITTEN.

check device <%= @fs_name %>-filesystem with path <%= @path %>
    alert <%= @email %> with reminder on 480 cycles
    if space usage > <%= @space_usage %> then <%= @action_line %>
    if inode usage > <%= @inode_usage %> then <%= @action_line %>

Fix @email parameter in filesystem template


  <% unless @meta.layers.first.nil? %>
    <% @layers = '' %>
    <% @meta.layers.each do |layer| %>
      <% @layers = @layers + layer + ',' %>
    <% end %>

      <a href="<%= kml_url(@layers.chop) %>">Google Earth

   <% end %>

   <% unless @meta.catalog_link.nil? %>

      <a href="<%= cat_url(@item_id) %>">Virgo

   <% end %>

Make the icon for Google Earth linked

Make the icon for Google Earth linked


<!DOCTYPE html>

    <title>Word Frequency</title>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">

Word Frequency

        <%= yield %>

<!DOCTYPE html>

    <title>Word Frequency</title>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">
    <link rel="shortcut icon" href="./favicon.ico" type="image/x-icon">

Word Frequency

        <%= yield %>

Update path to favicon in index.erb.

Update path to favicon in index.erb.


Government response

<%= form_for @government_response, :url => admin_petition_government_response_path(petition), method: :put do |f| -%>
  <%= form_row :for => [f.object, :summary] do %>
    <%= f.label :summary, 'Summary quote', class: 'form-label' %>
    <%= error_messages_for_field f.object, :response_summary %>
    <%= f.text_area :summary, rows: 3, cols: 70, tabindex: increment, class: 'form-control' %>
  <% end %>

  <%= form_row :for => [f.object, :details] do %>
    <%= f.label :details, 'Response in full', class: 'form-label' %>
    <%= error_messages_for_field f.object, :response %>
    <%= f.text_area :details, rows: 8, cols: 70, tabindex: increment, class: 'form-control' %>
  <% end %>

  <%= email_signatures_with_count_submit_button(f, petition) %>
<% end -%>

Government response

<%= form_for @government_response, :url => admin_petition_government_response_path(petition), method: :put do |f| -%>
  <%= form_row :for => [f.object, :summary] do %>
    <%= f.label :summary, 'Summary quote', class: 'form-label' %>
    <%= error_messages_for_field f.object, :summary %>
    <%= f.text_area :summary, rows: 3, cols: 70, tabindex: increment, class: 'form-control' %>
  <% end %>

  <%= form_row :for => [f.object, :details] do %>
    <%= f.label :details, 'Response in full', class: 'form-label' %>
    <%= error_messages_for_field f.object, :details %>
    <%= f.text_area :details, rows: 8, cols: 70, tabindex: increment, class: 'form-control' %>
  <% end %>

  <%= email_signatures_with_count_submit_button(f, petition) %>
<% end -%>

Fix error message to appear in form

Fix error message to appear in form

When the government response was moved to a separate model the fields
were renamed but the renaming was not carried through to the admin form.


# Switch back to default ruleset
$RuleSet RSYSLOG_DefaultRuleset

<% if scope.lookupvar('rsyslog::server::enable_udp') -%>
$InputUDPServerBindRuleset remote
$UDPServerRun <%= scope.lookupvar('rsyslog::server::port') %>
<% end -%>

<% if scope.lookupvar('rsyslog::server::enable_tcp') -%>
$InputTCPServerBindRuleset remote
$InputTCPServerRun <%= scope.lookupvar('rsyslog::server::port') %>
<% end -%>

<% if (scope.lookupvar('rsyslog::server::enable_relp')) -%>
<% if (scope.function_versioncmp([@rsyslog_version, '6.3.6']) >= 0) -%>
$InputRELPServerBindRuleset remote
$InputRELPServerRun 20514
<% end -%>
<% end -%>

# Switch back to default ruleset
$RuleSet RSYSLOG_DefaultRuleset

<% if scope.lookupvar('rsyslog::server::enable_udp') -%>
$InputUDPServerBindRuleset remote
$UDPServerRun <%= scope.lookupvar('rsyslog::server::port') %>
<% end -%>

<% if scope.lookupvar('rsyslog::server::enable_tcp') -%>
$InputTCPServerBindRuleset remote
$InputTCPServerRun <%= scope.lookupvar('rsyslog::server::port') %>
<% end -%>

<% if (scope.lookupvar('rsyslog::server::enable_relp')) -%>
<% if (scope.function_versioncmp([@rsyslog_version, '6.3.6']) >= 0) -%>
$InputRELPServerBindRuleset remote
$InputRELPServerRun <%= scope.lookupvar('rsyslog::server::port') %>
<% end -%>
<% end -%>

Allow changing of the RELP server port.

server/_default-footer: Allow changing of the RELP server port.


Fix bug where gameID is not being set on the page


<%= notice %>

  New:
  <%= @report.new %>

  Create:
  <%= @report.create %>

<%= link_to 'Edit', edit_report_path(@report) %> |
<%= link_to 'Back', reports_path %>

<%= notice %>

  Date:
  <%= @report.date %>

  DBN:
  <%= @report.dbn %>

  School:
  <%= @report.school %>

  Purpose:
  <%= @report.purpose %>

  What questions?:
  <%= @report.comments %>

  Next Steps:
  <%= @report.next_steps %>

  Additional Information:
  <%= @report.additional_info %>

<%= link_to 'Edit', edit_report_path(@report) %> |
<%= link_to 'Back', reports_path %>

Update to show information on report - with correct parameters


      <a class="js-part-toggle" data-toggle="collapse" data-parent="#parts" href="#<%= f.object.slug || 'untitled-part' %>">

        <%= f.object.title.present? ? f.object.title : 'Untitled part' %>

  <div id="<%= f.object.slug || 'untitled-part' %>" class="js-part-toggle-target panel-collapse collapse in" aria-expanded="true">

      <fieldset class="inputs">

            <%= f.label :title %>*

            <%= f.text_field :title, disabled: @resource.locked_for_edits?, class: "title form-control" %>

          <%= form_errors(f.object.errors[:title]) %>

        <%
          slug_input_html = { class: 'slug form-control', disabled: !editable }
          if @resource.version_number == 1
            slug_input_html['data-accepts-generated-value'] = true
          end
        %>

            <%= f.label :slug %>*

            <%= f.text_field :slug, slug_input_html %>

              for example, title-of-part (no spaces, apostrophes or acronyms)

          <%= form_errors(f.object.errors[:slug]) %>

            <%= f.label :body %>*

            <%= f.text_area :body, rows: 25, disabled: @resource.locked_for_edits?, class: "title form-control" %>

        <%= f.hidden_field :order, class: 'order', disabled: !editable %>

        <% unless @resource.locked_for_edits? %>
          <%= f.link_to_remove class: 'btn btn-default btn-sm' do %>
             Remove this part
          <% end %>
        <% end %>
      </fieldset>

<%= form_group(f, :body) do %>
  <%= f.text_area :body, rows: 25, disabled: @resource.locked_for_edits?, class: "input-md-7 form-control" %>
<% end %>

Update the Part view partial to display only Part attributes

We now have a view partial that displays the attributes common to both
Parts and Variants.

This common partial in turn renders either the Part or Variant specific
partial. So, the Part partial only needs to render attributes that are
specific to Parts.


<%= @user.screen %>

<% if @articles.present? %>

Recent Articles

  <% @articles.each do |article| %>
    <%= render "shared/article", article: article %>
  <% end %>
<% end %>

<% if @product.present? %>

Products

  <% @product.each do |product| %>
    <%= render "shared/product", product: product %>
  <% end %>
<% end %>

<% if @photos.present? %>

Recent Photos

    <% @photos.each do |photo| %>
      <%= render "shared/photo_thumbnail", photo: photo %>
    <% end %>

<% end %>

<%= @user.screen %>

<% if @articles.present? %>

Recent Articles

  <% @articles.each do |article| %>
    <%= render "shared/article", article: article %>
  <% end %>
<% end %>

<% if @products.present? %>

Products

  <% @products.each do |product| %>
    <%= render "shared/product", product: product %>
  <% end %>
<% end %>

<% if @photos.present? %>

Recent Photos

    <% @photos.each do |photo| %>
      <%= render "shared/photo_thumbnail", photo: photo %>
    <% end %>

<% end %>

Fix bug where variable is named incorrectly


<%= @user.email %>

Your Write Now History

  <% @user.projects.each do |project| %>
    <% if project != @user.projects.last %>
      <%= project.title %>
    <% else %>
      <%= project.title %> (Your current project!)
    <% end %>
  <% end %>

Add logic to display a user's Write Now history.


<%= link_to "#paperclip-lightbox", :class => "thumbnail paperclip-lightbox-link", :data => { :toggle => "lightbox", :image_url => preview } do %>
  <%= image_tag thumb, options.merge(:alt => preview) %>
<% end %>

<%= link_to "#paperclip-lightbox", :class => "thumbnail paperclip-lightbox-link", :data => { :image_url => preview } do %>
  <%= image_tag thumb, options.merge(:alt => preview) %>
<% end %>

Remove data-toggle attribute from paperclip preview links (since we're triggering with JS)


<%= _('{{public_body}} has asked you to explain part of your {{law_used}} request.',
      :public_body => @info_request.public_body.name,
      :law_used => @info_request.law_used_short ) %>
<%= _('To do this, first click on the link below.') %>

<%=@url%>

<%= _('You will only get an answer to your request if you follow up ' \
      'with the clarification.') %>

-- <%= _('the {{site_name}} team', :site_name => site_name) %>

Split long translation strings so that extra whitespace is omitted.

Some small spacing fixes as well.


check process <%= @worker_name %>
  with pidfile /var/run/engineyard/dj/<%= @app_name %>/dj_<%= @worker_name %>.pid
  start program = "/engineyard/bin/dj <%= @app_name %> start <%= @framework_env %> <%= @worker_name %>" with timeout 60 seconds
  stop program = "/engineyard/bin/dj <%= @app_name %> stop <%= @framework_env %> <%= @worker_name %>" with timeout 60 seconds
  if totalmem is greater than 300 MB then restart # eating up memory?
  group dj_<%= @app_name %>

check process <%= @worker_name %>
  with pidfile /var/run/engineyard/dj/<%= @app_name %>/dj_<%= @worker_name %>.pid
  start program = "/engineyard/bin/dj <%= @app_name %> start <%= @framework_env %> <%= @worker_name %>" with timeout 60 seconds
  stop program = "/engineyard/bin/dj <%= @app_name %> stop <%= @framework_env %> <%= @worker_name %>" with timeout 60 seconds
  if totalmem is greater than 1024 MB then restart # eating up memory?
  group dj_<%= @app_name %>

Increase DJ memory limit to 1GB.

Increase DJ memory limit to 1GB.


<%= render 'backend/breadcrumbs' %>

<% if @forms.any? %>

        <%= t 'b.description' %>

      <% @forms.each do |f| %>

          <%= f.description %>

            <%= link_to_edit [:backend, f] %>
            <%= link_to icon(:search), backend_form_submissions_path(f) %>

      <% end %>

<% else %>

<%= t 'b.msg.no_items' %>

<% end %>

<%= render 'backend/breadcrumbs' %>

<% if @forms.any? %>

        <%= t 'b.description' %>

      <% @forms.each do |f| %>

          <%= f.description %>

            <%= link_to_edit [:backend, f] %>
            <%= link_to icon(:list), backend_form_submissions_path(f) %>

      <% end %>

<% else %>

<%= t 'b.msg.no_items' %>

<% end %>

Use another icon for the form submissions.


<!DOCTYPE html>
<html>
<head>
  <title>Prism</title>
  <%= stylesheet_link_tag    'application', media: 'all' %>
  <%= javascript_include_tag 'application' %>
  <%= Gon::Base.render_data %>
  <%= csrf_meta_tags %>
</head>
<body>

<% unless @navigation == false%>
  <%= render '/layouts/navi' %>
<% end %>

<div class="main-container">

  <%= yield %>

</div>

<%= render '/layouts/footer' %>

</body>
</html>

<!DOCTYPE html>
<html>
<head>
  <title>Prism</title>
  <%= stylesheet_link_tag    'application', media: 'all' %>
  <%= javascript_include_tag 'application' %>
  <%= Gon::Base.render_data %>
  <%= csrf_meta_tags %>
</head>
<body>

<% unless @navigation == false %>
  <%= render '/layouts/navi' %>
<% end %>

<div class="main-container">

  <%= yield %>

</div>

<% unless @navigation == false %>
  <%= render '/layouts/footer' %>
<% end %>

</body>
</html>

Add footer conditional to not appear on index


  <% if project.building_repositories.size.zero? %>
    <%= sprite_tag('accept', alt: 'None') %>
  <% else %>
    <% building = project.building_repositories.map do |repo| %>
      <% link_to "#{repo['repository']}-#{repo['arch']}".html_safe,
                  main_app.project_repository_state_url(project.name, repo['repository']) %>
    <% end %>
    <%= short_sentence building %>
  <% end %>

  <% if project.broken_packages.size.zero? %>
    <%= sprite_tag('accept', alt: 'None') %>
  <% else %>
    <% broken = project.broken_packages.map do |repo| %>
      <% link_to "#{pack['package']} (#{pack['state']})".html_safe,
                main_app.package_show_url(project.name, pack['package']) %>
    <% end %>
    <%= short_sentence broken %>
  <% end %>

  <% if project.building_repositories.size.zero? %>
    <%= sprite_tag('accept', alt: 'None') %>
  <% else %>
    <% building = project.building_repositories.map do |repo| %>
      <% link_to "#{repo['repository']}-#{repo['arch']}".html_safe,
                  main_app.project_repository_state_url(project.name, repo['repository']) %>
    <% end %>
    <%= short_sentence building %>
  <% end %>

  <% if project.broken_packages.size.zero? %>
    <%= sprite_tag('accept', alt: 'None') %>
  <% else %>
    <% broken = project.broken_packages.map do |pack| %>
      <% link_to "#{pack['package']} (#{pack['state']})".html_safe,
                main_app.package_show_url(project.name, pack['package']) %>
    <% end %>
    <%= short_sentence broken %>
  <% end %>

Fix a small bug in the dashboard view

Fix a small bug in the dashboard view


[Unit]
Description=<%= @daemon_name %> daemon
Wants=network-online.target
After=network-online.target

[Service]
User=<%= @user %>
EnvironmentFile=<%= @env_path %>
ExecStart=/bin/bash $KAFKA_RUN $KAFKA_ARGS $KAFKA_CONFIG
TimeoutSec=10
TimeoutStopSec=<%= @kill_timeout %>
<% if @ulimit %>
LimitNOFILE=<%= @ulimit %>
<% end %>

[Install]
WantedBy=multi-user.target

[Unit]
Description=<%= @daemon_name %> daemon
Wants=network-online.target
After=network-online.target

[Service]
User=<%= @user %>
EnvironmentFile=<%= @env_path %>
SyslogIdentifier=kafka
ExecStart=/bin/bash $KAFKA_RUN $KAFKA_ARGS $KAFKA_CONFIG
TimeoutSec=10
TimeoutStopSec=<%= @kill_timeout %>
<% if @ulimit %>
LimitNOFILE=<%= @ulimit %>
<% end %>

[Install]
WantedBy=multi-user.target

Add syslog identifier to systemd unit

Add syslog identifier to systemd unit

This adds a "kafka" syslog identifier so this stops showing up as "bash" in the systemd journal.


---
- scm:
  name: Deploy_GOVUK_Content_Schemas
  scm:
    - git:
      url: https://github.com/alphagov/govuk-content-schemas.git
      branches:
        - ${TAG}

- job:
  name: Deploy_GOVUK_Content_Schemas
  display-name: Deploy GOVUK content schemas
  project-type: freestyle
  description: "RSyncs the GOVUK content schemas to the publishing API's shared directory"
  properties:
    - github:
      url: https://github.com/alphagov/govuk-content-schemas
  scm:
    - Deploy_GOVUK_Content_Schemas
  builders:
    - shell: |
      sh -eu deploy.sh
  wrappers:
    - ansicolor:
      colormap: xterm
    - build-name:
      name: '#${BUILD_NUMBER} ${ENV,var="TAG"}'
  parameters:
    - string:
      name: TAG
      description: Git tag/committish to deploy.
      default: release

Fix GOV.UK content schemas Jenkins job

Fix GOV.UK content schemas Jenkins job

Indent the YAML properly.


Einloggen

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

  <%= f.label :email, t('stizun.users.attributes.email') %>

  <%= f.text_field :email %>

  <%= f.label :password, t('stizun.users.attributes.password') %>

  <%= f.password_field :password %>

  <%= f.check_box :remember_me %><%= f.label t("stizun.user_sessions.stay_logged_in") %>

  <%= f.submit  t('stizun.user_sessions.log_in') %>

  <%= hidden_field_tag 'original_referrer', request.referrer %>
<% end %>

  Falls Sie kein Konto haben, <%= link_to "registrieren Sie sich bitte", new_user_registration_path %>.

Passwort vergessen? Sie können sich auf <%= link_to "dieser Seite", new_user_password_path %> ein neues Passwort zuschicken lassen.

Make sure the line shows up.

Make sure the line shows up.