feature: bulk generate documents for device batches, models and profiles

This commit is contained in:
Gary Sharp
2023-05-04 15:30:04 +10:00
parent 473b02f718
commit 0a4a2816a0
29 changed files with 1285 additions and 530 deletions
@@ -38,7 +38,7 @@
</th>
<td>
@if (canConfig)
{
{
@Html.TextBoxFor(model => model.DeviceProfile.Name)
@AjaxHelpers.AjaxSave()
@AjaxHelpers.AjaxLoader()
@@ -512,7 +512,7 @@
<div style="margin-top: 8px;">
@if (canConfig)
{
<input id="DeviceProfile_EnforceOrganisationalUnit" type="checkbox" @(Model.DeviceProfile.EnforceOrganisationalUnit ? new MvcHtmlString("checked=\"checked\" ") : new MvcHtmlString(string.Empty)) />
<input id="DeviceProfile_EnforceOrganisationalUnit" type="checkbox" @(Model.DeviceProfile.EnforceOrganisationalUnit ? new MvcHtmlString("checked=\"checked\" ") : new MvcHtmlString(string.Empty)) />
<script type="text/javascript">
$(function () {
document.DiscoFunctions.PropertyChangeHelper(
@@ -617,7 +617,7 @@
{
<ul>
@foreach (var certificateProvider in certificateProviders)
{
{
<li>@certificateProvider.Name</li>
}
</ul>
@@ -640,14 +640,14 @@
{
<ul>
@foreach (var certificateProvider in certificateProviders)
{
{
<li>@certificateProvider.Name</li>
}
</ul>
}
}
@if (canViewPlugins)
{
{
<div class="info-box">
<p class="fa-p">
<i class="fa fa-info-circle"></i>View the <a href="@(Url.Action(MVC.Config.Plugins.Install()))">Plugin Catalogue</a> to discover and install certificate provider plugins.
@@ -703,7 +703,7 @@
{
<ul>
@foreach (var wirelessProfileProvider in wirelessProfileProviders)
{
{
<li>@wirelessProfileProvider.Name</li>
}
</ul>
@@ -804,6 +804,7 @@
});
</script>
}
@Html.Partial(MVC.Config.Shared.Views._DeviceGroupDocumentBulkGenerate, Model);
<div class="actionBar">
@if (canDelete)
{
@@ -125,7 +125,7 @@ WriteLiteral("\r\n </td>\r\n </tr>\r\n <tr>\r\n
#line 40 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
if (canConfig)
{
{
#line default
@@ -724,14 +724,14 @@ WriteLiteral(" class=\"fa fa-info-circle\"");
WriteLiteral("></i>The profile address is used to separate jobs for <a");
WriteAttribute("href", Tuple.Create(" href=\"", 8092), Tuple.Create("\"", 8143)
WriteAttribute("href", Tuple.Create(" href=\"", 8096), Tuple.Create("\"", 8147)
#line 192 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
, Tuple.Create(Tuple.Create("", 8099), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Config.Organisation.Index())
, Tuple.Create(Tuple.Create("", 8103), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Config.Organisation.Index())
#line default
#line hidden
, 8099), false)
, 8103), false)
);
WriteLiteral(@">multi-site mode</a>.
@@ -1186,14 +1186,14 @@ WriteLiteral(" <a");
WriteLiteral(" id=\"expressionBrowserAnchor\"");
WriteAttribute("href", Tuple.Create(" href=\"", 14667), Tuple.Create("\"", 14736)
WriteAttribute("href", Tuple.Create(" href=\"", 14671), Tuple.Create("\"", 14740)
#line 303 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
, Tuple.Create(Tuple.Create("", 14674), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Config.DocumentTemplate.ExpressionBrowser())
, Tuple.Create(Tuple.Create("", 14678), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Config.DocumentTemplate.ExpressionBrowser())
#line default
#line hidden
, 14674), false)
, 14678), false)
);
WriteLiteral(">&nbsp;</a>\r\n");
@@ -1714,7 +1714,7 @@ WriteLiteral(" ");
#line default
#line hidden
WriteLiteral(" />\r\n");
WriteLiteral(" />\r\n");
WriteLiteral(" <script");
@@ -2018,7 +2018,7 @@ WriteLiteral(" <ul>\r\n");
#line 619 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
foreach (var certificateProvider in certificateProviders)
{
{
#line default
@@ -2118,7 +2118,7 @@ WriteLiteral(" <ul>\r\n");
#line 642 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
foreach (var certificateProvider in certificateProviders)
{
{
#line default
@@ -2156,7 +2156,7 @@ WriteLiteral(" ");
#line 649 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
if (canViewPlugins)
{
{
#line default
@@ -2175,14 +2175,14 @@ WriteLiteral(" class=\"fa fa-info-circle\"");
WriteLiteral("></i>View the <a");
WriteAttribute("href", Tuple.Create(" href=\"", 34296), Tuple.Create("\"", 34346)
WriteAttribute("href", Tuple.Create(" href=\"", 34318), Tuple.Create("\"", 34368)
#line 653 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
, Tuple.Create(Tuple.Create("", 34303), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Config.Plugins.Install())
, Tuple.Create(Tuple.Create("", 34325), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Config.Plugins.Install())
#line default
#line hidden
, 34303), false)
, 34325), false)
);
WriteLiteral(">Plugin Catalogue</a> to discover and install certificate provider plugins.\r\n " +
@@ -2340,7 +2340,7 @@ WriteLiteral(" <ul>\r\n");
#line 705 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
foreach (var wirelessProfileProvider in wirelessProfileProviders)
{
{
#line default
@@ -2397,14 +2397,14 @@ WriteLiteral(" class=\"fa fa-info-circle\"");
WriteLiteral("></i>View the <a");
WriteAttribute("href", Tuple.Create(" href=\"", 37542), Tuple.Create("\"", 37592)
WriteAttribute("href", Tuple.Create(" href=\"", 37572), Tuple.Create("\"", 37622)
#line 716 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
, Tuple.Create(Tuple.Create("", 37549), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Config.Plugins.Install())
, Tuple.Create(Tuple.Create("", 37579), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Config.Plugins.Install())
#line default
#line hidden
, 37549), false)
, 37579), false)
);
WriteLiteral(">Plugin Catalogue</a> to discover and install wireless profile provider plugins.\r" +
@@ -2602,20 +2602,27 @@ WriteLiteral(@">
#line default
#line hidden
WriteLiteral("<div");
#line 807 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
Write(Html.Partial(MVC.Config.Shared.Views._DeviceGroupDocumentBulkGenerate, Model));
#line default
#line hidden
WriteLiteral(";\r\n<div");
WriteLiteral(" class=\"actionBar\"");
WriteLiteral(">\r\n");
#line 808 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
#line 809 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
#line default
#line hidden
#line 808 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
#line 809 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
if (canDelete)
{
@@ -2623,14 +2630,14 @@ WriteLiteral(">\r\n");
#line default
#line hidden
#line 810 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
#line 811 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
Write(Html.ActionLinkButton("Delete", MVC.API.DeviceProfile.Delete(Model.DeviceProfile.Id, true), "buttonDelete"));
#line default
#line hidden
#line 810 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
#line 811 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
}
@@ -2640,7 +2647,7 @@ WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 812 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
#line 813 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
if (Authorization.Has(Claims.Device.Actions.Export))
{
@@ -2648,14 +2655,14 @@ WriteLiteral(" ");
#line default
#line hidden
#line 814 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
#line 815 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
Write(Html.ActionLinkButton("Export Devices", MVC.Device.Export(null, Disco.Models.Services.Devices.Exporting.DeviceExportTypes.Profile, Model.DeviceProfile.Id)));
#line default
#line hidden
#line 814 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
#line 815 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
}
@@ -2665,7 +2672,7 @@ WriteLiteral(" ");
WriteLiteral(" ");
#line 816 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
#line 817 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
if (Authorization.Has(Claims.Device.Search) && Model.DeviceCount > 0)
{
@@ -2673,14 +2680,14 @@ WriteLiteral(" ");
#line default
#line hidden
#line 818 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
#line 819 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
Write(Html.ActionLinkButton(string.Format("View {0} Device{1}", Model.DeviceCount, (Model.DeviceCount != 1 ? "s" : null)), MVC.Search.Query(Model.DeviceProfile.Id.ToString(), "DeviceProfile")));
#line default
#line hidden
#line 818 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
#line 819 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml"
}
@@ -35,7 +35,14 @@
@Html.DisplayFor(modelItem => item.DistributionType)
</td>
<td>
@item.DeviceCount.ToString("n0")
@if (item.DeviceCount > 0 && Authorization.Has(Claims.Device.Search))
{
<span>@Html.ActionLink(string.Format("View {0}", item.DeviceCount), MVC.Search.Query(item.Id.ToString(), "DeviceProfile"))</span>
}
else
{
<span>@item.DeviceCount.ToString("n0")</span>
}
@if (item.DeviceDecommissionedCount > 0)
{
<span class="smallMessage" title="@(item.DeviceDecommissionedCount.ToString("n0")) Decommissioned">
@@ -148,25 +148,62 @@ WriteLiteral(" ");
#line hidden
WriteLiteral("\r\n </td>\r\n <td>\r\n");
WriteLiteral(" ");
#line 38 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
Write(item.DeviceCount.ToString("n0"));
#line default
#line hidden
WriteLiteral("\r\n");
#line 39 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
#line default
#line hidden
#line 39 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
#line 38 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
if (item.DeviceCount > 0 && Authorization.Has(Claims.Device.Search))
{
#line default
#line hidden
WriteLiteral(" <span>");
#line 40 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
Write(Html.ActionLink(string.Format("View {0}", item.DeviceCount), MVC.Search.Query(item.Id.ToString(), "DeviceProfile")));
#line default
#line hidden
WriteLiteral("</span>\r\n");
#line 41 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
}
else
{
#line default
#line hidden
WriteLiteral(" <span>");
#line 44 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
Write(item.DeviceCount.ToString("n0"));
#line default
#line hidden
WriteLiteral("</span>\r\n");
#line 45 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
}
#line default
#line hidden
WriteLiteral(" ");
#line 46 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
if (item.DeviceDecommissionedCount > 0)
{
@@ -177,21 +214,21 @@ WriteLiteral(" <span");
WriteLiteral(" class=\"smallMessage\"");
WriteAttribute("title", Tuple.Create(" title=\"", 1187), Tuple.Create("\"", 1258)
WriteAttribute("title", Tuple.Create(" title=\"", 1540), Tuple.Create("\"", 1611)
#line 41 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
, Tuple.Create(Tuple.Create("", 1195), Tuple.Create<System.Object, System.Int32>(item.DeviceDecommissionedCount.ToString("n0")
#line 48 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
, Tuple.Create(Tuple.Create("", 1548), Tuple.Create<System.Object, System.Int32>(item.DeviceDecommissionedCount.ToString("n0")
#line default
#line hidden
, 1195), false)
, Tuple.Create(Tuple.Create(" ", 1243), Tuple.Create("Decommissioned", 1244), true)
, 1548), false)
, Tuple.Create(Tuple.Create(" ", 1596), Tuple.Create("Decommissioned", 1597), true)
);
WriteLiteral(">\r\n (");
#line 42 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
#line 49 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
Write(item.DeviceDecommissionedCount.ToString("n0"));
@@ -200,7 +237,7 @@ WriteLiteral(">\r\n (");
WriteLiteral(")\r\n </span>\r\n");
#line 44 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
#line 51 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
}
@@ -209,13 +246,13 @@ WriteLiteral(")\r\n </span>\r\n");
WriteLiteral(" </td>\r\n");
#line 46 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
#line 53 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
#line default
#line hidden
#line 46 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
#line 53 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
if (showTags)
{
@@ -225,13 +262,13 @@ WriteLiteral(" </td>\r\n");
WriteLiteral(" <td>\r\n");
#line 49 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
#line 56 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
#line default
#line hidden
#line 49 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
#line 56 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
if (item.IsLinked)
{
@@ -247,7 +284,7 @@ WriteLiteral(" title=\"Is Linked\"");
WriteLiteral("></i>\r\n");
#line 52 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
#line 59 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
}
else
{
@@ -262,7 +299,7 @@ WriteLiteral("&nbsp;");
WriteLiteral("\r\n");
#line 56 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
#line 63 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
}
@@ -271,7 +308,7 @@ WriteLiteral("\r\n");
WriteLiteral(" </td>\r\n");
#line 58 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
#line 65 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
}
@@ -280,7 +317,7 @@ WriteLiteral(" </td>\r\n");
WriteLiteral(" </tr>\r\n");
#line 60 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
#line 67 "..\..\Areas\Config\Views\DeviceProfile\_TableRender.cshtml"
}