role-select.js ensures Role select card stack disappears via WS upon conclusion of Role selection, w. if-conditional support from apps.epic.views; ensured border present on card-stack when .active in _room.scss; changed default #id_tray to unhidden, only hidden during Role select until Role selected; polished & unified Role .card-front, .card.back & .card-stack styling

This commit is contained in:
Disco DeDisco
2026-04-05 01:14:31 -04:00
parent c00288e256
commit bd3d7fc7bd
7 changed files with 87 additions and 24 deletions

View File

@@ -154,7 +154,7 @@ var RoleSelect = (function () {
var back = document.createElement("div");
back.className = "card-back";
back.textContent = "?";
back.textContent = "ROLE";
var front = document.createElement("div");
front.className = "card-front";
@@ -208,6 +208,10 @@ var RoleSelect = (function () {
function handleAllRolesFilled() {
var wrap = document.getElementById('id_pick_sigs_wrap');
if (wrap) wrap.style.display = '';
var stack = document.querySelector('.card-stack');
if (stack) stack.remove();
var trayWrap = document.getElementById('id_tray_wrap');
if (trayWrap) trayWrap.classList.remove('role-select-phase');
}
function handleSigSelectStarted() {

View File

@@ -7,7 +7,9 @@
if (!scene || !container) return;
var w = container.clientWidth, h = container.clientHeight;
if (!w || !h) return;
scene.style.transform = 'scale(' + Math.min(w / SCENE_W, h / SCENE_H) + ')';
var scale = Math.min(w / SCENE_W, h / SCENE_H);
scene.style.transform = 'scale(' + scale + ')';
document.documentElement.style.setProperty('--table-scale', scale);
}
if (document.readyState === 'loading') {

View File

@@ -762,6 +762,7 @@ class RoomViewAllRolesFilledTest(TestCase):
response = self.client.get(reverse("epic:room", kwargs={"room_id": self.room.id}))
parsed = self.lxml.fromstring(response.content)
[_] = parsed.cssselect("#id_pick_sigs_btn")
self.assertEqual(parsed.cssselect(".card-stack"), [])
def test_pick_sigs_btn_hidden_during_role_select(self):
# Clear one role — still mid-pick, wrap must be hidden

View File

@@ -189,6 +189,8 @@ def _role_select_context(room, user):
starter_roles = list(
room.table_seats.exclude(role__isnull=True).values_list("role", flat=True)
)
if len(starter_roles) == 6:
card_stack_state = None
_action_order = {r: i for i, r in enumerate(["PC", "NC", "EC", "SC", "AC", "BC"])}
assigned_seats = (
sorted(