mirror of https://github.com/halo-dev/halo
Remove source column of Option entity
parent
1fe26cb7d8
commit
f87dc413e3
|
@ -1,6 +1,5 @@
|
||||||
package run.halo.app.model.entity;
|
package run.halo.app.model.entity;
|
||||||
|
|
||||||
import run.halo.app.model.enums.OptionSource;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
@ -41,12 +40,6 @@ public class Option extends BaseEntity {
|
||||||
@Column(name = "option_value", columnDefinition = "varchar(1023) not null")
|
@Column(name = "option_value", columnDefinition = "varchar(1023) not null")
|
||||||
private String value;
|
private String value;
|
||||||
|
|
||||||
/**
|
|
||||||
* source,default is system
|
|
||||||
*/
|
|
||||||
@Column(name = "option_source", columnDefinition = "int default 0")
|
|
||||||
private OptionSource source;
|
|
||||||
|
|
||||||
public Option(String key, String value) {
|
public Option(String key, String value) {
|
||||||
this.key = key;
|
this.key = key;
|
||||||
this.value = value;
|
this.value = value;
|
||||||
|
@ -56,9 +49,5 @@ public class Option extends BaseEntity {
|
||||||
public void prePersist() {
|
public void prePersist() {
|
||||||
super.prePersist();
|
super.prePersist();
|
||||||
id = null;
|
id = null;
|
||||||
|
|
||||||
if (source == null) {
|
|
||||||
source = OptionSource.SYSTEM;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ package run.halo.app.model.enums;
|
||||||
* @author johnniang
|
* @author johnniang
|
||||||
* @date 4/1/19
|
* @date 4/1/19
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public enum OptionSource implements ValueEnum<Integer> {
|
public enum OptionSource implements ValueEnum<Integer> {
|
||||||
|
|
||||||
SYSTEM(0),
|
SYSTEM(0),
|
||||||
|
@ -20,4 +21,5 @@ public enum OptionSource implements ValueEnum<Integer> {
|
||||||
@Override
|
@Override
|
||||||
public Integer getValue() {
|
public Integer getValue() {
|
||||||
return null;
|
return null;
|
||||||
}}
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
package run.halo.app.repository;
|
||||||
|
|
||||||
|
import run.halo.app.model.entity.ThemeSetting;
|
||||||
|
import run.halo.app.repository.base.BaseRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Theme setting repository interface.
|
||||||
|
*
|
||||||
|
* @author johnniang
|
||||||
|
* @date 4/8/19
|
||||||
|
*/
|
||||||
|
public interface ThemeSettingRepository extends BaseRepository<ThemeSetting, Integer> {
|
||||||
|
|
||||||
|
}
|
|
@ -7,7 +7,6 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
import run.halo.app.exception.MissingPropertyException;
|
import run.halo.app.exception.MissingPropertyException;
|
||||||
import run.halo.app.model.dto.OptionOutputDTO;
|
import run.halo.app.model.dto.OptionOutputDTO;
|
||||||
import run.halo.app.model.entity.Option;
|
import run.halo.app.model.entity.Option;
|
||||||
import run.halo.app.model.enums.OptionSource;
|
|
||||||
import run.halo.app.model.enums.ValueEnum;
|
import run.halo.app.model.enums.ValueEnum;
|
||||||
import run.halo.app.model.params.OptionParam;
|
import run.halo.app.model.params.OptionParam;
|
||||||
import run.halo.app.model.properties.PropertyEnum;
|
import run.halo.app.model.properties.PropertyEnum;
|
||||||
|
@ -36,47 +35,42 @@ public interface OptionService extends CrudService<Option, Integer> {
|
||||||
*
|
*
|
||||||
* @param key key must not be blank
|
* @param key key must not be blank
|
||||||
* @param value value
|
* @param value value
|
||||||
* @param source source
|
|
||||||
*/
|
*/
|
||||||
@Transactional
|
@Transactional
|
||||||
void save(@NonNull String key, String value, @NonNull OptionSource source);
|
void save(@NonNull String key, String value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Save multiple options
|
* Save multiple options
|
||||||
*
|
*
|
||||||
* @param options options
|
* @param options options
|
||||||
* @param source source
|
|
||||||
*/
|
*/
|
||||||
@Transactional
|
@Transactional
|
||||||
void save(@NonNull Map<String, String> options, @NonNull OptionSource source);
|
void save(@Nullable Map<String, String> options);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SAve multiple options
|
* SAve multiple options
|
||||||
*
|
*
|
||||||
* @param optionParams option params
|
* @param optionParams option params
|
||||||
* @param source source
|
|
||||||
*/
|
*/
|
||||||
@Transactional
|
@Transactional
|
||||||
void save(List<OptionParam> optionParams, @NonNull OptionSource source);
|
void save(@Nullable List<OptionParam> optionParams);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Saves a property.
|
* Saves a property.
|
||||||
*
|
*
|
||||||
* @param property must not be null
|
* @param property must not be null
|
||||||
* @param value could be null
|
* @param value could be null
|
||||||
* @param source must not be null
|
|
||||||
*/
|
*/
|
||||||
@Transactional
|
@Transactional
|
||||||
void saveProperty(@NonNull PropertyEnum property, String value, @NonNull OptionSource source);
|
void saveProperty(@NonNull PropertyEnum property, @Nullable String value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Saves blog properties.
|
* Saves blog properties.
|
||||||
*
|
*
|
||||||
* @param properties blog properties
|
* @param properties blog properties
|
||||||
* @param source source
|
|
||||||
*/
|
*/
|
||||||
@Transactional
|
@Transactional
|
||||||
void saveProperties(@NonNull Map<? extends PropertyEnum, String> properties, @NonNull OptionSource source);
|
void saveProperties(@NonNull Map<? extends PropertyEnum, String> properties);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all options
|
* Get all options
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
package run.halo.app.service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Theme setting service interface.
|
||||||
|
*
|
||||||
|
* @author johnniang
|
||||||
|
* @date 4/8/19
|
||||||
|
*/
|
||||||
|
public interface ThemeSettingService {
|
||||||
|
|
||||||
|
}
|
|
@ -9,7 +9,6 @@ import org.springframework.util.CollectionUtils;
|
||||||
import run.halo.app.exception.MissingPropertyException;
|
import run.halo.app.exception.MissingPropertyException;
|
||||||
import run.halo.app.model.dto.OptionOutputDTO;
|
import run.halo.app.model.dto.OptionOutputDTO;
|
||||||
import run.halo.app.model.entity.Option;
|
import run.halo.app.model.entity.Option;
|
||||||
import run.halo.app.model.enums.OptionSource;
|
|
||||||
import run.halo.app.model.enums.ValueEnum;
|
import run.halo.app.model.enums.ValueEnum;
|
||||||
import run.halo.app.model.params.OptionParam;
|
import run.halo.app.model.params.OptionParam;
|
||||||
import run.halo.app.model.properties.*;
|
import run.halo.app.model.properties.*;
|
||||||
|
@ -41,15 +40,8 @@ public class OptionServiceImpl extends AbstractCrudService<Option, Integer> impl
|
||||||
this.optionRepository = optionRepository;
|
this.optionRepository = optionRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Saves one option
|
|
||||||
*
|
|
||||||
* @param key key
|
|
||||||
* @param value value
|
|
||||||
* @param source source
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void save(String key, String value, OptionSource source) {
|
public void save(String key, String value) {
|
||||||
Assert.hasText(key, "Option key must not be blank");
|
Assert.hasText(key, "Option key must not be blank");
|
||||||
|
|
||||||
if (StringUtils.isBlank(value)) {
|
if (StringUtils.isBlank(value)) {
|
||||||
|
@ -71,7 +63,6 @@ public class OptionServiceImpl extends AbstractCrudService<Option, Integer> impl
|
||||||
Option anOption = new Option();
|
Option anOption = new Option();
|
||||||
anOption.setKey(key);
|
anOption.setKey(key);
|
||||||
anOption.setValue(value);
|
anOption.setValue(value);
|
||||||
anOption.setSource(source);
|
|
||||||
return anOption;
|
return anOption;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -81,47 +72,40 @@ public class OptionServiceImpl extends AbstractCrudService<Option, Integer> impl
|
||||||
log.debug("Saved option: [{}]", savedOption);
|
log.debug("Saved option: [{}]", savedOption);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Saves multiple options
|
|
||||||
*
|
|
||||||
* @param options options
|
|
||||||
* @param source source
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void save(Map<String, String> options, OptionSource source) {
|
public void save(Map<String, String> options) {
|
||||||
if (CollectionUtils.isEmpty(options)) {
|
if (CollectionUtils.isEmpty(options)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO Optimize the queries
|
// TODO Optimize the queries
|
||||||
options.forEach((key, value) -> save(key, value, source));
|
options.forEach(this::save);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void save(List<OptionParam> optionParams, OptionSource source) {
|
public void save(List<OptionParam> optionParams) {
|
||||||
if (CollectionUtils.isEmpty(optionParams)) {
|
if (CollectionUtils.isEmpty(optionParams)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO Optimize the query
|
// TODO Optimize the query
|
||||||
optionParams.forEach(optionParam -> save(optionParam.getOptionKey(), optionParam.getOptionValue(), source));
|
optionParams.forEach(optionParam -> save(optionParam.getOptionKey(), optionParam.getOptionValue()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveProperty(PropertyEnum property, String value, OptionSource source) {
|
public void saveProperty(PropertyEnum property, String value) {
|
||||||
Assert.notNull(property, "Property must not be null");
|
Assert.notNull(property, "Property must not be null");
|
||||||
Assert.notNull(source, "Option source must not be null");
|
|
||||||
|
|
||||||
save(property.getValue(), value, source);
|
save(property.getValue(), value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveProperties(Map<? extends PropertyEnum, String> properties, OptionSource source) {
|
public void saveProperties(Map<? extends PropertyEnum, String> properties) {
|
||||||
if (CollectionUtils.isEmpty(properties)) {
|
if (CollectionUtils.isEmpty(properties)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
properties.forEach((property, value) -> save(property.getValue(), value, source));
|
properties.forEach((property, value) -> save(property.getValue(), value));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
package run.halo.app.service.impl;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import run.halo.app.model.entity.ThemeSetting;
|
||||||
|
import run.halo.app.repository.ThemeSettingRepository;
|
||||||
|
import run.halo.app.service.ThemeSettingService;
|
||||||
|
import run.halo.app.service.base.AbstractCrudService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Theme setting service implementation.
|
||||||
|
*
|
||||||
|
* @author johnniang
|
||||||
|
* @date 4/8/19
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class ThemeSettingServiceImpl extends AbstractCrudService<ThemeSetting, Integer> implements ThemeSettingService {
|
||||||
|
|
||||||
|
private final ThemeSettingRepository themeSettingRepository;
|
||||||
|
|
||||||
|
public ThemeSettingServiceImpl(ThemeSettingRepository themeSettingRepository) {
|
||||||
|
super(themeSettingRepository);
|
||||||
|
this.themeSettingRepository = themeSettingRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -37,7 +37,7 @@ public class OptionController {
|
||||||
|
|
||||||
@PostMapping("saving")
|
@PostMapping("saving")
|
||||||
public void saveOptions(@Valid @RequestBody List<OptionParam> optionParams) {
|
public void saveOptions(@Valid @RequestBody List<OptionParam> optionParams) {
|
||||||
optionService.save(optionParams, OptionSource.SYSTEM);
|
optionService.save(optionParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("map_view")
|
@GetMapping("map_view")
|
||||||
|
@ -49,6 +49,6 @@ public class OptionController {
|
||||||
@PostMapping("map_view/saving")
|
@PostMapping("map_view/saving")
|
||||||
@ApiOperation("Saves options by option map")
|
@ApiOperation("Saves options by option map")
|
||||||
public void saveOptionsWithMapView(@RequestBody Map<String, String> optionMap) {
|
public void saveOptionsWithMapView(@RequestBody Map<String, String> optionMap) {
|
||||||
optionService.save(optionMap, OptionSource.SYSTEM);
|
optionService.save(optionMap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,6 @@ import freemarker.template.Configuration;
|
||||||
import freemarker.template.TemplateModelException;
|
import freemarker.template.TemplateModelException;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import run.halo.app.model.enums.OptionSource;
|
|
||||||
import run.halo.app.model.properties.PrimaryProperties;
|
import run.halo.app.model.properties.PrimaryProperties;
|
||||||
import run.halo.app.model.support.BaseResponse;
|
import run.halo.app.model.support.BaseResponse;
|
||||||
import run.halo.app.model.support.Theme;
|
import run.halo.app.model.support.Theme;
|
||||||
|
@ -79,7 +78,7 @@ public class ThemeController {
|
||||||
@ApiOperation("Active a theme")
|
@ApiOperation("Active a theme")
|
||||||
public void active(String theme) throws TemplateModelException {
|
public void active(String theme) throws TemplateModelException {
|
||||||
// TODO Check existence of the theme
|
// TODO Check existence of the theme
|
||||||
optionService.saveProperty(PrimaryProperties.THEME, theme, OptionSource.SYSTEM);
|
optionService.saveProperty(PrimaryProperties.THEME, theme);
|
||||||
configuration.setSharedVariable("themeName", theme);
|
configuration.setSharedVariable("themeName", theme);
|
||||||
configuration.setSharedVariable("options", optionService.listOptions());
|
configuration.setSharedVariable("options", optionService.listOptions());
|
||||||
}
|
}
|
||||||
|
|
|
@ -176,7 +176,7 @@ public class InstallController {
|
||||||
properties.put(AttachmentProperties.ATTACHMENT_TYPE, AttachmentType.LOCAL.getValue().toString());
|
properties.put(AttachmentProperties.ATTACHMENT_TYPE, AttachmentType.LOCAL.getValue().toString());
|
||||||
|
|
||||||
// Create properties
|
// Create properties
|
||||||
optionService.saveProperties(properties, OptionSource.SYSTEM);
|
optionService.saveProperties(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue