app/views/organization_transactions/_form.html.erb
<%= simple_form_for organization_transaction, url: url, html: {class: "js-validate"}, wrapper: :front_form do |f| %>
<%= render(Form::ErrorMessageComponent.new(object: organization_transaction)) %>
<%= render CardComponent.new do %>
<%= render Card::BodyComponent.new do %>
<%= render(Card::TitleComponent.new(classes: "mb-4")) { "Details" } %>
<div class="row">
<div class="col-md-4 mb-3">
<%= f.input :posted_at, as: :string, label: "Post Date", required: true,
input_html: {class: "form-control", data: {controller: "select-date"},
value: organization_transaction.posted_at.to_s("mm/dd/yyyy")} %>
</div>
<div class="col-md-4 mb-3">
<%= f.input :amount, required: true, as: :currency, currency: "$", input_html: {class: "form-control"} %>
</div>
<div class="col-md-4 mb-3">
<%= f.input :transaction_type, label: "Type", required: true,
collection: ENUMS::ORGANIZATION_TRANSACTION_TYPES.values.map { |status| [status.capitalize, status] },
input_html: {class: "form-control", data: {controller: "select"}} %>
</div>
</div>
<div class="row">
<%= tag.div f.input(:reference, as: :string, input_html: {class: "form-control"}), class: "col-12 mb-3" %>
<%= tag.div f.input(:description, required: true, input_html: {rows: 10, class: "form-control"}), class: "col-12 mb-3" %>
</div>
<div class="media align-items-center mb-3">
<%= f.label :gift, class: "switcher-control mb-0 mr-3" do %>
<%= f.check_box :gift, class: "switcher-input" %>
<span class="switcher-indicator"></span>
<% end %>
<label class="media-body text-muted mb-0">
<span class="d-block text-dark">Gifted by CodeFund?</span>
</label>
</div>
<div class="media align-items-center mb-3">
<%= f.label :temporary, class: "switcher-control mb-0 mr-3" do %>
<%= f.check_box :temporary, class: "switcher-input" %>
<span class="switcher-indicator"></span>
<% end %>
<label class="media-body text-muted mb-0">
<span class="d-block text-dark">Temporary Credit?</span>
</label>
</div>
<div class="text-muted">
Transaction cannot be a gift and temporary credit. Make sure only one of these is selected.
</div>
<% end %>
<%= render Card::FooterComponent.new do |component| %>
<% component.with(:actions) do %>
<%= cancel_button(organization_transactions_path(organization)) %>
<%= f.submit "Save Transaction", class: "btn btn-primary" %>
<% end %>
<% end %>
<% end %>
<% end %>