version 0.3.23
[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 #ifdef XMEM\r
8         #include <xmem.h>\r
9 #endif\r
10 \r
11 const std::string VersionInfoPage::GeneratePage(const std::string &method, const std::map<std::string,std::string> &queryvars)\r
12 {\r
13         std::string content="";\r
14 \r
15         bool hascriteria=false;\r
16         std::string major=VERSION_MAJOR;\r
17         std::string minor=VERSION_MINOR;\r
18         std::string release=VERSION_RELEASE;\r
19         std::string sql="";\r
20 \r
21         if(queryvars.find("Major")!=queryvars.end())\r
22         {\r
23                 major=(*queryvars.find("Major")).second;\r
24                 hascriteria=true;\r
25         }\r
26         if(queryvars.find("Minor")!=queryvars.end())\r
27         {\r
28                 minor=(*queryvars.find("Minor")).second;\r
29                 hascriteria=true;\r
30         }\r
31         if(queryvars.find("Release")!=queryvars.end())\r
32         {\r
33                 release=(*queryvars.find("Release")).second;\r
34                 hascriteria=true;\r
35         }\r
36 \r
37         sql="SELECT Notes, Changes, Major, Minor, Release FROM tblFMSVersion ";\r
38         if(hascriteria==true)\r
39         {\r
40                 sql+="WHERE Major=? AND Minor=? AND Release=? ";\r
41         }\r
42         sql+="ORDER BY Major DESC, Minor DESC, Release DESC;";\r
43         SQLite3DB::Statement st=m_db->Prepare(sql);\r
44         if(hascriteria==true)\r
45         {\r
46                 st.Bind(0,major);\r
47                 st.Bind(1,minor);\r
48                 st.Bind(2,release);\r
49         }\r
50         st.Step();\r
51 \r
52         while(st.RowReturned())\r
53         {\r
54                 std::string notes="";\r
55                 std::string changes="";\r
56 \r
57                 st.ResultText(0,notes);\r
58                 st.ResultText(1,changes);\r
59                 st.ResultText(2,major);\r
60                 st.ResultText(3,minor);\r
61                 st.ResultText(4,release);\r
62 \r
63                 content+="<div style=\"margin-bottom:20px;\">";\r
64                 content+="<h2>Release "+major+"."+minor+"."+release+"</h2>";\r
65                 content+="<h3>Notes</h3>";\r
66                 content+=StringFunctions::Replace(notes,"\n","<br>");\r
67                 content+="<h3>Changes</h3>";\r
68                 content+=StringFunctions::Replace(changes,"\n","<br>");\r
69                 content+="</div>";\r
70                 st.Step();\r
71         }\r
72 \r
73         return StringFunctions::Replace(m_template,"[CONTENT]",content);\r
74 }\r