version 0.2.6
[fms.git] / src / http / pages / peertrustpage.cpp
index 48a19e8..9429ede 100644 (file)
@@ -71,6 +71,10 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s
                std::vector<std::string> lmt;\r
                std::vector<std::string> oldltlt;\r
                std::vector<std::string> ltlt;\r
+               std::vector<std::string> oldmtc;\r
+               std::vector<std::string> mtc;\r
+               std::vector<std::string> oldtltc;\r
+               std::vector<std::string> tltc;\r
                int localmessagetrust=0;\r
                int localtrustlisttrust=0;\r
                int identityid;\r
@@ -80,12 +84,16 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s
                CreateArgArray(queryvars,"localmessagetrust",lmt);\r
                CreateArgArray(queryvars,"oldlocaltrustlisttrust",oldltlt);\r
                CreateArgArray(queryvars,"localtrustlisttrust",ltlt);\r
+               CreateArgArray(queryvars,"oldmessagetrustcomment",oldmtc);\r
+               CreateArgArray(queryvars,"messagetrustcomment",mtc);\r
+               CreateArgArray(queryvars,"oldtrustlisttrustcomment",oldtltc);\r
+               CreateArgArray(queryvars,"trustlisttrustcomment",tltc);\r
                \r
-               SQLite3DB::Statement update=m_db->Prepare("UPDATE tblIdentity SET LocalMessageTrust=?, LocalTrustListTrust=? WHERE IdentityID=?;");\r
+               SQLite3DB::Statement update=m_db->Prepare("UPDATE tblIdentity SET LocalMessageTrust=?, LocalTrustListTrust=?, MessageTrustComment=?, TrustListTrustComment=? WHERE IdentityID=?;");\r
 \r
                for(int i=0; i<identityids.size(); i++)\r
                {\r
-                       if(oldlmt[i]!=lmt[i] || oldltlt[i]!=ltlt[i])\r
+                       if(oldlmt[i]!=lmt[i] || oldltlt[i]!=ltlt[i] || oldmtc[i]!=mtc[i] || oldtltc[i]!=tltc[i])\r
                        {\r
                                StringFunctions::Convert(lmt[i],localmessagetrust);\r
                                StringFunctions::Convert(ltlt[i],localtrustlisttrust);\r
@@ -107,7 +115,9 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s
                                {\r
                                        update.Bind(1);\r
                                }\r
-                               update.Bind(2,identityid);\r
+                               update.Bind(2,mtc[i]);\r
+                               update.Bind(3,tltc[i]);\r
+                               update.Bind(4,identityid);\r
                                update.Step();\r
                                update.Reset();\r
                        }\r
@@ -155,7 +165,7 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s
        }\r
 \r
        content+="<h2>Peer Trust</h2>";\r
-       content+="Message Trust is how much you trust the identity to post good messages. Trust List Trust is how much weight you want the trust list of that identity to have when calculating the total. The local trust levels are set by you, and the peer trust levels are calculated by a weighted average using other identities' trust lists.";\r
+       content+="Message Trust is how much you trust the identity to post good messages. Trust List Trust is how much weight you want the trust list of that identity to have when calculating the total. The local trust levels are set by you, and the peer trust levels are calculated by a weighted average using other identities' trust lists.  Trust is recalculated once an hour from received trust lists.";\r
        content+="<div style=\"text-align:center;\">";\r
        content+="<form name=\"frmsearch\" method=\"POST\" action=\"peertrust.htm\">";\r
        content+="<input type=\"text\" name=\"namesearch\" value=\""+SanitizeOutput(namesearch)+"\">";\r
@@ -165,18 +175,30 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s
        content+="<form name=\"frmtrust\" method=\"POST\">";\r
        content+="<input type=\"hidden\" name=\"formaction\" value=\"update\">";\r
        content+="<input type=\"hidden\" name=\"startrow\" value=\""+startrowstr+"\">";\r
-       content+="<table>";\r
+       if(namesearch!="")\r
+       {\r
+               content+="<input type=\"hidden\" name=\"namesearch\" value=\""+SanitizeOutput(namesearch)+"\">";\r
+       }\r
+       content+="<table class=\"small90\">";\r
        content+="<tr><th><a href=\"peertrust.htm?"+BuildQueryString(startrow,namesearch,"Name",ReverseSort("Name",sortby,sortorder))+"\">Name</a></th>";\r
        content+="<th><a href=\"peertrust.htm?"+BuildQueryString(startrow,namesearch,"LocalMessageTrust",ReverseSort("LocalMessageTrust",sortby,sortorder))+"\">Local Message Trust</a></th>";\r
