modular
This commit is contained in:
45
static/js/components/commandForm.js
Normal file
45
static/js/components/commandForm.js
Normal file
@@ -0,0 +1,45 @@
|
||||
// ================================================================
|
||||
// Command Form Component
|
||||
// ================================================================
|
||||
|
||||
window.onCmdTypeChange = function() {
|
||||
const type = document.getElementById('cmd-type').value;
|
||||
document.getElementById('build-options').style.display = type === 'build' ? '' : 'none';
|
||||
document.getElementById('recruit-options').style.display = type === 'recruit' ? '' : 'none';
|
||||
document.getElementById('amount-group').style.display = type === 'recruit' ? '' : 'none';
|
||||
};
|
||||
|
||||
window.renderBuildingDropdown = function() {
|
||||
const town = window.getSelectedTown();
|
||||
if (!town) return;
|
||||
const bSelect = document.getElementById('building-select');
|
||||
const bLevels = town.buildings || {};
|
||||
|
||||
const currentVal = bSelect.value;
|
||||
bSelect.innerHTML = '';
|
||||
|
||||
for (const [key, nameGr] of Object.entries(window.BUILDING_NAMES_GR)) {
|
||||
const level = bLevels[key] !== undefined ? bLevels[key] : "?";
|
||||
const option = document.createElement('option');
|
||||
option.value = key;
|
||||
option.textContent = `${nameGr} [Επίπεδο ${level}]`;
|
||||
bSelect.appendChild(option);
|
||||
}
|
||||
|
||||
if (currentVal && Array.from(bSelect.options).some(o => o.value === currentVal)) {
|
||||
bSelect.value = currentVal;
|
||||
}
|
||||
};
|
||||
|
||||
window.renderBuildQueuePreview = function() {
|
||||
const town = window.getSelectedTown();
|
||||
const el = document.getElementById('build-queue-preview');
|
||||
if (!town || !town.build_queue || !town.build_queue.length) {
|
||||
el.innerHTML = '<span style="color:#444">Build queue: empty</span>';
|
||||
return;
|
||||
}
|
||||
const items = town.build_queue.map(o =>
|
||||
`<span>${o.building_type || o.name || JSON.stringify(o)}</span>`
|
||||
).join('');
|
||||
el.innerHTML = `<div style="margin-top:6px;color:#888;font-size:0.72rem;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:4px;">Current queue</div>${items}`;
|
||||
};
|
||||
Reference in New Issue
Block a user