VoidForum/src/main/java/ru/bvn13/voidforum/controllers/admin/AdminController.java

61 lines
2.0 KiB
Java

package ru.bvn13.voidforum.controllers.admin;
import ru.bvn13.voidforum.forms.SettingsForm;
import ru.bvn13.voidforum.services.AppSetting;
import ru.bvn13.voidforum.support.web.MessageHelper;
import ru.bvn13.voidforum.utils.DTOUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.Errors;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import javax.validation.Valid;
/**
* bvn13 <mail4bvn@gmail.com>
*/
@Controller
@RequestMapping("admin")
public class AdminController {
private AppSetting appSetting;
@Autowired
public AdminController( AppSetting appSetting){
this.appSetting = appSetting;
}
@RequestMapping("")
public String index(){
return "admin/home/index";
}
@RequestMapping(value = "settings")
public String settings(Model model){
SettingsForm settingsForm = DTOUtil.map(appSetting, SettingsForm.class);
model.addAttribute("settings", settingsForm);
return "admin/home/settings";
}
@RequestMapping(value = "settings", method = RequestMethod.POST)
public String updateSettings(@Valid SettingsForm settingsForm, Errors errors, Model model, RedirectAttributes ra){
if (errors.hasErrors()){
return "admin/settings";
} else {
appSetting.setSiteName(settingsForm.getSiteName());
appSetting.setSiteSlogan(settingsForm.getSiteSlogan());
appSetting.setPageSize(settingsForm.getPageSize());
appSetting.setStoragePath(settingsForm.getStoragePath());
appSetting.setMainUri(settingsForm.getMainUri());
MessageHelper.addSuccessAttribute(ra, "Update settings successfully.");
return "redirect:settings";
}
}
}