Use mock capability for overview init.

[?]
Jan 28, 2021, 1:20 AM
GLQSD33YYNRDK23R7W2LEIXODI4N5JD3RHX5VMRR5WPMSVMS333QC

Dependencies

  • [2] PPW6ROC5 Render project data
  • [3] Z5KNL332 Add skeleton of project overview HTML.
  • [4] PT4276XC Add logout functionality.
  • [5] WRPIYG3E Use project listing functionality to check for whether we have a cookie.
  • [6] SAESJLLY Initial experiments in hash routing.
  • [7] BFZN4SUA Make timeline component work.
  • [8] QMEYU4MW Add display for prior intervals.
  • [9] NAFJ6RB3 Minor module reorg.
  • [10] QH4UB73N Format with purty.
  • [11] QU5FW67R Add project selection to time tracker.
  • [12] QAC2QJ32 Add project overview page to client.
  • [13] B4MTB6UO Persist project across pages.
  • [*] RB2ETNIF Add skeletal PureScript client project.

Change contents

  • replacement in client/src/Aftok/Overview.purs at line 7
    [3.270][3.270:313]()
    -- import Control.Monad.Trans.Class (lift)
    [3.270]
    [3.313]
    import Control.Monad.Trans.Class (lift)
  • edit in client/src/Aftok/Overview.purs at line 11
    [3.414][2.393:452]()
    import Data.Enum (toEnum)
    import Data.Date (canonicalDate)
  • replacement in client/src/Aftok/Overview.purs at line 13
    [2.535][2.535:577](),[2.577][3.6366:6405](),[3.534][3.6366:6405]()
    import Data.DateTime (DateTime(..), date)
    import Data.DateTime.Instant (Instant)
    [2.535]
    [2.578]
    import Data.DateTime (date)
  • replacement in client/src/Aftok/Overview.purs at line 22
    [3.723][2.713:772]()
    import Data.Maybe (Maybe(..), maybe, isNothing, fromMaybe)
    [3.723]
    [2.772]
    import Data.Maybe (Maybe(..), maybe, isNothing)
  • replacement in client/src/Aftok/Overview.purs at line 26
    [3.901][3.901:950]()
    -- import Data.Traversable (traverse_, traverse)
    [3.832]
    [3.950]
    import Data.Traversable (traverse_)
  • edit in client/src/Aftok/Overview.purs at line 30
    [3.1073]
    [3.1074]
    import Data.UUID (genUUID)
  • replacement in client/src/Aftok/Overview.purs at line 33
    [3.1126][3.1126:1162]()
    -- import Effect.Class (liftEffect)
    [3.1126]
    [3.1162]
    import Effect.Class (liftEffect)
  • edit in client/src/Aftok/Overview.purs at line 36
    [3.1224]
    [3.1225]
    import Effect.Now (nowDateTime)
  • replacement in client/src/Aftok/Overview.purs at line 61
    [3.6446][3.2016:2087](),[3.2016][3.2016:2087](),[3.2087][2.801:849]()
    -- import Aftok.Project (Project, Project'(..), ProjectId) --, pidStr)
    import Aftok.Types (System, ProjectId, dateStr)
    [3.6446]
    [3.873]
    import Aftok.Types (System, ProjectId, UserId(..), dateStr)
  • replacement in client/src/Aftok/Overview.purs at line 63
    [3.899][3.899:986]()
    (Project, Project'(..), ProjectEvent(..), Member', ProjectDetail, ProjectDetail'(..)
    [3.899]
    [3.986]
    (Project, Project'(..), ProjectEvent(..), ProjectDetail, ProjectDetail'(..)
  • replacement in client/src/Aftok/Overview.purs at line 96
    [3.9933][3.6593:6661]()
    = { getProjectMembers :: ProjectId -> m (Array (Member' Instant))
    [3.9933]
    [3.9939]
    = { getProjectDetail :: ProjectId -> m (Maybe ProjectDetail)
  • replacement in client/src/Aftok/Overview.purs at line 121
    [3.10450][2.871:1442]()
    , projectDetail: case input of
    Nothing -> Nothing
    Just p -> Just $ ProjectDetail'
    { project: p
    , depreciation: LinearDepreciation { undep: Days 30.0, dep: Days 300.0 }
    , contributors: M.singleton (unwrap p).initiator $ ProjectUserData'
    { userName: "Joe"
    , joinedOn: DateTime (fromMaybe bottom $ canonicalDate <$> (toEnum 2021) <*> (toEnum 1) <*> (toEnum 26)) bottom
    , totalContribution: Hours 100.0
    , currentPayoutRatio: 55 R.% 100
    }
    }
    [3.10450]
    [3.10450]
    , projectDetail: Nothing
  • replacement in client/src/Aftok/Overview.purs at line 338
    [3.11486][3.11486:11504]()
    pure unit
    [3.11486]
    [3.11504]
    currentProject <- H.gets (_.selectedProject)
    traverse_ (setProjectDetail <<< (\p -> (unwrap p).projectId)) currentProject
  • edit in client/src/Aftok/Overview.purs at line 348
    [3.11827]
    [3.4104]
    setProjectDetail (unwrap p).projectId
  • edit in client/src/Aftok/Overview.purs at line 350
    [3.4105]
    [3.4438]
    setProjectDetail :: ProjectId -> H.HalogenM OverviewState OverviewAction Slots ProjectEvent m Unit
    setProjectDetail pid = do
    detail <- lift $ caps.getProjectDetail pid
    H.modify_ (_ { projectDetail = detail })
  • replacement in client/src/Aftok/Overview.purs at line 357
    [3.10381][3.6888:6925](),[3.6888][3.6888:6925]()
    { getProjectMembers: \_ -> pure []
    [3.10381]
    [3.6925]
    { getProjectDetail: \_ -> pure Nothing
  • replacement in client/src/Aftok/Overview.purs at line 362
    [3.10399][3.6948:6985](),[3.6948][3.6948:6985]()
    { getProjectMembers: \_ -> pure []
    [3.10399]
    [3.6985]
    { getProjectDetail: \pid -> do
    t <- liftEffect nowDateTime
    uid <- UserId <$> liftEffect genUUID
    pure <<< Just $ ProjectDetail'
    { project: Project'
    { projectId: pid
    , projectName: "Fake Project"
    , inceptionDate: t
    , initiator: uid
    }
    , depreciation: LinearDepreciation { undep: Days 30.0, dep: Days 300.0 }
    , contributors: M.singleton uid $ ProjectUserData'
    { userName: "Joe"
    , joinedOn: t
    , totalContribution: Hours 100.0
    , currentPayoutRatio: 55 R.% 100
    }
    }
  • replacement in client/src/Main.purs at line 44
    [3.38720][3.6894:6934](),[3.3826][3.6894:6934]()
    overview = Overview.apiCapability
    [3.38720]
    [3.1684]
    overview = Overview.mockCapability
  • replacement in client/src/Main.purs at line 170
    [3.41379][3.41379:41526]()
    case result of
    Acc.LoginForbidden -> pure VLogin
    Acc.LoginError _ -> pure VLogin
    _ -> pure VTimeline
    [3.41379]
    [3.41526]
    pure $ case result of
    Acc.LoginForbidden -> VLogin
    Acc.LoginError _ -> VLogin
    _ -> case other of
    "timeline" -> VTimeline
    _ -> VOverview