in src/js/index.js [95:155]
function form_config_init() {
if (window.location.hash.length === 0) {
gHaveSettingsChanged = true;
const server = document.getElementById('form-generator').server;
if (server.value !== '') {
document.getElementById(`server-${server.value}`).checked = false;
}
document.getElementById('version').value = '';
document.getElementById('openssl').value = '';
gHaveSettingsChanged = false;
return;
}
const mappings = {
'true': true,
'false': false,
};
const params = new URLSearchParams(window.location.hash.substr(1));
// some parameters have been renamed from the old SSL Configuration Generator
if (params.get('server-version') !== null) {
params.set('version', params.get('server-version'));
}
if (params.get('openssl-version') !== null) {
params.set('openssl', params.get('openssl-version'));
}
gHaveSettingsChanged = true;
// set the default server version, if we're loading and have "server" but not "version"
if (params.get('server') !== null && params.get('version') === null) {
const e_version = document.getElementById('version')
e_version.value = configs[params.get('server')].latestVersion;
}
for (let entry of params.entries()) {
if (validHashKeys.includes(entry[0])) {
// find the element
let e = document.getElementById(entry[0]) || document.querySelector(`input[name="${entry[0]}"][value="${entry[1]}"]`);
if (!e || !e.type) {
continue;
}
switch (e.type) {
case 'radio':
case 'checkbox':
// if it's in the mappings, we should do a find/replace
e.checked = mappings[entry[1]] === undefined ? !!entry[1] : mappings[entry[1]];
break;
case 'text':
case 'hidden':
e.value = xmlEntities(entry[1]);
}
}
}
gHaveSettingsChanged = false;
}