looks ready. time to get critique.

This commit is contained in:
nek0 2016-09-02 15:55:50 +02:00
parent 6b62e83099
commit d41bea427b
30 changed files with 164 additions and 225 deletions

View file

@ -19,6 +19,7 @@ module Handler.AlbumSettings where
import Import
import Handler.Commons
import qualified Data.Text as T
import Data.Maybe
import System.Directory
import System.FilePath
import qualified Data.List as L
@ -107,7 +108,9 @@ postAlbumSettingsR albumId = do
else do
return [()]
-- nothing to do here
width <- getThumbWidth $ albumSamplePic temp
sample <- runDB $ selectFirst
[MediumThumb ==. (fromMaybe "" $ albumSamplePic temp)] []
let width = if isNothing sample then 230 else mediumThumbWidth $ entityVal $ fromJust sample
_ <- runDB $ update albumId
[ AlbumTitle =. albumTitle temp
, AlbumShares =. newShares

View file

@ -53,7 +53,7 @@ a:hover, .item a:hover, .medium a:hover, a:hover figcaption {
list-style: none;
display: block;
margin: 80px 80px 0;
padding: 0;
padding: 4em 0 4em;
text-align: center;
}
@ -192,7 +192,7 @@ footer {
}
.middle {
margin-top: 50px;
/*margin-top: 50px;*/
}
@media (max-width: 755px) {

View file

@ -1,7 +1,7 @@
$newline always
<div id="header" class="item" data-width="300">
<div .item>
<noscript>You need to have Javascript enabled
<form class="inner login">
<form .login>
<h3>Activate your account
<p>
<label for="password1">Password:

View file

@ -1,12 +1,11 @@
$newline always
<div id="header" class="item" data-width="400">
<div class="inner">
<h1>Media from #{albumTitle album}
$if null media
<p>#{albumTitle album} has no media yet
<div .subheader .item>
<h1>Media from #{albumTitle album}
$if null media
<p>#{albumTitle album} has no media yet
$forall (Entity mId m) <- media
<article class="item" data-width=#{mediumThumbWidth m}>
<div .item>
<a href=@{AdminMediumSettingsR mId}>
<figure>
<img src=@{StaticR $ StaticRoute (drop 2 $ map T.pack $ splitDirectories $ mediumThumb m) []}>

View file

@ -1,12 +1,12 @@
$newline always
<div id="header" class="item" data-width="400">
<div .medium>
<form class="inner" method="post" enctype=#{enctype}>
<h1>Album settings
^{adminAlbumSettingsWidget}
<a href=@{AdminAlbumDeleteR albumId}>Delete this album
<div id="header" class="item" data-width="200">
<div .item>
<div class="inner">
<p>
<a href=@{AdminAlbumMediaR albumId}>Media in this album

View file

@ -1,12 +1,11 @@
$newline always
<div id="header" class="item" data-width="400">
<div class="inner">
<h1>Albums
$if null albums
<p>There are no albums yet
<div .subheader .item>
<h1>Albums
$if null albums
<p>There are no albums yet
$forall (Entity aId a) <- albums
<article class="item" data-width=#{albumSampleWidth a}>
<div .item>
<a href=@{AdminAlbumSettingsR aId}>
<figure>
$if (albumSamplePic a) == Nothing

View file

@ -1,39 +0,0 @@
/*templates/medium.cassius*/
img
position: relative !important
max-width: 100% !important
width: auto !important
display: block !important
margin-left: auto !important
margin-right: auto !important
.comment
border: 5px solid rgb(255, 255, 255)
padding: 2em 3em
background: #d64760 url('/static/css/images/overlay.png')
.reply
background: #47d65f url('/static/css/images/overlay.png')
.image
width: 100% !important
#wrapper
overflow: auto !important
#reel
width: 90% !important
max-height: auto !important
#reel .item
float: none !important
display: inline-block !important
width: 100% !important
div #main
margin-top: 60px !important
position: static !important
#footer
position: static !important

View file

@ -1,30 +1,28 @@
$newline never
<div id="header" class="item">
<div class="inner">
<div .column>
<div .subheader .medium>
<h1>Comments by medium
$if null comments
<div id="header" class="item">
<div class="inner">
$if null comments
<div .subheader .medium>
<p>There are no comments yet
$else
$forall (Entity mediumId medium) <- media
<div id="header" class="item">
<div class="inner">
$else
$forall (Entity mediumId medium) <- media
<div .subheader .medium>
<h3>#{mediumTitle medium}
$forall (Entity commentId comment) <- comments
$if commentOrigin comment == mediumId
<article class="comment">
#{commentAuthorSlug comment} wrote on #{formatTime defaultTimeLocale "%A %F %H:%M" $ commentTime comment}:
<hr>
#{commentContent comment}
<a href=@{AdminCommentDeleteR commentId}>Delete this comment
$forall (Entity replyId reply) <- replies
$if commentParent reply == Just commentId
$if commentOrigin reply == mediumId
<article class="comment reply">
#{commentAuthorSlug comment} wrote on #{formatTime defaultTimeLocale "%A %F %H:%M" $ commentTime comment}:
<hr>
#{commentContent reply}
<a href=@{AdminCommentDeleteR replyId}>Delete this comment
$forall (Entity commentId comment) <- comments
$if commentOrigin comment == mediumId
<div .medium .comment>
#{commentAuthorSlug comment} wrote on #{formatTime defaultTimeLocale "%A %F %H:%M" $ commentTime comment}:
<hr>
#{commentContent comment}
<a href=@{AdminCommentDeleteR commentId}>Delete this comment
$forall (Entity replyId reply) <- replies
$if commentParent reply == Just commentId
$if commentOrigin reply == mediumId
<div .medium .comment .reply>
#{commentAuthorSlug comment} wrote on #{formatTime defaultTimeLocale "%A %F %H:%M" $ commentTime comment}:
<hr>
#{commentContent reply}
<a href=@{AdminCommentDeleteR replyId}>Delete this comment

View file

@ -1,12 +1,11 @@
$newline always
<div id="header" class="item" data-width="400">
<div class="inner">
<h1>Media
$if null media
<p>There are no media yet
<div .subheader .item>
<h1>Media
$if null media
<p>There are no media yet
$forall (Entity mId m) <- media
<article class="item" data-width=#{mediumThumbWidth m}>
<div .item>
<a href=@{AdminMediumSettingsR mId}>
<figure>
<img src=@{StaticR $ StaticRoute (drop 2 $ map T.pack $ splitDirectories $ mediumThumb m) []}>

View file

@ -1,6 +1,6 @@
$newline always
<div id="header" class="item" data-width="300">
<form class="inner" method="post" enctype=#{enctype}>
<div .medium>
<form method="post" enctype=#{enctype}>
<h1>Medium settings
^{adminMediumSetWidget}

View file

@ -1,12 +1,12 @@
$newline always
<div id="header" class="item" data-width="400">
<form class="inner" method="post" enctype=#{enctype}>
<div .medium>
<form method="post" enctype=#{enctype}>
<h1>Profile Settings
^{adminProfileSetWidget}
<a href=@{AdminProfileDeleteR userId}>Delete user
<div id="header" class="item" data-width="200">
<div .item>
<div class="inner">
<ul>
<li>

View file

@ -1,12 +1,10 @@
$newline always
<div id="header" class="item" data-width="400">
<div class="inner">
<h1>User profiles
$if null profiles
<p>
There are no profiles yet (How can you even see this?)
<div .subheader .item>
<h1>User profiles
$if null profiles
<p>
There are no profiles yet (How can you even see this?)
$forall (Entity uId u) <- profiles
<div id="header" class="item" data-width="200">
<div class="inner">
<a href=@{AdminProfileSettingsR uId}>#{userSlug u}
<div .item>
<a href=@{AdminProfileSettingsR uId}>#{userSlug u}

View file

@ -1,14 +1,13 @@
$newline always
<div id="header" class="item" data-width="400">
<div class="inner">
<h1>Albums of #{userSlug owner}
<div .subheader .item>
<h1>Albums of #{userSlug owner}
$if null albums
<p>
$if null albums
#{userSlug owner} has no albums yet
#{userSlug owner} has no albums yet
$forall (Entity aId a) <- albums
<article class="item" data-width=#{albumSampleWidth a}>
<a href=@{AdminAlbumSettingsR aId}>#{albumTitle a}
<div .item>
<a href=@{AdminAlbumSettingsR aId}>
<figure>
$if (albumSamplePic a) == Nothing
<img src="/static/img/album.jpg">

View file

@ -1,14 +1,13 @@
$newline always
<div id="header" class="item" data-width="400">
<div class="inner">
<h1>Media of #{userSlug owner}
$if null media
<p>
#{userSlug owner} has no media yet
<div .subheader .item>
<h1>Media of #{userSlug owner}
$if null media
<p>
#{userSlug owner} has no media yet
$forall (Entity mId m) <- media
<article class="item" data-width=#{mediumThumbWidth m}>
<a href=@{AdminMediumSettingsR mId}>#{mediumTitle m}
<div .item>
<a href=@{AdminMediumSettingsR mId}>
<figure>
<img src=@{StaticR $ StaticRoute (drop 2 $ map T.pack $ splitDirectories $ mediumThumb m) []}>
<figcaption>#{mediumTitle m}

View file

@ -1,12 +1,11 @@
$newline always
<div id="header" class="item" data-width="300">
<div class="inner">
<h3>Delete Album #{albumTitle album}
<div .item>
<h3>Delete Album #{albumTitle album}
<p>
Do you wish to delete this album and all its containing images?
<p>
Do you wish to delete this album and all its containing images?
<form method="POST" action=@{AlbumDeleteR albumId}>
<label for="confirm">Really delete this album
<input type="checkbox" id="confirm" name="confirm" value="confirm" required>
<input id="delete" type="submit" value="Delete album">
<form method="POST" action=@{AlbumDeleteR albumId}>
<label for="confirm">Really delete this album
<input type="checkbox" id="confirm" name="confirm" value="confirm" required>
<input id="delete" type="submit" value="Delete album">

View file

@ -1,6 +1,6 @@
$newline always
<div id="header" class="item" data-width="300">
<form class="inner" method="post" enctype=#{enctype}>
<div .item>
<form method="post" enctype=#{enctype}>
<h3>Album settings
^{albumSettingsWidget}
$if ownerPresence == True

View file

@ -1,12 +1,11 @@
$newline always
<div id="header" class="item" data-width="300">
<div class="inner">
<h3>Delete comment
<div .item>
<h3>Delete comment
<p>
Do you wish to delete this comment?
<p>
Do you wish to delete this comment?
<form method="POST" action=@{CommentDeleteR commentId}>
<label for="confirm">Really delete this comment
<input type="checkbox" id="confirm" name="confirm" value="confirm" required>
<input id="delete" type="submit" value="Delete comment">
<form method="POST" action=@{CommentDeleteR commentId}>
<label for="confirm">Really delete this comment
<input type="checkbox" id="confirm" name="confirm" value="confirm" required>
<input id="delete" type="submit" value="Delete comment">

View file

@ -1,9 +1,8 @@
<div id="header" class="item" data-width="600">
<div class="inner">
<h4>Reply to comment
<strong>#{commentAuthorSlug comment}</strong> posted on #{formatTime defaultTimeLocale "%A %F %H:%M" (commentTime comment)}:
<hr>
<p>#{commentContent comment}
<hr>
<form method=post enctype=#{enctype}>
^{replyWidget}
<div .item>
<h4>Reply to comment
<strong>#{commentAuthorSlug comment}</strong> posted on #{formatTime defaultTimeLocale "%A %F %H:%M" (commentTime comment)}:
<hr>
<p>#{commentContent comment}
<hr>
<form method=post enctype=#{enctype}>
^{replyWidget}

View file

@ -1,4 +1,4 @@
<div .medium .middle>
<div .medium>
<form method=post enctype=#{enctype}>
Image upload to album #{albumTitle album}
^{dUploadWidget}

View file

@ -1,5 +1,5 @@
$newline always
<div .medium .middle>
<div .medium>
<noscript>Please enable Javascript
<h3>Login
<form>

View file

@ -1,17 +1,16 @@
$newline always
<div id="header" class="item" data-width="300">
<div class="inner">
<h3>Delete Medium #{mediumTitle medium}
<div .item>
<h3>Delete Medium #{mediumTitle medium}
<p>
Do you wish to delete this image?
<p>
Do you wish to delete this image?
<form method="POST" action=@{MediumDeleteR mediumId}>
<div .form-group .required>
<label for="confirm">Really delete this medium
<input .form-control type="checkbox" #confirm name="confirm" value="confirm" required>
<div .form-group .required>
<button .form-control id="delete" type="submit">Delete medium
<form method="POST" action=@{MediumDeleteR mediumId}>
<div .form-group .required>
<label for="confirm">Really delete this medium
<input .form-control type="checkbox" #confirm name="confirm" value="confirm" required>
<div .form-group .required>
<button .form-control id="delete" type="submit">Delete medium
<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/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) []}');}

