Add a list of available cores for each platform to the platform map (#130)
This commit is contained in:
@@ -59,8 +59,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<select id="mapping_edit_webemulatorengine" style="width: 100%;">
|
||||
<option value="">-</option>
|
||||
<option value="EmulatorJS">EmulatorJS</option>
|
||||
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -68,8 +67,10 @@
|
||||
<td style="width: 25%;">
|
||||
<h4>Core</h4>
|
||||
</td>
|
||||
<td style="text-align: right;">
|
||||
<input id="mapping_edit_webemulatorcore" type="text" style="width: 98%;"/>
|
||||
<td>
|
||||
<select id="mapping_edit_webemulatorcore" style="width: 100%;">
|
||||
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr name="mapping_edit_webemulator">
|
||||
@@ -99,6 +100,10 @@
|
||||
modalContent[0].classList.add('collections_modal');
|
||||
}
|
||||
|
||||
var availableWebEmulators = [];
|
||||
|
||||
DisplayWebEmulatorContent(false);
|
||||
|
||||
ajaxCall(
|
||||
'/api/v1/PlatformMaps/' + modalVariables,
|
||||
'GET',
|
||||
@@ -133,18 +138,47 @@
|
||||
document.getElementById('mapping_edit_igdbslug').value = result.igdbSlug;
|
||||
document.getElementById('mapping_edit_retropie').value = result.retroPieDirectoryName;
|
||||
|
||||
// set up web emulator drop downs
|
||||
$('#mapping_edit_webemulatorengine').select2();
|
||||
if (result.webEmulator.type.length > 0) {
|
||||
document.getElementById('mapping_edit_enablewebemulator').checked = true;
|
||||
$('#mapping_edit_webemulatorengine').val(result.webEmulator.type);
|
||||
DisplayWebEmulatorHelp(result.webEmulator.type);
|
||||
$('#mapping_edit_webemulatorengine').trigger('change');
|
||||
document.getElementById('mapping_edit_webemulatorcore').value = result.webEmulator.core;
|
||||
$('#mapping_edit_webemulatorcore').select2();
|
||||
|
||||
DisplayWebEmulatorContent(true);
|
||||
// start populating drop downs
|
||||
if (result.webEmulator) {
|
||||
if (result.webEmulator.availableWebEmulators.length > 0) {
|
||||
availableWebEmulators = result.webEmulator.availableWebEmulators;
|
||||
|
||||
var offOption = new Option("-", "", false, false);
|
||||
$('#mapping_edit_webemulatorengine').append(offOption).trigger('change');
|
||||
for (var e = 0; e < result.webEmulator.availableWebEmulators.length; e++) {
|
||||
var newOption = new Option(result.webEmulator.availableWebEmulators[e].emulatorType, result.webEmulator.availableWebEmulators[e].emulatorType, false, false);
|
||||
$('#mapping_edit_webemulatorengine').append(newOption).trigger('change');
|
||||
}
|
||||
$('#mapping_edit_webemulatorengine').val(result.webEmulator.type);
|
||||
$('#mapping_edit_webemulatorengine').trigger('change');
|
||||
|
||||
// select cores
|
||||
RenderWebEmulatorCores(result.webEmulator.core);
|
||||
|
||||
if (result.webEmulator.type.length > 0) {
|
||||
document.getElementById('mapping_edit_enablewebemulator').checked = true;
|
||||
}
|
||||
|
||||
DisplayWebEmulatorHelp(result.webEmulator.type);
|
||||
|
||||
$('#mapping_edit_webemulatorengine').on('change', function(e) {
|
||||
RenderWebEmulatorCores();
|
||||
});
|
||||
if (result.webEmulator.type.length > 0) {
|
||||
DisplayWebEmulatorContent(true);
|
||||
} else {
|
||||
DisplayWebEmulatorContent(false);
|
||||
}
|
||||
} else {
|
||||
// no emulators available
|
||||
DisplayWebEmulatorContent(false);
|
||||
}
|
||||
} else {
|
||||
document.getElementById('mapping_edit_enablewebemulator').checked = false;
|
||||
|
||||
// no emulators available
|
||||
DisplayWebEmulatorContent(false);
|
||||
}
|
||||
|
||||
@@ -173,6 +207,55 @@
|
||||
}
|
||||
);
|
||||
|
||||
function RenderWebEmulatorCores(preSelectCore) {
|
||||
var selectedEngine = document.getElementById('mapping_edit_webemulatorengine').value;
|
||||
console.log("Engine: " + selectedEngine);
|
||||
console.log("Preselect: " + preSelectCore);
|
||||
console.log(JSON.stringify(availableWebEmulators));
|
||||
$('#mapping_edit_webemulatorcore').empty().trigger("change");
|
||||
|
||||
// get cores for currently selected emulator
|
||||
if (availableWebEmulators && (selectedEngine != undefined && selectedEngine != "")) {
|
||||
if (availableWebEmulators.length > 0) {
|
||||
var emuFound = false;
|
||||
for (var e = 0; e < availableWebEmulators.length; e++) {
|
||||
if (availableWebEmulators[e].emulatorType == selectedEngine) {
|
||||
emuFound = true;
|
||||
for (var c = 0; c < availableWebEmulators[e].availableWebEmulatorCores.length; c++) {
|
||||
var coreName = availableWebEmulators[e].availableWebEmulatorCores[c].core;
|
||||
if (availableWebEmulators[e].availableWebEmulatorCores[c].alternateCoreName) {
|
||||
coreName += " (Maps to core: " + availableWebEmulators[e].availableWebEmulatorCores[c].alternateCoreName + ")";
|
||||
}
|
||||
if (availableWebEmulators[e].availableWebEmulatorCores[c].default == true) {
|
||||
coreName += " (Default)";
|
||||
}
|
||||
console.log(coreName);
|
||||
|
||||
var newOption;
|
||||
if (availableWebEmulators[e].availableWebEmulatorCores[c].core == preSelectCore) {
|
||||
newOption = new Option(coreName, availableWebEmulators[e].availableWebEmulatorCores[c].core, true, true);
|
||||
} else {
|
||||
newOption = new Option(coreName, availableWebEmulators[e].availableWebEmulatorCores[c].core, false, false);
|
||||
}
|
||||
$('#mapping_edit_webemulatorcore').append(newOption).trigger('change');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (emuFound == false) {
|
||||
var newOption = new Option("-", "", true, true);
|
||||
$('#mapping_edit_webemulatorcore').append(newOption).trigger('change');
|
||||
}
|
||||
} else {
|
||||
var newOption = new Option("-", "", true, true);
|
||||
$('#mapping_edit_webemulatorcore').append(newOption).trigger('change');
|
||||
}
|
||||
} else {
|
||||
var newOption = new Option("-", "", true, true);
|
||||
$('#mapping_edit_webemulatorcore').append(newOption).trigger('change');
|
||||
}
|
||||
}
|
||||
|
||||
function AddTokensFromList(selectObj, tagList) {
|
||||
for (var i = 0; i < tagList.length; i++) {
|
||||
var data = {
|
||||
@@ -291,6 +374,7 @@
|
||||
});
|
||||
|
||||
function DisplayWebEmulatorContent(showContent) {
|
||||
console.log(showContent);
|
||||
var webEmulatorRows = document.getElementsByName('mapping_edit_webemulator');
|
||||
|
||||
for (var i = 0; i < webEmulatorRows.length; i++) {
|
||||
|
||||
Reference in New Issue
Block a user