2019-10-09 15:51:12 +01:00
{% extends "template.njk" %}
2016-01-27 15:22:47 +00:00
{% from "components/banner.html" import banner %}
2020-01-03 16:03:05 +00:00
{% from "components/cookie-banner.html" import cookie_banner %}
2019-10-09 15:51:12 +01:00
2019-10-09 15:51:12 +01:00
{% block headIcons %}
< link rel = "shortcut icon" sizes = "16x16 32x32 48x48" href = "{{ asset_url('images/favicon.ico') }}" type = "image/x-icon" / >
< link rel = "mask-icon" href = "{{ asset_url('images/govuk-mask-icon.svg') }}" color = "{{ themeColor | default('#0b0c0c') }}" > {# Hardcoded value of $govuk-black #}
< link rel = "apple-touch-icon" sizes = "180x180" href = "{{ asset_url('images/govuk-apple-touch-icon-180x180.png') }}" >
< link rel = "apple-touch-icon" sizes = "167x167" href = "{{ asset_url('images/govuk-apple-touch-icon-167x167.png') }}" >
< link rel = "apple-touch-icon" sizes = "152x152" href = "{{ asset_url('images/govuk-apple-touch-icon-152x152.png') }}" >
< link rel = "apple-touch-icon" href = "{{ asset_url('images/govuk-apple-touch-icon.png') }}" >
{% endblock %}
2015-12-10 15:57:32 +00:00
{% block head %}
2016-02-10 15:47:00 +00:00
< link rel = "stylesheet" media = "screen" href = "{{ asset_url('stylesheets/main.css') }}" / >
2019-10-17 12:07:07 +01:00
< link rel = "stylesheet" media = "print" href = "{{ asset_url('stylesheets/print.css') }}" / >
2020-07-06 10:53:14 +01:00
{% block extra_stylesheets %}
{% endblock %}
2016-02-01 14:46:12 +00:00
< style >
2019-10-14 10:32:39 +01:00
.govuk-header__container { border-color: {{header_colour}} }
2016-02-01 14:46:12 +00:00
< / style >
2020-05-26 17:39:25 +01:00
{% if g.hide_from_search_engines %}
< meta name = "robots" content = "noindex" / >
{% endif %}
2017-10-27 11:33:10 +01:00
< meta name = "google-site-verification" content = "niWnSqImOWz6mVQTYqNb5tFK8HaKSB4b3ED4Z9gtUQ0" / >
2019-12-17 11:24:57 +00:00
{% block meta_format_detection %}
< meta name = "format-detection" content = "telephone=no" >
{% endblock %}
2017-11-14 17:25:32 +00:00
{% block meta %}
{% endblock %}
2015-12-10 15:57:32 +00:00
{% endblock %}
2015-12-07 16:18:05 +00:00
2019-10-09 15:51:12 +01:00
{% block pageTitle %}
2017-02-13 10:45:15 +00:00
{% block per_page_title %}{% endblock %} – GOV.UK Notify
2015-11-25 16:21:28 +00:00
{% endblock %}
2019-10-17 10:40:48 +01:00
{% block bodyStart %}
{% block cookie_message %}
2020-01-09 09:48:07 +00:00
{{ cookie_banner() }}
2019-10-17 10:40:48 +01:00
{% endblock %}
2019-11-26 12:14:09 +00:00
{% endblock %}
2019-10-09 16:00:45 +01:00
{% block header %}
{% if current_user.is_authenticated %}
{% if current_user.platform_admin %}
{% set navigation = [
{
"href": url_for('main.support'),
"text": "Support",
"active": header_navigation.is_selected('support')
},
{
"href": url_for('main.documentation'),
"text": "Documentation",
"active": header_navigation.is_selected('documentation')
},
{
"href": url_for('main.user_profile'),
"text": current_user.name,
"active": header_navigation.is_selected('user-profile')
},
{
2020-03-19 10:49:40 +00:00
"href": url_for('main.platform_admin_splash_page'),
2019-10-09 16:00:45 +01:00
"text": "Platform admin",
"active": header_navigation.is_selected('platform-admin')
},
{
"href": url_for('main.sign_out'),
"text": "Sign out"
}
] %}
{% else %}
{% set navigation = [
{
"href": url_for('main.support'),
"text": "Support",
"active": header_navigation.is_selected('support')
},
{
"href": url_for('main.documentation'),
"text": "Documentation",
"active": header_navigation.is_selected('documentation')
},
{
"href": url_for('main.user_profile'),
"text": current_user.name,
"active": header_navigation.is_selected('user-profile')
},
{
"href": url_for('main.sign_out'),
"text": "Sign out"
}
] %}
{% endif %}
{% else %}
{% set navigation = [
{
"href": url_for('main.support'),
"text": "Support",
"active": header_navigation.is_selected('support')
},
{
"href": url_for('main.features'),
"text": "Features",
"active": header_navigation.is_selected('features')
},
{
"href": url_for('main.pricing'),
"text": "Pricing",
"active": header_navigation.is_selected('pricing')
},
{
"href": url_for('main.documentation'),
"text": "Documentation",
"active": header_navigation.is_selected('documentation')
},
{
"href": url_for('main.sign_in'),
"text": "Sign in",
"active": header_navigation.is_selected('sign-in')
}
] %}
{% endif %}
2016-01-07 17:13:49 +00:00
2019-10-09 16:00:45 +01:00
{{ govukHeader({
"homepageUrl": url_for('main.show_accounts_or_dashboard'),
"productName": "Notify",
2019-12-30 14:08:28 +00:00
"navigation": navigation,
2020-01-06 10:55:47 +00:00
"navigationClasses": "govuk-header__navigation--end",
"assetsPath": asset_path + "images"
2019-10-09 16:00:45 +01:00
}) }}
{% endblock %}
Use a Node-based tools for handling assets
…or how to move a bunch of things from a bunch of different places into
`app/static`.
There are three main reasons not to use Flask Assets:
- It had some strange behaviour like only
- It was based on Ruby SASS, which is slower to get new features than libsass,
and meant depending on Ruby, and having the SASS Gem globally installed—so
you’re already out of being a ‘pure’ Python app
- Martyn and I have experience of doing it this way on Marketplace, and we’ve
ironed out the initial rough patches
The specific technologies this introduces, all of which are Node-based:
- Gulp – like a Makefile written in Javascript
- NPM – package management, used for managing Gulp and its related dependencies
- Bower – also package management, and the only way I can think to have
GOV.UK template as a proper dependency
…speaking of which, GOV.UK template is now a dependency. This means it can’t be
modified at all (eg to add a global `#content` wrapper), so every page now
inherits from a template that has this wrapper. But it also means that we have a
clean upgrade path when the template is modified.
Everything else (toolkit, elements) I’ve kept as submodules but moved them to a
more logical place (`app/assets` not `app/assets/stylesheets`, because they
contain more than just SASS/CSS).
2015-12-15 08:20:25 +00:00
2019-10-09 17:49:29 +01:00
{% block footer %}
{% set meta_items = [
{
"href": url_for("main.privacy"),
"text": "Privacy"
},
{
"href": url_for("main.cookies"),
"text": "Cookies"
2020-09-18 14:40:47 +01:00
},
{
"href": url_for("main.accessibility_statement"),
"text": "Accessibility statement"
2019-10-09 17:49:29 +01:00
}
] %}
2019-10-09 17:49:29 +01:00
2019-10-09 17:49:29 +01:00
{% if current_service and current_service.research_mode %}
2019-10-30 10:17:32 +00:00
{% set meta_suffix = 'Built by the < a href = "https://www.gov.uk/government/organisations/government-digital-service" class = "govuk-footer__link" > Government Digital Service< / a > < span id = "research-mode" class = "research-mode" > research mode< / span > ' %}
2019-10-09 17:49:29 +01:00
{% else %}
2019-10-30 10:17:32 +00:00
{% set meta_suffix = 'Built by the < a href = "https://www.gov.uk/government/organisations/government-digital-service" class = "govuk-footer__link" > Government Digital Service< / a > ' %}
2019-10-09 17:49:29 +01:00
{% endif %}
2019-11-11 10:06:51 +00:00
{{ govukFooter({
2019-11-28 11:08:27 +00:00
"classes": "js-footer",
2019-10-09 17:49:29 +01:00
"navigation": [
{
2019-11-11 10:06:51 +00:00
"title": "Support",
2019-10-30 10:35:18 +00:00
"columns": 1,
2019-10-09 17:49:29 +01:00
"items": [
{
"href": url_for('main.support'),
2019-12-30 14:24:44 +00:00
"text": "Contact support"
2019-10-09 17:49:29 +01:00
},
{
"href": "https://status.notifications.service.gov.uk",
"text": "System status"
},
2020-01-14 10:45:10 +00:00
{
"href": "https://www.gov.uk/performance/govuk-notify",
"text": "Performance data"
},
2019-10-09 17:49:29 +01:00
{
"href": "https://ukgovernmentdigital.slack.com/messages/C0E1ADVPC",
2019-11-11 10:06:51 +00:00
"text": "Chat to us on Slack"
2019-10-30 10:35:18 +00:00
}
]
},
{
2019-11-11 10:06:51 +00:00
"title": "About Notify",
2019-10-30 10:35:18 +00:00
"columns": 1,
"items": [
2019-10-09 17:49:29 +01:00
{
"href": url_for("main.features"),
"text": "Features"
},
{
"href": url_for("main.roadmap"),
"text": "Roadmap"
},
2020-05-19 15:39:46 +01:00
{
2020-05-20 15:56:09 +01:00
"href": url_for("main.who_can_use_notify"),
2020-05-19 15:39:46 +01:00
"text": "Who can use Notify",
},
2019-10-09 17:49:29 +01:00
{
"href": url_for("main.security"),
"text": "Security"
},
{
"href": url_for("main.terms"),
"text": "Terms of use"
2019-11-11 10:06:51 +00:00
},
{
2020-07-23 16:22:16 +01:00
"href": "https://gds.blog.gov.uk/category/gov-uk-notify/",
2019-11-11 10:06:51 +00:00
"text": "Blog"
2019-10-30 10:35:18 +00:00
}
]
},
{
2019-11-11 10:06:51 +00:00
"title": "Pricing and payment",
2019-10-30 10:35:18 +00:00
"columns": 1,
"items": [
2019-10-09 17:49:29 +01:00
{
"href": url_for("main.pricing"),
"text": "Pricing"
},
{
"href": url_for("main.how_to_pay"),
"text": "How to pay"
2019-10-30 10:35:18 +00:00
}
]
},
2019-12-31 10:02:45 +00:00
{
"title": "Using Notify",
"columns": 1,
"items": [
{
"href": url_for("main.get_started"),
"text": "Get started"
},
{
"href": url_for("main.trial_mode_new"),
"text": "Trial mode"
},
{
"href": url_for("main.message_status"),
2020-01-24 12:01:00 +00:00
"text": "Delivery status"
},
{
2020-01-24 15:57:29 +00:00
"href": url_for("main.guidance_index"),
2020-01-24 12:01:00 +00:00
"text": "Guidance"
2019-12-31 10:02:45 +00:00
},
{
"href": url_for("main.documentation"),
"text": "API documentation"
}
]
}
2019-10-09 17:49:29 +01:00
],
"meta": {
"items": meta_items,
"html": meta_suffix
}
}) }}
2016-03-16 11:01:19 +00:00
{% endblock %}
2019-10-09 15:51:12 +01:00
{% block bodyEnd %}
2020-07-06 10:53:14 +01:00
{% block extra_javascripts %}
{% endblock %}
2019-09-05 09:51:01 +01:00
<!-- [if gt IE 8]><! -->
2017-02-13 16:43:12 +00:00
< script type = "text/javascript" src = "{{ asset_url('javascripts/all.js') }}" > < / script >
2019-09-05 09:51:01 +01:00
<!-- <![endif] -->
Use a Node-based tools for handling assets
…or how to move a bunch of things from a bunch of different places into
`app/static`.
There are three main reasons not to use Flask Assets:
- It had some strange behaviour like only
- It was based on Ruby SASS, which is slower to get new features than libsass,
and meant depending on Ruby, and having the SASS Gem globally installed—so
you’re already out of being a ‘pure’ Python app
- Martyn and I have experience of doing it this way on Marketplace, and we’ve
ironed out the initial rough patches
The specific technologies this introduces, all of which are Node-based:
- Gulp – like a Makefile written in Javascript
- NPM – package management, used for managing Gulp and its related dependencies
- Bower – also package management, and the only way I can think to have
GOV.UK template as a proper dependency
…speaking of which, GOV.UK template is now a dependency. This means it can’t be
modified at all (eg to add a global `#content` wrapper), so every page now
inherits from a template that has this wrapper. But it also means that we have a
clean upgrade path when the template is modified.
Everything else (toolkit, elements) I’ve kept as submodules but moved them to a
more logical place (`app/assets` not `app/assets/stylesheets`, because they
contain more than just SASS/CSS).
2015-12-15 08:20:25 +00:00
{% endblock %}