commit ea2732e525a8598d24aac2cf2fbf57665bf1a98a
parent 7a1901af7b968419036433e3d44a62a60d1d7e9d
Author: Daniel Barlow <dan@telent.net>
Date: Sun, 10 Nov 2024 17:30:28 +0000
linkify calendar entries
Diffstat:
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/app/Main.hs b/app/Main.hs
@@ -10,7 +10,9 @@ import Control.Monad.Logger (runStderrLoggingT)
import Control.Monad.Trans.Resource (runResourceT)
import Data.ByteString.Lazy as BS
import Data.List as List
-import Data.Time.Clock.POSIX (posixSecondsToUTCTime)
+import Data.Text as T
+import Data.Time.Clock.POSIX (posixSecondsToUTCTime, utcTimeToPOSIXSeconds)
+import Data.Time.Clock (nominalDiffTimeToSeconds)
import Database.Persist.Postgresql (ConnectionPool, ConnectionString, SqlBackend, runMigration, runSqlPool, getPgInterval, withPostgresqlPool)
import Debug.Trace (traceShow)
import Session
@@ -56,6 +58,8 @@ instance YesodPersist Souplesse where
getCalendarR :: Handler Html
getCalendarR = do
+ let fTime = T.pack . show . floor . utcTimeToPOSIXSeconds
+ fDur = T.pack . show . ceiling . nominalDiffTimeToSeconds . getPgInterval
(formWidget, _) <- generateFormPost uploadForm
sessions' <- runDB Session.recents
defaultLayout
@@ -65,8 +69,8 @@ getCalendarR = do
<p>A calendar view goes here
<ul>
$forall s <- sessions'
- <li>#{show $ sessionStartTime s} #{show $ getPgInterval (sessionDuration s)}
-
+ <li>
+ <a href=@?{(TimelineR, [("start", fTime $ sessionStartTime s), ("duration", fDur $ sessionDuration s)])} > #{show $ sessionStartTime s} #{show $ getPgInterval (sessionDuration s)}
<form action="/upload" method=post enctype="multipart/form-data">
^{formWidget}