version 0.2.4
[fms.git] / src / http / pages / peerdetailspage.cpp
index 83b1b34..9a8fd1b 100644 (file)
@@ -9,53 +9,95 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const
 {\r
        std::string content="";\r
        int identityid=0;\r
+       std::string identityidstr="";\r
        std::string name;\r
        std::string publickey;\r
        std::string messagetrust;\r
        std::string trustlisttrust;\r
        std::string keypart="";\r
        std::string lastseen="";\r
+       std::string dateadded="";\r
+       std::string addedmethod="";\r
 \r
        if(queryvars.find("identityid")!=queryvars.end() && (*queryvars.find("identityid")).second!="")\r
        {\r
+               identityidstr=(*queryvars.find("identityid")).second;\r
                StringFunctions::Convert((*queryvars.find("identityid")).second,identityid);\r
        }\r
 \r
-       SQLite3DB::Statement st=m_db->Prepare("SELECT Name,PublicKey,LastSeen FROM tblIdentity WHERE IdentityID=?;");\r
+       if(identityid!=0 && queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="deletemessages")\r
+       {\r
+               SQLite3DB::Statement del=m_db->Prepare("DELETE FROM tblMessage WHERE IdentityID=?;");\r
+               del.Bind(0,identityid);\r
+               del.Step();\r
+       }\r
+\r
+       SQLite3DB::Statement st=m_db->Prepare("SELECT Name,PublicKey,DateAdded,LastSeen,AddedMethod FROM tblIdentity WHERE IdentityID=?;");\r
        st.Bind(0,identityid);\r
        st.Step();\r
 \r
+       content+="<table>";\r
        if(st.RowReturned())\r
        {\r
                st.ResultText(0,name);\r
                st.ResultText(1,publickey);\r
-               st.ResultText(2,lastseen);\r
+               st.ResultText(2,dateadded);\r
+               st.ResultText(3,lastseen);\r
+               st.ResultText(4,addedmethod);\r
 \r
-               content+="<table>";\r
                content+="<tr><td>Name</td><td>"+SanitizeOutput(name)+"</td></tr>";\r
-               content+="<tr><td>Public Key</td><td>"+SanitizeOutput(publickey)+"</td></tr>";\r
+               content+="<tr><td>Public Key</td><td class=\"smaller\">"+SanitizeOutput(publickey)+"</td></tr>";\r
+               content+="<tr><td>Date Added</td><td>"+dateadded+"</td></tr>";\r
                content+="<tr><td>Last Seen</td><td>"+lastseen+"</td></tr>";\r
-               content+="</table>";\r
+               content+="<tr><td>Added Method</td><td class=\"smaller\">"+SanitizeOutput(addedmethod)+"</td></tr>";\r
+       }\r
+\r
+       // get message count posted by this identity\r
+       st=m_db->Prepare("SELECT COUNT(MessageID) FROM tblMessage WHERE IdentityID=?;");\r
+       st.Bind(0,identityid);\r
+       st.Step();\r
+\r
+       if(st.RowReturned())\r
+       {\r
+               std::string messagecountstr="0";\r
+               st.ResultText(0,messagecountstr);\r
+               content+="<tr>";\r
+               content+="<td>Message Count</td>";\r
+               content+="<td>"+messagecountstr;\r
+               content+="&nbsp;&nbsp;<form name=\"frmdeletemessages\" method=\"POST\">";\r
+               content+="<input type=\"hidden\" name=\"identityid\" value=\""+identityidstr+"\">";\r
+               content+="<input type=\"hidden\" name=\"formaction\" value=\"deletemessages\">";\r
+               content+="<input type=\"submit\" value=\"Delete Messages\">";\r
+               content+="</form>";\r
+               content+="</td>";\r
+               content+="</tr>";\r
        }\r
 \r
-       st=m_db->Prepare("SELECT Name,PublicKey,MessageTrust,TrustListTrust,tblIdentity.IdentityID FROM tblPeerTrust INNER JOIN tblIdentity ON tblPeerTrust.TargetIdentityID=tblIdentity.IdentityID WHERE tblPeerTrust.IdentityID=? ORDER BY Name COLLATE NOCASE;");\r
+       content+="</table>";\r
+\r
+\r
+       st=m_db->Prepare("SELECT Name,PublicKey,MessageTrust,TrustListTrust,tblIdentity.IdentityID,tblPeerTrust.MessageTrustComment,tblPeerTrust.TrustListTrustComment FROM tblPeerTrust INNER JOIN tblIdentity ON tblPeerTrust.TargetIdentityID=tblIdentity.IdentityID WHERE tblPeerTrust.IdentityID=? ORDER BY Name COLLATE NOCASE;");\r
        st.Bind(0,identityid);\r
        st.Step();\r
 \r
        content+="<table>";\r
-       content+="<tr><th colspan=\"3\">";\r
+       content+="<tr><th colspan=\"5\">";\r
        content+="Trust List of this identity";\r
        content+="</th></tr>";\r
-       content+="<tr><td></td><th>Message Trust</th><th>Trust List Trust</th></tr>";\r
+       content+="<tr><td></td><th>Message Trust</th><th>Message Comment</th><th>Trust List Trust</th><th>Trust Comment</th></tr>";\r
        while(st.RowReturned())\r
        {\r
                std::string thisid="";\r
+               std::string messagetrustcomment="";\r
+               std::string trustlisttrustcomment="";\r
 \r
                st.ResultText(0,name);\r
                st.ResultText(1,publickey);\r
                st.ResultText(2,messagetrust);\r
                st.ResultText(3,trustlisttrust);\r
                st.ResultText(4,thisid);\r
+               st.ResultText(5,messagetrustcomment);\r
+               st.ResultText(6,trustlisttrustcomment);\r
 \r
                if(publickey.size()>8)\r
                {\r
@@ -65,29 +107,35 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const
                content+="<tr>";\r
                content+="<td><a href=\"peerdetails.htm?identityid="+thisid+"\">"+SanitizeOutput(name+keypart)+"...</a></td>";\r
                content+="<td "+GetClassString(messagetrust)+">"+messagetrust+"</td>";\r
+               content+="<td>"+SanitizeOutput(messagetrustcomment)+"</td>";\r
                content+="<td "+GetClassString(trustlisttrust)+">"+trustlisttrust+"</td>";\r
+               content+="<td>"+SanitizeOutput(trustlisttrustcomment)+"</td>";\r
                content+="</tr>\r\n";\r
 \r
                st.Step();\r
        }\r
 \r
-       st=m_db->Prepare("SELECT Name,PublicKey,MessageTrust,TrustListTrust,tblIdentity.IdentityID FROM tblPeerTrust INNER JOIN tblIdentity ON tblPeerTrust.IdentityID=tblIdentity.IdentityID WHERE tblPeerTrust.TargetIdentityID=? ORDER BY Name COLLATE NOCASE;");\r
+       st=m_db->Prepare("SELECT Name,PublicKey,MessageTrust,TrustListTrust,tblIdentity.IdentityID,tblPeerTrust.MessageTrustComment,tblPeerTrust.TrustListTrustComment FROM tblPeerTrust INNER JOIN tblIdentity ON tblPeerTrust.IdentityID=tblIdentity.IdentityID WHERE tblPeerTrust.TargetIdentityID=? ORDER BY Name COLLATE NOCASE;");\r
        st.Bind(0,identityid);\r
        st.Step();\r
 \r
-       content+="<tr><th colspan=\"3\">";\r
+       content+="<tr><th colspan=\"5\">";\r
        content+="Trust of this identity from other identities";\r
        content+="</th></tr>";\r
-       content+="<tr><td></td><th>Message Trust</th><th>Trust List Trust</th></tr>";\r
+       content+="<tr><td></td><th>Message Trust</th><th>Message Comment</th><th>Trust List Trust</th><th>Trust Comment</th></tr>";\r
        while(st.RowReturned())\r
        {\r
                std::string thisid="";\r
+               std::string messagetrustcomment="";\r
+               std::string trustlisttrustcomment="";\r
 \r
                st.ResultText(0,name);\r
                st.ResultText(1,publickey);\r
                st.ResultText(2,messagetrust);\r
                st.ResultText(3,trustlisttrust);\r
                st.ResultText(4,thisid);\r
+               st.ResultText(5,messagetrustcomment);\r
+               st.ResultText(6,trustlisttrustcomment);\r
                \r
                if(publickey.size()>8)\r
                {\r
@@ -97,7 +145,9 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const
                content+="<tr>";\r
                content+="<td><a href=\"peerdetails.htm?identityid="+thisid+"\">"+SanitizeOutput(name+keypart)+"...</a></td>";\r
                content+="<td "+GetClassString(messagetrust)+">"+messagetrust+"</td>";\r
+               content+="<td>"+SanitizeOutput(messagetrustcomment)+"</td>";\r
                content+="<td "+GetClassString(trustlisttrust)+">"+trustlisttrust+"</td>";\r
+               content+="<td>"+SanitizeOutput(trustlisttrustcomment)+"</td>";\r
                content+="</tr>";\r
 \r
                st.Step();\r