From b385490728b1bca33d110dffdd9b06dc4fab6d2f Mon Sep 17 00:00:00 2001 From: lowercasedonkey <lowercasedonkey@gmail.com> Date: Tue, 25 May 2021 20:28:20 -0400 Subject: [PATCH] allow filtering actors for validity --- src/events/debugEvent.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/events/debugEvent.js b/src/events/debugEvent.js index 93bc4f7678b..975f364209d 100644 --- a/src/events/debugEvent.js +++ b/src/events/debugEvent.js @@ -5,6 +5,7 @@ App.Events.debugEvent = function(eventName) { const frag = document.createDocumentFragment(); /** @type {App.Events.BaseEvent} */ const event = eval(`new ${eventName}`); + let displayOnlyValid = false; function makeCastList() { const cast = document.createDocumentFragment(); @@ -26,6 +27,24 @@ App.Events.debugEvent = function(eventName) { function makeActorList() { const actors = document.createDocumentFragment(); const actorReqs = event.actorPrerequisites(); + if (!displayOnlyValid) { + App.UI.DOM.appendNewElement("div", actors, App.UI.DOM.link( + "Show only valid slaves", + () => { + displayOnlyValid = true; + $('#actorList').empty().append(makeActorList()); + } + )); + } else { + App.UI.DOM.appendNewElement("div", actors, App.UI.DOM.link( + "Show all slaves", + () => { + displayOnlyValid = false; + $('#actorList').empty().append(makeActorList()); + } + )); + } + if (actorReqs.length === 1) { actors.append(singleActorList(0)); } else { @@ -41,7 +60,7 @@ App.Events.debugEvent = function(eventName) { function singleActorList(i) { let tab = App.UI.DOM.makeElement("div"); for (const slave of V.slaves) { - let slaveDiv = App.UI.DOM.appendNewElement("div", tab, App.UI.DOM.makeElement("span", SlaveFullName(slave), "slave-name")); + let slaveDiv = App.UI.DOM.makeElement("div", App.UI.DOM.makeElement("span", SlaveFullName(slave), "slave-name")); let slaveFails = false; for (const p of actorReqs[i]) { let passed = testPredicate(slaveDiv, p, slave); @@ -50,8 +69,11 @@ App.Events.debugEvent = function(eventName) { } if (!slaveFails) { App.UI.DOM.appendNewElement("div", slaveDiv, App.UI.DOM.link("Choose this slave", castSlave, [slave, i]), "indent"); + } else if (displayOnlyValid) { + continue; } App.UI.DOM.appendNewElement("hr", tab); + tab.append(slaveDiv); } return tab; } -- GitLab