diff --git a/content/multipledataset.html b/content/multipledataset.html index 99564ee0..6a436a0d 100644 --- a/content/multipledataset.html +++ b/content/multipledataset.html @@ -68,7 +68,7 @@ draft: false processingIndicator.isActive = true var chks = [] var chks = $("#form_datFiles > ul > ul > li >input[type=checkbox]:checked") - var proms = Array.from(chks).flatMap((c) => { + var proms = Array.from(chks).map((c) => { switch (c.value) { case "abs": return getAbsFilesName().map((f) => AbsDataFile.loadAsync(f)); @@ -81,7 +81,18 @@ draft: false break; } }) - window.dats = await Promise.all(proms) + window.dats=[] + for(const subproms of proms){ + var sub = await Promise.all(subproms) + for(mol of uniq(sub.map(d=>d.molecule))){ + submol=sub.filter(d=>d.molecule==mol) + TBE=sub.find((d)=>d.method.isTBE) + for(dat of submol.filter((d)=>d!==TBE)){ + dat.CopyExcitationsTypeFrom(TBE) + } + } + window.dats=window.dats.concat(sub) + } processingIndicator.isActive = false reloadFileSelector() await reloadSelect() diff --git a/static/js/data.js b/static/js/data.js index a3070f80..740d49e3 100644 --- a/static/js/data.js +++ b/static/js/data.js @@ -207,6 +207,16 @@ class dataFileBase { this.DOI = null this.sourceFile = null } + CopyExcitationsTypeFrom(data) { + for (const ex of this.excitations) { + const ex2=data.excitations.find((e)=>{ + return (JSON.stringify(e.initial)===JSON.stringify(ex.initial)) && (JSON.stringify(e.final)===JSON.stringify(ex.final)) + }) + if(ex2!==undefined){ + ex.type=ex2.type + } + } + } static async loadAsync(file) { switch (trueTypeOf(file)) { case String.name: