mirror of
https://github.com/Relintai/mourne_rcpp_fw.git
synced 2025-02-15 05:30:06 +01:00
Updated the engine and fixed compile. It still needs changes to work again though.
This commit is contained in:
parent
d2ed14fcab
commit
dbced4e371
2
HEADS
2
HEADS
@ -1 +1 @@
|
||||
{"engine": {"master": "f9dcd088d0af77ac83ff3fb629131d254d2d2f9f"}}
|
||||
{"engine": {"master": "0c6c20bd64ebe3a9fe798af793f3181aeb3fd0e5"}}
|
@ -68,11 +68,11 @@ void AssignmentController::admin_render_assignment_list(Request *request) {
|
||||
|
||||
HTMLBuilder b;
|
||||
|
||||
b.div("back")->f()->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
|
||||
b.div("back")->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
|
||||
b.br();
|
||||
b.fdiv("Assignment Editor", "top_menu");
|
||||
b.br();
|
||||
b.div("top_menu")->f()->fa(request->get_url_root("new"), "Create New")->cdiv();
|
||||
b.div("top_menu")->fa(request->get_url_root("new"), "Create New")->cdiv();
|
||||
b.br();
|
||||
|
||||
b.div("list_container");
|
||||
@ -93,7 +93,7 @@ void AssignmentController::admin_render_assignment_list(Request *request) {
|
||||
b.fdiv(String::num(assignment->id), "attr_box");
|
||||
b.fdiv(assignment->description, "name");
|
||||
|
||||
b.div("actionbox")->f()->fa(request->get_url_root("edit/" + String::num(assignment->id)), "Edit")->cdiv();
|
||||
b.div("actionbox")->fa(request->get_url_root("edit/" + String::num(assignment->id)), "Edit")->cdiv();
|
||||
}
|
||||
b.cdiv();
|
||||
}
|
||||
@ -114,7 +114,7 @@ void AssignmentController::admin_render_assignment(Request *request, Ref<Assignm
|
||||
|
||||
HTMLBuilder b;
|
||||
|
||||
b.div("back")->f()->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
|
||||
b.div("back")->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
|
||||
b.br();
|
||||
b.fdiv("Assignment Editor", "top_menu");
|
||||
b.br();
|
||||
@ -159,7 +159,7 @@ void AssignmentController::admin_render_assignment(Request *request, Ref<Assignm
|
||||
|
||||
ADMIN_EDIT_INPUT_TEXTAREA("Description:", "description", show_post, assignment->description, request->get_parameter("description"));
|
||||
|
||||
b.div("edit_submit")->f()->input_submit("Save", "submit")->f()->cdiv();
|
||||
b.div("edit_submit")->input_submit("Save", "submit")->cdiv();
|
||||
|
||||
b.cform();
|
||||
|
||||
@ -178,7 +178,7 @@ AssignmentController *AssignmentController::get_singleton() {
|
||||
}
|
||||
|
||||
AssignmentController::AssignmentController() :
|
||||
AdminController() {
|
||||
AdminNode() {
|
||||
|
||||
if (_self) {
|
||||
printf("AssignmentController::AssignmentController(): Error! self is not null!/n");
|
||||
|
@ -4,15 +4,15 @@
|
||||
#include "core/string.h"
|
||||
#include "core/containers/vector.h"
|
||||
|
||||
#include "modules/admin_panel/admin_controller.h"
|
||||
#include "modules/admin_panel/admin_node.h"
|
||||
|
||||
#include "assignment.h"
|
||||
|
||||
class Request;
|
||||
class FormValidator;
|
||||
|
||||
class AssignmentController : public AdminController {
|
||||
RCPP_OBJECT(AssignmentController, AdminController);
|
||||
class AssignmentController : public AdminNode {
|
||||
RCPP_OBJECT(AssignmentController, AdminNode);
|
||||
|
||||
public:
|
||||
void handle_request_default(Request *request);
|
||||
|
@ -68,11 +68,11 @@ void BuildingController::admin_render_building_list(Request *request) {
|
||||
|
||||
HTMLBuilder b;
|
||||
|
||||
b.div("back")->f()->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
|
||||
b.div("back")->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
|
||||
b.br();
|
||||
b.fdiv("Building Editor", "top_menu");
|
||||
b.br();
|
||||
b.div("top_menu")->f()->fa(request->get_url_root("new"), "Create New")->cdiv();
|
||||
b.div("top_menu")->fa(request->get_url_root("new"), "Create New")->cdiv();
|
||||
b.br();
|
||||
|
||||
b.div("list_container");
|
||||
@ -95,7 +95,7 @@ void BuildingController::admin_render_building_list(Request *request) {
|
||||
b.fdiv(String::num(building->next_rank), "attr_box");
|
||||
b.fdiv(building->name, "name");
|
||||
|
||||
b.div("actionbox")->f()->fa(request->get_url_root("edit/" + String::num(building->id)), "Edit")->cdiv();
|
||||
b.div("actionbox")->fa(request->get_url_root("edit/" + String::num(building->id)), "Edit")->cdiv();
|
||||
}
|
||||
b.cdiv();
|
||||
}
|
||||
@ -116,7 +116,7 @@ void BuildingController::admin_render_building(Request *request, Ref<Building> b
|
||||
|
||||
HTMLBuilder b;
|
||||
|
||||
b.div("back")->f()->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
|
||||
b.div("back")->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
|
||||
b.br();
|
||||
b.fdiv("Building Editor", "top_menu");
|
||||
b.br();
|
||||
@ -132,7 +132,7 @@ void BuildingController::admin_render_building(Request *request, Ref<Building> b
|
||||
b.fdiv("Icon:", "edit_name");
|
||||
//todo I'm not sure yet how this worked originally
|
||||
//b.div("edit_input")->f()->input_image("icon", building->icon)->f()->cdiv();
|
||||
b.div("edit_input")->f()->w("TODO")->cdiv();
|
||||
b.div("edit_input")->w("TODO")->cdiv();
|
||||
b.cdiv();
|
||||
|
||||
ADMIN_EDIT_INPUT_TEXT("Rank:", "rank", show_post, String::num(building->rank), request->get_parameter("rank"));
|
||||
@ -189,7 +189,7 @@ void BuildingController::admin_render_building(Request *request, Ref<Building> b
|
||||
|
||||
b.div("row_edit");
|
||||
b.fdiv("Ability:", "edit_name");
|
||||
b.div("edit_input")->f()->w("TODO")->cdiv();
|
||||
b.div("edit_input")->w("TODO")->cdiv();
|
||||
b.cdiv();
|
||||
|
||||
ADMIN_EDIT_LINE_SPACER();
|
||||
@ -219,7 +219,7 @@ void BuildingController::admin_render_building(Request *request, Ref<Building> b
|
||||
|
||||
b.div("row_edit");
|
||||
b.fdiv("Creates:", "edit_name");
|
||||
b.div("edit_input")->f()->w("TODO")->cdiv();
|
||||
b.div("edit_input")->w("TODO")->cdiv();
|
||||
b.cdiv();
|
||||
|
||||
ADMIN_EDIT_LINE_SPACER();
|
||||
@ -267,7 +267,7 @@ void BuildingController::admin_render_building(Request *request, Ref<Building> b
|
||||
//TODO <?=form_dropdown($name_tech_secondary_group, $opttechgroup, $seltechsecgroup, $attr_tech_secondary_group); ?>
|
||||
ADMIN_EDIT_INPUT_TEXT("Secondary Technology Group:", "tech_secondary_group", show_post, String::num(building->tech_secondary_group), request->get_parameter("tech_secondary_group"));
|
||||
|
||||
b.div("edit_submit")->f()->input_submit("Save", "submit")->f()->cdiv();
|
||||
b.div("edit_submit")->input_submit("Save", "submit")->cdiv();
|
||||
|
||||
b.cform();
|
||||
|
||||
@ -286,7 +286,7 @@ BuildingController *BuildingController::get_singleton() {
|
||||
}
|
||||
|
||||
BuildingController::BuildingController() :
|
||||
AdminController() {
|
||||
AdminNode() {
|
||||
|
||||
if (_self) {
|
||||
printf("BuildingController::BuildingController(): Error! self is not null!/n");
|
||||
|
@ -4,15 +4,15 @@
|
||||
#include "core/string.h"
|
||||
#include "core/containers/vector.h"
|
||||
|
||||
#include "modules/admin_panel/admin_controller.h"
|
||||
#include "modules/admin_panel/admin_node.h"
|
||||
|
||||
#include "building.h"
|
||||
|
||||
class Request;
|
||||
class FormValidator;
|
||||
|
||||
class BuildingController : public AdminController {
|
||||
RCPP_OBJECT(BuildingController, AdminController);
|
||||
class BuildingController : public AdminNode {
|
||||
RCPP_OBJECT(BuildingController, AdminNode);
|
||||
|
||||
public:
|
||||
void handle_request_default(Request *request);
|
||||
|
@ -4,13 +4,13 @@
|
||||
#define ADMIN_EDIT_INPUT_TEXT(p_edit_name, p_var_name, p_show_post, p_var, p_request_var) \
|
||||
b.div("row_edit"); \
|
||||
b.fdiv(p_edit_name, "edit_name"); \
|
||||
b.div("edit_input")->f()->input_text(p_var_name, p_show_post ? p_request_var : p_var, "", "input")->f()->cdiv(); \
|
||||
b.div("edit_input")->input_text(p_var_name, p_show_post ? p_request_var : p_var, "", "input")->cdiv(); \
|
||||
b.cdiv();
|
||||
|
||||
#define ADMIN_EDIT_INPUT_TEXTAREA(p_edit_name, p_var_name, p_show_post, p_var, p_request_var) \
|
||||
b.div("row_edit_textbox"); \
|
||||
b.fdiv(p_edit_name, "edit_name"); \
|
||||
b.div("edit_input")->f()->ftextarea(p_var_name, p_show_post ? p_request_var : p_var, "textarea")->cdiv(); \
|
||||
b.div("edit_input")->ftextarea(p_var_name, p_show_post ? p_request_var : p_var, "textarea")->cdiv(); \
|
||||
b.cdiv();
|
||||
|
||||
#define ADMIN_EDIT_LINE_SPACER() \
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "mourne_application.h"
|
||||
#include "mourne_root.h"
|
||||
|
||||
#include "core/http/request.h"
|
||||
|
||||
@ -6,7 +6,8 @@
|
||||
|
||||
#include "core/file_cache.h"
|
||||
|
||||
#include "core/http/handler_instance.h"
|
||||
#include "core/os/platform.h"
|
||||
#include "core/os/arg_parser.h"
|
||||
|
||||
#include "core/database/database_manager.h"
|
||||
|
||||
@ -18,13 +19,41 @@
|
||||
#include "modules/users/user.h"
|
||||
#include "modules/users/user_controller.h"
|
||||
|
||||
#include "mourne_user_controller.h"
|
||||
|
||||
#include "assignments/assignment_initializer.h"
|
||||
#include "buildings/building_initializer.h"
|
||||
#include "village/village_initializer.h"
|
||||
#include "assignments/assignment_initializer.h"
|
||||
#include "weather/weather_initializer.h"
|
||||
|
||||
bool MourneApplication::is_logged_in(Request *request) {
|
||||
if (!request->session) {
|
||||
void MourneRoot::handle_request_main(Request *request) {
|
||||
if (process_middlewares(request)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (try_send_wwwroot_file(request)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// this is a hack, until I have a simple index node, or port contentcontroller.
|
||||
if (request->get_path_segment_count() == 0) {
|
||||
index(request);
|
||||
return;
|
||||
}
|
||||
|
||||
WebNode *handler = get_request_handler_child(request);
|
||||
|
||||
if (!handler) {
|
||||
request->send_error(404);
|
||||
return;
|
||||
}
|
||||
|
||||
add_menu(request, MENUENTRY_NEWS);
|
||||
handler->handle_request_main(request);
|
||||
}
|
||||
|
||||
bool MourneRoot::is_logged_in(Request *request) {
|
||||
if (!request->session.is_valid()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -33,7 +62,7 @@ bool MourneApplication::is_logged_in(Request *request) {
|
||||
return u.is_valid();
|
||||
}
|
||||
|
||||
void MourneApplication::index(Object *instance, Request *request) {
|
||||
void MourneRoot::index(Request *request) {
|
||||
ENSURE_LOGIN(request);
|
||||
|
||||
add_menu(request, MENUENTRY_NEWS);
|
||||
@ -56,15 +85,12 @@ void MourneApplication::index(Object *instance, Request *request) {
|
||||
<?php endif; ?>
|
||||
*/
|
||||
|
||||
//dynamic_cast<ListPage *>(instance)->index(request);
|
||||
// dynamic_cast<ListPage *>(instance)->index(request);
|
||||
request->body += "test";
|
||||
request->compile_and_send_body();
|
||||
}
|
||||
|
||||
void MourneApplication::session_middleware_func(Object *instance, Request *request) {
|
||||
}
|
||||
|
||||
void MourneApplication::add_menu(Request *request, const MenuEntries index) {
|
||||
void MourneRoot::add_menu(Request *request, const MenuEntries index) {
|
||||
request->head += menu_head;
|
||||
|
||||
HTMLBuilder b;
|
||||
@ -73,7 +99,7 @@ void MourneApplication::add_menu(Request *request, const MenuEntries index) {
|
||||
|
||||
int userlevel = 0;
|
||||
|
||||
if (request->session) {
|
||||
if (request->session.is_valid()) {
|
||||
Ref<User> user = request->reference_data["user"];
|
||||
|
||||
if (user.is_valid()) {
|
||||
@ -109,7 +135,7 @@ void MourneApplication::add_menu(Request *request, const MenuEntries index) {
|
||||
{
|
||||
b.a()->href("/mail/inbox");
|
||||
b.w("Mails");
|
||||
//if ($newmail) echo '!';
|
||||
// if ($newmail) echo '!';
|
||||
b.ca();
|
||||
}
|
||||
b.cdiv();
|
||||
@ -125,7 +151,7 @@ void MourneApplication::add_menu(Request *request, const MenuEntries index) {
|
||||
b.div()->cls("menu_village");
|
||||
{
|
||||
b.a()->href("/village/selected");
|
||||
b.w("Village"); //villagename
|
||||
b.w("Village"); // villagename
|
||||
b.ca();
|
||||
}
|
||||
b.cdiv();
|
||||
@ -221,57 +247,63 @@ void MourneApplication::add_menu(Request *request, const MenuEntries index) {
|
||||
request->footer = footer;
|
||||
}
|
||||
|
||||
void MourneApplication::village_page_func(Object *instance, Request *request) {
|
||||
void MourneRoot::village_page_func(Request *request) {
|
||||
add_menu(request, MENUENTRY_VILLAGE);
|
||||
|
||||
//dynamic_cast<ListPage *>(instance)->index(request);
|
||||
// dynamic_cast<ListPage *>(instance)->index(request);
|
||||
request->body += "test";
|
||||
request->compile_and_send_body();
|
||||
}
|
||||
|
||||
void MourneApplication::user_page_func(Object *instance, Request *request) {
|
||||
void MourneRoot::user_page_func(Request *request) {
|
||||
if (is_logged_in(request)) {
|
||||
add_menu(request, MENUENTRY_SETTINGS);
|
||||
}
|
||||
|
||||
UserController::get_singleton()->handle_request_default(request);
|
||||
UserController::get_singleton()->handle_request_main(request);
|
||||
}
|
||||
|
||||
void MourneApplication::admin_page_func(Object *instance, Request *request) {
|
||||
void MourneRoot::admin_page_func(Request *request) {
|
||||
AdminPanel::get_singleton()->handle_request_main(request);
|
||||
}
|
||||
|
||||
void MourneApplication::setup_routes() {
|
||||
DWebApplication::setup_routes();
|
||||
|
||||
index_func = HandlerInstance(index);
|
||||
main_route_map["village"] = HandlerInstance(village_page_func);
|
||||
main_route_map["user"] = HandlerInstance(user_page_func);
|
||||
main_route_map["admin"] = HandlerInstance(admin_page_func);
|
||||
void MourneRoot::setup_routes() {
|
||||
// index_func = HandlerInstance(index);
|
||||
// main_route_map["village"] = HandlerInstance(village_page_func);
|
||||
// main_route_map["user"] = HandlerInstance(user_page_func);
|
||||
// main_route_map["admin"] = HandlerInstance(admin_page_func);
|
||||
}
|
||||
|
||||
void MourneApplication::setup_middleware() {
|
||||
middlewares.push_back(HandlerInstance(::SessionManager::session_setup_middleware));
|
||||
middlewares.push_back(HandlerInstance(::UserController::user_session_setup_middleware));
|
||||
|
||||
DWebApplication::setup_middleware();
|
||||
void MourneRoot::setup_middleware() {
|
||||
_middlewares.push_back(Ref<SessionSetupMiddleware>(new SessionSetupMiddleware()));
|
||||
_middlewares.push_back(Ref<UserSessionSetupMiddleware>(new UserSessionSetupMiddleware()));
|
||||
}
|
||||
|
||||
void MourneApplication::migrate() {
|
||||
void MourneRoot::migrate() {
|
||||
BuildingController::get_singleton()->migrate();
|
||||
VillageController::get_singleton()->migrate();
|
||||
AssignmentController::get_singleton()->migrate();
|
||||
WeatherController::get_singleton()->migrate();
|
||||
|
||||
if (Platform::get_singleton()->arg_parser.has_arg("-u")) {
|
||||
printf("Creating test users.\n");
|
||||
_user_controller->create_test_users();
|
||||
}
|
||||
|
||||
if (Platform::get_singleton()->arg_parser.has_arg("-d")) {
|
||||
printf("Adding data.\n");
|
||||
add_default_data();
|
||||
}
|
||||
}
|
||||
|
||||
void MourneApplication::add_default_data() {
|
||||
void MourneRoot::add_default_data() {
|
||||
BuildingController::get_singleton()->add_default_data();
|
||||
VillageController::get_singleton()->add_default_data();
|
||||
AssignmentController::get_singleton()->add_default_data();
|
||||
WeatherController::get_singleton()->add_default_data();
|
||||
}
|
||||
|
||||
void MourneApplication::compile_menu() {
|
||||
void MourneRoot::compile_menu() {
|
||||
HTMLBuilder bh;
|
||||
|
||||
bh.meta()->charset_utf_8();
|
||||
@ -301,8 +333,8 @@ void MourneApplication::compile_menu() {
|
||||
footer = bf.result;
|
||||
}
|
||||
|
||||
MourneApplication::MourneApplication() :
|
||||
DWebApplication() {
|
||||
MourneRoot::MourneRoot() :
|
||||
WebRoot() {
|
||||
|
||||
BuildingInitializer::allocate_all();
|
||||
VillageInitializer::allocate_all();
|
||||
@ -310,10 +342,18 @@ MourneApplication::MourneApplication() :
|
||||
WeatherInitializer::allocate_all();
|
||||
|
||||
_admin_panel = new AdminPanel();
|
||||
_admin_panel->set_uri_segment("admin");
|
||||
_admin_panel->register_admin_controller("buildings", BuildingController::get_singleton());
|
||||
_admin_panel->register_admin_controller("assignments", AssignmentController::get_singleton());
|
||||
_admin_panel->register_admin_controller("weather", WeatherController::get_singleton());
|
||||
|
||||
_user_controller = new MourneUserController();
|
||||
_user_controller->set_uri_segment("user");
|
||||
// user_manager->set_path("./users/");
|
||||
add_child(_user_controller);
|
||||
|
||||
add_child(_admin_panel);
|
||||
|
||||
HTMLBuilder b;
|
||||
|
||||
b.link()->rel("stylesheet")->type("text/css")->href("/css/base.css")->f()->f();
|
||||
@ -330,15 +370,13 @@ MourneApplication::MourneApplication() :
|
||||
compile_menu();
|
||||
}
|
||||
|
||||
MourneApplication::~MourneApplication() {
|
||||
delete _admin_panel;
|
||||
|
||||
MourneRoot::~MourneRoot() {
|
||||
VillageInitializer::free_all();
|
||||
BuildingInitializer::free_all();
|
||||
AssignmentInitializer::free_all();
|
||||
WeatherInitializer::free_all();
|
||||
}
|
||||
|
||||
String MourneApplication::menu_head = "";
|
||||
String MourneApplication::admin_headers = "";
|
||||
String MourneApplication::footer = "";
|
||||
String MourneRoot::menu_head = "";
|
||||
String MourneRoot::admin_headers = "";
|
||||
String MourneRoot::footer = "";
|
@ -1,10 +1,10 @@
|
||||
#ifndef RDN_APPLICATION_H
|
||||
#define RDN_APPLICATION_H
|
||||
#ifndef MOURNE_ROOT_H
|
||||
#define MOURNE_ROOT_H
|
||||
|
||||
//#include "core/http/web_application.h"
|
||||
#include "core/http/web_root.h"
|
||||
#include "core/object.h"
|
||||
#include "core/string.h"
|
||||
#include "modules/drogon/web_application.h"
|
||||
|
||||
#include "modules/list_page/list_page.h"
|
||||
#include "modules/message_page/message_page.h"
|
||||
@ -12,6 +12,11 @@
|
||||
#include "modules/paged_list/paged_list.h"
|
||||
|
||||
class AdminPanel;
|
||||
class RBACController;
|
||||
class RBACModel;
|
||||
class UserController;
|
||||
class MenuNode;
|
||||
class MourneUserController;
|
||||
|
||||
#define ENSURE_LOGIN(request) \
|
||||
if (!is_logged_in(request)) { \
|
||||
@ -19,7 +24,9 @@ class AdminPanel;
|
||||
return; \
|
||||
}
|
||||
|
||||
class MourneApplication : public DWebApplication {
|
||||
class MourneRoot : public WebRoot {
|
||||
RCPP_OBJECT(MourneRoot, WebRoot);
|
||||
|
||||
public:
|
||||
enum MenuEntries {
|
||||
MENUENTRY_NEWS = 0,
|
||||
@ -38,18 +45,16 @@ public:
|
||||
};
|
||||
|
||||
public:
|
||||
static bool is_logged_in(Request *request);
|
||||
void handle_request_main(Request *request);
|
||||
|
||||
static void index(Object *instance, Request *request);
|
||||
bool is_logged_in(Request *request);
|
||||
|
||||
static void session_middleware_func(Object *instance, Request *request);
|
||||
void add_menu(Request *request, const MenuEntries index);
|
||||
|
||||
static void add_menu(Request *request, const MenuEntries index);
|
||||
|
||||
static void village_page_func(Object *instance, Request *request);
|
||||
static void user_page_func(Object *instance, Request *request);
|
||||
|
||||
static void admin_page_func(Object *instance, Request *request);
|
||||
void index(Request *request);
|
||||
void village_page_func(Request *request);
|
||||
void user_page_func(Request *request);
|
||||
void admin_page_func(Request *request);
|
||||
|
||||
virtual void setup_routes();
|
||||
virtual void setup_middleware();
|
||||
@ -59,10 +64,12 @@ public:
|
||||
|
||||
void compile_menu();
|
||||
|
||||
MourneApplication();
|
||||
~MourneApplication();
|
||||
MourneRoot();
|
||||
~MourneRoot();
|
||||
|
||||
AdminPanel *_admin_panel;
|
||||
AdminPanel *_admin_panel;
|
||||
MourneUserController *_user_controller;
|
||||
MenuNode *_menu;
|
||||
|
||||
static String menu_head;
|
||||
static String admin_headers;
|
@ -6,7 +6,6 @@
|
||||
#include "core/http/http_session.h"
|
||||
#include "core/http/request.h"
|
||||
#include "core/http/session_manager.h"
|
||||
#include "modules/users/user_model.h"
|
||||
|
||||
void MourneUserController::render_login_request_default(Request *request, LoginRequestData *data) {
|
||||
HTMLBuilder b;
|
||||
@ -26,7 +25,7 @@ void MourneUserController::render_login_request_default(Request *request, LoginR
|
||||
|
||||
b.div()->cls("login");
|
||||
{
|
||||
//todo href path helper
|
||||
// todo href path helper
|
||||
b.form()->method("POST")->href("/user/login");
|
||||
{
|
||||
b.w("Username");
|
||||
@ -75,7 +74,7 @@ void MourneUserController::render_register_request_default(Request *request, Reg
|
||||
|
||||
b.div()->cls("register");
|
||||
{
|
||||
//todo href path helper
|
||||
// todo href path helper
|
||||
b.form()->method("POST")->href("/user/register");
|
||||
{
|
||||
b.w("Username");
|
||||
@ -101,7 +100,7 @@ void MourneUserController::render_register_request_default(Request *request, Reg
|
||||
b.input()->type("password")->name("password_check");
|
||||
b.cinput();
|
||||
b.br();
|
||||
|
||||
|
||||
b.input()->type("submit")->value("Register");
|
||||
b.cinput();
|
||||
}
|
||||
@ -144,7 +143,7 @@ void MourneUserController::render_settings_request(Ref<User> &user, Request *req
|
||||
|
||||
b.div()->cls("settings");
|
||||
{
|
||||
//todo href path helper
|
||||
// todo href path helper
|
||||
b.form()->method("POST")->href("/user/settings");
|
||||
{
|
||||
b.w("Username");
|
||||
@ -183,6 +182,27 @@ void MourneUserController::render_settings_request(Ref<User> &user, Request *req
|
||||
request->compile_and_send_body();
|
||||
}
|
||||
|
||||
void MourneUserController::create_test_users() {
|
||||
Ref<User> user;
|
||||
user = create_user();
|
||||
|
||||
user->rank = 6;
|
||||
user->name_user_input = "admin";
|
||||
user->email_user_input = "admin@admin.com";
|
||||
|
||||
create_password(user, "Password");
|
||||
db_save_user(user);
|
||||
|
||||
user = create_user();
|
||||
|
||||
user->rank = 1;
|
||||
user->name_user_input = "user";
|
||||
user->email_user_input = "user@user.com";
|
||||
|
||||
create_password(user, "Password");
|
||||
db_save_user(user);
|
||||
}
|
||||
|
||||
MourneUserController::MourneUserController() :
|
||||
UserController() {
|
||||
}
|
||||
|
@ -18,6 +18,8 @@ public:
|
||||
void render_already_logged_in_error(Request *request);
|
||||
void render_settings_request(Ref<User> &user, Request *request, SettingsRequestData *data);
|
||||
|
||||
virtual void create_test_users();
|
||||
|
||||
MourneUserController();
|
||||
~MourneUserController();
|
||||
};
|
||||
|
@ -1,30 +0,0 @@
|
||||
#include "mourne_user_model.h"
|
||||
|
||||
void MourneUserModel::create_test_users() {
|
||||
Ref<User> user;
|
||||
user = UserModel::get_singleton()->create_user();
|
||||
|
||||
user->rank = 6;
|
||||
user->name_user_input = "admin";
|
||||
user->email_user_input = "admin@admin.com";
|
||||
|
||||
create_password(user, "Password");
|
||||
save_user(user);
|
||||
|
||||
|
||||
user = UserModel::get_singleton()->create_user();
|
||||
|
||||
user->rank = 1;
|
||||
user->name_user_input = "user";
|
||||
user->email_user_input = "user@user.com";
|
||||
|
||||
create_password(user, "Password");
|
||||
save_user(user);
|
||||
}
|
||||
|
||||
MourneUserModel::MourneUserModel() :
|
||||
UserModel() {
|
||||
}
|
||||
|
||||
MourneUserModel::~MourneUserModel() {
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
#ifndef MOURNE_USER_MODEL_H
|
||||
#define MOURNE_USER_MODEL_H
|
||||
|
||||
#include "core/string.h"
|
||||
#include "core/containers/vector.h"
|
||||
|
||||
#include "modules/users/user_model.h"
|
||||
|
||||
#include "modules/users/user.h"
|
||||
|
||||
class MourneUserModel : public UserModel {
|
||||
RCPP_OBJECT(MourneUserModel, UserModel);
|
||||
|
||||
public:
|
||||
virtual void create_test_users();
|
||||
|
||||
MourneUserModel();
|
||||
~MourneUserModel();
|
||||
|
||||
protected:
|
||||
};
|
||||
|
||||
#endif
|
@ -68,11 +68,11 @@ void WeatherController::admin_render_weather_list(Request *request) {
|
||||
|
||||
HTMLBuilder b;
|
||||
|
||||
b.div("back")->f()->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
|
||||
b.div("back")->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
|
||||
b.br();
|
||||
b.fdiv("Weather Editor", "top_menu");
|
||||
b.br();
|
||||
b.div("top_menu")->f()->fa(request->get_url_root("new"), "Create New")->cdiv();
|
||||
b.div("top_menu")->fa(request->get_url_root("new"), "Create New")->cdiv();
|
||||
b.br();
|
||||
|
||||
b.div("list_container");
|
||||
@ -93,7 +93,7 @@ void WeatherController::admin_render_weather_list(Request *request) {
|
||||
b.fdiv(String::num(weather->id), "attr_box");
|
||||
b.fdiv(weather->name, "name");
|
||||
|
||||
b.div("actionbox")->f()->fa(request->get_url_root("edit/" + String::num(weather->id)), "Edit")->cdiv();
|
||||
b.div("actionbox")->fa(request->get_url_root("edit/" + String::num(weather->id)), "Edit")->cdiv();
|
||||
}
|
||||
b.cdiv();
|
||||
}
|
||||
@ -114,7 +114,7 @@ void WeatherController::admin_render_weather(Request *request, Ref<Weather> weat
|
||||
|
||||
HTMLBuilder b;
|
||||
|
||||
b.div("back")->f()->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
|
||||
b.div("back")->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
|
||||
b.br();
|
||||
b.fdiv("Weather Editor", "top_menu");
|
||||
b.br();
|
||||
@ -149,7 +149,7 @@ void WeatherController::admin_render_weather(Request *request, Ref<Weather> weat
|
||||
ADMIN_EDIT_INPUT_TEXT("Mod Percent Iron:", "mod_percent_iron", show_post, String::num(weather->mod_percent_iron), request->get_parameter("mod_percent_iron"));
|
||||
ADMIN_EDIT_INPUT_TEXT("Mod Percent Mana:", "mod_percent_mana", show_post, String::num(weather->mod_percent_mana), request->get_parameter("mod_percent_mana"));
|
||||
|
||||
b.div("edit_submit")->f()->input_submit("Save", "submit")->f()->cdiv();
|
||||
b.div("edit_submit")->input_submit("Save", "submit")->cdiv();
|
||||
|
||||
b.cform();
|
||||
|
||||
@ -168,7 +168,7 @@ WeatherController *WeatherController::get_singleton() {
|
||||
}
|
||||
|
||||
WeatherController::WeatherController() :
|
||||
AdminController() {
|
||||
AdminNode() {
|
||||
|
||||
if (_self) {
|
||||
printf("WeatherController::WeatherController(): Error! self is not null!/n");
|
||||
|
@ -4,15 +4,15 @@
|
||||
#include "core/string.h"
|
||||
#include "core/containers/vector.h"
|
||||
|
||||
#include "modules/admin_panel/admin_controller.h"
|
||||
#include "modules/admin_panel/admin_node.h"
|
||||
|
||||
#include "weather.h"
|
||||
|
||||
class Request;
|
||||
class FormValidator;
|
||||
|
||||
class WeatherController : public AdminController {
|
||||
RCPP_OBJECT(WeatherController, AdminController);
|
||||
class WeatherController : public AdminNode {
|
||||
RCPP_OBJECT(WeatherController, AdminNode);
|
||||
|
||||
public:
|
||||
void handle_request_default(Request *request);
|
||||
|
49
main.cpp
49
main.cpp
@ -2,25 +2,23 @@
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
#include "core/bry_http/http_server.h"
|
||||
#include "core/file_cache.h"
|
||||
#include "core/http/web_application.h"
|
||||
#include "core/http/web_root.h"
|
||||
|
||||
#include "app/mourne_application.h"
|
||||
#include "app/mourne_root.h"
|
||||
|
||||
#include "database/db_init.h"
|
||||
|
||||
#include "core/settings.h"
|
||||
#include "core/settings/settings.h"
|
||||
#include "core/settings/db_settings.h"
|
||||
|
||||
#include "core/http/session_manager.h"
|
||||
|
||||
#include "modules/drogon/web_application.h"
|
||||
#include "modules/drogon/drogon_web_server.h"
|
||||
|
||||
//Backends
|
||||
#include "backends/hash_hashlib/setup.h"
|
||||
|
||||
#include "app/mourne_user_controller.h"
|
||||
#include "app/mourne_user_model.h"
|
||||
#include "modules/users/user.h"
|
||||
|
||||
#include "core/os/platform.h"
|
||||
@ -49,13 +47,8 @@ int main(int argc, char **argv, char **envp) {
|
||||
|
||||
::SessionManager *session_manager = new ::SessionManager();
|
||||
|
||||
//todo init these in the module automatically
|
||||
MourneUserController *user_controller = new MourneUserController();
|
||||
MourneUserModel *user_model = new MourneUserModel();
|
||||
//user_manager->set_path("./users/");
|
||||
|
||||
Settings *settings = new Settings(true);
|
||||
//settings->parse_file("settings.json");
|
||||
DBSettings *settings = new DBSettings(true);
|
||||
// settings->parse_file("settings.json");
|
||||
|
||||
FileCache *file_cache = new FileCache(true);
|
||||
file_cache->wwwroot = "./www";
|
||||
@ -65,18 +58,17 @@ int main(int argc, char **argv, char **envp) {
|
||||
|
||||
create_databases();
|
||||
|
||||
MourneApplication *app = new MourneApplication();
|
||||
|
||||
app->load_settings();
|
||||
app->setup_routes();
|
||||
app->setup_middleware();
|
||||
DrogonWebServer *app = new DrogonWebServer();
|
||||
MourneRoot *app_root = new MourneRoot();
|
||||
app_root->setup();
|
||||
|
||||
bool migrate = Platform::get_singleton()->arg_parser.has_arg("-m");
|
||||
|
||||
if (!migrate) {
|
||||
printf("Initialized!\n");
|
||||
settings->load();
|
||||
session_manager->load_sessions();
|
||||
|
||||
printf("Initialized!\n");
|
||||
app->add_listener("127.0.0.1", 8080);
|
||||
LOG_INFO << "Server running on 127.0.0.1:8080";
|
||||
|
||||
@ -84,28 +76,15 @@ int main(int argc, char **argv, char **envp) {
|
||||
} else {
|
||||
printf("Running migrations.\n");
|
||||
|
||||
settings->migrate();
|
||||
session_manager->migrate();
|
||||
user_model->migrate();
|
||||
|
||||
if (Platform::get_singleton()->arg_parser.has_arg("-u")) {
|
||||
printf("Creating test users.\n");
|
||||
user_model->create_test_users();
|
||||
}
|
||||
|
||||
app->migrate();
|
||||
|
||||
if (Platform::get_singleton()->arg_parser.has_arg("-d")) {
|
||||
printf("Adding data.\n");
|
||||
app->add_default_data();
|
||||
}
|
||||
app_root->migrate();
|
||||
}
|
||||
|
||||
delete app;
|
||||
delete dbm;
|
||||
delete file_cache;
|
||||
delete settings;
|
||||
delete user_controller;
|
||||
delete user_model;
|
||||
delete session_manager;
|
||||
|
||||
PlatformInitializer::free_all();
|
||||
|
Loading…
Reference in New Issue
Block a user