From b2d0f15d9c4b25bfbf3b7128065b6a0acd0400b0 Mon Sep 17 00:00:00 2001 From: WrinklyNinja Date: Mon, 19 May 2014 19:40:44 +0100 Subject: [PATCH] Implemented game table row editing. Text input is made editable on double click. --- resources/report/css/style.css | 8 ++++++++ resources/report/js/script.js | 34 ++++++++++++++++++++++++++-------- resources/report/report.html | 21 ++++++++++++--------- resources/report/testdata.js | 6 ++++++ 4 files changed, 52 insertions(+), 17 deletions(-) diff --git a/resources/report/css/style.css b/resources/report/css/style.css index da9a4b5f..0ff4fbf3 100644 --- a/resources/report/css/style.css +++ b/resources/report/css/style.css @@ -373,3 +373,11 @@ li.warn{ .dialog .buttons { text-align: center; } + +input[readonly] { + border: none; + -webkit-user-select: none; +} +td input { + width: 100%; +} \ No newline at end of file diff --git a/resources/report/js/script.js b/resources/report/js/script.js index 7cb45fa2..7fca037c 100644 --- a/resources/report/js/script.js +++ b/resources/report/js/script.js @@ -463,14 +463,32 @@ function processURLParams() { var clone = document.importNode(content, true); gameTable.appendChild(clone); clone = gameTable.lastElementChild; - clone.children[0].textContent = data.games[i].name; - clone.children[1].textContent = data.games[i].type; - clone.children[2].textContent = data.games[i].folder; - clone.children[3].textContent = data.games[i].masterFile; - clone.children[4].textContent = data.games[i].url; - clone.children[5].textContent = data.games[i].branch; - clone.children[6].textContent = data.games[i].path; - clone.children[7].textContent = data.games[i].registryKey; + clone.querySelector('.name').value = data.games[i].name; + var inputs = clone.getElementsByTagName('input'); + for (var j = 0; j < inputs.length; ++j) { + inputs[j].addEventListener('dblclick', function(evt){ + if (evt.target.readOnly) { + evt.target.removeAttribute('readonly'); + } else { + evt.target.setAttribute('readonly', ''); + } + }); + } + + for (var j = 0; j < data.gameTypes.length; ++j) { + var option = document.createElement('option'); + option.value = data.gameTypes[j]; + option.textContent = data.gameTypes[j]; + clone.querySelector('.type').appendChild(option); + } + clone.querySelector('.type').value = data.games[i].type; + + clone.querySelector('.folder').value = data.games[i].folder; + clone.querySelector('.masterFile').value = data.games[i].masterFile; + clone.querySelector('.url').value = data.games[i].url; + clone.querySelector('.branch').value = data.games[i].branch; + clone.querySelector('.path').value = data.games[i].path; + clone.querySelector('.registryKey').value = data.games[i].registryKey; } /* Now fill in language options. */ diff --git a/resources/report/report.html b/resources/report/report.html index 2b20b71f..407da12b 100644 --- a/resources/report/report.html +++ b/resources/report/report.html @@ -9,15 +9,18 @@