mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-21 16:08:24 +03:00
Auto populate config settings
This commit is contained in:
parent
25d4bb8d6c
commit
db29a1b6a2
@ -100,6 +100,9 @@ class Config
|
||||
|
||||
### Public ###
|
||||
|
||||
getSettings: ->
|
||||
_.deepExtend(@settings, @defaultSettings)
|
||||
|
||||
# Retrieves the setting for the given key.
|
||||
#
|
||||
# keyPath - The {String} name of the key to retrieve
|
||||
|
@ -7,20 +7,55 @@ _ = require 'underscore'
|
||||
# Internal #
|
||||
###
|
||||
|
||||
Editor = require 'editor'
|
||||
|
||||
module.exports =
|
||||
class GeneralConfigPanel extends ConfigPanel
|
||||
@content: ->
|
||||
@form id: 'general-config-panel', class: 'form-horizontal', =>
|
||||
|
||||
form: null
|
||||
|
||||
initialize: ->
|
||||
@appendSettings(namespace, settings) for namespace, settings of config.getSettings()
|
||||
super
|
||||
|
||||
appendSettings: (namespace, settings) ->
|
||||
return if _.isEmpty(settings)
|
||||
|
||||
appendSetting = (namespace, name, value) ->
|
||||
@div class: 'control-group', =>
|
||||
@div class: 'controls', =>
|
||||
if _.isBoolean(value)
|
||||
appendCheckbox.call(this, namespace, name, value)
|
||||
else if _.isArray(value)
|
||||
appendArray.call(this, namespace, name, value)
|
||||
else
|
||||
appendEditor.call(this, namespace, name, value)
|
||||
|
||||
appendCheckbox = (namespace, name, value) ->
|
||||
englishName = _.uncamelcase(name)
|
||||
keyPath = "#{namespace}.#{name}"
|
||||
@div class: 'checkbox', =>
|
||||
@label for: keyPath, =>
|
||||
@input id: keyPath, type: 'checkbox'
|
||||
@text englishName
|
||||
|
||||
appendEditor = (namespace, name, value) ->
|
||||
englishName = _.uncamelcase(name)
|
||||
keyPath = "#{namespace}.#{name}"
|
||||
type = if _.isNumber(value) then 'number' else 'string'
|
||||
@label class: 'control-label', englishName
|
||||
@div class: 'controls', =>
|
||||
@subview keyPath.replace('.', ''), new Editor(mini: true, attributes: {id: keyPath, type: type})
|
||||
|
||||
appendArray = (namespace, name, value) ->
|
||||
englishName = _.uncamelcase(name)
|
||||
@label class: 'control-label', englishName
|
||||
@div class: 'controls', =>
|
||||
@text value.join(", ")
|
||||
|
||||
@append $$ ->
|
||||
@fieldset =>
|
||||
@legend "General Settings"
|
||||
|
||||
@div class: 'control-group', =>
|
||||
@div class: 'checkbox', =>
|
||||
@label for: 'core.hideGitIgnoredFiles', =>
|
||||
@input id: 'core.hideGitIgnoredFiles', type: 'checkbox'
|
||||
@text 'Hide Git-Ignored Files'
|
||||
|
||||
@div class: 'checkbox', =>
|
||||
@label for: 'core.autosave', =>
|
||||
@input id: 'core.autosave', type: 'checkbox'
|
||||
@text 'Auto-Save on Focus Change'
|
||||
@legend "#{_.uncamelcase(namespace)} settings"
|
||||
appendSetting.call(this, namespace, name, value) for name, value of settings
|
||||
|
Loading…
Reference in New Issue
Block a user