void Controller::handle(const std::vector<std::string>& parameters, Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response) { _parameters = parameters; _request = &request; _response = &response; if ( _parameters.size() > 0 ) { _action = _parameters.front(); _parameters.erase(_parameters.begin()); } else { setResponseStatus(Poco::Net::HTTPResponse::HTTP_BAD_REQUEST, "Invalid URI parameters"); return; } for(std::vector<std::string>::iterator it = _parameters.begin(); it != _parameters.end(); ++it) { int pos = it->find_first_of(':'); if ( pos != std::string::npos ) { std::string name = it->substr(0, pos); std::string value = it->substr(pos+1); _namedParameters[name] = value; } } std::string contentType = request.getContentType(); if ( contentType == "application/json" ) { Poco::JSON::Parser parser; try { Poco::Dynamic::Var json = parser.parse(request.stream()); if ( ! json.isEmpty() && json.type() == typeid(Poco::JSON::Object::Ptr) ) { _data->set("filter", json.extract<Poco::JSON::Object::Ptr>()); } } catch(Poco::JSON::JSONException& jsone) { // Make sure everything is read, otherwise this can result // in Bad Request error in the next call. Poco::NullOutputStream nos; Poco::StreamCopier::copyStream(request.stream(), nos); setResponseStatus(Poco::Net::HTTPResponse::HTTP_BAD_REQUEST, "JSON error occurred: " + jsone.displayText()); return; } } else { _form.load(request, request.stream(), *this); } // Make sure everything is read, otherwise this can result // in Bad Request error in the next call. Poco::NullOutputStream nos; Poco::StreamCopier::copyStream(request.stream(), nos); beforeAction(); if ( response.getStatus() != Poco::Net::HTTPResponse::HTTP_OK || _data->has("error") ) { //TODO: return error template file or json error } const ActionMap& actions = getActions(); ActionMap::const_iterator it = actions.find(_action); if ( it == actions.end() ) { setResponseStatus(Poco::Net::HTTPResponse::HTTP_NOT_FOUND, "Invalid action '" + _action + "' specified."); return; } ActionFn action = it->second; (this->*action)(); afterAction(); }
void RedirectRequestHandler::handle(Poco::Net::HTTPServerRequest & request, Poco::Net::HTTPServerResponse & response){ response.set("Location", to); response.setStatusAndReason(Poco::Net::HTTPServerResponse::HTTP_SEE_OTHER); response.setContentLength(0); response.send(); }
void FileSystemRouteHandler::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response) { Poco::Path dataFolder(ofToDataPath("",true)); Poco::Path documentRoot(ofToDataPath(_parent.getSettings().getDocumentRoot(),true)); std::string dataFolderString = dataFolder.toString(); std::string documentRootString = documentRoot.toString(); // doc root validity check if(_parent.getSettings().getRequireDocumentRootInDataFolder() && (documentRootString.length() < dataFolderString.length() || documentRootString.substr(0,dataFolderString.length()) != dataFolderString)) { ofLogError("ServerDefaultRouteHandler::handleRequest") << "Document Root is not a sub directory of the data folder."; response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_INTERNAL_SERVER_ERROR); _parent.handleRequest(request,response); return; } // check path Poco::URI uri(request.getURI()); std::string path = uri.getPath(); // just get the path // make paths absolute if(path.empty()) { path = "/"; } Poco::Path requestPath = documentRoot.append(path).makeAbsolute(); // add the default index if no filename is requested if(requestPath.getFileName().empty()) { requestPath.append(_parent.getSettings().getDefaultIndex()).makeAbsolute(); } std::string requestPathString = requestPath.toString(); // double check path safety (not needed?) if((requestPathString.length() < documentRootString.length() || requestPathString.substr(0,documentRootString.length()) != documentRootString)) { ofLogError("ServerDefaultRouteHandler::handleRequest") << "Requested document not inside DocumentFolder."; response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_NOT_FOUND); _parent.handleRequest(request,response); return; } ofFile file(requestPathString); // use it to parse file name parts try { // ofx::Media::MediaTypeMap mediaMap; // Poco::Net::MediaType mediaType = mediaMap.getMediaTypeForSuffix(file.getExtension()); std::string mediaTypeString = "application/octet-stream"; std::string ext = file.getExtension(); if(ext == "json") { mediaTypeString = "application/json"; } else if(ext == "html") { mediaTypeString = "text/html"; } else if(ext == "jpg" || ext == "jpeg") { mediaTypeString = "image/jpeg"; } else if(ext == "png") { mediaTypeString = "image/png"; } else if(ext == "js") { mediaTypeString = "application/javascript"; } else if(ext == "css") { mediaTypeString = "text/css"; } else if(ext == "xml") { mediaTypeString = "application/xml"; } else if(ext == "ico") { mediaTypeString = "image/x-icon"; } response.sendFile(file.getAbsolutePath(), mediaTypeString); // will throw exceptions return; } catch (const Poco::FileNotFoundException& ex) { ofLogError("ServerDefaultRouteHandler::handleRequest") << ex.displayText(); response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_NOT_FOUND); _parent.handleRequest(request,response); } catch (const Poco::OpenFileException& ex) { ofLogError("ServerDefaultRouteHandler::handleRequest") << ex.displayText(); response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_INTERNAL_SERVER_ERROR); _parent.handleRequest(request,response); } catch (const exception& ex) { ofLogError("ServerDefaultRouteHandler::handleRequest") << "Unknown server error: " << ex.what(); response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_INTERNAL_SERVER_ERROR); _parent.handleRequest(request,response); } }
void ReplicasStatusHandler::handleRequest(Poco::Net::HTTPServerRequest & request, Poco::Net::HTTPServerResponse & response) { try { HTMLForm params(request); /// Даже в случае, когда отставание небольшое, выводить подробную информацию об отставании. bool verbose = params.get("verbose", "") == "1"; const MergeTreeSettings & settings = context.getMergeTreeSettings(); bool ok = true; std::stringstream message; auto databases = context.getDatabases(); /// Перебираем все реплицируемые таблицы. for (const auto & db : databases) { for (auto iterator = db.second->getIterator(); iterator->isValid(); iterator->next()) { auto & table = iterator->table(); StorageReplicatedMergeTree * table_replicated = typeid_cast<StorageReplicatedMergeTree *>(table.get()); if (!table_replicated) continue; time_t absolute_delay = 0; time_t relative_delay = 0; table_replicated->getReplicaDelays(absolute_delay, relative_delay); if ((settings.min_absolute_delay_to_close && absolute_delay >= static_cast<time_t>(settings.min_absolute_delay_to_close)) || (settings.min_relative_delay_to_close && relative_delay >= static_cast<time_t>(settings.min_relative_delay_to_close))) ok = false; message << backQuoteIfNeed(db.first) << "." << backQuoteIfNeed(iterator->name()) << ":\tAbsolute delay: " << absolute_delay << ". Relative delay: " << relative_delay << ".\n"; } } setResponseDefaultHeaders(response); if (ok && !verbose) { const char * data = "Ok.\n"; response.sendBuffer(data, strlen(data)); } else { response.send() << message.rdbuf(); } } catch (...) { tryLogCurrentException("ReplicasStatusHandler"); try { response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_INTERNAL_SERVER_ERROR); if (!response.sent()) { /// Ещё ничего не отправляли, и даже не знаем, нужно ли сжимать ответ. response.send() << getCurrentExceptionMessage(false) << std::endl; } } catch (...) { LOG_ERROR((&Logger::get("ReplicasStatusHandler")), "Cannot send exception to client"); } } }
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response) { //Poco::Util::Application& app = Poco::Util::Application::instance(); //app.logger().information("Request from " + request.clientAddress().toString()); std::cout << "Request from " << request.clientAddress().toString() << std::endl; MyPartHandler partHandler; Poco::Net::HTMLForm form(request, request.stream(), partHandler); std::string spinToken, sceneString, nodeString, args; std::istringstream pathstream(request.getURI()); pathstream.get(); // ignore leading slash getline(pathstream, spinToken, '/'); getline(pathstream, sceneString, '/'); getline(pathstream, nodeString, '?'); if (sceneString.empty()) sceneString = "default"; //if (nodeString.empty()) nodeString = "shp"; if (form.empty()) args = "createNode shp ShapeNode"; else args = form["args"]; response.setChunkedTransferEncoding(true); response.setContentType("text/html"); std::ostream& ostr = response.send(); ostr << "<html>\n" "<head>\n" "<title>SPIN Web Service</title>\n" "</head>\n" "<body>\n" "<h1>SPIN Web Service</h1>\n" "<h3>Enter a SPIN command in the form below:</h3>\n" "<table><tr><td nowrap=\"nowrap\">\n" "<form name=\"urlForm\" method=\"GET\" action=\"null\">\n" "/SPIN/" "<input type=\"text\" name=\"sceneID\" value=\"" << sceneString << "\" size=\"10\">\n" "/<input type=\"text\" name=\"nodeID\" value=\"" << nodeString << "\" size=\"10\">" "</form></td>\n" "<td nowrap=\"nowrap\">\n" "<form name=\"spinform\" method=\"GET\" action=\"null\">\n" "<input type=\"text\" name=\"args\" value=\"" << args << "\" size=\"20\">\n" "<input type=\"submit\" value=\"GO\" onclick=\"this.form.action='/SPIN/'+document.forms['urlForm']['sceneID'].value+'/'+document.forms['urlForm']['nodeID'].value\">\n" "</form>\n" "</tr></table>\n" "<p>(NOTE: you can send scene messages by leaving the node name blank)</p>\n" "\n"; /* ostr << "<html>\n" "<head>\n" "<title>SPIN Web Server Sample</title>\n" "</head>\n" "<body>\n" "<h1>SPIN Web Server Sample</h1>\n" "<h2>Tests:</h2>\n" "<form name=\"spinform\" method=\"GET\" action=\"null\">\n" "/SPIN/default/" "<input type=\"text\" name=\"nodeID\" value=\"shp\" size=\"15\">" " " "<input type=\"text\" name=\"method\" value=\"rotate\" size=\"15\">" " move<input type=\"text\" name=\"x\" value=\"0\" size=\"3\">" " <input type=\"text\" name=\"y\" value=\"0\" size=\"3\">" " <input type=\"text\" name=\"z\" value=\"10\" size=\"3\">\n" " <input type=\"submit\" value=\"GO\" onclick=\"this.form.action='/SPIN/default/'+this.form.nodeID.value\">\n" "</form>\n" "\n"; ostr << "<html>\n" "<head>\n" "<title>SPIN Web Server Sample</title>\n" "</head>\n" "<body>\n" "<h1>SPIN Web Server Sample</h1>\n" "<h2>GET Form</h2>\n" "<form method=\"GET\" action=\"/form\">\n" "<input type=\"text\" name=\"text\" size=\"31\">\n" "<input type=\"submit\" value=\"GET\">\n" "</form>\n" "<h2>POST Form</h2>\n" "<form method=\"POST\" action=\"/form\">\n" "<input type=\"text\" name=\"text\" size=\"31\">\n" "<input type=\"submit\" value=\"POST\">\n" "</form>\n" "<h2>File Upload</h2>\n" "<form method=\"POST\" action=\"/form\" enctype=\"multipart/form-data\">\n" "<input type=\"file\" name=\"file\" size=\"31\"> \n" "<input type=\"submit\" value=\"Upload\">\n" "</form>\n"; */ ostr << "<h2>Result</h2><p>\n"; ostr << "Method: " << request.getMethod() << "<br>\n"; ostr << "URI: " << request.getURI() << "<br>\n"; Poco::Net::NameValueCollection::ConstIterator it = request.begin(); Poco::Net::NameValueCollection::ConstIterator end = request.end(); for (; it != end; ++it) { ostr << it->first << ": " << it->second << "<br>\n"; } ostr << "</p>"; /* if (!form.empty()) { ostr << "<h2>Result</h2><p>\n"; it = form.begin(); end = form.end(); for (; it != end; ++it) { ostr << it->first << ": " << it->second << "<br>\n"; } ostr << "</p>"; } */ // --------parse introspect_invoke(request.getURI(), form); // --------------- if (!partHandler.name().empty()) { ostr << "<h2>Upload</h2><p>\n"; ostr << "Name: " << partHandler.name() << "<br>\n"; ostr << "File Name: " << partHandler.fileName() << "<br>\n"; ostr << "Type: " << partHandler.contentType() << "<br>\n"; ostr << "Size: " << partHandler.length() << "<br>\n"; ostr << "</p>"; } ostr << "</body>\n"; }
void ControllerRequestHandler::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response) { if (request.getURI() == "/favicon.ico") { return response.redirect("/images/favicon.ico", Poco::Net::HTTPResponse::HTTP_SEE_OTHER); } Poco::OSP::Web::WebSession::Ptr pSession = _pSessionManager->get(_sessionId, request, _sessionTimeout, context()); const std::string loginPage = "/macchina/login"; const std::string launcherPage = "/macchina/launcher"; std::string message; std::string nextPage; std::string username; Poco::Net::HTMLForm form(request, request.stream()); std::string action(form.get("action", "")); if (action == "login") { username = form.get("username", ""); std::string password = form.get("password", ""); if (_pAuthService->authenticate(username, password)) { if (_logger.information()) { _logger.information(format("User %s successfully logged in.", username)); } nextPage = launcherPage; pSession->set("username", username); } else { if (_logger.warning()) { _logger.warning(format("User %s failed authentication.", username)); } message = "The given username is not known, the password is wrong or the account has been disabled."; } } else if (action == "logout") { username = pSession->getValue<std::string>("username", ""); if (!username.empty()) { if (_logger.information()) { _logger.information(format("User %s logged out.", username)); } _pSessionManager->remove(pSession); } } else { username = pSession->getValue<std::string>("username", ""); if (!username.empty()) { nextPage = launcherPage; } } if (!message.empty()) { pSession->set("message", message); } else { pSession->erase("message"); } if (nextPage.empty()) { nextPage = loginPage; } response.setContentLength(0); response.redirect(nextPage, Poco::Net::HTTPResponse::HTTP_SEE_OTHER); response.set("Cache-Control", "no-cache"); }
void RESTHandler::error_parse(Poco::Net::HTTPServerResponse &response) { response.setStatusAndReason(Poco::Net::HTTPServerResponse::HTTP_BAD_REQUEST, "Parse failed"); response.send() << "Invalid JSON arguments" << std::flush; }
void AppRequestHandler::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response) { // Check for the favicon.ico request, we don't have one for now, // so set status code to HTTP_NOT_FOUND if ( request.getURI().compare("/favicon.ico") == 0 ) { response.setStatus(Poco::Net::HTTPResponse::HTTP_NOT_FOUND); response.send(); return; } std::string lastModifiedHeader = request.get("If-Modified-Since", ""); Poco::URI uri(request.getURI()); Poco::Util::Application& app = Poco::Util::Application::instance(); std::string staticPathname = app.config().getString("mq.web.app", ""); if ( staticPathname.empty() ) { Poco::Logger& logger = Poco::Logger::get("mq.web"); logger.error("mq.web.app property not defined. Check your configuration."); response.setStatus(Poco::Net::HTTPResponse::HTTP_INTERNAL_SERVER_ERROR); response.send(); return; } Poco::Path staticPath(staticPathname); staticPath.makeDirectory(); std::vector<std::string> uriPathSegments; uri.getPathSegments(uriPathSegments); std::vector<std::string>::iterator it = uriPathSegments.begin(); it++; for(; it != uriPathSegments.end(); ++it) { staticPath.append(*it); } if (staticPath.isDirectory()) { staticPath.append("index.html"); } Poco::File staticFile(staticPath); Poco::Logger& logger = Poco::Logger::get("mq.web.access"); if ( staticFile.exists() ) { if ( !lastModifiedHeader.empty() ) { Poco::DateTime lastModifiedDate; int timeZoneDifferential = 0; if ( Poco::DateTimeParser::tryParse(Poco::DateTimeFormat::HTTP_FORMAT, lastModifiedHeader, lastModifiedDate, timeZoneDifferential) ) { if ( staticFile.getLastModified() <= lastModifiedDate.timestamp() ) { logger.information(Poco::Logger::format("$0 : HTTP_NOT_MODIFIED", staticPath.toString())); response.setStatus(Poco::Net::HTTPResponse::HTTP_NOT_MODIFIED); response.send(); return; } } } logger.information(Poco::Logger::format("$0 : HTTP_OK", staticPath.toString())); std::string mimeType; if ( staticPath.getExtension().compare("gif") == 0 ) { mimeType = "image/gif"; } else if ( staticPath.getExtension().compare("css") == 0 ) { mimeType = "text/css"; } else if ( staticPath.getExtension().compare("html") == 0 || staticPath.getExtension().compare("htm") == 0) { mimeType = "text/html"; } else if ( staticPath.getExtension().compare("js") == 0 ) { mimeType = "text/javascript"; } else if ( staticPath.getExtension().compare("png") == 0 ) { mimeType = "image/png"; } else if ( staticPath.getExtension().compare("jpg") == 0 || staticPath.getExtension().compare("jpeg") == 0) { mimeType = "image/jpeg"; } try { response.sendFile(staticPath.toString(), mimeType); } catch(Poco::FileNotFoundException&) { // We can't get here normally ... but you never know :) response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_NOT_FOUND, Poco::Logger::format("Can't find file $0", staticPath.toString())); } catch(Poco::OpenFileException&) { response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_INTERNAL_SERVER_ERROR, Poco::Logger::format("Can't open file $0", staticPath.toString())); } return; } logger.error(Poco::Logger::format("$0 : HTTP_NOT_FOUND", staticFile.path())); response.setStatus(Poco::Net::HTTPResponse::HTTP_NOT_FOUND); response.send(); }
void RemoveByAttributesHandler::handleRequest(Poco::Net::HTTPServerRequest &req, Poco::Net::HTTPServerResponse &resp) { prepareApiResponse(resp); if (req.getMethod() != "POST") { resp.setStatus(Poco::Net::HTTPResponse::HTTP_BAD_REQUEST); resp.setReason("Bad Request"); Error error("Only POST requests are supported"); std::ostream & out = resp.send(); out << error; out.flush(); return; } auto job = std::make_shared<Job>(Job::Type::REMOVE_BY_ATTRIBUTES); try { // read the whole request body into memory std::stringstream bodystream; bodystream << req.stream().rdbuf(); // parse received json into the job object job->fromString( bodystream.str() ); } catch (std::exception &e) { resp.setStatus(Poco::Net::HTTPResponse::HTTP_BAD_REQUEST); resp.setReason("Bad Request"); Error error(e.what()); poco_warning(logger, e.what()); std::ostream & out = resp.send(); out << error; out.flush(); return; } // return 404 if layer does not exist try { auto layer = configuration->getLayer(job->getLayerName()); } catch (ConfigurationError) { // layer does not exist resp.setStatus(Poco::Net::HTTPResponse::HTTP_NOT_FOUND); resp.setReason("Not Found"); std::stringstream msgstream; msgstream << "Layer \"" << job->getLayerName() << "\" does not exist"; Error error(msgstream.str()); poco_warning(logger, error.getMessage()); std::ostream & out = resp.send(); out << error; out.flush(); return; } if (auto jobstorage = jobs.lock()) { poco_debug(logger, "pushing job to jobstorage"); jobstorage->push(job); } else { resp.setStatus(Poco::Net::HTTPResponse::HTTP_INTERNAL_SERVER_ERROR); resp.setReason("Internal Server Error"); const char * emsg = "Could not get a lock on jobstorage"; Error error(emsg); poco_error(logger, emsg); std::ostream & out = resp.send(); out << error; out.flush(); return; } resp.setStatus(Poco::Net::HTTPResponse::HTTP_OK); std::ostream & out = resp.send(); out << *job; out.flush(); };
void RegistrationHandler::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response) { response.setChunkedTransferEncoding(true); response.setContentType("text/html"); #line 6 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" SESSION std::ostream& responseStream = response.send(); responseStream << ""; responseStream << "\n"; responseStream << ""; responseStream << "\n"; responseStream << ""; responseStream << "\n"; responseStream << ""; responseStream << "\n"; responseStream << "\n"; responseStream << "\t"; responseStream << "\n"; responseStream << "\n"; responseStream << "\t"; #line 8 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" TILE_BEGIN("head") responseStream << ""; // begin include src/view/tile/head.html responseStream << "\n"; responseStream << "\t<meta charset=\"utf-8\">\n"; responseStream << "\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\" />\n"; responseStream << "\t<script type=\"text/javascript\">window.suggestmeyes_loaded = true;</script>\n"; responseStream << "\t<title>Main Page</title>\n"; responseStream << "\t<link rel=\"stylesheet\" type=\"text/css\" href=\"css/style.css\">\n"; responseStream << "\t<!--<meta http-equiv=\"refresh\" content=\"1\">-->\n"; responseStream << ""; // end include src/view/tile/head.html responseStream << ""; #line 8 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" TILE_END responseStream << "\n"; responseStream << "\t"; #line 9 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" TILE_BEGIN("topbar") responseStream << ""; // begin include src/view/tile/topbar.html responseStream << "\n"; responseStream << "\t"; #line 2 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" IF(user) responseStream << "\n"; responseStream << "\t\t<div id=\"session\">\n"; responseStream << "\t\t\t<span class=\"topbar\">\n"; responseStream << "\t\t\t\t<a class=\"topbar\" href=\"/User\"><span class=\"topbar\">\n"; responseStream << "\t\t\t\t\t"; #line 6 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" IF(user.group() == user.ADMIN) responseStream << "#"; #line 6 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" responseStream << (user.username()); responseStream << "#"; #line 6 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" ELSE responseStream << "["; #line 6 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" responseStream << (user.username()); responseStream << "]"; #line 6 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" ENDIF responseStream << "\n"; responseStream << "\t\t\t\t</span></a>\n"; responseStream << "\t\t\t\t<a class=\"topbar\" href=\"/*logout\">Sign out</a>\n"; responseStream << "\t\t\t</span>\n"; responseStream << "\t\t</div>\n"; responseStream << "\t"; #line 11 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" ELSE responseStream << "\n"; responseStream << "\t\t<script type=\"text/javascript\"> function submitSigninForm() { document.forms[\"signinForm\"].submit(); } </script>\n"; responseStream << "\t\t<form id=\"signinForm\" class=\"ignore\" method=\"POST\" action=\"*login\">"; #line 13 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" responseStream << (CSRF); responseStream << "\n"; responseStream << "\t\t\t<div id=\"session\">\n"; responseStream << "\t\t\t\t<span class=\"topbar\">\n"; responseStream << "\t\t\t\t\t<input class=\"topbar\" type=\"text\" "; #line 16 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" responseStream << (NAME(username)); responseStream << " placeholder=\"Username...\" style=\"width: 100px;\" onkeypress=\"if(event.keyCode==13) submitSigninForm();\">\n"; responseStream << "\t\t\t\t\t<input class=\"topbar\" type=\"password\" "; #line 17 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" responseStream << (NAME(password)); responseStream << " placeholder=\"Password...\" style=\"width: 100px;\" onkeypress=\"if(event.keyCode==13) submitSigninForm();\">\n"; responseStream << "\t\t\t\t\t<!--<a class=\"topbar\" href=\"/Login\">Sign In</a>-->\n"; responseStream << "\t\t\t\t\t<a class=\"topbar\" href=\"javascript:submitSigninForm()\">Log in</a>\n"; responseStream << "\t\t\t\t\t<a class=\"topbar\" href=\"/Registration\">Sign up</a>\n"; responseStream << "\t\t\t\t</span>\n"; responseStream << "\t\t\t</div>\n"; responseStream << "\t\t</form>\n"; responseStream << "\t"; #line 24 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" ENDIF responseStream << "\n"; responseStream << ""; // end include src/view/tile/topbar.html responseStream << ""; #line 9 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" TILE_END responseStream << "\n"; responseStream << "\t"; #line 10 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" TILE_BEGIN("header") responseStream << ""; // begin include src/view/tile/header.html responseStream << "\n"; responseStream << "\t<a id=\"logo\" href=\"/\">\n"; responseStream << "\t\t<img src=\"/images/logo.png\" alt=\"Stack Overflow\" />\n"; responseStream << "\t</a>\n"; responseStream << "\t<script type=\"text/javascript\"> function submitSearchForm() { document.forms[\"searchForm\"].submit(); } </script>\n"; responseStream << "\t<form id=\"searchForm\" class=\"ignore\" method=\"GET\" action=\"*search\">\n"; responseStream << "\t\t<div id=\"search\">\n"; responseStream << "\t\t\t<span class=\"toolbar\">\n"; responseStream << "\t\t\t\t<input class=\"search\" type=\"text\" "; #line 9 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/header.html" responseStream << (NAME(query)); responseStream << " placeholder=\"Search...\" style=\"width: 170px;\" onkeypress=\"if(event.keyCode==13) submitSearchForm();\">\n"; responseStream << "\t\t\t\t<a class=\"toolbar\" href=\"javascript:submitSearchForm()\">Find</a>\n"; responseStream << "\t\t\t</span>\n"; responseStream << "\t\t</div>\n"; responseStream << "\t</form>\t\n"; responseStream << ""; // end include src/view/tile/header.html responseStream << ""; #line 10 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" TILE_END responseStream << "\n"; responseStream << "\t"; #line 11 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" TILE_BEGIN("menu") responseStream << ""; // begin include src/view/tile/menu.html responseStream << "\n"; responseStream << "\t<ul id=\"menu\">\n"; responseStream << "\t\t"; #line 3 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/menu.html" FOREACH(entry, me.menu()) responseStream << "\n"; responseStream << "\t\t\t<li><a href=\""; #line 4 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/menu.html" responseStream << (entry.url); responseStream << "\" "; #line 4 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/menu.html" responseStream << (me.checkPath(entry.url) ? "class='active'" : ""); responseStream << "><span>"; #line 4 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/menu.html" responseStream << (entry.title); responseStream << "</span></a></li>\n"; responseStream << "\t\t"; #line 5 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/menu.html" ENDFOR responseStream << "\n"; responseStream << "\t</ul>\n"; responseStream << ""; // end include src/view/tile/menu.html responseStream << ""; #line 11 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" TILE_END responseStream << "\n"; responseStream << "\n"; responseStream << "\t"; #line 13 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" TILE_BEGIN("content") responseStream << "\n"; responseStream << "\t\t"; #line 14 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" IF(me["mode"] == "activated") responseStream << "\n"; responseStream << "\t\t\t<h1>Activation Successful!</h1>\n"; responseStream << "\t\t\tThe account for "; #line 16 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" responseStream << (me.newUser->username()); responseStream << " has been successfully activated!\n"; responseStream << "\t\t"; #line 17 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" ELIF(me["mode"] == "inactive" && me.newUser && me.newUser->group() == me.newUser->INACTIVE) responseStream << "\n"; responseStream << "\t\t\t<h1>Registration Successful!</h1>\n"; responseStream << "\t\t\tThank you for registering! A confirmation email has been sent to "; #line 19 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" responseStream << (me.newUser->email()); responseStream << ". Please click on the Activation Link to Activate your account.\n"; responseStream << "\t\t\t<a href=\"/*resendActivationEmail\">Resend confirmation email?</a>\n"; responseStream << "\t\t"; #line 21 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" ELIF(!user) responseStream << "\n"; responseStream << "\t\t\t<h1>Registration:</h1>\n"; responseStream << "\t\t\t"; #line 23 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" responseStream << (me.captcha.htmlUse()); responseStream << "\n"; responseStream << "\t\t\t<form method=\"POST\" action=\"*signin\" id=\"userForm\">"; #line 24 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" responseStream << (CSRF); responseStream << "\n"; responseStream << "\t\t\t\t<div class=\"userCol1\">Username:</div><div class=\"userCol2\"><input type=\"text\" "; #line 25 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" responseStream << (NAME(username)); responseStream << "></div>\n"; responseStream << "\t\t\t\t<div class=\"userCol1\">Email Address:</div><div class=\"userCol2\"><input type=\"text\" "; #line 26 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" responseStream << (NAME(email)); responseStream << "></div>\n"; responseStream << "\t\t\t\t<div class=\"userCol1\">Password:</div><div class=\"userCol2\"><input type=\"password\" "; #line 27 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" responseStream << (NAME(password)); responseStream << "></div>\n"; responseStream << "\t\t\t\t<div class=\"userCol1\">Confirm Password:</div><div class=\"userCol2\"><input type=\"password\" "; #line 28 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" responseStream << (NAME(password2)); responseStream << "></div>\n"; responseStream << "\t\t\t\t<div class=\"userCol1\">"; #line 29 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" responseStream << (me.captcha.htmlQuestion()); responseStream << "</div><div class=\"userCol2\">"; #line 29 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" responseStream << (me.captcha.htmlAnswer()); responseStream << "</div>\n"; responseStream << "\t\t\t\t<div class=\"userCol1\"></div><div class=\"userCol2\"><input type=\"submit\" value=\"Register\"></div>\n"; responseStream << "\t\t\t\t<div class=\"userStatus\"><span class=\"userError\">"; #line 31 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" responseStream << (me["status"]); responseStream << "</span></div>\n"; responseStream << "\t\t\t</form><!--Forgot your password?-->\n"; responseStream << "\t\t"; #line 33 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" ELSE responseStream << "\n"; responseStream << "\t\t\t<h1>You are already registered.</h1>\n"; responseStream << "\t\t"; #line 35 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" ENDIF responseStream << "\n"; responseStream << "\t"; #line 36 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" TILE_END responseStream << "\n"; responseStream << "\n"; responseStream << "\t"; #line 38 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" TILE_BEGIN("navigation") responseStream << ""; // begin include src/view/tile/navigation.html responseStream << "\n"; responseStream << "\t<div id=\"toolbar\">\n"; responseStream << "\t</div>\n"; responseStream << "\t<ul id=\"list\">\n"; responseStream << "\t\t"; #line 5 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/navigation.html" FOREACH(entry, me.sidebar()) responseStream << "\n"; responseStream << "\t\t\t<li><a href=\""; #line 6 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/navigation.html" responseStream << (entry.url); responseStream << "\" "; #line 6 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/navigation.html" responseStream << (me.checkPath(entry.url) ? "class='active'" : ""); responseStream << "><span>"; #line 6 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/navigation.html" responseStream << (entry.title); responseStream << "</span></a></li>\n"; responseStream << "\t\t"; #line 7 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/navigation.html" ENDFOR responseStream << "\n"; responseStream << "\t</ul>\n"; responseStream << ""; // end include src/view/tile/navigation.html responseStream << ""; #line 38 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" TILE_END responseStream << "\n"; responseStream << "\t"; #line 39 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" TILE_BEGIN("footer") responseStream << ""; // begin include src/view/tile/footer.html responseStream << "\t\n"; responseStream << "\t<span>Copyright © 2015 [There could be your company].</span>\n"; responseStream << ""; // end include src/view/tile/footer.html responseStream << ""; #line 39 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" TILE_END responseStream << "\n"; responseStream << "\n"; responseStream << "\t"; #line 41 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Registration.c" TEMPLATE("html/template.html") responseStream << "\n"; responseStream << ""; }
void Handler::prepareResponse(Poco::Net::HTTPServerResponse &resp) { resp.set("Server", APP_NAME_SERVER_FULL); }
void BlogHandler::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response) { response.setChunkedTransferEncoding(true); response.setContentType("text/html"); #line 6 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" SESSION std::ostream& responseStream = response.send(); responseStream << ""; responseStream << "\n"; responseStream << ""; responseStream << "\n"; responseStream << ""; responseStream << "\n"; responseStream << ""; responseStream << "\n"; responseStream << "\n"; responseStream << "\t"; responseStream << "\n"; responseStream << "\n"; responseStream << "\t"; #line 8 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" TILE_BEGIN("head") responseStream << "\n"; responseStream << "\t\t"; // begin include src/view/tile/head.html responseStream << "\n"; responseStream << "\t<meta charset=\"utf-8\">\n"; responseStream << "\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\" />\n"; responseStream << "\t<script type=\"text/javascript\">window.suggestmeyes_loaded = true;</script>\n"; responseStream << "\t<title>Main Page</title>\n"; responseStream << "\t<link rel=\"stylesheet\" type=\"text/css\" href=\"css/style.css\">\n"; responseStream << "\t<!--<meta http-equiv=\"refresh\" content=\"1\">-->\n"; responseStream << ""; // end include src/view/tile/head.html responseStream << "\n"; responseStream << "\t\t<link rel=\"stylesheet\" type=\"text/css\" href=\"markitup/skins/markitup/style.css\" />\n"; responseStream << "\t\t<link rel=\"stylesheet\" type=\"text/css\" href=\"markitup/sets/bbcode/style.css\" />\n"; responseStream << "\t\t<script type=\"text/javascript\" src=\"js/jquery-1.4.3.min.js\"></script>\n"; responseStream << "\t\t<script type=\"text/javascript\" src=\"markitup/jquery.markitup.js\"></script>\n"; responseStream << "\t\t<script type=\"text/javascript\" src=\"markitup/sets/bbcode/set.js\"></script>\n"; responseStream << "\t\t<script language=\"javascript\">\n"; responseStream << "\t\t$(document).ready(function()\t{\n"; responseStream << "\t\t\t$('#bbcode_blog').markItUp(myBbcodeSettings);\n"; responseStream << "\t\t\t$('#emoticons a').click(function() {\n"; responseStream << "\t\t\t\temoticon = $(this).attr(\"title\");\n"; responseStream << "\t\t\t\t$.markItUp( { replaceWith:emoticon } );\n"; responseStream << "\t\t\t});\n"; responseStream << "\t\t});\n"; responseStream << "\t\t</script>\n"; responseStream << "\t"; #line 24 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" TILE_END responseStream << "\n"; responseStream << "\n"; responseStream << "\t"; #line 26 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" TILE_BEGIN("topbar") responseStream << ""; // begin include src/view/tile/topbar.html responseStream << "\n"; responseStream << "\t"; #line 2 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" IF(user) responseStream << "\n"; responseStream << "\t\t<div id=\"session\">\n"; responseStream << "\t\t\t<span class=\"topbar\">\n"; responseStream << "\t\t\t\t<a class=\"topbar\" href=\"/User\"><span class=\"topbar\">\n"; responseStream << "\t\t\t\t\t"; #line 6 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" IF(user.group() == user.ADMIN) responseStream << "#"; #line 6 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" responseStream << (user.username()); responseStream << "#"; #line 6 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" ELSE responseStream << "["; #line 6 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" responseStream << (user.username()); responseStream << "]"; #line 6 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" ENDIF responseStream << "\n"; responseStream << "\t\t\t\t</span></a>\n"; responseStream << "\t\t\t\t<a class=\"topbar\" href=\"/*logout\">Sign out</a>\n"; responseStream << "\t\t\t</span>\n"; responseStream << "\t\t</div>\n"; responseStream << "\t"; #line 11 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" ELSE responseStream << "\n"; responseStream << "\t\t<script type=\"text/javascript\"> function submitSigninForm() { document.forms[\"signinForm\"].submit(); } </script>\n"; responseStream << "\t\t<form id=\"signinForm\" class=\"ignore\" method=\"POST\" action=\"*login\">"; #line 13 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" responseStream << (CSRF); responseStream << "\n"; responseStream << "\t\t\t<div id=\"session\">\n"; responseStream << "\t\t\t\t<span class=\"topbar\">\n"; responseStream << "\t\t\t\t\t<input class=\"topbar\" type=\"text\" "; #line 16 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" responseStream << (NAME(username)); responseStream << " placeholder=\"Username...\" style=\"width: 100px;\" onkeypress=\"if(event.keyCode==13) submitSigninForm();\">\n"; responseStream << "\t\t\t\t\t<input class=\"topbar\" type=\"password\" "; #line 17 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" responseStream << (NAME(password)); responseStream << " placeholder=\"Password...\" style=\"width: 100px;\" onkeypress=\"if(event.keyCode==13) submitSigninForm();\">\n"; responseStream << "\t\t\t\t\t<!--<a class=\"topbar\" href=\"/Login\">Sign In</a>-->\n"; responseStream << "\t\t\t\t\t<a class=\"topbar\" href=\"javascript:submitSigninForm()\">Log in</a>\n"; responseStream << "\t\t\t\t\t<a class=\"topbar\" href=\"/Registration\">Sign up</a>\n"; responseStream << "\t\t\t\t</span>\n"; responseStream << "\t\t\t</div>\n"; responseStream << "\t\t</form>\n"; responseStream << "\t"; #line 24 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/topbar.html" ENDIF responseStream << "\n"; responseStream << ""; // end include src/view/tile/topbar.html responseStream << ""; #line 26 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" TILE_END responseStream << "\n"; responseStream << "\t"; #line 27 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" TILE_BEGIN("header") responseStream << ""; // begin include src/view/tile/header.html responseStream << "\n"; responseStream << "\t<a id=\"logo\" href=\"/\">\n"; responseStream << "\t\t<img src=\"/images/logo.png\" alt=\"Stack Overflow\" />\n"; responseStream << "\t</a>\n"; responseStream << "\t<script type=\"text/javascript\"> function submitSearchForm() { document.forms[\"searchForm\"].submit(); } </script>\n"; responseStream << "\t<form id=\"searchForm\" class=\"ignore\" method=\"GET\" action=\"*search\">\n"; responseStream << "\t\t<div id=\"search\">\n"; responseStream << "\t\t\t<span class=\"toolbar\">\n"; responseStream << "\t\t\t\t<input class=\"search\" type=\"text\" "; #line 9 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/header.html" responseStream << (NAME(query)); responseStream << " placeholder=\"Search...\" style=\"width: 170px;\" onkeypress=\"if(event.keyCode==13) submitSearchForm();\">\n"; responseStream << "\t\t\t\t<a class=\"toolbar\" href=\"javascript:submitSearchForm()\">Find</a>\n"; responseStream << "\t\t\t</span>\n"; responseStream << "\t\t</div>\n"; responseStream << "\t</form>\t\n"; responseStream << ""; // end include src/view/tile/header.html responseStream << ""; #line 27 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" TILE_END responseStream << "\n"; responseStream << "\t"; #line 28 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" TILE_BEGIN("menu") responseStream << ""; // begin include src/view/tile/menu.html responseStream << "\n"; responseStream << "\t<ul id=\"menu\">\n"; responseStream << "\t\t"; #line 3 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/menu.html" FOREACH(entry, me.menu()) responseStream << "\n"; responseStream << "\t\t\t<li><a href=\""; #line 4 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/menu.html" responseStream << (entry.url); responseStream << "\" "; #line 4 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/menu.html" responseStream << (me.checkPath(entry.url) ? "class='active'" : ""); responseStream << "><span>"; #line 4 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/menu.html" responseStream << (entry.title); responseStream << "</span></a></li>\n"; responseStream << "\t\t"; #line 5 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/menu.html" ENDFOR responseStream << "\n"; responseStream << "\t</ul>\n"; responseStream << ""; // end include src/view/tile/menu.html responseStream << ""; #line 28 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" TILE_END responseStream << "\n"; responseStream << "\n"; responseStream << "\t"; #line 30 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" TILE_BEGIN("content") responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t<!-- Create categories chain -->\n"; responseStream << "\t\t<a class=\"categoryChain\" href=\""; #line 33 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (page.path()); responseStream << "?c=0\">root</a>\n"; responseStream << "\t\t"; #line 34 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" FOREACHI(cat, me.categoryChain) responseStream << "\n"; responseStream << "\t\t\t : <a class=\"categoryChain\" href=\""; #line 35 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (page.path()); responseStream << "?c="; #line 35 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (cat.id()); responseStream << "\">"; #line 35 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me.format(cat.title())); responseStream << "</a>\n"; responseStream << "\t\t"; #line 36 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDFOR responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t<!-- Sorting method selector -->\n"; responseStream << "\t\t"; #line 39 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" COPY_BEGIN("sortingMethodSelector") responseStream << "\n"; responseStream << "\t\t\t<div class=\"userCol1\">Sort by</div><div class=\"userCol2\">\n"; responseStream << "\t\t\t\t<select onchange=\"location = '*paginate?s='.concat(this.value);\">\n"; responseStream << "\t\t\t\t\t"; #line 42 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" OPTIONS(me.sortModes) responseStream << "\n"; responseStream << "\t\t\t\t</select>\n"; responseStream << "\t\t\t</div>\n"; responseStream << "\t\t"; #line 45 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" COPY_END responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t<!-- Paginator -->\n"; responseStream << "\t\t"; #line 48 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" COPY_BEGIN("paginator") responseStream << "\n"; responseStream << "\t\t\t<div class=\"userCol1\">\n"; responseStream << "\t\t\t\t<a class=\"paginatorChain\" href=\"*paginate?p="; #line 50 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me.paginator.first()); responseStream << "\">First</a>\n"; responseStream << "\t\t\t\t<a class=\"paginatorChain\" href=\"*paginate?p="; #line 51 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me.paginator.prev()); responseStream << "\">Prev</a>\n"; responseStream << "\t\t\t\t"; #line 52 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" FOREACH(ind, me.paginator.indices) responseStream << "\n"; responseStream << "\t\t\t\t\t<a class=\"paginatorChain"; #line 53 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (ind==me.paginator.page()?" paginatorCurrent":""); responseStream << "\" href=\"*paginate?p="; #line 53 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (ind); responseStream << "\">"; #line 53 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (ind); responseStream << "</a>\n"; responseStream << "\t\t\t\t"; #line 54 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDFOR responseStream << "\n"; responseStream << "\t\t\t\t<a class=\"paginatorChain\" href=\"*paginate?p="; #line 55 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me.paginator.next()); responseStream << "\">Next</a>\n"; responseStream << "\t\t\t\t<a class=\"paginatorChain\" href=\"*paginate?p="; #line 56 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me.paginator.last()); responseStream << "\">Last</a>\n"; responseStream << "\t\t\t</div>\n"; responseStream << "\t\t"; #line 58 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" COPY_END responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t<!-- Emoticons -->\n"; responseStream << "\t\t"; #line 61 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" COPY_BEGIN("emoticons") responseStream << "\n"; responseStream << "\t\t\t<div id=\"emoticons\">\n"; responseStream << "\t\t\t\t"; #line 63 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" FOREACH(emo, core::server().conf().emoticons()) responseStream << "\n"; responseStream << "\t\t\t\t\t<a href=\"#\" onclick=\"return false;\" title=\""; #line 64 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (emo.name); responseStream << "\"><img src=\""; #line 64 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (emo.src); responseStream << "\" /></a>\n"; responseStream << "\t\t\t\t"; #line 65 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDFOR responseStream << "\n"; responseStream << "\t\t\t</div>\n"; responseStream << "\t\t"; #line 67 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" COPY_END responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t<!-- Search Results mode -->\n"; responseStream << "\t\t"; #line 71 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" IF(me.mode() == me.MODE_SEARCH) responseStream << "\n"; responseStream << "\t\t\t"; #line 72 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" IF(me.searchResults->size()) responseStream << "\n"; responseStream << "\t\t\t\t<h1>Search Results:</h1>\n"; responseStream << "\n"; responseStream << "\t\t\t\t<!-- Add sorting method selector -->\n"; responseStream << "\t\t\t\t"; #line 76 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" PASTE("sortingMethodSelector") responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t\t\t<!-- Print list of Search Results -->\n"; responseStream << "\t\t\t\t"; #line 79 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" FOREACH(blog, me.searchResults) responseStream << "\n"; responseStream << "\t\t\t\t\t<div class=\"blogListRow\">\n"; responseStream << "\t\t\t\t\t\t<a class=\"postRowWhole\" href=\""; #line 81 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (page.path()); responseStream << "?b="; #line 81 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (blog.id()); responseStream << "\">"; #line 81 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (blog.title()); responseStream << "</a>\n"; responseStream << "\t\t\t\t\t</div>\n"; responseStream << "\t\t\t\t"; #line 83 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDFOR responseStream << "\n"; responseStream << "\t\t\t"; #line 84 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ELSE responseStream << "\n"; responseStream << "\t\t\t\t<h1>Nothing Found</h1>\n"; responseStream << "\t\t\t\tSorry, but nothing matched your search criteria.\n"; responseStream << "\t\t\t"; #line 87 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDIF responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t\t<!-- Show more results button -->\n"; responseStream << "\t\t\t"; #line 90 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" IF(me.paginator.hasMore()) responseStream << "\n"; responseStream << "\t\t\t\t<form method=\"POST\" action=\"*paginate\">"; #line 91 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (CSRF); responseStream << "\n"; responseStream << "\t\t\t\t\t<div class=\"userCol1\"><input type=\"submit\" value=\"Show More\"></div><div class=\"userCol2\"></div>\n"; responseStream << "\t\t\t\t</form>\n"; responseStream << "\t\t\t"; #line 94 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDIF responseStream << "\n"; responseStream << "\t\t"; #line 95 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDIF responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t<!-- Blog mode -->\n"; responseStream << "\t\t"; #line 99 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" IF(me.mode() == me.MODE_BLOG) responseStream << "\n"; responseStream << "\t\t\t<!-- Add blog node to category chain -->\n"; responseStream << "\t\t\t : "; #line 101 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me.format(me.blog.title())); responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t\t<!-- Pring blog title, date, username, rating and content -->\n"; responseStream << "\t\t\t<h1>"; #line 104 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me.format(me.blog.title())); responseStream << "</h1>\n"; responseStream << "\t\t\t<i><b>Posted: </b>"; #line 105 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (core::to_string(me.blog.date())); responseStream << " by "; #line 105 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me.blog.post().user().username()); responseStream << "</i>\n"; responseStream << "\t\t\t<br /><a class=\"postRowValue\" href=\"*ratePost?p="; #line 106 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me.blog.post().id()); responseStream << "\">"; #line 106 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me.blog.post().rated() ? "⤵" : "⤴"); responseStream << "+"; #line 106 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me.blog.post().rating()); responseStream << "</a>\n"; responseStream << "\t\t\t"; #line 107 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" IF(user.group() == user.ADMIN) responseStream << "\n"; responseStream << "\t\t\t\t<div>\n"; responseStream << "\t\t\t\t\t<a class=\"postRowOptionR\" href=\"*removeBlog?b="; #line 109 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me.blog.id()); responseStream << "\" onclick=\n"; responseStream << "\t\t\t\t\t\t\"return confirm('Are you sure you want to remove this blog?');\"><i>Remove</i></a>\n"; responseStream << "\t\t\t\t\t<a class=\"postRowOptionR\" href=\"#\" onclick=\"createEditBlogBlock(this.parentNode, "; #line 111 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me.blog.id()); responseStream << ", "; #line 111 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me.blog.post().id()); responseStream << "); return false;\"><i>Edit</i></a>\n"; responseStream << "\t\t\t\t</div>\n"; responseStream << "\t\t\t"; #line 113 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDIF responseStream << "\n"; responseStream << "\t\t\t<br />"; #line 114 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me.format(me.blog.post().content(), true)); responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t\t<!-- Add sorting method selector -->\n"; responseStream << "\t\t\t"; #line 117 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" PASTE("sortingMethodSelector") responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t\t<!-- Add Comment button -->\n"; responseStream << "\t\t\t<form method=\"POST\" action=\"#\">"; #line 120 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (CSRF); responseStream << "\n"; responseStream << "\t\t\t\t<div class=\"userCol1\"><input type=\"submit\" value=\"Add Comment\" onclick=\"createReplyBlock(null, 0, ''); deleteThis(this); return false;\"></div>\n"; responseStream << "\t\t\t\t<div class=\"userCol2\"></div>\n"; responseStream << "\t\t\t</form>\n"; responseStream << "\n"; responseStream << "\t\t\t<!-- Container for cloning Reply Section into -->\n"; responseStream << "\t\t\t<div id=\"replyBlockRoot\"></div>\n"; responseStream << "\n"; responseStream << "\t\t\t<!-- Print Comments tree -->\n"; responseStream << "\t\t\t"; #line 129 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" TREE_FOREACH(post, me.posts) responseStream << "\n"; responseStream << "\t\t\t\t<div class='"; #line 130 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (post.parentId() ? "postChildRow" : "postRow"); responseStream << "'>\n"; responseStream << "\t\t\t\t\t<i><b>Posted: </b>"; #line 131 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (core::to_string(post.date())); responseStream << " by "; #line 131 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (post.user().username()); responseStream << "</i>\n"; responseStream << "\t\t\t\t\t<br />"; #line 132 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me.format(post.content())); responseStream << "\n"; responseStream << "\t\t\t\t\t<br /><a class=\"postRowValue\" href=\"*ratePost?p="; #line 133 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (post.id()); responseStream << "\">"; #line 133 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (post.rated() ? "⤵" : "⤴"); responseStream << "+"; #line 133 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (post.rating()); responseStream << "</a>\n"; responseStream << "\t\t\t\t\t<a class=\"postRowValue\" href=\"#\" onclick=\"createReplyBlock(this.parentNode, "; #line 134 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (post.id()); responseStream << ", '"; #line 134 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (post.user().username()); responseStream << "'); return false;\"><i>Reply</i></a>\n"; responseStream << "\n"; responseStream << "\t\t\t\t\t"; #line 136 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" IF(user.id() == post.user().id() || user.group() == user.ADMIN) responseStream << "\n"; responseStream << "\t\t\t\t\t\t<div>\n"; responseStream << "\t\t\t\t\t\t\t<a class=\"postRowOptionR\" href=\"*removePost?p="; #line 138 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (post.id()); responseStream << "\" onclick=\n"; responseStream << "\t\t\t\t\t\t\t\t\"return confirm('Are you sure you want to remove this comment?');\"><i>Remove</i></a>\n"; responseStream << "\t\t\t\t\t\t\t<a class=\"postRowOptionR\" href=\"#\" onclick=\"createEditBlock(this.parentNode, "; #line 140 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (post.id()); responseStream << "); return false;\"><i>Edit</i></a>\n"; responseStream << "\t\t\t\t\t\t</div>\n"; responseStream << "\t\t\t\t\t"; #line 142 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDIF responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t\t\t\t"; #line 144 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" TREE_CHILDREN responseStream << "\n"; responseStream << "\t\t\t\t</div>\n"; responseStream << "\t\t\t"; #line 146 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" TREE_ENDFOR responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t\t<!-- Show more comments button -->\n"; responseStream << "\t\t\t"; #line 149 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" IF(me.paginator.hasMore()) responseStream << "\n"; responseStream << "\t\t\t\t<form method=\"POST\" action=\"*paginate\">"; #line 150 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (CSRF); responseStream << "\n"; responseStream << "\t\t\t\t\t<div class=\"userCol1\"><input type=\"submit\" value=\"Show More\"></div><div class=\"userCol2\"></div>\n"; responseStream << "\t\t\t\t</form>\n"; responseStream << "\t\t\t"; #line 153 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDIF responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t\t<!-- Reply Section template (Invisible, for clonning only) -->\n"; responseStream << "\t\t\t<div id=\"replyBlock\" style=\"display: none;\">\n"; responseStream << "\t\t\t\t<form method=\"POST\" action=\"*newPost\">"; #line 158 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (CSRF); responseStream << "\n"; responseStream << "\t\t\t\t\t<input type=\"hidden\" class=\"ParentPostIdPar\" "; #line 159 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (NAME(pp)); responseStream << ">\n"; responseStream << "\t\t\t\t\t"; #line 160 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" IF(!user) responseStream << "<div class=\"userCol1\">Email Address:</div><div class=\"userCol2\"><input type=\"text\" "; #line 160 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (NAME(email)); responseStream << "></div>"; #line 160 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDIF responseStream << "\n"; responseStream << "\t\t\t\t\t<div class=\"userStatus\"><textarea name=\"content\" class=\"ParentPostContent\">"; #line 161 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me["content"]); responseStream << "</textarea></div>\n"; responseStream << "\t\t\t\t\t<div class=\"userCol1\"><!-- Add Emoticons -->"; #line 162 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" PASTE("emoticons") responseStream << "</div>\n"; responseStream << "\t\t\t\t\t<div class=\"userCol2\"><input type=\"submit\" class=\"ParentPostCancel\" onclick=\"deleteHtmlBlock(this); return false;\" value=\"Cancel\">\n"; responseStream << "\t\t\t\t\t\t<input type=\"submit\" value=\"Add Comment\"></div>\n"; responseStream << "\t\t\t\t</form>\n"; responseStream << "\t\t\t\t<div class=\"userStatus\"><span class=\"userError\">"; #line 166 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me["status"]); responseStream << "</span></div>\n"; responseStream << "\t\t\t</div>\n"; responseStream << "\n"; responseStream << "\t\t\t<!-- Edit Comment Section template (Invisible, for clonning only) -->\n"; responseStream << "\t\t\t<div id=\"editBlock\" style=\"display: none;\">\n"; responseStream << "\t\t\t\t<form method=\"POST\" action=\"*editPost\">"; #line 171 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (CSRF); responseStream << "\n"; responseStream << "\t\t\t\t\t<input type=\"hidden\" class=\"ParentPostIdPar\" "; #line 172 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (NAME(p)); responseStream << ">\n"; responseStream << "\t\t\t\t\t<div class=\"userStatus\"><textarea name=\"content\" class=\"ParentPostContent\">"; #line 173 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me["content"]); responseStream << "</textarea></div>\n"; responseStream << "\t\t\t\t\t<div class=\"userCol1\"><!-- Add Emoticons -->"; #line 174 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" PASTE("emoticons") responseStream << "</div>\n"; responseStream << "\t\t\t\t\t<div class=\"userCol2\"><input type=\"submit\" class=\"ParentPostCancel\" onclick=\"deleteHtmlBlock(this); return false;\" value=\"Cancel\">\n"; responseStream << "\t\t\t\t\t\t<input type=\"submit\" value=\"Save\"></div>\n"; responseStream << "\t\t\t\t</form>\n"; responseStream << "\t\t\t\t<div class=\"userStatus\"><span class=\"userError\">"; #line 178 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me["status"]); responseStream << "</span></div>\n"; responseStream << "\t\t\t</div>\n"; responseStream << "\n"; responseStream << "\t\t\t<!-- Edit Blog Section template (Invisible, for clonning only) -->\n"; responseStream << "\t\t\t<div id=\"editBlogBlock\" style=\"display: none;\">\n"; responseStream << "\t\t\t\t<form method=\"POST\" action=\"*editBlog\">"; #line 183 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (CSRF); responseStream << "\n"; responseStream << "\t\t\t\t\t<input type=\"hidden\" class=\"ParentPostIdPar\" "; #line 184 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (NAME(b)); responseStream << ">\n"; responseStream << "\t\t\t\t\t<div class=\"userCol1\">Title:</div><div class=\"userCol2\"><input type=\"text\" class=\"EditBlogTitle\" "; #line 185 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (NAME(title)); responseStream << "></div>\n"; responseStream << "\t\t\t\t\t<div class=\"userStatus\"><textarea name=\"content\" class=\"ParentPostContent\">"; #line 186 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me["content"]); responseStream << "</textarea></div>\n"; responseStream << "\t\t\t\t\t<div class=\"userCol1\"><!-- Add Emoticons -->"; #line 187 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" PASTE("emoticons") responseStream << "</div>\n"; responseStream << "\t\t\t\t\t<div class=\"userCol2\"><input type=\"submit\" class=\"ParentPostCancel\" onclick=\"deleteHtmlBlock(this); return false;\" value=\"Cancel\">\n"; responseStream << "\t\t\t\t\t\t<input type=\"submit\" value=\"Save\"></div>\n"; responseStream << "\t\t\t\t</form>\n"; responseStream << "\t\t\t\t<div class=\"userStatus\"><span class=\"userError\">"; #line 191 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me["status"]); responseStream << "</span></div>\n"; responseStream << "\t\t\t</div>\n"; responseStream << "\t\t"; #line 193 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDIF responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t<!-- Blog/Category listing mode -->\n"; responseStream << "\t\t"; #line 197 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" IF(me.mode() == me.MODE_CATEGORY) responseStream << "\n"; responseStream << "\t\t\t<p>\n"; responseStream << "\t\t\t\t<!-- Add sorting method selector -->\n"; responseStream << "\t\t\t\t"; #line 200 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" PASTE("sortingMethodSelector") responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t\t\t<!-- Draw paginator -->\n"; responseStream << "\t\t\t\t"; #line 203 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" PASTE("paginator") responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t\t\t<!-- Print list of Categories -->\n"; responseStream << "\t\t\t\t"; #line 206 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" FOREACH(cat, me.categories) responseStream << "\n"; responseStream << "\t\t\t\t\t<div class=\"categoryListRow\">\n"; responseStream << "\t\t\t\t\t\t<a class=\"postRowWhole\" href=\""; #line 208 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (page.path()); responseStream << "?c="; #line 208 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (cat.id()); responseStream << "\">"; #line 208 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me.format(cat.title())); responseStream << "</a>\n"; responseStream << "\t\t\t\t\t\t"; #line 209 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" IF(user.group() == user.ADMIN) responseStream << "\n"; responseStream << "\t\t\t\t\t\t\t<a class=\"postRowOption\" href=\"*removeCategory?c="; #line 210 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (cat.id()); responseStream << "\" onclick=\n"; responseStream << "\t\t\t\t\t\t\t\t\"return confirm('Are you sure you want to remove this category?');\"><i>Remove</i></a>\n"; responseStream << "\t\t\t\t\t\t"; #line 212 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDIF responseStream << "\n"; responseStream << "\t\t\t\t\t</div>\n"; responseStream << "\t\t\t\t"; #line 214 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDFOR responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t\t\t<!-- Print list of Blogs -->\n"; responseStream << "\t\t\t\t"; #line 217 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" FOREACH(blog, me.blogs) responseStream << "\n"; responseStream << "\t\t\t\t\t<div class=\"blogListRow\">\n"; responseStream << "\t\t\t\t\t\t<a class=\"postRowWhole\" href=\""; #line 219 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (page.path()); responseStream << "?b="; #line 219 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (blog.id()); responseStream << "\">"; #line 219 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me.format(blog.title())); responseStream << "</a>\n"; responseStream << "\t\t\t\t\t\t"; #line 220 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" IF(user.group() == user.ADMIN) responseStream << "\n"; responseStream << "\t\t\t\t\t\t\t<a class=\"postRowOption\" href=\"*removeBlog?b="; #line 221 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (blog.id()); responseStream << "\" onclick=\n"; responseStream << "\t\t\t\t\t\t\t\t\"return confirm('Are you sure you want to remove this blog?');\"><i>Remove</i></a>\n"; responseStream << "\t\t\t\t\t\t"; #line 223 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDIF responseStream << "\n"; responseStream << "\t\t\t\t\t</div>\n"; responseStream << "\t\t\t\t"; #line 225 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDFOR responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t\t\t<!-- Draw paginator -->\n"; responseStream << "\t\t\t\t"; #line 228 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" PASTE("paginator") responseStream << "\n"; responseStream << "\t\t\t</p>\n"; responseStream << "\n"; responseStream << "\t\t\t<!-- New Blog and New Category Sections -->\n"; responseStream << "\t\t\t"; #line 232 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" IF(user && user.group() == user.ADMIN) responseStream << "\n"; responseStream << "\t\t\t\t"; #line 233 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" IF(!me.hasBlogs) responseStream << "\n"; responseStream << "\t\t\t\t\t<br /><br /><br />\n"; responseStream << "\t\t\t\t\t<form method=\"POST\" action=\"*newCategory\">"; #line 235 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (CSRF); responseStream << "\n"; responseStream << "\t\t\t\t\t\t<div class=\"userCol1\">Title:</div><div class=\"userCol2\"><input type=\"text\" "; #line 236 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (NAME(title)); responseStream << "></div>\n"; responseStream << "\t\t\t\t\t\t<div class=\"userCol1\"></div><div class=\"userCol2\"><input type=\"submit\" value=\"Create new category\"></div>\n"; responseStream << "\t\t\t\t\t</form>\n"; responseStream << "\t\t\t\t"; #line 239 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDIF responseStream << "\n"; responseStream << "\n"; responseStream << "\t\t\t\t"; #line 241 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" IF(!me.hasCategories) responseStream << "\n"; responseStream << "\t\t\t\t\t<br /><br /><br />\n"; responseStream << "\t\t\t\t\t<!--<textarea id=\"bbcode\" cols=\"80\" rows=\"20\"></textarea>-->\n"; responseStream << "\t\t\t\t\t<form method=\"POST\" action=\"*newBlog\">"; #line 244 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (CSRF); responseStream << "\n"; responseStream << "\t\t\t\t\t\t<div class=\"userCol1\">Title:</div><div class=\"userCol2\"><input type=\"text\" "; #line 245 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (NAME(title)); responseStream << "></div>\n"; responseStream << "\t\t\t\t\t\t<div class=\"userStatus\"><textarea id=\"bbcode_blog\" name=\"content\">"; #line 246 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me["content"]); responseStream << "</textarea></div>\n"; responseStream << "\t\t\t\t\t\t<div class=\"userCol1\"><!-- Add Emoticons -->"; #line 247 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" PASTE("emoticons") responseStream << "</div>\n"; responseStream << "\t\t\t\t\t\t<div class=\"userCol2\"><input type=\"submit\" value=\"Create new blog\"></div>\n"; responseStream << "\t\t\t\t\t</form>\n"; responseStream << "\t\t\t\t"; #line 250 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDIF responseStream << "\n"; responseStream << "\t\t\t\t<div class=\"userStatus\"><span class=\"userError\">"; #line 251 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" responseStream << (me["status"]); responseStream << "</span></div>\n"; responseStream << "\t\t\t"; #line 252 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDIF responseStream << "\n"; responseStream << "\t\t"; #line 253 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" ENDIF responseStream << "\n"; responseStream << "\n"; responseStream << "\t"; #line 255 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" TILE_END responseStream << "\n"; responseStream << "\n"; responseStream << "\t"; #line 257 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" TILE_BEGIN("navigation") responseStream << ""; // begin include src/view/tile/navigation.html responseStream << "\n"; responseStream << "\t<div id=\"toolbar\">\n"; responseStream << "\t</div>\n"; responseStream << "\t<ul id=\"list\">\n"; responseStream << "\t\t"; #line 5 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/navigation.html" FOREACH(entry, me.sidebar()) responseStream << "\n"; responseStream << "\t\t\t<li><a href=\""; #line 6 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/navigation.html" responseStream << (entry.url); responseStream << "\" "; #line 6 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/navigation.html" responseStream << (me.checkPath(entry.url) ? "class='active'" : ""); responseStream << "><span>"; #line 6 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/navigation.html" responseStream << (entry.title); responseStream << "</span></a></li>\n"; responseStream << "\t\t"; #line 7 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/tile/navigation.html" ENDFOR responseStream << "\n"; responseStream << "\t</ul>\n"; responseStream << ""; // end include src/view/tile/navigation.html responseStream << ""; #line 257 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" TILE_END responseStream << "\n"; responseStream << "\t"; #line 258 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" TILE_BEGIN("footer") responseStream << ""; // begin include src/view/tile/footer.html responseStream << "\t\n"; responseStream << "\t<span>Copyright © 2015 [There could be your company].</span>\n"; responseStream << ""; // end include src/view/tile/footer.html responseStream << ""; #line 258 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" TILE_END responseStream << "\n"; responseStream << "\n"; responseStream << "\t"; #line 260 "/media/DATA_1/_/Data/Core/Developing/WebServer/PocoBlog/src/view/Blog.c" TEMPLATE("html/template.html") responseStream << "\n"; responseStream << ""; }
void FileSystemRouteHandler::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response) { Poco::Path dataFolder(ofToDataPath("", true)); Poco::Path documentRoot(ofToDataPath(_parent.getSettings().getDocumentRoot(), true)); std::string dataFolderString = dataFolder.toString(); std::string documentRootString = documentRoot.toString(); // doc root validity check if(_parent.getSettings().getRequireDocumentRootInDataFolder() && (documentRootString.length() < dataFolderString.length() || documentRootString.substr(0,dataFolderString.length()) != dataFolderString)) { ofLogError("ServerDefaultRouteHandler::handleRequest") << "Document Root is not a sub directory of the data folder."; response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_INTERNAL_SERVER_ERROR); _parent.handleRequest(request,response); return; } // check path Poco::URI uri(request.getURI()); std::string path = uri.getPath(); // just get the path // make paths absolute if(path.empty()) { path = "/"; } Poco::Path requestPath = documentRoot.append(path).makeAbsolute(); // add the default index if no filename is requested if(requestPath.getFileName().empty()) { requestPath.append(_parent.getSettings().getDefaultIndex()).makeAbsolute(); } std::string requestPathString = requestPath.toString(); // double check path safety (not needed?) if((requestPathString.length() < documentRootString.length() || requestPathString.substr(0,documentRootString.length()) != documentRootString)) { ofLogError("ServerDefaultRouteHandler::handleRequest") << "Requested document not inside DocumentFolder."; response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_NOT_FOUND); _parent.handleRequest(request,response); return; } ofFile file(requestPathString); // use it to parse file name parts std::string mediaTypeString = Media::MediaTypeMap::getDefault()->getMediaTypeForPath(file.path()).toString(); try { // TODO: this is where we would begin to work honoring /// Accept-Encoding:gzip, deflate, sdch response.sendFile(file.getAbsolutePath(), mediaTypeString); return; } catch (const Poco::FileNotFoundException& ex) { ofLogError("ServerDefaultRouteHandler::handleRequest") << ex.displayText(); response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_NOT_FOUND); _parent.handleRequest(request,response); } catch (const Poco::OpenFileException& ex) { ofLogError("ServerDefaultRouteHandler::handleRequest") << ex.displayText(); response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_INTERNAL_SERVER_ERROR); _parent.handleRequest(request,response); } catch (const exception& ex) { ofLogError("ServerDefaultRouteHandler::handleRequest") << "Unknown server error: " << ex.what(); response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_INTERNAL_SERVER_ERROR); _parent.handleRequest(request,response); } }
void ODBCHandler::handleRequest(Poco::Net::HTTPServerRequest & request, Poco::Net::HTTPServerResponse & response) { Poco::Net::HTMLForm params(request, request.stream()); LOG_TRACE(log, "Request URI: " + request.getURI()); auto process_error = [&response, this](const std::string & message) { response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_INTERNAL_SERVER_ERROR); if (!response.sent()) response.send() << message << std::endl; LOG_WARNING(log, message); }; if (!params.has("query")) { process_error("No 'query' in request body"); return; } if (!params.has("columns")) { process_error("No 'columns' in request URL"); return; } if (!params.has("connection_string")) { process_error("No 'connection_string' in request URL"); return; } UInt64 max_block_size = DEFAULT_BLOCK_SIZE; if (params.has("max_block_size")) { std::string max_block_size_str = params.get("max_block_size", ""); if (max_block_size_str.empty()) { process_error("Empty max_block_size specified"); return; } max_block_size = parse<size_t>(max_block_size_str); } std::string columns = params.get("columns"); std::unique_ptr<Block> sample_block; try { sample_block = parseColumns(std::move(columns)); } catch (const Exception & ex) { process_error("Invalid 'columns' parameter in request body '" + ex.message() + "'"); LOG_WARNING(log, ex.getStackTrace().toString()); return; } std::string format = params.get("format", "RowBinary"); std::string query = params.get("query"); LOG_TRACE(log, "Query: " << query); std::string connection_string = params.get("connection_string"); LOG_TRACE(log, "Connection string: '" << connection_string << "'"); WriteBufferFromHTTPServerResponse out(request, response, keep_alive_timeout); try { BlockOutputStreamPtr writer = FormatFactory::instance().getOutput(format, out, *sample_block, *context); auto pool = getPool(connection_string); ODBCBlockInputStream inp(pool->get(), query, *sample_block, max_block_size); copyData(inp, *writer); } catch (...) { auto message = getCurrentExceptionMessage(true); response.setStatusAndReason( Poco::Net::HTTPResponse::HTTP_INTERNAL_SERVER_ERROR); // can't call process_error, bacause of too soon response sending writeStringBinary(message, out); tryLogCurrentException(log); } }
void RESTHandler::error_timeout(Poco::Net::HTTPServerResponse &response) { response.setStatusAndReason(Poco::Net::HTTPServerResponse::HTTP_REQUEST_TIMEOUT, "External system timeout"); response.send() << "External system request timeout" << std::flush; }
void ShowFilePage::handleRequest(Poco::Net::HTTPServerRequest &request, Poco::Net::HTTPServerResponse &response) { m_log->trace("ShowFilePage::handleRequest from "+request.clientAddress().toString()); m_log->trace("ShowFilePage::handleRequest ContentType="+request.getContentType()); m_log->trace("ShowFilePage::handleRequest TransferEncoding="+request.getTransferEncoding()); m_log->trace("ShowFilePage::handleRequest URI="+request.getURI()); std::map<std::string,QueryVar> queryvars; CreateQueryVarMap(request,queryvars); std::string content=""; if(queryvars.find("file")!=queryvars.end() && m_filewhitelist.find((*queryvars.find("file")).second.GetData())!=m_filewhitelist.end()) { try { response.sendFile(global::basepath+(*queryvars.find("file")).second.GetData(),m_filewhitelist[(*queryvars.find("file")).second.GetData()]); } catch(Poco::FileNotFoundException &fnf) { m_log->error("ShowFilePage::handleRequest caught FileNotFound exception - "+fnf.message()); } catch(Poco::OpenFileException &of) { m_log->error("ShowFilePage::handleRequest caught OpenFile exception - "+of.message()); } catch(...) { m_log->error("ShowFilePage::handleRequest caught other exception"); } } else if(request.getURI().size()>0 && request.getURI()[0]=='/' && m_filewhitelist.find(request.getURI().substr(1))!=m_filewhitelist.end()) { try { response.sendFile(global::basepath+request.getURI().substr(1),m_filewhitelist[request.getURI().substr(1)]); } catch(Poco::FileNotFoundException &fnf) { m_log->error("ShowFilePage::handleRequest caught FileNotFound exception - "+fnf.message()); } catch(Poco::OpenFileException &of) { m_log->error("ShowFilePage::handleRequest caught OpenFile exception - "+of.message()); } catch(...) { m_log->error("ShowFilePage::handleRequest caught other exception"); } } else if(request.getURI().size()>0 && m_filewhitelist.find(request.getURI())!=m_filewhitelist.end()) { try { response.sendFile(global::basepath+request.getURI(),m_filewhitelist[request.getURI()]); } catch(Poco::FileNotFoundException &fnf) { m_log->error("ShowFilePage::handleRequest caught FileNotFound exception - "+fnf.message()); } catch(Poco::OpenFileException &of) { m_log->error("ShowFilePage::handleRequest caught OpenFile exception - "+of.message()); } catch(...) { m_log->error("ShowFilePage::handleRequest caught other exception"); } } }
void RESTHandler::error_black_list(Poco::Net::HTTPServerResponse &response) { response.setStatusAndReason(Poco::Net::HTTPServerResponse::HTTP_NOT_FOUND, "Resource in blacklist"); response.send() << "Requested resource is in black-list" << std::flush; }
void chat::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response) { std::string nick; MyPartHandler partHandler; HTMLForm form(request, request.stream(), partHandler); response.setChunkedTransferEncoding(true); response.setContentType("text/html"); if (!form.empty()) { NameValueCollection::ConstIterator it; NameValueCollection::ConstIterator end; it = form.begin(); end = form.end(); for (; it != end; ++it) { if (it->first == "user") nick = it->second; } } std::ostream& responseStream = response.send(); responseStream << "<!DOCTYPE html>\n"; responseStream << "<html>\n"; responseStream << "\t<head>\n"; responseStream << "\t\t<link rel = \"stylesheet\" type = \"text/css\" href = \"styles.css\">\n"; responseStream << "\t\t<title>Chat</title>\n"; responseStream << "\t\t<script type = \"text/JavaScript\" src = \"jquery.js\"></script>\n"; responseStream << "\t\t<script type = \"text/JavaScript\" src = \"jqueryui.js\"></script>\n"; responseStream << "\t\t<script type = \"text/JavaScript\" src = \"script.js\"></script>\n"; responseStream << "<script>\n"; responseStream << "\tvar nick=\"" << nick << "\";\n"; responseStream << "</script>\n"; responseStream << "\t\t<link rel = \"stylesheet\" type = \"text/css\" href = \"jqueryuiss.css\">\n"; responseStream << "\t</head>\n"; responseStream << "\t<body>\n"; responseStream << "\t\t<audio id=\"myAudio\">\n"; responseStream << "\t\t\t<source src=\"newmessage.mp3\" type=\"audio/mpeg\">\n"; responseStream << "\t\t\t<source src=\"newmessage.ogg\" type=\"audio/ogg\">\n"; responseStream << "\t\t\tYour browser does not suport the audio tag\n"; responseStream << "</audio>\n"; responseStream << "\t\t<div id = \"FtHeader\">\n"; responseStream << "\t\t\t<h1 align = \"center\"><img src = \"logo.jpg\" alt = \"some_text\"></h1>\n"; responseStream << "\t\t</div>\n"; responseStream << "\t\t<div id = \"chatTable2\">\n"; responseStream << "\t\t\t<table align = \"center\">\n"; responseStream << "\t\t\t\t<tr>\n"; responseStream << "\t\t\t\t<td>\n"; responseStream << "\t\t\t\t<div id=\"tabs\">\n"; responseStream << "\t\t\t\t\t<ul>\n"; responseStream << "\t\t\t\t\t\t<li><a href=\"#chatWindow\">Public</a></li>\n"; responseStream << "\t\t\t\t\t\t<li><a href=\"#privateChatWindow\">Private</a></li>\n"; responseStream << "\t\t\t\t\t</ul>\n"; responseStream << "\t\t\t\t\t<div id = \"chatWindow\"></div>\n"; responseStream << "\t\t\t\t\t<div id = \"privateChatWindow\"></div>\n"; responseStream << "\t\t\t\t</div>\n"; responseStream << "\t\t\t\t</td>\n"; responseStream << "\t\t\t\t<td>\n"; responseStream << "\t\t\t\t\t<div id = \"OnlineBox\">\n"; responseStream << "\t\t\t\t\t</div>\n"; responseStream << "\t\t\t\t</td>\n"; responseStream << "\t\t\t\t</tr>\n"; responseStream << "\t\t\t\t<tr>\n"; responseStream << "\t\t\t\t<td>\n"; responseStream << "\t\t\t\t\t<textarea maxlength = \"320\" id = \"TxTBox\" type = \"text\" style = \"resize:none\" name = \"TxTBox\" onkeypress = \"if(event.keyCode == 13){event.preventDefault(); sendMsgToServer();}\"></textarea>\n"; responseStream << "\t\t\t\t</td>\n"; responseStream << "\t\t\t\t<td>\n"; responseStream << "\t\t\t\t\t<Button id = \"SendButton\" onclick = \" sendMsgToServer();\" onkeypress = \"if (event.keyCode == 13) {event.preventDefault(); sendMsgToServer(); }\">Send!</Button><br>\n"; responseStream << "\t\t\t\t\t<form method=\"POST\" action=\"/\">\n"; responseStream << "\t\t\t\t\t\t<input type=\"submit\" value=\"Logout\" id=\"LogoutButton\" onclick=\"loggingOut();\">\n"; responseStream << "\t\t\t\t\t</form>\n"; responseStream << "\t\t\t\t</td>\n"; responseStream << "\t\t\t\t</tr>\n"; responseStream << "\t\t\t</table>\n"; responseStream << "\t\t</div>\n"; responseStream << "\t</body>\n"; responseStream << "</html>"; }
void ofxRemoteUIWebServer::RUIRequestHandler::handleRequest(Poco::Net::HTTPServerRequest &req, Poco::Net::HTTPServerResponse &resp) { resp.set("Content-Encoding", "gzip"); resp.sendBuffer(RUI_WEB_BINARY_CONTENT, RUI_WEB_BINARY_SIZE); }