View file

@ -1,10 +1,9 @@
$newline always
<div id="header" class="item" data-width="300">
<div class="inner">
<h3>Medium settings
<div .item>
<h3>Medium settings
<form method="post" enctype=#{enctype}>
^{mediumSettingsWidget}
<form method="post" enctype=#{enctype}>
^{mediumSettingsWidget}
<a href=@{MediumDeleteR mediumId}>Delete this image

View file

@ -1,4 +1,4 @@
<div .medium .middle>
<div .medium>
<h3>Create new Album
<form class="inner r" method=post enctype=#{enctype}>
^{albumWidget}

View file

@ -1,12 +1,11 @@
$newline always
<div id="header" class="item" data-width="300">
<div class="inner">
<h1>Delete User #{userSlug user}
<div .item>
<h1>Delete User #{userSlug user}
<p>
Do you wish to delete this user and all his albums and images?
<p>
Do you wish to delete this user and all his albums and images?
<form method="POST" action=@{ProfileDeleteR userId}>
<label for="confirm">Really delete this user
<input type="checkbox" id="confirm" name="confirm" value="confirm" required>
<input id="delete" type="submit" value="Delete user">
<form method="POST" action=@{ProfileDeleteR userId}>
<label for="confirm">Really delete this user
<input type="checkbox" id="confirm" name="confirm" value="confirm" required>
<input id="delete" type="submit" value="Delete user">

