X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fhttp%2Fpages%2Foptionspage.cpp;h=4ec32337565b47df5abda88b5d5dc8dd2cefd4f6;hb=59a5414ec47a2932a7802fcd1d98c4d80166564f;hp=774373812334fb655c33b380aab69133bb5f3d20;hpb=14fff12d9df0ee30e2df4bf9d22c2e83065816df;p=fms.git diff --git a/src/http/pages/optionspage.cpp b/src/http/pages/optionspage.cpp index 7743738..4ec3233 100644 --- a/src/http/pages/optionspage.cpp +++ b/src/http/pages/optionspage.cpp @@ -5,13 +5,82 @@ #include #endif +int OptionsPage::m_mode=1; + +const std::string OptionsPage::CreateDropDown(const std::string &name, const std::vector &items, const std::string &selecteditem, const std::string ¶m1, const std::string ¶m2) +{ + std::string rval(""); + + rval+=""; - content+=""; + std::string content(""); + std::string sql(""); - if(queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="save") + if(queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="save" && ValidateFormPassword(queryvars)) { SQLite3DB::Statement update=m_db->Prepare("UPDATE tblOption SET OptionValue=? WHERE Option=?;"); std::vector options; @@ -31,47 +100,132 @@ const std::string OptionsPage::GeneratePage(const std::string &method, const std update.Reset(); } } + + } + + if(queryvars.find("mode")!=queryvars.end()) + { + if((*queryvars.find("mode")).second=="2") + { + m_mode=2; + } + else + { + m_mode=1; + } } - SQLite3DB::Statement st=m_db->Prepare("SELECT Option,OptionValue,OptionDescription FROM tblOption;"); + content+="

Options

\r\n"; + content+="
"; + if(m_mode==1) + { + content+="Simple | Advanced"; + } + else + { + content+="Simple | Advanced"; + } + content+="
"; + + content+="
"; + content+=CreateFormPassword(); + content+="
OptionValueDescription
\r\n"; + + if(m_mode==1) + { + sql="SELECT Option,OptionValue,OptionDescription,Section,ValidValues,DisplayType,DisplayParam1,DisplayParam2 FROM tblOption WHERE Mode='simple' ORDER BY SortOrder;"; + } + else + { + sql="SELECT Option,OptionValue,OptionDescription,Section,ValidValues,DisplayType,DisplayParam1,DisplayParam2 FROM tblOption ORDER BY SortOrder;"; + } + SQLite3DB::Statement st=m_db->Prepare(sql); st.Step(); int count=0; std::string countstr; + std::string lastsection(""); while(st.RowReturned()) { - std::string option; - std::string value; - std::string description; + std::string option(""); + std::string value(""); + std::string description(""); + std::string section(""); + std::string validvalues(""); + std::vector validvaluevec; + std::string displaytype(""); + std::string displayparam1(""); + std::string displayparam2(""); st.ResultText(0,option); st.ResultText(1,value); st.ResultText(2,description); + st.ResultText(3,section); + if(st.ResultNull(4)==false) + { + st.ResultText(4,validvalues); + StringFunctions::Split(validvalues,"|",validvaluevec); + } + st.ResultText(5,displaytype); + st.ResultText(6,displayparam1); + st.ResultText(7,displayparam2); + + if(section!=lastsection) + { + content+=""; + content+=""; + content+=""; + lastsection=section; + } StringFunctions::Convert(count,countstr); content+=""; - content+=""; + content+=""; content+=""; + content+=""; } else { content+=CreateTrueFalseDropDown("value["+countstr+"]",value); } + */ - content+=""; - content+=""; + content+="\r\n"; + content+=""; + content+="\r\n"; st.Step(); count++; } - + content+=""; content+=""; content+="

"+section+"

"+option+""+option+""; - if(value!="true" && value!="false") + if(displaytype=="textbox") + { + content+=CreateTextBox("value["+countstr+"]",value,displayparam1,displayparam2); + } + else if(displaytype=="select") + { + content+=CreateDropDown("value["+countstr+"]",validvaluevec,value,displayparam1,displayparam2); + } + else if(displaytype=="textarea") + { + content+=CreateTextArea("value["+countstr+"]",value,displayparam1,displayparam2); + } + else + { + content+="Currently Unsupported"; + } + + /* + if(validvaluevec.size()>0) + { + content+=CreateDropDown("value["+countstr+"]",validvaluevec,value); + } + else if(value!="true" && value!="false") { - content+=""+description+"
"+description+"
"; - return "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"+StringFunctions::Replace(m_template,"[CONTENT]",content); + return StringFunctions::Replace(m_template,"[CONTENT]",content); } const bool OptionsPage::WillHandleURI(const std::string &uri)