use of web.Table 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 web.Table in project common by zenlunatics.
the class FileManager method writeDirectory.
// --------------------------------------------------------------------------
private void writeDirectory(String path, Request request) throws IOException {
HTMLWriter writer = request.writer;
writer.write("<ul class=\"breadcrumb\" style=\"background-color:#eee\">");
if (path.length() > 0) {
String[] dirs = path.split("/");
String p = "";
writer.write("<li><a href=\"#\" onclick=\"change_dir('')\">/</a></li>");
for (int i = 0; i < dirs.length - 1; i++) {
if (i > 0)
p += "/";
p += dirs[i];
writer.write("<li><a href=\"#\" onclick=\"change_dir('").write(p).write("')\">").write(dirs[i]).write("</a></li>");
}
writer.write("<li>").write(dirs[dirs.length - 1]).write("</li>");
} else
writer.write("<li>/</li>");
writer.write("</ul>");
Table table = new Table(request.writer);
table.tr();
writer.setAttribute("valign", "top");
table.td();
FilePathStringBuilder baseFilePath = getRoot(request);
if (path.length() > 0)
baseFilePath.append(path);
File[] files = new File(baseFilePath.toString()).listFiles();
Arrays.sort(files, new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
return o1.getName().compareToIgnoreCase(o2.getName());
}
});
Table table2 = new Table(writer);
Date date = new Date();
DateFormat df = DateFormat.getDateTimeInstance();
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(2);
for (File file : files) {
String name = file.getName();
if (name.charAt(0) != '.' && !name.equals("CVS") && !name.equals("WEB-INF")) {
table2.tr().td();
if (file.isDirectory()) {
writer.setAttribute("style", "color:black;");
writer.aOnClickOpen("change_dir('" + (path.length() > 0 ? path + "/" + name : name) + "')");
writer.setAttribute("style", "padding-right:3px;margin-bottom:-2px;");
writer.img("folder.png");
writer.write(name);
writer.tagClose();
} else if (name.endsWith(".png") || name.endsWith(".jpg") || name.endsWith(".jpeg") || name.endsWith(".gif") || name.endsWith(".pdf")) {
writer.setAttribute("style", "color:black;");
String src = request.getContext();
if (path.length() > 0)
src += "/" + path.replaceAll("\\\\", "/");
writer.aOnClickOpen("$('file').set('html','<img src="" + src + "/" + name + "" />')");
writer.setAttribute("style", "padding-right:3px;margin-bottom:-2px;");
writer.img("page_white.png");
writer.write(name);
writer.tagClose();
// } else if (name.endsWith(".jsp") || name.endsWith(".htm") || name.endsWith(".html") || name.endsWith(".js") || name.endsWith(".css")) {
// writer.setAttribute("style", "color:black;");
// writer.aOnClickOpen("$('file').replace(context+'/FileManager'+(fm_dir==''?'':'/'+fm_dir)+'?action=edit&file=" + name + "')");
// writer.setAttribute("style", "padding-right:3px;margin-bottom:-2px;");
// writer.img("page_white.png");
// writer.write(name);
// writer.tagClose();
} else {
writer.setAttribute("style", "padding-right:3px;margin-bottom:-2px;");
writer.img("page_white.png");
writer.write(name);
}
date.setTime(file.lastModified());
long length = file.length();
writer.setAttribute("style", "padding:0 20px;text-align:right;");
table2.td(length < 1024 ? Long.toString(length) : length < 1048576 ? nf.format((double) length / 1024) + " k" : length < 1073741824 ? nf.format((double) length / 1048576) + " M" : nf.format((double) length / 1073741824) + " G");
table2.td(df.format(date));
}
}
table2.close();
writer.setAttribute("valign", "top");
writer.setAttribute("id", "file");
table.td();
table.close();
}
use of web.Table in project common by zenlunatics.
the class Pages method writeAdminPane.
// --------------------------------------------------------------------------
@Override
public void writeAdminPane(String[] column_names, boolean show_tasks, boolean show_object, Request request) throws IOException {
HTMLWriter writer = request.writer;
Table table = new Table(writer);
table.tr();
writer.setAttribute("valign", "top");
table.td();
super.writeAdminPane(column_names, show_tasks, show_object, request);
writer.setAttribute("valign", "top");
table.td();
writer.h3("Designs");
request.site.newView("designs", request).writeComponent();
writer.setAttribute("valign", "top");
table.td();
writer.h3("Pages");
request.site.newView("pages", request).writeComponent();
table.close();
}
use of web.Table in project common by zenlunatics.
the class EMailForm method write.
// --------------------------------------------------------------------
public void write(// TODO: can probably remove show_people_list, must always be true
boolean sender_is_user, // TODO: can probably remove show_people_list, must always be true
boolean show_people_list, // TODO: can probably remove show_people_list, must always be true
Request request) throws // TODO: can probably remove show_people_list, must always be true
IOException {
HTMLWriter writer = request.writer;
writer.formOpen("POST", request.getContext() + "/" + m_name);
writer.hiddenInput("cmd", "send");
writer.hiddenInput("list", null);
boolean send_from_local_domain = request.site.getSettings().getString("send from local domain") != null;
if (sender_is_user)
if (send_from_local_domain)
writer.hiddenInput("reply_to", request.db.lookupString("email", m_table, "user_name='" + request.getUser().getUsername() + "'"));
else
writer.hiddenInput("from", request.db.lookupString("email", m_table, "user_name='" + request.getUser().getUsername() + "'"));
Table table = new Table(writer).addStyle("margin", "0 auto").borderSpacing(5).cellPadding(5);
table.tr();
if (show_people_list)
writer.write("<td class=\"db_columnheads\" style=\"vertical-align:top;\">send e-mail to</td>");
rowOpen(table, sender_is_user ? "subject" : send_from_local_domain ? "reply_to" : "from", writer);
writer.setAttribute("style", "margin:0;width:500px;");
writer.textInput(sender_is_user ? "subject" : send_from_local_domain ? "reply_to" : "from", null, null);
table.tr();
if (show_people_list) {
writer.setAttribute("rowspan", sender_is_user ? 3 : 4);
writer.setAttribute("style", "vertical-align:top;");
table.td();
ViewState.setShowCheckBoxes("emailform:" + m_table, "email", "email", request);
request.site.newView("emailform:" + m_table, request).writeComponent();
}
if (!sender_is_user) {
rowOpen(table, "subject", writer);
writer.setAttribute("style", "margin:0;width:500px;");
writer.textInput("subject", null, null);
table.tr();
}
writer.setAttribute("class", "db_columnheads");
writer.setAttribute("style", "vertical-align:top;");
table.td("message");
writer.setAttribute("class", "db_row");
writer.setAttribute("style", "vertical-align:top;height:300px;");
table.td();
writer.setAttribute("style", "height:300px;width:500px;");
writer.textAreaOpen("message", null, null);
writer.tagClose();
writer.js("rich_text('message');");
if (show_people_list && send_from_local_domain) {
table.tr();
rowOpen(table, "individually or group", writer);
writer.radioButton("individually", "send a single email to selected people (allows \"reply all\")", "0", true, null);
writer.radioButton("individually", "send separate email to each person (recipients don't see each other)", "1", false, null);
} else
writer.hiddenInput("individually", "1");
table.tr().td(" ");
writer.setAttribute("style", "text-align:center;vertical-align:top");
table.td();
writer.aButtonOnClick("send", "send_form(this,function(t){eval(t)})");
table.close();
writer.tagClose();
}
use of web.Table in project common by zenlunatics.
the class Admin method writeSchemaDiffForm.
// --------------------------------------------------------------------------
private void writeSchemaDiffForm(Request request) throws IOException {
HTMLWriter writer = request.writer;
Table table = new Table(request.writer);
table.tr().td("url").td();
writer.setAttribute("id", "url");
writer.textInput("url", "60", null);
table.close();
writer.aButtonOnClick("diff", "XHR_get('admin?action=schema_diff&url='+$('url').value,function(t){$(this).getParent().getNext().set('html',t)}.bind(this))");
writer.write("<div></div>");
}
Aggregations