version 0.3.7
[fms.git] / src / http / pages / versioninfopage.cpp
1 #include "../../../include/http/pages/versioninfopage.h"\r
2 #include "../../../include/global.h"\r
3 #include "../../../include/stringfunctions.h"\r
4 \r
5 #include <string>\r
6 \r
7 const std::string VersionInfoPage::GeneratePage(const std::string &method, const std::map<std::string,std::string> &queryvars)\r
8 {\r
9         std::string content="";\r
10 \r
11         std::string major=VERSION_MAJOR;\r
12         std::string minor=VERSION_MINOR;\r
13         std::string release=VERSION_RELEASE;\r
14 \r
15         if(queryvars.find("Major")!=queryvars.end())\r
16         {\r
17                 major=(*queryvars.find("Major")).second;\r
18         }\r
19         if(queryvars.find("Minor")!=queryvars.end())\r
20         {\r
21                 minor=(*queryvars.find("Minor")).second;\r
22         }\r
23         if(queryvars.find("Release")!=queryvars.end())\r
24         {\r
25                 release=(*queryvars.find("Release")).second;\r
26         }\r
27 \r
28         SQLite3DB::Statement st=m_db->Prepare("SELECT Notes, Changes FROM tblFMSVersion WHERE Major=? AND Minor=? AND Release=?;");\r
29         st.Bind(0,major);\r
30         st.Bind(1,minor);\r
31         st.Bind(2,release);\r
32         st.Step();\r
33 \r
34         if(st.RowReturned())\r
35         {\r
36                 std::string notes="";\r
37                 std::string changes="";\r
38 \r
39                 st.ResultText(0,notes);\r
40                 st.ResultText(1,changes);\r
41 \r
42                 content+="<h2>Release "+major+"."+minor+"."+release+"</h2>";\r
43                 content+="<h3>Notes</h3>";\r
44                 content+=StringFunctions::Replace(notes,"\n","<br>");\r
45                 content+="<h3>Changes</h3>";\r
46                 content+=StringFunctions::Replace(changes,"\n","<br>");\r
47         }\r
48 \r
49         return StringFunctions::Replace(m_template,"[CONTENT]",content);\r
50 }\r
51 \r
52 const bool VersionInfoPage::WillHandleURI(const std::string &uri)\r
53 {\r
54         if(uri.find("versioninfo.")!=std::string::npos)\r
55         {\r
56                 return true;\r
57         }\r
58         else\r
59         {\r
60                 return false;\r
61         }\r
62 }\r