use of app.Person in project common by zenlunatics.
the class CalendarPicker method writeCheckBoxes.
// --------------------------------------------------------------------------
public void writeCheckBoxes(Request request) throws IOException {
Collection<EventProvider> event_providers = getCalendarsSorted(request);
if (event_providers.size() > 1) {
int num_written = 0;
Person user = request.getUser();
String[] checked_calendars = getCheckedCalendars(user);
HTMLWriter writer = request.writer;
request.writer.write("Overlap other calendars: ");
for (EventProvider event_provider : event_providers) {
String name = event_provider.getName();
if (m_event_provider_name.equals(name))
continue;
num_written++;
if (num_written > 0)
writer.space();
writer.setAttribute("class", "event checkbox");
String color = event_provider.getColor();
if (color != null)
writer.setAttribute("style", "display:inline-block;white-space:nowrap;padding-left:2px;background-color:" + color);
else
writer.setAttribute("style", "display:inline-block;white-space:nowrap;padding-left:2px;");
writer.tagOpen("div");
writer.setAttribute("onchange", "XHR_post(context+'/" + URLEncoder.encode(m_event_provider_name, "UTF-8") + "','toggle=" + URLEncoder.encode(name, "UTF-8") + "',function(){$('calendar').calendar.update()})");
writer.checkbox("e" + (num_written - 1), event_provider.getDisplayName(), null, checked_calendars == null ? false : Util.indexOf(checked_calendars, name) != -1, true);
writer.tagClose();
}
writer.setAttribute("class", "btn btn-default btn-xs");
writer.setAttribute("style", "margin-left:4px;");
writer.aOnClick("all", "XHR_post(context+'/" + URLEncoder.encode(m_event_provider_name, "UTF-8") + "','check=all',function(){$('calendar').calendar.set_checkboxes(true)})");
writer.setAttribute("class", "btn btn-default btn-xs");
writer.setAttribute("style", "margin-left:4px;");
writer.aOnClick("none", "XHR_post(context+'/" + URLEncoder.encode(m_event_provider_name, "UTF-8") + "','check=none',function(){$('calendar').calendar.set_checkboxes(false)})");
}
}
use of app.Person in project common by zenlunatics.
the class CalendarView method writeComponent.
// --------------------------------------------------------------------------
public void writeComponent(boolean show_head, Request request) throws IOException {
HTMLWriter writer = request.writer;
writer.write("<div id=\"calendar\">");
if (show_head)
writeHead(request);
Person user = request.getUser();
boolean controls_on_top = user != null && user.testData("calendar controls on top");
if (!(this instanceof ListView) && controls_on_top)
writeControls("top", request);
writer.write("<div id=\"calendar_view\" class=\"calendar_component\">");
java.util.Calendar c = request.site.newCalendar();
write(c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DATE), null, null, request);
writer.write("</div>");
if (!(this instanceof ListView) && !controls_on_top)
writeControls("bottom", request);
writer.write("<div id=\"calendar_after_view\"></div>");
writer.write("</div>");
String js = "new Calendar('" + HTMLWriter.escapeJSString(m_event_provider.getName()) + "', '" + getView().toString() + "');";
String locale = request.site.getSettings().getString("xdate locale");
if (locale != null)
js = "XDate.defaultLocale = '" + locale + "';" + js;
writer.js("JS.get('calendar',function(){" + js + "});");
if (request.getUser() != null) {
String edit = request.getParameter("edit");
if (edit != null) {
int last_comma = edit.lastIndexOf(',');
String calendar_name = edit.substring(1, last_comma - 1);
int index = calendar_name.indexOf('%');
while (index != -1) {
calendar_name = URLDecoder.decode(calendar_name, "UTF-8");
index = calendar_name.indexOf('%');
}
EventProvider event_provider = (EventProvider) request.site.getModule(calendar_name);
if (event_provider != null)
writer.scriptOpen().write("window.addEventListener('load',function(){$('calendar').calendar.edit(").jsString(calendar_name).comma().jsString(event_provider.getDisplayName()).comma().write(edit.substring(last_comma + 1)).write(");});").scriptClose();
}
}
}
use of app.Person in project common by zenlunatics.
the class CalendarView method writeControls.
// --------------------------------------------------------------------------
private void writeControls(String position, Request request) throws IOException {
HTMLWriter writer = request.writer;
writer.write("<div id=\"calendar_foot\" data-position=\"").write(position).write("\">");
writer.write("<div style=\"float:right;\">");
m_event_provider.writeControlButtons(request);
writer.setAttribute("title", "calendar for printing");
writer.setAttribute("style", "margin-left:2px");
writer.buttonIconOnClick("print", "calendar_print_window()");
Person user = request.getUser();
if (user != null) {
boolean controls_on_top = user.testData("calendar controls on top");
writer.setAttribute("id", "calendar_position");
writer.setAttribute("style", "margin-left:2px");
writer.setAttribute("title", controls_on_top ? "move controls below calendar" : "move controls above calendar");
writer.buttonIconOnClick(controls_on_top ? "arrow-down" : "arrow-up", "$('calendar').calendar.move_controls()");
}
writer.write("</div>");
if (request.getUser() != null) {
CalendarPicker calendar_picker = m_event_provider.getCalendarPicker();
if (calendar_picker != null) {
writer.write("<div id=\"calendar_checkboxes\" class=\"form-inline\" style=\"padding:3px 0 5px;\">");
calendar_picker.writeCheckBoxes(request);
writer.write("</div>");
}
}
m_event_provider.writeFilters(request);
writer.write("</div>");
}
use of app.Person in project common by zenlunatics.
the class DB method doPost.
// --------------------------------------------------------------------------
@Override
protected void doPost(HttpServletRequest http_request, HttpServletResponse http_response) throws ServletException, IOException {
http_request.setCharacterEncoding("UTF-8");
http_response.setCharacterEncoding("UTF-8");
Request request = new Request(http_request, http_response);
http_response.setContentType("text/plain");
String db_cmd = request.getParameter("db_cmd");
if ("set_session_attribute".equals(db_cmd)) {
Enumeration<String> parameter_names = request.getParameterNames();
while (parameter_names.hasMoreElements()) {
String parameter_name = parameter_names.nextElement();
if (!parameter_name.equals("db_cmd")) {
request.setSessionAttribute(parameter_name, request.getParameter(parameter_name));
request.release();
return;
}
}
} else if ("set_setting".equals(db_cmd)) {
Enumeration<String> parameter_names = request.getParameterNames();
while (parameter_names.hasMoreElements()) {
String parameter_name = parameter_names.nextElement();
if (!parameter_name.startsWith("db_")) {
request.site.getSettings().set(parameter_name, request.getParameter(parameter_name), request.db);
request.writer.write("fade_alert('saved',$('" + Validation.getValidIdentifier("db_submit_id", request) + "'))");
request.release();
return;
}
}
} else if ("set_theme".equals(db_cmd)) {
Person user = request.getUser();
request.db.update("people", "theme='" + request.getParameter("theme") + "'", user.getId());
request.setSessionAttribute("user", null);
request.release();
return;
}
String task = request.getParameter("db_task");
String view_def_name = request.getParameter("db_view_def");
ViewDef view_def = request.site.getViewDef(view_def_name, request.db);
if (task != null) {
view_def.m_tasks.get(task).perform(request);
request.release();
return;
}
try {
if (db_cmd.equals("and_filter")) {
ViewState view_state = (ViewState) request.getState(ViewState.class, view_def_name);
int index = view_state.filter.lastIndexOf(" AND " + request.getParameter("db_column") + " ");
if (index != -1)
// TODO: assumes is last expression
view_state.filter = view_state.filter.substring(0, index);
setFilterFromForm(view_def, true, request);
} else if (db_cmd.equals("clear_filter"))
ViewState.setFilter(view_def_name, null, request);
else if (db_cmd.equals("delete")) {
// exists if we're unlinking a OneToManyLink
String one = request.getParameter("db_one_from");
if (one != null)
request.db.update(view_def.getFrom(), one + "_id=NULL", Validation.getValidInteger("db_key_value", -1, request));
else
view_def.delete(Validation.getValidIntegerString("db_key_value", request), request);
String on_delete = view_def.getOnDelete(request);
if (on_delete != null)
request.writer.write(on_delete).write(';');
String form = request.getParameter("form");
if (form != null)
request.writer.write(view_def.getFormCloseOnClick(View.Mode.EDIT_FORM));
} else if (db_cmd.equals("import_views"))
Admin.importViews(request.getParameter("site_url"), request);
else if (db_cmd.equals("insert"))
insert(view_def, request);
else if (db_cmd.equals("link")) {
request.db.update(view_def.getFrom(), request.getParameter("db_one_from") + "_id=" + ((ViewState) request.getOrCreateState(ViewState.class, request.getParameter("db_one_name"))).key_value, request.getInt("many_id", -1));
request.writer.write(view_def.getOnSuccess(View.Mode.EDIT_FORM, request));
} else if (db_cmd.equals("quicksearch")) {
String value = request.getParameter("value");
List<Feature> features = view_def.getFeatures();
if (features != null)
for (Feature feature : features) if (feature instanceof Quicksearch)
ViewState.setQuicksearch(view_def.getName(), value.length() > 0 ? value : null, ((Quicksearch) feature).getColumns(), request);
} else if (db_cmd.equals("read"))
writeFile(view_def, request);
else if (db_cmd.equals("reorder"))
view_def.getReorderable(request).reorder(request);
else if (db_cmd.equals("set")) {
String value;
if ((value = request.getParameter("password")) != null) {
int id = request.getInt("id", 0);
Person user = request.getUser();
if (id == user.getId() || request.userIsAdmin() || request.db.rowExists("user_roles", "people_id=" + user.getId() + " AND role='people'")) {
request.db.update("people", "password=md5('" + DBConnection.escape(value) + "')", id);
request.writer.write("dialog_alert('','password changed')");
}
}
} else if (db_cmd.equals("set_filter_from_form"))
setFilterFromForm(view_def, false, request);
else if (db_cmd.equals("update"))
update(view_def, request);
else if (db_cmd.equals("update_file")) {
String column = request.getParameter("db_column");
int id = Validation.getValidInteger("db_key_value", 0, request);
NameValuePairs name_value_pairs = new NameValuePairs();
name_value_pairs.set(column, request.db.lookupString(new Select(column).from(view_def_name).whereIdEquals(id)));
name_value_pairs.set(column + "_text", request.getParameter(column + "_text"));
FileColumn file_column = (FileColumn) view_def.getColumn(column);
String dir_column = file_column.getDirColumn();
if (dir_column != null)
name_value_pairs.set(dir_column, request.getParameter(dir_column));
file_column.beforeUpdate(id, name_value_pairs, null, request);
} else if (db_cmd.equals("toggle_column"))
ViewState.toggleColumn(view_def_name, request.getParameter("db_column"), request);
request.release();
} catch (Exception e) {
String s = e.toString();
if (s.indexOf("ERROR: duplicate key value") != -1) {
e.printStackTrace(System.out);
request.abortAlert(s.substring(s.indexOf("Detail:") + 12));
} else
request.abortAlert(e);
}
}
Aggregations