Search in sources :

Example 1 with NavBar

use of web.NavBar in project common by zenlunatics.

the class Admin method writeAdminPage.

// --------------------------------------------------------------------------
// private void
// writeAddModuleForm(Request request)
// {
// ClassFinder finder = new ClassFinder();
// finder.add(new File(new FilePathStringBuilder(System.getProperty("catalina.base")).append("shared").append("lib").append("calendar.jar").toString()));
// finder.add(new File(request.getBaseFilePath().append("WEB-INF").append("lib").toString()));
// ArrayList<ClassInfo> found_classes = new ArrayList<ClassInfo>();
// finder.findClasses(found_classes);
// for (ClassInfo classInfo : found_classes) {
// String[] interfaces = classInfo.getInterfaces();
// System.out.println ("Found " + classInfo.getClassName() + interfaces);
// }
// }
// --------------------------------------------------------------------------
private void writeAdminPage(Request request) throws IOException {
    HTMLWriter writer = request.writer;
    request.site.newHead(request).styleSheet("/codemirror-3.21/lib/codemirror").styleSheet("/codemirror-3.21/css/codemirror-ui").script(request.getContext() + "/codemirror-3.21/lib/codemirror").script(request.getContext() + "/codemirror-3.21/mode/xml/xml").script(request.getContext() + "/codemirror-3.21/js/codemirror-ui").script(request.getContext() + "/codemirror-3.21/mode/javascript/javascript").script(request.getContext() + "/codemirror-3.21/mode/css/css").script("quick_edit").styleSheet("choices.min").script("choices.min").close();
    NavBar nav_bar = new NavBar(request.writer).setStaticTop(true).open();
    nav_bar.aOnClick("Home", "document.location='" + request.getContext() + "/" + request.site.getHomePage() + "'");
    nav_bar.aOnClick("Backup", "XHR_post('admin','action=backup',function(){dialog_alert('','done')})");
    nav_bar.aOnClick("File Manager", "new_tab('File Manager','get file manager')");
    nav_bar.aOnClick("Import", "new_tab('Import','import file')");
    if (request.site.getSettings().getString("log path") != null)
        nav_bar.aOnClick("Logs", "new_tab('Logs','get logs')");
    nav_bar.dropdownOpen("Remote");
    nav_bar.aOnClick((request.site.allowRemote() ? "don't allow" : "allow") + " remote access to this site", "XHR_post('admin','action=toggle_remote',function(r){dialog_alert('',r.text)})");
    nav_bar.aOnClick("drop all Id map tables", "XHR_post('admin','method=dropAllIdMapTables&class=Admin',function(r){dialog_alert('',r.text)})");
    nav_bar.aOnClick("import table", "new_tab('Import Table','get_method_form&class=Admin&method=importTable')");
    nav_bar.aOnClick("import views", "new_tab('Import Views','get_method_form&class=Admin&method=importViews')");
    nav_bar.aOnClick("export views", "new_tab('Export Views','get_method_form&class=Admin&method=exportViews')");
    nav_bar.aOnClick("schema diff", "new_tab('Schema Diff','get_schema_diff_form')");
    nav_bar.dropdownClose();
    nav_bar.aOnClick("Search", "new_tab('Search','search')");
    nav_bar.aOnClick("Settings", "new_tab('Settings','edit settings')");
    nav_bar.aOnClick("SQL", "new_tab('SQL','get sql form')");
    nav_bar.aOnClick("State", "new_tab('State','get state')");
    nav_bar.ulOpen(true);
    request.site.writeUserDropdown(nav_bar, request);
    nav_bar.close();
    writer.write("<table style=\"width:100%\"><tr><td id=\"navlist\" valign=\"top\" style=\"width:10%\">");
    writeAccordion(request);
    writer.write("</td><td valign=\"top\">");
    Tabs tabs = new Tabs("admin", writer).setShowClose(true);
    tabs.open();
    tabs.close();
    writer.write("</td></tr></table>");
    writer.scriptOpen();
    writer.jsFunction("column_drop", "table,column,f", "dialog_confirm('Drop column '+column+'?',function(){XHR_post('admin','action=column_drop&table='+table+'&column='+column,f)})");
    writer.jsFunction("column_rename", "table,column,f", "var new_name=prompt('enter new name', column);" + "if(new_name)" + "XHR_post('admin','action=column_rename&table='+table+'&column='+column+'&newname='+new_name,f)");
    writer.jsFunction("create_table_def", null, "var table=prompt('enter table name');" + "if(table)" + "XHR_post('admin','action=create_table_def&table_def='+table,function(){get_nav_list('table defs')});");
    writer.jsFunction("create_view", null, "var view=prompt('enter view name');" + "if(view)" + "XHR_post('admin','action=create_view&view='+view,function(){get_nav_list('views')})");
    writer.jsFunction("get_nav_list", "section", "$('navlist').replace('admin?action=get_nav_list&display='+section);");
    writer.write("var num_tabs=1;");
    writer.jsFunction("new_tab", "label,action", "var tabs=$('" + tabs.getID() + "').tabs;" + "var tab=tabs.addTab((num_tabs++)+':'+label);" + "tab.panel.replace('admin?action='+action,{on_complete:function(){tabs.show(tab);}})");
    writer.jsFunction("table_delete", "table", "var where=prompt('delete where');" + "if(where)" + "XHR_post('admin','action=table_delete&table='+table+'&where='+encodeURIComponent(where),function(){dialog_alert('','done')})");
    writer.jsFunction("table_drop", "table", "dialog_confirm('Drop table '+table+'?',function(){XHR_post('admin','action=table_drop&table='+table,function(){$('admin tabs').tabs.closeTab();get_nav_list('tables');})})");
    writer.jsFunction("truncate_table", "table", "dialog_confirm('Delete all rows from table '+table+'?',function(){XHR_post('admin','action=truncate table&table='+table,function(){dialog_alert('','done')})})");
    writer.jsFunction("table_rename", "table", "var new_name=prompt('enter new name', table);" + "if(new_name)" + "XHR_post('admin','action=table_rename&table='+table+'&newname='+new_name,function(){dialog_alert('','table renamed');get_nav_list('tables')})");
    writer.scriptClose();
    request.close();
}
Also used : HTMLWriter(web.HTMLWriter) NavBar(web.NavBar) Tabs(web.Tabs)

