use of db.column.Column 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;
}
use of db.column.Column 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();
}
use of db.column.Column 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();
}
Aggregations