Skip to content

Commit 6747ec6

Browse files
authored
feat: Add icon for collection documents list refresh (#264)
1 parent 9a5876b commit 6747ec6

File tree

5 files changed

+34
-28
lines changed

5 files changed

+34
-28
lines changed

package.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,11 @@
330330
},
331331
{
332332
"command": "mdb.refreshDocumentList",
333-
"title": "Refresh"
333+
"title": "Refresh",
334+
"icon": {
335+
"light": "images/light/refresh.svg",
336+
"dark": "images/dark/refresh.svg"
337+
}
334338
},
335339
{
336340
"command": "mdb.copyCollectionName",
@@ -515,6 +519,11 @@
515519
"when": "view == mongoDBConnectionExplorer && viewItem == documentListTreeItem",
516520
"group": "inline"
517521
},
522+
{
523+
"command": "mdb.refreshDocumentList",
524+
"when": "view == mongoDBConnectionExplorer && viewItem == documentListTreeItem",
525+
"group": "inline"
526+
},
518527
{
519528
"command": "mdb.viewCollectionDocuments",
520529
"when": "view == mongoDBConnectionExplorer && viewItem == documentListTreeItem"

src/explorer/collectionTreeItem.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ export default class CollectionTreeItem extends vscode.TreeItem
325325
});
326326
}
327327

