X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FHall.vue;h=224d5d21764022b054e441cdb32b90b8402d1670;hb=4313762da3237b04f204e121a20cab3ba7bb5dd2;hp=1bd5987cb48724bf184f69b78b05b39ba6ce77c1;hpb=41b3e69acb9195cc106dd018af5fc969ea2d48c0;p=vchess.git diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue index 1bd5987c..224d5d21 100644 --- a/client/src/views/Hall.vue +++ b/client/src/views/Hall.vue @@ -14,7 +14,7 @@ main p.text-center span.variantName | {{ curChallToAccept.vname }} - | {{ curChallToAccept.options.abridged }} + | {{ curChallToAccept.options.abridged || '' }} span {{ curChallToAccept.cadence }} span {{ st.tr["with"] + " " + curChallToAccept.from.name }} p.text-center(v-if="!!curChallToAccept.color") @@ -52,8 +52,8 @@ main ) | {{ v.display }} // Variant-specific options (often at least randomness) - fieldset(v-if="!!newchallenge.V") - div(v-for="select of newchallenge.V.Options.select") + fieldset(v-if="!!newchallenge.V && newchallenge.V.Options") + div(v-for="select of newchallenge.V.Options.select || []") label(:for="select.variable + '_opt'") {{ st.tr[select.label] }} * select(:id="select.variable + '_opt'") option( @@ -62,7 +62,7 @@ main :selected="o.value == select.defaut" ) | {{ st.tr[o.label] }} - div(v-for="check of newchallenge.V.Options.check") + div(v-for="check of newchallenge.V.Options.check || []") label(:for="check.variable + '_opt'") {{ st.tr[check.label] }} * input( :id="check.variable + '_opt'" @@ -178,7 +178,7 @@ main ) td {{ pc.vname }} td {{ pc.cadence }} - td(:class="getRandomnessClass(pc)") {{ pc.options.abridged }} + td(:class="getRandomnessClass(pc)") {{ pc.options.abridged || '' }} td.remove-preset(@click="removePresetChall($event, pc)") img(src="/images/icons/delete.svg") .row @@ -300,10 +300,6 @@ export default { } }, created: function() { - // TODO: remove this patch soon: - this.presetChalls.forEach(pc => { - if (!pc.options) pc.options = { randomness: pc.randomness }; - }); document.addEventListener('visibilitychange', this.visibilityChange); window.addEventListener('focus', this.onFocus); window.addEventListener('blur', this.onBlur); @@ -479,10 +475,12 @@ export default { this.conn = null; }, getRandomnessClass: function(pc) { - if (!pc.options.randomness) return {}; - return { - ["random-" + pc.options.randomness]: true - }; + const opts = pc.options; + if (opts.randomness === undefined && opts.random === undefined) + return {}; + if (opts.randomness !== undefined) + return { ["random-" + opts.randomness]: true }; + return { ["random-" + (opts.random ? 2 : 0)]: true }; }, anonymousCount: function() { let count = 0; @@ -1084,30 +1082,29 @@ export default { error = this.st.tr["Wrong color"]; } } - if (!!error) { - alert(error); - return; - } - window.V = this.newchallenge.V; - error = checkChallenge(this.newchallenge); if (error) { alert(error); return; } - // NOTE: "from" information is not required here - let chall = Object.assign({}, this.newchallenge); - chall.options = {}; + 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) { + for (const check of this.newchallenge.V.Options.check || []) { const elt = document.getElementById(check.variable + "_opt"); if (elt.checked) chall.options[check.variable] = true; } - for (const select of this.newchallenge.V.Options.select) { + for (const select of this.newchallenge.V.Options.select || []) { const elt = document.getElementById(select.variable + "_opt"); - chall.options[select.variable] = elt.value; + chall.options[select.variable] = parseInt(elt.value, 10) || elt.value; + } + error = checkChallenge(chall); + if (error) { + alert(this.st.tr[error]); + return; } chall.options.abridged = V.AbbreviateOptions(chall.options); // Add only if not already issued (not counting FEN): + // NOTE: "from" information is not required here if (this.challenges.some(c => ( c.from.sid == this.st.user.sid || @@ -1397,7 +1394,8 @@ export default { moves: [], clocks: [-1, -1], //-1 = unstarted chats: [], - score: "*" + score: "*", + options: JSON.stringify(gameInfo.options) } ); setTimeout(