From b4a282fb7a06b26cc0888cddd916bfe43f7ef774 Mon Sep 17 00:00:00 2001 From: Arkerthan <arkerthan@gmail.com> Date: Fri, 1 May 2020 11:30:08 +0200 Subject: [PATCH] convert summary options to new options system --- src/js/slaveSummaryWidgets.js | 22 +++---- src/uncategorized/summaryOptions.tw | 95 +++++++++++------------------ 2 files changed, 46 insertions(+), 71 deletions(-) diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js index 1a250b66c84..f7c636a2bfb 100644 --- a/src/js/slaveSummaryWidgets.js +++ b/src/js/slaveSummaryWidgets.js @@ -950,9 +950,10 @@ App.UI.SlaveSummary = function() { return res; } - function displayOptionsFragment() { - const res = document.createDocumentFragment(); - + /** + * @param {App.UI.OptionsGroup} optionsGroup + */ + function addOptions(optionsGroup) { // SAH is "Summarized, Abbreviated, Hidden" const SAHOptions = { "Summarized": 2, @@ -961,12 +962,11 @@ App.UI.SlaveSummary = function() { }; function appendOption(name, desc, options) { - res.append(App.UI.DOM.Widgets.optionSelector((value) => { - V.UI.slaveSummary.abbreviation[name] = value; - initDelegates(); - Engine.play(passage()); - }, - options, V.UI.slaveSummary.abbreviation[name], desc)); + const option = optionsGroup.addOption(desc, name, V.UI.slaveSummary.abbreviation); + option.addCallback(() => initDelegates()); + for (const key in options) { + option.addValue(key, options[key]); + } } function appendSAHOption(name, desc) { @@ -997,8 +997,6 @@ App.UI.SlaveSummary = function() { "Summarized": 2, "Hidden": 0 }); - - return res; } return { @@ -1006,6 +1004,6 @@ App.UI.SlaveSummary = function() { settingsChanged: settingsChanged, societyChanged: societyChanged, render: render, - displayOptionsFragment: displayOptionsFragment + addOptions: addOptions }; }(); diff --git a/src/uncategorized/summaryOptions.tw b/src/uncategorized/summaryOptions.tw index c839f964e85..f913886f8ff 100644 --- a/src/uncategorized/summaryOptions.tw +++ b/src/uncategorized/summaryOptions.tw @@ -11,51 +11,37 @@ <<set $nextLink = $storedLink>> <<set _passageSwitchHandler = App.EventHandlers.optionsChanged>> +<h1>Summary Options</h1> + <p class="scene-intro"> These options will affect the short slave summaries that appear on the main menu and the facility management screens. </p> -<h3 style="text-align:center">Main menu features</h3> -<<options $rulesAssistantMain "Summary Options">> - Rules Assistant visibility: - <<option 1 "Shown">> - <<option 0 "Hidden">> -<</options>> - -<<options $abbreviateSidebar "Summary Options">> - Facilities in the sidebar are - <<option 2 "Summarized">> - <<option 1 "Abbreviated">> -<</options>> - -<h3 style="text-align:center">Main Menu slave sorting</h3> -<<options $sortSlavesMain "Summary Options">> - Sorting main menu options are - <<option 1 "Shown">> - <<option 0 "Hidden">> -<</options>> +<h2>Main menu features</h2> + +<<set _options = new App.UI.OptionsGroup()>> + +<<run _options.addOption("Rules Assistant visibility", "rulesAssistantMain") +.addValue("Shown", 1).on().addValue("Hidden", 0).off()>> + +<<run _options.addOption("Facilities in the sidebar are", "abbreviateSidebar") +.addValueList([["Summarized", 2], ["Abbreviated", 1]])>> + +<<run _options.addOption("Sorting main menu options are", "sortSlavesMain") +.addValue("Shown", 1).on().addValue("Hidden", 0).off()>> <<if $sortSlavesMain > 0>> - <<options $sortSlavesOrder "Summary Options">> - in - <<option "ascending" "Ascending">> - <<option "descending" "Descending">> - <</options>> - - <<options $sortSlavesBy "Summary Options">> - order and are organized by - <<option "devotion" "Devotion">> - <<option "name" "Name">> - <<option "seniority" "Date purchased">> - <<option "actualAge" "Age">> - <<option "visualAge" "How old they look">> - <<option "physicalAge" "Age of their body">> - <<option "assignment" "Assignment">> - <<option "weeklyIncome" "Weekly Income">> - <</options>> + <<run _options.addOption("Sorting direction", "sortSlavesOrder") + .addValueList([["Ascending", "ascending"], ["Descending", "descending"]])>> + + <<run _options.addOption("Slaves are sorted by", "sortSlavesBy") + .addValueList([["Devotion", "devotion"], ["Name", "name"], ["Date purchased", "seniority"], ["Age", "actualAge"], + ["How old they look", "visualAge"], ["Age of their body", "physicalAge"], ["Assignment", "assignment"], ["Weekly Income", "weeklyIncome"]])>> <</if>> -<h3 style="text-align:center">Individual panels</h3> +<<print App.UI.DOM.includeDOM(_options.render())>> + +<h2>Individual panels</h2> Sample summary: <<= App.UI.SlaveList.render.listMarkup( [App.Utils.slaveIndexForId($activeSlave.ID)], @@ -63,35 +49,26 @@ Sample summary: App.UI.SlaveList.SlaveInteract.stdInteract )>> -<<options $slavePanelStyle "Summary Options">> - Panel style is - <<option 0 "None">> - <<option 1 "Line Seperators">> - <<option 2 "Card">> -<</options>> +<<set _options = new App.UI.OptionsGroup()>> -<<= App.UI.DOM.includeDOM(App.UI.SlaveSummary.displayOptionsFragment(), "dof") >> +<<run _options.addOption("Panel style is", "slavePanelStyle") +.addValueList([["None", 0], ["Line Seperator", 1], ["Card", 2]])>> -<<options $summaryStats "Summary Options">> - Granular slave stat numbers are - <<option 1 "Shown">> - <<option 0 "Hidden">> -<</options>> +<<run App.UI.SlaveSummary.addOptions(_options)>> -<<options $displayAssignments "Summary Options">> -Main menu assignment shortcuts are - <<option 1 "Shown">> - <<option 0 "Hidden">> -<</options>> +<<run _options.addOption("Granular slave stat numbers are", "summaryStats") +.addValue("Shown", 1).on().addValue("Hidden", 0).off()>> + +<<run _options.addOption("Main menu assignment shortcuts are", "displayAssignments") +.addValue("Shown", 1).on().addValue("Hidden", 0).off()>> <<if $showMissingSlaves>> - <<options $showMissingSlavesSD "Summary Options">> - Missing slave parents are - <<option true "Shown">> - <<option false "Hidden">> - <</options>> + <<run _options.addOption("Missing slave parents are", "showMissingSlavesSD") + .addValue("Shown", true).on().addValue("Hidden", false).off()>> <</if>> +<<print App.UI.DOM.includeDOM(_options.render())>> + <p style="font-style:italic"> [[FC Dev's preferred options|Summary Options ][$seeDesk = 0, $seeFCNN = 0, $sortSlavesBy = "devotion",$sortSlavesOrder = "descending",$sortSlavesMain = 0,$rulesAssistantMain = 1, $UI.slaveSummary.abbreviation = {devotion: 1, mental: 1, rules: 1, clothes: 2, health: 1, diet: 1, drugs: 1, hormoneBalance: 1, race: 1, genitalia: 1, physicals: 1, skills: 1, nationality: 1, rulesets: 1, clothes: 0, origins: 0} ,$abbreviateSidebar = 1]] </p> -- GitLab