Skip to content

Chronivaro 0.3.0

Latest

Choose a tag to compare

@eitch eitch released this 01 Sep 08:40
· 22 commits to develop since this release
v0.3.0
8e98e95

Chronivaro 0.3.0

Changes since v0.2.0

  • [Project] Release 0.3.0 (8e98e95)
  • [New] Add upgrade and migration documentation (c770d93)
  • [New] Add runtime upgrade instructions generator (bc87fcc)
  • [Fix] Make test dates dynamic for WebWorkEntryModificationUiTest (a0a5ff3)
  • [New] Complete implementation of on-call reports and summaries (78fb604)
  • [New] Add on-call report API to OpenAPI spec (2697656)
  • [New] Add privileges for OnCallReportService (88b6cea)
  • [New] Add on-call report generation functionality (65c3794)
  • [New] Add on-call tagging support for work entries (5289686)
  • [New] Add optional comment support for timer start (b56dce3)
  • [New] Add isOnCall parameter to Templates.xml (c58ea93)
  • [New] Add isOnCall field to OpenAPI DTOs (7a3b8fc)
  • [New] Add support for on-call work entry tagging (58927f2)
  • [New] Add Task 4.2 and 4.3 details for on-call management (c0d81a0)
  • [New] Add OnCallPeriod template to Templates.xml (8d518f8)
  • [New] Add privileges for OnCallPeriod services and search (1e560e5)
  • [New] Add OnCallPeriodDto to OpenAPI spec (fe88103)
  • [New] Add on-call period management functionality (b24c1ed)
  • [New] Add office hours configuration support (045f582)
  • [New] Enable manual vacation correction entry for HR and supervisors (ed0a44c)
  • [New] Add privilege for AddVacationCorrectionService (f0ab2dc)
  • [New] Add vacation adjustment functionality (f39fe64)
  • [New] Add "Created At" column to vacation journal (0b9643b)
  • [New] Add createdAt property to OpenAPI spec (3344ac2)
  • [New] Add createdAt parameter to vacation template (283df6d)
  • [New] Add createdAt timestamps to vacation entries (c0d8ca0)
  • [Project] Updated .gitignore (34ca5b0)
  • [New] Add vacation recalculation guards and comments (d0496fd)
  • [New] Add vacation entitlement adjustments with reasons (240b243)
  • [Project] Update implementation documentation for backlog and status (12be903)
  • [New] Add locale-aware date formatting support in Format.js (4943903)
  • [New] Add support for next-day work entries and midnight splitting (0a7c8f6)
  • [New] Add handling for work entries spanning midnight (9920a6d)
  • [Project] Updated .gitignore (e3401a8)
  • [New] Add forgotten timer UI updates and refine presence cards (c7d89d6)
  • [New] Add forgotten timer handling and improved name tooltips (5736c6d)
  • [New] Refactor specifications into modular documents (47f70f9)
  • [New] Update backlog with feature and bug fix specifications (187100b)
  • [Fix] Correct typo in XML and remove unused parameter (8331135)
  • [Project] Next development version 0.3.0-SNAPSHOT (b36b861)

🔄 Runtime Upgrade Instructions (v0.2.0 → HEAD)

The following files in the runtime directory have been modified and require review or migration when upgrading an existing instance:

  • runtime/config/PrivilegeRoles.xml: Role definitions and service/search privilege permissions.
  • runtime/data/Model.xml: Default system configuration resources and initial master data.
  • runtime/data/Templates.xml: Resource, Order, and Activity model templates and element definitions.

Runtime Changes Diff

Review and apply the relevant diffs to your deployment environment:

# Diff for runtime/config/PrivilegeRoles.xml
diff --git a/runtime/config/PrivilegeRoles.xml b/runtime/config/PrivilegeRoles.xml
index 9685971..50d97fb 100644
--- a/runtime/config/PrivilegeRoles.xml
+++ b/runtime/config/PrivilegeRoles.xml
@@ -66,11 +66,13 @@
             <Allow>ch.eitchnet.chronivaro.core.service.GetVacationAccountSummaryService</Allow>
             <Allow>ch.eitchnet.chronivaro.core.service.PresenceService</Allow>
             <Allow>ch.eitchnet.chronivaro.core.service.AbsenceReportService</Allow>
+            <Allow>ch.eitchnet.chronivaro.core.service.OnCallReportService</Allow>
         </Privilege>
         <Privilege name="li.strolch.search.StrolchSearch" policy="DefaultPrivilege">
             <Allow>ch.eitchnet.chronivaro.core.search.AbsenceSearch</Allow>
             <Allow>ch.eitchnet.chronivaro.core.search.TimePeriodSearch</Allow>
             <Allow>ch.eitchnet.chronivaro.core.search.VacationAccountEntrySearch</Allow>
