@@ -297,22 +297,26 @@ void renderJourneyTimeline(JourneyEvent[] events)
297297 return ;
298298
299299 html.put(
300+ ` <style>` ~
301+ ` .journey-timeline { margin-bottom: 1em; }` ~
302+ ` .journey-timeline h3 { margin: 0 0 0.5em 0; }` ~
303+ ` .journey-events { border-top: 2px solid #E6E6E6; font-family: Consolas, Lucida Console, Menlo, monospace; font-size: 0.9em; }` ~
304+ ` .journey-event { padding: 0.5em 0.75em; border-left: 4px solid #E6E6E6; border-right: 2px solid #E6E6E6; background: #FCFCFC; border-bottom: 1px solid #E6E6E6; }` ~
305+ ` .journey-event:last-child { border-bottom: 2px solid #E6E6E6; }` ~
306+ ` .journey-event.success { border-left-color: #5A5; background: #F5FFF5; }` ~
307+ ` .journey-event.failure { border-left-color: #A55; background: #FFF5F5; }` ~
308+ ` .journey-event.info { border-left-color: #58A; background: #F5F9FF; }` ~
309+ ` .journey-event.spam_detail { border-left-color: #A85; background: #FFFAF5; padding: 0.33em 0.75em; }` ~
310+ ` .journey-event.log_file { border-left-color: #85A; background: #F5F5F5; }` ~
311+ ` .journey-event.log_file:not(:first-child) { margin-top: 1em; border-top: 2px solid #E6E6E6; }` ~
312+ ` .journey-timestamp { color: #666; font-size: 0.95em; }` ~
313+ ` .journey-message { font-weight: bold; }` ~
314+ ` .journey-details { color: #666; font-size: 0.95em; margin-top: 0.25em; }` ~
315+ ` .journey-source { color: #999; font-size: 0.9em; float: right; }` ~
316+ ` </style>` ~
300317 ` <div class="journey-timeline">` ~
301318 ` <h3>User Journey</h3>` ~
302- ` <style>` ~
303- ` .journey-timeline { margin: 20px 0; padding: 15px; background: #f9f9f9; border: 1px solid #ddd; border-radius: 4px; }` ~
304- ` .journey-timeline h3 { margin-top: 0; color: #333; }` ~
305- ` .journey-event { margin: 10px 0; padding: 10px; background: white; border-left: 4px solid #ccc; }` ~
306- ` .journey-event.success { border-left-color: #4caf50; }` ~
307- ` .journey-event.failure { border-left-color: #f44336; }` ~
308- ` .journey-event.info { border-left-color: #2196f3; }` ~
309- ` .journey-event.spam_detail { border-left-color: #ff9800; background: #fff3e0; margin: 5px 0; padding: 6px 10px; }` ~
310- ` .journey-event.log_file { border-left-color: #9c27b0; background: #f3e5f5; margin-top: 20px; }` ~
311- ` .journey-timestamp { font-family: monospace; color: #666; font-size: 0.9em; }` ~
312- ` .journey-message { font-weight: bold; margin: 5px 0; }` ~
313- ` .journey-details { color: #555; font-size: 0.95em; font-family: monospace; }` ~
314- ` .journey-source { font-family: monospace; color: #888; font-size: 0.85em; float: right; }` ~
315- ` </style>`
319+ ` <div class="journey-events">`
316320 );
317321
318322 foreach (event; events)
@@ -341,14 +345,14 @@ void renderJourneyTimeline(JourneyEvent[] events)
341345
342346 if (event.timestamp.length > 0 )
343347 {
344- html.put(` <div class="journey-timestamp">` );
348+ html.put(` <span class="journey-timestamp">` );
345349 html.putEncodedEntities(event.timestamp);
346- html.put(` </div >` );
350+ html.put(` </span >` );
347351 }
348352
349- html.put(` <div class="journey-message">` );
353+ html.put(` <span class="journey-message">` );
350354 html.putEncodedEntities(event.message);
351- html.put(` </div >` );
355+ html.put(` </span >` );
352356
353357 if (event.details.length > 0 )
354358 {
@@ -359,7 +363,7 @@ void renderJourneyTimeline(JourneyEvent[] events)
359363 html.put(` </div>` );
360364 }
361365
362- html.put(` </div>` );
366+ html.put(` </div></div> ` );
363367}
364368
365369void discussionModeration (Rfc850Post post, UrlParameters postVars)
0 commit comments