Files
@ 97b60b44f50d
Branch filter:
Location: website/conservancy/static/js/conservancy.js - annotation
97b60b44f50d
2.0 KiB
application/javascript
Add some basic 200 OK smoke tests for key pages
034a60be9b5c 034a60be9b5c 034a60be9b5c 034a60be9b5c 034a60be9b5c 034a60be9b5c 034a60be9b5c 0d25e1a87db7 7b1ffebcfb10 0d25e1a87db7 fb690c16763a 83b05a3ae26b 83b05a3ae26b 0d25e1a87db7 fb690c16763a 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 fb690c16763a fb690c16763a fb690c16763a 0d25e1a87db7 0d25e1a87db7 fb690c16763a 0d25e1a87db7 fb690c16763a 619bc033bc52 83b05a3ae26b 83b05a3ae26b 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 0d25e1a87db7 | /* Copyright (C) 2012-2013 Denver Gingerich,
** Copyright (C) 2013-2014 Bradley M. Kuhn,
** Copyright (C) 2016 Brett Smith.
** License: GPLv3-or-later
** Find a copy of GPL at https://sfconservancy.org/GPLv3
*/
'use strict';
function qs (selector, parent) {
return parent ? parent.querySelector(selector) : document.querySelector(selector);
}
function qsa (selector, parent) {
return parent ? parent.querySelectorAll(selector) : document.querySelectorAll(selector);
}
function hide(el) {
el.style.display = 'none';
}
function show(el) {
el.style.display = '';
}
function showVideoInnerHTML (event) {
let video = event.target.parentNode;
let div = document.createElement('div');
div.classList = video.classList;
div.innerHTML = video.innerHTML;
video.parentNode.replaceChild(div, video);
}
function toggleShirtSize (form) {
let wantShirt = form.elements['on0'].value === 'wantGiftYes';
let shirtSizeRow = qs('.t-shirt-size-selector', form);
let shirtSizeSelect = form.elements['os0'];
shirtSizeSelect.disabled = !wantShirt;
form.elements['no_shipping'].value = wantShirt ? '2' : '0';
if (wantShirt) {
show(shirtSizeRow);
} else {
hide(shirtSizeRow);
}
}
/* When the browser doesn't support any video source, replace it
with the HTML inside the <video> element. */
qsa('video').forEach(function(video, _index) {
let last_source = Array.from(qsa('source', video)).at(-1);
last_source.addEventListener('error', showVideoInnerHTML);
});
/* Hide the T-shirt size selector when not needed. */
qsa('.supporter-form').forEach(function(form) {
toggleShirtSize(form); // set initial state
form.addEventListener('change', () => toggleShirtSize(form));
});
// Open mobile/search menu.
qs('#menu-icon').addEventListener('click', function(event) {
qs('#navbar').classList.toggle('mobile');
});
qs('#search-icon').addEventListener('click', function(event) {
qs('#navbar').classList.toggle('mobile');
qs('#search-query').focus();
});
|