use of db.Select in project common by zenlunatics.
the class ColumnBase method _new_view_def_.
// --------------------------------------------------------------------------
public static ViewDef _new_view_def_(String name) {
if (name.equals("_columns_")) {
ViewDef view_def = new ViewDef(name) {
@Override
public boolean beforeDelete(StringBuilder where, Request p) {
p.releaseViewDef(p.db.lookupString(new Select("name").from("_views_").whereIdEquals(p.db.lookupInt(new Select("_views__id").from("_columns_").where(where.toString()), 0))));
return true;
}
@Override
public boolean beforeInsert(NameValuePairs name_value_pairs, Request p) {
String table = p.getParameter("db_table");
if (table != null)
name_value_pairs.set("type_args", table + "\t" + p.getParameter("db_column"));
return true;
}
@Override
public boolean beforeUpdate(int id, NameValuePairs name_value_pairs, Map<String, Object> previous_values, Request p) {
String table = p.getParameter("db_table");
if (table != null)
name_value_pairs.set("type_args", table + "\t" + p.getParameter("db_column"));
p.releaseViewDef(p.db.lookupString(new Select("name").from("_views_").whereIdEquals(p.db.lookupInt(new Select("_views__id").from("_columns_").whereIdEquals(id), 0))));
return true;
}
};
view_def.setAllowQuickEdit(true);
view_def.setDefaultOrderBy("name");
List<String> names = DBObject.getFieldNames(ColumnBase.class);
Collections.sort(names);
view_def.setColumnNamesForm(names.toArray(new String[names.size()]));
view_def.setColumnNamesTable(new String[] { "type", "name" });
view_def.setRecordName("Column");
view_def.setColumn(new Column("name").setIsRequired(true));
view_def.setColumn(new Column("type_args").setIsHidden(true));
return view_def;
}
return null;
}
use of db.Select in project common by zenlunatics.
the class ColumnBase method setValue.
// --------------------------------------------------------------------------
public void setValue(String value, NameValuePairs name_value_pairs, Mode mode, Request request) throws Exception {
if (m_encryption_column != null)
if (mode == View.Mode.EDIT_FORM)
name_value_pairs.set(m_name, Util.scramble(value, request.db.lookupInt(new Select(m_encryption_column).from(request.getParameter("db_view_def")).whereIdEquals(request.getInt("db_key_value", 0)), 0)));
else
name_value_pairs.set(m_name, Util.scramble(value, request.getInt(m_encryption_column, 0)));
else
name_value_pairs.set(m_name, value);
}
use of db.Select 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;
}
use of db.Select in project common by zenlunatics.
the class PicturesNewsItem method masonry.
// --------------------------------------------------------------------------
private void masonry(int num_columns) throws IOException {
int[] y = new int[num_columns];
int col_width = 470 / num_columns;
StringBuilder where = new StringBuilder("id IN (");
int num_pictures = m_item_ids.size();
for (int i = 0; i < num_pictures; i++) {
if (i > 0)
where.append(',');
where.append(m_item_ids.get(i));
}
where.append(')');
ArrayList<String> files = new ArrayList<String>();
ArrayList<String> ids = new ArrayList<String>();
ArrayList<String> titles = new ArrayList<String>();
StringBuilder images = new StringBuilder();
ResultSet rs = m_request.db.select(new Select("id,file,width,height,caption,_owner_").from(m_provider.getTable()).where(where.toString()));
try {
while (rs.next()) {
String id = rs.getString(1);
ids.add(id);
titles.add(Pictures.buildTitle(id, rs.getString(5), m_request.site.lookupName(rs.getInt(6), m_request.db), null).replace("\"", """));
int col = lowest(y);
int width = rs.getInt(3);
int height = rs.getInt(4);
int new_width = col_width - 2;
int new_height;
if (new_width > width) {
new_width = width;
new_height = height;
} else {
double ratio = (double) new_width / width;
new_height = (int) (height * ratio);
}
images.append("<img style=\"cursor:pointer;position:absolute;width:");
images.append(new_width);
images.append("px;height:");
images.append(new_height);
images.append("px;left:");
images.append(col * col_width);
images.append("px;top:");
images.append(y[col] + 2);
images.append("px;\" src=\"");
images.append(m_request.getContext());
images.append("/");
images.append(m_provider.getTable());
images.append("/thumbs/");
String file = rs.getString(2);
files.add(file);
images.append(file);
images.append("\" />");
y[col] += new_height + 2;
}
rs.getStatement().close();
} catch (SQLException e) {
}
int height = 0;
for (int h : y) if (h > height)
height = h;
m_request.writer.write("<div onclick=\"if(event.target!=this){Gallery.setFiles(").jsArray(files).write(',').jsArray(ids).write(',').jsArray(titles).write(");Gallery.open(this.getChildren().indexOf(event.target));}\" style=\"height:").write(height).write("px;position:relative;\">").write(images.toString()).write("</div>");
}
use of db.Select in project common by zenlunatics.
the class EventProvider method writeAutomaticReminders.
// --------------------------------------------------------------------------
public void writeAutomaticReminders(View view, Request request) throws IOException {
if (m_support_reminders) {
HTMLWriter writer = request.writer;
ResultSet rs = request.db.select(new Select("*").from(m_events_table + "_reminders").where(m_events_table + "_id IS NULL"));
try {
if (rs.isBeforeFirst()) {
writer.h4("Automatic Reminders");
Table table = new Table(writer).addClass("table").addClass("table-bordered").addClass("table-condensed").open();
table.tr().th("send to").th("when").th("note");
while (rs.next()) {
table.tr().td(rs.getString("email"));
table.td();
int num = rs.getInt("num");
String repeat_days = null;
String unit = rs.getString("unit");
if (m_events_can_repeat)
repeat_days = rs.getString("repeat_days");
if (num == 0 && "day".equals(unit))
writer.write(repeat_days == null ? "on the day" : "on the day of");
else {
writer.write(num).space().write(unit);
if (num != 1)
writer.write('s');
writer.write(rs.getBoolean("before") ? " before" : " after");
}
if (m_events_can_repeat)
if (repeat_days != null && !"never".equals(repeat_days))
writer.space().write(repeat_days);
table.td(rs.getString("note"));
}
rs.getStatement().close();
table.close();
}
} catch (SQLException e) {
}
}
}
Aggregations