WebHost: weighted-options bugfixes (#3448)

* Fix improper css for word-break on player-options page

* Add default handling to weighted-options types

* Remove random-low/mid/high from Toggle, Choice, and TextChoice,

* Port key sorting for OptionList and OptionSet from player-options to weighted-options

* Ensure Choice and TextChoice values are set properly

* Remove debug line 🤦‍♂️
This commit is contained in:
Chris Wilson 2024-06-03 18:43:01 -04:00 committed by GitHub
parent c7eef13b33
commit 06e65c1dc6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 23 additions and 16 deletions

View File

@ -15,7 +15,7 @@ html {
border-radius: 8px; border-radius: 8px;
padding: 1rem; padding: 1rem;
color: #eeffeb; color: #eeffeb;
word-break: break-all; word-break: break-word;
} }
#player-options #player-options-header h1 { #player-options #player-options-header h1 {
margin-bottom: 0; margin-bottom: 0;

View File

@ -16,7 +16,7 @@ html{
border-radius: 8px; border-radius: 8px;
padding: 1rem; padding: 1rem;
color: #eeffeb; color: #eeffeb;
word-break: break-all; word-break: break-word;
#player-options-header{ #player-options-header{
h1{ h1{

View File

@ -1,9 +1,9 @@
{% macro Toggle(option_name, option) %} {% macro Toggle(option_name, option) %}
<table> <table>
<tbody> <tbody>
{{ RangeRow(option_name, option, "No", "false") }} {{ RangeRow(option_name, option, "No", "false", False, "true" if option.default else "false") }}
{{ RangeRow(option_name, option, "Yes", "true") }} {{ RangeRow(option_name, option, "Yes", "true", False, "true" if option.default else "false") }}
{{ RandomRows(option_name, option) }} {{ RandomRow(option_name, option) }}
</tbody> </tbody>
</table> </table>
{% endmacro %} {% endmacro %}
@ -18,10 +18,10 @@
<tbody> <tbody>
{% for id, name in option.name_lookup.items() %} {% for id, name in option.name_lookup.items() %}
{% if name != 'random' %} {% if name != 'random' %}
{{ RangeRow(option_name, option, option.get_option_name(id), name) }} {{ RangeRow(option_name, option, option.get_option_name(id), name, False, name if option.get_option_name(option.default)|lower == name|lower else None) }}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{{ RandomRows(option_name, option) }} {{ RandomRow(option_name, option) }}
</tbody> </tbody>
</table> </table>
{% endmacro %} {% endmacro %}
@ -72,7 +72,9 @@
</div> </div>
<table> <table>
<tbody> <tbody>
<!-- This table to be filled by JS --> {% if option.default %}
{{ RangeRow(option_name, option, option.default, option.default) }}
{% endif %}
</tbody> </tbody>
</table> </table>
</div> </div>
@ -90,10 +92,10 @@
<tbody> <tbody>
{% for id, name in option.name_lookup.items() %} {% for id, name in option.name_lookup.items() %}
{% if name != 'random' %} {% if name != 'random' %}
{{ RangeRow(option_name, option, option.get_option_name(id), name) }} {{ RangeRow(option_name, option, option.get_option_name(id), name, False, name if option.get_option_name(option.default)|lower == name else None) }}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{{ RandomRows(option_name, option) }} {{ RandomRow(option_name, option) }}
</tbody> </tbody>
</table> </table>
{% endmacro %} {% endmacro %}
@ -112,7 +114,7 @@
type="number" type="number"
id="{{ option_name }}-{{ item_name }}-qty" id="{{ option_name }}-{{ item_name }}-qty"
name="{{ option_name }}||{{ item_name }}" name="{{ option_name }}||{{ item_name }}"
value="0" value="{{ option.default[item_name] if item_name in option.default else "0" }}"
/> />
</div> </div>
{% endfor %} {% endfor %}
@ -121,13 +123,14 @@
{% macro OptionList(option_name, option) %} {% macro OptionList(option_name, option) %}
<div class="list-container"> <div class="list-container">
{% for key in option.valid_keys|sort %} {% for key in (option.valid_keys if option.valid_keys is ordered else option.valid_keys|sort) %}
<div class="list-entry"> <div class="list-entry">
<input <input
type="checkbox" type="checkbox"
id="{{ option_name }}-{{ key }}" id="{{ option_name }}-{{ key }}"
name="{{ option_name }}||{{ key }}" name="{{ option_name }}||{{ key }}"
value="1" value="1"
checked="{{ "checked" if key in option.default else "" }}"
/> />
<label for="{{ option_name }}-{{ key }}"> <label for="{{ option_name }}-{{ key }}">
{{ key }} {{ key }}
@ -183,7 +186,7 @@
{% macro OptionSet(option_name, option) %} {% macro OptionSet(option_name, option) %}
<div class="set-container"> <div class="set-container">
{% for key in option.valid_keys|sort %} {% for key in (option.valid_keys if option.valid_keys is ordered else option.valid_keys|sort) %}
<div class="set-entry"> <div class="set-entry">
<input type="checkbox" id="{{ option_name }}-{{ key }}" name="{{ option_name }}||{{ key }}" value="1" {{ "checked" if key in option.default }} /> <input type="checkbox" id="{{ option_name }}-{{ key }}" name="{{ option_name }}||{{ key }}" value="1" {{ "checked" if key in option.default }} />
<label for="{{ option_name }}-{{ key }}">{{ key }}</label> <label for="{{ option_name }}-{{ key }}">{{ key }}</label>
@ -200,13 +203,17 @@
</td> </td>
{% endmacro %} {% endmacro %}
{% macro RandomRow(option_name, option, extra_column=False) %}
{{ RangeRow(option_name, option, "Random", "random") }}
{% endmacro %}
{% macro RandomRows(option_name, option, extra_column=False) %} {% macro RandomRows(option_name, option, extra_column=False) %}
{% for key, value in {"Random": "random", "Random (Low)": "random-low", "Random (Middle)": "random-middle", "Random (High)": "random-high"}.items() %} {% for key, value in {"Random": "random", "Random (Low)": "random-low", "Random (Middle)": "random-middle", "Random (High)": "random-high"}.items() %}
{{ RangeRow(option_name, option, key, value) }} {{ RangeRow(option_name, option, key, value) }}
{% endfor %} {% endfor %}
{% endmacro %} {% endmacro %}
{% macro RangeRow(option_name, option, display_value, value, can_delete=False) %} {% macro RangeRow(option_name, option, display_value, value, can_delete=False, default_override=None) %}
<tr data-row="{{ option_name }}-{{ value }}-row" data-option-name="{{ option_name }}" data-value="{{ value }}"> <tr data-row="{{ option_name }}-{{ value }}-row" data-option-name="{{ option_name }}" data-value="{{ value }}">
<td class="td-left"> <td class="td-left">
<label for="{{ option_name }}||{{ value }}"> <label for="{{ option_name }}||{{ value }}">
@ -220,7 +227,7 @@
name="{{ option_name }}||{{ value }}" name="{{ option_name }}||{{ value }}"
min="0" min="0"
max="50" max="50"
{% if option.default == value %} {% if option.default == value or default_override == value %}
value="25" value="25"
{% else %} {% else %}
value="0" value="0"
@ -229,7 +236,7 @@
</td> </td>
<td class="td-right"> <td class="td-right">
<span id="{{ option_name }}||{{ value }}-value"> <span id="{{ option_name }}||{{ value }}-value">
{% if option.default == value %} {% if option.default == value or default_override == value %}
25 25
{% else %} {% else %}
0 0