diff --git a/app/page_manager/page.cpp b/app/page_manager/page.cpp index 036501a..effd1d1 100644 --- a/app/page_manager/page.cpp +++ b/app/page_manager/page.cpp @@ -4,9 +4,8 @@ Page::Page() : Resource() { - rank_id = 0; - sort_order = 0; - permissions = 0; + page_type = 0; + deleted = 0; } Page::~Page() { diff --git a/app/page_manager/page.h b/app/page_manager/page.h index 16380e0..45fcc08 100644 --- a/app/page_manager/page.h +++ b/app/page_manager/page.h @@ -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(); diff --git a/app/page_manager/page_manager.cpp b/app/page_manager/page_manager.cpp index 3ebf18d..1054a59 100644 --- a/app/page_manager/page_manager.cpp +++ b/app/page_manager/page_manager.cpp @@ -409,45 +409,59 @@ void PageManager::admin_render_menuentry_list(Request *request) { // DB -Vector > PageManager::db_load() { - /* - Ref data; - data.instance(); +Vector > PageManager::db_load_pages() { + Vector > data; Ref qb = get_query_builder(); - qb->select("id,name,url,sort_order")->from(_table); + qb->select("id,name,url,page_type,deleted")->from(_table); Ref res = qb->run(); while (res->next_row()) { - Ref e; - e.instance(); + Ref 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 >(); } -void PageManager::db_save(const Ref &page) { +void PageManager::db_save_page(const Ref &page) { + Ref qb = get_query_builder(); - /* - //only save the page itself - for (int i = 0; i < menu->entries.size(); ++i) { - Ref 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 res = qb->run(); + // qb->print(); - db_save_menu_entry(entry); - }*/ + Ref 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 &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(); diff --git a/app/page_manager/page_manager.h b/app/page_manager/page_manager.h index f26f223..d536471 100644 --- a/app/page_manager/page_manager.h +++ b/app/page_manager/page_manager.h @@ -42,9 +42,9 @@ public: //db - virtual Vector > db_load(); + virtual Vector > db_load_pages(); - virtual void db_save(const Ref &page); + virtual void db_save_page(const Ref &page); virtual void db_save_page_content(const Ref &entry); virtual void db_delete_page(const int id);