Selaa lähdekoodia

deleted unused fiels.

master
yangxiaodong 7 vuotta sitten
vanhempi
commit
ad9fece8dd
12 muutettua tiedostoa jossa 0 lisäystä ja 999 poistoa
  1. +0
    -57
      src/DotNetCore.CAP/Dashboard/JobsSidebarMenu.cs
  2. +0
    -18
      src/DotNetCore.CAP/Dashboard/Monitoring/EnqueuedJobDto.cs
  3. +0
    -21
      src/DotNetCore.CAP/Dashboard/Monitoring/FailedJobDto.cs
  4. +0
    -12
      src/DotNetCore.CAP/Dashboard/Monitoring/FetchedJobDto.cs
  5. +0
    -15
      src/DotNetCore.CAP/Dashboard/Monitoring/JobDetailsDto.cs
  6. +0
    -12
      src/DotNetCore.CAP/Dashboard/Monitoring/JobList.cs
  7. +0
    -18
      src/DotNetCore.CAP/Dashboard/Monitoring/ProcessingJobDto.cs
  8. +0
    -18
      src/DotNetCore.CAP/Dashboard/Monitoring/ScheduledJobDto.cs
  9. +0
    -19
      src/DotNetCore.CAP/Dashboard/Monitoring/SucceededJobDto.cs
  10. +0
    -122
      src/DotNetCore.CAP/Dashboard/Pages/QueuesPage.cshtml
  11. +0
    -574
      src/DotNetCore.CAP/Dashboard/Pages/QueuesPage.generated.cs
  12. +0
    -113
      src/DotNetCore.CAP/Dashboard/Pages/SucceededJobs.cshtml

+ 0
- 57
src/DotNetCore.CAP/Dashboard/JobsSidebarMenu.cs Näytä tiedosto

@@ -1,57 +0,0 @@
using System;
using System.Collections.Generic;
using DotNetCore.CAP.Dashboard.Resources;

namespace DotNetCore.CAP.Dashboard
{
public static class JobsSidebarMenu
{
public static readonly List<Func<RazorPage, MenuItem>> Items
= new List<Func<RazorPage, MenuItem>>();

static JobsSidebarMenu()
{
Items.Add(page => new MenuItem(Strings.JobsSidebarMenu_Enqueued, page.Url.LinkToQueues())
{
Active = page.RequestPath.StartsWith("/jobs/enqueued"),
Metric = DashboardMetrics.EnqueuedAndQueueCount
});

Items.Add(page => new MenuItem(Strings.JobsSidebarMenu_Scheduled, page.Url.To("/jobs/scheduled"))
{
Active = page.RequestPath.StartsWith("/jobs/scheduled"),
Metric = DashboardMetrics.ScheduledCount
});

Items.Add(page => new MenuItem(Strings.JobsSidebarMenu_Processing, page.Url.To("/jobs/processing"))
{
Active = page.RequestPath.StartsWith("/jobs/processing"),
Metric = DashboardMetrics.ProcessingCount
});

Items.Add(page => new MenuItem(Strings.JobsSidebarMenu_Succeeded, page.Url.To("/jobs/succeeded"))
{
Active = page.RequestPath.StartsWith("/jobs/succeeded"),
Metric = DashboardMetrics.SucceededCount
});

Items.Add(page => new MenuItem(Strings.JobsSidebarMenu_Failed, page.Url.To("/jobs/failed"))
{
Active = page.RequestPath.StartsWith("/jobs/failed"),
Metric = DashboardMetrics.FailedCount
});

Items.Add(page => new MenuItem(Strings.JobsSidebarMenu_Deleted, page.Url.To("/jobs/deleted"))
{
Active = page.RequestPath.StartsWith("/jobs/deleted"),
Metric = DashboardMetrics.DeletedCount
});

Items.Add(page => new MenuItem(Strings.JobsSidebarMenu_Awaiting, page.Url.To("/jobs/awaiting"))
{
Active = page.RequestPath.StartsWith("/jobs/awaiting"),
Metric = DashboardMetrics.AwaitingCount
});
}
}
}

