exporting: remember last options for documents/user flags/device flags

This commit is contained in:
Gary Sharp
2025-02-26 13:06:34 +11:00
parent 04430bba50
commit d2b5e7ab6a
11 changed files with 94 additions and 91 deletions
@@ -409,6 +409,9 @@ namespace Disco.Web.Areas.API.Controllers
if (Model == null || Model.Options == null)
throw new ArgumentNullException(nameof(Model));
Database.DiscoConfiguration.DeviceFlags.LastExportOptions = Model.Options;
Database.SaveChanges();
// Start Export
var exportContext = new DeviceFlagExport(Model.Options);
var taskContext = ExportTask.ScheduleNowCacheResult(exportContext, id => Url.Action(MVC.Config.DeviceFlag.Export(id, null, null)));
@@ -444,6 +447,8 @@ namespace Disco.Web.Areas.API.Controllers
[HttpPost, ValidateAntiForgeryToken]
public virtual ActionResult SaveExport(ExportModel Model)
{
Database.DiscoConfiguration.DeviceFlags.LastExportOptions = Model.Options;
var export = new DeviceFlagExport(Model.Options);
var savedExport = SavedExports.SaveExport(export, Database, CurrentUser);
@@ -1462,6 +1462,9 @@ namespace Disco.Web.Areas.API.Controllers
if (Model.Options.DocumentTemplateIds.Count == 1)
templateId = Model.Options.DocumentTemplateIds.First();
Database.DiscoConfiguration.Documents.LastExportOptions = Model.Options;
Database.SaveChanges();
// Start Export
var exportContext = new DocumentExport(Model.Options);
var taskContext = ExportTask.ScheduleNowCacheResult(exportContext, id => Url.Action(MVC.Config.DocumentTemplate.Export(templateId, id)));
@@ -1494,6 +1497,8 @@ namespace Disco.Web.Areas.API.Controllers
[HttpPost, ValidateAntiForgeryToken]
public virtual ActionResult SaveExport(ExportModel Model)
{
Database.DiscoConfiguration.Documents.LastExportOptions = Model.Options;
var export = new DocumentExport(Model.Options);
var savedExport = SavedExports.SaveExport(export, Database, CurrentUser);
@@ -414,6 +414,9 @@ namespace Disco.Web.Areas.API.Controllers
if (Model == null || Model.Options == null)
throw new ArgumentNullException(nameof(Model));
Database.DiscoConfiguration.UserFlags.LastExportOptions = Model.Options;
Database.SaveChanges();
// Start Export
var exportContext = new UserFlagExport(Model.Options);
var taskContext = ExportTask.ScheduleNowCacheResult(exportContext, id => Url.Action(MVC.Config.UserFlag.Export(id, null, null)));
@@ -446,6 +449,8 @@ namespace Disco.Web.Areas.API.Controllers
[HttpPost, ValidateAntiForgeryToken]
public virtual ActionResult SaveExport(ExportModel Model)
{
Database.DiscoConfiguration.UserFlags.LastExportOptions = Model.Options;
var export = new UserFlagExport(Model.Options);
var savedExport = SavedExports.SaveExport(export, Database, CurrentUser);
@@ -125,7 +125,7 @@ namespace Disco.Web.Areas.Config.Controllers
{
var m = new ExportModel()
{
Options = DeviceFlagExportOptions.DefaultOptions(),
Options = Database.DiscoConfiguration.DeviceFlags.LastExportOptions,
DeviceFlags = DeviceFlagService.GetDeviceFlags(),
};
@@ -302,7 +302,7 @@ namespace Disco.Web.Areas.Config.Controllers
{
var m = new ExportModel()
{
Options = DocumentExportOptions.DefaultOptions(),
Options = Database.DiscoConfiguration.Documents.LastExportOptions,
DocumentTemplates = Database.DocumentTemplates.OrderBy(d => d.Id).ToList(),
};
@@ -128,7 +128,7 @@ namespace Disco.Web.Areas.Config.Controllers
{
var m = new ExportModel()
{
Options = UserFlagExportOptions.DefaultOptions(),
Options = Database.DiscoConfiguration.UserFlags.LastExportOptions,
UserFlags = UserFlagService.GetUserFlags(),
};