package no.dusken.aranea.admin.control;
import no.dusken.aranea.model.Page;
import no.dusken.aranea.service.PageService;
import org.springframework.web.bind.ServletRequestUtils;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Map;
/**
* @author Marvin B. Lillehaug <lillehau@underdusken.no>
* This controller takes in a ID and if the page is not published, it gets published.
*/
public class PublishPageController extends AbstractController {
private PageService pageService;
protected ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
Long ID = ServletRequestUtils.getLongParameter(httpServletRequest, "ID", 0L);
Map map = new HashMap();
if (ID != 0L) {
Page p = pageService.getEntity(ID);
if(!p.getPublished()){
p.setPublished(true);
Calendar now = new GregorianCalendar();
p.setTimePublished(now);
p.setModified(now);
pageService.saveOrUpdate(p);
map.put("updatedPage", p);
}
}
map.put("pages", pageService.getNotPublishedPages(0, 30));
return new ModelAndView("no/dusken/aranea/base/admin/page/publish", map);
}
public void setPageService(PageService pageService) {
this.pageService = pageService;
}
}