/**
* Balero CMS Project: Proyecto 100% Mexicano de código libre.
* Página Oficial: http://www.balerocms.com
*
* @author Anibal Gomez <anibalgomez@icloud.com>
* @copyright Copyright (C) 2015 Neblina Software. Derechos reservados.
* @license Licencia BSD; vea LICENSE.txt
*/
package com.neblina.balero.web.authorized.admin;
import com.github.slugify.Slugify;
import com.neblina.balero.service.PageService;
import com.neblina.balero.service.PropertyService;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.annotation.Secured;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import java.io.IOException;
@Controller
@RequestMapping("/admin/page")
public class AdminPageController {
private static final Logger log = LogManager.getLogger(AdminPageController.class.getName());
@Autowired
private PageService pageService;
@Secured("ROLE_ADMIN")
@RequestMapping(value = {"", "/"} )
public String page(Model model) {
model.addAttribute("pages", pageService.findAll());
return "authorized/page";
}
@Secured("ROLE_ADMIN")
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public String pageEditGet(Model model, @PathVariable("id") Long id) {
model.addAttribute("pages", pageService.findOneById(id));
return "authorized/page_edit";
}
@Secured("ROLE_ADMIN")
@RequestMapping(value = "/{id}", method = RequestMethod.POST)
public String pageEditPost(Model model, @PathVariable("id") Long id,
String name,
String title,
String content,
String code,
String permalink,
String author) throws IOException {
Slugify slg = new Slugify();
String result = slg.slugify(permalink);
pageService.savePage(
id,
name,
title,
content,
code,
result,
author
);
model.addAttribute("success", 1);
model.addAttribute("pages", pageService.findOneById(id));
return "authorized/page_edit";
}
@Secured("ROLE_ADMIN")
@RequestMapping(value = "/new", method = RequestMethod.GET)
public String pageEditGet() {
return "authorized/page_new";
}
@Secured("ROLE_ADMIN")
@RequestMapping(value = "/new", method = RequestMethod.POST)
public String pageNew(
@RequestParam("name") String name,
@RequestParam("title") String title,
@RequestParam("content") String content,
@RequestParam("code") String code,
@RequestParam("permalink") String permalink,
@RequestParam("author") String author) throws IOException {
Slugify slg = new Slugify();
String result = slg.slugify(permalink);
pageService.createPage(
name,
title,
content,
code,
result,
author
);
return "redirect:/admin/page";
}
@Secured("ROLE_ADMIN")
@RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
public String pageDelete(
@PathVariable("id") Long id) {
pageService.deletePage(id);
return "redirect:/admin/page";
}
}