Search in sources :

Example 1 with Schema

use of db.Schema 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 2 with Schema

use of db.Schema in project common by zenlunatics.

the class Remote method doPost.

// --------------------------------------------------------------------------
@Override
protected void doPost(HttpServletRequest http_request, HttpServletResponse http_response) throws ServletException, IOException {
    http_response.setContentType("text/html");
    String action = http_request.getParameter("action");
    Request request = new Request(http_request, http_response);
    if (request.site.allowRemote())
        if (action.equals("column_add"))
            Admin.columnAdd(request);
        else if (action.equals("schema_columns_create"))
            new Schema().addMissingColumns(request.getParameter("table"), request.getParameter("url"), request);
        else if (action.equals("schema_table_create"))
            new Schema().createTable(request.getParameter("table"), request.getParameter("url"), request);
        else if (action.equals("table_drop"))
            Admin.tableDrop(request);
    request.release();
}
Also used : Schema(db.Schema) HttpServletRequest(javax.servlet.http.HttpServletRequest) Request(app.Request)

Example 3 with Schema

use of db.Schema in project common by zenlunatics.

the class Admin method doPost.

// --------------------------------------------------------------------------
@Override
public boolean doPost(Request request) throws IOException {
    if (!request.userIsAdministrator())
        return false;
    if (super.doPost(request))
        return true;
    String action = request.getParameter("action");
    if (action == null && request.getParameter("method") != null) {
        MethodForm.doPost(request);
        return true;
    }
    if (action != null)
        try {
            if (action.equals("backup"))
                request.site.backup();
            else if (action.equals("column_add"))
                columnAdd(request);
            else if (action.equals("column_drop")) {
                String table = request.getParameter("table");
                request.db.dropColumn(table, request.getParameter("column"));
                request.releaseViewDef(table);
            } else if (action.equals("column_index"))
                request.db.createIndex(request.getParameter("table"), request.getParameter("column"));
            else if (action.equals("column_rename")) {
                String table = request.getParameter("table");
                request.db.renameColumn(table, request.getParameter("column"), request.getParameter("newname"));
                request.releaseViewDef(table);
            } else if (action.equals("create_table_def"))
                request.db.getTable(request.getParameter("table_def"), true)._store_(request.db);
            else if (action.equals("create_view"))
                request.site.getViewDef(request.getParameter("view"), request.db)._store_(request.db);
            else if (action.equals("drop_index"))
                request.db.dropIndex(request.getParameter("index"));
            else if (action.equals("drop_not_null"))
                request.db.setNotNull(request.getParameter("table"), request.getParameter("column"), false);
            else if (action.equals("import file"))
                importFile(request);
            else if (action.equals("many_to_many_link_table_create"))
                request.db.createManyToManyLinkTable(request.getParameter("table1"), request.getParameter("table2"));
            else if (action.equals("schema_columns_create"))
                new Schema().addMissingColumns(request.getParameter("table"), request.getParameter("url"), request);
            else if (action.equals("schema_table_create"))
                new Schema().createTable(request.getParameter("table"), request.getParameter("url"), request);
            else if (action.equals("set column default"))
                request.db.setColumnDefault(request.getParameter("table"), request.getParameter("column"), request.getParameter("default"));
            else if (action.equals("set column type"))
                request.db.alterColumnType(request.getParameter("table"), request.getParameter("column"), request.getParameter("type"), request.getParameter("size"));
            else if (action.equals("set_not_null"))
                request.db.setNotNull(request.getParameter("table"), request.getParameter("column"), true);
            else if (action.equals("sql")) {
                String sql = request.getParameter("sql");
                request.setSessionAttribute("sql", sql);
                try {
                    ResultSet rs = request.db.select(sql);
                    writeResultSet(rs, request);
                } catch (RuntimeException e) {
                    request.writer.write(e.toString());
                }
            } else if (action.equals("table_create"))
                request.db.createTable(request.getParameter("table"), request.getParameter("columns"));
            else if (action.equals("table_delete"))
                request.db.delete(request.getParameter("table"), request.getParameter("where"));
            else if (action.equals("table_drop"))
                tableDrop(request);
            else if (action.equals("table_rename")) {
                request.db.renameTable(request.getParameter("table"), request.getParameter("newname"));
                request.writer.write(request.getParameter("newname"));
            } else if (action.equals("toggle_remote")) {
                request.site.setAllowRemote(!request.site.allowRemote());
                request.writer.write("remote access to this site is now " + (request.site.allowRemote() ? "allowed" : "not allowed"));
            } else if (action.equals("truncate table"))
                request.db.truncateTable(request.getParameter("table"));
            return true;
        } catch (SQLException e) {
            request.abort(e);
        }
    return false;
}
Also used : SQLException(java.sql.SQLException) Schema(db.Schema) ResultSet(java.sql.ResultSet)

Aggregations

Schema (db.Schema)3 SQLException (java.sql.SQLException)2 Module (app.Module)1 Request (app.Request)1 JDBCTable (db.JDBCTable)1 BufferedReader (java.io.BufferedReader)1 File (java.io.File)1 FileReader (java.io.FileReader)1 ResultSet (java.sql.ResultSet)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 HttpServletRequest (javax.servlet.http.HttpServletRequest)1 Select (web.Select)1 Table (web.Table)1 Td (web.Td)1