Search in sources :

Example 1 with Module

use of app.Module in project common by zenlunatics.

the class FiveMinuteThread method run.

// --------------------------------------------------------------------------
@Override
public void run() {
    // m_site.log("Starting FiveMinuteThread");
    while (true) {
        try {
            MailLists mail_lists = (MailLists) m_site.getModule("MailLists");
            if (mail_lists != null)
                mail_lists.checkForMail();
            LocalDateTime date_time = m_site.newLocalDateTime();
            DBConnection db = new DBConnection(m_site);
            for (Module module : m_site.getModules(EventProvider.class)) if (((EventProvider) module).supportsReminders())
                ((EventProvider) module).sendReminders(date_time, false, m_site, db);
            db.close();
        } catch (RuntimeException e) {
            m_site.log(e);
        }
        try {
            // 5 minutes
            Thread.sleep(5 * 60 * 1000);
        } catch (InterruptedException e) {
            System.out.println("FiveMinuteThread sleep exception");
            System.out.println(e.toString());
            m_site = null;
            return;
        }
    }
}
Also used : LocalDateTime(java.time.LocalDateTime) DBConnection(db.DBConnection) EventProvider(calendar.EventProvider) Module(app.Module)

Example 2 with Module

use of app.Module in project common by zenlunatics.

the class Admin method doGet.

