X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=public%2Fjavascripts%2Fcomponents%2FmoveList.js;h=b3c4255fa2407bb4b043628196436f05b245c4b6;hb=7d9e99bc177972c5af8b1b45f4bfb043d8306f30;hp=3687864ce81e98ccbbadb6978db7d65bbedaa8f9;hpb=7ee085c29c53c5072008e10a1ec8d3a763f42859;p=vchess.git diff --git a/public/javascripts/components/moveList.js b/public/javascripts/components/moveList.js index 3687864c..b3c4255f 100644 --- a/public/javascripts/components/moveList.js +++ b/public/javascripts/components/moveList.js @@ -1,12 +1,12 @@ //TODO: component for moves list on the right // TODO: generic "getPGN" in the same way (following move.color) Vue.component('my-move-list', { - props: ["moves"], //TODO: other props for e.g. players names + connected indicator + props: ["moves","cursor"], //TODO: other props for e.g. players names + connected indicator // --> we could also add turn indicator here + // + missing "cursor" prop data: function() { return { - // if oppid == "computer" then mode = "computer" (otherwise human) - myid: "", //TODO + something: "", //TODO }; }, // TODO: extend rendering for more than 2 colors: would be a parameter @@ -14,8 +14,9 @@ Vue.component('my-move-list', { if (this.moves.length == 0) return; const nbColors = 2; - if (this.moves[0].color == "black") - this.moves.unshift({color: "white", notation: "..."}); + // TODO: name colors "white", "black", "red", "yellow" ? + if (this.moves[0].color == "b") + this.moves.unshift({color: "w", notation: "..."}); let tableContent = []; let moveCounter = 0; let tableRow = undefined; @@ -23,45 +24,62 @@ Vue.component('my-move-list', { let curCellContent = ""; for (let i=0; i0 && this.moves[i-1].color=="black") + if (i == 0 || i>0 && this.moves[i-1].color=="b") { if (!!tableRow) + { + tableRow.children = moveCells; tableContent.push(tableRow); + } moveCells = [ h( "td", - { attrs: { innerHTML: (++moveCounter) + "." } } + { domProps: { innerHTML: (++moveCounter) + "." } } ) ]; tableRow = h( "tr", - { }, - moveCells + { } ); curCellContent = ""; } - curCellContent += this.moves[i].notation + ","; + } + curCellContent += this.moves[i].notation; + if (i < this.moves.length-1 && this.moves[i+1].color == this.moves[i].color) + curCellContent += ","; + else //color change + { moveCells.push( h( "td", - { attrs: .............. + { + domProps: { innerHTML: curCellContent }, + on: { click: () => this.gotoMove(i) }, + "class": { "highlight-lm": this.cursor-1 == i }, + } + ) + ); + curCellContent = ""; } } // Complete last row, which might not be full: - if (tableRow.length-1 < nbColors) + if (moveCells.length-1 < nbColors) { const delta = nbColors - (moveCells.length-1); for (let i=0; i