+ 0
- 18
src/DotNetCore.CAP/Dashboard/Monitoring/EnqueuedJobDto.cs Näytä tiedosto

@@ -1,18 +0,0 @@
using System;
using DotNetCore.CAP.Models;

namespace DotNetCore.CAP.Dashboard.Monitoring
{
public class EnqueuedJobDto
{
public EnqueuedJobDto()
{
InEnqueuedState = true;
}

public Message Message { get; set; }
public string State { get; set; }
public DateTime? EnqueuedAt { get; set; }
public bool InEnqueuedState { get; set; }
}
}

+ 0
- 21
src/DotNetCore.CAP/Dashboard/Monitoring/FailedJobDto.cs Näytä tiedosto

@@ -1,21 +0,0 @@
using System;
using DotNetCore.CAP.Models;

namespace DotNetCore.CAP.Dashboard.Monitoring
{
public class FailedJobDto
{
public FailedJobDto()
{
InFailedState = true;
}

public Message Message { get; set; }
public string Reason { get; set; }
public DateTime? FailedAt { get; set; }
public string ExceptionType { get; set; }
public string ExceptionMessage { get; set; }
public string ExceptionDetails { get; set; }
public bool InFailedState { get; set; }
}
}

+ 0
- 12
src/DotNetCore.CAP/Dashboard/Monitoring/FetchedJobDto.cs Näytä tiedosto

@@ -1,12 +0,0 @@
using System;
using DotNetCore.CAP.Models;

namespace DotNetCore.CAP.Dashboard.Monitoring
{
public class FetchedJobDto
{
public Message Message { get; set; }
public string State { get; set; }
public DateTime? FetchedAt { get; set; }
}
}

+ 0
- 15
src/DotNetCore.CAP/Dashboard/Monitoring/JobDetailsDto.cs Näytä tiedosto

@@ -1,15 +0,0 @@
using System;
using System.Collections.Generic;
using DotNetCore.CAP.Models;

namespace DotNetCore.CAP.Dashboard.Monitoring
{
public class JobDetailsDto
{
public Message Message { get; set; }
public DateTime? CreatedAt { get; set; }
public IDictionary<string, string> Properties { get; set; }
public IList<StateHistoryDto> History { get; set; }
public DateTime? ExpireAt { get; set; }
}
}

+ 0
- 12
src/DotNetCore.CAP/Dashboard/Monitoring/JobList.cs Näytä tiedosto

@@ -1,12 +0,0 @@
using System.Collections.Generic;

namespace DotNetCore.CAP.Dashboard.Monitoring
{
public class JobList<TDto> : List<KeyValuePair<string, TDto>>
{
public JobList(IEnumerable<KeyValuePair<string, TDto>> source)
: base(source)
{
}
}
}

+ 0
- 18
src/DotNetCore.CAP/Dashboard/Monitoring/ProcessingJobDto.cs Näytä tiedosto

@@ -1,18 +0,0 @@
using System;
using DotNetCore.CAP.Models;

namespace DotNetCore.CAP.Dashboard.Monitoring
{
public class ProcessingJobDto
{
public ProcessingJobDto()
{
InProcessingState = true;
}

public Message Message { get; set; }
public bool InProcessingState { get; set; }
public string ServerId { get; set; }
public DateTime? StartedAt { get; set; }
}
}

+ 0
- 18
src/DotNetCore.CAP/Dashboard/Monitoring/ScheduledJobDto.cs Näytä tiedosto

@@ -1,18 +0,0 @@
using System;
using DotNetCore.CAP.Models;

namespace DotNetCore.CAP.Dashboard.Monitoring
{
public class ScheduledJobDto
{
public ScheduledJobDto()
{
InScheduledState = true;
}

public Message Message { get; set; }
public DateTime EnqueueAt { get; set; }
public DateTime? ScheduledAt { get; set; }
public bool InScheduledState { get; set; }
}
}

+ 0
- 19
src/DotNetCore.CAP/Dashboard/Monitoring/SucceededJobDto.cs Näytä tiedosto

@@ -1,19 +0,0 @@
using System;
using DotNetCore.CAP.Models;

