Skip to content

Commit

Permalink
Allow creation and naming of new assignables
Browse files Browse the repository at this point in the history
  • Loading branch information
Erudition committed Dec 4, 2023
1 parent e1afad0 commit 9b9104e
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 11 deletions.
2 changes: 1 addition & 1 deletion elm/Integrations/Marvin/MarvinItem.elm
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,7 @@ toDocketTask profile marvinItem =
projectChanger : Changer Project
projectChanger newProject =
-- TODO need Change.reuseContext ?
[ Task.Assignable.createWithinProject [ newAssignableChanger ] newProject ]
[ Task.Assignable.createWithinProject "TODO - Marvin assignable title?" [ newAssignableChanger ] newProject ]

newAssignableChanger : Changer Task.Assignable.Assignable
newAssignableChanger newAssignable =
Expand Down
31 changes: 24 additions & 7 deletions elm/Pages/TaskList.elm
Original file line number Diff line number Diff line change
Expand Up @@ -207,8 +207,25 @@ update shared msg model =

AddAssignable project ->
let
frameDescription =
"Added a new assignable to project."
handleResult result =
case result of
Ok newName ->
RunEffect <| Effect.saveChanges (frameDescription newName) (finalChanges newName)

Err _ ->
RunEffect <| Effect.none

promptOptions =
{ title = Just ("New Assignable in project: " ++ Maybe.withDefault "Untitled Project" (Project.title project))
, message = "Enter a name for the assignable."
, okButtonTitle = Just "Rename"
, cancelButtonTitle = Nothing
, inputPlaceholder = Just "Assignable title here"
, inputText = Nothing
}

frameDescription newName =
"Added a new assignable to project: " ++ newName

assignableChanger : Assignable -> List Change
assignableChanger parentAssignable =
Expand All @@ -218,12 +235,12 @@ update shared msg model =

-- actionToAdd =
-- Action.newActionSkel (Change.reuseContext "in-action" c) "first action" (\_ -> [])
finalChanges =
[ RepList.insert RepList.Last frameDescription shared.replica.errors
, Assignable.createWithinProject [ assignableChanger ] project
finalChanges newName =
[ RepList.insert RepList.Last (frameDescription newName) shared.replica.errors
, Assignable.createWithinProject newName [ assignableChanger ] project
]
in
( model, Effect.saveChanges frameDescription finalChanges )
( model, Effect.dialogPrompt handleResult promptOptions )

AddAssignment assignable ->
let
Expand Down Expand Up @@ -525,7 +542,7 @@ viewProject profile ( time, timeZone ) trackedTaskMaybe project =
entryContents =
case Project.children project |> RepList.listValues of
[] ->
text "No assignables in this project."
node "ion-button" [ attribute "fill" "clear", onClick (AddAssignable project) ] [ node "ion-icon" [ name "add-circle-outline" ] [], text "Add first assignable" ]

someChildren ->
div [] <| List.map viewProjectChild someChildren
Expand Down
6 changes: 3 additions & 3 deletions elm/Task/Assignable.elm
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ fromSkel project assignableSkelReg =
}


createWithinProject : List (Changer Assignable) -> Project -> Change
createWithinProject changers parentProject =
createWithinProject : String -> List (Changer Assignable) -> Project -> Change
createWithinProject newAssignableTitle changers parentProject =
let
assignableSkelChangers : List (Changer (Reg AssignableSkel))
assignableSkelChangers =
Expand All @@ -70,7 +70,7 @@ createWithinProject changers parentProject =
assignableSkelCreator : Changer (Reg AssignableSkel) -> Creator NestedOrAssignable
assignableSkelCreator skelChanger =
\wrappedContext ->
AssignableSkel.create "this assignable title was not set upon creation"
AssignableSkel.create newAssignableTitle
skelChanger
-- TODO debug then just use Change.mapCreator
(Change.reuseContext "NestedOrAssignable" wrappedContext)
Expand Down

0 comments on commit 9b9104e

Please sign in to comment.