Added checkbox to enable/disable max duration.

This commit is contained in:
Krafpy
2023-05-25 19:52:21 +02:00
parent 7aee9ea9c5
commit f13e8c0963
3 changed files with 43 additions and 23 deletions

View File

@@ -136,9 +136,6 @@ export async function initEditorWithSystem(systems, systemIndex) {
const timeRangeEnd = new TimeSelector("end", config);
timeRangeStart.setToDefault();
timeRangeEnd.setToDefault();
const maxDuration = new IntegerInput("max-duration");
maxDuration.setMinMax(1, Infinity);
maxDuration.value = config.editor.defaultMaxDuration;
const depAltitude = new IntegerInput("start-altitude");
const destAltitude = new IntegerInput("end-altitude");
const updateAltitudeRange = (input, body) => {
@@ -147,6 +144,15 @@ export async function initEditorWithSystem(systems, systemIndex) {
};
depAltitude.value = config.editor.defaultAltitude;
destAltitude.value = config.editor.defaultAltitude;
const maxDuration = new IntegerInput("max-duration");
maxDuration.setMinMax(1, Infinity);
maxDuration.value = config.editor.defaultMaxDuration;
const useMaxDuration = document.getElementById("use-max-duration");
const updateUseMaxDuration = () => {
maxDuration.element.disabled = !useMaxDuration.checked;
};
useMaxDuration.onchange = updateUseMaxDuration;
updateUseMaxDuration();
const noInsertionBox = document.getElementById("insertion-checkbox");
noInsertionBox.checked = false;
const customSequence = document.getElementById("custom-sequence");
@@ -253,15 +259,18 @@ export async function initEditorWithSystem(systems, systemIndex) {
if (!maxDuration.validate()) {
throw new Error("Invalid duration limit.");
}
let maxDurationSeconds;
if (config.time.type == "base") {
const { hoursPerDay } = config.time;
const secondsPerDay = hoursPerDay * 3600;
maxDurationSeconds = maxDuration.value * secondsPerDay;
}
else {
maxDurationSeconds = maxDuration.value * 24 * 3600;
let maxDurationSeconds = Infinity;
if (useMaxDuration.checked) {
if (config.time.type == "base") {
const { hoursPerDay } = config.time;
const secondsPerDay = hoursPerDay * 3600;
maxDurationSeconds = maxDuration.value * secondsPerDay;
}
else {
maxDurationSeconds = maxDuration.value * 24 * 3600;
}
}
console.log(maxDurationSeconds);
resetFoundTrajectory();
const userSettings = {
startDate: startDate,

View File

@@ -181,6 +181,7 @@
<div class="controls">
<input class="number-input" name="max-duration" id="max-duration" type="number" value="0" min="1">
days
<input name="use-max-duration" id="use-max-duration" type="checkbox">
</div>
</div>
<div id="insertion-checkbox-container">

View File

@@ -180,11 +180,6 @@ export async function initEditorWithSystem(systems: SolarSystemData[], systemInd
timeRangeStart.setToDefault();
timeRangeEnd.setToDefault();
// Max duration input
const maxDuration = new IntegerInput("max-duration");
maxDuration.setMinMax(1, Infinity);
maxDuration.value = config.editor.defaultMaxDuration;
// Numerical inputs
const depAltitude = new IntegerInput("start-altitude");
const destAltitude = new IntegerInput("end-altitude");
@@ -197,6 +192,18 @@ export async function initEditorWithSystem(systems: SolarSystemData[], systemInd
depAltitude.value = config.editor.defaultAltitude;
destAltitude.value = config.editor.defaultAltitude;
// Max duration input
const maxDuration = new IntegerInput("max-duration");
maxDuration.setMinMax(1, Infinity);
maxDuration.value = config.editor.defaultMaxDuration;
const useMaxDuration = document.getElementById("use-max-duration") as HTMLInputElement;
const updateUseMaxDuration = () => {
maxDuration.element.disabled = !useMaxDuration.checked;
};
useMaxDuration.onchange = updateUseMaxDuration;
updateUseMaxDuration();
// No insertion burn checkbox
const noInsertionBox = document.getElementById("insertion-checkbox") as HTMLInputElement;
noInsertionBox.checked = false;
@@ -330,14 +337,17 @@ export async function initEditorWithSystem(systems: SolarSystemData[], systemInd
throw new Error("Invalid duration limit.");
}
let maxDurationSeconds: number;
if(config.time.type == "base") {
const {hoursPerDay} = config.time;
const secondsPerDay = hoursPerDay * 3600;
maxDurationSeconds = maxDuration.value * secondsPerDay;
} else {
maxDurationSeconds = maxDuration.value * 24*3600;
let maxDurationSeconds = Infinity;
if(useMaxDuration.checked){
if(config.time.type == "base") {
const {hoursPerDay} = config.time;
const secondsPerDay = hoursPerDay * 3600;
maxDurationSeconds = maxDuration.value * secondsPerDay;
} else {
maxDurationSeconds = maxDuration.value * 24*3600;
}
}
console.log(maxDurationSeconds);
resetFoundTrajectory();