Package com.psddev.cms.tool.page

Source Code of com.psddev.cms.tool.page.ScheduleEdit

package com.psddev.cms.tool.page;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;

import com.psddev.cms.db.Draft;
import com.psddev.cms.db.Schedule;
import com.psddev.cms.db.ToolUser;
import com.psddev.cms.tool.PageServlet;
import com.psddev.cms.tool.ToolPageContext;
import com.psddev.dari.db.Query;
import com.psddev.dari.util.RoutingFilter;

@RoutingFilter.Path(application = "cms", value = "/scheduleEdit")
@SuppressWarnings("serial")
public class ScheduleEdit extends PageServlet {

    @Override
    protected String getPermissionId() {
        return null;
    }

    @Override
    protected void doService(final ToolPageContext page) throws IOException, ServletException {
        Schedule schedule = (Schedule) page.findOrReserve(Schedule.class);
        boolean newSchedule = schedule.getState().isNew();

        if (page.isFormPost()) {
            try {
                if (page.param(String.class, "action-save") != null) {
                    ToolUser toolUser = page.getUser();

                    page.include("/WEB-INF/objectPost.jsp", "object", schedule);

                    if (newSchedule) {
                        schedule.setTriggerUser(toolUser);
                        schedule.setTriggerSite(page.getSite());
                    }

                    schedule.save();

                    if (newSchedule) {
                        toolUser.setCurrentSchedule(schedule);
                        toolUser.save();
                    }

                } else if (page.param(String.class, "action-delete") != null) {
                    try {
                        schedule.beginWrites();
                        Query.from(Draft.class).where("schedule = ?", schedule).deleteAll();
                        schedule.delete();
                        schedule.commitWrites();

                    } finally {
                        schedule.endWrites();
                    }
                }

                page.writeStart("script", "type", "text/javascript");
                    page.writeRaw("window.location = window.location;");
                page.writeEnd();

                return;

            } catch (Exception error) {
                page.getErrors().add(error);
            }
        }

        page.writeStart("div", "class", "widget");
            page.writeFormHeading(schedule, "class", "icon icon-object-schedule");
            page.include("/WEB-INF/errors.jsp");

            page.writeStart("form",
                    "method", "post",
                    "action", page.url("", "id", schedule.getId()));
                page.include("/WEB-INF/objectForm.jsp", "object", schedule);

                page.writeStart("div", "class", "actions");
                    page.writeStart("button",
                            "class", "icon icon-action-save",
                            "name", "action-save",
                            "value", "true");
                        page.writeHtml("Save");
                    page.writeEnd();

                    if (!newSchedule) {
                        page.writeStart("button",
                                "class", "icon icon-action-delete action-pullRight link",
                                "name", "action-delete",
                                "value", "true");
                            page.writeHtml("Delete");
                        page.writeEnd();
                    }
                page.writeEnd();
            page.writeEnd();

            List<Draft> drafts = Query.
                    from(Draft.class).
                    where("schedule = ?", schedule).
                    selectAll();

            if (!drafts.isEmpty()) {
                page.writeStart("h2").writeHtml("Items").writeEnd();

                page.writeStart("div", "class", "fixedScrollable");
                    page.writeStart("ul", "class", "links");
                        for (Draft draft : drafts) {
                            page.writeStart("li");
                                page.writeStart("a",
                                        "href", page.objectUrl("/content/edit.jsp", draft),
                                        "target", "_top");
                                    page.writeObjectLabel(draft);
                                page.writeEnd();
                            page.writeEnd();
                        }
                    page.writeEnd();
                page.writeEnd();
            }
        page.writeEnd();
    }
}
TOP

Related Classes of com.psddev.cms.tool.page.ScheduleEdit

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.