use of db.Select in project common by zenlunatics.
the class MailLists method doGet.
// --------------------------------------------------------------------------
@Override
public boolean doGet(Request request) throws IOException {
if ("Mail Lists".equals(request.getPathSegment(1))) {
writeSettingsForm(new String[] { "m_add_list_name_to_subject", "m_add_sender_to_from", "m_insert_headers", "m_show_reply_links_in_archives" }, false, request);
return true;
}
int ml_id = request.getPathSegmentInt(1);
String two = request.getPathSegment(2);
request.getPathSegment(3);
if ("archive".equals(two)) {
writeArchiveViewer(ml_id, request);
return true;
}
if ("headers".equals(two)) {
int year = request.getPathSegmentInt(3);
int month = request.getPathSegmentInt(4);
ViewState.setFilter("ml_" + ml_id, "arrived>='" + month + "/1/" + year + "' AND arrived<'" + (month == 12 ? 1 : month + 1) + "/1/" + (month == 12 ? year + 1 : year) + "'", request);
request.site.newView("ml_" + ml_id, request).setSelectColumnNamesTable().writeComponent();
return true;
}
if ("search".equals(two)) {
String search = request.getParameter("search");
if (search.length() == 0)
request.writer.write("no words to search entered");
else {
boolean all = "all".equals(request.getParameter("words"));
boolean subject = request.getParameter("subject") != null;
boolean message = request.getParameter("message") != null;
if (!subject && !message)
request.writer.write("you must select \"search subject\" or \"search message\" or both");
else
new MailList(ml_id, request.site, request.db).search(search, all, subject, message, request);
}
return true;
}
request.response.setContentType("text/html");
String cmd = request.getParameter("cmd");
try {
if (cmd == null) {
request.site.writePageOpen("", request);
MailHandler mail_handler = getMailHandler(ml_id, request.db);
boolean subscribed = mail_handler != null ? mail_handler.isSubscribed(request.getUser(), request) : request.db.exists("mail_lists_people", "mail_lists_id=" + ml_id + " AND people_id=" + request.getUser().getId());
if (!request.db.lookupBoolean(new Select("archives_public").from("mail_lists").whereIdEquals(ml_id)) && !subscribed)
request.writer.write("Archives for this list are private to the list subscribers");
else
writeArchiveViewer(ml_id, request);
request.close();
} else if (cmd.equals("get_file")) {
MailList mail_list = new MailList(ml_id, request.site, request.db);
try {
String text = mail_list.loadMessage(request.getInt("message", -1), request.db);
if (text == null)
request.writer.write("Message file not found.");
else {
InputStream is = new ByteArrayInputStream(text.getBytes());
MimeMessage message = new MimeMessage(getSession(), is);
String cid = request.getParameter("cid");
if (cid != null) {
MimeMultipart multipart = (MimeMultipart) message.getContent();
WebMail.writeFile(multipart.getBodyPart("<" + cid + ">"), request);
} else {
String[] indexes = request.getParameter("path").split(",");
int[] path = new int[indexes.length];
for (int j = 0; j < indexes.length; j++) path[j] = Integer.parseInt(indexes[j]);
WebMail.writeFile(message, path, 0, request);
}
}
} catch (MessagingException e) {
sendError(mail_list.getName(), "doGet", null, null, e);
} catch (SQLException e) {
sendError(mail_list.getName(), "doGet", null, null, e);
}
} else if (cmd.equals("get_message"))
writeMessage(request.getParameter("list"), request.getInt("db_key_value", -1), request);
else if (cmd.equals("reply_list"))
writeReplyForm(request.getParameter("list"), request.getInt("db_key_value", -1), false, request);
else if (cmd.equals("reply_sender"))
writeReplyForm(request.getParameter("list"), request.getInt("db_key_value", -1), true, request);
else if (cmd.equals("send"))
new Mail(request.site).send(request.getParameter("from"), request.getParameter("to"), request.getParameter("subject"), request.getParameter("message"), true);
} catch (IOException e) {
System.out.println(e);
}
return true;
}
use of db.Select in project common by zenlunatics.
the class FileColumn method getFile.
// --------------------------------------------------------------------------
public File getFile(int id, Request request) {
String filename = request.db.lookupString(new Select(m_name).from(m_table).whereIdEquals(id));
if (filename == null)
return null;
FilePathStringBuilder path = getDirectory(id, request);
path.append(filename);
return new File(path.toString());
}
use of db.Select in project common by zenlunatics.
the class FileColumn method writeActionSelect.
// --------------------------------------------------------------------------
private void writeActionSelect(ViewDef view_def, Mode mode, String dir, Request request) throws IOException {
List<String> actions = new ArrayList<String>();
HTMLWriter writer = request.writer;
if (m_allow_editing)
actions.add("create a new file");
actions.add("upload a file");
if (m_allow_choosing || request.userIsAdministrator())
actions.add("select a file on the server");
new web.Select("db_actions", actions).setOnChange("this.fcs.change()").write(request);
writer.scriptOpen();
writer.write("var e=$('db_actions');e.fcs=new FileColumnSelect(e,'");
writer.write(view_def.getName());
writer.write("','");
writer.write(m_name);
writer.write("',{");
boolean has_options = false;
if (view_def.useDialogFor(mode)) {
writer.write("in_dialog:true");
has_options = true;
}
if (dir != null) {
if (has_options)
writer.write(',');
writer.write("dir_column:'");
writer.write(m_dir_column);
writer.write("',dir:'");
writer.write(dir);
writer.write('\'');
}
writer.write("});e.fcs.change();");
writer.scriptClose();
}
use of db.Select in project common by zenlunatics.
the class FileColumn method beforeUpdate.
// --------------------------------------------------------------------------
@Override
public boolean beforeUpdate(int id, NameValuePairs name_value_pairs, Map<String, Object> previous_values, Request request) {
if (name_value_pairs.containsName(m_name)) {
String dir = null;
if (m_dir_column != null)
if (m_dir_column.equals("id"))
dir = Integer.toString(id);
else
dir = name_value_pairs.getString(m_dir_column);
String old_name = request.db.lookupString(new Select(m_name).from(m_table).whereIdEquals(id));
if (old_name == null)
writeTextFile(name_value_pairs, dir, true, request.site);
else {
writeTextFile(name_value_pairs, dir, !old_name.equals(name_value_pairs.getString(m_name)), request.site);
if (!old_name.equals(name_value_pairs.getString(m_name)))
deleteOldFile(name_value_pairs.getString(m_name), id, request);
}
}
if (m_dir_column != null) {
int new_dir = name_value_pairs.getInt(m_dir_column, 0);
int old_dir = request.db.lookupInt(new Select(m_dir_column).from(m_table).whereIdEquals(id), 0);
if (new_dir != old_dir) {
String filename = request.db.lookupString(new Select(m_name).from(m_table).whereIdEquals(id));
FilePathStringBuilder old_path = getBaseFilePath(request.site);
if (old_dir != 0)
old_path.append(old_dir);
old_path.append(filename);
FilePathStringBuilder new_path = getBaseFilePath(request.site);
if (new_dir != 0)
new_path.append(new_dir);
new_path.append(filename);
new File(old_path.toString()).renameTo(new File(new_path.toString()));
}
}
return true;
}
use of db.Select in project common by zenlunatics.
the class Documents method writeItem.
// --------------------------------------------------------------------------
/**
* @throws IOException
*/
@Override
public void writeItem(int item_id, Request request) throws IOException {
FileColumn file_column = (FileColumn) request.site.getViewDef("documents", request.db).getColumn("filename");
Rows data = new Rows(request.db).select(new Select("*").from("documents").whereIdEquals(item_id));
if (data.next())
file_column.writeValue(data, request);
data.close();
}
Aggregations