+            <Allow>ch.eitchnet.chronivaro.core.search.OnCallPeriodSearch</Allow>
         </Privilege>
         <Privilege name="PrivilegeSetUserPassword" policy="DefaultPrivilege">
             <AllAllowed>true</AllAllowed>
@@ -99,16 +101,22 @@
             <Allow>ch.eitchnet.chronivaro.core.service.RejectPeriodService</Allow>
             <Allow>ch.eitchnet.chronivaro.core.service.ReopenPeriodService</Allow>
             <Allow>ch.eitchnet.chronivaro.core.service.CalculateVacationEntitlementService</Allow>
+            <Allow>ch.eitchnet.chronivaro.core.service.AddVacationCorrectionService</Allow>
             <Allow>ch.eitchnet.chronivaro.core.service.GetVacationAccountSummaryService</Allow>
             <Allow>ch.eitchnet.chronivaro.core.service.DaySummaryService</Allow>
             <Allow>ch.eitchnet.chronivaro.core.service.MonthSummaryService</Allow>
             <Allow>ch.eitchnet.chronivaro.core.service.TeamReportService</Allow>
             <Allow>ch.eitchnet.chronivaro.core.service.AbsenceReportService</Allow>
+            <Allow>ch.eitchnet.chronivaro.core.service.OnCallReportService</Allow>
+            <Allow>ch.eitchnet.chronivaro.core.service.CreateOnCallPeriodService</Allow>
+            <Allow>ch.eitchnet.chronivaro.core.service.UpdateOnCallPeriodService</Allow>
+            <Allow>ch.eitchnet.chronivaro.core.service.RemoveOnCallPeriodService</Allow>
         </Privilege>
         <Privilege name="li.strolch.search.StrolchSearch" policy="DefaultPrivilege">
             <Allow>ch.eitchnet.chronivaro.core.search.AbsenceSearch</Allow>
             <Allow>ch.eitchnet.chronivaro.core.search.TimePeriodSearch</Allow>
             <Allow>ch.eitchnet.chronivaro.core.search.VacationAccountEntrySearch</Allow>
+            <Allow>ch.eitchnet.chronivaro.core.search.OnCallPeriodSearch</Allow>
         </Privilege>
         <Privilege name="PrivilegeSetUserPassword" policy="DefaultPrivilege">
             <AllAllowed>true</AllAllowed>
@@ -147,11 +155,16 @@
             <Allow>ch.eitchnet.chronivaro.core.service.GetVacationAccountSummaryService</Allow>
             <Allow>ch.eitchnet.chronivaro.core.service.TeamReportService</Allow>
             <Allow>ch.eitchnet.chronivaro.core.service.AbsenceReportService</Allow>
+            <Allow>ch.eitchnet.chronivaro.core.service.OnCallReportService</Allow>
+            <Allow>ch.eitchnet.chronivaro.core.service.CreateOnCallPeriodService</Allow>
+            <Allow>ch.eitchnet.chronivaro.core.service.UpdateOnCallPeriodService</Allow>
+            <Allow>ch.eitchnet.chronivaro.core.service.RemoveOnCallPeriodService</Allow>
         </Privilege>
         <Privilege name="li.strolch.search.StrolchSearch" policy="DefaultPrivilege">
             <Allow>ch.eitchnet.chronivaro.core.search.AbsenceSearch</Allow>
             <Allow>ch.eitchnet.chronivaro.core.search.TimePeriodSearch</Allow>
             <Allow>ch.eitchnet.chronivaro.core.search.VacationAccountEntrySearch</Allow>
+            <Allow>ch.eitchnet.chronivaro.core.search.OnCallPeriodSearch</Allow>
         </Privilege>
         <Privilege name="PrivilegeSetUserPassword" policy="DefaultPrivilege">
             <AllAllowed>true</AllAllowed>
# Diff for runtime/data/Model.xml
diff --git a/runtime/data/Model.xml b/runtime/data/Model.xml
index 794566e..4050fce 100644
--- a/runtime/data/Model.xml
+++ b/runtime/data/Model.xml
@@ -25,7 +25,8 @@
             <Parameter Id="companyName" Name="Company Name" Type="String" Value="Chronivaro"/>
             <Parameter Id="companyLogo" Name="Company Logo" Type="String" Value=""/>
             <Parameter Id="defaultLanguage" Name="Default Language" Type="String" Value="de"/>
-            <Parameter Id="serverBaseUrl" Name="Server Base URL" Type="String" Value="http://localhost:8080"/>
+            <Parameter Id="officeHoursStart" Name="Office Hours Start" Type="String" Value="07:00"/>
+            <Parameter Id="officeHoursEnd" Name="Office Hours End" Type="String" Value="18:00"/>
         </ParameterBag>
     </Resource>
