@@ -51,6 +51,7 @@ export default class Browser extends DashboardView {
51
51
52
52
relation : null ,
53
53
counts : { } ,
54
+ filteredCounts : { } ,
54
55
clp : { } ,
55
56
filters : new List ( ) ,
56
57
ordering : '-createdAt' ,
@@ -320,9 +321,21 @@ export default class Browser extends DashboardView {
320
321
return data ;
321
322
}
322
323
324
+ async fetchParseDataCount ( source , filters ) {
325
+ const query = queryFromFilters ( source , filters ) ;
326
+ const count = await query . count ( { useMasterKey : true } ) ;
327
+ return count ;
328
+ }
329
+
323
330
async fetchData ( source , filters = new List ( ) , last ) {
324
331
const data = await this . fetchParseData ( source , filters ) ;
325
- this . setState ( { data : data , filters, lastMax : 200 } ) ;
332
+ var filteredCounts = { ...this . state . filteredCounts } ;
333
+ if ( filters . length > 0 ) {
334
+ filteredCounts [ source ] = await this . fetchParseDataCount ( source , filters ) ;
335
+ } else {
336
+ delete filteredCounts [ source ] ;
337
+ }
338
+ this . setState ( { data : data , filters, lastMax : 200 , filteredCounts : filteredCounts } ) ;
326
339
}
327
340
328
341
async fetchRelation ( relation , filters = new List ( ) ) {
@@ -781,9 +794,19 @@ export default class Browser extends DashboardView {
781
794
columns [ name ] = info ;
782
795
} ) ;
783
796
797
+ var count ;
798
+ if ( this . state . relation ) {
799
+ count = this . state . relationCount ;
800
+ } else {
801
+ if ( className in this . state . filteredCounts ) {
802
+ count = this . state . filteredCounts [ className ] ;
803
+ } else {
804
+ count = this . state . counts [ className ] ;
805
+ }
806
+ }
784
807
browser = (
785
808
< DataBrowser
786
- count = { this . state . relation ? this . state . relationCount : this . state . counts [ className ] }
809
+ count = { count }
787
810
perms = { this . state . clp [ className ] }
788
811
schema = { schema }
789
812
userPointers = { userPointers }
0 commit comments