// --------------------------------------------------------------------------
@Override
public boolean doGet(Request request) throws IOException {
    if (!request.userIsAdministrator())
        return false;
    String action = request.getParameter("action");
    if (action != null)
        try {
            if (action.equals("edit settings"))
                request.site.newView("_settings_", request).writeComponent();
            else if (action.equals("edit_table"))
                request.site.newView("admin__" + request.getParameter("table"), request).writeComponent();
            else if (action.equals("exportCSV"))
                exportCSV(request.getParameter("table"), request.getParameter("filename"), request);
            else if (action.equals("generate jdbctable")) {
                request.writer.write("<p><b>JDBCTable</b></p>");
                request.writer.write(request.db.getTable(request.getParameter("table")).getCode());
            } else if (action.equals("generate sql")) {
                request.writer.write("<p><b>SQL</b></p>");
                request.writer.write(request.db.getTable(request.getParameter("table")).getSQL());
            } else // writeAddModuleForm(request);
            if (action.equals("get_column_form")) {
                String table = request.getParameter("table");
                String column = request.getParameter("column");
                writeColumnForm(table, column == null ? null : request.db.getTable(table).getColumn(column), request);
            } else if (action.equals("get default form")) {
                String table = request.getParameter("table");
                writeDefaultForm(table, request.db.getTable(table).getColumn(request.getParameter("column")), request);
            } else if (action.equals("get file manager"))
                ((FileManager) request.site.getModule("FileManager")).write(request);
            else if (action.equals("get log")) {
                request.writer.write("<pre>");
                BufferedReader br = new BufferedReader(new FileReader(request.site.getSettings().getString("log path") + "/" + request.getParameter("log")));
                String l = br.readLine();
                while (l != null) {
                    request.writer.write(l).write("\n");
                    l = br.readLine();
                }
                br.close();
                request.writer.write("</pre>");
            } else if (action.equals("get logs")) {
                request.writer.write("<table border=\"1\"><tr><td valign=\"top\">");
                String[] logs = new File(request.site.getSettings().getString("log path")).list();
                if (logs == null || logs.length == 0)
                    request.writer.write("no logs found in " + request.site.getSettings().getString("log path"));
                else {
                    for (String log : logs) {
                        request.writer.aOnClick(log, "$('log').replace('admin?action=get log&log=" + log + "')");
                        request.writer.br();
                    }
                    request.writer.write("</td><td id=\"log\" valign=\"top\"></td></tr></table>");
                }
            } else if (action.equals("get_many_to_many_link_table_create_form"))
                writeManyToManyLinkTableCreateForm(request);
            else if (action.equals("get_method_form")) {
                String class_name = request.getParameter("class");
                String site_class = request.site.getClass().getName();
                if (class_name == null)
                    new MethodForm(request.site.getModule(request.getParameter("module"))).write(request.getParameter("method"), request);
                else if (class_name.equals("Admin"))
                    new MethodForm(Admin.class).write(request.getParameter("method"), request);
                else if (class_name.equals(site_class.substring(site_class.indexOf('.') + 1)))
                    new MethodForm(request.site.getClass()).write(request.getParameter("method"), request);
                else {
                    Class<?>[] classes = request.site.getClasses();
                    for (Class<?> c : classes) if (c.getSimpleName().equals(class_name)) {
                        new MethodForm(c).write(request.getParameter("method"), request);
                        break;
                    }
                }
            } else if (action.equals("get_module")) {
                String module_name = request.getParameter("module");
                Module module = request.site.getModule(module_name);
                if (module == null)
                    request.writer.write("module " + module_name + " not found");
                module.writeAdminPane(null, true, true, request);
            } else if (action.equals("get_object"))
                request.site.newView(request.getParameter("object"), request).writeComponent();
            else if (action.equals("get_nav_list"))
                writeAccordion(request);
            else if (action.equals("get_schema_diff_form"))
                writeSchemaDiffForm(request);
            else if (action.equals("get_session_attributes"))
                writeSessionAttributes(request);
            else if (action.equals("get sql form"))
                writeSQLForm(request);
            else if (action.equals("get state")) {
                Table table = new Table(request.writer).addClass("table").addStyle("width", "auto");
                Td td = new Td(request.writer).addStyle("vertical-align", "top");
                table.td(td);
                request.writer.h3("Tomcat");
                writeTomcatState(request);
                table.td(td);
                request.writer.h3("Session Attributes");
                writeSessionAttributes(request);
                table.td(td);
                request.writer.h3("Threads");
                writeThreads(request);
                table.td(td);
                request.writer.h3("ViewDef Cache");
                componentOpen(null, request);
                writeViewDefCache(request);
                table.close();
            } else if (action.equals("get_table"))
                writeTablePane(request.getParameter("table"), request);
            else if (action.equals("get_table_create_form"))
                writeTableCreateForm(request);
            else if (action.equals("get_table_def")) {
                ViewState.setShowReturnLink("_tables_", false, request);
                request.site.newView("_tables_", request).writeEditForm();
            } else if (action.equals("get_view")) {
                ViewState.setShowReturnLink("_views_", false, request);
                request.site.newView("_views_", request).writeEditForm();
            } else if (action.equals("get_view_def_cache"))
                writeViewDefCache(request);
            else if (action.equals("schema_diff"))
                new Schema().diff(request.getParameter("url"), request);
            else if (action.equals("search"))
                writeSearchPanel(request);
            else if (action.equals("sql")) {
                List<String> tables = request.db.readValues(new db.Select("table_name").from("information_schema.tables").where("table_name ilike '" + request.getParameter("tables") + "'"));
                for (String table : tables) {
                    request.writer.h4(table);
                    writeResultSet(request.db.select(new db.Select(request.getParameter("columns")).from(table).where(request.getParameter("where"))), request);
                }
            } else if (action.equals("tables with column")) {
                String column = request.getParameter("column");
                String where = request.getParameter("where");
                List<String> tables = request.db.findTablesWithColumn(column);
                if (where.length() > 0) {
                    request.writer.h4("Tables with column " + column + " where " + where);
                    for (String table : tables) {
                        int num_rows = request.db.countRows(table, column + where);
                        if (num_rows > 0)
                            request.writer.write(table).write("(").write(num_rows).write(")").br();
                    }
                } else {
                    request.writer.h4("Tables with column " + column);
                    for (String table : tables) request.writer.write(table).br();
                }
            } else {
                request.writer.write("unknown action: " + action);
                return false;
            }
            return true;
        } catch (SQLException e) {
            request.abort(e);
        }
    writeAdminPage(request);
    return true;
}
Also used : Table(web.Table) JDBCTable(db.JDBCTable) SQLException(java.sql.SQLException) Schema(db.Schema) Td(web.Td) BufferedReader(java.io.BufferedReader) Select(web.Select) FileReader(java.io.FileReader) List(java.util.List) ArrayList(java.util.ArrayList) Module(app.Module) File(java.io.File)

