mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-19 05:09:38 +02:00
* Initial entryable models * Update transfer and tests * Update transaction controllers and tests * Update sync process to use new entries model * Get dashboard working again * Update transfers, imports, and accounts to use Account::Entry * Update system tests * Consolidate transaction management into entries controller * Add permitted partial key helper * Move account transactions list to entries controller * Delegate transaction entries search * Move transfer relation to entry * Update bulk transaction management flows to use entries * Remove test code * Test fix attempt * Update demo data script * Consolidate remaining transaction partials to entries * Consolidate valuations controller to entries controller * Lint fix * Remove unused files, additional cleanup * Add back valuation creation * Make migrations fully reversible * Stale routes cleanup * Migrations reversible fix * Move types to entryable concern * Fix search when no entries found * Remove more unused code
37 lines
1.2 KiB
Ruby
37 lines
1.2 KiB
Ruby
module FormsHelper
|
|
def form_field_tag(options = {}, &block)
|
|
options[:class] = [ "form-field", options[:class] ].compact.join(" ")
|
|
tag.div **options, &block
|
|
end
|
|
|
|
def radio_tab_tag(form:, name:, value:, label:, icon:, checked: false, disabled: false)
|
|
form.label name, for: form.field_id(name, value), class: "group has-[:disabled]:cursor-not-allowed" do
|
|
concat radio_tab_contents(label:, icon:)
|
|
concat form.radio_button(name, value, checked:, disabled:, class: "hidden")
|
|
end
|
|
end
|
|
|
|
def selectable_categories
|
|
Current.family.categories.alphabetically
|
|
end
|
|
|
|
def selectable_merchants
|
|
Current.family.merchants.alphabetically
|
|
end
|
|
|
|
def selectable_accounts
|
|
Current.family.accounts.alphabetically
|
|
end
|
|
|
|
def selectable_tags
|
|
Current.family.tags.alphabetically.pluck(:name, :id)
|
|
end
|
|
|
|
private
|
|
def radio_tab_contents(label:, icon:)
|
|
tag.div(class: "flex px-4 py-1 rounded-lg items-center space-x-2 justify-center text-gray-400 group-has-[:checked]:bg-white group-has-[:checked]:text-gray-800 group-has-[:checked]:shadow-sm") do
|
|
concat lucide_icon(icon, class: "w-5 h-5")
|
|
concat tag.span(label, class: "group-has-[:checked]:font-semibold")
|
|
end
|
|
end
|
|
end
|