Example 2 with NavBar

use of web.NavBar 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);
}
Also used : Pages(app.Pages) DBObjects(db.DBObjects) NavBar(web.NavBar) Select(db.Select) Page(app.Page) Person(app.Person)

Example 3 with NavBar

use of web.NavBar in project common by zenlunatics.

the class Admin method writeTablePane.

// --------------------------------------------------------------------------
private void writeTablePane(String table, Request request) throws IOException, SQLException {
    HTMLWriter writer = request.writer;
    writer.h3(table);
    NavBar nav_bar = new NavBar(writer).setInverse(true).open();
    nav_bar.aOnClick("add column", "new Dialog({url:context+'/admin?action=get_column_form&table=" + table + "',title:'Add Column',owner:this.ancestorWithClass('tab-pane'),ok:true,cancel:true})");
    nav_bar.aOnClick("delete where...", "table_delete('" + table + "')");
    nav_bar.aOnClick("delete all rows", "truncate_table('" + table + "')");
    nav_bar.aOnClick("drop", "table_drop('" + table + "')");
    int num_rows = request.db.countRows(table, null);
    nav_bar.aOnClick("edit " + num_rows + (num_rows == 1 ? " row" : " rows"), "$(this).ancestorWithClass('tab-pane').getLast().replace('admin?action=edit_table&table=" + table + "')");
    nav_bar.aOnClick("export", "$(this).ancestorWithClass('tab-pane').getLast().replace('admin?action=get_method_form&class=Admin&method=exportCSV&table=" + table + "')");
    nav_bar.aOnClick("import", "$(this).ancestorWithClass('tab-pane').getLast().replace('admin?action=get_method_form&class=Admin&method=importCSV&table=" + table + "')");
    nav_bar.aOnClick("rename", "table_rename('" + table + "')");
    nav_bar.dropdownOpen("generate");
    nav_bar.aOnClick("JDBCTable", "$(this).ancestorWithClass('tab-pane').getLast().replace('admin?action=generate jdbctable&table=" + table + "')");
    nav_bar.aOnClick("SQL", "$(this).ancestorWithClass('tab-pane').getLast().replace('admin?action=generate sql&table=" + table + "')");
    nav_bar.dropdownClose();
    nav_bar.close();
    writer.h4("columns");
    writeColumns(table, request);
    writer.h4("indexes");
    writeIndexes(request.db, table, writer);
    List<String[]> referencing_tables = request.db.getForeignKeys(table);
    if (referencing_tables.size() > 0) {
        writer.write("<p><b>referenced by: </b>");
        for (int i = 0; i < referencing_tables.size(); i++) {
            if (i > 0)
                writer.write(", ");
            writer.write(referencing_tables.get(i)[0] + '(' + referencing_tables.get(i)[1] + ')');
        }
        writer.write("</p>");
    }
    request.writer.write("<div></div>");
}
Also used : HTMLWriter(web.HTMLWriter) NavBar(web.NavBar)

Aggregations

NavBar (web.NavBar)3 HTMLWriter (web.HTMLWriter)2 Page (app.Page)1 Pages (app.Pages)1 Person (app.Person)1 DBObjects (db.DBObjects)1 Select (db.Select)1 Tabs (web.Tabs)1