Skip to content

Commit

Permalink
Migrate the only remaining scripts in govuk-template.js
Browse files Browse the repository at this point in the history
alex-ju committed Mar 26, 2019
1 parent a4b6fc0 commit e8c7ee8
Showing 2 changed files with 97 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
// used by the cookie banner component

(function () {
'use strict'
var root = this
if (typeof root.GOVUK === 'undefined') { root.GOVUK = {} }

/*
Cookie methods
==============
Usage:
Setting a cookie:
GOVUK.cookie('hobnob', 'tasty', { days: 30 });
Reading a cookie:
GOVUK.cookie('hobnob');
Deleting a cookie:
GOVUK.cookie('hobnob', null);
*/
window.GOVUK.cookie = function (name, value, options) {
if (typeof value !== 'undefined') {
if (value === false || value === null) {
return window.GOVUK.setCookie(name, '', { days: -1 })
} else {
return window.GOVUK.setCookie(name, value, options)
}
} else {
return window.GOVUK.getCookie(name)
}
}

window.GOVUK.setCookie = function (name, value, options) {
if (typeof options === 'undefined') {
options = {}
}
var cookieString = name + '=' + value + '; path=/'
if (options.days) {
var date = new Date()
date.setTime(date.getTime() + (options.days * 24 * 60 * 60 * 1000))
cookieString = cookieString + '; expires=' + date.toGMTString()
}
if (document.location.protocol === 'https:') {
cookieString = cookieString + '; Secure'
}
document.cookie = cookieString
}

window.GOVUK.getCookie = function (name) {
var nameEQ = name + '='
var cookies = document.cookie.split(';')
for (var i = 0, len = cookies.length; i < len; i++) {
var cookie = cookies[i]
while (cookie.charAt(0) === ' ') {
cookie = cookie.substring(1, cookie.length)
}
if (cookie.indexOf(nameEQ) === 0) {
return decodeURIComponent(cookie.substring(nameEQ.length))
}
}
return null
}
}).call(this)
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
// used by the header navigation from govuk_template

(function () {
'use strict'

if (document.querySelectorAll && document.addEventListener) {
var els = document.querySelectorAll('.js-header-toggle')
var i
var _i
for (i = 0, _i = els.length; i < _i; i++) {
els[i].addEventListener('click', function (e) {
e.preventDefault()
var target = document.getElementById(this.getAttribute('href').substr(1))
var targetClass = target.getAttribute('class') || ''
var sourceClass = this.getAttribute('class') || ''

if (targetClass.indexOf('js-visible') !== -1) {
target.setAttribute('class', targetClass.replace(/(^|\s)js-visible(\s|$)/, ''))
} else {
target.setAttribute('class', targetClass + ' js-visible')
}
if (sourceClass.indexOf('js-visible') !== -1) {
this.setAttribute('class', sourceClass.replace(/(^|\s)js-visible(\s|$)/, ''))
} else {
this.setAttribute('class', sourceClass + ' js-visible')
}
this.setAttribute('aria-expanded', this.getAttribute('aria-expanded') !== 'true')
target.setAttribute('aria-hidden', target.getAttribute('aria-hidden') === 'false')
})
}
}
}).call(this)

0 comments on commit e8c7ee8

Please sign in to comment.