X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fhttp%2Fpages%2Fpeertrustpage.cpp;h=9429ede25a745e135869ebd410467d2f790761ad;hb=107bd97018964d48425306026d06afd038e84db0;hp=b353243972d0d9e482c0b5cf40f1a531016d7cbe;hpb=b9c3763a932cebaa015a27fe111017f6f34dfbaa;p=fms.git diff --git a/src/http/pages/peertrustpage.cpp b/src/http/pages/peertrustpage.cpp index b353243..9429ede 100644 --- a/src/http/pages/peertrustpage.cpp +++ b/src/http/pages/peertrustpage.cpp @@ -5,6 +5,48 @@ #include #endif +const std::string PeerTrustPage::BuildQueryString(const long startrow, const std::string &namesearch, const std::string &sortby, const std::string &sortorder) +{ + std::string returnval=""; + std::string tempval=""; + + if(startrow>=0) + { + StringFunctions::Convert(startrow,tempval); + returnval+="startrow="+tempval; + } + + if(namesearch!="") + { + if(returnval!="") + { + returnval+="&"; + } + returnval+="namesearch="+namesearch; + } + + if(sortby!="") + { + if(returnval!="") + { + returnval+="&"; + } + returnval+="sortby="+sortby; + } + + if(sortorder!="") + { + if(returnval!="") + { + returnval+="&"; + } + returnval+="sortorder="+sortorder; + } + + return returnval; + +} + const std::string PeerTrustPage::GeneratePage(const std::string &method, const std::map &queryvars) { int count=0; @@ -15,6 +57,10 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s std::string rowsperpagestr; int startrow=0; std::string startrowstr="0"; + std::string namesearch=""; + std::string sql; + std::string sortby=""; + std::string sortorder=""; StringFunctions::Convert(rowsperpage,rowsperpagestr); @@ -25,6 +71,10 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s std::vector lmt; std::vector oldltlt; std::vector ltlt; + std::vector oldmtc; + std::vector mtc; + std::vector oldtltc; + std::vector tltc; int localmessagetrust=0; int localtrustlisttrust=0; int identityid; @@ -34,20 +84,40 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s CreateArgArray(queryvars,"localmessagetrust",lmt); CreateArgArray(queryvars,"oldlocaltrustlisttrust",oldltlt); CreateArgArray(queryvars,"localtrustlisttrust",ltlt); + CreateArgArray(queryvars,"oldmessagetrustcomment",oldmtc); + CreateArgArray(queryvars,"messagetrustcomment",mtc); + CreateArgArray(queryvars,"oldtrustlisttrustcomment",oldtltc); + CreateArgArray(queryvars,"trustlisttrustcomment",tltc); - SQLite3DB::Statement update=m_db->Prepare("UPDATE tblIdentity SET LocalMessageTrust=?, LocalTrustListTrust=? WHERE IdentityID=?;"); + SQLite3DB::Statement update=m_db->Prepare("UPDATE tblIdentity SET LocalMessageTrust=?, LocalTrustListTrust=?, MessageTrustComment=?, TrustListTrustComment=? WHERE IdentityID=?;"); for(int i=0; i"; + content+="
"; + content+=""; + content+=""; + content+="
"; + content+=""; content+="
"; content+=""; content+=""; - content+=""; - content+=""; + if(namesearch!="") + { + content+=""; + } + content+="
NameLocal Message TrustPeer Message TrustLocal Trust List TrustPeer Trust List Trust
"; + content+=""; + content+=""; + content+=""; + content+=""; + content+=""; + content+=""; + content+=""; + content+=""; + content+="\r\n"; - SQLite3DB::Statement st=m_db->Prepare("SELECT COUNT(*) FROM tblIdentity;"); + // get count of identities we are showing + sql="SELECT COUNT(*) FROM tblIdentity"; + if(namesearch!="") + { + sql+=" WHERE Name LIKE '%' || ? || '%' AND tblIdentity.Hidden='false'"; + } + else + { + sql+=" WHERE tblIdentity.Hidden='false'"; + } + sql+=";"; + SQLite3DB::Statement st=m_db->Prepare(sql); + if(namesearch!="") + { + st.Bind(0,namesearch); + } st.Step(); st.ResultInt(0,identitycount); st.Finalize(); - st=m_db->Prepare("SELECT IdentityID,Name,LocalMessageTrust,PeerMessageTrust,LocalTrustListTrust,PeerTrustListTrust,PublicKey FROM tblIdentity ORDER BY Name COLLATE NOCASE LIMIT "+startrowstr+","+rowsperpagestr+";"); + 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"; + if(namesearch!="") + { + sql+=" WHERE (Name LIKE '%' || ? || '%' OR PublicKey LIKE '%' || ? || '%') AND tblIdentity.Hidden='false'"; + } + else + { + sql+=" WHERE tblIdentity.Hidden='false'"; + } + sql+=" GROUP BY tblIdentity.IdentityID"; + sql+=" ORDER BY"; + if(sortby=="Name") + { + sql+=" Name COLLATE NOCASE"; + } + else + { + sql+=" "+sortby; + } + if(sortorder!="") + { + sql+=" "+sortorder; + } + sql+=" LIMIT "+startrowstr+","+rowsperpagestr+";"; + st=m_db->Prepare(sql); + if(namesearch!="") + { + st.Bind(0,namesearch); + st.Bind(1,namesearch); + } st.Step(); while(st.RowReturned()) @@ -94,6 +252,9 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s std::string peertrustlisttrust; std::string publickey; std::string keypart=""; + std::string messagetrustcomment=""; + std::string trustlisttrustcomment=""; + std::string messagecountstr=""; StringFunctions::Convert(count,countstr); @@ -104,6 +265,9 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s st.ResultText(4,localtrustlisttrust); st.ResultText(5,peertrustlisttrust); st.ResultText(6,publickey); + st.ResultText(7,messagetrustcomment); + st.ResultText(8,trustlisttrustcomment); + st.ResultText(9,messagecountstr); if(publickey.size()>8) { @@ -113,6 +277,7 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s content+=""; content+=""; content+=""; + content+=""; + content+=""; content+=""; content+=""; + content+=""; + content+=""; content+=""; - content+=""; + content+=""; + content+="\r\n"; st.Step(); count++; } @@ -146,23 +321,22 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s if(startrow>0) { StringFunctions::Convert(startrow-rowsperpage,tempstr); - content+=""; - cols+=2; + content+=""; + cols+=3; } if(startrow+rowsperpageNext Page -->"; + content+=""; } content+=""; } - content+=""; + content+=""; content+="
NameLocal Message TrustMessage CommentPeer Message TrustLocal Trust List TrustTrust CommentPeer Trust List TrustMessage Count
"; content+=""; + content+=""; if(name!="") { content+=SanitizeOutput(name+keypart)+"..."; @@ -121,18 +286,28 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s { content+="[Unknown Name]"; } + content+=""; content+=""; content+=""; - content+=""; + content+=""; + content+=""; + content+=""; content+=peermessagetrust+""; content+=""; - content+=""; + content+=""; + content+=""; + content+=""; content+=peertrustlisttrust+"
"+messagecountstr+"
<-- Previous Page<-- Previous PageNext Page -->
"; content+="
"; @@ -188,6 +362,25 @@ const std::string PeerTrustPage::GetClassString(const std::string &trustlevel) } } +const std::string PeerTrustPage::ReverseSort(const std::string &sortname, const std::string ¤tsortby, const std::string ¤tsortorder) +{ + if(sortname==currentsortby) + { + if(currentsortorder=="ASC") + { + return "DESC"; + } + else + { + return "ASC"; + } + } + else + { + return currentsortorder; + } +} + const bool PeerTrustPage::WillHandleURI(const std::string &uri) { if(uri.find("peertrust.")!=std::string::npos)