# Diff for runtime/data/Templates.xml
diff --git a/runtime/data/Templates.xml b/runtime/data/Templates.xml
index 3954fcc..2753c98 100644
--- a/runtime/data/Templates.xml
+++ b/runtime/data/Templates.xml
@@ -30,6 +30,7 @@
             <Parameter Id="source" Name="Source" Type="String" Value=""/>
             <Parameter Id="comment" Name="Comment" Type="String" Value=""/>
             <Parameter Id="createdBy" Name="Created By" Type="String" Value=""/>
+            <Parameter Id="isOnCall" Name="Is On Call" Type="Boolean" Value="false"/>
         </ParameterBag>
         <ParameterBag Id="relations" Name="Relations" Type="Relations">
             <Parameter Id="employee" Name="Employee" Type="String" Interpretation="Resource-Ref" Uom="Employee" Value=""/>
@@ -99,13 +100,14 @@
     <Resource Id="VacationAccountEntry" Name="Template Vacation Account Entry" Type="Template">
         <ParameterBag Id="parameters" Name="Parameters" Type="Parameters">
             <Parameter Id="date" Name="Date" Type="Date" Value="1970-01-01T00:00:00.000+01:00"/>
+            <Parameter Id="createdAt" Name="Created At" Type="Date" Value="1970-01-01T00:00:00.000+01:00"/>
             <Parameter Id="vacationType" Name="Vacation Type" Type="String" Value=""/>
             <Parameter Id="value" Name="Value" Type="Integer" Value="0"/>
             <Parameter Id="comment" Name="Comment" Type="String" Value=""/>
         </ParameterBag>
         <ParameterBag Id="relations" Name="Relations" Type="Relations">
             <Parameter Id="employee" Name="Employee" Type="String" Interpretation="Resource-Ref" Uom="Employee" Value=""/>
-            <Parameter Id="absence" Name="Absence" Type="String" Interpretation="Resource-Ref" Uom="Absense" Value=""/>
+            <Parameter Id="absence" Name="Absence" Type="String" Interpretation="Resource-Ref" Uom="Absence" Value=""/>
         </ParameterBag>
     </Resource>
 
@@ -198,6 +200,22 @@
             <Parameter Id="companyLogo" Name="Company Logo" Type="String" Value=""/>
             <Parameter Id="defaultLanguage" Name="Default Language" Type="String" Value="de"/>
             <Parameter Id="serverBaseUrl" Name="Server Base URL" Type="String" Value="http://localhost:8080"/>
+            <Parameter Id="officeHoursStart" Name="Office Hours Start" Type="String" Value="07:00"/>
+            <Parameter Id="officeHoursEnd" Name="Office Hours End" Type="String" Value="18:00"/>
+        </ParameterBag>
+    </Resource>
+
+    <Resource Id="OnCallPeriod" Name="Template On-Call Period" Type="Template">
+        <ParameterBag Id="parameters" Name="Parameters" Type="Parameters">
+            <Parameter Id="startDate" Name="Start Date" Type="Date" Value="1970-01-01T00:00:00.000+01:00"/>
+            <Parameter Id="startTime" Name="Start Time" Type="String" Value=""/>
+            <Parameter Id="endDate" Name="End Date" Type="Date" Value="1970-01-01T00:00:00.000+01:00"/>
+            <Parameter Id="endTime" Name="End Time" Type="String" Value=""/>
+            <Parameter Id="comment" Name="Comment" Type="String" Value=""/>
+            <Parameter Id="createdBy" Name="Created By" Type="String" Value=""/>
+        </ParameterBag>
+        <ParameterBag Id="relations" Name="Relations" Type="Relations">
+            <Parameter Id="employee" Name="Employee" Type="String" Interpretation="Resource-Ref" Uom="Employee" Value=""/>
         </ParameterBag>
     </Resource>

📦 Distribution Artifacts

File Description
chronivaro-0.3.0.tar.gz Standalone application distribution archive (executable Chronivaro JAR and lib/ dependencies)
chronivaro-0.3.0.tar.gz.asc GPG ASCII-armored detached signature
runtime-0.3.0.tar.gz Sanitized Strolch runtime distribution archive
runtime-0.3.0.tar.gz.asc GPG ASCII-armored detached signature
runtime-upgrade-v0.2.0-to-v0.3.0.patch Unified diff patch to upgrade runtime/ configuration and templates from v0.2.0
runtime-upgrade-v0.2.0-to-v0.3.0.patch.asc GPG ASCII-armored detached signature
SHA256SUMS.txt SHA-256 verification checksums
SHA256SUMS.txt.asc GPG ASCII-armored detached signature