@model Disco.Web.Areas.Config.Models.DocumentTemplate.ShowModel @using Disco.BI.DocumentTemplateBI.ManagedGroups; @using Disco.Services.Interop.ActiveDirectory; @using Disco.Web.Areas.Config.Models.Shared; @{ Authorization.Require(Claims.Config.DocumentTemplate.Show); var canConfig = Authorization.Has(Claims.Config.DocumentTemplate.Configure); var hideAdvanced = Model.DocumentTemplate.UsersLinkedGroup == null && Model.DocumentTemplate.DevicesLinkedGroup == null && Model.DocumentTemplate.FilterExpression == null && Model.TemplateExpressions.All(e => e.All(p => !p.ParseError)); #region Can Bulk Generate var canBulkGenerate = Authorization.Has(Claims.Config.DocumentTemplate.BulkGenerate); if (canBulkGenerate) { switch (Model.DocumentTemplate.Scope) { case DocumentTemplate.DocumentTemplateScopes.Device: canBulkGenerate = Authorization.Has(Claims.Device.Actions.GenerateDocuments); break; case DocumentTemplate.DocumentTemplateScopes.Job: canBulkGenerate = Authorization.Has(Claims.Job.Actions.GenerateDocuments); break; case DocumentTemplate.DocumentTemplateScopes.User: canBulkGenerate = Authorization.Has(Claims.User.Actions.GenerateDocuments); break; default: throw new InvalidOperationException("Invalid DocumentType Scope"); } } #endregion ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Document Templates", MVC.Config.DocumentTemplate.Index(null), Model.DocumentTemplate.Description); }
| Id: | @Html.DisplayFor(model => model.DocumentTemplate.Id) |
|---|---|
| Statistics: | @Model.StoredInstanceCount.ToString("n0") Stored Instance@(Model.StoredInstanceCount == 1 ? null : "s") |
| Description: | @if (canConfig) { @Html.TextBoxFor(model => model.DocumentTemplate.Description) @AjaxHelpers.AjaxSave() @AjaxHelpers.AjaxLoader() } else { if (string.IsNullOrEmpty(Model.DocumentTemplate.Description)) { <None Specified> } else { @Model.DocumentTemplate.Description } } |
| Always Flatten Form: | @if (canConfig) { @AjaxHelpers.AjaxLoader() } else { } |
| Scope: |
@Model.DocumentTemplate.Scope ScopeThis template is generated from @(Model.DocumentTemplate.Scope)s. Any expressions within the Template PDF will be evaluated within the @(Model.DocumentTemplate.Scope) Scope.
@using (Html.BeginForm(MVC.API.DocumentTemplate.UpdateScope(Model.DocumentTemplate.Id, redirect: true)))
{
}
@if (Model.DocumentTemplate.Scope == DocumentTemplate.DocumentTemplateScopes.Job)
{
Expressions within the Template PDF may need to be updated to reflect any changes to the Document Template Scope. Warning: This Document Template contains Linked Groups, these will be automatically updated to reflect the new Document Template Scope which may result in undesired behaviour. Job Type Filters:
@if (Model.DocumentTemplate.JobSubTypes.Count > 0)
{
@if (canConfig)
{
Update
@using (Html.BeginForm(MVC.API.DocumentTemplate.UpdateJobSubTypes(Model.DocumentTemplate.Id, null, true)))
{
var selectedTypes = Model.DocumentTemplate.JobSubTypes.Select(jst => jst.JobType).Distinct().ToList();
foreach (var jt in Model.JobTypes)
{
}
@CommonHelpers.CheckboxBulkSelect(string.Format("CheckboxBulkSelect_{0}", jt.Id), "div")
@CommonHelpers.CheckBoxList("JobSubTypes", jt.JobSubTypes.OrderBy(jst => jst.Description).ToSelectListItems(Model.DocumentTemplate.JobSubTypes), 2)
|
| PDF Template |
@Html.ActionLinkSmallButton("Download Template", MVC.API.DocumentTemplate.Template(Model.DocumentTemplate.Id))
@if (canConfig && Authorization.Has(Claims.Config.DocumentTemplate.Upload))
{
Select a PDF Template to upload:
@using (Html.BeginForm(MVC.API.DocumentTemplate.Template(Model.DocumentTemplate.Id, true, null), FormMethod.Post, new { enctype = "multipart/form-data" }))
{
}
|
| Filter Expression: | @if (canConfig && Authorization.Has(Claims.Config.DocumentTemplate.ConfigureFilterExpression))
{
@Html.TextBoxFor(model => model.DocumentTemplate.FilterExpression)
@AjaxHelpers.AjaxRemove()
@AjaxHelpers.AjaxLoader()
}
else
{
if (string.IsNullOrWhiteSpace(Model.DocumentTemplate.FilterExpression))
{
<None Specified>
}
else
{
@Model.DocumentTemplate.FilterExpression
}
}
|
|---|---|
| Linked Groups: |
@Html.Partial(MVC.Config.Shared.Views.LinkedGroupInstance, new LinkedGroupModel()
{
CanConfigure = canConfig,
CategoryDescription = DocumentTemplateUsersManagedGroup.GetCategoryDescription(Model.DocumentTemplate),
Description = DocumentTemplateUsersManagedGroup.GetDescription(Model.DocumentTemplate),
ManagedGroup = Model.UsersLinkedGroup,
UpdateUrl = Url.Action(MVC.API.DocumentTemplate.UpdateUsersLinkedGroup(Model.DocumentTemplate.Id, redirect: true))
})
@Html.Partial(MVC.Config.Shared.Views.LinkedGroupInstance, new LinkedGroupModel()
{
CanConfigure = canConfig,
CategoryDescription = DocumentTemplateDevicesManagedGroup.GetCategoryDescription(Model.DocumentTemplate),
Description = DocumentTemplateDevicesManagedGroup.GetDescription(Model.DocumentTemplate),
ManagedGroup = Model.DevicesLinkedGroup,
UpdateUrl = Url.Action(MVC.API.DocumentTemplate.UpdateDevicesLinkedGroup(Model.DocumentTemplate.Id, redirect: true))
})
@if (canConfig)
{
@Html.Partial(MVC.Config.Shared.Views.LinkedGroupShared)
}
|
This item will be permanently deleted and cannot be recovered.
This will not delete attachments which have already been imported,
but any generated documents will no longer be automatically imported.
Are you sure?
<new line>, commas (,) or semicolons (;).