Ported Page.

This commit is contained in:
Relintai 2022-01-13 21:46:16 +01:00
parent 3d2215853a
commit 7ab14ac72c
4 changed files with 46 additions and 33 deletions

View File

@ -4,9 +4,8 @@
Page::Page() :
Resource() {
rank_id = 0;
sort_order = 0;
permissions = 0;
page_type = 0;
deleted = 0;
}
Page::~Page() {

View File

@ -9,11 +9,10 @@ class Page : public Resource {
RCPP_OBJECT(Page, Resource);
public:
int rank_id;
String name;
String url;
int sort_order;
int permissions;
int page_type;
int deleted;
Page();
~Page();

View File

@ -409,45 +409,59 @@ void PageManager::admin_render_menuentry_list(Request *request) {
// DB
Vector<Ref<Page> > PageManager::db_load() {
/*
Ref<MenuData> data;
data.instance();
Vector<Ref<Page> > PageManager::db_load_pages() {
Vector<Ref<Page> > data;
Ref<QueryBuilder> qb = get_query_builder();
qb->select("id,name,url,sort_order")->from(_table);
qb->select("id,name,url,page_type,deleted")->from(_table);
Ref<QueryResult> res = qb->run();
while (res->next_row()) {
Ref<MenuDataEntry> e;
e.instance();
Ref<Page> p;
p.instance();
e->id = res->get_cell_int(0);
e->name = res->get_cell_str(1);
e->url = res->get_cell_str(2);
e->sort_order = res->get_cell_int(3);
p->id = res->get_cell_int(0);
p->name = res->get_cell_str(1);
p->url = res->get_cell_str(2);
p->page_type = res->get_cell_int(3);
p->deleted = res->get_cell_int(4);
data->entries.push_back(e);
data.push_back(p);
}
data->sort_entries();
return data;
*/
return Vector<Ref<Page> >();
}
void PageManager::db_save(const Ref<Page> &page) {
void PageManager::db_save_page(const Ref<Page> &page) {
Ref<QueryBuilder> qb = get_query_builder();
/*
//only save the page itself
for (int i = 0; i < menu->entries.size(); ++i) {
Ref<MenuDataEntry> entry = menu->entries[i];
if (page->id == 0) {
qb->insert(_table, "name,url,page_type,deleted")->values();
qb->val(page->name);
qb->val(page->url);
qb->val(page->page_type);
qb->val(page->deleted);
qb->cvalues();
qb->select_last_insert_id();
Ref<QueryResult> res = qb->run();
// qb->print();
db_save_menu_entry(entry);
}*/
Ref<Page> e = page;
e->id = res->get_last_insert_rowid();
} else {
qb->update(_table)->set();
qb->setp("name", page->name);
qb->setp("url", page->url);
qb->setp("page_type", page->page_type);
qb->setp("deleted", page->deleted);
qb->cset();
qb->where()->wp("id", page->id);
qb->end_command();
qb->run_query();
// qb->print();
}
}
void PageManager::db_save_page_content(const Ref<PageContent> &entry) {
@ -494,7 +508,8 @@ void PageManager::create_table() {
tb->integer("id")->auto_increment()->next_row();
tb->varchar("name", 60)->not_null()->next_row();
tb->varchar("url", 500)->not_null()->next_row();
tb->integer("sort_order")->not_null()->next_row();
tb->tiny_integer("page_type")->not_null()->defval(0)->next_row();
tb->tiny_integer("deleted")->not_null()->defval(0)->next_row();
tb->primary_key("id");
tb->ccreate_table();
tb->run_query();

View File

@ -42,9 +42,9 @@ public:
//db
virtual Vector<Ref<Page> > db_load();
virtual Vector<Ref<Page> > db_load_pages();
virtual void db_save(const Ref<Page> &page);
virtual void db_save_page(const Ref<Page> &page);
virtual void db_save_page_content(const Ref<PageContent> &entry);
virtual void db_delete_page(const int id);