Search in sources :

Example 11 with View

use of db.View in project common by zenlunatics.

the class Meetings method _newViewDef.

// ------------------------------------------------------------------------
@Override
public ViewDef _newViewDef(String name, Site site) {
    if (name.equals("meetings")) {
        ViewDef view_def = new ViewDef(name) {

            @Override
            public View newView(Request request) {
                View view = new View(this, request);
                if (request.getParameter("db_mode") == View.Mode.EDIT_FORM.toString())
                    if (request.db.lookupInt("_owner_", "meetings", Integer.parseInt(view.getKeyValue()), -1) != request.getUser().getId())
                        view.setColumn(new Column("title").setIsReadOnly(true));
                return view;
            }
        }.addInsertHook(this).addUpdateHook(this).setAccessPolicy(new RecordOwnerAccessPolicy() {

            @Override
            public boolean canUpdateRow(String from, int id, Request request) {
                return true;
            }

            @Override
            public boolean showEditButtonForRow(View view, Request request) {
                return true;
            }
        }.add().delete().edit()).setRecordName("Meeting").setColumnNamesForm(new String[] { "title", "days", "_owner_" }).setColumnNamesTable(new String[] { "title" }).setColumn(new Column("days").setInputRenderer(new MeetingInputRenderer()).setLabelRenderer(new AddButtonLabelRenderer("meeting.addDay()"))).setColumn(new Column("_owner_").setDefaultToUserId().setIsHidden(true)).setColumn(new Column("title").setIsRequired(true)).addRelationshipDef(new OneToManyLink("meeting_people", "people_id"));
        view_def.getViewTheme().setEditText("set times");
        return view_def;
    }
    if (name.equals("meeting_people"))
        return new ViewDef(name).setDialogModes(View.Mode.ADD_FORM).setRecordName("Person").setColumnNamesTable(new String[] { "color", "people_id" }).setColumn(new Column("color").setDisplayName("").setValueRenderer(new MeetingColorRenderer(), false)).setColumn(new Column("days").setInputRenderer(new MeetingInputRenderer()).setLabelRenderer(new AddButtonLabelRenderer("addDay()"))).setColumn(new LookupColumn("people_id", "people", "first,last").setDisplayName("Person"));
    return null;
}
Also used : OneToManyLink(db.OneToManyLink) Request(app.Request) ViewDef(db.ViewDef) View(db.View) RecordOwnerAccessPolicy(db.access.RecordOwnerAccessPolicy) LookupColumn(db.column.LookupColumn) LookupColumn(db.column.LookupColumn) Column(db.column.Column) AddButtonLabelRenderer(db.AddButtonLabelRenderer)

Example 12 with View

use of db.View in project common by zenlunatics.

the class Meetings method write.

// ------------------------------------------------------------------------
public void write(Request request) throws IOException {
    View view = request.site.newView("meetings", request);
    if (view.getMode() == View.Mode.EDIT_FORM) {
        String id = view.getKeyValue();
        int user_id = request.getUser().getId();
        if (request.getParameter("db_relationship") != null || request.db.lookupInt("_owner_", "meetings", Integer.parseInt(id), -1) == user_id)
            view.writeComponent();
        else if (request.db.rowExists("meeting_people", "meetings_id=" + id + " AND people_id=" + user_id)) {
            View people = request.site.newView("meeting_people", request);
            people.setColumn(new Column("meetings_id").setDefaultValue(id).setIsHidden(true));
            people.setColumn(new Column("people_id").setDefaultToUserId().setIsHidden(true));
            people.setWhere("meetings_id=" + id + " AND people_id=" + user_id);
            people.writeEditForm();
        } else {
            View people = request.site.newView("meeting_people", request);
            people.setColumn(new Column("meetings_id").setDefaultValue(id).setIsHidden(true));
            people.setColumn(new Column("people_id").setDefaultToUserId().setIsHidden(true));
            people.writeAddForm();
        }
    } else
        view.writeComponent();
}
Also used : LookupColumn(db.column.LookupColumn) Column(db.column.Column) View(db.View)

Example 13 with View

use of db.View in project common by zenlunatics.

the class Minutes method doGet.

// --------------------------------------------------------------------------
@Override
public boolean doGet(Request request) throws IOException {
    if (super.doGet(request))
        return true;
    int minutes_id = request.getPathSegmentInt(1);
    HTMLWriter writer = request.writer;
    try {
        ResultSet rs = request.db.select(new Select("text").from(m_table).whereIdEquals(minutes_id));
        if (rs.next()) {
            String text = rs.getString(1);
            if (text != null)
                writer.write("<div id=\"c_\">").writeWithLinks(text).br().buttonIconOnClick("print", "open_print_window(this)").write("</div>");
        }
        rs.getStatement().close();
    } catch (SQLException e) {
        throw new RuntimeException(e);
    }
    View attachments = new View(request.site.getViewDef(m_table + "_attachments", request.db), request);
    ColumnBase<?> column = attachments.getColumn("filename");
    attachments.select(new Select("*").from(m_table + "_attachments").where(m_table + "_id=" + minutes_id));
    if (attachments.data().isBeforeFirst()) {
        writer.hr().h4("Attachments");
        while (attachments.next()) {
            column.writeValue(attachments, null, request);
            writer.br();
        }
        writer.br();
    }
    Comments.writeComments(m_table, minutes_id, request);
    return true;
}
Also used : HTMLWriter(web.HTMLWriter) SQLException(java.sql.SQLException) ResultSet(java.sql.ResultSet) Select(db.Select) View(db.View)

Example 14 with View

use of db.View 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)

Example 15 with View

use of db.View in project common by zenlunatics.

the class EventProvider method writeEventForm.

// --------------------------------------------------------------------------
void writeEventForm(Request request) throws IOException {
    if (m_support_reminders && !request.userIsAdministrator())
        ViewState.setBaseFilter(m_name + "_reminders", "_owner_=" + request.getUser().getId(), request);
    View view = request.site.newView(m_name, request);
    // do this before checking showEditButtonForRow so we get the event selected
    Form form = view.newEditForm();
    if (view.getMode() == View.Mode.EDIT_FORM && m_access_policy != null && !request.userIsAdmin() && !m_access_policy.showEditButtonForRow(view, request))
        form.setMode(View.Mode.READ_ONLY_FORM);
    form.write();
}
Also used : Form(db.Form) View(db.View)

Aggregations

View (db.View)15 Column (db.column.Column)7 LookupColumn (db.column.LookupColumn)7 Request (app.Request)5 Select (db.Select)5 ViewDef (db.ViewDef)5 HTMLWriter (web.HTMLWriter)5 OneToMany (db.OneToMany)4 SQLException (java.sql.SQLException)4 ArrayList (java.util.ArrayList)4 JDBCColumn (db.JDBCColumn)3 RecordOwnerAccessPolicy (db.access.RecordOwnerAccessPolicy)3 IOException (java.io.IOException)3 ResultSet (java.sql.ResultSet)3 Form (db.Form)2 FormHook (db.FormHook)2 LinkValueRenderer (db.LinkValueRenderer)2 ManyToMany (db.ManyToMany)2 NameValuePairs (db.NameValuePairs)2 SelectRenderer (db.SelectRenderer)2