diff --git a/packages/zowe-explorer/src/dataset/ZoweDatasetNode.ts b/packages/zowe-explorer/src/dataset/ZoweDatasetNode.ts index bb758876a6..2703dd43e9 100644 --- a/packages/zowe-explorer/src/dataset/ZoweDatasetNode.ts +++ b/packages/zowe-explorer/src/dataset/ZoweDatasetNode.ts @@ -155,6 +155,22 @@ export class ZoweDatasetNode extends ZoweTreeNode implements IZoweDatasetTreeNod return; } + const updateStats = (node: IZoweDatasetTreeNode, item: any): void => { + if ("m4date" in item) { + const { m4date, mtime, msec }: { m4date: string; mtime: string; msec: string } = item; + node.stats = { + user: item.user, + modifiedDate: dayjs(`${m4date} ${mtime}:${msec}`).toDate(), + }; + } else if ("id" in item || "changed" in item) { + // missing keys from API response; check for FTP keys + node.stats = { + user: item.id, + modifiedDate: item.changed ? dayjs(item.changed).toDate() : undefined, + }; + } + } + // push nodes to an object with property names to avoid duplicates const elementChildren: { [k: string]: ZoweDatasetNode } = {}; for (const response of responses) { @@ -169,6 +185,7 @@ export class ZoweDatasetNode extends ZoweTreeNode implements IZoweDatasetTreeNod for (const item of response.apiResponse.items ?? response.apiResponse) { const existing = this.children.find((element) => element.label.toString() === item.dsname); if (existing) { + updateStats(existing, item); elementChildren[existing.label.toString()] = existing; // Creates a ZoweDatasetNode for a PDS } else if (item.dsorg === "PO" || item.dsorg === "PO-E") { @@ -262,19 +279,7 @@ export class ZoweDatasetNode extends ZoweTreeNode implements IZoweDatasetTreeNod } // get user and last modified date for sorting, if available - if ("m4date" in item) { - const { m4date, mtime, msec }: { m4date: string; mtime: string; msec: string } = item; - temp.stats = { - user: item.user, - modifiedDate: dayjs(`${m4date} ${mtime}:${msec}`).toDate(), - }; - } else if ("id" in item || "changed" in item) { - // missing keys from API response; check for FTP keys - temp.stats = { - user: item.id, - modifiedDate: item.changed ? dayjs(item.changed).toDate() : undefined, - }; - } + updateStats(temp, item); elementChildren[temp.label.toString()] = temp; } }