Cleanups and notes to the page manager. Also added the new classes into the build.

This commit is contained in:
Relintai 2022-01-13 14:10:32 +01:00
parent a8bc7c5fcd
commit 3d2215853a
5 changed files with 92 additions and 35 deletions

View File

@ -34,8 +34,8 @@ import traceback
folders = [
'app',
'app/menu',
#'app/page_manager',
#'app/page_manager/content',
'app/page_manager',
'app/page_manager/content',
]
module_folders = [

13
app/page_manager/page.cpp Normal file
View File

@ -0,0 +1,13 @@
#include "page.h"
Page::Page() :
Resource() {
rank_id = 0;
sort_order = 0;
permissions = 0;
}
Page::~Page() {
}

22
app/page_manager/page.h Normal file
View File

@ -0,0 +1,22 @@
#ifndef PAGE_H
#define PAGE_H
#include "core/string.h"
#include "core/resource.h"
class Page : public Resource {
RCPP_OBJECT(Page, Resource);
public:
int rank_id;
String name;
String url;
int sort_order;
int permissions;
Page();
~Page();
};
#endif

View File

@ -15,6 +15,9 @@
#include "core/database/query_result.h"
#include "core/database/table_builder.h"
#include "page_content.h"
#include "page.h"
void PageManager::create_validators() {
}
@ -48,6 +51,7 @@ void PageManager::admin_handle_request_main(Request *request) {
}
void PageManager::admin_handle_new_menuentry(Request *request) {
/*
if (request->get_method() == HTTP_METHOD_POST) {
Ref<MenuDataEntry> entry;
entry.instance();
@ -67,9 +71,11 @@ void PageManager::admin_handle_new_menuentry(Request *request) {
MenudminEntryViewData data;
render_menuentry_view(request, &data);
*/
}
void PageManager::admin_handle_edit_menuentry(Request *request) {
/*
String seg = request->get_current_path_segment();
int id = seg.to_int();
@ -104,9 +110,11 @@ void PageManager::admin_handle_edit_menuentry(Request *request) {
}
render_menuentry_view(request, &data);
*/
}
void PageManager::render_menuentry_view(Request *request, MenudminEntryViewData *data) {
/*
int id = 0;
String name = "";
String url = "";
@ -159,9 +167,11 @@ void PageManager::render_menuentry_view(Request *request, MenudminEntryViewData
b.cform();
request->body += b.result;
*/
}
void PageManager::admin_handle_up(Request *request) {
/*
String pid = request->get_parameter("id");
if (!pid.is_int()) {
@ -210,9 +220,11 @@ void PageManager::admin_handle_up(Request *request) {
//_data->write_unlock()
request->send_redirect(request->get_url_root_parent());
*/
}
void PageManager::admin_handle_down(Request *request) {
/*
String pid = request->get_parameter("id");
if (!pid.is_int()) {
@ -261,9 +273,11 @@ void PageManager::admin_handle_down(Request *request) {
//_data->write_unlock()
request->send_redirect(request->get_url_root_parent());
*/
}
void PageManager::admin_handle_delete(Request *request) {
/*
String pid = request->get_parameter("id");
if (!pid.is_int()) {
@ -302,6 +316,7 @@ void PageManager::admin_handle_delete(Request *request) {
//_data->write_unlock()
request->send_redirect(request->get_url_root_parent());
*/
}
String PageManager::admin_get_section_name() {
@ -313,6 +328,7 @@ void PageManager::admin_add_section_links(Vector<AdminSectionLinkInfo> *links) {
}
void PageManager::admin_render_menuentry_list(Request *request) {
/*
HTMLBuilder b;
b.h4()->f()->a()->href(request->get_url_root_parent())->f()->w("&lt;- Back")->ca()->ch4();
@ -388,24 +404,13 @@ void PageManager::admin_render_menuentry_list(Request *request) {
b.ca();
request->body += b.result;
}
void PageManager::initialize() {
_data = db_load();
}
Ref<MenuData> PageManager::get_data() {
return _data;
}
bool PageManager::continue_on_missing_default_rank() {
// todo, add setting
return false;
*/
}
// DB
Ref<MenuData> PageManager::db_load() {
Vector<Ref<Page> > PageManager::db_load() {
/*
Ref<MenuData> data;
data.instance();
@ -429,17 +434,24 @@ Ref<MenuData> PageManager::db_load() {
data->sort_entries();
return data;
*/
return Vector<Ref<Page> >();
}
void PageManager::db_save(const Ref<MenuData> &menu) {
void PageManager::db_save(const Ref<Page> &page) {
/*
//only save the page itself
for (int i = 0; i < menu->entries.size(); ++i) {
Ref<MenuDataEntry> entry = menu->entries[i];
db_save_menu_entry(entry);
}
}*/
}
void PageManager::db_save_menu_entry(const Ref<MenuDataEntry> &entry) {
void PageManager::db_save_page_content(const Ref<PageContent> &entry) {
/*
Ref<QueryBuilder> qb = get_query_builder();
if (entry->id == 0) {
@ -465,9 +477,10 @@ void PageManager::db_save_menu_entry(const Ref<MenuDataEntry> &entry) {
qb->run_query();
// qb->print();
}
*/
}
void PageManager::db_delete_menu_entry(const int id) {
void PageManager::db_delete_page(const int id) {
Ref<QueryBuilder> qb = get_query_builder();
qb->del(_table)->where()->wp("id", id);
@ -502,6 +515,16 @@ void PageManager::migrate() {
void PageManager::create_default_entries() {
}
void PageManager::initialize() {
_table = _table_prefix;
if (_table.size() > 0) {
_table += '_';
}
_table += "pages";
}
void PageManager::_notification(int what) {
if (what == Node::NOTIFICATION_ENTER_TREE) {
initialize();
@ -510,8 +533,6 @@ void PageManager::_notification(int what) {
PageManager::PageManager() :
AdminNode() {
_table = "menu";
}
PageManager::~PageManager() {

View File

@ -9,6 +9,9 @@
class Request;
class FormValidator;
class Page;
class PageContent;
class PageManager : public AdminNode {
RCPP_OBJECT(PageManager, AdminNode);
@ -22,7 +25,7 @@ public:
void admin_render_menuentry_list(Request *request);
struct MenudminEntryViewData {
Ref<MenuDataEntry> entry;
//Ref<MenuDataEntry> entry;
Vector<String> messages;
};
@ -34,36 +37,34 @@ public:
void admin_handle_down(Request *request);
void admin_handle_delete(Request *request);
void initialize();
Ref<MenuData> get_data();
String &get_redirect_url();
bool continue_on_missing_default_rank();
//void invalidate_cache(String page);
//Page -> owner (PageManager*) -> when changes
//db
virtual Ref<MenuData> db_load();
virtual Vector<Ref<Page> > db_load();
virtual void db_save(const Ref<MenuData> &menu);
virtual void db_save_menu_entry(const Ref<MenuDataEntry> &entry);
virtual void db_delete_menu_entry(const int id);
virtual void db_save(const Ref<Page> &page);
virtual void db_save_page_content(const Ref<PageContent> &entry);
virtual void db_delete_page(const int id);
void create_table();
void drop_table();
void migrate();
void create_default_entries();
virtual void initialize();
void _notification(int what);
PageManager();
~PageManager();
protected:
String _table_prefix;
String _table;
Ref<MenuData> _data;
//rwlock _cache_lock;
//map<Sting, Page> _page_cache;
};
#endif