fixes bug in checkall for test tab

pull/1/head
LianaHus 6 years ago
parent eb189dcca4
commit 218772ab69
  1. 21
      src/app/tabs/test-tab.js

@ -101,7 +101,7 @@ module.exports = class TestTab {
self._deps.filePanel.event.register('newTestFileCreated', file => { self._deps.filePanel.event.register('newTestFileCreated', file => {
var testList = document.querySelector("[class^='testList']") var testList = document.querySelector("[class^='testList']")
var test = yo`<label><input class="singleTest" onchange=${(e) => toggleCheckbox(e, file)} type="checkbox" checked="true">${file}</label>` var test = yo`<label class="singleTestLabel"><input class="singleTest" onchange=${(e) => toggleCheckbox(e.target.checked, file)} type="checkbox" checked="true">${file}</label>`
testList.appendChild(test) testList.appendChild(test)
self.data.allTests.push(file) self.data.allTests.push(file)
self.data.selectedTests.push(file) self.data.selectedTests.push(file)
@ -133,15 +133,17 @@ module.exports = class TestTab {
function listTests () { function listTests () {
var tests = self.data.allTests var tests = self.data.allTests
return tests.map(test => yo`<label><input class="singleTest" onchange =${(e) => toggleCheckbox(e, test)} type="checkbox" checked="true">${test} </label>`) return tests.map(test => yo`<label class="singleTestLabel"><input class="singleTest" onchange =${(e) => toggleCheckbox(e.target.checked, test)} type="checkbox" checked="true">${test} </label>`)
} }
function toggleCheckbox (e, test) { function toggleCheckbox (eChecked, test) {
if (!self.data.selectedTests)
self.data.selectedTests = document.querySelectorAll('.singleTest:checked')
let selectedTests = self.data.selectedTests let selectedTests = self.data.selectedTests
selectedTests = e.target.checked ? [...selectedTests, test] : selectedTests.filter(el => el !== test) selectedTests = eChecked ? [...selectedTests, test] : selectedTests.filter(el => {el !== test})
self.data.selectedTests = selectedTests self.data.selectedTests = selectedTests
let checkAll = document.querySelector('[id="checkAllTests"]') let checkAll = document.querySelector('[id="checkAllTests"]')
if (e.target.checked) { if (eChecked) {
checkAll.checked = true checkAll.checked = true
} else if (!selectedTests.length) { } else if (!selectedTests.length) {
checkAll.checked = false checkAll.checked = false
@ -149,14 +151,17 @@ module.exports = class TestTab {
} }
function checkAll (event) { function checkAll (event) {
const checkBoxes = document.querySelectorAll('.singleTest') let checkBoxes = document.querySelectorAll('.singleTest')
const checkboxesLabels = document.querySelectorAll(".singleTestLabel")
const selectionsCount = document.querySelectorAll('.singleTest:checked').length const selectionsCount = document.querySelectorAll('.singleTest:checked').length
// checks/unchecks all // checks/unchecks all
checkBoxes.forEach(checkbox => checkbox.checked = !selectionsCount) for (let i = 0; i < checkBoxes.length; i++) {
checkBoxes[i].checked = !selectionsCount;
toggleCheckbox(!selectionsCount, checkboxesLabels[i].innerText)
}
event.target.checked = !selectionsCount event.target.checked = !selectionsCount
} }
var runTests = function () { var runTests = function () {
testsOutput.innerHTML = '' testsOutput.innerHTML = ''
testsSummary.innerHTML = '' testsSummary.innerHTML = ''

Loading…
Cancel
Save