mirror of
https://github.com/Relintai/mourne_rcpp_fw.git
synced 2024-12-27 23:17:11 +01:00
BuildingController is now inherited from AdminController, and set up the admin panel module.
This commit is contained in:
parent
a9080e05c3
commit
629ab517aa
@ -7,11 +7,106 @@
|
|||||||
#include "core/http/request.h"
|
#include "core/http/request.h"
|
||||||
#include "core/http/session_manager.h"
|
#include "core/http/session_manager.h"
|
||||||
|
|
||||||
|
#include "building_model.h"
|
||||||
#include "building_model.h"
|
#include "building_model.h"
|
||||||
|
|
||||||
void BuildingController::handle_request_default(Request *request) {
|
void BuildingController::handle_request_default(Request *request) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BuildingController::admin_handle_request_main(Request *request) {
|
||||||
|
String seg = request->get_current_path_segment();
|
||||||
|
|
||||||
|
if (seg == "") {
|
||||||
|
admin_render_building_list(request);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
request->send_error(404);
|
||||||
|
}
|
||||||
|
String BuildingController::admin_get_section_name() {
|
||||||
|
return "Building Editor";
|
||||||
|
}
|
||||||
|
void BuildingController::admin_add_section_links(Vector<AdminSectionLinkInfo> *links) {
|
||||||
|
links->push_back(AdminSectionLinkInfo("Editor", ""));
|
||||||
|
}
|
||||||
|
bool BuildingController::admin_full_render() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BuildingController::admin_render_building_list(Request *request) {
|
||||||
|
Vector<Ref<Building> > buildings = BuildingModel::get_singleton()->get_all();
|
||||||
|
|
||||||
|
HTMLBuilder b;
|
||||||
|
|
||||||
|
b.div()->cls("back")->f()->a()->href(request->get_url_root_parent())->f()->w("<--- Back")->ca()->cdiv();
|
||||||
|
b.br();
|
||||||
|
b.h4()->f()->w("Building Editor")->ch4();
|
||||||
|
b.br();
|
||||||
|
b.div()->cls("top_menu")->f()->a()->href(request->get_url_root("new"))->f()->w("Create New")->ca()->cdiv();
|
||||||
|
b.br();
|
||||||
|
|
||||||
|
b.div()->cls("list_container");
|
||||||
|
|
||||||
|
for (int i = 0; i < buildings.size(); ++i) {
|
||||||
|
Ref<Building> building = buildings[i];
|
||||||
|
|
||||||
|
if (!building.is_valid()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
b.div()->cls("row");
|
||||||
|
{
|
||||||
|
//b.a()->href(request->get_url_root("permission_editor/") + String::num(r->id));
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
b.cdiv();
|
||||||
|
}
|
||||||
|
|
||||||
|
b.cdiv();
|
||||||
|
|
||||||
|
/*
|
||||||
|
<div class="back">
|
||||||
|
<a href="<?=site_url($link_back); ?>"><--- Back</a>
|
||||||
|
</div>
|
||||||
|
<div class="top_menu">
|
||||||
|
<a href="<?=site_url($link_new); ?>">Create New</a>
|
||||||
|
</div>
|
||||||
|
<div class="list_container">
|
||||||
|
<?php $i = 1; ?>
|
||||||
|
<?php foreach ($buildings as $row): ?>
|
||||||
|
<?php $link = $link_edit . $row['id']; ?>
|
||||||
|
<?php if (!($i % 2)): ?>
|
||||||
|
<div class="row">
|
||||||
|
<?php else: ?>
|
||||||
|
<div class="row second">
|
||||||
|
<?php endif; ?>
|
||||||
|
<div class="attr_box">
|
||||||
|
[<?=$row['id']; ?>]
|
||||||
|
</div>
|
||||||
|
<div class="attr_box">
|
||||||
|
[Rank: <?=$row['rank']; ?>]
|
||||||
|
</div>
|
||||||
|
<div class="attr_box">
|
||||||
|
[N Rank: <?=$row['next_rank']; ?>]
|
||||||
|
</div>
|
||||||
|
<div class="name">
|
||||||
|
<?=$row['name']; ?>
|
||||||
|
</div>
|
||||||
|
<div class="actionbox">
|
||||||
|
<a href="<?=site_url($link); ?>">Edit</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php $i++; ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
request->body += b.result;
|
||||||
|
}
|
||||||
|
|
||||||
void BuildingController::migrate() {
|
void BuildingController::migrate() {
|
||||||
BuildingModel::get_singleton()->migrate();
|
BuildingModel::get_singleton()->migrate();
|
||||||
}
|
}
|
||||||
@ -24,7 +119,7 @@ BuildingController *BuildingController::get_singleton() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
BuildingController::BuildingController() :
|
BuildingController::BuildingController() :
|
||||||
Object() {
|
AdminController() {
|
||||||
|
|
||||||
if (_self) {
|
if (_self) {
|
||||||
printf("BuildingController::BuildingController(): Error! self is not null!/n");
|
printf("BuildingController::BuildingController(): Error! self is not null!/n");
|
||||||
|
@ -4,22 +4,29 @@
|
|||||||
#include "core/string.h"
|
#include "core/string.h"
|
||||||
#include "core/containers/vector.h"
|
#include "core/containers/vector.h"
|
||||||
|
|
||||||
#include "core/object.h"
|
#include "modules/admin_panel/admin_controller.h"
|
||||||
|
|
||||||
#include "building.h"
|
#include "building.h"
|
||||||
|
|
||||||
class Request;
|
class Request;
|
||||||
class FormValidator;
|
class FormValidator;
|
||||||
|
|
||||||
class BuildingController : public Object {
|
class BuildingController : public AdminController {
|
||||||
RCPP_OBJECT(BuildingController, Object);
|
RCPP_OBJECT(BuildingController, AdminController);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
void handle_request_default(Request *request);
|
||||||
|
|
||||||
|
void admin_handle_request_main(Request *request);
|
||||||
|
String admin_get_section_name();
|
||||||
|
void admin_add_section_links(Vector<AdminSectionLinkInfo> *links);
|
||||||
|
bool admin_full_render();
|
||||||
|
|
||||||
|
void admin_render_building_list(Request *request);
|
||||||
|
|
||||||
void migrate();
|
void migrate();
|
||||||
virtual void add_default_data();
|
virtual void add_default_data();
|
||||||
|
|
||||||
virtual void handle_request_default(Request *request);
|
|
||||||
|
|
||||||
static BuildingController *get_singleton();
|
static BuildingController *get_singleton();
|
||||||
|
|
||||||
BuildingController();
|
BuildingController();
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
#include "modules/users/user.h"
|
#include "modules/users/user.h"
|
||||||
#include "modules/users/user_controller.h"
|
#include "modules/users/user_controller.h"
|
||||||
|
#include "modules/admin_panel/admin_panel.h"
|
||||||
|
|
||||||
#include "buildings/building_initializer.h"
|
#include "buildings/building_initializer.h"
|
||||||
#include "village/village_initializer.h"
|
#include "village/village_initializer.h"
|
||||||
@ -220,12 +221,17 @@ void MourneApplication::user_page_func(Object *instance, Request *request) {
|
|||||||
UserController::get_singleton()->handle_request_default(request);
|
UserController::get_singleton()->handle_request_default(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MourneApplication::admin_page_func(Object *instance, Request *request) {
|
||||||
|
AdminPanel::get_singleton()->handle_request_main(request);
|
||||||
|
}
|
||||||
|
|
||||||
void MourneApplication::setup_routes() {
|
void MourneApplication::setup_routes() {
|
||||||
DWebApplication::setup_routes();
|
DWebApplication::setup_routes();
|
||||||
|
|
||||||
index_func = HandlerInstance(index);
|
index_func = HandlerInstance(index);
|
||||||
main_route_map["village"] = HandlerInstance(village_page_func);
|
main_route_map["village"] = HandlerInstance(village_page_func);
|
||||||
main_route_map["user"] = HandlerInstance(user_page_func);
|
main_route_map["user"] = HandlerInstance(user_page_func);
|
||||||
|
main_route_map["admin"] = HandlerInstance(admin_page_func);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MourneApplication::setup_middleware() {
|
void MourneApplication::setup_middleware() {
|
||||||
@ -276,10 +282,15 @@ MourneApplication::MourneApplication() :
|
|||||||
BuildingInitializer::allocate_all();
|
BuildingInitializer::allocate_all();
|
||||||
VillageInitializer::allocate_all();
|
VillageInitializer::allocate_all();
|
||||||
|
|
||||||
|
_admin_panel = new AdminPanel();
|
||||||
|
_admin_panel->register_admin_controller("buildings", BuildingController::get_singleton());
|
||||||
|
|
||||||
|
|
||||||
compile_menu();
|
compile_menu();
|
||||||
}
|
}
|
||||||
|
|
||||||
MourneApplication::~MourneApplication() {
|
MourneApplication::~MourneApplication() {
|
||||||
|
delete _admin_panel;
|
||||||
|
|
||||||
VillageInitializer::free_all();
|
VillageInitializer::free_all();
|
||||||
BuildingInitializer::free_all();
|
BuildingInitializer::free_all();
|
||||||
|
@ -10,6 +10,8 @@
|
|||||||
#include "modules/paged_article/paged_article.h"
|
#include "modules/paged_article/paged_article.h"
|
||||||
#include "modules/paged_list/paged_list.h"
|
#include "modules/paged_list/paged_list.h"
|
||||||
|
|
||||||
|
class AdminPanel;
|
||||||
|
|
||||||
#define ENSURE_LOGIN(request) \
|
#define ENSURE_LOGIN(request) \
|
||||||
if (!is_logged_in(request)) { \
|
if (!is_logged_in(request)) { \
|
||||||
request->send_redirect("/user/login"); \
|
request->send_redirect("/user/login"); \
|
||||||
@ -46,6 +48,8 @@ public:
|
|||||||
static void village_page_func(Object *instance, Request *request);
|
static void village_page_func(Object *instance, Request *request);
|
||||||
static void user_page_func(Object *instance, Request *request);
|
static void user_page_func(Object *instance, Request *request);
|
||||||
|
|
||||||
|
static void admin_page_func(Object *instance, Request *request);
|
||||||
|
|
||||||
virtual void setup_routes();
|
virtual void setup_routes();
|
||||||
virtual void setup_middleware();
|
virtual void setup_middleware();
|
||||||
|
|
||||||
@ -57,6 +61,8 @@ public:
|
|||||||
MourneApplication();
|
MourneApplication();
|
||||||
~MourneApplication();
|
~MourneApplication();
|
||||||
|
|
||||||
|
AdminPanel *_admin_panel;
|
||||||
|
|
||||||
static std::string menu_head;
|
static std::string menu_head;
|
||||||
static std::string footer;
|
static std::string footer;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user