+       content+="<th>Message Comment</th>";\r
        content+="<th><a href=\"peertrust.htm?"+BuildQueryString(startrow,namesearch,"PeerMessageTrust",ReverseSort("PeerMessageTrust",sortby,sortorder))+"\">Peer Message Trust</a></th>";\r
        content+="<th><a href=\"peertrust.htm?"+BuildQueryString(startrow,namesearch,"LocalTrustListTrust",ReverseSort("LocalTrustListTrust",sortby,sortorder))+"\">Local Trust List Trust</a></th>";\r
-       content+="<th><a href=\"peertrust.htm?"+BuildQueryString(startrow,namesearch,"PeerTrustListTrust",ReverseSort("PeerTrustListTrust",sortby,sortorder))+"\">Peer Trust List Trust</a></th></tr>";\r
+       content+="<th>Trust Comment</th>";\r
+       content+="<th><a href=\"peertrust.htm?"+BuildQueryString(startrow,namesearch,"PeerTrustListTrust",ReverseSort("PeerTrustListTrust",sortby,sortorder))+"\">Peer Trust List Trust</a></th>";\r
+       content+="<th><a href=\"peertrust.htm?"+BuildQueryString(startrow,namesearch,"MessageCount",ReverseSort("MessageCount",sortby,sortorder))+"\">Message Count</a></th>";\r
+       content+="</tr>\r\n";\r
        \r
        // get count of identities we are showing\r
        sql="SELECT COUNT(*) FROM tblIdentity";\r
        if(namesearch!="")\r
        {\r
-               sql+=" WHERE Name LIKE '%' || ? || '%'";\r
+               sql+=" WHERE Name LIKE '%' || ? || '%' AND tblIdentity.Hidden='false'";\r
+       }\r
+       else\r
+       {\r
+               sql+=" WHERE tblIdentity.Hidden='false'";       \r
        }\r
        sql+=";";\r
        SQLite3DB::Statement st=m_db->Prepare(sql);\r
@@ -188,11 +210,16 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s
        st.ResultInt(0,identitycount);\r
        st.Finalize();\r
 \r
-       sql="SELECT IdentityID,Name,LocalMessageTrust,PeerMessageTrust,LocalTrustListTrust,PeerTrustListTrust,PublicKey FROM tblIdentity";\r
+       sql="SELECT tblIdentity.IdentityID,Name,LocalMessageTrust,PeerMessageTrust,LocalTrustListTrust,PeerTrustListTrust,PublicKey,MessageTrustComment,TrustListTrustComment,COUNT(MessageID) AS 'MessageCount' FROM tblIdentity LEFT JOIN tblMessage ON tblIdentity.IdentityID=tblMessage.IdentityID";\r
        if(namesearch!="")\r
        {\r
-               sql+=" WHERE Name LIKE  '%' || ? || '%'";\r
+               sql+=" WHERE (Name LIKE  '%' || ? || '%' OR PublicKey LIKE '%' || ? || '%') AND tblIdentity.Hidden='false'";\r
        }\r
