/**
* 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) 2016 (17/01/16) ) Neblina Software. Derechos reservados.
* @license Licencia BSD; vea LICENSE.txt
*/
package com.neblina.balero.interceptors;
import com.neblina.balero.service.BaleroService;
import com.neblina.balero.service.PropertyService;
import com.neblina.balero.service.repository.BlockRepository;
import com.neblina.balero.service.repository.PageRepository;
import com.neblina.balero.service.repository.SettingRepository;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ModelAttribute;
import java.util.Locale;
@ControllerAdvice
public class PopulateGlobalAttribute {
private static final Logger log = LogManager.getLogger(PopulateGlobalAttribute.class.getName());
@Autowired
private Environment env;
@Autowired
private SettingRepository settingRepository;
@Autowired
private BlockRepository blockRepository;
@Autowired
private PageRepository pageRepository;
@Autowired
private PropertyService propertyService;
@Autowired
private BaleroService baleroService;
/**
* Balero CMS Global Models
*
* Referers:
* http://www.concretepage.com/spring/spring-mvc/spring-mvc-modelattribute-annotation-example
* https://gerrydevstory.com/2014/03/06/using-handlerinterceptor-or-controlleradvice-to-make-spring-mvc-model-attribute-available-everywhere/
* @param model
* @param locale
*/
@ModelAttribute
public void addAttributes(Model model,
Locale locale) {
String lang = locale.getLanguage();
log.debug("Current Language: " + lang);
model.addAttribute("settings", settingRepository.findOneByCode(lang));
model.addAttribute("blocks", blockRepository.findAllByCodeOrderByBlockOrder(lang));
model.addAttribute("pages", pageRepository.findAllByCode(lang));
model.addAttribute("properties", propertyService.findOneById(1L));
model.addAttribute("multiLanguage", propertyService.isMultiLanguage());
model.addAttribute("mainLanguage", propertyService.getMainLanguage());
log.debug("Version:" + baleroService.getVersion());
model.addAttribute("version", baleroService.getVersion());
if(Boolean.parseBoolean(env.getProperty("balerocms.minification")) == true) {
}
if(Boolean.parseBoolean(env.getProperty("balerocms.minification")) == false) {
}
}
}