Skip to content

Commit 2562897

Browse files
committed
Toggle local/UTC time display
fixes #26
1 parent 0743272 commit 2562897

File tree

4 files changed

+52
-8
lines changed

4 files changed

+52
-8
lines changed

QuartzNetWebConsole.Views/Helpers.vb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,12 @@
66
</form>
77
End Function
88

9-
Public ReadOnly Stylesheet As XElement = <link rel="stylesheet" type="text/css" href="static.ashx?r=styles.css&amp;t=text%2Fcss"/>
9+
Public ReadOnly Stylesheet As XElement() = _
10+
<x>
11+
<link rel="stylesheet" type="text/css" href="static.ashx?r=styles.css&amp;t=text%2Fcss"/>
12+
<button id="time-toggle" style="position: fixed; top: 10px; right: 10px;">Toogle local/UTC time</button>
13+
<script src="static.ashx?r=time-toggle.js&amp;t=application%2Fjavascript"></script>
14+
</x>.Elements.ToArray()
1015

1116
Public Function YesNo(b As Boolean) As String
1217
Return If(b, "Yes", "No")

QuartzNetWebConsole.Views/Views.vb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Public Module Views
4343
<%= From e In logs
4444
Select
4545
<tr>
46-
<td><%= e.Timestamp %></td>
46+
<td class="datetime"><%= e.Timestamp %></td>
4747
<td><%= X.Raw(e.Description) %></td>
4848
</tr>
4949
%>
@@ -82,7 +82,7 @@ Public Module Views
8282
Job store: <%= metadata.JobStoreType %><br/>
8383
Supports persistence: <%= YesNo(metadata.JobStoreSupportsPersistence) %><br/>
8484
Number of jobs executed: <%= metadata.NumberOfJobsExecuted %><br/>
85-
Running since: <%= metadata.RunningSince %><br/>
85+
Running since: <span class="datetime"><%= metadata.RunningSince %></span><br/>
8686
Status: <%= If(inStandby, "stand-by", "running") %>
8787
<br/>
8888
<a href="log.ashx">View log</a>
@@ -301,7 +301,7 @@ Public Module Views
301301
<td><%= YesNo(j.Job.PersistJobDataAfterExecution) %></td>
302302
<td><%= YesNo(j.Job.ConcurrentExecutionDisallowed) %></td>
303303
<td><%= YesNo(j.Job.RequestsRecovery) %></td>
304-
<td><%= If(j.JobContext IsNot Nothing, j.JobContext.FireTimeUtc, Nothing) %></td>
304+
<td class="datetime"><%= If(j.JobContext IsNot Nothing, j.JobContext.FireTimeUtc, Nothing) %></td>
305305
<td>
306306
<a href=<%= "triggersByJob.ashx?group=" + j.Job.Key.Group + "&job=" + j.Job.Key.Name %>>Triggers</a>
307307
<%= SimpleForm(op("DeleteJob"), "Delete") %>
@@ -382,10 +382,10 @@ Public Module Views
382382
<%= trigger.JobKey.Group %>
383383
</a>
384384
</td>
385-
<td><%= trigger.StartTimeUtc %></td>
386-
<td><%= trigger.EndTimeUtc %></td>
387-
<td><%= trigger.FinalFireTimeUtc %></td>
388-
<td><%= trigger.GetNextFireTimeUtc() %></td>
385+
<td class="datetime"><%= trigger.StartTimeUtc %></td>
386+
<td class="datetime"><%= trigger.EndTimeUtc %></td>
387+
<td class="datetime"><%= trigger.FinalFireTimeUtc %></td>
388+
<td class="datetime"><%= trigger.GetNextFireTimeUtc() %></td>
389389
<td><%= If(simpleTrigger IsNot Nothing, simpleTrigger.RepeatCount.ToString, "") %></td>
390390
<td><%= If(simpleTrigger IsNot Nothing, simpleTrigger.RepeatInterval.ToString, "") %></td>
391391
<td><%= If(simpleTrigger IsNot Nothing, simpleTrigger.TimesTriggered.ToString, "") %></td>

QuartzNetWebConsole/QuartzNetWebConsole.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,6 @@
3232

3333
<ItemGroup>
3434
<EmbeddedResource Include="Resources\styles.css" />
35+
<EmbeddedResource Include="Resources\time-toggle.js" />
3536
</ItemGroup>
3637
</Project>
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
document.addEventListener('DOMContentLoaded', function() {
2+
const timeToggle = document.getElementById('time-toggle');
3+
let isUTC = true;
4+
const originalTimes = new Map();
5+
6+
function convertTime(timeElement) {
7+
const originalTime = originalTimes.get(timeElement);
8+
if (!originalTime) {
9+
return;
10+
}
11+
12+
const date = new Date(Date.parse(originalTime));
13+
if (isNaN(date.getTime())) {
14+
return;
15+
}
16+
timeElement.textContent = (function() {
17+
if (isUTC) {
18+
return date.toISOString();
19+
} else {
20+
return date.toLocaleString();
21+
}
22+
})();
23+
}
24+
25+
function toggleTime() {
26+
isUTC = !isUTC;
27+
const timeElements = document.querySelectorAll('.datetime');
28+
29+
for (const timeElement of timeElements) {
30+
if (!originalTimes.has(timeElement)) {
31+
originalTimes.set(timeElement, timeElement.textContent);
32+
}
33+
convertTime(timeElement);
34+
}
35+
}
36+
37+
timeToggle.addEventListener('click', toggleTime);
38+
});

0 commit comments

Comments
 (0)