JSFiddle - React, Tailwind, and code Playground
by Nick Iaconis
HTML
<textarea id="region" placeholder="Region Fixtures"></textarea><br />
<textarea id="network" placeholder="Network Fixtures"></textarea><br />
<textarea id="terminal" placeholder="Terminal Fixtures"></textarea>
<button id="go">Go</button><br />
Regions<br />
<textarea id="regions" disabled="disabled"></textarea><br />
Networks<br />
<textarea id="networks" disabled="disabled"></textarea><br />
Terminals<br />
<textarea id="terminals" disabled="disabled"></textarea><br />
JavaScript
// MUOS Region/Network/Terminal Django Converter
function findProperty(key, value) {
for(var i = 0; i < this.length; ++i) {
if ( this[i][key] === value )
return this[i]
}
}
function tidyJSON(string) {
return string.replace(/{/g, "{\n\t").replace(/},/g, "\n}, ").replace(/:\[/g, ":[\n\t").replace(/:/g, ": ").replace(/,"/g, ',\n\t"')
}
$('#go').on('click', function() {
var regionStr = $('#region').val(),
networkStr = $('#network').val(),
terminalStr = $('#terminal').val(),
regionFixtures = JSON.parse(regionStr),
networkFixtures = JSON.parse(networkStr),
terminalFixtures = JSON.parse(terminalStr),
regionOut = "",
networkOut = "",
terminalOut = ""
// Link data
terminalFixtures.forEach(function(fixture) {
var network = findProperty.call(networkFixtures, 'name', fixture.network),
region = findProperty.call(regionFixtures, 'name', fixture.location)
fixture.network = network.id
network.terminals = network.terminals || []
network.terminals.push(fixture.id)
fixture.location = region.id
region.terminals = region.terminals || []
region.terminals.push(fixture.id)
});
// Clean output
regionOut = tidyJSON(JSON.stringify(regionFixtures))//.replace(/{/g, "{\n\t").replace(/},/g, "\n}, ").replace(/:\[/g, ":[\n\t").replace(/:/g, ": ").replace(/,"/g, ',\n\t"')
networkOut = tidyJSON(JSON.stringify(networkFixtures))
terminalOut = tidyJSON(JSON.stringify(terminalFixtures))
// Output
$('#regions').val(regionOut)
$('#networks').val(networkOut)
$('#terminals').val(terminalOut)
})