Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions src/models/mongodb-instance.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
var MongoDBInstance = require('mongodb-instance-model');
var MongoDBCollection = require('./mongodb-collection');
var scoutClientMixin = require('./scout-client-mixin');
var filterableMixin = require('ampersand-collection-filterable');
var selectableMixin = require('./selectable-collection-mixin');
var toNS = require('mongodb-ns');

/**
* A user selectable collection of `MongoDBCollection`'s with `specialish`
* collections filtered out.
*/
var MongoDBCollectionOnInstanceCollection = MongoDBCollection.Collection.extend(selectableMixin, {
var MongoDBCollectionOnInstanceCollection = MongoDBCollection.Collection.extend({
namespace: 'MongoDBCollectionOnInstanceCollection',
model: MongoDBCollection,
parse: function(res) {
return res.filter(function(d) {
return !toNS(d._id).specialish;
});
}
});
}, filterableMixin, selectableMixin);

/**
* Metadata for a MongoDB Instance, such as a `db.hostInfo()`, `db.listDatabases()`,
Expand Down
3 changes: 3 additions & 0 deletions src/sidebar/collection-filter.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
var View = require('ampersand-view');
var debug = require('debug')('scout:sidebar:collection-filter');

var CollectionFilterView = View.extend({
template: require('./collection-filter.jade'),
Expand All @@ -22,7 +23,9 @@ var CollectionFilterView = View.extend({
this.search = this.input.value.trim();
},
applyFilter: function() {
debug('applying filter for `%s`', this.search);
this.parent.filterCollections(this.search);
debug('filter applied');
}
});
module.exports = CollectionFilterView;
14 changes: 5 additions & 9 deletions src/sidebar/index.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,8 @@
var View = require('ampersand-view');
var _ = require('lodash');
var mousetrap = require('mousetrap');
var CollectionFilterView = require('./collection-filter');
var CollectionListView = require('./collection-list');

function fast_filter_collection(collection, pattern) {
var re = new RegExp(pattern || '.*');
collection.filter(function(model) {
return re.test(model.getId());
});
}

var SidebarView = View.extend({
props: {
open: {
Expand Down Expand Up @@ -63,7 +55,11 @@ var SidebarView = View.extend({
}
},
filterCollections: function(pattern) {
_.defer(fast_filter_collection, this.collection, pattern);
var re = new RegExp(pattern);

this.collection.filter(function(model) {
return re.test(model.getId());
});
}
});

Expand Down