namespace DotNetCore.CAP.Dashboard.Monitoring
{
public class SucceededJobDto
{
public SucceededJobDto()
{
InSucceededState = true;
}

public Message Message { get; set; }
public object Result { get; set; }
public long? TotalDuration { get; set; }
public DateTime? SucceededAt { get; set; }
public bool InSucceededState { get; set; }
}
}

+ 0
- 122
src/DotNetCore.CAP/Dashboard/Pages/QueuesPage.cshtml Näytä tiedosto

@@ -1,122 +0,0 @@
@* Generator: Template TypeVisibility: Internal GeneratePrettyNames: True *@
@using System.Linq
@using DotNetCore.CAP.Dashboard
@using DotNetCore.CAP.Dashboard.Pages
@using DotNetCore.CAP.Dashboard.Resources
@inherits RazorPage
@{
Layout = new LayoutPage(Strings.QueuesPage_Title);

var monitor = Storage.GetMonitoringApi();
var queues = monitor.Queues();
}

<div class="row">
<div class="col-md-3">
@Html.JobsSidebar()
</div>
<div class="col-md-9">
<h1 class="page-header">@Strings.QueuesPage_Title</h1>

@if (queues.Count == 0)
{
<div class="alert alert-warning">
@Strings.QueuesPage_NoQueues
</div>
}
else
{
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th style="min-width: 200px;">@Strings.QueuesPage_Table_Queue</th>
<th>@Strings.QueuesPage_Table_Length</th>
<th>@Strings.Common_Fetched</th>
<th>@Strings.QueuesPage_Table_NextsJobs</th>
</tr>
</thead>
<tbody>
@foreach (var queue in queues)
{
<tr>
<td>@Html.QueueLabel(queue.Name)</td>
<td>@queue.Length</td>
<td>
@if (queue.Fetched.HasValue)
{
<a href="@Url.To("/jobs/enqueued/fetched/" + queue.Name)">
@queue.Fetched
</a>
}
else
{
<em>@Strings.Common_NotAvailable</em>
}
</td>
<td>
@if (queue.FirstJobs.Count == 0)
{
<em>
@Strings.QueuesPage_NoJobs
</em>
}
else
{
<table class="table table-condensed table-inner">
<thead>
<tr>
<th class="min-width">@Strings.Common_Id</th>
<th class="min-width">@Strings.Common_State</th>
<th>@Strings.Common_Job</th>
<th class="align-right min-width">@Strings.Common_Enqueued</th>
</tr>
</thead>
<tbody>
@foreach (var job in queue.FirstJobs)
{
<tr class="@(job.Value == null || !job.Value.InEnqueuedState ? "obsolete-data" : null)">
<td class="min-width">
@Html.JobIdLink(job.Key)
@if (job.Value != null && !job.Value.InEnqueuedState)
{
<span title="@Strings.Common_JobStateChanged_Text" class="glyphicon glyphicon-question-sign"></span>
}
</td>
@if (job.Value == null)
{
<td colspan="3"><em>@Strings.Common_JobExpired</em></td>
}
else
{
<td class="min-width">
@Html.StateLabel(job.Value.State)
</td>
<td class="word-break">
@Html.JobNameLink(job.Key, job.Value.Message)
</td>
<td class="align-right min-width">
@if (job.Value.EnqueuedAt.HasValue)
{
@Html.RelativeTime(job.Value.EnqueuedAt.Value)
}
else
{
<em>@Strings.Common_NotAvailable</em>
}
</td>
}
</tr>
}
</tbody>
</table>
}
</td>
</tr>
}
</tbody>
</table>
</div>
}
</div>
</div>

+ 0
- 574
src/DotNetCore.CAP/Dashboard/Pages/QueuesPage.generated.cs Näytä tiedosto

@@ -1,574 +0,0 @@
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace DotNetCore.CAP.Dashboard.Pages
{
using System;
using System.Collections.Generic;
#line 2 "..\..\Dashboard\Pages\QueuesPage.cshtml"
using System.Linq;
#line default
#line hidden
using System.Text;
#line 3 "..\..\Dashboard\Pages\QueuesPage.cshtml"
using DotNetCore.CAP.Dashboard;
#line default
#line hidden
#line 4 "..\..\Dashboard\Pages\QueuesPage.cshtml"
using DotNetCore.CAP.Dashboard.Pages;
#line default
#line hidden
#line 5 "..\..\Dashboard\Pages\QueuesPage.cshtml"
using DotNetCore.CAP.Dashboard.Resources;
#line default
#line hidden
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")]
internal partial class QueuesPage : RazorPage
{
#line hidden

public override void Execute()
{


WriteLiteral("\r\n");







#line 7 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Layout = new LayoutPage(Strings.QueuesPage_Title);

var monitor = Storage.GetMonitoringApi();
var queues = monitor.Queues();


#line default
#line hidden
WriteLiteral("\r\n<div class=\"row\">\r\n <div class=\"col-md-3\">\r\n ");


#line 16 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Html.JobsSidebar());

#line default
#line hidden
WriteLiteral("\r\n </div>\r\n <div class=\"col-md-9\">\r\n <h1 class=\"page-header\">");


#line 19 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Strings.QueuesPage_Title);

#line default
#line hidden
WriteLiteral("</h1>\r\n\r\n");


#line 21 "..\..\Dashboard\Pages\QueuesPage.cshtml"
if (queues.Count == 0)
{

#line default
#line hidden
WriteLiteral(" <div class=\"alert alert-warning\">\r\n ");


#line 24 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Strings.QueuesPage_NoQueues);

#line default
#line hidden
WriteLiteral("\r\n </div>\r\n");


#line 26 "..\..\Dashboard\Pages\QueuesPage.cshtml"
}
else
{

#line default
#line hidden
WriteLiteral(" <div class=\"table-responsive\">\r\n <table class=\"table t" +
"able-striped\">\r\n <thead>\r\n <tr>\r\n " +
" <th style=\"min-width: 200px;\">");


#line 33 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Strings.QueuesPage_Table_Queue);

#line default
#line hidden
WriteLiteral("</th>\r\n <th>");


#line 34 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Strings.QueuesPage_Table_Length);

#line default
#line hidden
WriteLiteral("</th>\r\n <th>");


#line 35 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Strings.Common_Fetched);

#line default
#line hidden
WriteLiteral("</th>\r\n <th>");


#line 36 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Strings.QueuesPage_Table_NextsJobs);

#line default
#line hidden
WriteLiteral("</th>\r\n </tr>\r\n </thead>\r\n " +
" <tbody>\r\n");


#line 40 "..\..\Dashboard\Pages\QueuesPage.cshtml"
foreach (var queue in queues)
{

#line default
#line hidden
WriteLiteral(" <tr>\r\n <td>");


#line 43 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Html.QueueLabel(queue.Name));

#line default
#line hidden
WriteLiteral("</td>\r\n <td>");


#line 44 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(queue.Length);

#line default
#line hidden
WriteLiteral("</td>\r\n <td>\r\n");


#line 46 "..\..\Dashboard\Pages\QueuesPage.cshtml"
if (queue.Fetched.HasValue)
{

#line default
#line hidden
WriteLiteral(" <a href=\"");


#line 48 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Url.To("/jobs/enqueued/fetched/" + queue.Name));

#line default
#line hidden
WriteLiteral("\">\r\n ");


#line 49 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(queue.Fetched);

#line default
#line hidden
WriteLiteral("\r\n </a>\r\n");


#line 51 "..\..\Dashboard\Pages\QueuesPage.cshtml"
}
else
{

#line default
#line hidden
WriteLiteral(" <em>");


#line 54 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Strings.Common_NotAvailable);

#line default
#line hidden
WriteLiteral("</em>\r\n");


#line 55 "..\..\Dashboard\Pages\QueuesPage.cshtml"
}

#line default
#line hidden
WriteLiteral(" </td>\r\n <td>\r\n");


#line 58 "..\..\Dashboard\Pages\QueuesPage.cshtml"
if (queue.FirstJobs.Count == 0)
{

#line default
#line hidden
WriteLiteral(" <em>\r\n " +
" ");


#line 61 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Strings.QueuesPage_NoJobs);

#line default
#line hidden
WriteLiteral("\r\n </em>\r\n");


#line 63 "..\..\Dashboard\Pages\QueuesPage.cshtml"
}
else
{

#line default
#line hidden
WriteLiteral(@" <table class=""table table-condensed table-inner"">
<thead>
<tr>
<th class=""min-width"">");


#line 69 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Strings.Common_Id);

#line default
#line hidden
WriteLiteral("</th>\r\n <th class=\"min-width\">" +
"");


#line 70 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Strings.Common_State);

#line default
#line hidden
WriteLiteral("</th>\r\n <th>");


#line 71 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Strings.Common_Job);

#line default
#line hidden
WriteLiteral("</th>\r\n <th class=\"align-right" +
" min-width\">");


#line 72 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Strings.Common_Enqueued);

#line default
#line hidden
WriteLiteral("</th>\r\n </tr>\r\n " +
" </thead>\r\n <" +
"tbody>\r\n");


#line 76 "..\..\Dashboard\Pages\QueuesPage.cshtml"
foreach (var job in queue.FirstJobs)
{

#line default
#line hidden
WriteLiteral(" <tr class=\"");


#line 78 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(job.Value == null || !job.Value.InEnqueuedState ? "obsolete-data" : null);

#line default
#line hidden
WriteLiteral("\">\r\n <td class=\"min-width\"" +
">\r\n ");


#line 80 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Html.JobIdLink(job.Key));

#line default
#line hidden
WriteLiteral("\r\n");


#line 81 "..\..\Dashboard\Pages\QueuesPage.cshtml"
if (job.Value != null && !job.Value.InEnqueuedState)
{

#line default
#line hidden
WriteLiteral(" <span title=\"");


#line 83 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Strings.Common_JobStateChanged_Text);

#line default
#line hidden
WriteLiteral("\" class=\"glyphicon glyphicon-question-sign\"></span>\r\n");


#line 84 "..\..\Dashboard\Pages\QueuesPage.cshtml"
}

#line default
#line hidden
WriteLiteral(" </td>\r\n");


#line 86 "..\..\Dashboard\Pages\QueuesPage.cshtml"
if (job.Value == null)
{

#line default
#line hidden
WriteLiteral(" <td colspan=\"3\"><em>");


#line 88 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Strings.Common_JobExpired);

#line default
#line hidden
WriteLiteral("</em></td>\r\n");


#line 89 "..\..\Dashboard\Pages\QueuesPage.cshtml"
}
else
{

#line default
#line hidden
WriteLiteral(" <td class=\"min-width\"" +
">\r\n ");


#line 93 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Html.StateLabel(job.Value.State));

#line default
#line hidden
WriteLiteral("\r\n </td>\r\n");



WriteLiteral(" <td class=\"word-break" +
"\">\r\n ");


#line 96 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Html.JobNameLink(job.Key, job.Value.Message));

#line default
#line hidden
WriteLiteral("\r\n </td>\r\n");



WriteLiteral(" <td class=\"align-righ" +
"t min-width\">\r\n");


#line 99 "..\..\Dashboard\Pages\QueuesPage.cshtml"
if (job.Value.EnqueuedAt.HasValue)
{
#line default
#line hidden
#line 101 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Html.RelativeTime(job.Value.EnqueuedAt.Value));

#line default
#line hidden
#line 101 "..\..\Dashboard\Pages\QueuesPage.cshtml"
}
else
{

#line default
#line hidden
WriteLiteral(" <em>");


#line 105 "..\..\Dashboard\Pages\QueuesPage.cshtml"
Write(Strings.Common_NotAvailable);

#line default
#line hidden
WriteLiteral("</em>\r\n");


#line 106 "..\..\Dashboard\Pages\QueuesPage.cshtml"
}

#line default
#line hidden
WriteLiteral(" </td>\r\n");


#line 108 "..\..\Dashboard\Pages\QueuesPage.cshtml"
}

#line default
#line hidden
WriteLiteral(" </tr>\r\n");


#line 110 "..\..\Dashboard\Pages\QueuesPage.cshtml"
}

#line default
#line hidden
WriteLiteral(" </tbody>\r\n " +
" </table>\r\n");


#line 113 "..\..\Dashboard\Pages\QueuesPage.cshtml"
}

#line default
#line hidden
WriteLiteral(" </td>\r\n </tr>\r\n");


#line 116 "..\..\Dashboard\Pages\QueuesPage.cshtml"
}

#line default
#line hidden
WriteLiteral(" </tbody>\r\n </table>\r\n </div>\r\n");


#line 120 "..\..\Dashboard\Pages\QueuesPage.cshtml"
}

#line default
#line hidden
WriteLiteral(" </div>\r\n</div>");


}
}
}
#pragma warning restore 1591

+ 0
- 113
src/DotNetCore.CAP/Dashboard/Pages/SucceededJobs.cshtml Näytä tiedosto

@@ -1,113 +0,0 @@
@* Generator: Template TypeVisibility: Internal GeneratePrettyNames: True *@
@using System
@using DotNetCore.CAP.Dashboard
@using DotNetCore.CAP.Dashboard.Pages
@using DotNetCore.CAP.Dashboard.Resources
@inherits RazorPage
@{
Layout = new LayoutPage(Strings.SucceededJobsPage_Title);

int from, perPage;

int.TryParse(Query("from"), out from);
int.TryParse(Query("count"), out perPage);

var monitor = Storage.GetMonitoringApi();
var pager = new Pager(from, perPage, monitor.SucceededListCount());
var succeededJobs = monitor.SucceededJobs(pager.FromRecord, pager.RecordsPerPage);
}

<div class="row">
<div class="col-md-3">
@Html.JobsSidebar()
</div>
<div class="col-md-9">
<h1 class="page-header">@Strings.SucceededJobsPage_Title</h1>

@if (pager.TotalPageCount == 0)
{
<div class="alert alert-info">
@Strings.SucceededJobsPage_NoJobs
</div>
}
else
{
<div class="js-jobs-list">
<div class="btn-toolbar btn-toolbar-top">
<button class="js-jobs-list-command btn btn-sm btn-primary"
data-url="@Url.To("/jobs/succeeded/requeue")"
data-loading-text="@Strings.Common_Enqueueing"
disabled="disabled">
<span class="glyphicon glyphicon-repeat"></span>
@Strings.Common_RequeueJobs
</button>

@Html.PerPageSelector(pager)
</div>

<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th class="min-width">
<input type="checkbox" class="js-jobs-list-select-all" />
</th>
<th class="min-width">@Strings.Common_Id</th>
<th>@Strings.Common_Job</th>
<th class="min-width">@Strings.SucceededJobsPage_Table_TotalDuration</th>
<th class="align-right">@Strings.SucceededJobsPage_Table_Succeeded</th>
</tr>
</thead>
<tbody>
@foreach (var job in succeededJobs)
{
<tr class="js-jobs-list-row @(job.Value == null || !job.Value.InSucceededState ? "obsolete-data" : null) @(job.Value != null && job.Value.InSucceededState ? "hover" : null)">
<td>
@if (job.Value == null || job.Value.InSucceededState)
{
<input type="checkbox" class="js-jobs-list-checkbox" name="jobs[]" value="@job.Key" />
}
</td>
<td class="min-width">
@Html.JobIdLink(job.Key)
@if (job.Value != null && !job.Value.InSucceededState)
{
<span title="@Strings.Common_JobStateChanged_Text" class="glyphicon glyphicon-question-sign"></span>
}
</td>

@if (job.Value == null)
{
<td colspan="3">
<em>@Strings.Common_JobExpired</em>
</td>
}
else
{
<td class="word-break">
@Html.JobNameLink(job.Key, job.Value.Job)
</td>
<td class="min-width align-right">
@if (job.Value.TotalDuration.HasValue)
{
@Html.ToHumanDuration(TimeSpan.FromMilliseconds(job.Value.TotalDuration.Value), false)
}
</td>
<td class="min-width align-right">
@if (job.Value.SucceededAt.HasValue)
{
@Html.RelativeTime(job.Value.SucceededAt.Value)
}
</td>
}
</tr>
}
</tbody>
</table>
</div>

@Html.Paginator(pager)
</div>
}
</div>
</div>

Ladataan…
Peruuta
Tallenna