version 0.3.24
[fms.git] / src / http / pages / browsemessagespage.cpp
diff --git a/src/http/pages/browsemessagespage.cpp b/src/http/pages/browsemessagespage.cpp
deleted file mode 100644 (file)
index 9601064..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-#include "../../../include/http/pages/browsemessagespage.h"\r
-#include "../../../include/stringfunctions.h"\r
-#include "../../../include/global.h"\r
-#include "../../../include/messagethread.h"\r
-\r
-#ifdef XMEM\r
-       #include <xmem.h>\r
-#endif\r
-\r
-const std::string BrowseMessagesPage::BuildQueryString(const long startrow, const std::string &boardidstr, const std::string &messageidstr)\r
-{\r
-       std::string returnval="";\r
-       std::string tempval="";\r
-\r
-       if(startrow>=0)\r
-       {\r
-               StringFunctions::Convert(startrow,tempval);\r
-               returnval+="startrow="+tempval;\r
-       }\r
-\r
-       if(boardidstr!="")\r
-       {\r
-               if(returnval!="")\r
-               {\r
-                       returnval+="&";\r
-               }\r
-               returnval+="boardid="+boardidstr;\r
-       }\r
-\r
-       if(messageidstr!="")\r
-       {\r
-               if(returnval!="")\r
-               {\r
-                       returnval+="&";\r
-               }       \r
-               returnval+="messageid="+messageidstr;\r
-       }\r
-\r
-       return returnval;\r
-\r
-}\r
-\r
-const std::string BrowseMessagesPage::GeneratePage(const std::string &method, const std::map<std::string,std::string> &queryvars)\r
-{\r
-       std::string content="";\r
-       long boardid=-1;\r
-       std::string boardidstr="";\r
-       std::string messageidstr="";\r
-       int startrow=0;\r
-       std::string startrowstr="0";\r
-       int rowsperpage=50;\r
-       std::string rowsperpagestr="51";        // one more than rowsperpage so we can know if there are more messages\r
-       std::string sql="";\r
-       int rowcount=0;\r
-       int page=0;\r
-\r
-       // if startrow is specified\r
-       if(queryvars.find("startrow")!=queryvars.end())\r
-       {\r
-               startrowstr=(*queryvars.find("startrow")).second;\r
-               // convert back and forth, just in case a number wasn't passed in startrow\r
-               StringFunctions::Convert(startrowstr,startrow);\r
-               if(startrow<0)\r
-               {\r
-                       startrow=0;\r
-               }\r
-               StringFunctions::Convert(startrow,startrowstr);\r
-       }\r
-       if(queryvars.find("boardid")!=queryvars.end())\r
-       {\r
-               boardidstr=(*queryvars.find("boardid")).second;\r
-               StringFunctions::Convert(boardidstr,boardid);\r
-       }\r
-       if(queryvars.find("messageid")!=queryvars.end())\r
-       {\r
-               messageidstr=(*queryvars.find("messageid")).second;\r
-               page=1;\r
-       }\r
-\r
-       if(page==0)\r
-       {\r
-               sql="SELECT Subject, FromName, MessageDate || ' ' || MessageTime, Body, tblMessage.MessageID ";\r
-               sql+="FROM tblMessage INNER JOIN tblMessageBoard ON tblMessage.MessageID=tblMessageBoard.MessageID ";\r
-               if(boardidstr!="")\r
-               {\r
-                       sql+="WHERE tblMessageBoard.BoardID=? ";\r
-               }\r
-               sql+="ORDER BY MessageDate || ' ' || MessageTime DESC ";\r
-               sql+="LIMIT "+startrowstr+","+rowsperpagestr+";";\r
-\r
-               SQLite3DB::Statement st=m_db->Prepare(sql);\r
-               if(boardidstr!="")\r
-               {\r
-                       st.Bind(0,boardidstr);\r
-               }\r
-               st.Step();\r
-\r
-               content+="<table class=\"small90\">";\r
-               content+="<tr><th>Subject</th><th>From</th><th>Date</th></tr>";\r
-\r
-               rowcount=0;\r
-               while(st.RowReturned() && rowcount++<rowsperpage)\r
-               {\r
-                       std::string subject="";\r
-                       std::string fromname="";\r
-                       std::string messagedate="";\r
-                       std::string body="";\r
-                       std::string messageidstr="";\r
-\r
-                       st.ResultText(0,subject);\r
-                       st.ResultText(1,fromname);\r
-                       st.ResultText(2,messagedate);\r
-                       st.ResultText(3,body);\r
-                       st.ResultText(4,messageidstr);\r
-\r
-                       if(body.size()>400)\r
-                       {\r
-                               body.erase(400);\r
-                               body+="...";\r
-                       }\r
-\r
-                       content+="<tr>";\r
-                       content+="<td title=\""+StringFunctions::Replace(SanitizeOutput(body),"\n","\r\n")+"\"><a href=\""+m_pagename+"?"+BuildQueryString(startrow,boardidstr,messageidstr)+"\">"+SanitizeOutput(subject)+"</a></td>";\r
-                       content+="<td>"+fromname+"</td>";\r
-                       content+="<td>"+SanitizeOutput(messagedate)+"</td>";\r
-                       content+="</tr>\r\n";\r
-\r
-                       st.Step();\r
-               }\r
-               \r
-               if(startrow>0 || st.RowReturned())\r
-               {\r
-                       content+="<tr>";\r
-\r
-                       if(startrow>0)\r
-                       {\r
-                               int thisstartrow=startrow-rowsperpage;\r
-                               if(thisstartrow<0)\r
-                               {\r
-                                       thisstartrow=0;\r
-                               }\r
-                               content+="<td><a href=\""+m_pagename+"?"+BuildQueryString(thisstartrow,boardidstr,"")+"\">&lt;--</a></td>";\r
-                       }\r
-                       else\r
-                       {\r
-                               content+="<td></td>";\r
-                       }\r
-\r
-                       content+="<td></td>";\r
-\r
-                       if(st.RowReturned())\r
-                       {\r
-                               int thisstartrow=startrow+rowsperpage;\r
-                               content+="<td><a href=\""+m_pagename+"?"+BuildQueryString(thisstartrow,boardidstr,"")+"\">--&gt;</a></td>";\r
-                       }\r
-                       content+="</tr>";\r
-               }\r
-\r
-               content+="</table>";\r
-       }\r
-       else if(page==1)\r
-       {\r
-               sql="SELECT Body, FromName, MessageDate || ' ' || MessageTime, Subject FROM tblMessage WHERE MessageID=?;";\r
-               SQLite3DB::Statement st=m_db->Prepare(sql);\r
-               st.Bind(0,messageidstr);\r
-\r
-               st.Step();\r
-               if(st.RowReturned())\r
-               {\r
-                       std::string body="";\r
-                       std::string fromname="";\r
-                       std::string messagedate="";\r
-                       std::string subject="";\r
-                       std::string boards="";\r
-\r
-                       st.ResultText(0,body);\r
-                       st.ResultText(1,fromname);\r
-                       st.ResultText(2,messagedate);\r
-                       st.ResultText(3,subject);\r
-\r
-                       // get boards message was posted to\r
-                       SQLite3DB::Statement st2=m_db->Prepare("SELECT tblBoard.BoardID, tblBoard.BoardName FROM tblBoard INNER JOIN tblMessageBoard ON tblBoard.BoardID=tblMessageBoard.BoardID WHERE tblMessageBoard.MessageID=?;");\r
-                       st2.Bind(0,messageidstr);\r
-                       st2.Step();\r
-                       while(st2.RowReturned())\r
-                       {\r
-                               std::string boardname="";\r
-                               std::string innerboardidstr="";\r
-\r
-                               st2.ResultText(0,innerboardidstr);\r
-                               st2.ResultText(1,boardname);\r
-                               \r
-                               if(boards!="")\r
-                               {\r
-                                       boards+=",&nbsp;";\r
-                               }\r
-\r
-                               boards+="<a href=\""+m_pagename+"?"+BuildQueryString(0,innerboardidstr,"")+"\">"+SanitizeOutput(boardname)+"</a>";\r
-\r
-                               st2.Step();\r
-                       }\r
-\r
-                       content+="<div class=\"post\">";\r
-                       content+="<div class=\"postboards\">";\r
-                       content+=boards;\r
-                       content+="</div>";\r
-                       content+="<div class=\"postsubject\">";\r
-                       content+=SanitizeOutput(subject);\r
-                       content+="</div>";\r
-                       content+="<div class=\"postfrom\">";\r
-                       content+=SanitizeOutput(fromname);\r
-                       content+="</div>";\r
-                       content+="<div class=\"postdate\">";\r
-                       content+=SanitizeOutput(messagedate);\r
-                       content+="</div>";\r
-                       content+="<div class=\"postbody\">";\r
-                       content+=SanitizeOutput(body);\r
-                       content+="</div>";\r
-                       content+="</div>\r\n";\r
-\r
-                       long currentlevel=0;\r
-                       MessageThread thread;\r
-                       thread.Load(messageidstr,boardid);\r
-\r
-                       std::vector<MessageThread::threadnode> nodes=thread.GetNodes();\r
-                       if(nodes.size()>1)\r
-                       {\r
-                               content+="<ul class=\"messagethread\">";\r
-                               for(std::vector<MessageThread::threadnode>::const_iterator i=nodes.begin(); i!=nodes.end(); i++)\r
-                               {\r
-                                       if((*i).m_level>currentlevel)\r
-                                       {\r
-                                               content+="<ul class=\"messagethread\">";\r
-                                       }\r
-                                       else if((*i).m_level<currentlevel)\r
-                                       {\r
-                                               content+="</ul>";\r
-                                       }\r
-                                       currentlevel=(*i).m_level;\r
-\r
-                                       std::string tempstr="";\r
-                                       StringFunctions::Convert((*i).m_messageid,tempstr);\r
-\r
-                                       content+="<li>";\r
-                                       if(tempstr!=messageidstr)\r
-                                       {\r
-                                               content+="<a href=\""+m_pagename+"?"+BuildQueryString(0,boardidstr,tempstr)+"\">"+SanitizeOutput((*i).m_subject)+"</a> - "+SanitizeOutput((*i).m_fromname);\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               content+=SanitizeOutput((*i).m_subject)+" - "+SanitizeOutput((*i).m_fromname);\r
-                                       }\r
-                                       content+="</li>\r\n";\r
-                               }\r
-                               while(currentlevel-->0)\r
-                               {\r
-                                       content+="</ul>";\r
-                               }\r
-                               content+="</ul>\r\n";\r
-                       }\r
-               }\r
-       }\r
-\r
-       return StringFunctions::Replace(m_template,"[CONTENT]",content);\r
-}\r