2019-08-27 15:36:06 +01:00
|
|
|
// helpers for generating patterns of HTML
|
|
|
|
|
|
2019-08-28 11:06:27 +01:00
|
|
|
function getRadios (fields, name) {
|
2019-08-27 15:36:06 +01:00
|
|
|
const result = '';
|
|
|
|
|
|
|
|
|
|
return fields.map((field, idx) => {
|
|
|
|
|
const count = idx + 1;
|
2020-12-15 12:07:28 +00:00
|
|
|
const id = field.id || `${name}-${count}`;
|
2019-08-27 15:36:06 +01:00
|
|
|
|
|
|
|
|
return `
|
2023-08-25 15:31:44 -04:00
|
|
|
<div class="usa-radio">
|
|
|
|
|
<input class="usa-radio__input" id="${id}" name="${name}" type="radio" value="${field.value}" ${field.checked ? 'checked' : ''}>
|
|
|
|
|
<label class="usa-radio__label" for="${id}">
|
2019-08-27 15:36:06 +01:00
|
|
|
${field.label}
|
|
|
|
|
</label>
|
|
|
|
|
</div>`;
|
|
|
|
|
}).join("\n");
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
function getRadioGroup (data) {
|
|
|
|
|
let radioGroup = document.createElement('div');
|
|
|
|
|
|
2023-08-18 11:30:30 -04:00
|
|
|
radioGroup.classList.add('usa-form-group');
|
2020-12-15 12:07:28 +00:00
|
|
|
if ('cssClasses' in data) {
|
|
|
|
|
data.cssClasses.forEach(cssClass => radioGroup.classList.add(cssClass));
|
|
|
|
|
}
|
2019-08-27 15:36:06 +01:00
|
|
|
radioGroup.innerHTML = `
|
2023-08-31 14:57:45 -04:00
|
|
|
<fieldset class="usa-fieldset" id="${data.name}">
|
|
|
|
|
<legend class="usa-fieldset__legend${data.hideLegend ? " usa-sr-only" : ""}">
|
2020-12-10 17:00:55 +00:00
|
|
|
${data.label}
|
|
|
|
|
</legend>
|
2023-08-31 14:57:45 -04:00
|
|
|
<div class="usa-radios">
|
2019-08-28 11:06:27 +01:00
|
|
|
${getRadios(data.fields, data.name)}
|
2020-12-10 17:00:55 +00:00
|
|
|
</div>
|
|
|
|
|
</fieldset>`;
|
2019-08-27 15:36:06 +01:00
|
|
|
|
|
|
|
|
return radioGroup;
|
|
|
|
|
};
|
|
|
|
|
|
2019-08-20 16:15:11 +01:00
|
|
|
function templatesAndFoldersCheckboxes (hierarchy) {
|
|
|
|
|
let result = '';
|
|
|
|
|
|
|
|
|
|
hierarchy.forEach((node, idx) => {
|
|
|
|
|
|
|
|
|
|
result += `
|
2023-08-14 10:35:11 -04:00
|
|
|
<div class="usa-checkbox template-list-item template-list-item-with-checkbox template-list-item-without-ancestors">
|
2023-06-08 13:12:00 -04:00
|
|
|
<input class="usa-checkbox__input" id="templates-or-folder-${idx}" name="templates_and_folders" type="checkbox" value="templates-or-folder-${idx}">
|
2023-08-14 10:35:11 -04:00
|
|
|
<label class="usa-checkbox__label template-list-item-label" for="templates-or-folder-${idx}">
|
2023-06-16 14:55:24 -04:00
|
|
|
<span class="usa-sr-only">${node.label}</span>
|
2023-08-23 11:24:35 -04:00
|
|
|
${node.label}
|
2020-09-18 09:44:46 +01:00
|
|
|
</label>
|
2023-08-23 11:24:35 -04:00
|
|
|
<a href="/services/6658542f-0cad-491f-bec8-ab8457700ead/templates/all/folders/${idx}" class="usa-link template-list-${node.type === 'folder' ? 'folder' : 'template'}">
|
|
|
|
|
<span class="live-search-relevant">${node.label}</span>
|
|
|
|
|
</a>
|
2019-08-20 16:15:11 +01:00
|
|
|
${node.meta}
|
|
|
|
|
</div>`;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
2019-08-27 15:36:06 +01:00
|
|
|
exports.getRadios = getRadios;
|
|
|
|
|
exports.getRadioGroup = getRadioGroup;
|
2019-08-20 16:15:11 +01:00
|
|
|
exports.templatesAndFoldersCheckboxes = templatesAndFoldersCheckboxes;
|