Search in sources :

Example 6 with Table

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;
}
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 7 with Table

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=&quot;" + src + "/" + name + "&quot; />')");
                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();
}
Also used : HTMLWriter(web.HTMLWriter) Table(web.Table) Date(java.util.Date) DateFormat(java.text.DateFormat) FilePathStringBuilder(web.FilePathStringBuilder) File(java.io.File) NumberFormat(java.text.NumberFormat)

Example 8 with Table

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();
}
Also used : HTMLWriter(web.HTMLWriter) Table(web.Table) JDBCTable(db.JDBCTable)

Example 9 with Table

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("&nbsp;");
    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();
}
Also used : HTMLWriter(web.HTMLWriter) Table(web.Table)

Example 10 with Table

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>");
}
Also used : HTMLWriter(web.HTMLWriter) Table(web.Table) JDBCTable(db.JDBCTable)

Aggregations

Table (web.Table)16 JDBCTable (db.JDBCTable)12 HTMLWriter (web.HTMLWriter)12 BufferedReader (java.io.BufferedReader)2 File (java.io.File)2 FileReader (java.io.FileReader)2 SQLException (java.sql.SQLException)2 ArrayList (java.util.ArrayList)2 Calendar (java.util.Calendar)2 List (java.util.List)2 Module (app.Module)1 DBObject (db.DBObject)1 Form (db.Form)1 NameValuePairs (db.NameValuePairs)1 RowsSelect (db.RowsSelect)1 Schema (db.Schema)1 Select (db.Select)1 ViewDef (db.ViewDef)1 ResultSet (java.sql.ResultSet)1 ResultSetMetaData (java.sql.ResultSetMetaData)1