diff --git a/.gitignore b/.gitignore index 5112fe0..1122c14 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ config/userConfig.json CarCareTracker.csproj.user Properties/launchSettings.json data/cartracker-log.db +data/widgets.html diff --git a/Controllers/Vehicle/ReportController.cs b/Controllers/Vehicle/ReportController.cs index d80d107..7d4810f 100644 --- a/Controllers/Vehicle/ReportController.cs +++ b/Controllers/Vehicle/ReportController.cs @@ -22,6 +22,8 @@ namespace CarCareTracker.Controllers var odometerRecords = _odometerRecordDataAccess.GetOdometerRecordsByVehicleId(vehicleId); var userConfig = _config.GetUserConfig(User); var viewModel = new ReportViewModel(); + //check if custom widgets are configured + viewModel.CustomWidgetsConfigured = _fileHelper.WidgetsExist(); //get totalCostMakeUp viewModel.CostMakeUpForVehicle = new CostMakeUpForVehicle { @@ -528,5 +530,11 @@ namespace CarCareTracker.Controllers }).ToList(); return PartialView("_GasCostByMonthReport", groupedRecord); } + [HttpGet] + public IActionResult GetAdditionalWidgets() + { + var widgets = _fileHelper.GetWidgets(); + return PartialView("_ReportWidgets", widgets); + } } } diff --git a/Helper/FileHelper.cs b/Helper/FileHelper.cs index e3c70fa..5e2a7f6 100644 --- a/Helper/FileHelper.cs +++ b/Helper/FileHelper.cs @@ -16,6 +16,8 @@ namespace CarCareTracker.Helper int ClearTempFolder(); int ClearUnlinkedThumbnails(List linkedImages); int ClearUnlinkedDocuments(List linkedDocuments); + string GetWidgets(); + bool WidgetsExist(); } public class FileHelper : IFileHelper { @@ -368,5 +370,27 @@ namespace CarCareTracker.Helper } return filesDeleted; } + public string GetWidgets() + { + if (File.Exists(StaticHelper.AdditionalWidgetsPath)) + { + try + { + //read file + var widgets = File.ReadAllText(StaticHelper.AdditionalWidgetsPath); + return widgets; + } + catch (Exception ex) + { + _logger.LogError(ex.Message); + return string.Empty; + } + } + return string.Empty; + } + public bool WidgetsExist() + { + return File.Exists(StaticHelper.AdditionalWidgetsPath); + } } } diff --git a/Helper/StaticHelper.cs b/Helper/StaticHelper.cs index a9f12fc..e994dcb 100644 --- a/Helper/StaticHelper.cs +++ b/Helper/StaticHelper.cs @@ -12,6 +12,7 @@ namespace CarCareTracker.Helper public static string VersionNumber = "1.4.0"; public static string DbName = "data/cartracker.db"; public static string UserConfigPath = "config/userConfig.json"; + public static string AdditionalWidgetsPath = "data/widgets.html"; public static string GenericErrorMessage = "An error occurred, please try again later"; public static string ReminderEmailTemplate = "defaults/reminderemailtemplate.txt"; public static string DefaultAllowedFileExtensions = ".png,.jpg,.jpeg,.pdf,.xls,.xlsx,.docx"; diff --git a/Models/Report/ReportViewModel.cs b/Models/Report/ReportViewModel.cs index 7696f3d..87a6c54 100644 --- a/Models/Report/ReportViewModel.cs +++ b/Models/Report/ReportViewModel.cs @@ -8,5 +8,6 @@ public ReminderMakeUpForVehicle ReminderMakeUpForVehicle { get; set; } = new ReminderMakeUpForVehicle(); public List Years { get; set; } = new List(); public List Collaborators { get; set; } = new List(); + public bool CustomWidgetsConfigured { get; set; } = false; } } diff --git a/Views/Vehicle/_Report.cshtml b/Views/Vehicle/_Report.cshtml index 47534f4..e3e2396 100644 --- a/Views/Vehicle/_Report.cshtml +++ b/Views/Vehicle/_Report.cshtml @@ -126,6 +126,12 @@
+ @if (Model.CustomWidgetsConfigured) + { +
+ +
+ } @@ -153,6 +159,15 @@ +@if (Model.CustomWidgetsConfigured) +{ + +}