mirror of
https://github.com/atom/atom.git
synced 2026-01-23 22:08:08 -05:00
Add ability to add panels to the config view
This commit is contained in:
committed by
Corey Johnson & Kevin Sawicki
parent
8980a97895
commit
2f60ffcfce
@@ -1,9 +1,30 @@
|
||||
{View} = require 'space-pen'
|
||||
{View, $$} = require 'space-pen'
|
||||
$ = require 'jquery'
|
||||
_ = require 'underscore'
|
||||
|
||||
module.exports =
|
||||
class ConfigView extends View
|
||||
@content: ->
|
||||
@div id: 'config-view', "Config View"
|
||||
@div id: 'config-view', =>
|
||||
@ol id: 'panel-menu', outlet: 'panelMenu'
|
||||
@div id: 'panels', outlet: 'panels'
|
||||
|
||||
initialize: ->
|
||||
@panelsByName = {}
|
||||
document.title = "Atom Configuration"
|
||||
@on 'click', '#panel-menu li', (e) =>
|
||||
@showPanel($(e.target).attr('name'))
|
||||
|
||||
addPanel: (name, panel) ->
|
||||
panelItem = $$ -> @li name: name, name
|
||||
@panelMenu.append(panelItem)
|
||||
panel.hide()
|
||||
@panelsByName[name] = panel
|
||||
@panels.append(panel)
|
||||
@showPanel(name) if _.values(@panelsByName).length == 1
|
||||
|
||||
showPanel: (name) ->
|
||||
@panels.children().hide()
|
||||
@panelMenu.children('.active').removeClass('active')
|
||||
@panelsByName[name].show()
|
||||
@panelMenu.children("[name='#{name}']").addClass('active')
|
||||
|
||||
Reference in New Issue
Block a user