Skip to content

Commit 28afae9

Browse files
rueckstiesskangas
authored andcommitted
INT-155 show "no documents found" message when result is empty.
either if there are no documents in the collection, or if the refine query returned 0 documents.
1 parent 0b85e23 commit 28afae9

File tree

2 files changed

+33
-15
lines changed

2 files changed

+33
-15
lines changed

src/home/collection.jade

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,22 @@
77
.col-md-6
88
div(data-hook='stats-subview')
99
div(data-hook='refine-bar')
10-
.column-container(data-hook='json-sidebar-toggle-class')
11-
.column.main
12-
div(data-hook='fields-subview')
13-
.splitter
14-
button.btn.btn-link.splitter-button.splitter-button-open(title='View Sampled Documents')
15-
i.fa.fa-caret-left
16-
|  
17-
i.fa.fa-file-text-o
10+
div.hidden(data-hook='empty')
11+
ul.message-background.with-sidebar.centered: li
12+
p No documents found.
13+
div(data-hook='non-empty')
14+
.column-container(data-hook='json-sidebar-toggle-class')
15+
.column.main
16+
div(data-hook='fields-subview')
17+
.splitter
18+
button.btn.btn-link.splitter-button.splitter-button-open(title='View Sampled Documents')
19+
i.fa.fa-caret-left
20+
|  
21+
i.fa.fa-file-text-o
1822

19-
button.btn.btn-link.splitter-button.splitter-button-close(title='Hide Sampled Documents')
20-
i.fa.fa-file-text-o
21-
|  
22-
i.fa.fa-caret-right
23-
.column.side
24-
div(data-hook='documents-subview')
23+
button.btn.btn-link.splitter-button.splitter-button-close(title='Hide Sampled Documents')
24+
i.fa.fa-file-text-o
25+
|  
26+
i.fa.fa-caret-right
27+
.column.side
28+
div(data-hook='documents-subview')

src/home/collection.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,22 @@ var MongoDBCollectionView = View.extend({
4242
model: MongoDBCollection,
4343
schema: SampledSchema
4444
},
45+
showEmptyMessage: function() {
46+
this.queryByHook('empty').classList.remove('hidden');
47+
this.queryByHook('non-empty').classList.add('hidden');
48+
},
49+
hideEmptyMessage: function() {
50+
if (!this.rendered) return;
51+
this.queryByHook('empty').classList.add('hidden');
52+
this.queryByHook('non-empty').classList.remove('hidden');
53+
},
54+
onSchemaSync: function() {
55+
(this.schema.sample_size === 0) ? this.showEmptyMessage() : this.hideEmptyMessage();
56+
},
4557
initialize: function() {
4658
app.statusbar.watch(this, this.schema);
59+
this.listenTo(this.schema, 'sync', this.onSchemaSync.bind(this));
60+
this.listenTo(this.schema, 'request', this.hideEmptyMessage.bind(this));
4761
this.listenTo(app.queryOptions, 'change', this.onQueryChanged.bind(this));
4862
this.listenToAndRun(this.parent, 'change:ns', this.onCollectionChanged.bind(this));
4963
},
@@ -55,7 +69,7 @@ var MongoDBCollectionView = View.extend({
5569
return;
5670
}
5771
this.visible = true;
58-
72+
this.hideEmptyMessage();
5973
this.schema.ns = this.model._id = ns;
6074
debug('updating namespace to `%s`', ns);
6175
this.schema.reset();

0 commit comments

Comments
 (0)