version 0.3.28
[fms.git] / src / http / pages / forumviewthreadpage.cpp
index a680bfe..e4447d4 100644 (file)
@@ -8,32 +8,11 @@
 \r
 const std::string ForumViewThreadPage::FixBody(const std::string &body)\r
 {\r
-       static std::string whitespace=" \t\r\n";\r
        std::string output=body;\r
 \r
        output=StringFunctions::Replace(output,"\r\n","\n");\r
 \r
        UnicodeFormatter::LineWrap(output,80,"",output);\r
-       /*\r
-       // put \n after 80 contiguous characters in the body\r
-       std::string::size_type prevpos=0;\r
-       std::string::size_type pos=output.find_first_of(whitespace);\r
-       while(pos!=std::string::npos)\r
-       {\r
-               while(pos-prevpos>80)\r
-               {\r
-                       output.insert(prevpos+80,"\n");\r
-                       prevpos+=81;    // 81 because of the extra newline we just inserted\r
-               }\r
-               prevpos=pos;\r
-               pos=output.find_first_of(whitespace,pos+1);\r
-       }\r
-       while(output.size()-prevpos>80) // check the last line of the message (no whitespace after it)\r
-       {\r
-               output.insert(prevpos+80,"\n");\r
-               prevpos+=81;\r
-       }\r
-       */\r
 \r
        output=StringFunctions::Replace(output,"<","&lt;");\r
        output=StringFunctions::Replace(output,">","&gt;");\r
@@ -73,9 +52,18 @@ const std::string ForumViewThreadPage::GeneratePage(const std::string &method, c
                firstunreadst.ResultText(0,firstunreadidstr);\r
        }\r
 \r
-       SQLite3DB::Statement updateread=m_db->Prepare("UPDATE tblMessage SET Read=1 WHERE tblMessage.MessageID IN (SELECT MessageID FROM tblThreadPost WHERE ThreadID=?);");\r
-       updateread.Bind(0,threadidstr);\r
-       updateread.Step();\r
+       if(queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="markunread")\r
+       {\r
+               SQLite3DB::Statement updateread=m_db->Prepare("UPDATE tblMessage SET Read=0 WHERE tblMessage.MessageID IN (SELECT MessageID FROM tblThreadPost WHERE ThreadID=?);");\r
+               updateread.Bind(0,threadidstr);\r
+               updateread.Step();\r
+       }\r
+       else\r
+       {\r
+               SQLite3DB::Statement updateread=m_db->Prepare("UPDATE tblMessage SET Read=1 WHERE tblMessage.MessageID IN (SELECT MessageID FROM tblThreadPost WHERE ThreadID=?);");\r
+               updateread.Bind(0,threadidstr);\r
+               updateread.Step();\r
+       }\r
 \r
        SQLite3DB::Statement trustst=m_db->Prepare("SELECT LocalMessageTrust, LocalTrustListTrust, PeerMessageTrust, PeerTrustListTrust, Name FROM tblIdentity WHERE IdentityID=?;");\r
 \r
@@ -97,6 +85,9 @@ const std::string ForumViewThreadPage::GeneratePage(const std::string &method, c
                content+="<a href=\"#"+firstunreadidstr+"\">First Unread Message</a>";\r
                content+="</td>";\r
        }\r
+       content+="<td>";\r
+       content+="<a href=\""+m_pagename+"?formaction=markunread&threadid="+threadidstr+"&boardid="+boardidstr+"&currentpage="+currentpagestr+"\">Mark Unread</a>";\r
+       content+="</td>";\r
        content+="</tr>";\r
        content+="</table>\r\n";\r
 \r