qol: option to view/print generated document inline

This commit is contained in:
Gary Sharp
2026-03-01 14:15:27 +11:00
parent 892299a791
commit 4f7f6db804
14 changed files with 170 additions and 28 deletions
@@ -1774,7 +1774,7 @@ namespace Disco.Web.Areas.API.Controllers
}
[HttpPost, ValidateAntiForgeryToken]
public virtual ActionResult Generate(string id, string targetId)
public virtual ActionResult Generate(string id, string targetId, bool? inline = null)
{
Disco.Services.DocumentTemplateExtensions.GetTemplateAndTarget(Database, Authorization, id, targetId, out var template, out var target, out _);
@@ -1787,7 +1787,7 @@ namespace Disco.Web.Areas.API.Controllers
}
Database.SaveChanges();
return File(document, "application/pdf", $"{template.Id}_{target.AttachmentReferenceId.Replace('\\', '_')}_{timestamp:yyyyMMdd-HHmmss}.pdf");
return File(document, "application/pdf", (inline ?? false) ? null : $"{template.Id}_{target.AttachmentReferenceId.Replace('\\', '_')}_{timestamp:yyyyMMdd-HHmmss}.pdf");
}
[DiscoAuthorize(Claims.Config.DocumentTemplate.Delete)]
@@ -19,12 +19,12 @@ namespace Disco.Web.Areas.API.Controllers
{
public partial class DocumentTemplatePackageController : AuthorizedDatabaseController
{
const string pDescription = "description";
const string pScope = "scope";
const string pFilterExpression = "filterexpression";
const string pOnGenerateExpression = "ongenerateexpression";
const string pIsHidden = "ishidden";
const string pInsertBlankPages = "insertblankpages";
private const string pDescription = "description";
private const string pScope = "scope";
private const string pFilterExpression = "filterexpression";
private const string pOnGenerateExpression = "ongenerateexpression";
private const string pIsHidden = "ishidden";
private const string pInsertBlankPages = "insertblankpages";
[DiscoAuthorize(Claims.Config.DocumentTemplate.Configure)]
[HttpPost, ValidateAntiForgeryToken]
@@ -396,7 +396,7 @@ namespace Disco.Web.Areas.API.Controllers
}
[HttpPost, ValidateAntiForgeryToken]
public virtual ActionResult Generate(string id, string targetId)
public virtual ActionResult Generate(string id, string targetId, bool? inline = false)
{
if (string.IsNullOrWhiteSpace(id))
throw new ArgumentNullException(nameof(id));
@@ -435,7 +435,7 @@ namespace Disco.Web.Areas.API.Controllers
}
Database.SaveChanges();
return File(document, "application/pdf", $"{package.Id}_{target.AttachmentReferenceId.Replace('\\', '_')}_{timestamp:yyyyMMdd-HHmmss}.pdf");
return File(document, "application/pdf", (inline ?? false) ? null : $"{package.Id}_{target.AttachmentReferenceId.Replace('\\', '_')}_{timestamp:yyyyMMdd-HHmmss}.pdf");
}
[DiscoAuthorize(Claims.Config.DocumentTemplate.Delete)]