use of app.Pages in project common by zenlunatics.
the class SiteMenu method init.
// --------------------------------------------------------------------------
@Override
public void init(DBConnection db) {
JDBCTable jdbc_table = new JDBCTable().add(new JDBCColumn("name", Types.VARCHAR, 30)).add(new JDBCColumn("_order_", Types.INTEGER));
db.getTable("menu").dropExtraColumns(jdbc_table, db).createMissingColumns(jdbc_table, db);
jdbc_table = new JDBCTable().add(new JDBCColumn("people")).add(new JDBCColumn("name", Types.VARCHAR, 30)).add(new JDBCColumn("_order_", Types.INTEGER));
db.getTable("menu_items").dropExtraColumns(jdbc_table, db).createMissingColumns(jdbc_table, db);
m_menu = new DBObjects<MenuItem>(new Select("*").from("menu").orderBy("_order_"), MenuItem.class, m_site);
// so that the UpdateHook calls get called on reorder
m_site.addObjects(m_menu);
Pages pages = (Pages) m_site.getModule("Pages");
pages.add(new Page("Other", "Other"), db);
ViewDef view_def = m_site.getViewDef("pages", db);
view_def.addDeleteHook(this).addUpdateHook(this);
}
use of app.Pages in project common by zenlunatics.
the class SiteMenu method write.
// --------------------------------------------------------------------------
public void write(String current_page, Request request) throws IOException {
String context = request.getContext();
NavBar nav_bar = new NavBar(request.writer).setActiveItem(current_page).setStaticTop(true);
@SuppressWarnings("unchecked") DBObjects<MenuItem> user_pages = (DBObjects<MenuItem>) request.getSessionAttribute("menu_items");
if (user_pages == null && request.getUser() != null) {
user_pages = new DBObjects<MenuItem>(new Select("name").from("menu_items").where("people_id=" + request.getUser().getId()).orderBy("_order_"), MenuItem.class, request.site);
request.setSessionAttribute("menu_items", user_pages);
}
List<MenuItem> menu_items = null;
if (user_pages != null)
menu_items = user_pages.getObjects();
if (menu_items == null || menu_items.size() == 0)
menu_items = m_menu.getObjects();
if (m_home_page != null && request.userHasRole("coho")) {
String label = request.site.getSettings().getString("home");
if (label == null)
label = "Home";
nav_bar.setBrand(label, context + "/" + m_home_page);
}
nav_bar.open();
Pages pages = request.site.getPages();
for (MenuItem menu_item : menu_items) {
Page page = pages.getPageByName(menu_item.name);
if (page != null)
if ("Other".equals(page.getURL())) {
boolean first = true;
for (Page p : pages.getPages()) if (p.onMainMenu() && !menu_items.contains(p) && p.canView(request)) {
if (first) {
nav_bar.dropdownOpen(page.getName());
first = false;
}
p.a(nav_bar, request);
}
if (!first)
nav_bar.dropdownClose();
} else if (page.canView(request))
page.a(nav_bar, request);
}
nav_bar.ulOpen(true);
if (request.userHasRole("coho")) {
String label = request.site.getSettings().getString("help");
if (label == null)
label = "Help";
nav_bar.a(label, context + "/Help");
}
request.site.writeUserDropdown(nav_bar, request);
nav_bar.close();
Person user = request.getUser();
if (user != null)
request.setSessionAttribute("current page", current_page);
}