Improve exports and GUI
Some checks failed
/ Run tests (push) Successful in 1m47s
/ Run system tests (push) Has been cancelled
/ Build, push and deploy image (push) Has been cancelled

This commit is contained in:
david 2024-11-17 13:44:51 +01:00
parent 0a48759576
commit fa1d5b8bce
13 changed files with 195 additions and 50 deletions

View file

@ -32,4 +32,35 @@ module ApplicationHelper
def turbo_stream_toast(content, alert)
turbo_stream.append("toasts", partial: "layouts/toast", locals: { content:, alert: })
end
def dropdown_menu(items, klass: "")
tag.details(class: "details-dropdown #{klass}") do
tag.summary do
tag.div(class: "details-dropdown-trigger") do
tag.div(tag.i(class: "bi bi-three-dots-vertical"), class: "btn btn-outline-secondary")
end
end +
tag.div(class: "details-dropdown-content bg-secondary") do
tag.ul(class: "list-group") do
safe_join(items.map do |item|
tag.li(class: "list-group-item list-group-item-action#{ item[:color] ? " list-group-item-#{item[:color]}" : ""}") do
text = item[:icon] ? tag.i(class: "bi bi-#{item[:icon]} me-2") + " #{item[:text]}".html_safe : item[:text]
case item[:method]
when nil, :get
link_to(text, item[:href], class: "text-decoration-none text-body")
else
button_to(text,
item[:href],
method: item[:method],
form_class: "no-padding",
class: "btn btn-link text-decoration-none text-#{item[:color] ? "#{item[:color]}-emphasis" : "body"}",
data: { turbo_confirm: item[:confirm] })
end
end
end)
end
end
end
end
end