diff --git a/src/js/slaveListing.js b/src/js/slaveListing.js index 06c4f51a07ceffe92920ed22bf0023ee40d6e383..964334306e073efa9c2269b241b023bbf2724c16 100644 --- a/src/js/slaveListing.js +++ b/src/js/slaveListing.js @@ -534,23 +534,32 @@ App.UI.SlaveList.SlaveInteract.penthouseInteract = function(slave) { * @returns {HTMLElement} */ App.UI.SlaveList.sortingLinks = function(passage) { - const outerDiv = document.createElement("div"); + const div = document.createElement("div"); const textify = string => capFirstChar(string.replace(/([A-Z])/g, " $1")); - let innerDiv = App.UI.DOM.makeElement("div", "Sort by: ", "indent"); - let order = ["devotion", "trust", "name", "assignment", "seniority", "actualAge", "visualAge", "physicalAge", "weeklyIncome", "health", "weight", "muscles", "intelligence", "sexDrive", "pregnancy"] - .map(so => V.sortSlavesBy !== so ? - App.UI.DOM.passageLink(textify(so), passage, () => { V.sortSlavesBy = so; }) : textify(so)); - innerDiv.append(App.UI.DOM.generateLinksStrip(order)); - outerDiv.append(innerDiv); + let span = App.UI.DOM.makeElement("span", "Sort by: "); + let order = ["devotion", "trust", "name", "assignment", "seniority", "actualAge", "visualAge", "physicalAge", "weeklyIncome", "health", "weight", "muscles", "intelligence", "sexDrive", "pregnancy"]; + const select = App.UI.DOM.appendNewElement("select", span); + for (const so of order) { + const choice = App.UI.DOM.appendNewElement("option", select, textify(so)); + choice.value = so; + if (V.sortSlavesBy === so) { + choice.selected = true; + } + } + select.onchange = () => { + V.sortSlavesBy = select.options[select.selectedIndex].value; + App.UI.reload(); + }; + div.append(span); - innerDiv = App.UI.DOM.makeElement("div", "Sort direction: ", "indent"); - order = ["descending", "ascending"].map(so => V.sortSlavesOrder !== so ? - App.UI.DOM.passageLink(textify(so), passage, () => { V.sortSlavesOrder = so; }) : textify(so)); - innerDiv.append(App.UI.DOM.generateLinksStrip(order)); - outerDiv.append(innerDiv); + span = App.UI.DOM.makeElement("span", " Sort direction: "); + order = ["descending", "ascending"]; + span.append(App.UI.DOM.generateLinksStrip(order.map(so => V.sortSlavesOrder !== so ? + App.UI.DOM.passageLink(textify(so), passage, () => { V.sortSlavesOrder = so; }) : textify(so)))); + div.append(span); - return outerDiv; + return div; }; /**