X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=public%2Fjavascripts%2Fcomponents%2Frules.js;h=660f0be9976e56109716fed35aed292a3affb755;hp=c3107a675a11e9716d2fa30b915185e236784786;hb=da06a6eb0237123ce43fdb01cb06246b8b57f5e5;hpb=4ecf423bce243e8e10b5b777a95f67ecc9f8d8d3 diff --git a/public/javascripts/components/rules.js b/public/javascripts/components/rules.js index c3107a67..660f0be9 100644 --- a/public/javascripts/components/rules.js +++ b/public/javascripts/components/rules.js @@ -6,66 +6,22 @@ Vue.component('my-rules', { template: `
`, mounted: function() { // AJAX request to get rules content (plain text, HTML) - let xhr = new XMLHttpRequest(); - let self = this; - xhr.onreadystatechange = function() { - if (this.readyState == 4 && this.status == 200) - { - let replaceByDiag = (match, p1, p2) => { return self.drawDiag(p2); }; - self.content = xhr.responseText.replace(/(fen:)([^:]*):/g, replaceByDiag); - } - }; - xhr.open("GET", "/rules/" + variant, true); - xhr.setRequestHeader('X-Requested-With', "XMLHttpRequest"); - xhr.send(); + ajax("/rules/" + variant, "GET", response => { + let replaceByDiag = (match, p1, p2) => { + const args = self.parseFen(p2); + return getDiagram(args); + }; + self.content = response.replace(/(fen:)([^:]*):/g, replaceByDiag); + } }, methods: { - drawDiag: function(fen) { - let [sizeX,sizeY] = [V.size.x,V.size.y]; - let fenParts = fen.split(" "); - // Obtain array of pieces images names - let board = VariantRules.GetBoard(fenParts[0]); - let orientation = "w"; - if (fenParts.length >= 2) - orientation = fenParts[1]; - let markArray = []; - if (fenParts.length >= 3) - { - let marks_str = fenParts[2]; - // Turn (human) marks into coordinates - markArray = doubleArray(sizeX, sizeY, false); - let marks = marks_str.split(","); - for (let i=0; i=0 && i=0 && j"; - if (board[i][j] != VariantRules.EMPTY) - { - boardDiv += ""; - } - if (markArray.length>0 && markArray[i][j]) - boardDiv += ""; - boardDiv += ""; - } - boardDiv += ""; - } - return boardDiv; + parseFen(fen) { + const fenParts = fen.split(" "); + return { + position: fenParts[0], + marks: fenParts[1], + orientation: fenParts[2], + }; }, }, })