1 #include "../../../include/http/pages/localidentitiespage.h"
\r
2 #include "../../../include/stringfunctions.h"
\r
8 const std::string LocalIdentitiesPage::CreateTrueFalseDropDown(const std::string &name, const std::string &selected)
\r
10 std::string rval="";
\r
12 rval+="<select name=\""+name+"\">";
\r
13 rval+="<option value=\"true\"";
\r
14 if(selected=="true")
\r
18 rval+=">true</option>";
\r
19 rval+="<option value=\"false\"";
\r
20 if(selected=="false")
\r
24 rval+=">false</option>";
\r
30 const std::string LocalIdentitiesPage::GeneratePage(const std::string &method, const std::map<std::string,std::string> &queryvars)
\r
33 std::string countstr;
\r
34 std::string content="";
\r
37 if(queryvars.find("formaction")!=queryvars.end())
\r
40 std::vector<std::string> ids;
\r
41 std::vector<std::string> singleuse;
\r
42 std::vector<std::string> publishtrustlist;
\r
44 CreateArgArray(queryvars,"chkidentityid",ids);
\r
45 CreateArgArray(queryvars,"singleuse",singleuse);
\r
46 CreateArgArray(queryvars,"publishtrustlist",publishtrustlist);
\r
48 if((*queryvars.find("formaction")).second=="update")
\r
50 SQLite3DB::Statement update=m_db->Prepare("UPDATE tblLocalIdentity SET SingleUse=?, PublishTrustList=? WHERE LocalIdentityID=?;");
\r
51 for(int i=0; i<ids.size(); i++)
\r
55 StringFunctions::Convert(ids[i],id);
\r
56 update.Bind(0,singleuse[i]);
\r
57 update.Bind(1,publishtrustlist[i]);
\r
64 if((*queryvars.find("formaction")).second=="delete")
\r
66 SQLite3DB::Statement del=m_db->Prepare("DELETE FROM tblLocalIdentity WHERE LocalIdentityID=?;");
\r
67 for(int i=0; i<ids.size(); i++)
\r
71 StringFunctions::Convert(ids[i],id);
\r
80 content+="<h2>Local Identities</h2>";
\r
81 content+="<form name=\"frmlocalidentity\" method=\"POST\">";
\r
82 content+="<input type=\"hidden\" name=\"formaction\" value=\"update\">";
\r
83 content+="<table><tr><td></td><th>Name</th><th>Single Use</th><th>Publish Trust List</th><th>Announced? *</th></tr>";
\r
85 SQLite3DB::Statement st=m_db->Prepare("SELECT LocalIdentityID,tblLocalIdentity.Name,tblLocalIdentity.PublicKey,tbLLocalIdentity.PublishTrustList,tblLocalIdentity.SingleUse,tblLocalIdentity.PublishBoardList,tblIdentity.IdentityID FROM tblLocalIdentity LEFT JOIN tblIdentity ON tblLocalIdentity.PublicKey=tblIdentity.PublicKey ORDER BY tblLocalIdentity.Name;");
\r
89 while(st.RowReturned())
\r
91 StringFunctions::Convert(count,countstr);
\r
94 std::string publickey;
\r
95 std::string publishtrustlist;
\r
96 std::string singleuse;
\r
98 st.ResultText(0,id);
\r
99 st.ResultText(1,name);
\r
100 st.ResultText(2,publickey);
\r
101 st.ResultText(3,publishtrustlist);
\r
102 st.ResultText(4,singleuse);
\r
105 content+="<td><input type=\"checkbox\" name=\"chkidentityid["+countstr+"]\" value=\""+id+"\"></td>";
\r
106 content+="<td title=\""+publickey+"\">"+name+"</td>";
\r
107 content+="<td>"+CreateTrueFalseDropDown("singleuse["+countstr+"]",singleuse)+"</td>";
\r
108 content+="<td>"+CreateTrueFalseDropDown("publishtrustlist["+countstr+"]",publishtrustlist)+"</td>";
\r
109 if(st.ResultNull(6))
\r
111 content+="<td>No</td>";
\r
115 content+="<td>Yes</td>";
\r
122 content+="<tr><td colspan=\"4\"><center><input type=\"submit\" value=\"Update Selected\"> <input type=\"submit\" value=\"Delete Selected\" onClick=\"if(confirm('Delete Selected Identities?')){frmlocalidentity.formaction.value='delete';}else{return false;}\"></td></tr>";
\r
123 content+="</table>";
\r
124 content+="<p class=\"paragraph=\">* An identity is considered successfully announced when you have downloaded a trust list from someone that contains the identity.</p>";
\r
126 return "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"+StringFunctions::Replace(m_template,"[CONTENT]",content);
\r
129 const bool LocalIdentitiesPage::WillHandleURI(const std::string &uri)
\r
131 if(uri.find("localidentities.")!=std::string::npos)
\r