version 0.3.13
[fms.git] / src / http / pages / recentlyaddedpage.cpp
1 #include "../../../include/http/pages/recentlyaddedpage.h"\r
2 #include "../../../include/global.h"\r
3 #include "../../../include/stringfunctions.h"\r
4 \r
5 #include <Poco/DateTime.h>\r
6 #include <Poco/DateTimeFormatter.h>\r
7 #include <Poco/Timespan.h>\r
8 \r
9 const std::string RecentlyAddedPage::GeneratePage(const std::string &method, const std::map<std::string,std::string> &queryvars)\r
10 {\r
11         std::string content="";\r
12         Poco::DateTime date;\r
13         int count=0;\r
14         std::string countstr="0";\r
15 \r
16         if(queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="delete" && ValidateFormPassword(queryvars))\r
17         {\r
18                 std::vector<std::string> identityids;\r
19                 CreateArgArray(queryvars,"chkdel",identityids);\r
20 \r
21                 SQLite3DB::Statement del=m_db->Prepare("DELETE FROM tblIdentity WHERE IdentityID=?;");\r
22 \r
23                 for(std::vector<std::string>::iterator i=identityids.begin(); i!=identityids.end(); i++)\r
24                 {\r
25                         if((*i)!="")\r
26                         {\r
27                                 del.Bind(0,(*i));\r
28                                 del.Step();\r
29                                 del.Reset();\r
30                         }\r
31                 }\r
32 \r
33         }\r
34 \r
35         content="<h2>Recently Added Peers</h2>";\r
36 \r
37         SQLite3DB::Statement st=m_db->Prepare("SELECT IdentityID, PublicKey, Name, DateAdded, AddedMethod FROM tblIdentity WHERE DateAdded>=? ORDER BY DateAdded DESC;");\r
38         date-=Poco::Timespan(5,0,0,0,0);\r
39         st.Bind(0,Poco::DateTimeFormatter::format(date,"%Y-%m-%d %H:%M:%S"));\r
40         st.Step();\r
41 \r
42         content+="<form name=\"frmdel\" method=\"post\">";\r
43         content+=CreateFormPassword();\r
44         content+="<input type=\"hidden\" name=\"formaction\" value=\"delete\">";\r
45         content+="<table class=\"small90\">";\r
46         content+="<tr><th>Name</th><th>Date Added</th><th>Added Method</th></tr>";\r
47 \r
48         while(st.RowReturned())\r
49         {\r
50                 std::string identityidstr="";\r
51                 std::string publickey="";\r
52                 std::string name="";\r
53                 std::string dateadded="";\r
54                 std::string addedmethod="";\r
55 \r
56                 st.ResultText(0,identityidstr);\r
57                 st.ResultText(1,publickey);\r
58                 st.ResultText(2,name);\r
59                 st.ResultText(3,dateadded);\r
60                 st.ResultText(4,addedmethod);\r
61 \r
62                 StringFunctions::Convert(count,countstr);\r
63 \r
64                 content+="<tr>";\r
65                 content+="<td title=\""+publickey+"\">";\r
66                 content+="<a href=\"peerdetails.htm?identityid="+identityidstr+"\">";\r
67                 content+=SanitizeOutput(CreateShortIdentityName(name,publickey));\r
68                 content+="</a>";\r
69                 content+="</td>";\r
70                 content+="<td>"+dateadded+"</td>";\r
71                 content+="<td>"+SanitizeOutput(addedmethod)+"</td>";\r
72                 content+="<td><input type=\"checkbox\" name=\"chkdel["+countstr+"]\" value=\""+identityidstr+"\"></td>";\r
73                 content+="</tr>";\r
74 \r
75                 count++;\r
76 \r
77                 st.Step();\r
78         }\r
79         content+="<tr><td colspan=\"4\"><center><input type=\"submit\" value=\"Delete Selected\"></center></td></tr>";\r
80         content+="</table>";\r
81 \r
82         return StringFunctions::Replace(m_template,"[CONTENT]",content);\r
83 }\r
84 \r
85 const bool RecentlyAddedPage::WillHandleURI(const std::string &uri)\r
86 {\r
87         if(uri.find("recentlyadded.")!=std::string::npos)\r
88         {\r
89                 return true;\r
90         }\r
91         else\r
92         {\r
93                 return false;\r
94         }\r
95 }\r