diff --git a/src/Mtlstats/Control/EditGoalie.hs b/src/Mtlstats/Control/EditGoalie.hs index 10fa61a..0db94fd 100644 --- a/src/Mtlstats/Control/EditGoalie.hs +++ b/src/Mtlstats/Control/EditGoalie.hs @@ -46,23 +46,23 @@ selectC = promptController goalieToEditPrompt editC :: EditGoalieMode -> Controller editC = \case - EGMenu -> menuC - EGNumber -> numberC - EGName -> nameC - EGYtd -> ytdMenuC - EGLifetime -> lifetimeMenuC - EGYtdGames -> ytdGamesC - EGYtdMins -> ytdMinsC - EGYtdGoals -> ytdGoalsC - EGYtdWins -> ytdWinsC - EGYtdLosses -> ytdLossesC - EGYtdTies -> ytdTiesC - EGLtGames -> ltGamesC - EGLtMins -> ltMinsC - EGLtGoals -> ltGoalsC - EGLtWins -> ltWinsC - EGLtLosses -> ltLossesC - EGLtTies -> ltTiesC + EGMenu -> menuC + EGNumber -> numberC + EGName -> nameC + EGYtd -> ytdMenuC + EGLifetime -> lifetimeMenuC + EGYtdGames b -> ytdGamesC b + EGYtdMins b -> ytdMinsC b + EGYtdGoals b -> ytdGoalsC b + EGYtdWins b -> ytdWinsC b + EGYtdLosses b -> ytdLossesC b + EGYtdTies -> ytdTiesC + EGLtGames b -> ltGamesC b + EGLtMins b -> ltMinsC b + EGLtGoals b -> ltGoalsC b + EGLtWins b -> ltWinsC b + EGLtLosses b -> ltLossesC b + EGLtTies -> ltTiesC menuC :: Controller menuC = menuControllerWith header editGoalieMenu @@ -79,38 +79,38 @@ ytdMenuC = menuControllerWith header editGoalieYtdMenu lifetimeMenuC :: Controller lifetimeMenuC = menuControllerWith header editGoalieLtMenu -ytdGamesC :: Controller -ytdGamesC = promptController editGoalieYtdGamesPrompt +ytdGamesC :: Bool -> Controller +ytdGamesC = promptController . editGoalieYtdGamesPrompt -ytdMinsC :: Controller -ytdMinsC = promptController editGoalieYtdMinsPrompt +ytdMinsC :: Bool -> Controller +ytdMinsC = promptController . editGoalieYtdMinsPrompt -ytdGoalsC :: Controller -ytdGoalsC = promptController editGoalieYtdGoalsPrompt +ytdGoalsC :: Bool -> Controller +ytdGoalsC = promptController . editGoalieYtdGoalsPrompt -ytdWinsC :: Controller -ytdWinsC = promptController editGoalieYtdWinsPrompt +ytdWinsC :: Bool -> Controller +ytdWinsC = promptController . editGoalieYtdWinsPrompt -ytdLossesC :: Controller -ytdLossesC = promptController editGoalieYtdLossesPrompt +ytdLossesC :: Bool -> Controller +ytdLossesC = promptController . editGoalieYtdLossesPrompt ytdTiesC :: Controller ytdTiesC = promptController editGoalieYtdTiesPrompt -ltGamesC :: Controller -ltGamesC = promptController editGoalieLtGamesPrompt +ltGamesC :: Bool -> Controller +ltGamesC = promptController . editGoalieLtGamesPrompt -ltMinsC :: Controller -ltMinsC = promptController editGoalieLtMinsPrompt +ltMinsC :: Bool -> Controller +ltMinsC = promptController . editGoalieLtMinsPrompt -ltGoalsC :: Controller -ltGoalsC = promptController editGoalieLtGoalsPrompt +ltGoalsC :: Bool -> Controller +ltGoalsC = promptController . editGoalieLtGoalsPrompt -ltWinsC :: Controller -ltWinsC = promptController editGoalieLtWinsPrompt +ltWinsC :: Bool -> Controller +ltWinsC = promptController . editGoalieLtWinsPrompt -ltLossesC :: Controller -ltLossesC = promptController editGoalieLtLossesPrompt +ltLossesC :: Bool -> Controller +ltLossesC = promptController . editGoalieLtLossesPrompt ltTiesC :: Controller ltTiesC = promptController editGoalieLtTiesPrompt diff --git a/src/Mtlstats/Menu/EditGoalie.hs b/src/Mtlstats/Menu/EditGoalie.hs index 38e15c3..f9daf1e 100644 --- a/src/Mtlstats/Menu/EditGoalie.hs +++ b/src/Mtlstats/Menu/EditGoalie.hs @@ -51,13 +51,14 @@ editGoalieMenu = Menu "*** EDIT GOALTENDER ***" () $ map editGoalieYtdMenu :: Menu () editGoalieYtdMenu = editMenu "*** EDIT GOALTENDER YEAR-TO-DATE ***" -- key, label, value - [ ( '1', "Edit YTD games", EGYtdGames ) - , ( '2', "Edit YTD minutes", EGYtdMins ) - , ( '3', "Edit YTD goals", EGYtdGoals ) - , ( '4', "Edit YTD wins", EGYtdWins ) - , ( '5', "Edit YTD losses", EGYtdLosses ) - , ( '6', "Edit YTD ties", EGYtdTies ) - , ( 'R', "Return to edit menu", EGMenu ) + [ ( '1', "Edit all YTD stats", EGYtdGames True ) + , ( '2', "Edit YTD games", EGYtdGames False ) + , ( '3', "Edit YTD minutes", EGYtdMins False ) + , ( '4', "Edit YTD goals", EGYtdGoals False ) + , ( '5', "Edit YTD wins", EGYtdWins False ) + , ( '6', "Edit YTD losses", EGYtdLosses False ) + , ( '7', "Edit YTD ties", EGYtdTies ) + , ( 'R', "Return to edit menu", EGMenu ) ] -- | The 'Goalie' lifetime edit menu @@ -65,13 +66,14 @@ editGoalieLtMenu :: Menu () editGoalieLtMenu = editMenu "*** EDIT GOALTENDER LIFETIME ***" -- key, label, value - [ ( '1', "Edit lifetime games", EGLtGames ) - , ( '2', "Edit lifetime minutes", EGLtMins ) - , ( '3', "Edit lifetime goals", EGLtGoals ) - , ( '4', "Edit lifetime wins", EGLtWins ) - , ( '5', "Edit lifetime losses", EGLtLosses ) - , ( '6', "Edit lifetime ties", EGLtTies ) - , ( 'R', "Return to edit menu", EGMenu ) + [ ( '1', "Edit all lifetime stats", EGLtGames True ) + , ( '2', "Edit lifetime games", EGLtGames False ) + , ( '3', "Edit lifetime minutes", EGLtMins False ) + , ( '4', "Edit lifetime goals", EGLtGoals False ) + , ( '5', "Edit lifetime wins", EGLtWins False ) + , ( '6', "Edit lifetime losses", EGLtLosses False ) + , ( '7', "Edit lifetime ties", EGLtTies ) + , ( 'R', "Return to edit menu", EGMenu ) ] editMenu :: String -> [(Char, String, EditGoalieMode)] -> Menu () diff --git a/src/Mtlstats/Prompt/EditGoalie.hs b/src/Mtlstats/Prompt/EditGoalie.hs index 9191d82..a5da5c6 100644 --- a/src/Mtlstats/Prompt/EditGoalie.hs +++ b/src/Mtlstats/Prompt/EditGoalie.hs @@ -63,29 +63,59 @@ editGoalieNamePrompt = namePrompt "Goalie name: " $ \name -> else editGoalie EGMenu $ gName .~ name -- | Prompt to edit a goalie's YTD games played -editGoalieYtdGamesPrompt :: Prompt -editGoalieYtdGamesPrompt = editNum "Year-to-date games played: " EGYtd +editGoalieYtdGamesPrompt + :: Bool + -- ^ Indicates whether or not we're in batch mode + -> Prompt +editGoalieYtdGamesPrompt batchMode = + editNum "Year-to-date games played: " mode (gYtd.gsGames .~) + where + mode = if batchMode then EGYtdMins True else EGYtd -- | Prompt to edit a goalie's YTD minutes played -editGoalieYtdMinsPrompt :: Prompt -editGoalieYtdMinsPrompt = editNum "Year-to-date minutes played: " EGYtd +editGoalieYtdMinsPrompt + :: Bool + -- ^ Indicates whether or not we're in batch mode + -> Prompt +editGoalieYtdMinsPrompt batchMode = + editNum "Year-to-date minutes played: " mode (gYtd.gsMinsPlayed .~) + where + mode = if batchMode then EGYtdGoals True else EGYtd -- | Prompt to edit a goalie's YTD goales allowed -editGoalieYtdGoalsPrompt :: Prompt -editGoalieYtdGoalsPrompt = editNum "Year-to-date goals allowed: " EGYtd +editGoalieYtdGoalsPrompt + :: Bool + -- ^ Indicates whether or not we're in batch mode + -> Prompt +editGoalieYtdGoalsPrompt batchMode = + editNum "Year-to-date goals allowed: " mode (gYtd.gsGoalsAllowed .~) + where + mode = if batchMode then EGYtdWins True else EGYtd -- | Prompt to edit a goalie's YTD wins -editGoalieYtdWinsPrompt :: Prompt -editGoalieYtdWinsPrompt = editNum "Year-to-date wins: " EGYtd +editGoalieYtdWinsPrompt + :: Bool + -- ^ Indicates whether or not we're in batch mode + -> Prompt +editGoalieYtdWinsPrompt batchMode = + editNum "Year-to-date wins: " mode (gYtd.gsWins .~) + where + mode = if batchMode then EGYtdLosses True else EGYtd -- | Prompt to edit a goalie's YTD losses -editGoalieYtdLossesPrompt :: Prompt -editGoalieYtdLossesPrompt = editNum "Year-to-date losses: " EGYtd +editGoalieYtdLossesPrompt + :: Bool + -- ^ Indicates whether or not we're in batch mode + -> Prompt +editGoalieYtdLossesPrompt batchMode = + editNum "Year-to-date losses: " mode (gYtd.gsLosses .~) + where + mode = if batchMode then EGYtdTies else EGYtd -- | Prompt to edit a goalie's YTD ties editGoalieYtdTiesPrompt :: Prompt @@ -93,29 +123,59 @@ editGoalieYtdTiesPrompt = editNum "Year-to-date ties: " EGYtd (gYtd.gsTies .~) -- | Prompt to edit a goalie's lifetime games played -editGoalieLtGamesPrompt :: Prompt -editGoalieLtGamesPrompt = editNum "Lifetime games played: " EGLifetime +editGoalieLtGamesPrompt + :: Bool + -- ^ Indicates whether or not we're in batch mode + -> Prompt +editGoalieLtGamesPrompt batchMode = + editNum "Lifetime games played: " mode (gLifetime.gsGames .~) + where + mode = if batchMode then EGLtMins True else EGLifetime -- | Prompt to edit a goalie's lifetime minutes played -editGoalieLtMinsPrompt :: Prompt -editGoalieLtMinsPrompt = editNum "Lifetime minutes played: " EGLifetime +editGoalieLtMinsPrompt + :: Bool + -- ^ Indicates whether or not we're in batch mode + -> Prompt +editGoalieLtMinsPrompt batchMode = + editNum "Lifetime minutes played: " mode (gLifetime.gsMinsPlayed .~) + where + mode = if batchMode then EGLtGoals True else EGLifetime -- | Prompt to edit a goalie's lifetime goals allowed -editGoalieLtGoalsPrompt :: Prompt -editGoalieLtGoalsPrompt = editNum "Lifetime goals allowed: " EGLifetime +editGoalieLtGoalsPrompt + :: Bool + -- ^ Indicates whether or not we're in batch mode + -> Prompt +editGoalieLtGoalsPrompt batchMode = + editNum "Lifetime goals allowed: " mode (gLifetime.gsGoalsAllowed .~) + where + mode = if batchMode then EGLtWins True else EGLifetime -- | Prompt to edit a goalie's lifetime wins -editGoalieLtWinsPrompt :: Prompt -editGoalieLtWinsPrompt = editNum "Lifetime wins: " EGLifetime +editGoalieLtWinsPrompt + :: Bool + -- ^ Indicates whether or not we're in batch mode + -> Prompt +editGoalieLtWinsPrompt batchMode = + editNum "Lifetime wins: " mode (gLifetime.gsWins .~) + where + mode = if batchMode then EGLtLosses True else EGLifetime -- | Prompt to edit a goalie's lifetime losses -editGoalieLtLossesPrompt :: Prompt -editGoalieLtLossesPrompt = editNum "Lifetime losses: " EGLifetime +editGoalieLtLossesPrompt + :: Bool + -- ^ Indicates whether or not we're in batch mode + -> Prompt +editGoalieLtLossesPrompt batchMode = + editNum "Lifetime losses: " mode (gLifetime.gsLosses .~) + where + mode = if batchMode then EGLtTies else EGLifetime -- | Prompt to edit a goalie's lifetime ties editGoalieLtTiesPrompt :: Prompt diff --git a/src/Mtlstats/Types.hs b/src/Mtlstats/Types.hs index bf842d8..62c6098 100644 --- a/src/Mtlstats/Types.hs +++ b/src/Mtlstats/Types.hs @@ -369,17 +369,17 @@ data EditGoalieMode | EGName | EGYtd | EGLifetime - | EGYtdGames - | EGYtdMins - | EGYtdGoals - | EGYtdWins - | EGYtdLosses + | EGYtdGames Bool + | EGYtdMins Bool + | EGYtdGoals Bool + | EGYtdWins Bool + | EGYtdLosses Bool | EGYtdTies - | EGLtGames - | EGLtMins - | EGLtGoals - | EGLtWins - | EGLtLosses + | EGLtGames Bool + | EGLtMins Bool + | EGLtGoals Bool + | EGLtWins Bool + | EGLtLosses Bool | EGLtTies deriving (Eq, Show)