now working
This commit is contained in:
parent
22f4cdce73
commit
ac2cb03de8
4 changed files with 27 additions and 8 deletions
|
@ -108,23 +108,35 @@ deleteMedium mId medium = do
|
|||
|
||||
moveMedium :: Medium -> MediumId -> AlbumId -> Handler ()
|
||||
moveMedium med mId destId = do
|
||||
$(logError) "getting destination"
|
||||
dest <- runDB $ getJust destId
|
||||
-- remove reference
|
||||
$(logError) "removing reference"
|
||||
removeReference mId $ mediumAlbum med
|
||||
-- move physical Files
|
||||
let filen = show $ length (albumContent dest) + 1
|
||||
ext = takeExtension $ mediumPath med
|
||||
nPath = "static" </> "data" </> T.unpack (extractKey $ albumOwner dest) </> T.unpack (extractKey destId) </> filen ++ ext
|
||||
nThumb = takeBaseName nPath ++ "_thumb.jpg"
|
||||
nPrev = takeBaseName nPath ++ "_preview.jpg"
|
||||
liftIO $ renameFile (mediumPath med) nPath
|
||||
liftIO $ renameFile (mediumThumb med) nThumb
|
||||
liftIO $ renameFile (mediumPreview med) nPrev
|
||||
prefix = "static" </> "data" </> T.unpack (extractKey $ albumOwner dest) </> T.unpack (extractKey destId)
|
||||
nPath = prefix </> filen ++ ext
|
||||
nThumb = prefix </> takeBaseName nPath ++ "_thumb.jpg"
|
||||
nPrev = prefix </> takeBaseName nPath ++ "_preview.jpg"
|
||||
$(logError) $ T.pack $ "copyFile" ++ nPath
|
||||
liftIO $ copyFile (L.tail $ mediumPath med) nPath
|
||||
liftIO $ copyFile (L.tail $ mediumThumb med) nThumb
|
||||
liftIO $ copyFile (L.tail $ mediumPreview med) nPrev
|
||||
-- remove physical files
|
||||
$(logError) "removeFile"
|
||||
mapM_ (liftIO . removeFile . normalise . L.tail)
|
||||
[ mediumPath med
|
||||
, mediumThumb med
|
||||
, mediumPreview med
|
||||
]
|
||||
-- chenge filenames in database
|
||||
runDB $ update mId
|
||||
[ MediumPath =. '/' : nPath
|
||||
, MediumThumb =. '/' : nThumb
|
||||
, MediumPreview =. '/' : nPrev
|
||||
, MediumAlbum =. destId
|
||||
]
|
||||
-- create new references
|
||||
let newMediaList = mId : albumContent dest
|
||||
|
|
|
@ -147,6 +147,9 @@ postMediumMoveR mId = do
|
|||
moveMedium medium mId aId
|
||||
setMessage "Medium successfully moved"
|
||||
redirect $ MediumR mId
|
||||
Left (err, route) -> do
|
||||
setMessage err
|
||||
redirect route
|
||||
|
||||
mediumMoveForm :: Medium -> AForm Handler AlbumId
|
||||
mediumMoveForm medium = id
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
/album/#AlbumId/delete AlbumDeleteR GET POST
|
||||
/medium/#MediumId/settings MediumSettingsR GET POST
|
||||
/medium/#MediumId/delete MediumDeleteR GET POST
|
||||
/medium/#MediumId/move MediumMoveR GET POST
|
||||
/comment/#CommentId/reply CommentReplyR GET POST
|
||||
/comment/#CommentId/delcom CommentDeleteR GET POST
|
||||
/reactivate ReactivateR GET POST
|
||||
|
|
|
@ -4,8 +4,11 @@ $newline always
|
|||
|
||||
<form method="post" enctype=#{enctype}>
|
||||
^{mediumSettingsWidget}
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href=@{MediumDeleteR mediumId}>Delete this image
|
||||
<li>
|
||||
<a href=@{MediumMoveR mediumId}>Move this image
|
||||
|
||||
<style type="text/css">
|
||||
body{background-image: url('/static/css/images/overlay.png'), -webkit-linear-gradient(top, rgba(0,0,0,0) 75%, rgba(0,0,0,0.65)), url('@{StaticR $ StaticRoute (drop 2 $ map T.pack $ splitDirectories $ mediumPath medium) []}');background-attachment:fixed;background-image: url('/static/css/images/overlay.png'), -moz-linear-gradient(center top , transparent 75%, rgba(0, 0, 0, 0.65)), url('@{StaticR $ StaticRoute (drop 2 $ map T.pack $ splitDirectories $ mediumPath medium) []}');}
|
||||
|
|
Loading…
Reference in a new issue