View file

@ -1,6 +1,6 @@
$newline always
<div id="header" class="item" data-width="300">
<form class="inner" method="post" enctype=#{enctype}>
<div .item>
<form method="post" enctype=#{enctype}>
<h3>Profile settings
^{profileSettingsWidget}

View file

@ -1,9 +1,8 @@
$newline always
<div id="header" class="item" data-width="400">
<div class="inner">
<h3>Reset Password
<div .item>
<h3>Reset Password
<form method="post" enctype=#{enctype}>
^{reactivateWidget}
<div>
<input type=submit value="Send">
<form method="post" enctype=#{enctype}>
^{reactivateWidget}
<div>
<input type=submit value="Send">

View file

@ -1,31 +1,26 @@
<div #header .item data-width="400">
<div .inner>
<h1>
Results for: #{query}
<div .subheader .item>
<h1>
Results for: #{query}
$if allEmpty
<div #header .item data-width="400">
<div .inner>
<h2>
Sorry, no results
<div .subheader .item>
<h2>
Sorry, no results
$else
$if not $ null userList
<div #header .item data-width="400">
<div .inner>
<h2>
Results in Users:
<div .subheader .item>
<h2>
Results in Users:
$forall (Entity uId user) <- userList
<div #header .item data-width="400">
<div .inner>
<a href=@{ProfileR uId}>
#{userSlug user}
<div .item>
<a href=@{ProfileR uId}>
#{userSlug user}
$if not $ null albumList
<div #header .item data-width="400">
<div .inner>
<h2>
Results in Albums:
<div .subheader .item>
<h2>
Results in Albums:
$forall (Entity aId album) <- albumList
<article .item data-width="#{albumSampleWidth album}">
<div .item data-width="#{albumSampleWidth album}">
<a href=@{AlbumR aId}>
<figure>
$if (albumSamplePic album) == Nothing
@ -34,23 +29,20 @@ $else
<img src=@{StaticR $ StaticRoute (drop 2 $ map T.pack $ splitDirectories $ fromJust $ albumSamplePic album) []} title=#{albumTitle album}>
<figcaption>#{albumTitle album}
$if not $ null mediumList
<article #header .item data-width="400">
<div .inner>
<h2>
Results in Media:
<article .subheader .item>
<h2>
Results in Media:
$forall (Entity mId medium) <- mediumList
<article .item data-width="#{mediumThumbWidth medium}">
<div .item>
<a href=@{MediumR mId}>
<figure>
<img src=@{StaticR $ StaticRoute (drop 2 $ map T.pack $ splitDirectories $ mediumThumb medium) []} title=#{mediumTitle medium}>
<figcaption>#{mediumTitle medium}
$if not $ null commentList
<div #header .item data-width="400">
<div .inner>
<h2>
Results in Comments:
<div .subheader .item>
<h2>
Results in Comments:
$forall (Entity _ comment) <- commentList
<div #header .item data-width="400">
<div .inner>
<a href=@{MediumR $ commentOrigin comment}>
#{commentContent comment}
<div .item>
<a href=@{MediumR $ commentOrigin comment}>
#{commentContent comment}

View file

@ -1,5 +1,4 @@
<div #header .item data-width="400">
<div .inner>
<div .item>
<form method=GET action=@{SearchR}>
^{widget}
<input type="submit" value="Search">

View file

@ -1,5 +1,5 @@
$newline always
<div id="header" class="item" data-width="300">
<div .medium>
<noscript>You need to have Javscript enabled
<h3>Signup
<form role="form" class="inner" method="POST" action=@{SignupR}>

View file

@ -1,12 +1,12 @@
$newline always
<div id="header" class="item" data-width="400">
<div class="inner">
<h1>Tag #{tag}
$if null media
<div .subheader .item>
<h1>Tag #{tag}
$if null media
<p>
There are no media tagged with #{tag}
$forall Just (Entity mId m) <- media
<article class="item" data-width=#{mediumThumbWidth m}>
<div .item>
<a href=@{MediumR mId}>
<figure>
<img src=@{StaticR $ StaticRoute (drop 2 $ map T.pack $ splitDirectories $ mediumThumb m) []} title=#{mediumTitle m}>