aboutsummaryrefslogtreecommitdiff
path: root/TJLaskuri.Core
diff options
context:
space:
mode:
authorJoel Stålnacke <joel@saker.fi>2025-08-02 18:28:44 +0300
committerJoel Stålnacke <joel@saker.fi>2025-08-02 18:28:44 +0300
commit1790a3f5447907338cdbbfc9f44256cf74f36e31 (patch)
tree2afa8a436075ef5be465ae21011696de6890a215 /TJLaskuri.Core
parent6b46930cfd23c59a359460c84085e9333aea4521 (diff)
Rebrand to Aamukampa
Diffstat (limited to 'TJLaskuri.Core')
-rw-r--r--TJLaskuri.Core/Library.fs27
-rw-r--r--TJLaskuri.Core/TJLaskuri.Core.fsproj18
-rw-r--r--TJLaskuri.Core/Types.fs42
-rw-r--r--TJLaskuri.Core/Views.fs88
4 files changed, 0 insertions, 175 deletions
diff --git a/TJLaskuri.Core/Library.fs b/TJLaskuri.Core/Library.fs
deleted file mode 100644
index aa7b7ea..0000000
--- a/TJLaskuri.Core/Library.fs
+++ /dev/null
@@ -1,27 +0,0 @@
-namespace TJLaskuri.Core
-
-open System
-
-module Domain =
- // TODO: More precise time: hours, minutes
- // TODO: Time until service starts
-
- let getStartDate kontingent =
- match serviceStartDates.TryGetValue(kontingent) with
- | true, startDate -> Some startDate
- | false, _ -> None
-
- let getEndDate kontingent serviceTime =
- getStartDate kontingent
- |> Option.map (fun startDate ->
- ServiceTime.getDays serviceTime
- |> fun x -> x - 1 // Count start date as well
- |> startDate.AddDays)
-
- let getTimeCompleted kontingent (now : DateTime) =
- getStartDate kontingent
- |> Option.map (fun date -> now.AddDays(1) - date)
-
- let getTimeLeft kontingent serviceTime (now : DateTime) =
- getEndDate kontingent serviceTime
- |> Option.map (fun date -> date - now)
diff --git a/TJLaskuri.Core/TJLaskuri.Core.fsproj b/TJLaskuri.Core/TJLaskuri.Core.fsproj
deleted file mode 100644
index bc6029f..0000000
--- a/TJLaskuri.Core/TJLaskuri.Core.fsproj
+++ /dev/null
@@ -1,18 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
- <PropertyGroup>
- <TargetFramework>net9.0</TargetFramework>
- <GenerateDocumentationFile>true</GenerateDocumentationFile>
- </PropertyGroup>
-
- <ItemGroup>
- <Compile Include="Types.fs" />
- <Compile Include="Views.fs" />
- <Compile Include="Library.fs" />
- </ItemGroup>
-
- <ItemGroup>
- <PackageReference Include="Falco.Markup" Version="1.2.0" />
- </ItemGroup>
-
-</Project>
diff --git a/TJLaskuri.Core/Types.fs b/TJLaskuri.Core/Types.fs
deleted file mode 100644
index 0c5b2d4..0000000
--- a/TJLaskuri.Core/Types.fs
+++ /dev/null
@@ -1,42 +0,0 @@
-namespace TJLaskuri.Core
-
-open System
-open System.Collections.Generic
-
-[<AutoOpen>]
-module Types =
- /// Saapumiserä/kontingent N/Year
- /// For example, 2/25 is { N = 2; Year = 2025 }
- // Year field is first so that kontingents are sorted year first
- type Kontingent = { Year : int; N : int }
-
- type ServiceTime =
- | OneSixFive
- | TwoFiveFive
- | ThreeFourSeven
-
- module ServiceTime =
- let getDays = function
- | OneSixFive -> 165
- | TwoFiveFive -> 255
- | ThreeFourSeven -> 347
-
- let kontingent n year = { N = n; Year = year }
-
- let serviceStartDates =
- let date day month year =
- DateTime((year : int), month, day)
- let entry n year endDate =
- let k = kontingent n year
- KeyValuePair<Kontingent, DateTime>(
- k, endDate)
-
- Dictionary<Kontingent, DateTime>([
- entry 2 2024 (date 8 7 2024)
- entry 1 2025 (date 6 1 2025)
- entry 2 2025 (date 7 7 2025)
- entry 1 2026 (date 5 1 2026)
- entry 2 2026 (date 6 7 2026)
- entry 1 2027 (date 4 1 2027)
- entry 2 2027 (date 5 7 2027)
- ])
diff --git a/TJLaskuri.Core/Views.fs b/TJLaskuri.Core/Views.fs
deleted file mode 100644
index 939acec..0000000
--- a/TJLaskuri.Core/Views.fs
+++ /dev/null
@@ -1,88 +0,0 @@
-namespace TJLaskuri.Core.Views
-
-open System
-open Falco.Markup
-open Elem
-open Attr
-open Text
-
-module Document =
- let view documentBody =
- html [ lang "fi" ] [
- head [] [
- meta [ charset "utf-8" ]
- meta [ name "viewport"; content "width=device-width" ]
- Elem.title [] [ raw "TJ-laskuri" ]
- script [ type' "module"; src "/js/app.js" ] []
- link [ rel "stylesheet"; href "/styles.css" ]
- ]
- body [] [
- documentBody
- ]
- ]
-
-module Main =
- type Model = {
- TimeLeft : TimeSpan
- TimeCompleted : TimeSpan
- }
-
- let view model =
- main [] [
- div [ class' "counter" ] [
- Elem.span [ class' "counter_title" ] [
- raw "Tänään jäljellä"
- ]
- Elem.span [ class' "counter_value" ] [
- enc (string <| Math.Ceiling model.TimeLeft.TotalDays)
- ]
- Elem.span [ class' "counter_mornings" ] [
- raw " aamua"
- ]
- ]
-
- div [ class' "progress-bar" ] [
- let p = 100.0 * (1.0 - model.TimeLeft / (model.TimeLeft + model.TimeCompleted))
- let cssWidth = sprintf "%s%%" (p.ToString("F2"))
-
- div [
- class' "progress-bar_value"
- style <|
- sprintf "background-color: green; width: %s"
- cssWidth
- ] [
- span <| sprintf "%s %%" (p.ToString("F2"))
- ]
- ]
-
- Elem.p [
- style "text-align: center; font-size: 1.5rem;"
- ] [
- enc "2/25 347"
- ]
-
- // div [] [
- // Elem.label [ for' "kontingent-select" ] [ raw "Saapumiserä:" ]
- // select [ id "kontingent-select" ] [
- // option [ value "1/25" ] [ enc "1/25" ]
- // option [ value "2/25" ] [ enc "2/25" ]
- // option [ value "1/26" ] [ enc "1/26" ]
- // option [ value "2/26" ] [ enc "2/26" ]
- // ]
- // ]
-
- // div [] [
- // Elem.p [] [
- // span "Tunteina"
- // enc (string model.TimeLeft.TotalHours)
- // ]
- // Elem.p [] [
- // span "Sekunteina"
- // enc (string model.TimeLeft.TotalSeconds)
- // ]
- // Elem.p [] [
- // span "Aamuja ohi "
- // enc (string <| Math.Floor model.TimeCompleted.TotalDays)
- // ]
- // ]
- ]