Skip to content

Commit 2f3febc

Browse files
committed
Webapp: Set correct state when closing a task
1 parent be5113b commit 2f3febc

File tree

1 file changed

+38
-41
lines changed

1 file changed

+38
-41
lines changed

tasklite-webapp/src/Main.elm

Lines changed: 38 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import Css exposing (hover, url)
2121
import Css.Media exposing (withMediaQuery)
2222
import Graphql.Http
2323
import Graphql.OptionalArgument exposing (OptionalArgument(..))
24-
import Graphql.SelectionSet as SelectionSet exposing (SelectionSet)
24+
import Graphql.SelectionSet as SelectionSet exposing (SelectionSet, with)
2525
import Html.Styled
2626
exposing
2727
( a
@@ -76,6 +76,7 @@ dark =
7676
type alias TodoItem =
7777
{ ulid : Maybe String
7878
, body : Maybe String
79+
, state : Maybe String
7980
, closed_utc : Maybe String
8081
, due_utc : Maybe String
8182
, review_utc : Maybe String
@@ -89,6 +90,7 @@ emptyTodo : TodoItem
8990
emptyTodo =
9091
{ ulid = Nothing
9192
, body = Nothing
93+
, state = Nothing
9294
, closed_utc = Nothing
9395
, due_utc = Nothing
9496
, review_utc = Nothing
@@ -111,8 +113,7 @@ type Msg
111113
| AddTaskAt Posix
112114
| AddTask Posix Ulid
113115
| InsertAffectedRowsResponse (RemoteData (Graphql.Http.Error Int) Int)
114-
| SetCompletedNow String
115-
| SetCompletedAt Posix String
116+
| SetDone String
116117
| CompleteAffectedRowsResponse (RemoteData (Graphql.Http.Error Int) Int)
117118
| DeleteTask String
118119
| DeleteAffectedRowsResponse (RemoteData (Graphql.Http.Error Int) Int)
@@ -272,7 +273,7 @@ viewTodo now todo =
272273
onCheck
273274
(\bool ->
274275
if bool then
275-
SetCompletedNow ulid
276+
SetDone ulid
276277

277278
else
278279
-- TODO: Implement
@@ -519,28 +520,30 @@ view model =
519520

520521
tasksHeadSelection : SelectionSet TodoItem Tasks_head_row
521522
tasksHeadSelection =
522-
SelectionSet.map8 TodoItem
523-
Tasks_head_row.ulid
524-
Tasks_head_row.body
525-
Tasks_head_row.closed_utc
526-
Tasks_head_row.due_utc
527-
Tasks_head_row.review_utc
528-
Tasks_head_row.tags
529-
Tasks_head_row.repetition_duration
530-
Tasks_head_row.recurrence_duration
523+
SelectionSet.succeed TodoItem
524+
|> with Tasks_head_row.ulid
525+
|> with Tasks_head_row.body
526+
|> with Tasks_head_row.state
527+
|> with Tasks_head_row.closed_utc
528+
|> with Tasks_head_row.due_utc
529+
|> with Tasks_head_row.review_utc
530+
|> with Tasks_head_row.tags
531+
|> with Tasks_head_row.repetition_duration
532+
|> with Tasks_head_row.recurrence_duration
531533

532534

533535
tasksViewSelection : SelectionSet TodoItem Tasks_view_row
534536
tasksViewSelection =
535-
SelectionSet.map8 TodoItem
536-
Tasks_view_row.ulid
537-
Tasks_view_row.body
538-
Tasks_view_row.closed_utc
539-
Tasks_view_row.due_utc
540-
Tasks_view_row.review_utc
541-
Tasks_view_row.tags
542-
Tasks_view_row.repetition_duration
543-
Tasks_view_row.recurrence_duration
537+
SelectionSet.succeed TodoItem
538+
|> with Tasks_view_row.ulid
539+
|> with Tasks_view_row.body
540+
|> with Tasks_view_row.state
541+
|> with Tasks_view_row.closed_utc
542+
|> with Tasks_view_row.due_utc
543+
|> with Tasks_view_row.review_utc
544+
|> with Tasks_view_row.tags
545+
|> with Tasks_view_row.repetition_duration
546+
|> with Tasks_view_row.recurrence_duration
544547

545548

546549
getTodos : Cmd Msg
@@ -628,11 +631,11 @@ insertTodo now ulid body =
628631
(RemoteData.fromResult >> InsertAffectedRowsResponse)
629632

630633

631-
{-| Set task as completed (aka set `closed_utc`)
632-
TODO: Allow completing repetition and recurrence tasks
634+
{-| Set task as done
635+
TODO: Support completing repetition and recurrence tasks
633636
-}
634-
setTodoCompleted : Posix -> String -> Cmd Msg
635-
setTodoCompleted closedUtc ulid =
637+
setTodoCompleted : String -> Cmd Msg
638+
setTodoCompleted ulid =
636639
Mutation.update_tasks
637640
{ filter =
638641
buildTasks_filter
@@ -656,22 +659,25 @@ setTodoCompleted closedUtc ulid =
656659
}
657660
)
658661
, set =
659-
{ closed_utc = Present (Iso8601.fromTime closedUtc)
662+
{ state = Present "Done" -- SQL trigger will update `closed_utc`
663+
664+
-- TODO: Figure out why setting `modified_utc`
665+
-- prevents recursive trigger calls
666+
, modified_utc = Present ""
660667

661668
--
669+
, closed_utc = Absent
662670
, awake_utc = Absent
663671
, body = Absent
664672
, due_utc = Absent
665673
, group_ulid = Absent
666674
, metadata = Absent
667-
, modified_utc = Absent
668675
, priority_adjustment = Absent
669676
, ready_utc = Absent
670677
, recurrence_duration = Absent
671678
, repetition_duration = Absent
672679
, review_utc = Absent
673680
, rowid = Absent
674-
, state = Absent
675681
, ulid = Absent
676682
, user = Absent
677683
, waiting_utc = Absent
@@ -835,31 +841,22 @@ update msg model =
835841
, getTodos
836842
)
837843

838-
SetCompletedNow ulid ->
839-
( { model | submissionStatus = RemoteData.Loading }
840-
, Task.perform (\time -> SetCompletedAt time ulid) Time.now
841-
)
842-
843-
SetCompletedAt time ulid ->
844+
SetDone ulid ->
844845
( { model
845846
| remoteTodos =
846847
model.remoteTodos
847848
|> RemoteData.map
848849
(List.map
849850
(\todo ->
850851
if todo.ulid == Just ulid then
851-
{ todo
852-
| closed_utc =
853-
Just <|
854-
Iso8601.fromTime time
855-
}
852+
{ todo | state = Just "Done" }
856853

857854
else
858855
todo
859856
)
860857
)
861858
}
862-
, setTodoCompleted time ulid
859+
, setTodoCompleted ulid
863860
)
864861

865862
CompleteAffectedRowsResponse response ->

0 commit comments

Comments
 (0)