17#ifndef YHttpWidgetsActionHandler_h
18#define YHttpWidgetsActionHandler_h
22#include <microhttpd.h>
24#include <boost/algorithm/string.hpp>
26#define TreePathDelimiter "|"
28#include <yui/YCheckBoxFrame.h>
29#include <yui/YComboBox.h>
30#include <yui/YDateField.h>
31#include <yui/YInputField.h>
33#include <yui/YMultiSelectionBox.h>
34#include <yui/YMenuItem.h>
35#include <yui/YRadioButton.h>
36#include <yui/YSelectionBox.h>
37#include <yui/YTimeField.h>
38#include <yui/YWidget.h>
40#include "YDumbTabActionHandler.h"
41#include "YMenuWidgetActionHandler.h"
42#include "YTableActionHandler.h"
43#include "YMultiSelectionBoxActionHandler.h"
44#include "YWidgetActionHandler.h"
45#include "YWidgetFinder.h"
47#include "YHttpHandler.h"
50#ifdef MHD_HTTP_UNPROCESSABLE_CONTENT
51# define YHTTP_UNPROCESSABLE MHD_HTTP_UNPROCESSABLE_CONTENT
54# define YHTTP_UNPROCESSABLE MHD_HTTP_UNPROCESSABLE_ENTITY
68 virtual void process_request(
struct MHD_Connection* connection,
69 const char* url,
const char* method,
const char* upload_data,
70 size_t* upload_data_size, std::ostream& body,
int& error_code,
71 std::string& content_type,
bool *redraw);
73 int do_action( YWidget *widget,
const std::string &action,
struct MHD_Connection *connection, std::ostream& body );
96 int action_handler( YWidget *widget, std::ostream& body, std::function<
void (T*)> handler_func,
const bool allow_disabled =
false ) {
97 if (
auto w =
dynamic_cast<T*
>(widget)) {
102 if( !widget->isEnabled() && !allow_disabled )
104 std::string error (
"Cannot operate on disabled widget: ");
105 error.append(
typeid(*widget).name() );
106 return handle_error( body, error, YHTTP_UNPROCESSABLE );
112 catch (
const YUIException &e)
114 std::string error (
"");
115 error.append(
typeid(*widget).name() ).append(
" " ).append( e.what() );
116 return handle_error( body, error, YHTTP_UNPROCESSABLE );
120 return MHD_HTTP_NOT_FOUND;
Definition YDumbTabActionHandler.h:26
Definition YHttpHandler.h:40
Definition YMultiSelectionBoxActionHandler.h:28
Definition YTableActionHandler.h:31