Beispiel #1
0
const std::string OptionsPage::GenerateContent(const std::string &method, const std::map<std::string,QueryVar> &queryvars)
{
	std::string content("");
	std::string sql("");

	if(queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="save" && ValidateFormPassword(queryvars))
	{
		Option option(m_db);
		option.ClearCache();
		std::vector<std::string> options;
		std::vector<std::string> oldvalues;
		std::vector<std::string> newvalues;
		CreateArgArray(queryvars,"option",options);
		CreateArgArray(queryvars,"oldvalue",oldvalues);
		CreateArgArray(queryvars,"value",newvalues);

		for(int i=0; i<options.size(); i++)
		{
			if(oldvalues[i]!=newvalues[i])
			{

				option.Set(options[i],newvalues[i]);

				// load new language immediately
				if(options[i]=="Language")
				{
					Poco::Path tdir;
					tdir.pushDirectory(global::basepath+"translations");
					tdir=tdir.makeAbsolute();
					tdir.setFileName(newvalues[i]);
					m_trans->LoadLocalizedTranslation(tdir.toString());
				}

				if(options[i]=="MessageDownloadMaxDaysBackward")
				{
					m_db->Execute("INSERT OR IGNORE\
								INTO tblMessageRequests (IdentityID, Day, RequestIndex, Found)\
								SELECT M.IdentityID, M.InsertDate, M.MessageIndex, 'true'\
								FROM tblMessage M\
								LEFT JOIN tblMessageRequests R\
									ON M.IdentityID=R.IdentityID\
									AND M.MessageIndex=R.RequestIndex\
									AND M.InsertDate=R.Day\
								WHERE R.IdentityID IS NULL\
								AND M.IdentityID IS NOT NULL\
								AND M.InsertDate >= date('now',(SELECT -MAX(OptionValue,0) FROM tblOption \
									WHERE Option='MessageDownloadMaxDaysBackward')||' days');");
				}
			}
Beispiel #2
0
const std::string RecentlyAddedPage::GenerateContent(const std::string &method, const std::map<std::string,QueryVar> &queryvars)
{
	std::string content="";
	Poco::DateTime date;
	int count=0;
	std::string countstr="0";

	if(queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="delete" && ValidateFormPassword(queryvars))
	{
		std::vector<std::string> identityids;
		CreateArgArray(queryvars,"chkdel",identityids);

		SQLite3DB::Statement del=m_db->Prepare("DELETE FROM tblIdentity WHERE IdentityID=?;");

		for(std::vector<std::string>::iterator i=identityids.begin(); i!=identityids.end(); i++)
		{
			if((*i)!="")
			{
				del.Bind(0,(*i));
				del.Step();
				del.Reset();
			}
		}

	}

	content="<h2>"+m_trans->Get("web.page.recentlyadded.title")+"</h2>";

	SQLite3DB::Statement st=m_db->Prepare("SELECT IdentityID, PublicKey, Name, DateAdded, AddedMethod FROM tblIdentity WHERE DateAdded>=? ORDER BY DateAdded DESC;");
	date-=Poco::Timespan(5,0,0,0,0);
	st.Bind(0,Poco::DateTimeFormatter::format(date,"%Y-%m-%d %H:%M:%S"));
	st.Step();

	content+="<form name=\"frmdel\" method=\"post\">";
	content+=CreateFormPassword();
	content+="<input type=\"hidden\" name=\"formaction\" value=\"delete\">";
	content+="<table class=\"small90\">";
	content+="<tr><th>"+m_trans->Get("web.page.recentlyadded.name")+"</th><th>"+m_trans->Get("web.page.recentlyadded.dateadded")+"</th><th>"+m_trans->Get("web.page.recentlyadded.addedmethod")+"</th></tr>";

	while(st.RowReturned())
	{
		std::string identityidstr="";
		std::string publickey="";
		std::string name="";
		std::string dateadded="";
		std::string addedmethod="";

		st.ResultText(0,identityidstr);
		st.ResultText(1,publickey);
		st.ResultText(2,name);
		st.ResultText(3,dateadded);
		st.ResultText(4,addedmethod);

		StringFunctions::Convert(count,countstr);

		content+="<tr>";
		content+="<td title=\""+publickey+"\">";
		content+="<a href=\"peerdetails.htm?identityid="+identityidstr+"\">";
		content+=SanitizeOutput(CreateShortIdentityName(name,publickey));
		content+="</a>";
		content+="</td>";
		content+="<td>"+dateadded+"</td>";
		content+="<td>"+SanitizeOutput(addedmethod)+"</td>";
		content+="<td><input type=\"checkbox\" name=\"chkdel["+countstr+"]\" value=\""+identityidstr+"\"></td>";
		content+="</tr>";

		count++;

		st.Step();
	}
	content+="<tr><td colspan=\"4\"><center><input type=\"submit\" value=\""+m_trans->Get("web.page.recentlyadded.deleteselected")+"\"></center></td></tr>";
	content+="</table>";

	return content;
}