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;
}
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();
}
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;
}
Aggregations