Sha256: ff63270f976ad96c375f2e40920368011d8f6c5d655764bc3e31443e5a4b4f9c

Contents?: true

Size: 1.71 KB

Versions: 13

Compression:

Stored size: 1.71 KB

Contents

// 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)

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
govuk_publishing_components-16.16.0 app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js
govuk_publishing_components-16.15.0 app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js
govuk_publishing_components-16.14.1 app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js
govuk_publishing_components-16.14.0 app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js
govuk_publishing_components-16.13.0 app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js
govuk_publishing_components-16.12.0 app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js
govuk_publishing_components-16.11.0 app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js
govuk_publishing_components-16.10.1 app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js
govuk_publishing_components-16.10.0 app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js
govuk_publishing_components-16.9.2 app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js
govuk_publishing_components-16.9.1 app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js
govuk_publishing_components-16.9.0 app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js
govuk_publishing_components-16.8.0 app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js