Search in sources :

Example 11 with Person

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)})");
    }
}
Also used : HTMLWriter(web.HTMLWriter) Person(app.Person)

Example 12 with Person

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();
        }
    }
}
Also used : HTMLWriter(web.HTMLWriter) Calendar(java.util.Calendar) Person(app.Person)

Example 13 with Person

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>");
}
Also used : HTMLWriter(web.HTMLWriter) Person(app.Person)

Example 14 with Person

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);
    }
}
Also used : Enumeration(java.util.Enumeration) HttpServletRequest(javax.servlet.http.HttpServletRequest) Request(app.Request) FileColumn(db.column.FileColumn) ServletException(javax.servlet.ServletException) IOException(java.io.IOException) Person(app.Person)

Aggregations

Person (app.Person)14 HTMLWriter (web.HTMLWriter)7 Select (db.Select)5 Page (app.Page)1 Pages (app.Pages)1 Request (app.Request)1 DBObjects (db.DBObjects)1 RowsSelect (db.RowsSelect)1 FileColumn (db.column.FileColumn)1 IOException (java.io.IOException)1 ResultSet (java.sql.ResultSet)1 SQLException (java.sql.SQLException)1 Timestamp (java.sql.Timestamp)1 Calendar (java.util.Calendar)1 Enumeration (java.util.Enumeration)1 ServletException (javax.servlet.ServletException)1 HttpServletRequest (javax.servlet.http.HttpServletRequest)1 NavBar (web.NavBar)1 Select (web.Select)1