X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fhttp%2Fpages%2Fhomepage.cpp;h=15cf76e37a24f4d46cdd09f0bc7ead4c5ac66ecd;hb=59a5414ec47a2932a7802fcd1d98c4d80166564f;hp=28bfa0fb9071d184cb320af1e77cfb4092b06259;hpb=d8ccfe2b3944adf07d35534459cdda19d15217c8;p=fms.git diff --git a/src/http/pages/homepage.cpp b/src/http/pages/homepage.cpp index 28bfa0f..15cf76e 100644 --- a/src/http/pages/homepage.cpp +++ b/src/http/pages/homepage.cpp @@ -1,4 +1,8 @@ #include "../../../include/http/pages/homepage.h" +#include "../../../include/stringfunctions.h" +#include "../../../include/global.h" +#include "../../../include/fmsapp.h" +#include "../../../include/option.h" #ifdef XMEM #include @@ -6,7 +10,107 @@ const std::string HomePage::GeneratePage(const std::string &method, const std::map &queryvars) { - return "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\nHome"; + + Option option(m_db); + + std::string messagecountstr=""; + std::string filecountstr=""; + std::string fcphost="127.0.0.1"; + std::string fproxyport="8888"; + + option.Get("FCPHost",fcphost); + option.Get("FProxyPort",fproxyport); + + if(queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="shutdown" && ValidateFormPassword(queryvars)) + { + m_log->trace("HomePage::GeneratePage requested shutdown"); + ((FMSApp *)&FMSApp::instance())->Terminate(); + } + + std::string content="

Home

"; + content+="

"; + content+="FMS version "; + content+=FMS_VERSION; + content+="
"; + + bool showgenericupdate=true; + SQLite3DB::Statement st=m_db->Prepare("SELECT Major, Minor, Release, PageKey FROM tblFMSVersion ORDER BY Major DESC, Minor DESC, Release DESC LIMIT 1;"); + st.Step(); + if(st.RowReturned()) + { + int major=0; + int minor=0; + int release=0; + int currentmajor=0; + int currentminor=0; + int currentrelease=0; + std::string freesite=""; + std::string majorstr=""; + std::string minorstr=""; + std::string releasestr=""; + + StringFunctions::Convert(VERSION_MAJOR,currentmajor); + StringFunctions::Convert(VERSION_MINOR,currentminor); + StringFunctions::Convert(VERSION_RELEASE,currentrelease); + + st.ResultInt(0,major); + st.ResultInt(1,minor); + st.ResultInt(2,release); + st.ResultText(3,freesite); + + StringFunctions::Convert(major,majorstr); + StringFunctions::Convert(minor,minorstr); + StringFunctions::Convert(release,releasestr); + + if(currentmajorFMS "+majorstr+"."+minorstr+"."+releasestr+"
"; + content+="You can see the release info here
"; + showgenericupdate=false; + } + else + { + content+="Release info
"; + } + + } + + if(showgenericupdate) + { + content+="Check for new versions at the FMS Freesite
"; + } + + content+="Use these pages to administer your FMS installation."; + content+="

"; + + st=m_db->Prepare("SELECT COUNT(*) FROM tblMessageInserts WHERE Inserted='false';"); + st.Step(); + if(st.RowReturned()) + { + st.ResultText(0,messagecountstr); + } + content+="Messages waiting to be inserted:"+messagecountstr; + if (messagecountstr!="0") //show link to message page + { + content+=" (show messages)"; + } + content+="
"; + st=m_db->Prepare("SELECT COUNT(*) FROM tblFileInserts WHERE Key IS NULL;"); + st.Step(); + if(st.RowReturned()) + { + st.ResultText(0,filecountstr); + } + content+="Files waiting to be inserted:"+filecountstr+"
"; + content+="

"; + content+="

"; + content+=CreateFormPassword(); + content+=""; + content+=""; + content+="
"; + content+="

"; + + return StringFunctions::Replace(m_template,"[CONTENT]",content); } const bool HomePage::WillHandleURI(const std::string &uri)