From: Michael Andreen Date: Mon, 19 Oct 2009 15:54:24 +0000 (+0200) Subject: Possible to mark threads unread from a specific post X-Git-Url: https://ruin.nu/git/?p=ndwebbie.git;a=commitdiff_plain;h=0fd1ff08781f7be2e32d33a4130de91151f5d461 Possible to mark threads unread from a specific post --- diff --git a/lib/NDWeb/Controller/Forum.pm b/lib/NDWeb/Controller/Forum.pm index def82bb..bf7dc3c 100644 --- a/lib/NDWeb/Controller/Forum.pm +++ b/lib/NDWeb/Controller/Forum.pm @@ -232,7 +232,7 @@ sub findPosts :Private { my $dbh = $c->model; my $posts = $dbh->prepare(q{ - SELECT u.uid,u.username,date_trunc('seconds',fp.time::timestamp) AS time + SELECT fpid,u.uid,u.username,date_trunc('seconds',fp.time::timestamp) AS time ,fp.message,COALESCE(fp.time > ftv.time,TRUE) AS unread FROM forum_threads ft JOIN forum_posts fp USING (ftid) @@ -308,6 +308,22 @@ DELETE FROM forum_thread_visits WHERE uid = $1 AND ftid = $2 $c->res->redirect($c->uri_for('board',$fbid)); } +sub markPostAsUnread : Local { + my ( $self, $c, $post ) = @_; + my $dbh = $c->model; + + my ($fbid) = $dbh->selectrow_array(q{ +SELECT fbid FROM forum_threads JOIN forum_posts USING (ftid) WHERE fpid = $1 + },undef, $post); + + $dbh->do(q{ +UPDATE forum_thread_visits ftv SET time = (fp.time - interval '1 second') +FROM forum_posts fp +WHERE ftv.uid = $1 AND fp.fpid = $2 AND fp.ftid = ftv.ftid + }, undef, $c->user->id, $post); + $c->res->redirect($c->uri_for('board',$fbid)); +} + sub moveThreads : Local { my ( $self, $c, $board ) = @_; my $dbh = $c->model; diff --git a/root/src/forum/thread.tt2 b/root/src/forum/thread.tt2 index d282058..19c3589 100644 --- a/root/src/forum/thread.tt2 +++ b/root/src/forum/thread.tt2 @@ -17,7 +17,8 @@

New posts below:

[% END %]
-[% post.username %] : [% post.time %] +[% post.username %] : [% post.time %] + Unread from here
[% post.message %]
[% END %] @@ -89,6 +90,8 @@ [% IF thread.post %]