version 0.3.23
[fms.git] / src / http / pages / versioninfopage.cpp
index 670e9da..13b88ba 100644 (file)
@@ -4,59 +4,71 @@
 \r
 #include <string>\r
 \r
+#ifdef XMEM\r
+       #include <xmem.h>\r
+#endif\r
+\r
 const std::string VersionInfoPage::GeneratePage(const std::string &method, const std::map<std::string,std::string> &queryvars)\r
 {\r
        std::string content="";\r
 \r
+       bool hascriteria=false;\r
        std::string major=VERSION_MAJOR;\r
        std::string minor=VERSION_MINOR;\r
        std::string release=VERSION_RELEASE;\r
+       std::string sql="";\r
 \r
        if(queryvars.find("Major")!=queryvars.end())\r
        {\r
                major=(*queryvars.find("Major")).second;\r
+               hascriteria=true;\r
        }\r
        if(queryvars.find("Minor")!=queryvars.end())\r
        {\r
                minor=(*queryvars.find("Minor")).second;\r
+               hascriteria=true;\r
        }\r
        if(queryvars.find("Release")!=queryvars.end())\r
        {\r
                release=(*queryvars.find("Release")).second;\r
+               hascriteria=true;\r
        }\r
 \r
-       SQLite3DB::Statement st=m_db->Prepare("SELECT Notes, Changes FROM tblFMSVersion WHERE Major=? AND Minor=? AND Release=?;");\r
-       st.Bind(0,major);\r
-       st.Bind(1,minor);\r
-       st.Bind(2,release);\r
+       sql="SELECT Notes, Changes, Major, Minor, Release FROM tblFMSVersion ";\r
+       if(hascriteria==true)\r
+       {\r
+               sql+="WHERE Major=? AND Minor=? AND Release=? ";\r
+       }\r
+       sql+="ORDER BY Major DESC, Minor DESC, Release DESC;";\r
+       SQLite3DB::Statement st=m_db->Prepare(sql);\r
+       if(hascriteria==true)\r
+       {\r
+               st.Bind(0,major);\r
+               st.Bind(1,minor);\r
+               st.Bind(2,release);\r
+       }\r
        st.Step();\r
 \r
-       if(st.RowReturned())\r
+       while(st.RowReturned())\r
        {\r
                std::string notes="";\r
                std::string changes="";\r
 \r
                st.ResultText(0,notes);\r
                st.ResultText(1,changes);\r
+               st.ResultText(2,major);\r
+               st.ResultText(3,minor);\r
+               st.ResultText(4,release);\r
 \r
+               content+="<div style=\"margin-bottom:20px;\">";\r
                content+="<h2>Release "+major+"."+minor+"."+release+"</h2>";\r
                content+="<h3>Notes</h3>";\r
                content+=StringFunctions::Replace(notes,"\n","<br>");\r
                content+="<h3>Changes</h3>";\r
                content+=StringFunctions::Replace(changes,"\n","<br>");\r
+               content+="</div>";\r
+               st.Step();\r
        }\r
 \r
        return StringFunctions::Replace(m_template,"[CONTENT]",content);\r
 }\r
-\r
-const bool VersionInfoPage::WillHandleURI(const std::string &uri)\r
-{\r
-       if(uri.find("versioninfo.")!=std::string::npos)\r
-       {\r
-               return true;\r
-       }\r
-       else\r
-       {\r
-               return false;\r
-       }\r
-}\r