Browse Source

Implementing DigitalFormSummary for Existing Forms

Frank van den Bos 2 years ago
parent
commit
992ff38e1e

+ 46 - 0
prs.classes/Entities/DigitalFormSummary/DigitalFormSummary.cs

@@ -0,0 +1,46 @@
+using System;
+using InABox.Core;
+
+namespace Comal.Classes
+{
+    
+    public class DigitalFormInstanceSummaryGenerator : AutoEntityUnionGenerator<IBaseDigitalFormInstance>
+    {
+        protected override void Configure()
+        {
+            AddTable<AssignmentForm>();
+            AddTable<EmployeeForm>();
+            AddTable<KanbanForm>();
+            AddTable<JobForm>();
+            AddTable<LeaveRequestForm>();
+            AddTable<PurchaseOrderItemForm>();
+            AddTable<TimeSheetForm>();
+        }
+
+        public override bool Distinct => false;
+
+        public override Column<IBaseDigitalFormInstance>[] IDColumns => new Column<IBaseDigitalFormInstance>[]
+        {
+            new Column<IBaseDigitalFormInstance>(x => x.ID),
+        };
+    }
+    
+    [AutoEntity(typeof(DigitalFormInstanceSummaryGenerator))]
+    public class DigitalFormInstanceSummary : Entity, IRemotable, IPersistent, IBaseDigitalFormInstance, ILicense<DigitalFormsLicense>
+    {
+        
+        public DigitalFormLink Form { get; set; }
+        
+        public DateTime FormStarted { get; set; }
+        
+        public DateTime FormCompleted { get; set; }
+        
+        public TimeSpan FormOpen { get; set; }
+        
+        protected override void Init()
+        {
+            base.Init();
+            Form = new DigitalFormLink();
+        }
+    }
+}

+ 1 - 1
prs.server/Engines/WebEngine/WebUtils.cs

@@ -2062,7 +2062,7 @@ for(let addTaskField of addTaskFields){
         /// <param name="id">An optional HTML id to add to root &lt;div&gt; of the generated item.</param>
         /// <param name="classList">An optional list of HTML classes to add to root &lt;div&gt; of the generated item.</param>
         /// <returns>A string containing raw HTML markup</returns>
-        public static string BuildDigitalFormViewer(IBaseDigitalFormInstance form, Entity entity, bool readOnly, string? id = null,
+        public static string BuildDigitalFormViewer(ICoreDigitalFormInstance form, Entity entity, bool readOnly, string? id = null,
             string[]? classList = null)
         {
             var formLayoutTable = new Client<DigitalFormLayout>().Query(