version 0.2.17
[fms.git] / src / http / pages / localidentitiespage.cpp
index 8b26238..f3a4967 100644 (file)
@@ -7,28 +7,6 @@
        #include <xmem.h>\r
 #endif\r
 \r
-const std::string LocalIdentitiesPage::CreateTrueFalseDropDown(const std::string &name, const std::string &selected)\r
-{\r
-       std::string rval="";\r
-\r
-       rval+="<select name=\""+name+"\">";\r
-       rval+="<option value=\"true\"";\r
-       if(selected=="true")\r
-       {\r
-               rval+=" SELECTED";\r
-       }\r
-       rval+=">true</option>";\r
-       rval+="<option value=\"false\"";\r
-       if(selected=="false")\r
-       {\r
-               rval+=" SELECTED";\r
-       }\r
-       rval+=">false</option>";\r
-       rval+="</select>";\r
-\r
-       return rval;\r
-}\r
-\r
 const std::string LocalIdentitiesPage::GeneratePage(const std::string &method, const std::map<std::string,std::string> &queryvars)\r
 {\r
        int count;\r
@@ -43,26 +21,36 @@ const std::string LocalIdentitiesPage::GeneratePage(const std::string &method, c
                std::vector<std::string> publishtrustlist;\r
                std::vector<std::string> publishboardlist;\r
                std::vector<std::string> publishfreesite;\r
+               std::vector<std::string> mindelay;\r
+               std::vector<std::string> maxdelay;\r
 \r
                CreateArgArray(queryvars,"chkidentityid",ids);\r
                CreateArgArray(queryvars,"singleuse",singleuse);\r
                CreateArgArray(queryvars,"publishtrustlist",publishtrustlist);\r
                CreateArgArray(queryvars,"publishboardlist",publishboardlist);\r
                CreateArgArray(queryvars,"publishfreesite",publishfreesite);\r
+               CreateArgArray(queryvars,"mindelay",mindelay);\r
+               CreateArgArray(queryvars,"maxdelay",maxdelay);\r
 \r
                if((*queryvars.find("formaction")).second=="update")\r
                {\r
-                       SQLite3DB::Statement update=m_db->Prepare("UPDATE tblLocalIdentity SET SingleUse=?, PublishTrustList=?, PublishBoardList=?, PublishFreesite=? WHERE LocalIdentityID=?;");\r
+                       SQLite3DB::Statement update=m_db->Prepare("UPDATE tblLocalIdentity SET SingleUse=?, PublishTrustList=?, PublishBoardList=?, PublishFreesite=?, MinMessageDelay=?, MaxMessageDelay=? WHERE LocalIdentityID=?;");\r
                        for(int i=0; i<ids.size(); i++)\r
                        {\r
                                if(ids[i]!="")\r
                                {\r
+                                       int minmessagedelay=0;\r
+                                       int maxmessagedelay=0;\r
                                        StringFunctions::Convert(ids[i],id);\r
+                                       StringFunctions::Convert(mindelay[i],minmessagedelay);\r
+                                       StringFunctions::Convert(maxdelay[i],maxmessagedelay);\r
                                        update.Bind(0,singleuse[i]);\r
                                        update.Bind(1,publishtrustlist[i]);\r
                                        update.Bind(2,publishboardlist[i]);\r
                                        update.Bind(3,publishfreesite[i]);\r
-                                       update.Bind(4,id);\r
+                                       update.Bind(4,minmessagedelay);\r
+                                       update.Bind(5,maxmessagedelay);\r
+                                       update.Bind(6,id);\r
                                        update.Step();\r
                                        update.Reset();\r
                                }\r
@@ -206,9 +194,9 @@ const std::string LocalIdentitiesPage::GeneratePage(const std::string &method, c
 \r
 //     content+="<form name=\"frmlocalidentity\" method=\"POST\">";\r
 //     content+="<input type=\"hidden\" name=\"formaction\" value=\"update\">";\r
-       content+="<table><tr><th>Name</th><th>Single Use</th><th>Publish Trust List</th><th>Publish Board List</th><th>Publish Freesite</th><th>Announced? *</th></tr>";\r
+       content+="<table><tr><th>Name</th><th>Single Use</th><th>Publish Trust List</th><th>Publish Board List</th><th>Publish Freesite</th><th>Min Message Delay</th><th>Max Message Delay</th><th>Announced? *</th></tr>";\r
 \r
-       SQLite3DB::Statement st=m_db->Prepare("SELECT LocalIdentityID,tblLocalIdentity.Name,tblLocalIdentity.PublicKey,tbLLocalIdentity.PublishTrustList,tblLocalIdentity.SingleUse,tblLocalIdentity.PublishBoardList,tblIdentity.IdentityID,tblLocalIdentity.PublishFreesite FROM tblLocalIdentity LEFT JOIN tblIdentity ON tblLocalIdentity.PublicKey=tblIdentity.PublicKey ORDER BY tblLocalIdentity.Name;");\r
+       SQLite3DB::Statement st=m_db->Prepare("SELECT LocalIdentityID,tblLocalIdentity.Name,tblLocalIdentity.PublicKey,tbLLocalIdentity.PublishTrustList,tblLocalIdentity.SingleUse,tblLocalIdentity.PublishBoardList,tblIdentity.IdentityID,tblLocalIdentity.PublishFreesite,tblLocalIdentity.MinMessageDelay,tblLocalIdentity.MaxMessageDelay FROM tblLocalIdentity LEFT JOIN tblIdentity ON tblLocalIdentity.PublicKey=tblIdentity.PublicKey ORDER BY tblLocalIdentity.Name;");\r
        st.Step();\r
 \r
        SQLite3DB::Statement trustst=m_db->Prepare("SELECT COUNT(*) FROM tblPeerTrust LEFT JOIN tblIdentity ON tblPeerTrust.TargetIdentityID=tblIdentity.IdentityID WHERE tblIdentity.PublicKey=? GROUP BY tblPeerTrust.TargetIdentityID;");\r
@@ -224,6 +212,8 @@ const std::string LocalIdentitiesPage::GeneratePage(const std::string &method, c
                std::string singleuse="";\r
                std::string publishboardlist="";\r
                std::string publishfreesite="";\r
+               std::string minmessagedelay="0";\r
+               std::string maxmessagedelay="0";\r
 \r
                st.ResultText(0,id);\r
                st.ResultText(1,name);\r
@@ -232,6 +222,8 @@ const std::string LocalIdentitiesPage::GeneratePage(const std::string &method, c
                st.ResultText(4,singleuse);\r
                st.ResultText(5,publishboardlist);\r
                st.ResultText(7,publishfreesite);\r
+               st.ResultText(8,minmessagedelay);\r
+               st.ResultText(9,maxmessagedelay);\r
 \r
                content+="<tr>";\r
 //             content+="<td><input type=\"checkbox\" name=\"chkidentityid["+countstr+"]\" value=\""+id+"\"></td>";\r
@@ -240,6 +232,8 @@ const std::string LocalIdentitiesPage::GeneratePage(const std::string &method, c
                content+="<td>"+CreateTrueFalseDropDown("publishtrustlist["+countstr+"]",publishtrustlist)+"</td>";\r
                content+="<td>"+CreateTrueFalseDropDown("publishboardlist["+countstr+"]",publishboardlist)+"</td>";\r
                content+="<td>"+CreateTrueFalseDropDown("publishfreesite["+countstr+"]",publishfreesite)+"</td>";\r
+               content+="<td><input type=\"text\" size=\"2\" name=\"mindelay["+countstr+"]\" value=\""+minmessagedelay+"\"></td>";\r
+               content+="<td><input type=\"text\" size=\"2\" name=\"maxdelay["+countstr+"]\" value=\""+maxmessagedelay+"\"></td>";\r
                \r
                trustst.Bind(0,publickey);\r
                trustst.Step();\r
@@ -269,6 +263,7 @@ const std::string LocalIdentitiesPage::GeneratePage(const std::string &method, c
                content+="<td><input type=\"submit\" value=\"Update\"></form></td>";\r
                content+="<td><form name=\"frmdel\""+countstr+"\" method=\"POST\"><input type=\"hidden\" name=\"formaction\" value=\"delete\"><input type=\"hidden\" name=\"chkidentityid["+countstr+"]\" value=\""+id+"\"><input type=\"submit\" value=\"Delete\"></form></td>";\r
                content+="</tr>";\r
+               content+="<tr><td></td><td colspan=\"7\" class=\"smaller\">"+publickey+"</td></tr>";\r
                st.Step();\r
                count++;\r
        }\r
@@ -277,6 +272,7 @@ const std::string LocalIdentitiesPage::GeneratePage(const std::string &method, c
        content+="</table>";\r
        content+="<p class=\"paragraph\">* An identity is considered successfully announced when you have downloaded a trust list from someone that contains the identity.  The number in parenthesis is how many trust lists that identity appears in.</p>";\r
        content+="<p class=\"paragraph\">Single Use Identities will automatically be deleted 7 days after creation.</p>";\r
+       content+="<p class=\"paragraph\">Messages that each identity sends may be delayed by a random number of minutes between min and max.  Set both to 0 to send messages as soon as possible.</p>";\r
 \r
        return "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"+StringFunctions::Replace(m_template,"[CONTENT]",content);\r
 }\r