form fixes

This commit is contained in:
Peter Schojer 2008-09-01 08:01:40 +00:00
parent 716d71c833
commit b741f069ce
4 changed files with 42 additions and 7 deletions

View File

@ -87,12 +87,15 @@ void TimeFieldCellRenderer::writeCellProperties(const TimeFieldCell* pCell, std:
static const std::string fmt24h("'H:i'"); static const std::string fmt24h("'H:i'");
static const std::string fmt24hs("'H:i:s'"); static const std::string fmt24hs("'H:i:s'");
static const std::string fmtAmPms("'h:i:s A'"); static const std::string fmtAmPms("'h:i:s A'");
static const std::string fmt12h("'h:i'");
if (fmt == TimeField::FMT_24H) if (fmt == TimeField::FMT_24H)
ostr << ",format:" << fmt24h; ostr << ",format:" << fmt24h;
else if (fmt == TimeField::FMT_24H_WITHSECONDS) else if (fmt == TimeField::FMT_24H_WITHSECONDS)
ostr << ",format:" << fmt24hs; ostr << ",format:" << fmt24hs;
else if (fmt == TimeField::FMT_AMPM_WITHSECONDS) else if (fmt == TimeField::FMT_AMPM_WITHSECONDS)
ostr << ",format:" << fmtAmPms; ostr << ",format:" << fmtAmPms;
else if (fmt == TimeField::FMT_12H)
ostr << ",format:" << fmt12h << ",minValue:'00:00', maxValue:'11:59'";
else else
; // this is the default ; // this is the default
} }

View File

@ -60,6 +60,7 @@ public:
enum Format enum Format
{ {
FMT_AMPM = 0, FMT_AMPM = 0,
FMT_12H,
FMT_24H, FMT_24H,
FMT_AMPM_WITHSECONDS, FMT_AMPM_WITHSECONDS,
FMT_24H_WITHSECONDS FMT_24H_WITHSECONDS

View File

@ -90,14 +90,43 @@ void RequestHandler::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
Poco::Net::HTMLForm form(request, request.stream()); Poco::Net::HTMLForm form(request, request.stream());
if (!form.empty()) if (!form.empty())
{ {
handleForm(form); try
{
handleForm(form);
Poco::Net::NameValueCollection::ConstIterator it = form.find(Form::FORM_ID);
if (it != form.end())
{
_pApp->notifySubmitButton(Poco::NumberParser::parse(it->second));
}
response.send();
}
catch(WebWidgetsException& e)
{
Poco::Net::HTTPResponse::HTTPStatus code = Poco::Net::HTTPResponse::HTTP_BAD_REQUEST;
if (e.code() > code && e.code() <= Poco::Net::HTTPResponse::HTTP_EXPECTATION_FAILED)
code = (Poco::Net::HTTPResponse::HTTPStatus)e.code();
response.setStatusAndReason(code, e.displayText());
response.send();
}
catch(Poco::Exception& e)
{
response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_INTERNAL_SERVER_ERROR, e.displayText());
response.send();
}
catch(std::exception& e)
{
response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_INTERNAL_SERVER_ERROR, e.what());
response.send();
}
catch(...)
{
response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_INTERNAL_SERVER_ERROR, "Unknown exception");
response.send();
}
} }
Poco::Net::NameValueCollection::ConstIterator it = form.find(Form::FORM_ID); else
if (it != form.end()) handlePageRequest(request, response);
{
_pApp->notifySubmitButton(Poco::NumberParser::parse(it->second));
}
handlePageRequest(request, response);
} }
else else
{ {

View File

@ -70,6 +70,8 @@ void TimeFieldCell::setFormat(TimeField::Format fmt)
_format = "%h:%M:%S %A"; _format = "%h:%M:%S %A";
else if (_fmt == TimeField::FMT_24H_WITHSECONDS) else if (_fmt == TimeField::FMT_24H_WITHSECONDS)
_format = "%H:%M:%S"; _format = "%H:%M:%S";
else if (_fmt == TimeField::FMT_12H)
_format = "%H:%M";
setFormatter(new DateFormatter(_format)); setFormatter(new DateFormatter(_format));
} }
} }