328-
refreshDocumentCount = async (): Promise<boolean> => {
328+
refreshDocumentCount = async (): Promise<number> => {
329329
try {
330330
// We fetch the document when we expand in order to show
331331
// the document count in the document list tree item `description`.
@@ -334,10 +334,10 @@ export default class CollectionTreeItem extends vscode.TreeItem
334334
vscode.window.showInformationMessage(
335335
`Unable to fetch document count: ${err}`
336336
);
337-
return false;
337+
return 0;
338338
}
339339

340-
return true;
340+
return this.documentCount;
341341
};
342342

343343
async onDropCollectionClicked(): Promise<boolean> {

src/explorer/documentListTreeItem.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ export default class DocumentListTreeItem extends vscode.TreeItem
8686
// document list tree item, even when it hasn't been expanded.
8787
// When it is expanded, we want to ensure that number is up to date.
8888
// This function tells the parent collection folder to refresh the count.
89-
refreshDocumentCount: () => Promise<boolean>;
89+
refreshDocumentCount: () => Promise<number>;
9090

9191
_documentCount: number | null;
9292
private _maxDocumentsToShow: number;
@@ -108,7 +108,7 @@ export default class DocumentListTreeItem extends vscode.TreeItem
108108
isExpanded: boolean,
109109
maxDocumentsToShow: number,
110110
cachedDocumentCount: number | null,
111-
refreshDocumentCount: () => Promise<boolean>,
111+
refreshDocumentCount: () => Promise<number>,
112112
cacheIsUpToDate: boolean,
113113
existingCache: Array<DocumentTreeItem | ShowMoreDocumentsTreeItem>
114114
) {
@@ -267,11 +267,12 @@ export default class DocumentListTreeItem extends vscode.TreeItem
267267
}
268268

269269
async resetCache(): Promise<void> {
270-
this.isExpanded = false;
271270
this._childrenCache = [];
272271
this.cacheIsUpToDate = false;
273272

274-
await this.refreshDocumentCount();
273+
const docCount = await this.refreshDocumentCount();
274+
this._documentCount = docCount;
275+
this.description = formatDocCount(docCount);
275276
}
276277

277278
getChildrenCache(): Array<DocumentTreeItem | ShowMoreDocumentsTreeItem> {

src/test/suite/explorer/documentListTreeItem.test.ts

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ suite('DocumentListTreeItem Test Suite', () => {
2222
false,
2323
MAX_DOCUMENTS_VISIBLE,
2424
null,
25-
(): Promise<boolean> => Promise.resolve(true),
25+
(): Promise<number> => Promise.resolve(25),
2626
false,
2727
[]
2828
);
@@ -48,7 +48,7 @@ suite('DocumentListTreeItem Test Suite', () => {
4848
false,
4949
MAX_DOCUMENTS_VISIBLE,
5050
null,
51-
(): Promise<boolean> => Promise.resolve(true),
51+
(): Promise<number> => Promise.resolve(25),
5252
false,
5353
[]
5454
);
@@ -78,7 +78,7 @@ suite('DocumentListTreeItem Test Suite', () => {
7878
false,
7979
MAX_DOCUMENTS_VISIBLE,
8080
null,
81-
(): Promise<boolean> => Promise.resolve(true),
81+
(): Promise<number> => Promise.resolve(25),
8282
false,
8383
[]
8484
);
@@ -99,7 +99,7 @@ suite('DocumentListTreeItem Test Suite', () => {
9999
false,
100100
MAX_DOCUMENTS_VISIBLE,
101101
null,
102-
(): Promise<boolean> => Promise.resolve(true),
102+
(): Promise<number> => Promise.resolve(25),
103103
false,
104104
[]
105105
);
@@ -122,7 +122,7 @@ suite('DocumentListTreeItem Test Suite', () => {
122122
false,
123123
MAX_DOCUMENTS_VISIBLE,
124124
null,
125-
(): Promise<boolean> => Promise.resolve(true),
125+
(): Promise<number> => Promise.resolve(25),
126126
false,
127127
[]
128128
);
@@ -142,7 +142,7 @@ suite('DocumentListTreeItem Test Suite', () => {
142142
false,
143143
MAX_DOCUMENTS_VISIBLE,
144144
25,
145-
(): Promise<boolean> => Promise.resolve(true),
145+
(): Promise<number> => Promise.resolve(25),
146146
false,
147147
[]
148148
);
@@ -169,7 +169,7 @@ suite('DocumentListTreeItem Test Suite', () => {
169169
false,
170170
MAX_DOCUMENTS_VISIBLE,
171171
25,
172-
(): Promise<boolean> => Promise.resolve(true),
172+
(): Promise<number> => Promise.resolve(25),
173173
false,
174174
[]
175175
);
@@ -196,7 +196,7 @@ suite('DocumentListTreeItem Test Suite', () => {
196196
false,
197197
MAX_DOCUMENTS_VISIBLE,
198198
25,
199-
(): Promise<boolean> => Promise.resolve(true),
199+
(): Promise<number> => Promise.resolve(25),
200200
false,
201201
[]
202202
);
@@ -228,7 +228,7 @@ suite('DocumentListTreeItem Test Suite', () => {
228228
false,
229229
MAX_DOCUMENTS_VISIBLE,
230230
25,
231-
(): Promise<boolean> => Promise.resolve(true),
231+
(): Promise<number> => Promise.resolve(25),
232232
false,
233233
[]
234234
);
@@ -261,9 +261,9 @@ suite('DocumentListTreeItem Test Suite', () => {
261261
false,
262262
MAX_DOCUMENTS_VISIBLE,
263263
maxDocs,
264-
(): Promise<boolean> => {
264+
(): Promise<number> => {
265265
maxDocs = 25;
266-
return Promise.resolve(true);
266+
return Promise.resolve(25);
267267
},
268268
false,
269269
[]
@@ -278,7 +278,7 @@ suite('DocumentListTreeItem Test Suite', () => {
278278
false,
279279
MAX_DOCUMENTS_VISIBLE,
280280
maxDocs,
281-
(): Promise<boolean> => Promise.resolve(true),
281+
(): Promise<number> => Promise.resolve(25),
282282
false,
283283
[]
284284
);
@@ -303,7 +303,7 @@ suite('DocumentListTreeItem Test Suite', () => {
303303
false,
304304
MAX_DOCUMENTS_VISIBLE,
305305
null,
306-
(): Promise<boolean> => Promise.resolve(true),
306+
(): Promise<number> => Promise.resolve(25),
307307
false,
308308
[]
309309
);
@@ -322,7 +322,7 @@ suite('DocumentListTreeItem Test Suite', () => {
322322
false,
323323
MAX_DOCUMENTS_VISIBLE,
324324
null,
325-
(): Promise<boolean> => Promise.resolve(true),
325+
(): Promise<number> => Promise.resolve(25),
326326
false,
327327
[]
328328
);
@@ -343,7 +343,7 @@ suite('DocumentListTreeItem Test Suite', () => {
343343
false,
344344
MAX_DOCUMENTS_VISIBLE,
345345
25,
346-
(): Promise<boolean> => Promise.resolve(true),
346+
(): Promise<number> => Promise.resolve(25),
347347
false,
348348
[]
349349
);
@@ -360,7 +360,7 @@ suite('DocumentListTreeItem Test Suite', () => {
360360
false,
361361
MAX_DOCUMENTS_VISIBLE,
362362
2200000,
363-
(): Promise<boolean> => Promise.resolve(true),
363+
(): Promise<number> => Promise.resolve(25),
364364
false,
365365
[]
366366
);

src/test/suite/mdbExtensionController.test.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -480,10 +480,6 @@ suite('MDBExtensionController Test Suite', function () {
480480
docListTreeItem.cacheIsUpToDate === false,
481481
'Expected document list cache to be out of date.'
482482
);
483-
assert(
484-
docListTreeItem.isExpanded === false,
485-
'Expected document list cache to be out of date.'
486-
);
487483
assert(
488484
mockTreeItem.documentCount === 10000,
489485
`Expected document count to be 10000, found ${mockTreeItem.documentCount}.`

0 commit comments

Comments
 (0)