This commit is contained in:
cnlh 2020-01-13 21:47:15 +08:00
commit 151a3f7b98
2 changed files with 32 additions and 17 deletions

View File

@ -1,27 +1,34 @@
// Copyright 2014 nps Author. All Rights Reserved.
package core
// This structure is used to describe the plugin configuration item name and description.
import "regexp"
// this structure is used to describe the plugin configuration item name and description.
type Config struct {
ConfigName string
Description string
ConfigLevel ConfigLevel
ConfigName string // single configuration item name
ZhTitle string // single configuration item chinese title
EnTitle string // single configuration item english title
ZhDescription string // single configuration item chinese description
EnDescription string // single configuration item english description
LimitReg *regexp.Regexp // regular expression to restrict input
ConfigLevel ConfigLevel // configuration sector
}
// multiple configuration collections for plugins
type NpsConfigs struct {
configs []*Config
ZhTitle string // chinese title for configuration collection
EnTitle string // chinese description of the configuration collection
EnDescription string // english description of the configuration collection
ZhDescription string // chinese description for english collection
configs []*Config // all configurations
}
func NewNpsConfigs(name, des string, level ConfigLevel) *NpsConfigs {
c := &NpsConfigs{}
c.configs = make([]*Config, 0)
c.Add(name, des, level)
return c
}
func (config *NpsConfigs) Add(name, des string, level ConfigLevel) {
config.configs = append(config.configs, &Config{ConfigName: name, Description: des, ConfigLevel: level})
// insert one config into configs
func (config *NpsConfigs) Add(cfg *Config) {
config.configs = append(config.configs, cfg)
}
// get all configs
func (config *NpsConfigs) GetAll() []*Config {
return config.configs
}

View File

@ -22,9 +22,17 @@ const (
type ConfigLevel uint8
const (
CONFIG_LEVEL_CLIENT ConfigLevel = iota
CONFIG_LEVEL_PLUGIN
CONFIG_LEVEL_GLOBAL
CONFIG_LEVEL_CLIENT ConfigLevel = iota // client-level configuration
CONFIG_LEVEL_PLUGIN // plugin level control
CONFIG_LEVEL_GLOBAL // global configuration
)
type ConfigInputType uint8
const (
CONFIG_INPUT_TEXT ConfigInputType = iota // show as single line input box
CONFIG_INPUT_SWITCH // show as switch
CONFIG_INPUT_TEXTAREA // show as a multi-line input box
)
var (