fix: enrollment > enrolment

This commit is contained in:
Gary Sharp
2025-02-16 17:13:55 +11:00
parent 786d4809b5
commit 162ca20046
21 changed files with 160 additions and 160 deletions
+4 -4
View File
@@ -119,7 +119,7 @@ namespace Disco.Client
EnrolResponse response = null; EnrolResponse response = null;
// Build Request // Build Request
Presentation.UpdateStatus("Enrolling Device", "Building enrollment request and preparing to send data to the server.", true, -1); Presentation.UpdateStatus("Enrolling Device", "Building enrolment request and preparing to send data to the server.", true, -1);
request = new Enrol(); request = new Enrol();
request.Build(); request.Build();
@@ -127,11 +127,11 @@ namespace Disco.Client
do do
{ {
// Send Request // Send Request
Presentation.UpdateStatus("Enrolling Device", "Sending the enrollment request to the server.", true, -1); Presentation.UpdateStatus("Enrolling Device", "Sending the enrolment request to the server.", true, -1);
response = request.Post(Program.IsAuthenticated); response = request.Post(Program.IsAuthenticated);
// Process Response // Process Response
Presentation.UpdateStatus("Enrolling Device", "Processing the enrollment response from the server.", true, -1); Presentation.UpdateStatus("Enrolling Device", "Processing the enrolment response from the server.", true, -1);
response.Process(); response.Process();
if (response.IsPending) if (response.IsPending)
@@ -144,7 +144,7 @@ namespace Disco.Client
var secondsConsumed = (DateTimeOffset.Now - startTime).TotalSeconds; var secondsConsumed = (DateTimeOffset.Now - startTime).TotalSeconds;
var progress = (int)((secondsConsumed / totalSeconds) * 100); var progress = (int)((secondsConsumed / totalSeconds) * 100);
Presentation.UpdateStatus($"Pending Device Enrollment Approval: {response.PendingIdentifier}", $"Waiting for enrollment session '{response.PendingIdentifier}' to be approved.{Environment.NewLine}Reason: {response.PendingReason}", true, progress); Presentation.UpdateStatus($"Pending Device Enrolment Approval: {response.PendingIdentifier}", $"Waiting for enrolment session '{response.PendingIdentifier}' to be approved.{Environment.NewLine}Reason: {response.PendingReason}", true, progress);
System.Threading.Thread.Sleep(TimeSpan.FromSeconds(10)); System.Threading.Thread.Sleep(TimeSpan.FromSeconds(10));
} }
else else
+1 -1
View File
@@ -8,6 +8,6 @@ namespace Disco.Models.UI.Job
{ {
JobTableModel MyJobs { get; set; } JobTableModel MyJobs { get; set; }
JobTableModel StaleJobs { get; set; } JobTableModel StaleJobs { get; set; }
List<EnrolResponse> PendingEnrollments { get; set; } List<EnrolResponse> PendingEnrolments { get; set; }
} }
} }
@@ -47,7 +47,7 @@ namespace Disco.Services.Devices.Enrolment
{ {
get get
{ {
return "Device Enrollment"; return "Device Enrolment";
} }
} }
public override int ModuleId public override int ModuleId
@@ -340,7 +340,7 @@ namespace Disco.Services.Devices.Enrolment
Id = (int)EventTypeIds.SessionStarting, Id = (int)EventTypeIds.SessionStarting,
ModuleId = _ModuleId, ModuleId = _ModuleId,
Name = "Session Starting", Name = "Session Starting",
Format = "Starting '{2}' Enrollment for {1} (Session# {0})", Format = "Starting '{2}' Enrolment for {1} (Session# {0})",
Severity = 0, Severity = 0,
UseLive = true, UseLive = true,
UsePersist = true, UsePersist = true,
@@ -384,7 +384,7 @@ namespace Disco.Services.Devices.Enrolment
Id = (int)EventTypeIds.SessionPending, Id = (int)EventTypeIds.SessionPending,
ModuleId = _ModuleId, ModuleId = _ModuleId,
Name = "Session Pending", Name = "Session Pending",
Format = "Pending '{2}' Enrollment for {1} (Session# {0}; Reason: {3}; Identifier: {4})", Format = "Pending '{2}' Enrolment for {1} (Session# {0}; Reason: {3}; Identifier: {4})",
Severity = 0, Severity = 0,
UseLive = true, UseLive = true,
UsePersist = true, UsePersist = true,
@@ -395,7 +395,7 @@ namespace Disco.Services.Devices.Enrolment
Id = (int)EventTypeIds.SessionPendingApproved, Id = (int)EventTypeIds.SessionPendingApproved,
ModuleId = _ModuleId, ModuleId = _ModuleId,
Name = "Session Pending Approved", Name = "Session Pending Approved",
Format = "Pending enrollment approved by {1} (Session# {0}; Reason: {2})", Format = "Pending enrolment approved by {1} (Session# {0}; Reason: {2})",
Severity = 0, Severity = 0,
UseLive = true, UseLive = true,
UsePersist = true, UsePersist = true,
@@ -406,7 +406,7 @@ namespace Disco.Services.Devices.Enrolment
Id = (int)EventTypeIds.SessionPendingRejected, Id = (int)EventTypeIds.SessionPendingRejected,
ModuleId = _ModuleId, ModuleId = _ModuleId,
Name = "Session Pending Rejected", Name = "Session Pending Rejected",
Format = "Pending enrollment rejected by {1} (Session# {0}; Reason: {2})", Format = "Pending enrolment rejected by {1} (Session# {0}; Reason: {2})",
Severity = 0, Severity = 0,
UseLive = true, UseLive = true,
UsePersist = true, UsePersist = true,
@@ -417,7 +417,7 @@ namespace Disco.Services.Devices.Enrolment
Id = (int)EventTypeIds.SessionContinuing, Id = (int)EventTypeIds.SessionContinuing,
ModuleId = _ModuleId, ModuleId = _ModuleId,
Name = "Session Continuing", Name = "Session Continuing",
Format = "Continuing '{2}' Enrollment for {1} (Session# {0})", Format = "Continuing '{2}' Enrolment for {1} (Session# {0})",
Severity = 0, Severity = 0,
UseLive = true, UseLive = true,
UsePersist = true, UsePersist = true,
@@ -59,7 +59,7 @@ namespace Disco.Services.Devices.Enrolment
.ToList(); .ToList();
} }
public static void ResolvePendingEnrollment(string sessionId, bool approve, string username, string reason) public static void ResolvePendingEnrolment(string sessionId, bool approve, string username, string reason)
{ {
if (!pendingEnrolments.TryGetValue(sessionId, out var enrolResponse)) if (!pendingEnrolments.TryGetValue(sessionId, out var enrolResponse))
throw new InvalidOperationException("The pending session is invalid or has expired"); throw new InvalidOperationException("The pending session is invalid or has expired");
@@ -79,7 +79,7 @@ namespace Disco.Services.Devices.Enrolment
} }
else else
{ {
enrolResponse.ErrorMessage = $"Enrollment rejected"; enrolResponse.ErrorMessage = $"Enrolment rejected";
EnrolmentLog.LogSessionPendingRejected(sessionId, username, reason); EnrolmentLog.LogSessionPendingRejected(sessionId, username, reason);
} }
} }
@@ -6,14 +6,14 @@ using System.Web.Mvc;
namespace Disco.Web.Areas.API.Controllers namespace Disco.Web.Areas.API.Controllers
{ {
public partial class EnrollmentController : AuthorizedDatabaseController public partial class EnrolmentController : AuthorizedDatabaseController
{ {
[HttpPost] [HttpPost]
[ValidateAntiForgeryToken] [ValidateAntiForgeryToken]
[DiscoAuthorize(Claims.Device.Actions.EnrolDevices)] [DiscoAuthorize(Claims.Device.Actions.EnrolDevices)]
public virtual ActionResult ResolveSessionPending(string sessionId, bool approve, string reason) public virtual ActionResult ResolveSessionPending(string sessionId, bool approve, string reason)
{ {
WindowsDeviceEnrolment.ResolvePendingEnrollment(sessionId, approve, CurrentUser.UserId, reason); WindowsDeviceEnrolment.ResolvePendingEnrolment(sessionId, approve, CurrentUser.UserId, reason);
return new HttpStatusCodeResult(200); return new HttpStatusCodeResult(200);
} }
@@ -84,9 +84,9 @@
} }
@if (Authorization.Has(Claims.Config.Enrolment.Show)) @if (Authorization.Has(Claims.Config.Enrolment.Show))
{ {
<i class="fa fa-cog"></i>@Html.ActionLinkClass("Enrollment", MVC.Config.Enrolment.Index(), "config") <i class="fa fa-cog"></i>@Html.ActionLinkClass("Enrolment", MVC.Config.Enrolment.Index(), "config")
<div class="pageMenuBlurb"> <div class="pageMenuBlurb">
Configure Enrollment settings including secure credentials. Configure Enrolment settings including secure credentials.
</div> </div>
} }
</div> </div>
@@ -592,7 +592,7 @@ WriteLiteral("></i>");
#line hidden #line hidden
#line 87 "..\..\Areas\Config\Views\Config\Index.cshtml" #line 87 "..\..\Areas\Config\Views\Config\Index.cshtml"
Write(Html.ActionLinkClass("Enrollment", MVC.Config.Enrolment.Index(), "config")); Write(Html.ActionLinkClass("Enrolment", MVC.Config.Enrolment.Index(), "config"));
#line default #line default
@@ -608,8 +608,8 @@ WriteLiteral(" <div");
WriteLiteral(" class=\"pageMenuBlurb\""); WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(">\r\n Configure Enrollment settings including secure cre" + WriteLiteral(">\r\n Configure Enrolment settings including secure cred" +
"dentials.\r\n </div>\r\n"); "entials.\r\n </div>\r\n");
#line 91 "..\..\Areas\Config\Views\Config\Index.cshtml" #line 91 "..\..\Areas\Config\Views\Config\Index.cshtml"
@@ -1011,14 +1011,14 @@ WriteLiteral(" class=\"fa fa-cloud-download info\"");
WriteLiteral("></i>\r\n <div>An updated version of Disco is available</div>\r\n <a"); WriteLiteral("></i>\r\n <div>An updated version of Disco is available</div>\r\n <a");
WriteAttribute("href", Tuple.Create(" href=\"", 8682), Tuple.Create("\"", 8718) WriteAttribute("href", Tuple.Create(" href=\"", 8680), Tuple.Create("\"", 8716)
#line 162 "..\..\Areas\Config\Views\Config\Index.cshtml" #line 162 "..\..\Areas\Config\Views\Config\Index.cshtml"
, Tuple.Create(Tuple.Create("", 8689), Tuple.Create<System.Object, System.Int32>(Model.UpdateResponse.UrlLink , Tuple.Create(Tuple.Create("", 8687), Tuple.Create<System.Object, System.Int32>(Model.UpdateResponse.UrlLink
#line default #line default
#line hidden #line hidden
, 8689), false) , 8687), false)
); );
WriteLiteral(" class=\"button small alert\""); WriteLiteral(" class=\"button small alert\"");
@@ -5,7 +5,7 @@
var canConfig = Authorization.Has(Claims.Config.Enrolment.Configure); var canConfig = Authorization.Has(Claims.Config.Enrolment.Configure);
var canShowStatus = Authorization.Has(Claims.Config.Enrolment.ShowStatus); var canShowStatus = Authorization.Has(Claims.Config.Enrolment.ShowStatus);
ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Enrollment"); ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Device Enrolment");
} }
<div class="form" style="width: 530px;"> <div class="form" style="width: 530px;">
<table> <table>
@@ -45,7 +45,7 @@
return; return;
} else { } else {
$.ajax({ $.ajax({
url: '@Url.Action(MVC.API.Enrollment.PendingTimeoutMinutes())', url: '@Url.Action(MVC.API.Enrolment.PendingTimeoutMinutes())',
dataType: 'json', dataType: 'json',
method: 'POST', method: 'POST',
data: data, data: data,
@@ -76,8 +76,8 @@
<tr> <tr>
<td colspan="2"> <td colspan="2">
<span class="smallText"> <span class="smallText">
If a device enrollment is not automatically approved it will remain pending until the timeout is reached. If a device enrolment is not automatically approved it will remain pending until the timeout is reached.
Pending enrollments can be approved manually from the Enrollment Status page. Pending enrolments can be approved manually from the Enrolment Status page.
</span> </span>
</td> </td>
</tr> </tr>
@@ -215,7 +215,7 @@
<div class="code"> <div class="code">
curl&nbsp;<a target="_blank" href="http://disco:9292/Services/Client/Unauthenticated/MacSecureEnrol">http://disco:9292/Services/Client/Unauthenticated/MacSecureEnrol</a> curl&nbsp;<a target="_blank" href="http://disco:9292/Services/Client/Unauthenticated/MacSecureEnrol">http://disco:9292/Services/Client/Unauthenticated/MacSecureEnrol</a>
</div> </div>
<span class="smallText">This url will return a <a target="_blank" href="http://json.org/">JSON</a> response containing basic information about the enrollment.</span><br /> <span class="smallText">This url will return a <a target="_blank" href="http://json.org/">JSON</a> response containing basic information about the enrolment.</span><br />
<span class="smallMessage"> <span class="smallMessage">
This command makes use of <a target="_blank" href="http://curl.haxx.se/">cURL</a> (bundled with OSX). Other methods can also trigger a Mac Secure Enroll, This command makes use of <a target="_blank" href="http://curl.haxx.se/">cURL</a> (bundled with OSX). Other methods can also trigger a Mac Secure Enroll,
such as an anchor (<span class="code">&lt;a&gt;</span>) or <span class="code">&lt;script&gt;</span> such as an anchor (<span class="code">&lt;a&gt;</span>) or <span class="code">&lt;script&gt;</span>
@@ -227,7 +227,7 @@
</div> </div>
@if (canShowStatus && Authorization.Has(Claims.Config.Logging.Show)) @if (canShowStatus && Authorization.Has(Claims.Config.Logging.Show))
{ {
<h2>Live Enrollment Logging</h2> <h2>Live Enrolment Logging</h2>
@Html.Partial(MVC.Config.Shared.Views.LogEvents, new Disco.Web.Areas.Config.Models.Shared.LogEventsModel() @Html.Partial(MVC.Config.Shared.Views.LogEvents, new Disco.Web.Areas.Config.Models.Shared.LogEventsModel()
{ {
IsLive = true, IsLive = true,
@@ -244,6 +244,6 @@
} }
@if (canShowStatus) @if (canShowStatus)
{ {
@Html.ActionLinkButton("Enrollment Status", MVC.Config.Enrolment.Status()) @Html.ActionLinkButton("Enrolment Status", MVC.Config.Enrolment.Status())
} }
</div> </div>
@@ -51,7 +51,7 @@ namespace Disco.Web.Areas.Config.Views.Enrolment
var canConfig = Authorization.Has(Claims.Config.Enrolment.Configure); var canConfig = Authorization.Has(Claims.Config.Enrolment.Configure);
var canShowStatus = Authorization.Has(Claims.Config.Enrolment.ShowStatus); var canShowStatus = Authorization.Has(Claims.Config.Enrolment.ShowStatus);
ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Enrollment"); ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Device Enrolment");
#line default #line default
@@ -160,7 +160,7 @@ WriteLiteral(@">
#line 48 "..\..\Areas\Config\Views\Enrolment\Index.cshtml" #line 48 "..\..\Areas\Config\Views\Enrolment\Index.cshtml"
Write(Url.Action(MVC.API.Enrollment.PendingTimeoutMinutes())); Write(Url.Action(MVC.API.Enrolment.PendingTimeoutMinutes()));
#line default #line default
@@ -221,8 +221,8 @@ WriteLiteral(">\r\n <span");
WriteLiteral(" class=\"smallText\""); WriteLiteral(" class=\"smallText\"");
WriteLiteral(@"> WriteLiteral(@">
If a device enrollment is not automatically approved it will remain pending until the timeout is reached. If a device enrolment is not automatically approved it will remain pending until the timeout is reached.
Pending enrollments can be approved manually from the Enrollment Status page. Pending enrolments can be approved manually from the Enrolment Status page.
</span> </span>
</td> </td>
</tr> </tr>
@@ -562,8 +562,8 @@ WriteLiteral(" target=\"_blank\"");
WriteLiteral(" href=\"http://json.org/\""); WriteLiteral(" href=\"http://json.org/\"");
WriteLiteral(">JSON</a> response containing basic information about the enrollment.</span><br /" + WriteLiteral(">JSON</a> response containing basic information about the enrolment.</span><br />" +
">\r\n <span"); "\r\n <span");
WriteLiteral(" class=\"smallMessage\""); WriteLiteral(" class=\"smallMessage\"");
@@ -594,7 +594,7 @@ WriteLiteral(">&lt;script&gt;</span>\r\n tag embedded on the
#line default #line default
#line hidden #line hidden
WriteLiteral(" <h2>Live Enrollment Logging</h2>\r\n"); WriteLiteral(" <h2>Live Enrolment Logging</h2>\r\n");
#line 231 "..\..\Areas\Config\Views\Enrolment\Index.cshtml" #line 231 "..\..\Areas\Config\Views\Enrolment\Index.cshtml"
@@ -671,7 +671,7 @@ WriteLiteral(" ");
#line hidden #line hidden
#line 247 "..\..\Areas\Config\Views\Enrolment\Index.cshtml" #line 247 "..\..\Areas\Config\Views\Enrolment\Index.cshtml"
Write(Html.ActionLinkButton("Enrollment Status", MVC.Config.Enrolment.Status())); Write(Html.ActionLinkButton("Enrolment Status", MVC.Config.Enrolment.Status()));
#line default #line default
@@ -1,15 +1,15 @@
@{ @{
Authorization.Require(Claims.Config.Enrolment.ShowStatus); Authorization.Require(Claims.Config.Enrolment.ShowStatus);
ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Enrollment", MVC.Config.Enrolment.Index(), "Status"); ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Device Enrolment", MVC.Config.Enrolment.Index(), "Status");
Html.BundleDeferred("~/ClientScripts/Modules/Knockout"); Html.BundleDeferred("~/ClientScripts/Modules/Knockout");
Html.BundleDeferred("~/ClientScripts/Modules/jQuery-SignalR"); Html.BundleDeferred("~/ClientScripts/Modules/jQuery-SignalR");
Html.BundleDeferred("~/ClientScripts/Modules/jQuery-Isotope"); Html.BundleDeferred("~/ClientScripts/Modules/jQuery-Isotope");
} }
<div id="enrolStatus"> <div id="enrolStatus">
@Html.AntiForgeryToken(); @Html.AntiForgeryToken()
<div id="noSessions" data-bind="visible: noSessions"> <div id="noSessions" data-bind="visible: noSessions">
<h2>No enrollment sessions today</h2> <h2>No enrolment sessions today</h2>
</div> </div>
<div id="sessions" data-bind="visible: !noSessions(), foreach: { data: sessions, afterRender: sessionRendered, afterAdd: sessionAdded }" style="display: none"> <div id="sessions" data-bind="visible: !noSessions(), foreach: { data: sessions, afterRender: sessionRendered, afterAdd: sessionAdded }" style="display: none">
<div class="session" data-bind="style: { backgroundImage: deviceModelImageUrl }, click: select"> <div class="session" data-bind="style: { backgroundImage: deviceModelImageUrl }, click: select">
@@ -30,7 +30,7 @@
<p class="sessionStatus" data-bind="text: progressStatus"></p> <p class="sessionStatus" data-bind="text: progressStatus"></p>
<div data-bind="visible: !sessionEnded() && progressValue >= 0, progressValue: progressValue"></div> <div data-bind="visible: !sessionEnded() && progressValue >= 0, progressValue: progressValue"></div>
<div id="formResolveSessionPending" data-bind="visible: isPending"> <div id="formResolveSessionPending" data-bind="visible: isPending">
@using (Html.BeginForm(MVC.API.Enrollment.ResolveSessionPending(), FormMethod.Post)) @using (Html.BeginForm(MVC.API.Enrolment.ResolveSessionPending(), FormMethod.Post))
{ {
<code data-bind="text: pendingIdentifier"></code> <code data-bind="text: pendingIdentifier"></code>
@Html.AntiForgeryToken(); @Html.AntiForgeryToken();
@@ -208,7 +208,7 @@
self.select = function (e, d) { self.select = function (e, d) {
vm.currentSession(self); vm.currentSession(self);
hostDialogSessions.dialog('open'); hostDialogSessions.dialog('open');
hostDialogSessions.dialog('option', 'title', 'Device Enrollment: ' + self.title()); hostDialogSessions.dialog('option', 'title', 'Device Enrolment: ' + self.title());
} }
} }
@@ -254,19 +254,19 @@
session.pendingIdentifier(log.Arguments[4]); session.pendingIdentifier(log.Arguments[4]);
session.messages.unshift(log); session.messages.unshift(log);
session.progressValue(-1); session.progressValue(-1);
session.progressStatus('Pending enrollment approval'); session.progressStatus('Pending enrolment approval');
break; break;
case 15: // SessionPendingApproved case 15: // SessionPendingApproved
session.isPending(false); session.isPending(false);
session.messages.unshift(log); session.messages.unshift(log);
session.progressValue(-1); session.progressValue(-1);
session.progressStatus('Enrollment approval, waiting for client'); session.progressStatus('Enrolment approval, waiting for client');
break; break;
case 16: // SessionPendingRejected case 16: // SessionPendingRejected
session.isPending(false); session.isPending(false);
session.messages.unshift(log); session.messages.unshift(log);
session.progressValue(-1); session.progressValue(-1);
session.progressStatus('Enrollment rejected, waiting for client'); session.progressStatus('Enrolment rejected, waiting for client');
break; break;
case 17: // SessionContinuing case 17: // SessionContinuing
session.isPending(false); session.isPending(false);
@@ -276,12 +276,12 @@
session.sessionEnded(true); session.sessionEnded(true);
session.isPending(false); session.isPending(false);
if (session.hasError()) if (session.hasError())
session.progressStatus('Enrollment Finished with an Error'); session.progressStatus('Enrolment Finished with an Error');
else else
if (session.hasWarning()) if (session.hasWarning())
session.progressStatus('Enrollment Finished with a Warning'); session.progressStatus('Enrolment Finished with a Warning');
else else
session.progressStatus('Enrollment Finished Successfully'); session.progressStatus('Enrolment Finished Successfully');
session.messages.unshift(log); session.messages.unshift(log);
break; break;
case 21: // SessionDiagnosticInformation case 21: // SessionDiagnosticInformation
@@ -48,7 +48,7 @@ namespace Disco.Web.Areas.Config.Views.Enrolment
Authorization.Require(Claims.Config.Enrolment.ShowStatus); Authorization.Require(Claims.Config.Enrolment.ShowStatus);
ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Enrollment", MVC.Config.Enrolment.Index(), "Status"); ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Device Enrolment", MVC.Config.Enrolment.Index(), "Status");
Html.BundleDeferred("~/ClientScripts/Modules/Knockout"); Html.BundleDeferred("~/ClientScripts/Modules/Knockout");
Html.BundleDeferred("~/ClientScripts/Modules/jQuery-SignalR"); Html.BundleDeferred("~/ClientScripts/Modules/jQuery-SignalR");
Html.BundleDeferred("~/ClientScripts/Modules/jQuery-Isotope"); Html.BundleDeferred("~/ClientScripts/Modules/jQuery-Isotope");
@@ -71,13 +71,13 @@ Write(Html.AntiForgeryToken());
#line default #line default
#line hidden #line hidden
WriteLiteral(";\r\n <div"); WriteLiteral("\r\n <div");
WriteLiteral(" id=\"noSessions\""); WriteLiteral(" id=\"noSessions\"");
WriteLiteral(" data-bind=\"visible: noSessions\""); WriteLiteral(" data-bind=\"visible: noSessions\"");
WriteLiteral(">\r\n <h2>No enrollment sessions today</h2>\r\n </div>\r\n <div"); WriteLiteral(">\r\n <h2>No enrolment sessions today</h2>\r\n </div>\r\n <div");
WriteLiteral(" id=\"sessions\""); WriteLiteral(" id=\"sessions\"");
@@ -178,7 +178,7 @@ WriteLiteral(">\r\n");
#line hidden #line hidden
#line 33 "..\..\Areas\Config\Views\Enrolment\Status.cshtml" #line 33 "..\..\Areas\Config\Views\Enrolment\Status.cshtml"
using (Html.BeginForm(MVC.API.Enrollment.ResolveSessionPending(), FormMethod.Post)) using (Html.BeginForm(MVC.API.Enrolment.ResolveSessionPending(), FormMethod.Post))
{ {
@@ -514,76 +514,76 @@ WriteLiteral(")\';\r\n\r\n function pageViewModel() {\r\n var
"urn \'none, \' + deviceModelImage;\r\n });\r\n self.select = fun" + "urn \'none, \' + deviceModelImage;\r\n });\r\n self.select = fun" +
"ction (e, d) {\r\n vm.currentSession(self);\r\n hostDi" + "ction (e, d) {\r\n vm.currentSession(self);\r\n hostDi" +
"alogSessions.dialog(\'open\');\r\n hostDialogSessions.dialog(\'option\'" + "alogSessions.dialog(\'open\');\r\n hostDialogSessions.dialog(\'option\'" +
", \'title\', \'Device Enrollment: \' + self.title());\r\n }\r\n }\r\n\r\n " + ", \'title\', \'Device Enrolment: \' + self.title());\r\n }\r\n }\r\n\r\n " +
" function parseLog(log) {\r\n if (log.ModuleId === 50 && log.Argu" + " function parseLog(log) {\r\n if (log.ModuleId === 50 && log.Argum" +
"ments && log.Arguments.length > 0) {\r\n // find session\r\n " + "ents && log.Arguments.length > 0) {\r\n // find session\r\n " +
" var sessionId = log.Arguments[0];\r\n var session = vm.sessi" + " var sessionId = log.Arguments[0];\r\n var session = vm.sessio" +
"onIndex[sessionId];\r\n if (!session && log.EventTypeId === 10) { /" + "nIndex[sessionId];\r\n if (!session && log.EventTypeId === 10) { //" +
"/ Starting Session (Ignore \'partial\' sessions)\r\n session = ne" + " Starting Session (Ignore \'partial\' sessions)\r\n session = new" +
"w sessionViewModel(sessionId);\r\n vm.sessionIndex[sessionId] =" + " sessionViewModel(sessionId);\r\n vm.sessionIndex[sessionId] = " +
"session;\r\n vm.sessions.unshift(session);\r\n " + "session;\r\n vm.sessions.unshift(session);\r\n " +
" vm.noSessions(false);\r\n }\r\n if (session) {\r\n " + " vm.noSessions(false);\r\n }\r\n if (session) {\r\n " +
" switch (log.EventTypeId) {\r\n case 10: // " + " switch (log.EventTypeId) {\r\n case 10: // S" +
"SessionStarting\r\n session.title(log.Arguments[1]);\r\n " + "essionStarting\r\n session.title(log.Arguments[1]);\r\n " +
" session.startTime(log.FormattedTimestamp.substring(lo" + " session.startTime(log.FormattedTimestamp.substring(log" +
"g.FormattedTimestamp.indexOf(\' \') + 1));\r\n session.me" + ".FormattedTimestamp.indexOf(\' \') + 1));\r\n session.mes" +
"ssages.unshift(log);\r\n break;\r\n " + "sages.unshift(log);\r\n break;\r\n " +
" case 11: // SessionProgress\r\n //session.progressbar" + " case 11: // SessionProgress\r\n //session.progressbar." +
".progressbar(\'option\', \'value\', log.Arguments[1]);\r\n " + "progressbar(\'option\', \'value\', log.Arguments[1]);\r\n s" +
"session.progressValue(log.Arguments[1]);\r\n session.pr" + "ession.progressValue(log.Arguments[1]);\r\n session.pro" +
"ogressStatus(log.Arguments[2]);\r\n break;\r\n " + "gressStatus(log.Arguments[2]);\r\n break;\r\n " +
" case 12: // SessionDevice\r\n session.titl" + " case 12: // SessionDevice\r\n session.title" +
"e(log.Arguments[1]);\r\n session.serialNumber(log.Argum" + "(log.Arguments[1]);\r\n session.serialNumber(log.Argume" +
"ents[1]);\r\n if (log.Arguments.length >= 3 && log.Argu" + "nts[1]);\r\n if (log.Arguments.length >= 3 && log.Argum" +
"ments[2])\r\n session.deviceModelId(log.Arguments[2" + "ents[2])\r\n session.deviceModelId(log.Arguments[2]" +
"]);\r\n break;\r\n break;\r\n " + ");\r\n break;\r\n break;\r\n " +
" case 13: // SessionDeviceInfo\r\n " + " case 13: // SessionDeviceInfo\r\n s" +
"session.title(log.Arguments[1]);\r\n session.serialNumb" + "ession.title(log.Arguments[1]);\r\n session.serialNumbe" +
"er(log.Arguments[1]);\r\n session.sessionDeviceInfo(log" + "r(log.Arguments[1]);\r\n session.sessionDeviceInfo(log)" +
");\r\n if (log.Arguments.length >= 10 && log.Arguments[" + ";\r\n if (log.Arguments.length >= 10 && log.Arguments[9" +
"9])\r\n session.deviceModelId(log.Arguments[9]);\r\n " + "])\r\n session.deviceModelId(log.Arguments[9]);\r\n " +
" break;\r\n case 14: // SessionPe" + " break;\r\n case 14: // SessionPen" +
"nding\r\n session.isPending(true);\r\n " + "ding\r\n session.isPending(true);\r\n " +
" session.pendingIdentifier(log.Arguments[4]);\r\n " + " session.pendingIdentifier(log.Arguments[4]);\r\n " +
" session.messages.unshift(log);\r\n session.progressV" + " session.messages.unshift(log);\r\n session.progressVa" +
"alue(-1);\r\n session.progressStatus(\'Pending enrollmen" + "lue(-1);\r\n session.progressStatus(\'Pending enrolment " +
"t approval\');\r\n break;\r\n case " + "approval\');\r\n break;\r\n case 15" +
"15: // SessionPendingApproved\r\n session.isPending(fal" + ": // SessionPendingApproved\r\n session.isPending(false" +
"se);\r\n session.messages.unshift(log);\r\n " + ");\r\n session.messages.unshift(log);\r\n " +
" session.progressValue(-1);\r\n session.pr" + " session.progressValue(-1);\r\n session.prog" +
"ogressStatus(\'Enrollment approval, waiting for client\');\r\n " + "ressStatus(\'Enrolment approval, waiting for client\');\r\n " +
" break;\r\n case 16: // SessionPendingRejected\r\n " + " break;\r\n case 16: // SessionPendingRejected\r\n " +
" session.isPending(false);\r\n ses" + " session.isPending(false);\r\n sessio" +
"sion.messages.unshift(log);\r\n session.progressValue(-" + "n.messages.unshift(log);\r\n session.progressValue(-1);" +
"1);\r\n session.progressStatus(\'Enrollment rejected, wa" + "\r\n session.progressStatus(\'Enrolment rejected, waitin" +
"iting for client\');\r\n break;\r\n " + "g for client\');\r\n break;\r\n cas" +
" case 17: // SessionContinuing\r\n session.isPending(fa" + "e 17: // SessionContinuing\r\n session.isPending(false)" +
"lse);\r\n session.messages.unshift(log);\r\n " + ";\r\n session.messages.unshift(log);\r\n " +
" break;\r\n case 20: // SessionFinished\r\n " + " break;\r\n case 20: // SessionFinished\r\n " +
" session.sessionEnded(true);\r\n " + " session.sessionEnded(true);\r\n ses" +
" session.isPending(false);\r\n if (session.hasError())\r" + "sion.isPending(false);\r\n if (session.hasError())\r\n " +
"\n session.progressStatus(\'Enrollment Finished wit" + " session.progressStatus(\'Enrolment Finished with an " +
"h an Error\');\r\n else\r\n " + "Error\');\r\n else\r\n if (" +
" if (session.hasWarning())\r\n session.progress" + "session.hasWarning())\r\n session.progressStatu" +
"Status(\'Enrollment Finished with a Warning\');\r\n e" + "s(\'Enrolment Finished with a Warning\');\r\n else\r\n " +
"lse\r\n session.progressStatus(\'Enrollment Fini" + " session.progressStatus(\'Enrolment Finished Su" +
"shed Successfully\');\r\n session.messages.unshift(log);" + "ccessfully\');\r\n session.messages.unshift(log);\r\n " +
"\r\n break;\r\n case 21: // Sessio" + " break;\r\n case 21: // SessionDiagno" +
"nDiagnosticInformation\r\n session.console.push(log);\r\n" + "sticInformation\r\n session.console.push(log);\r\n " +
" break;\r\n case 22: // SessionW" + " break;\r\n case 22: // SessionWarning\r" +
"arning\r\n session.hasWarning(true);\r\n " + "\n session.hasWarning(true);\r\n " +
" session.messages.unshift(log);\r\n break;\r\n " + " session.messages.unshift(log);\r\n break;\r\n " +
" case 23: // SessionError\r\n case 24" + " case 23: // SessionError\r\n case 24: // Se" +
": // SessionErrorWithInner\r\n case 25: // SessionClientErr" + "ssionErrorWithInner\r\n case 25: // SessionClientError\r\n " +
"or\r\n session.hasError(true);\r\n " + " session.hasError(true);\r\n se" +
" session.messages.unshift(log);\r\n break;\r\n " + "ssion.messages.unshift(log);\r\n break;\r\n " +
" default:\r\n session.messages.unshift(" + " default:\r\n session.messages.unshift(log);\r\n" +
"log);\r\n }\r\n }\r\n }\r\n }\r\n " + " }\r\n }\r\n }\r\n }\r\n func" +
" function init() {\r\n hostDialogSessions.dialog({\r\n m" + "tion init() {\r\n hostDialogSessions.dialog({\r\n modal: t" +
"odal: true,\r\n height: 574,\r\n width: 900,\r\n " + "rue,\r\n height: 574,\r\n width: 900,\r\n " +
" resizable: false,\r\n autoOpen: false\r\n });\r\n " + " resizable: false,\r\n autoOpen: false\r\n });\r\n " +
" //hostDialogSessionsProgress.progressbar();\r\n\r\n // Create Vi" + " //hostDialogSessionsProgress.progressbar();\r\n\r\n // Create View Mode" +
"ew Model\r\n vm = new pageViewModel();\r\n $.ajax({\r\n " + "l\r\n vm = new pageViewModel();\r\n $.ajax({\r\n " +
"url: \'"); "url: \'");
+3 -3
View File
@@ -97,7 +97,7 @@
height: 50px; height: 50px;
font-size: 0.6em; font-size: 0.6em;
} }
#layout_PageHeading #pendingEnrollments { #layout_PageHeading #pendingEnrolments {
position: relative; position: relative;
float: right; float: right;
border: 1px dashed #ddd; border: 1px dashed #ddd;
@@ -108,7 +108,7 @@
text-align: right; text-align: right;
height: 50px; height: 50px;
} }
#layout_PageHeading #pendingEnrollments i { #layout_PageHeading #pendingEnrolments i {
position: absolute; position: absolute;
display: block; display: block;
height: 64px; height: 64px;
@@ -119,7 +119,7 @@
font-size: 50px; font-size: 50px;
color: #e51400; color: #e51400;
} }
#layout_PageHeading #pendingEnrollments a.button { #layout_PageHeading #pendingEnrolments a.button {
font-size: 12px; font-size: 12px;
margin-top: 8px; margin-top: 8px;
} }
+1 -1
View File
@@ -26,7 +26,7 @@
font-size: 0.6em; font-size: 0.6em;
} }
#pendingEnrollments { #pendingEnrolments {
position: relative; position: relative;
float: right; float: right;
border: 1px dashed #ddd; border: 1px dashed #ddd;
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -50,7 +50,7 @@ namespace Disco.Web.Controllers
m.DailyOpenedClosedStatistics = DailyOpenedClosed.Data(Database, true); m.DailyOpenedClosedStatistics = DailyOpenedClosed.Data(Database, true);
if (Authorization.Has(Claims.Device.Actions.EnrolDevices)) if (Authorization.Has(Claims.Device.Actions.EnrolDevices))
m.PendingEnrollments = WindowsDeviceEnrolment.GetPendingEnrolments(); m.PendingEnrolments = WindowsDeviceEnrolment.GetPendingEnrolments();
// UI Extensions // UI Extensions
UIExtensions.ExecuteExtensions<JobIndexModel>(this.ControllerContext, m); UIExtensions.ExecuteExtensions<JobIndexModel>(this.ControllerContext, m);
+2 -2
View File
@@ -212,7 +212,7 @@
<Compile Include="Areas\API\Controllers\AuthorizationRoleController.cs" /> <Compile Include="Areas\API\Controllers\AuthorizationRoleController.cs" />
<Compile Include="Areas\API\Controllers\DocumentTemplatePackageController.cs" /> <Compile Include="Areas\API\Controllers\DocumentTemplatePackageController.cs" />
<Compile Include="Areas\API\Controllers\DeviceFlagAssignmentController.cs" /> <Compile Include="Areas\API\Controllers\DeviceFlagAssignmentController.cs" />
<Compile Include="Areas\API\Controllers\EnrollmentController.cs" /> <Compile Include="Areas\API\Controllers\EnrolmentController.cs" />
<Compile Include="Areas\API\Controllers\ExportController.cs" /> <Compile Include="Areas\API\Controllers\ExportController.cs" />
<Compile Include="Areas\API\Controllers\UserFlagAssignmentController.cs" /> <Compile Include="Areas\API\Controllers\UserFlagAssignmentController.cs" />
<Compile Include="Areas\API\Controllers\DeviceFlagController.cs" /> <Compile Include="Areas\API\Controllers\DeviceFlagController.cs" />
@@ -739,7 +739,7 @@
<Compile Include="Extensions\T4MVC\API.DocumentTemplatePackageController.generated.cs"> <Compile Include="Extensions\T4MVC\API.DocumentTemplatePackageController.generated.cs">
<DependentUpon>T4MVC.tt</DependentUpon> <DependentUpon>T4MVC.tt</DependentUpon>
</Compile> </Compile>
<Compile Include="Extensions\T4MVC\API.EnrollmentController.generated.cs"> <Compile Include="Extensions\T4MVC\API.EnrolmentController.generated.cs">
<DependentUpon>T4MVC.tt</DependentUpon> <DependentUpon>T4MVC.tt</DependentUpon>
</Compile> </Compile>
<Compile Include="Extensions\T4MVC\API.ExportController.generated.cs"> <Compile Include="Extensions\T4MVC\API.ExportController.generated.cs">
@@ -25,13 +25,13 @@ using System.Web.Routing;
using T4MVC; using T4MVC;
namespace Disco.Web.Areas.API.Controllers namespace Disco.Web.Areas.API.Controllers
{ {
public partial class EnrollmentController public partial class EnrolmentController
{ {
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
public EnrollmentController() { } public EnrolmentController() { }
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
protected EnrollmentController(Dummy d) { } protected EnrolmentController(Dummy d) { }
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
protected RedirectToRouteResult RedirectToAction(ActionResult result) protected RedirectToRouteResult RedirectToAction(ActionResult result)
@@ -73,13 +73,13 @@ namespace Disco.Web.Areas.API.Controllers
} }
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
public EnrollmentController Actions { get { return MVC.API.Enrollment; } } public EnrolmentController Actions { get { return MVC.API.Enrolment; } }
[GeneratedCode("T4MVC", "2.0")] [GeneratedCode("T4MVC", "2.0")]
public readonly string Area = "API"; public readonly string Area = "API";
[GeneratedCode("T4MVC", "2.0")] [GeneratedCode("T4MVC", "2.0")]
public readonly string Name = "Enrollment"; public readonly string Name = "Enrolment";
[GeneratedCode("T4MVC", "2.0")] [GeneratedCode("T4MVC", "2.0")]
public const string NameConst = "Enrollment"; public const string NameConst = "Enrolment";
[GeneratedCode("T4MVC", "2.0")] [GeneratedCode("T4MVC", "2.0")]
static readonly ActionNamesClass s_actions = new ActionNamesClass(); static readonly ActionNamesClass s_actions = new ActionNamesClass();
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
@@ -132,9 +132,9 @@ namespace Disco.Web.Areas.API.Controllers
} }
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
public partial class T4MVC_EnrollmentController : Disco.Web.Areas.API.Controllers.EnrollmentController public partial class T4MVC_EnrolmentController : Disco.Web.Areas.API.Controllers.EnrolmentController
{ {
public T4MVC_EnrollmentController() : base(Dummy.Instance) { } public T4MVC_EnrolmentController() : base(Dummy.Instance) { }
[NonAction] [NonAction]
partial void ResolveSessionPendingOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string sessionId, bool approve, string reason); partial void ResolveSessionPendingOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string sessionId, bool approve, string reason);
+1 -1
View File
@@ -63,7 +63,7 @@ namespace T4MVC
public Disco.Web.Areas.API.Controllers.DeviceProfileController DeviceProfile = new Disco.Web.Areas.API.Controllers.T4MVC_DeviceProfileController(); public Disco.Web.Areas.API.Controllers.DeviceProfileController DeviceProfile = new Disco.Web.Areas.API.Controllers.T4MVC_DeviceProfileController();
public Disco.Web.Areas.API.Controllers.DocumentTemplateController DocumentTemplate = new Disco.Web.Areas.API.Controllers.T4MVC_DocumentTemplateController(); public Disco.Web.Areas.API.Controllers.DocumentTemplateController DocumentTemplate = new Disco.Web.Areas.API.Controllers.T4MVC_DocumentTemplateController();
public Disco.Web.Areas.API.Controllers.DocumentTemplatePackageController DocumentTemplatePackage = new Disco.Web.Areas.API.Controllers.T4MVC_DocumentTemplatePackageController(); public Disco.Web.Areas.API.Controllers.DocumentTemplatePackageController DocumentTemplatePackage = new Disco.Web.Areas.API.Controllers.T4MVC_DocumentTemplatePackageController();
public Disco.Web.Areas.API.Controllers.EnrollmentController Enrollment = new Disco.Web.Areas.API.Controllers.T4MVC_EnrollmentController(); public Disco.Web.Areas.API.Controllers.EnrolmentController Enrolment = new Disco.Web.Areas.API.Controllers.T4MVC_EnrolmentController();
public Disco.Web.Areas.API.Controllers.ExportController Export = new Disco.Web.Areas.API.Controllers.T4MVC_ExportController(); public Disco.Web.Areas.API.Controllers.ExportController Export = new Disco.Web.Areas.API.Controllers.T4MVC_ExportController();
public Disco.Web.Areas.API.Controllers.ExpressionsController Expressions = new Disco.Web.Areas.API.Controllers.T4MVC_ExpressionsController(); public Disco.Web.Areas.API.Controllers.ExpressionsController Expressions = new Disco.Web.Areas.API.Controllers.T4MVC_ExpressionsController();
public Disco.Web.Areas.API.Controllers.JobController Job = new Disco.Web.Areas.API.Controllers.T4MVC_JobController(); public Disco.Web.Areas.API.Controllers.JobController Job = new Disco.Web.Areas.API.Controllers.T4MVC_JobController();
+1 -1
View File
@@ -10,7 +10,7 @@ namespace Disco.Web.Models.Job
{ {
public JobTableModel MyJobs { get; set; } public JobTableModel MyJobs { get; set; }
public JobTableModel StaleJobs { get; set; } public JobTableModel StaleJobs { get; set; }
public List<EnrolResponse> PendingEnrollments { get; set; } public List<EnrolResponse> PendingEnrolments { get; set; }
public List<DailyOpenedClosedItem> DailyOpenedClosedStatistics { get; set; } public List<DailyOpenedClosedItem> DailyOpenedClosedStatistics { get; set; }
} }
+5 -5
View File
@@ -151,17 +151,17 @@
@Html.ActionLinkButton("Export Jobs", MVC.Job.Export()) @Html.ActionLinkButton("Export Jobs", MVC.Job.Export())
</div> </div>
} }
@if (Model.PendingEnrollments != null && Model.PendingEnrollments.Count > 0 && Authorization.Has(Claims.Device.Actions.EnrolDevices)) @if (Model.PendingEnrolments != null && Model.PendingEnrolments.Count > 0 && Authorization.Has(Claims.Device.Actions.EnrolDevices))
{ {
<div id="pendingEnrollments"> <div id="pendingEnrolments">
<i class="fa fa-exclamation-circle info"></i> <i class="fa fa-exclamation-circle info"></i>
<div>There are device enrollments pending approval.</div> <div>There are device enrolments pending approval.</div>
<a href="@Url.Action(MVC.Config.Enrolment.Status())" class="button small alert" target="_blank">View Enrollments</a> <a href="@Url.Action(MVC.Config.Enrolment.Status())" class="button small alert" target="_blank">View Enrolments</a>
</div> </div>
<script> <script>
$(function () { $(function () {
var layout_PageHeading = $('#layout_PageHeading').height(80); var layout_PageHeading = $('#layout_PageHeading').height(80);
$('#pendingEnrollments') $('#pendingEnrolments')
.detach() .detach()
.appendTo(layout_PageHeading); .appendTo(layout_PageHeading);
}); });
+8 -8
View File
@@ -338,7 +338,7 @@ WriteLiteral("\r\n </div>\r\n");
#line hidden #line hidden
#line 154 "..\..\Views\Job\Index.cshtml" #line 154 "..\..\Views\Job\Index.cshtml"
if (Model.PendingEnrollments != null && Model.PendingEnrollments.Count > 0 && Authorization.Has(Claims.Device.Actions.EnrolDevices)) if (Model.PendingEnrolments != null && Model.PendingEnrolments.Count > 0 && Authorization.Has(Claims.Device.Actions.EnrolDevices))
{ {
@@ -346,33 +346,33 @@ WriteLiteral("\r\n </div>\r\n");
#line hidden #line hidden
WriteLiteral(" <div"); WriteLiteral(" <div");
WriteLiteral(" id=\"pendingEnrollments\""); WriteLiteral(" id=\"pendingEnrolments\"");
WriteLiteral(">\r\n <i"); WriteLiteral(">\r\n <i");
WriteLiteral(" class=\"fa fa-exclamation-circle info\""); WriteLiteral(" class=\"fa fa-exclamation-circle info\"");
WriteLiteral("></i>\r\n <div>There are device enrollments pending approval.</div>\r\n " + WriteLiteral("></i>\r\n <div>There are device enrolments pending approval.</div>\r\n " +
"<a"); "<a");
WriteAttribute("href", Tuple.Create(" href=\"", 6930), Tuple.Create("\"", 6979) WriteAttribute("href", Tuple.Create(" href=\"", 6926), Tuple.Create("\"", 6975)
#line 159 "..\..\Views\Job\Index.cshtml" #line 159 "..\..\Views\Job\Index.cshtml"
, Tuple.Create(Tuple.Create("", 6937), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Config.Enrolment.Status()) , Tuple.Create(Tuple.Create("", 6933), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Config.Enrolment.Status())
#line default #line default
#line hidden #line hidden
, 6937), false) , 6933), false)
); );
WriteLiteral(" class=\"button small alert\""); WriteLiteral(" class=\"button small alert\"");
WriteLiteral(" target=\"_blank\""); WriteLiteral(" target=\"_blank\"");
WriteLiteral(">View Enrollments</a>\r\n </div>\r\n"); WriteLiteral(">View Enrolments</a>\r\n </div>\r\n");
WriteLiteral(" <script>\r\n $(function () {\r\n var layout_PageHeading = $(\'#l" + WriteLiteral(" <script>\r\n $(function () {\r\n var layout_PageHeading = $(\'#l" +
"ayout_PageHeading\').height(80);\r\n $(\'#pendingEnrollments\')\r\n " + "ayout_PageHeading\').height(80);\r\n $(\'#pendingEnrolments\')\r\n " +
" .detach()\r\n .appendTo(layout_PageHeading);\r\n });\r\n " + " .detach()\r\n .appendTo(layout_PageHeading);\r\n });\r\n " +
" </script>\r\n"); " </script>\r\n");