2019-08-29 12:23:34 +01:00
|
|
|
(function (global) {
|
2018-08-03 16:22:13 +01:00
|
|
|
|
|
|
|
|
'use strict';
|
|
|
|
|
|
2019-08-29 12:23:34 +01:00
|
|
|
$ = global.jQuery;
|
2018-08-03 16:22:13 +01:00
|
|
|
|
2020-12-10 17:00:55 +00:00
|
|
|
let branding_style = $('.govuk-radios__item input[name="branding_style"]:checked');
|
2018-08-03 16:22:13 +01:00
|
|
|
|
2018-08-29 11:36:50 +01:00
|
|
|
if (!branding_style.length) { return; }
|
2018-08-03 16:22:13 +01:00
|
|
|
|
|
|
|
|
branding_style = branding_style.val();
|
|
|
|
|
|
2020-02-19 12:23:56 +00:00
|
|
|
const $paneWrapper = $('<div class="govuk-grid-column-full"></div>');
|
2018-08-03 16:22:13 +01:00
|
|
|
const $form = $('form');
|
2019-02-14 14:06:31 +00:00
|
|
|
const previewType = $form.data('previewType');
|
2022-03-01 12:26:05 +00:00
|
|
|
const $previewPane = $(`<iframe src="/_${previewType}?${buildQueryString(['branding_style', branding_style])}" class="branding-preview" scrolling="no"></iframe>`);
|
2018-08-03 16:22:13 +01:00
|
|
|
|
|
|
|
|
function buildQueryString () {
|
|
|
|
|
return $.map(arguments, (val, idx) => encodeURI(val[0]) + '=' + encodeURI(val[1])).join('&');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function setPreviewPane (e) {
|
|
|
|
|
const $target = $(e.target);
|
|
|
|
|
if ($target.attr('name') == 'branding_style') {
|
|
|
|
|
branding_style = $target.val();
|
|
|
|
|
}
|
2019-02-14 14:06:31 +00:00
|
|
|
$previewPane.attr('src', `/_${previewType}?${buildQueryString(['branding_style', branding_style])}`);
|
2018-08-03 16:22:13 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$paneWrapper.append($previewPane);
|
2020-02-19 11:57:15 +00:00
|
|
|
$form.find('.govuk-grid-row').eq(0).prepend($paneWrapper);
|
2019-02-14 14:06:31 +00:00
|
|
|
$form.attr('action', location.pathname.replace(new RegExp(`set-${previewType}-branding$`), `preview-${previewType}-branding`));
|
2018-08-03 16:22:13 +01:00
|
|
|
$form.find('button[type="submit"]').text('Save');
|
|
|
|
|
|
2018-08-29 11:36:50 +01:00
|
|
|
$('fieldset').on('change', 'input[name="branding_style"]', setPreviewPane);
|
2019-08-29 12:23:34 +01:00
|
|
|
})(window);
|