file (and similar for any other locales you want to support) with the same English tokens but with language specific values and the plugin will use that instead of falling back to the English.
I was looking how to create a site setting that validates a username, but found there’s a username type to do this. Here the list of site setting types we have today:
email
username
integer
regex
string
list
enum
Also, you can do custom validations for your plugin settings, it accepts a validator field that expects a Ruby class. You use it like this.
Again you need to use a Computed Property and format as safe html. This is EmberJS not vanilla JavaScript. You can’t put ‘code’ directly into templates. Read the ember guides.
Embora type_supervisor.load_setting não receba diretamente o valor, ele tem acesso aos padrões porque eles estão sendo passados quando o TypeSupervisor é inicializado via DefaultsProvider.
type_supervisor.load_setting então chama get_data_type que chama parse_value_type() que deve levantar um ArgumentError se o tipo não puder ser detectado.
Acho que toda essa sequência é chamada por load_settings no modelo SiteSetting, e não vejo nenhum tratamento de exceção em nenhum lugar da pilha. Mas não estou vendo nenhuma saída de erro no log do servidor, ou em qualquer outro lugar.
Parece que deveria haver algum tipo de feedback do usuário ou log de erro para dizer que uma configuração falhou ao analisar.
Se entendi bem, você está dizendo que usar -1 como valor padrão em uma configuração faz com que o botão "Configurações" não apareça. Você consegue reproduzir esse comportamento todas as vezes?
Isso é estranho. Não vejo nada de errado com suas configurações, não tenho certeza de como é possível falhar na análise.
Ok, em ambos os casos (dev e produção), acredito que foi porque a pasta no diretório de plugins não correspondia a county-fence. É por isso que a configuração não estava sendo exibida e talvez pudesse causar outros problemas também.
Uma lista completa dos tipos de Configurações do Site está disponível no código do type_supervisor.rb. Logo acima, você também pode ver as chaves filhas válidas que uma Configuração do Site aceita.
Um exemplo mais avançado que usa mais dessas opções pode ser encontrado no componente de tema discourse-welcome-link. Esses mesmos valores devem funcionar dentro de um plugin, mas o arquivo estaria em config/settings.yml.