forgot creation and deletion of certein references
This commit is contained in:
parent
11e70530b3
commit
cf2c3f652f
3 changed files with 22 additions and 0 deletions
|
@ -122,6 +122,13 @@ postMediumDeleteR mediumId = do
|
||||||
confirm <- lookupPostParam "confirm"
|
confirm <- lookupPostParam "confirm"
|
||||||
case confirm of
|
case confirm of
|
||||||
Just "confirm" -> do
|
Just "confirm" -> do
|
||||||
|
-- delete references first
|
||||||
|
albumId <- return $ mediumAlbum medium
|
||||||
|
album <- runDB $ getJust albumId
|
||||||
|
mediaList <- return $ albumContent album
|
||||||
|
newMediaList <- return $ removeItem mediumId mediaList
|
||||||
|
-- update reference List
|
||||||
|
runDB $ update albumId [AlbumContent =. newMediaList]
|
||||||
liftIO $ removeFile (normalise $ tail $ mediumPath medium)
|
liftIO $ removeFile (normalise $ tail $ mediumPath medium)
|
||||||
runDB $ delete mediumId
|
runDB $ delete mediumId
|
||||||
setMessage "Medium succesfully deleted"
|
setMessage "Medium succesfully deleted"
|
||||||
|
|
|
@ -27,8 +27,16 @@ postNewAlbumR = do
|
||||||
((result, albumWidget), enctype) <- runFormPost (albumForm userId)
|
((result, albumWidget), enctype) <- runFormPost (albumForm userId)
|
||||||
case result of
|
case result of
|
||||||
FormSuccess album -> do
|
FormSuccess album -> do
|
||||||
|
-- Put album in Database
|
||||||
albumId <- runDB $ insert album
|
albumId <- runDB $ insert album
|
||||||
|
-- add album reference in user
|
||||||
|
user <- runDB $ getJust userId
|
||||||
|
albumList <- return $ userAlbums user
|
||||||
|
newAlbumList <- return $ albumId : albumList
|
||||||
|
runDB $ update userId [UserAlbums =. newAlbumList]
|
||||||
|
-- create folder
|
||||||
liftIO $ createDirectory $ "static" </> "data" </> (unpack $ extractKey userId) </> (unpack $ extractKey albumId)
|
liftIO $ createDirectory $ "static" </> "data" </> (unpack $ extractKey userId) </> (unpack $ extractKey albumId)
|
||||||
|
-- outro
|
||||||
setMessage $ "Album successfully created"
|
setMessage $ "Album successfully created"
|
||||||
redirect $ ProfileR userId
|
redirect $ ProfileR userId
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ module Helper
|
||||||
, tagField
|
, tagField
|
||||||
, sendMail
|
, sendMail
|
||||||
, generateString
|
, generateString
|
||||||
|
, removeItem
|
||||||
)
|
)
|
||||||
where
|
where
|
||||||
|
|
||||||
|
@ -108,3 +109,9 @@ sendMail toEmail subject body =
|
||||||
|
|
||||||
generateString :: IO T.Text
|
generateString :: IO T.Text
|
||||||
generateString = (toHex . B.pack . take 16 . randoms) <$> newStdGen
|
generateString = (toHex . B.pack . take 16 . randoms) <$> newStdGen
|
||||||
|
|
||||||
|
removeItem :: Eq a => a -> [a] -> [a]
|
||||||
|
removeItem _ [] = []
|
||||||
|
removeItem x (y:ys)
|
||||||
|
| x == y = removeItem x ys
|
||||||
|
| otherwise = y : removeItem x ys
|
||||||
|
|
Loading…
Reference in a new issue