diff --git a/WNPRC_EHR/resources/web/ehr/ext3/ehrGridFormPanel.js b/WNPRC_EHR/resources/web/ehr/ext3/ehrGridFormPanel.js index 34c7899ab..829869620 100644 --- a/WNPRC_EHR/resources/web/ehr/ext3/ehrGridFormPanel.js +++ b/WNPRC_EHR/resources/web/ehr/ext3/ehrGridFormPanel.js @@ -1077,8 +1077,8 @@ EHR.ext.GridFormPanel = Ext.extend(Ext.Panel, if (extension === 'xlsx' || extension === 'xls') { // need to get the date it was uploaded, // since 'record' only provides the date when the actual file was created - promises.push(getFileHistory(virologyResultsFolder, record.data.name).then((history) => { - files.push({"name": history[0], "uploaded": history[1][0].data.date}) + promises.push(getFileHistory(virologyResultsFolder, record.data.name).then((file) => { + files.push(file) })) } @@ -1113,6 +1113,10 @@ EHR.ext.GridFormPanel = Ext.extend(Ext.Panel, importFromFileWindow.removeAll(); importFromFileWindow.add(selectFilePanel); importFromFileWindow.doLayout(); + }).catch((e) => { + Ext.Msg.hide(); + console.error(e); + Ext.Msg.alert('Error', 'Unable to build the list of files to import.'); }) }, @@ -1130,14 +1134,17 @@ EHR.ext.GridFormPanel = Ext.extend(Ext.Panel, } }); function getFileHistory(fileSystem, filename) { + // Always resolves so one unreadable file still leaves the rest importable. return new Promise(resolve => { fileSystem.getHistory({ path: '/' + filename, success: function(fileSystem,path,history) { - resolve([filename,history]); + // A file placed on the server outside of an upload has no audit record. + resolve({name: filename, uploaded: history && history.length ? history[0].data.date : null}); }, failure: function(f) { - reject(f); + console.error('Unable to read file history for ' + filename, f); + resolve({name: filename, uploaded: null}); } }) }); @@ -1307,7 +1314,7 @@ EHR.ext.GridFormPanel = Ext.extend(Ext.Panel, html: '' + file.name + '' }, { - html: '' + new Date(file.uploaded).format("Y-m-d H:i")+ '' + html: '' + (file.uploaded ? new Date(file.uploaded).format("Y-m-d H:i") : 'Unknown') + '' }, ];