diff --git a/app/assets/stylesheets/characters.css b/app/assets/stylesheets/characters.css index 6dde42a..b14232c 100644 --- a/app/assets/stylesheets/characters.css +++ b/app/assets/stylesheets/characters.css @@ -61,7 +61,7 @@ display: flex; flex-direction: column; border-radius: var(--border-radius); - h6 { + h6, .feature-edit-buttons { font-size: .8em; text-align: center; background-color: var(--background-color); @@ -97,3 +97,10 @@ padding: auto; } } + +.feature-edit-buttons { + a:link, a:visited { + color: inherit; + text-decoration: none; + } +} diff --git a/app/assets/stylesheets/layout.css b/app/assets/stylesheets/layout.css index 68a1fcc..42a3a60 100644 --- a/app/assets/stylesheets/layout.css +++ b/app/assets/stylesheets/layout.css @@ -1,3 +1,5 @@ +@import "https://www.nerdfonts.com/assets/css/webfont.css"; + * { box-sizing: border-box; } diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 57ca030..7018ae7 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -8,4 +8,9 @@ module ApplicationHelper object.errors.full_messages_for(attr).join(". ") end end + + def icon_link_to(icon_name, path, data: {}) + icon = content_tag(:i, nil, class: "nf nf-#{icon_name}").html_safe + link_to icon, path, data: data + end end diff --git a/app/models/counter.rb b/app/models/counter.rb index 109efe1..b8999e0 100644 --- a/app/models/counter.rb +++ b/app/models/counter.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Counter < ApplicationRecord - has_one :character_sheet_feature, as: :featurable + has_one :character_sheet_feature, as: :featurable, dependent: :destroy has_one :character_sheet_section, through: :character_sheet_feature accepts_nested_attributes_for :character_sheet_feature, allow_destroy: true diff --git a/app/models/stat.rb b/app/models/stat.rb index 7748a3d..a7073b5 100644 --- a/app/models/stat.rb +++ b/app/models/stat.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Stat < ApplicationRecord - has_one :character_sheet_feature, as: :featurable + has_one :character_sheet_feature, as: :featurable, dependent: :destroy has_one :character_sheet_section, through: :character_sheet_feature accepts_nested_attributes_for :character_sheet_feature, allow_destroy: true diff --git a/app/models/text_field.rb b/app/models/text_field.rb index c5b8efe..4c4317e 100644 --- a/app/models/text_field.rb +++ b/app/models/text_field.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class TextField < ApplicationRecord - has_one :character_sheet_feature, as: :featurable + has_one :character_sheet_feature, as: :featurable, dependent: :destroy has_one :character_sheet_section, through: :character_sheet_feature accepts_nested_attributes_for :character_sheet_feature, allow_destroy: true diff --git a/app/views/counters/_counter.html.erb b/app/views/counters/_counter.html.erb index 847980a..941ac76 100644 --- a/app/views/counters/_counter.html.erb +++ b/app/views/counters/_counter.html.erb @@ -1,7 +1,13 @@
<% if @editable %> - <%= link_to(t(".delete"), counter, - data: { turbo_method: :delete, turbo_confirm: t(".confirm_delete", name: counter.name) }) %> +
+ <%= icon_link_to("cod-triangle_left", reorder_down_character_sheet_feature_path(counter), + data: { turbo_method: :patch }) %> + <%= icon_link_to("md-delete", counter, + data: { turbo_method: :delete, turbo_confirm: t(".confirm_delete", name: counter.name) }) %> + <%= icon_link_to("cod-triangle_right", reorder_up_character_sheet_feature_path(counter), + data: { turbo_method: :patch }) %> +
<% end %>
<%= counter.name %>
<%= form_with model: counter, class: "counter-form", diff --git a/app/views/stats/_stat.html.erb b/app/views/stats/_stat.html.erb index 64654f7..d5a7f2c 100644 --- a/app/views/stats/_stat.html.erb +++ b/app/views/stats/_stat.html.erb @@ -1,9 +1,13 @@
<% if @editable %> - <%= link_to t(".down"), reorder_down_character_sheet_feature_path(stat), data: { turbo_method: :patch } %> - <%= link_to t(".up"), reorder_up_character_sheet_feature_path(stat), data: { turbo_method: :patch } %> - <%= link_to(t(".delete"), stat, - data: { turbo_method: :delete, turbo_confirm: t(".confirm_delete", name: stat.name) }) %> +
+ <%= icon_link_to("cod-triangle_left", reorder_down_character_sheet_feature_path(stat), + data: { turbo_method: :patch }) %> + <%= icon_link_to("md-delete", stat, + data: { turbo_method: :delete, turbo_confirm: t(".confirm_delete", name: stat.name) }) %> + <%= icon_link_to("cod-triangle_right", reorder_up_character_sheet_feature_path(stat), + data: { turbo_method: :patch }) %> +
<% end %>
<%= stat.name %>
<% if @editable %> diff --git a/app/views/text_fields/_text_field.html.erb b/app/views/text_fields/_text_field.html.erb index 3c3b3b7..006407d 100644 --- a/app/views/text_fields/_text_field.html.erb +++ b/app/views/text_fields/_text_field.html.erb @@ -1,7 +1,13 @@
<% if @editable %> - <%= link_to t(".delete"), text_field, - data: { turbo_method: :delete, turbo_confirm: t(".confirm_delete", name: text_field.name) } %> +
+ <%= icon_link_to("cod-triangle_left", reorder_down_character_sheet_feature_path(text_field), + data: { turbo_method: :patch }) %> + <%= icon_link_to("md-delete", text_field, + data: { turbo_method: :delete, turbo_confirm: t(".confirm_delete", name: text_field.name) }) %> + <%= icon_link_to("cod-triangle_right", reorder_up_character_sheet_feature_path(text_field), + data: { turbo_method: :patch }) %> +
<% end %>
<%= text_field.name %>
diff --git a/todo.md b/todo.md index b51fc79..b76d90b 100644 --- a/todo.md +++ b/todo.md @@ -1,4 +1,6 @@ -- improve edit button appearance +- don't move down/up top/bottom features +- auto save text fields + - indicate save status on titlebar - easily edit text fields without entering edit mode - add roll command to counters (e.g. luck) - test for rolls controller & system tests