Example 3 with Module

use of app.Module in project common by zenlunatics.

the class Admin method writeAccordion.

// --------------------------------------------------------------------------
private void writeAccordion(Request request) throws IOException {
    Accordion accordion = new Accordion(request.writer);
    accordion.open();
    Collection<Module> modules_list = request.site.getModules();
    accordion.heading("modules");
    // accordion.aOnClick("- add module -", "new_tab('Add Module','get_add_module_form')");
    for (Module module : modules_list) if (module.showOnAdminPage())
        accordion.aOnClick(module.getName(), "new_tab('" + HTMLWriter.escapeJSString(module.getName()) + "','get_module&module=" + HTMLWriter.escapeJSString(module.getName()) + "')");
    Collection<DBObjects<?>> objects_list = request.site.getAllObjects();
    if (objects_list.size() > 0) {
        accordion.heading("objects");
        for (DBObjects<?> objects : objects_list) accordion.aOnClick(objects.getName(), "new_tab('" + HTMLWriter.escapeJSString(objects.getName()) + "','get_object&object=" + HTMLWriter.escapeJSString(objects.getName()) + "')");
    }
    accordion.heading("tables");
    accordion.aOnClick("- create table -", "new_tab('Create Table','get_table_create_form')");
    accordion.aOnClick("- create many to many link table -", "new_tab('Create Many To Many Link Table','get_many_to_many_link_table_create_form')");
    String[] tables = request.db.getTableNames(false);
    if (tables != null)
        for (String table : tables) accordion.aOnClick(table, "new_tab('" + table + "','get_table&table=" + table + "')");
    accordion.heading("table defs");
    accordion.aOnClick("- create table def -", "create_table_def()");
    View table_defs = request.site.newView("_tables_", request);
    table_defs.select();
    if (table_defs.data().isBeforeFirst()) {
        table_defs.setColumn(new Column("name").setValueRenderer(new LinkValueRenderer().setHrefColumn("id").setTextColumn("name").setOnClick("new_tab('<%name%>','get_table_def&db_key_value=", "')"), false));
        writeRows(accordion, table_defs, new String[] { "name" }, request.writer);
    }
    accordion.heading("views");
    accordion.aOnClick("- create view -", "create_view()");
    View views = request.site.newView("_views_", request);
    views.select();
    if (views.data().isBeforeFirst()) {
        views.setColumn(new Column("name").setValueRenderer(new LinkValueRenderer().setHrefColumn("id").setTextColumn("name").setOnClick("new_tab('<%name%>','get_view&db_key_value=", "')"), false));
        writeRows(accordion, views, new String[] { "name" }, request.writer);
    }
    writeAccordionItems(accordion, request.site.getDisplayName(), request.site.getClass());
    Class<?>[] classes = request.site.getClasses();
    if (classes != null)
        for (Class<?> c : classes) writeAccordionItems(accordion, c.getSimpleName() + " tasks", c);
    String display = request.getParameter("display");
    if (display != null)
        if (Character.isDigit(display.charAt(0)))
            accordion.setActiveGroup(Integer.parseInt(display));
        else
            accordion.setActiveGroup(display);
    accordion.close();
}
Also used : LinkValueRenderer(db.LinkValueRenderer) View(db.View) DBObjects(db.DBObjects) Accordion(web.Accordion) JDBCColumn(db.JDBCColumn) LookupColumn(db.column.LookupColumn) Column(db.column.Column) Module(app.Module)

Aggregations

Module (app.Module)3 EventProvider (calendar.EventProvider)1 DBConnection (db.DBConnection)1 DBObjects (db.DBObjects)1 JDBCColumn (db.JDBCColumn)1 JDBCTable (db.JDBCTable)1 LinkValueRenderer (db.LinkValueRenderer)1 Schema (db.Schema)1 View (db.View)1 Column (db.column.Column)1 LookupColumn (db.column.LookupColumn)1 BufferedReader (java.io.BufferedReader)1 File (java.io.File)1 FileReader (java.io.FileReader)1 SQLException (java.sql.SQLException)1 LocalDateTime (java.time.LocalDateTime)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 Accordion (web.Accordion)1 Select (web.Select)1