mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-21 16:08:24 +03:00
Add filter to packages config panel
This commit is contained in:
parent
27822fb37c
commit
4ef5082887
@ -1,10 +1,12 @@
|
||||
{View} = require 'space-pen'
|
||||
$ = require 'jquery'
|
||||
PackageConfigView = require './package-config-view'
|
||||
ConfigPanel = require './config-panel'
|
||||
packageManager = require './package-manager'
|
||||
stringScore = require 'stringscore'
|
||||
|
||||
### Internal ###
|
||||
module.exports =
|
||||
class AvailablePackagesConfigPanel extends ConfigPanel
|
||||
class AvailablePackagesConfigPanel extends View
|
||||
@content: ->
|
||||
@div class: 'available-packages', =>
|
||||
@div outlet: 'loadingArea', class: 'alert alert-info loading-area', =>
|
||||
@ -33,4 +35,12 @@ class AvailablePackagesConfigPanel extends ConfigPanel
|
||||
@packagesArea.append(new PackageConfigView(pack, @packageEventEmitter))
|
||||
@packageEventEmitter.trigger('available-packages-loaded', @packages)
|
||||
|
||||
filterPackages: (filterString) ->
|
||||
packageViews = @packagesArea.children()
|
||||
for packageView in packageViews
|
||||
if /^\s*$/.test(filterString) or stringScore(packageView.getAttribute('name'), filterString)
|
||||
$(packageView).show()
|
||||
else
|
||||
$(packageView).hide()
|
||||
|
||||
getPackageCount: -> @packages.length
|
||||
|
@ -17,7 +17,9 @@ class GeneralConfigPanel extends ConfigPanel
|
||||
form: null
|
||||
|
||||
initialize: ->
|
||||
@appendSettings(namespace, settings) for namespace, settings of config.getSettings()
|
||||
for namespace, settings of config.getSettings()
|
||||
continue unless namespace is 'editor' or namespace is 'core'
|
||||
@appendSettings(namespace, settings)
|
||||
super
|
||||
|
||||
appendSettings: (namespace, settings) ->
|
||||
|
@ -1,11 +1,14 @@
|
||||
$ = require 'jquery'
|
||||
_ = require 'underscore'
|
||||
{View} = require 'space-pen'
|
||||
ConfigPanel = require './config-panel'
|
||||
PackageConfigView = require './package-config-view'
|
||||
packageManager = require './package-manager'
|
||||
stringScore = require 'stringscore'
|
||||
|
||||
### Internal ###
|
||||
module.exports =
|
||||
class InstalledPackagesConfigPanel extends ConfigPanel
|
||||
class InstalledPackagesConfigPanel extends View
|
||||
@content: ->
|
||||
@div class: 'installed-packages', =>
|
||||
@div outlet: 'loadingArea', class: 'alert alert-info loading-area', =>
|
||||
@ -41,4 +44,12 @@ class InstalledPackagesConfigPanel extends ConfigPanel
|
||||
else
|
||||
@packagesArea.children(":eq(#{index})").before(view)
|
||||
|
||||
filterPackages: (filterString) ->
|
||||
packageViews = @packagesArea.children()
|
||||
for packageView in packageViews
|
||||
if /^\s*$/.test(filterString) or stringScore(packageView.getAttribute('name'), filterString)
|
||||
$(packageView).show()
|
||||
else
|
||||
$(packageView).hide()
|
||||
|
||||
getPackageCount: -> @packages.length
|
||||
|
@ -3,6 +3,7 @@ InstalledPackagesConfigPanel = require './installed-packages-config-panel'
|
||||
AvailablePackagesConfigPanel = require './available-packages-config-panel'
|
||||
_ = require 'underscore'
|
||||
EventEmitter = require 'event-emitter'
|
||||
Editor = require 'editor'
|
||||
|
||||
### Internal ###
|
||||
class PackageEventEmitter
|
||||
@ -21,6 +22,8 @@ class PackageConfigPanel extends ConfigPanel
|
||||
@a 'Available', =>
|
||||
@span class: 'badge pull-right', outlet: 'availableCount'
|
||||
|
||||
@subview 'packageFilter', new Editor(mini: true, attributes: {id: 'package-filter'})
|
||||
|
||||
initialize: ->
|
||||
@packageEventEmitter = new PackageEventEmitter()
|
||||
@installed = new InstalledPackagesConfigPanel(@packageEventEmitter)
|
||||
@ -46,3 +49,7 @@ class PackageConfigPanel extends ConfigPanel
|
||||
|
||||
@packageEventEmitter.on 'available-packages-loaded', =>
|
||||
@availableCount.text(@available.getPackageCount())
|
||||
|
||||
@packageFilter.getBuffer().on 'contents-modified', =>
|
||||
@available.filterPackages(@packageFilter.getText())
|
||||
@installed.filterPackages(@packageFilter.getText())
|
||||
|
@ -110,6 +110,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
#package-filter {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
.btn-retry {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user