Improves event layout and stacking logic
Refactors the event layout and stacking logic based on review feedback. This includes: - Merging conflicting event groups to prevent inconsistencies. - Implementing minimal stack level assignment using a min-heap. - Consolidating styling and using DateService for drag operations. - Adding reflow after drag and drop. - Improving the column event filtering to include events overlapping midnight. - Ensuring explicit sorting of events for grid layout.
This commit is contained in:
parent
b590467f60
commit
faa59f6a3c
19 changed files with 1502 additions and 55 deletions
77
scenarios/scenario-10.html
Normal file
77
scenarios/scenario-10.html
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="da">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Scenario 10: Four Column Grid</title>
|
||||
<link rel="stylesheet" href="scenario-styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="scenario-container">
|
||||
<a href="../stacking-visualization-new.html" class="back-link">← Back to All Scenarios</a>
|
||||
|
||||
<div class="scenario-header">
|
||||
<h1 class="scenario-title">Scenario 10: Four Column Grid</h1>
|
||||
<div id="test-results"></div>
|
||||
</div>
|
||||
|
||||
<div class="scenario-description">
|
||||
<h3>Description</h3>
|
||||
<p>Four events all starting at exactly the same time (14:00). Tests maximum column sharing with a 4-column grid layout.</p>
|
||||
|
||||
<div class="expected-result">
|
||||
<strong>Expected Result:</strong><br>
|
||||
Grid group with 4 columns at stackLevel=0<br>
|
||||
Event A: in grid<br>
|
||||
Event B: in grid<br>
|
||||
Event C: in grid<br>
|
||||
Event D: in grid
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="calendar-column">
|
||||
<swp-event-group class="cols-4 stack-level-0" data-stack-link="{"stackLevel":0}" style="top: 561px; margin-left: 0px; z-index: 100;">
|
||||
<div style="position: relative;">
|
||||
<swp-event data-event-id="S10A" data-title="Scenario 10: Event A" data-start="2025-10-10T12:00:00.000Z" data-end="2025-10-10T13:00:00.000Z" data-type="work" data-duration="60" style="position: absolute; top: 0px; height: 77px; left: 0px; right: 0px;">
|
||||
<swp-event-time data-duration="60">14:00 - 15:00</swp-event-time>
|
||||
<swp-event-title>Scenario 10: Event A</swp-event-title>
|
||||
</swp-event>
|
||||
</div>
|
||||
<div style="position: relative;">
|
||||
<swp-event data-event-id="S10B" data-title="Scenario 10: Event B" data-start="2025-10-10T12:00:00.000Z" data-end="2025-10-10T13:00:00.000Z" data-type="work" data-duration="60" style="position: absolute; top: 0px; height: 77px; left: 0px; right: 0px;">
|
||||
<swp-event-time data-duration="60">14:00 - 15:00</swp-event-time>
|
||||
<swp-event-title>Scenario 10: Event B</swp-event-title>
|
||||
</swp-event>
|
||||
</div>
|
||||
<div style="position: relative;">
|
||||
<swp-event data-event-id="S10C" data-title="Scenario 10: Event C" data-start="2025-10-10T12:00:00.000Z" data-end="2025-10-10T13:00:00.000Z" data-type="work" data-duration="60" style="position: absolute; top: 0px; height: 77px; left: 0px; right: 0px;">
|
||||
<swp-event-time data-duration="60">14:00 - 15:00</swp-event-time>
|
||||
<swp-event-title>Scenario 10: Event C</swp-event-title>
|
||||
</swp-event>
|
||||
</div>
|
||||
<div style="position: relative;">
|
||||
<swp-event data-event-id="S10D" data-title="Scenario 10: Event D" data-start="2025-10-10T12:00:00.000Z" data-end="2025-10-10T13:00:00.000Z" data-type="work" data-duration="60" style="position: absolute; top: 0px; height: 77px; left: 0px; right: 0px;">
|
||||
<swp-event-time data-duration="60">14:00 - 15:00</swp-event-time>
|
||||
<swp-event-title>Scenario 10: Event D</swp-event-title>
|
||||
</swp-event>
|
||||
</div>
|
||||
</swp-event-group>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="module">
|
||||
import { ScenarioTestRunner } from './scenario-test-runner.js';
|
||||
|
||||
window.scenarioTests = {
|
||||
id: 'scenario-10',
|
||||
expected: [
|
||||
{ eventId: 'S10A', stackLevel: 0, cols: 4, type: 'grid' },
|
||||
{ eventId: 'S10B', stackLevel: 0, cols: 4, type: 'grid' },
|
||||
{ eventId: 'S10C', stackLevel: 0, cols: 4, type: 'grid' },
|
||||
{ eventId: 'S10D', stackLevel: 0, cols: 4, type: 'grid' }
|
||||
]
|
||||
};
|
||||
</script>
|
||||
<script type="module" src="scenario-test-runner.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue