/*
* Copyright (c) JForum Team. All rights reserved.
*
* The software in this package is published under the terms of the LGPL
* license a copy of which has been included with this distribution in the
* license.txt file.
*
* The JForum Project
* http://www.jforum.net
*/
package net.jforum.controllers;
import net.jforum.actions.helpers.Domain;
import net.jforum.core.SecurityConstraint;
import net.jforum.entities.Smilie;
import net.jforum.repository.SmilieRepository;
import net.jforum.security.AdministrationRule;
import net.jforum.services.SmilieService;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.interceptor.multipart.UploadedFile;
/**
* @author Rafael Steil
*/
@Resource
@Path(Domain.SMILIES_ADMIN)
@SecurityConstraint(value = AdministrationRule.class, displayLogin = true)
public class SmilieAdminController {
private SmilieRepository repository;
private SmilieService service;
private final Result result;
public SmilieAdminController(SmilieService service,
SmilieRepository repository, Result result) {
this.service = service;
this.repository = repository;
this.result = result;
}
/**
* List all smilies
*/
public void list() {
this.result.include("smilies", this.repository.getAllSmilies());
}
/**
* Shows the page to insert a new smilie
*/
public void add() {
}
/**
* Saves a new smilie
*
* @param smilie
*/
public void addSave(Smilie smilie, UploadedFile image) {
this.service.add(smilie, image);
this.result.redirectTo(this).list();
}
/**
* Shows the page to edit a existing smilie
*/
public void edit(int smilieId) {
this.result.include("smilie", this.repository.get(smilieId));
this.result.forwardTo(this).add();
}
public void editSave(Smilie smilie, UploadedFile image) {
this.service.update(smilie, image);
this.result.redirectTo(this).list();
}
/**
* Deletes smilies
*
* @param smiliesId
*/
public void delete(int... smiliesId) {
this.service.delete(smiliesId);
this.result.redirectTo(this).list();
}
}