+       else\r
+       {\r
+               sql+=" WHERE tblIdentity.Hidden='false'";       \r
+       }\r
+       sql+=" GROUP BY tblIdentity.IdentityID";\r
        sql+=" ORDER BY";\r
        if(sortby=="Name")\r
        {\r
@@ -211,6 +238,7 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s
        if(namesearch!="")\r
        {\r
                st.Bind(0,namesearch);\r
+               st.Bind(1,namesearch);\r
        }\r
        st.Step();\r
 \r
@@ -224,6 +252,9 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s
                std::string peertrustlisttrust;\r
                std::string publickey;\r
                std::string keypart="";\r
+               std::string messagetrustcomment="";\r
+               std::string trustlisttrustcomment="";\r
+               std::string messagecountstr="";\r
 \r
                StringFunctions::Convert(count,countstr);\r
 \r
@@ -234,6 +265,9 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s
                st.ResultText(4,localtrustlisttrust);\r
                st.ResultText(5,peertrustlisttrust);\r
                st.ResultText(6,publickey);\r
+               st.ResultText(7,messagetrustcomment);\r
+               st.ResultText(8,trustlisttrustcomment);\r
+               st.ResultText(9,messagecountstr);\r
 \r
                if(publickey.size()>8)\r
                {\r
@@ -256,15 +290,24 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s
                content+="</td>";\r
                content+="<td "+GetClassString(localmessagetrust)+">";\r
                content+="<input type=\"hidden\" name=\"oldlocalmessagetrust["+countstr+"]\" value=\""+localmessagetrust+"\">";\r
-               content+="<input type=\"text\" name=\"localmessagetrust["+countstr+"]\" value=\""+localmessagetrust+"\" size=\"2\" maxlength=\"3\"></td>";\r
+               content+="<input type=\"text\" name=\"localmessagetrust["+countstr+"]\" value=\""+localmessagetrust+"\" size=\"2\" maxlength=\"3\" class=\"small90\"></td>";\r
+               content+="<td "+GetClassString(localmessagetrust)+">";\r
+               content+="<input type=\"hidden\" name=\"oldmessagetrustcomment["+countstr+"]\" value=\""+SanitizeOutput(messagetrustcomment)+"\">";\r
+               content+="<input type=\"text\" name=\"messagetrustcomment["+countstr+"]\" value=\""+SanitizeOutput(messagetrustcomment)+"\" maxlength=\"50\" class=\"small90\">";\r
+               content+="</td>";               \r
                content+="<td "+GetClassString(peermessagetrust)+">";\r
                content+=peermessagetrust+"</td>";\r
                content+="<td "+GetClassString(localtrustlisttrust)+">";\r
                content+="<input type=\"hidden\" name=\"oldlocaltrustlisttrust["+countstr+"]\" value=\""+localtrustlisttrust+"\">";\r
-               content+="<input type=\"text\" name=\"localtrustlisttrust["+countstr+"]\" value=\""+localtrustlisttrust+"\" size=\"2\" maxlength=\"3\"></td>";\r
+               content+="<input type=\"text\" name=\"localtrustlisttrust["+countstr+"]\" value=\""+localtrustlisttrust+"\" size=\"2\" maxlength=\"3\" class=\"small90\"></td>";\r
+               content+="<td "+GetClassString(localtrustlisttrust)+">";\r
+               content+="<input type=\"hidden\" name=\"oldtrustlisttrustcomment["+countstr+"]\" value=\""+SanitizeOutput(trustlisttrustcomment)+"\">";\r
+               content+="<input type=\"text\" name=\"trustlisttrustcomment["+countstr+"]\" value=\""+SanitizeOutput(trustlisttrustcomment)+"\" maxlength=\"50\" class=\"small90\">";\r
+               content+="</td>";\r
                content+="<td "+GetClassString(peertrustlisttrust)+">";\r
                content+=peertrustlisttrust+"</td>";\r
-               content+="</tr>";\r
+               content+="<td>"+messagecountstr+"</td>";\r
+               content+="</tr>\r\n";\r
                st.Step();\r
                count++;\r
        }\r
@@ -278,17 +321,17 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s
                if(startrow>0)\r
                {\r
                        StringFunctions::Convert(startrow-rowsperpage,tempstr);\r
-                       content+="<td colspan=\"2\" align=\"left\"><a href=\"peertrust.htm?"+BuildQueryString(startrow-rowsperpage,namesearch,sortby,sortorder)+"\"><-- Previous Page</a></td>";\r
-                       cols+=2;\r
+                       content+="<td colspan=\"3\" align=\"left\"><a href=\"peertrust.htm?"+BuildQueryString(startrow-rowsperpage,namesearch,sortby,sortorder)+"\"><-- Previous Page</a></td>";\r
+                       cols+=3;\r
                }\r
                if(startrow+rowsperpage<identitycount)\r
                {\r
-                       while(cols<3)\r
+                       while(cols<5)\r
                        {\r
                                content+="<td></td>";\r
                                cols++;\r
                        }\r
-                       content+="<td colspan=\"2\" align=\"right\"><a href=\"peertrust.htm?"+BuildQueryString(startrow+rowsperpage,namesearch,sortby,sortorder)+"\">Next Page --></a></td>";\r
+                       content+="<td colspan=\"3\" align=\"right\"><a href=\"peertrust.htm?"+BuildQueryString(startrow+rowsperpage,namesearch,sortby,sortorder)+"\">Next Page --></a></td>";\r
                }\r
                content+="</tr>";\r
        }\r