diff --git a/src/facilities/incubator/incubatorInteract.js b/src/facilities/incubator/incubatorInteract.js index 8a4b4660ff8a77ae6f99dc9f717966873117fd9e..54ff1d4c5c97e137488bcebcf37c60afbd7e417b 100644 --- a/src/facilities/incubator/incubatorInteract.js +++ b/src/facilities/incubator/incubatorInteract.js @@ -133,10 +133,10 @@ App.UI.incubator = function() { */ if (0 < _SL) { const sortingBar = document.createElement("div"); + sortingBar.id = "sorting-bar"; sortingBar.classList.add("incubator-underscore"); V.sortIncubatorList = V.sortIncubatorList || 'Unsorted'; - App.UI.DOM.appendNewElement("span", sortingBar, "Sorting: ", "note"); linkArray = []; const sortingOptions = new Map([ @@ -145,24 +145,7 @@ App.UI.incubator = function() { ["Pregnancy Week", sortByPregnancyWeek], ["Number of Children", sortByPregnancyCount], ]); - for (const [title, func] of sortingOptions) { - if (V.sortIncubatorList === title) { - linkArray.push(App.UI.DOM.makeElement("span", title, "bold")); - } else { - linkArray.push( - App.UI.DOM.link( - title, - () => { - V.sortIncubatorList = title; - func(); - refresh(); - } - ) - ); - } - } - - sortingBar.append(App.UI.DOM.generateLinksStrip(linkArray)); + sortingBar.append(sortingBarFunc(sortingOptions)); el.append(sortingBar); } @@ -452,6 +435,33 @@ App.UI.incubator = function() { jQuery("#content-tank-babies").empty().append(tankBabies()); } + /** + * @returns {HTMLElement} + */ + function sortingBarFunc(sortingOptions) { + const el = document.createElement("span"); + App.UI.DOM.appendNewElement("span", el, "Sorting: ", "note"); + const linkArray = []; + for (const [title, func] of sortingOptions) { + if (V.sortIncubatorList === title) { + linkArray.push(App.UI.DOM.makeElement("span", title, "bold")); + } else { + linkArray.push( + App.UI.DOM.link( + title, + () => { + V.sortIncubatorList = title; + func(); + jQuery("#sorting-bar").empty().append(sortingBarFunc(sortingOptions)); + } + ) + ); + } + } + el.append(App.UI.DOM.generateLinksStrip(linkArray)); + return el; + } + function sortByName() { let $sortedIncubatorPossibles = $('#qlIncubator p.possible').detach(); $sortedIncubatorPossibles = sortDomObjects($sortedIncubatorPossibles, 'data-name');