fix: web: add: don't fail when there's no file field (#1932)
This commit is contained in:
parent
3411949313
commit
599264b212
@ -49,14 +49,15 @@ addForm j today = identifyForm "add" $ \extra -> do
|
|||||||
let -- bindings used in add-form.hamlet
|
let -- bindings used in add-form.hamlet
|
||||||
descriptions = foldMap S.fromList [journalPayeesDeclaredOrUsed j, journalDescriptions j]
|
descriptions = foldMap S.fromList [journalPayeesDeclaredOrUsed j, journalDescriptions j]
|
||||||
files = fst <$> jfiles j
|
files = fst <$> jfiles j
|
||||||
|
deffile = journalFilePath j
|
||||||
(dateRes, dateView) <- mreq dateField dateSettings Nothing
|
(dateRes, dateView) <- mreq dateField dateSettings Nothing
|
||||||
(descRes, descView) <- mopt textField descSettings Nothing
|
(descRes, descView) <- mopt textField descSettings Nothing
|
||||||
(acctsRes, _) <- mreq listField acctSettings Nothing
|
(acctsRes, _) <- mreq listField acctSettings Nothing
|
||||||
(amtsRes, _) <- mreq listField amtSettings Nothing
|
(amtsRes, _) <- mreq listField amtSettings Nothing
|
||||||
(fileRes, fileView) <- mreq fileField' fileSettings Nothing
|
(fileRes, fileView) <- mopt fileField' fileSettings Nothing
|
||||||
let
|
let
|
||||||
(postingsRes, displayRows) = validatePostings acctsRes amtsRes
|
(postingsRes, displayRows) = validatePostings acctsRes amtsRes
|
||||||
formRes = validateTransaction dateRes descRes postingsRes fileRes
|
formRes = validateTransaction deffile dateRes descRes postingsRes fileRes
|
||||||
return (formRes, $(widgetFile "add-form"))
|
return (formRes, $(widgetFile "add-form"))
|
||||||
where
|
where
|
||||||
-- custom fields
|
-- custom fields
|
||||||
@ -86,22 +87,23 @@ addForm j today = identifyForm "add" $ \extra -> do
|
|||||||
fileSettings = FieldSettings "file" Nothing Nothing (Just "file") [("class", "form-control input-lg")]
|
fileSettings = FieldSettings "file" Nothing Nothing (Just "file") [("class", "form-control input-lg")]
|
||||||
|
|
||||||
validateTransaction ::
|
validateTransaction ::
|
||||||
FormResult Day -> FormResult (Maybe Text) -> FormResult [Posting] -> FormResult FilePath
|
FilePath -> FormResult Day -> FormResult (Maybe Text) -> FormResult [Posting] -> FormResult (Maybe FilePath)
|
||||||
-> FormResult (Transaction, FilePath)
|
-> FormResult (Transaction, FilePath)
|
||||||
validateTransaction dateRes descRes postingsRes fileRes =
|
validateTransaction deffile dateRes descRes postingsRes fileRes =
|
||||||
case makeTransaction <$> dateRes <*> descRes <*> postingsRes <*> fileRes of
|
case makeTransaction <$> dateRes <*> descRes <*> postingsRes <*> fileRes of
|
||||||
FormSuccess (txn,f) -> case balanceTransaction defbalancingopts txn of
|
FormSuccess (txn,f) -> case balanceTransaction defbalancingopts txn of
|
||||||
Left e -> FormFailure [T.pack e]
|
Left e -> FormFailure [T.pack e]
|
||||||
Right txn' -> FormSuccess (txn',f)
|
Right txn' -> FormSuccess (txn',f)
|
||||||
x -> x
|
x -> x
|
||||||
where
|
where
|
||||||
makeTransaction date mdesc postings f =
|
makeTransaction date mdesc postings mfile =
|
||||||
(nulltransaction {
|
(nulltransaction {
|
||||||
tdate = date
|
tdate = date
|
||||||
,tdescription = fromMaybe "" mdesc
|
,tdescription = fromMaybe "" mdesc
|
||||||
,tpostings = postings
|
,tpostings = postings
|
||||||
,tsourcepos = (initialPos f, initialPos f)
|
,tsourcepos = (initialPos f, initialPos f)
|
||||||
}, f)
|
}, f)
|
||||||
|
where f = fromMaybe deffile mfile
|
||||||
|
|
||||||
-- | Parse a list of postings out of a list of accounts and a corresponding list
|
-- | Parse a list of postings out of a list of accounts and a corresponding list
|
||||||
-- of amounts
|
-- of amounts
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user