Fix state maintenance of the project list.
[?]
Feb 14, 2021, 6:30 PM
WCPNYBNQNXEHDMPXMDKLU34TJ6JL2WBMVWQJZQ6HMG6QUDCRPACQCDependencies
- [2]
YHSVVVYWAdd project creation modal. - [3]
QAC2QJ32Add project overview page to client. - [4]
BPIQKEXEgussify - [5]
RV7ZIULZUpdate overview to have access to the real project detail capability. - [6]
NJNMO72SAdd zcash.com submodule and update client to modern halogen. - [7]
IR75ZMX3Return actual events for interval ends, not just timestamps. - [8]
B4MTB6UOPersist project across pages. - [9]
U7YAT2ZKAdd error reporting to signup form. - [10]
QH4UB73NFormat with purty. - [11]
GLQSD33YUse mock capability for overview init. - [12]
VTZT2ILUWire up billing navigation. - [13]
V54JCKJXPayment request creation. - [14]
RSF6UAJKBreak out api module for timeline. - [15]
PPW6ROC5Render project data - [16]
KET5QGQPAdd billable list (in-progress) - [17]
XGMFJUERFix the broken modals. - [18]
AKM2VYBLFix errors with project ID persistence. - [19]
Z5KNL332Add skeleton of project overview HTML. - [20]
46PUXHTYImplement project invitations. - [21]
QMEYU4MWAdd display for prior intervals. - [22]
SAESJLLYInitial experiments in hash routing. - [23]
4GOBY5NQWIP on modals. - [24]
NAFJ6RB3Minor module reorg. - [25]
T2DN23M7Factor out billing create component. - [26]
KKJSBWO6Add createPaymentRequestHandler - [27]
ZHV75AENbasic cleanup - [28]
JXG3FCXYUpgrade ps + halogen versions. - [29]
QU5FW67RAdd project selection to time tracker. - [30]
OUR4PAOTUse local dates for display of intervals. - [31]
J6S23MDGUse server timestamps for interval start and end. - [32]
ZIG57EE6Fix project selection, end log end on project switch. - [33]
ANDJ6GEYAdd billing component skeleton. - [34]
7TQPQW3NBegin adding parsing for project detail. - [*]
WRPIYG3EUse project listing functionality to check for whether we have a cookie. - [*]
RB2ETNIFAdd skeletal PureScript client project.
Change contents
- edit in client/src/Aftok/Billing.purs at line 6
import Data.Foldable (all) - replacement in client/src/Aftok/Billing.purs at line 46
| ProjectSelected ProjectId| ProjectSelected (Maybe ProjectId) - replacement in client/src/Aftok/Billing.purs at line 85
{ handleAction = eval{ handleAction = handleAction - edit in client/src/Aftok/Billing.purs at line 87
, receive = Just <<< ProjectSelected - replacement in client/src/Aftok/Billing.purs at line 116
(Just <<< (\(ProjectList.ProjectChange p) -> ProjectSelected p))(Just <<< (\(ProjectList.ProjectChange p) -> ProjectSelected (Just p))) - replacement in client/src/Aftok/Billing.purs at line 195
eval :: BillingAction -> H.HalogenM BillingState BillingAction Slots ProjectList.Output m Uniteval action = dohandleAction :: BillingAction -> H.HalogenM BillingState BillingAction Slots ProjectList.Output m UnithandleAction action = do - replacement in client/src/Aftok/Billing.purs at line 202
ProjectSelected pid -> doProjectSelected pidMay -> do - replacement in client/src/Aftok/Billing.purs at line 204
refreshBillables pidwhen (all (_ /= pid) currentPid) $ doH.raise (ProjectList.ProjectChange pid)H.modify_ (_ { selectedProject = Just pid })traverse_ refreshBillables pidMaywhen (currentPid /= pidMay)$ traverse_ projectSelected pidMay - edit in client/src/Aftok/Billing.purs at line 219
projectSelected pid = doH.modify_ (_ { selectedProject = Just pid })H.raise (ProjectList.ProjectChange pid) - edit in client/src/Aftok/Overview.purs at line 11
import Data.Foldable (all) - replacement in client/src/Aftok/Overview.purs at line 53
| ProjectSelected ProjectId| ProjectSelected (Maybe ProjectId) - replacement in client/src/Aftok/Overview.purs at line 90
{ handleAction = eval{ handleAction = handleAction, receive = Just <<< ProjectSelected - replacement in client/src/Aftok/Overview.purs at line 120
(Just <<< (\(ProjectList.ProjectChange p) -> ProjectSelected p))(Just <<< (\(ProjectList.ProjectChange p) -> ProjectSelected (Just p))) - replacement in client/src/Aftok/Overview.purs at line 127
(Just <<< (\(Create.ProjectCreated p) -> ProjectSelected p))(Just <<< (\(Create.ProjectCreated p) -> ProjectSelected (Just p))) - replacement in client/src/Aftok/Overview.purs at line 240[3.651]→[2.3498:3598](∅→∅),[2.3598]→[3.11425:11444](∅→∅),[3.5275]→[3.11425:11444](∅→∅),[3.11425]→[3.11425:11444](∅→∅)
eval :: OverviewAction -> H.HalogenM OverviewState OverviewAction Slots ProjectList.Output m Uniteval action = dohandleAction :: OverviewAction -> H.HalogenM OverviewState OverviewAction Slots ProjectList.Output m UnithandleAction action = do - replacement in client/src/Aftok/Overview.purs at line 250
ProjectSelected pid -> doProjectSelected pidMay -> do - replacement in client/src/Aftok/Overview.purs at line 252[3.11626]→[2.3821:3866](∅→∅),[2.3866]→[3.11715:11730](∅→∅),[3.11715]→[3.11715:11730](∅→∅),[3.11730]→[2.3867:4015](∅→∅)
when (all (_ /= pid) currentProject)$ doH.raise (ProjectList.ProjectChange pid)H.modify_ (_ { selectedProject = Just pid })setProjectDetail pidwhen (currentProject /= pidMay)$ traverse_ projectSelected pidMaywhereprojectSelected pid = doH.modify_ (_ { selectedProject = Just pid })setProjectDetail pidH.raise (ProjectList.ProjectChange pid) - edit in client/src/Aftok/ProjectList.purs at line 72
, receive = Just <<< Initialize - replacement in client/src/Aftok/ProjectList.purs at line 120
lift <<< console.log $ "Selected project index " <> show itraverse_ (\p -> H.raise $ ProjectChange (unwrap p).projectId) (index projects (i - 1))traverse_ projectSelected (index projects (i - 1))whereprojectSelected p = dolet pid = (unwrap p).projectIdH.modify_ (_ { selectedPid = Just pid })H.raise $ ProjectChange pid - replacement in client/src/Aftok/Timeline.purs at line 15
import Data.Foldable (any, length)import Data.Foldable (length) - edit in client/src/Aftok/Timeline.purs at line 23
-- import Text.Format as F -- (format, zeroFill, width) - replacement in client/src/Aftok/Timeline.purs at line 101
| ProjectSelected ProjectId| ProjectSelected (Maybe ProjectId) - replacement in client/src/Aftok/Timeline.purs at line 137
{ handleAction = eval{ handleAction = handleAction - edit in client/src/Aftok/Timeline.purs at line 139
, receive = Just <<< ProjectSelected - replacement in client/src/Aftok/Timeline.purs at line 169
(Just <<< (\(ProjectList.ProjectChange pid) -> ProjectSelected pid))(Just <<< (\(ProjectList.ProjectChange pid) -> ProjectSelected (Just pid))) - replacement in client/src/Aftok/Timeline.purs at line 193[3.4813]→[2.13649:13749](∅→∅),[3.6430]→[3.29204:29223](∅→∅),[2.13749]→[3.29204:29223](∅→∅),[3.29204]→[3.29204:29223](∅→∅)
eval :: TimelineAction -> H.HalogenM TimelineState TimelineAction Slots ProjectList.Output m Uniteval action = dohandleAction :: TimelineAction -> H.HalogenM TimelineState TimelineAction Slots ProjectList.Output m UnithandleAction action = do - replacement in client/src/Aftok/Timeline.purs at line 200
ProjectSelected pid -> doProjectSelected pidMay -> do - replacement in client/src/Aftok/Timeline.purs at line 203
-- End any active intervals when switching projects.when (oldActive && any (_ /= pid) currentProject)$ (traverse_ logEnd currentProject)H.raise (ProjectList.ProjectChange pid)setStateForProject pidwhen (currentProject /= pidMay) $ do-- End any active intervals when switching projects.when oldActive $ traverse_ logEnd currentProjecttraverse_ projectSelected pidMay - edit in client/src/Aftok/Timeline.purs at line 220
whereprojectSelected pid = dosetStateForProject pidH.raise (ProjectList.ProjectChange pid) - replacement in client/src/Main.purs at line 198
ProjectAction (ProjectList.ProjectChange p) -> H.modify_ (_ { selectedProject = Just p })ProjectAction (ProjectList.ProjectChange p) ->H.modify_ (_ { selectedProject = Just p })