Skip to content

Commit 44aaee8

Browse files
drusepthclaude
andcommitted
Improve Basil additional fields UI
- Show fields expanded (not collapsed) when no primary fields match - Add truncated value preview (140 chars) for additional fields - Make "Customize importance" button toggle instead of one-way show - Hide importance sliders on additional fields until toggled on - Add padding between additional fields section and customize button 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent 8e904a4 commit 44aaee8

File tree

1 file changed

+40
-12
lines changed

1 file changed

+40
-12
lines changed

app/views/basil/content.html.erb

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -56,31 +56,59 @@ function commission_basil(style) {
5656
</ul>
5757

5858
<% if @additional_fields.any? %>
59-
<div style="margin-top: 1.5rem; border-top: 1px solid #e0e0e0; padding-top: 1rem;">
60-
<a href="#" class="js-toggle-additional-fields-section grey-text text-darken-2" style="display: block; font-weight: bold;">
61-
<i class="material-icons tiny" style="vertical-align: middle;">add_circle_outline</i>
62-
Show <%= pluralize(@additional_fields.count, 'more field') %> you can include
63-
<i class="material-icons tiny js-chevron" style="vertical-align: middle;">expand_more</i>
64-
</a>
59+
<% if @relevant_fields.any? %>
60+
<%# Show collapsed when there ARE primary fields %>
61+
<div style="margin-top: 1.5rem; border-top: 1px solid #e0e0e0; padding-top: 1rem;">
62+
<a href="#" class="js-toggle-additional-fields-section grey-text text-darken-2" style="display: block; font-weight: bold;">
63+
<i class="material-icons tiny" style="vertical-align: middle;">add_circle_outline</i>
64+
Show <%= pluralize(@additional_fields.count, 'more field') %> you can include
65+
<i class="material-icons tiny js-chevron" style="vertical-align: middle;">expand_more</i>
66+
</a>
6567

66-
<div class="js-additional-fields-container hide" style="margin-top: 0.5rem;">
68+
<div class="js-additional-fields-container hide" style="margin-top: 0.5rem;">
69+
<ul style="margin-top: 0.5rem;">
70+
<% @additional_fields.each do |field, value| %>
71+
<li style="margin-bottom: 0.5em; opacity: 0.7;">
72+
<label>
73+
<%= check_box_tag "basil_commission[include_field][#{field.id}]", field.id, false, class: 'js-toggle-additional-field' %>
74+
<span class="grey-text"><%= field.label %></span>
75+
</label>
76+
<div class="grey-text text-darken-1" style="font-size: 0.85em; margin-left: 1.5rem;"><%= truncate(value, length: 140) %></div>
77+
<div class="js-additional-field-inputs hide" data-field-id="<%= field.id %>">
78+
<%= hidden_field_tag "basil_commission[field][#{field.id}][label]", field.label, disabled: true %>
79+
<%= hidden_field_tag "basil_commission[field][#{field.id}][value]", value, disabled: true %>
80+
<%= range_field_tag "basil_commission[field][#{field.id}][importance]", 1, { min: 0, max: 1.3, step: 0.1, style: 'width: 60%;', disabled: true, class: 'js-importance-slider hide' } %>
81+
</div>
82+
</li>
83+
<% end %>
84+
</ul>
85+
</div>
86+
</div>
87+
<% else %>
88+
<%# Show expanded when there are NO primary fields - these are the only fields available %>
89+
<div style="margin-top: 0.5rem;">
90+
<div class="grey-text text-darken-2" style="font-weight: bold; margin-bottom: 0.5rem;">
91+
<i class="material-icons tiny" style="vertical-align: middle;">check_box_outline_blank</i>
92+
Select fields to include in your image:
93+
</div>
6794
<ul style="margin-top: 0.5rem;">
6895
<% @additional_fields.each do |field, value| %>
6996
<li style="margin-bottom: 0.5em; opacity: 0.7;">
7097
<label>
7198
<%= check_box_tag "basil_commission[include_field][#{field.id}]", field.id, false, class: 'js-toggle-additional-field' %>
7299
<span class="grey-text"><%= field.label %></span>
73100
</label>
101+
<div class="grey-text text-darken-1" style="font-size: 0.85em; margin-left: 1.5rem;"><%= truncate(value, length: 140) %></div>
74102
<div class="js-additional-field-inputs hide" data-field-id="<%= field.id %>">
75103
<%= hidden_field_tag "basil_commission[field][#{field.id}][label]", field.label, disabled: true %>
76104
<%= hidden_field_tag "basil_commission[field][#{field.id}][value]", value, disabled: true %>
77-
<%= range_field_tag "basil_commission[field][#{field.id}][importance]", 1, { min: 0, max: 1.3, step: 0.1, style: 'width: 60%;', disabled: true } %>
105+
<%= range_field_tag "basil_commission[field][#{field.id}][importance]", 1, { min: 0, max: 1.3, step: 0.1, style: 'width: 60%;', disabled: true, class: 'js-importance-slider hide' } %>
78106
</div>
79107
</li>
80108
<% end %>
81109
</ul>
82110
</div>
83-
</div>
111+
<% end %>
84112
<% end %>
85113

86114
<% if @relevant_fields.empty? && @additional_fields.empty? %>
@@ -92,12 +120,12 @@ function commission_basil(style) {
92120
</div>
93121
<% end %>
94122

95-
<div>
123+
<div style="margin-top: 1rem;">
96124
<% if @can_request_another && (@relevant_fields.any? || @additional_fields.any?) %>
97-
<a href="javascript:var sliders = document.getElementsByClassName('js-importance-slider'); for(var i = 0; i < sliders.length; i++) sliders.item(i).classList.remove('hide'); document.getElementById('importance-explainer').classList.remove('hide');" class="waves-effect waves-light btn-small purple lighten-1" style="margin-bottom: 1rem;">Customize importance</a>
125+
<a href="javascript:var sliders = document.getElementsByClassName('js-importance-slider'); for(var i = 0; i < sliders.length; i++) sliders.item(i).classList.toggle('hide'); document.getElementById('importance-explainer').classList.toggle('hide');" class="waves-effect waves-light btn-small purple lighten-1" style="margin-bottom: 1rem;">Customize importance</a>
98126
<% end %>
99127

100-
<div id="importance-explainer" class="js-importance-slider hide grey lighten-5" style="margin-right: 1em; padding: 1rem;">
128+
<div id="importance-explainer" class="hide grey lighten-5" style="margin-right: 1em; padding: 1rem;">
101129
<strong>How to customize per-field importance</strong>
102130
<br /><br />
103131

0 commit comments

Comments
 (0)