diff --git a/server/AyaNova/Controllers/ReportController.cs b/server/AyaNova/Controllers/ReportController.cs
index 4fe6050c..01166891 100644
--- a/server/AyaNova/Controllers/ReportController.cs
+++ b/server/AyaNova/Controllers/ReportController.cs
@@ -194,7 +194,7 @@ namespace AyaNova.Api.Controllers
/// From route path
///
[HttpPost("data")]
- public async Task GetReportData([FromBody] ObjectReportDataParameter reportDataParam, ApiVersion apiVersion)
+ public async Task GetReportData([FromBody] ReportDataParameter reportDataParam, ApiVersion apiVersion)
{
/*{
public AyaType ObjectType { get; set; }
diff --git a/server/AyaNova/biz/ReportBiz.cs b/server/AyaNova/biz/ReportBiz.cs
index 2ff2db70..022b5e49 100644
--- a/server/AyaNova/biz/ReportBiz.cs
+++ b/server/AyaNova/biz/ReportBiz.cs
@@ -253,7 +253,7 @@ namespace AyaNova.Biz
//REPORT DATA
//Data fetched to return to report designer for Client report design usage
- public async Task GetReportData(ObjectReportDataParameter reportDataParam, AuthorizationRoles overrideRoles = AuthorizationRoles.NoRole)
+ public async Task GetReportData(ReportDataParameter reportDataParam, AuthorizationRoles overrideRoles = AuthorizationRoles.NoRole)
{
var log = AyaNova.Util.ApplicationLogging.CreateLogger("ReportBiz::GetReportData");
AuthorizationRoles effectiveRoles = CurrentUserRoles;
@@ -307,7 +307,7 @@ namespace AyaNova.Biz
//Get data
- var ReportData = await GetReportData(new ObjectReportDataParameter() { ObjectType = report.ObjectType, SelectedRowIds = reportParam.SelectedRowIds, DataListKey = reportParam.DataListKey, ListView = reportParam.ListView });
+ var ReportData = await GetReportData(new ReportDataParameter() { ObjectType = report.ObjectType, SelectedRowIds = reportParam.SelectedRowIds, DataListKey = reportParam.DataListKey, ListView = reportParam.ListView });
//initialization
log.LogDebug("Initializing report system");
@@ -355,11 +355,20 @@ namespace AyaNova.Biz
await page.AddScriptTagAsync(new AddTagOptions() { Content = report.JsHelpers });
await page.AddStyleTagAsync(new AddTagOptions() { Content = report.Style });
- var pagecontent = await page.GetContentAsync();
+ //add Client meta data
+ var clientMeta = "{}";
+ if (reportParam.ClientMeta != null)
+ clientMeta = reportParam.ClientMeta.ToString();
+ // await page.AddScriptTagAsync(new AddTagOptions() { Content = $"var ayClientMetaData = {clientMeta}" });
+ //this is how you view the contents of the page
+#if (DEBUG)
+ var pagecontent = await page.GetContentAsync();
+
+#endif
//compile and run handlebars template
- // var compileScript = $"let ayReportData=ayPreRender({ReportData});Handlebars.compile(`{report.Template}`)(ayReportData);";
- var compileScript = $"Handlebars.compile(`{report.Template}`)({{ayReportData:ayPreRender({ReportData})}});";
+
+ var compileScript = $"Handlebars.compile(`{report.Template}`)({{ ayReportData:ayPreRender({ReportData}), ayClientMetaData:{clientMeta} }});";
var resultHTML = await page.EvaluateExpressionAsync(compileScript);
//render report as HTML
diff --git a/server/AyaNova/models/dto/ReportingModels.cs b/server/AyaNova/models/dto/ReportingModels.cs
index d4b88a70..9fea3879 100644
--- a/server/AyaNova/models/dto/ReportingModels.cs
+++ b/server/AyaNova/models/dto/ReportingModels.cs
@@ -1,7 +1,8 @@
using AyaNova.Biz;
+using Newtonsoft.Json.Linq;
namespace AyaNova.Models
{
- public class ObjectReportDataParameter
+ public class ReportDataParameter
{
public AyaType ObjectType { get; set; }
public long[] SelectedRowIds { get; set; }
@@ -16,16 +17,8 @@ namespace AyaNova.Models
public long[] SelectedRowIds { get; set; }
public string DataListKey { get; set; }
public string ListView { get; set; }//optional, if null or empty will use default list view built into DataList
+ public JToken ClientMeta {get;set;}//meta JSON data passed from client, not part of biz object data
}
- public class RenderedReport
- {
- public string MimeType { get; set; }
- public byte[] RenderedOutput { get; set; }
- public RenderedReport()
- {
- MimeType = "application/pdf";
- RenderedOutput = null;
- }
- }
+
}
diff --git a/server/AyaNova/resource/rpt/ay-report.js b/server/AyaNova/resource/rpt/ay-report.js
index 7aba3dae..7eba1ec7 100644
--- a/server/AyaNova/resource/rpt/ay-report.js
+++ b/server/AyaNova/resource/rpt/ay-report.js
@@ -6,14 +6,16 @@ function ayRegisterHelpers() {
Handlebars.registerHelper("aymarkdown", function (astring) {
return marked(astring, { breaks: true });
});
+
+ Handlebars.registerHelper("ayJSON", function (obj) {
+ return JSON.stringify(obj, null, 3);
+ });
}
-function ayPreRender(theReportData) {
+function ayPreRender(theReportData) {
if (typeof reportPreRender === "function") {
return reportPreRender(theReportData);
- }else{
+ } else {
return theReportData;
}
}
-
-