forked from fixin.me/fixin.me
Improve index tables
Stretch inputs to column width in place of fixed sizing. Set minimum column widths for columns with form inputs. Simplify table operations by removing `thead` and adding sentinel. Manage empty table display with CSS only.
This commit is contained in:
@@ -3,17 +3,14 @@
|
||||
data: {link: link, form: form_tag, hidden_row: hidden_row} do %>
|
||||
|
||||
<td style="--depth:<%= @quantity.depth %>">
|
||||
<%= form.text_field :name, required: true, autofocus: true, size: 20 %>
|
||||
</td>
|
||||
<td>
|
||||
<%= form.text_area :description, cols: 30, rows: 1, escape: false %>
|
||||
</td>
|
||||
<%= form.text_field :name, autofocus: true, class: 'hstretch', required: true %>
|
||||
<td><%= form.text_area :description, class: 'hstretch', escape: false, rows: 1 %>
|
||||
|
||||
<td class="flex">
|
||||
<%= form.button %>
|
||||
<%= image_link_to t(:cancel), "close-outline", quantities_path, class: 'dangerous',
|
||||
name: :cancel, onclick: render_turbo_stream('form_close', {row: row}) %>
|
||||
</td>
|
||||
<td></td>
|
||||
<%= image_link_to t(:cancel), "close-outline", quantities_path,
|
||||
class: 'dangerous', name: :cancel,
|
||||
onclick: render_turbo_stream('form_close', {row: row}) %>
|
||||
<td>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
<%= turbo_stream.close_form dom_target(:new, @quantity.parent || :quantity) %>
|
||||
<%= turbo_stream.remove :no_items %>
|
||||
<% @ancestors.each do |ancestor| %>
|
||||
<%= turbo_stream.replace ancestor %>
|
||||
<% end %>
|
||||
<%= @before ? turbo_stream.before(@before, @quantity) :
|
||||
turbo_stream.append(:quantities, @quantity) %>
|
||||
<%= turbo_stream.before @before || :endmark, @quantity %>
|
||||
|
||||
@@ -2,4 +2,3 @@
|
||||
<%= turbo_stream.replace ancestor %>
|
||||
<% end %>
|
||||
<%= turbo_stream.remove @quantity %>
|
||||
<%= turbo_stream.append(:quantities, render_no_items) if current_user.quantities.empty? %>
|
||||
|
||||
@@ -3,11 +3,10 @@
|
||||
link: nil,
|
||||
form_tag: dom_target(:edit, @quantity, :form)} %>
|
||||
|
||||
<%= turbo_stream.append :quantity_form do %>
|
||||
<%= turbo_stream.append_all 'body' do %>
|
||||
<%- tabular_form_with model: @quantity, html: {id: ids[:form_tag]} do %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<%= turbo_stream.hide ids[:hidden_row] %>
|
||||
<%= turbo_stream.remove ids[:row] %>
|
||||
<%= turbo_stream.after @quantity, partial: 'form', locals: ids -%>
|
||||
|
||||
@@ -3,31 +3,29 @@
|
||||
<%= image_link_to t('.new_quantity'), 'plus-outline', new_quantity_path,
|
||||
id: :new_quantity_link, onclick: 'this.blur();', data: {turbo_stream: true} %>
|
||||
<% end %>
|
||||
<%#= image_link_to t('.import_quantities'), 'download-outline', default_quantities_path,
|
||||
class: 'tools-area' %>
|
||||
<%#= image_link_to t('.import_quantities'), 'download-outline',
|
||||
default_quantities_path, class: 'tools-area' %>
|
||||
</div>
|
||||
|
||||
<%# TODO: remove? form can be inserted directly, e.g. at the end of index %>
|
||||
<%= tag.div class: 'main-area', id: :quantity_form %>
|
||||
|
||||
<table class="main-area items-table">
|
||||
<thead>
|
||||
<caption class="hint"><%= t '.no_items' %></caption>
|
||||
|
||||
<tbody>
|
||||
<tr>
|
||||
<th><%= Quantity.human_attribute_name(:name) %></th>
|
||||
<th class="hexpand"><%= Quantity.human_attribute_name(:description) %></th>
|
||||
<% if current_user.at_least(:active) %>
|
||||
<th><%= t :actions %></th>
|
||||
<th></th>
|
||||
<% end %>
|
||||
</tr>
|
||||
<%= tag.tr id: "quantity_", hidden: true,
|
||||
ondragover: "dragOver(event)", ondrop: "drop(event)",
|
||||
ondragenter: "dragEnter(event)", ondragleave: "dragLeave(event)",
|
||||
data: {drop_id: "quantity_", drop_id_param: "quantity[parent_id]"} do %>
|
||||
<th colspan="4"><%= t '.top_level_drop' %></th>
|
||||
<th class="hmintext"><%= Quantity.human_attribute_name(:name) %>
|
||||
<th class="hexpand"><%= Quantity.human_attribute_name(:description) %>
|
||||
<% if current_user.at_least(:active) %>
|
||||
<th><%= t :actions %>
|
||||
<th>
|
||||
|
||||
<tr id="quantity_" hidden
|
||||
ondragover="dragOver(event)" ondrop="drop(event)"
|
||||
ondragenter="dragEnter(event)" ondragleave="dragLeave(event)"
|
||||
data-drop-id="quantity_"
|
||||
data-drop-id-param="<%= field_name(:quantity, :parent_id) %>">
|
||||
<th colspan="4"><%= t '.top_level_drop' %>
|
||||
<% end %>
|
||||
</thead>
|
||||
<tbody id="quantities">
|
||||
<%= render(@quantities) || render_no_items %>
|
||||
</tbody>
|
||||
|
||||
<%= render @quantities %>
|
||||
<tr id="endmark" hidden>
|
||||
</table>
|
||||
|
||||
@@ -6,15 +6,10 @@
|
||||
|
||||
<%= turbo_stream.disable ids[:link] -%>
|
||||
|
||||
<%= turbo_stream.append :quantity_form do %>
|
||||
<%= turbo_stream.append_all 'body' do %>
|
||||
<%- tabular_form_with model: @quantity, html: {id: ids[:form_tag]} do |form| %>
|
||||
<%= form.hidden_field :parent_id if @quantity.parent_id? %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<% if @quantity.parent_id? %>
|
||||
<%= turbo_stream.remove ids[:row] %>
|
||||
<%= turbo_stream.after @quantity.parent, partial: 'form', locals: ids %>
|
||||
<% else %>
|
||||
<%= turbo_stream.prepend :quantities, partial: 'form', locals: ids %>
|
||||
<% end %>
|
||||
<%= turbo_stream.after @quantity.parent || :quantity_, partial: 'form', locals: ids %>
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
<% @self_and_progenies.each do |q| %>
|
||||
<%= turbo_stream.remove q %>
|
||||
<% end %>
|
||||
<% @previous_ancestors.union(@ancestors).each do |ancestor| %>
|
||||
<%= turbo_stream.replace ancestor %>
|
||||
<% end %>
|
||||
<% @self_and_progenies.each do |q| %>
|
||||
<%= @before ? turbo_stream.before(@before, q) : turbo_stream.append(:quantities, q) %>
|
||||
<% @self_and_progenies.each do |quantity| %>
|
||||
<%= turbo_stream.remove quantity %>
|
||||
<%= turbo_stream.before @before || :endmark, quantity %>
|
||||
<% end %>
|
||||
|
||||
Reference in New Issue
Block a user