th {{ st.tr["Options"] }}
th
tbody
+ // TODO: remove the check !!pc.options
tr(
v-for="pc in presetChalls"
@click="newChallFromPreset(pc)"
+ v-if="!!pc.options"
)
td {{ pc.vname }}
td {{ pc.cadence }}
return;
}
window.V = this.newchallenge.V;
- let chall = Object.assign({ options: {} }, this.newchallenge);
- // Get/set options variables (if any) / TODO: v-model?!
- for (const check of this.newchallenge.V.Options.check || []) {
- const elt = document.getElementById(check.variable + "_opt");
- chall.options[check.variable] = elt.checked;
- }
- for (const select of this.newchallenge.V.Options.select || []) {
- const elt = document.getElementById(select.variable + "_opt");
- const tryIntVal = parseInt(elt.value, 10);
- chall.options[select.variable] =
- (isNaN(tryIntVal) ? elt.value : tryIntVal);
+ let chall = Object.assign({}, this.newchallenge, { options: {} });
+ if (V.Options) {
+ // Get/set options variables (if any) / TODO: v-model?!
+ for (const check of this.newchallenge.V.Options.check || []) {
+ const elt = document.getElementById(check.variable + "_opt");
+ chall.options[check.variable] = elt.checked;
+ }
+ for (const select of this.newchallenge.V.Options.select || []) {
+ const elt = document.getElementById(select.variable + "_opt");
+ const tryIntVal = parseInt(elt.value, 10);
+ chall.options[select.variable] =
+ (isNaN(tryIntVal) ? elt.value : tryIntVal);
+ }
}
error = checkChallenge(chall);
if (error) {
alert(this.st.tr["Challenge already exists"]);
return;
}
- if (this.newchallenge.memorize) this.addPresetChall(this.newchallenge);
+ if (this.newchallenge.memorize) this.addPresetChall(chall);
delete chall["V"];
delete chall["diag"];
const finishAddChallenge = cid => {
"POST",
{
data: {
- chall: Object.assign({},
- chall, { options: JSON.stringify(chall.options) }
+ chall: Object.assign(
+ {},
+ chall,
+ { options: JSON.stringify(chall.options) }
)
},
success: (response) => {