From e3f589d6a50b392d1342e026f2a4485bd18dba62 Mon Sep 17 00:00:00 2001
From: lowercasedonkey <lowercasedonkey@gmail.com>
Date: Sat, 10 Jul 2021 00:37:44 -0400
Subject: [PATCH] switch to pulldown for slave sorting

---
 src/js/slaveListing.js | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/src/js/slaveListing.js b/src/js/slaveListing.js
index 06c4f51a07c..c50e278586c 100644
--- a/src/js/slaveListing.js
+++ b/src/js/slaveListing.js
@@ -538,16 +538,25 @@ App.UI.SlaveList.sortingLinks = function(passage) {
 	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));
+	let order = ["devotion", "trust", "name", "assignment", "seniority", "actualAge", "visualAge", "physicalAge", "weeklyIncome", "health", "weight", "muscles", "intelligence", "sexDrive", "pregnancy"];
+	const select = App.UI.DOM.appendNewElement("select", innerDiv);
+	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();
+	};
 	outerDiv.append(innerDiv);
 
 	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));
+	order = ["descending", "ascending"];
+	innerDiv.append(App.UI.DOM.generateLinksStrip(order.map(so => V.sortSlavesOrder !== so ?
+		App.UI.DOM.passageLink(textify(so), passage, () => { V.sortSlavesOrder = so; }) : textify(so))));
 	outerDiv.append(innerDiv);
 
 	return outerDiv;
-- 
GitLab