version 0.2.21
[fms.git] / src / http / pages / peermaintenancepage.cpp
index 3ded4eb..33d1357 100644 (file)
@@ -59,6 +59,22 @@ const std::string PeerMaintenancePage::GeneratePage(const std::string &method, c
                        st.Bind(0,date.Format("%Y-%m-%d %H:%M:%S"));\r
                        st.Step();\r
                }\r
+               else if((*queryvars.find("formaction")).second=="removeposted30daysago")\r
+               {\r
+                       date.SetToGMTime();\r
+                       date.Add(0,0,0,-30);\r
+                       st=m_db->Prepare("DELETE FROM tblIdentity WHERE IdentityID IN (SELECT tblIdentity.IdentityID FROM tblIdentity INNER JOIN tblMessage ON tblIdentity.IdentityID=tblMessage.IdentityID WHERE (SELECT MAX(MessageDate) FROM tblMessage WHERE tblMessage.IdentityID=tblIdentity.IdentityID)<=? GROUP BY tblIdentity.IdentityID);");\r
+                       st.Bind(0,date.Format("%Y-%m-%d"));\r
+                       st.Step();\r
+               }\r
+               else if((*queryvars.find("formaction")).second=="removeadded20daysneversent")\r
+               {\r
+                       date.SetToGMTime();\r
+                       date.Add(0,0,0,-20);\r
+                       st=m_db->Prepare("DELETE FROM tblIdentity WHERE IdentityID IN (SELECT tblIdentity.IdentityID FROM tblIdentity LEFT JOIN tblMessage ON tblIdentity.IdentityID=tblMessage.IdentityID WHERE tblMessage.IdentityID IS NULL AND tblIdentity.DateAdded<?);");\r
+                       st.Bind(0,date.Format("%Y-%m-%d"));\r
+                       st.Step();\r
+               }\r
        }\r
 \r
        content+="<h2>Peer Maintenance</h2>";\r
@@ -105,6 +121,23 @@ const std::string PeerMaintenancePage::GeneratePage(const std::string &method, c
        content+="</td>";\r
        content+="</tr>";\r
 \r
+       date.SetToGMTime();\r
+       date.Add(0,0,0,-30);\r
+       st=m_db->Prepare("SELECT COUNT(*) FROM (SELECT tblIdentity.IdentityID FROM tblIdentity INNER JOIN tblMessage ON tblIdentity.IdentityID=tblMessage.IdentityID WHERE (SELECT MAX(MessageDate) FROM tblMessage WHERE tblMessage.IdentityID=tblIdentity.IdentityID)<=? GROUP BY tblIdentity.IdentityID);");\r
+       st.Bind(0,date.Format("%Y-%m-%d"));\r
+       st.Step();\r
+       st.ResultText(0,tempval);\r
+       content+="<tr>";\r
+       content+="<td>"+tempval+"</td>";\r
+       content+="<td>last sent a message more than 30 days ago</td>";\r
+       content+="<td>";\r
+       content+="<form name=\"frmremove\" method=\"POST\">";\r
+       content+="<input type=\"hidden\" name=\"formaction\" value=\"removeposted30daysago\">";\r
+       content+="<input type=\"submit\" value=\"Remove\">";\r
+       content+="</form>";\r
+       content+="</td>";\r
+       content+="</tr>";\r
+\r
        st=m_db->Prepare("SELECT COUNT(*) FROM tblIdentity LEFT JOIN tblMessage ON tblIdentity.IdentityID=tblMessage.IdentityID WHERE tblMessage.IdentityID IS NULL;");\r
        st.Step();\r
        st.ResultText(0,tempval);\r
@@ -121,6 +154,23 @@ const std::string PeerMaintenancePage::GeneratePage(const std::string &method, c
 \r
        date.SetToGMTime();\r
        date.Add(0,0,0,-20);\r
+       st=m_db->Prepare("SELECT COUNT(*) FROM tblIdentity LEFT JOIN tblMessage ON tblIdentity.IdentityID=tblMessage.IdentityID WHERE tblMessage.IdentityID IS NULL AND tblIdentity.DateAdded<?;");\r
+       st.Bind(0,date.Format("%Y-%m-%d %H:%M:%S"));\r
+       st.Step();\r
+       st.ResultText(0,tempval);\r
+       content+="<tr>";\r
+       content+="<td>"+tempval+"</td>";\r
+       content+="<td>added more than 20 days ago and never sent a message</td>";\r
+       content+="<td>";\r
+       content+="<form name=\"frmremove\" method=\"POST\">";\r
+       content+="<input type=\"hidden\" name=\"formaction\" value=\"removeadded20daysneversent\">";\r
+       content+="<input type=\"submit\" value=\"Remove\">";\r
+       content+="</form>";\r
+       content+="</td>";\r
+       content+="</tr>";\r
+\r
+       date.SetToGMTime();\r
+       date.Add(0,0,0,-20);\r
        st=m_db->Prepare("SELECT COUNT(*) FROM tblIdentity LEFT JOIN tblMessage ON tblIdentity.IdentityID=tblMessage.IdentityID WHERE tblMessage.IdentityID IS NULL AND tblIdentity.LastSeen<?;");\r
        st.Bind(0,date.Format("%Y-%m-%d %H:%M:%S"));\r
        st.Step();\r