ikuseiGmbH/smart-village-app-cms

View on GitHub
app/views/events/_form.html.erb

Summary

Maintainability
Test Coverage
<%= fields_for :event, event do |f| %>
  <%= hidden_field_tag "event[id]", f.object.id if f.object.id.present? %>

  <div class="row">
    <div class="col">
      <div class="form-group">
        <label for="description">Veranstaltungsname *</label>
        <%= f.text_field :title, class: "form-control", required: true %>
      </div>
    </div>
  </div>

  <div class="row">
    <div class="col">
      <div class="form-group">
        <label for="description">Beschreibung</label>
        <%= f.text_area :description, class: "form-control html-editor" %>
      </div>
    </div>
  </div>

  <!-- NOTE: Wird erstmal nicht benötigt
    <div class="row">
      <div class="col-lg-6">
        <div class="form-group">
          <label for="description">Verschlagwortung</label>
          <%= f.text_field :tag_list, { class: "form-control", name: "event[tags]"} %>
        </div>
      </div>

      <div class="col-lg-6">
        <div class="form-group">
          <label for="description">Region</label>
          <%= f.text_field "region[name]", { class: "form-control", name: "event[region_name]", value: f.object.try(:region).try(:name) } %>
        </div>
      </div>
    </div>

    <div class="row">
      <div class="col-lg-6">
        <div class="form-group">
          <label for="description">Kategorie</label>
          <%= f.text_field :category, { class: "form-control", name: "event[category_name]", value: f.object.try(:category).try(:name) } %>
        </div>
      </div>
    </div>
  -->

  <div class="row">
    <div class="col">
      <h2 class="d-sm-flex align-items-center justify-content-between my-4">
        Kategorien
      </h2>
      <p>
        Jede Veranstaltung kann in einer oder mehreren Kategorien abgelegt werden.
      <p>

      <%= render partial: "shared/partials/categories_form", locals: { record: event, record_type: "event", form: f, tag_filter: "event_record" } %>

      <%= link_to "#", class: "btn btn-sm btn-secondary", id: "nested-add-category" do %>
        <i class="fas fa-plus text-white mr-2"></i>
        Kategorie hinzufügen
      <% end %>
    </div>
  </div>

  <hr />

  <div class="row">
    <div class="col">
      <h3 class="d-sm-flex align-items-center justify-content-between my-4">
        Veranstaltungsdatum
      </h3>
    </div>
  </div>
  <%= render(
        partial: "shared/partials/dates_form",
        locals: {
          record: event,
          form: f,
          fields: ['date_start', 'date_end', 'time_start', 'time_end'],
          requireds: ['date_start'],
          force_visibility: true
      }) %>
  <%= render(
        partial: "shared/partials/recurring_dates_form",
        locals: { record: event, form: f }
      ) %>

  <div class="row">
    <div class="col">
      <h3 class="d-sm-flex align-items-center justify-content-between my-4">
        Veranstaltungsort
      </h3>
    </div>
  </div>

  <% addresses_to_render = event.addresses.presence || [OpenStruct.new] %>
  <% addresses_to_render.each_with_index do |address, index| %>
    <%= f.fields_for "addresses[#{index}]", address do |fadd| %>
      <%= render(
            partial: "shared/partials/address_form",
            locals: { form: fadd, address: address, index: index, count: event.addresses.count }
          ) %>
    <% end %>
  <% end %>

  <div class="row">
    <div class="col">
      <h3 class="d-sm-flex align-items-center justify-content-between my-4">
        Veranstalter
      </h3>
    </div>
  </div>

  <%= render partial: "shared/partials/organizer_form", locals: { record: event, form: f } %>

  <%= render partial: "shared/partials/contacts_form", locals: { record: event, form: f, headline: "Ansprechpartner für die Veranstaltung" } %>

  <%= render partial: "shared/partials/web_url_form", locals: { record: event, record_type: "event", form: f } %>

  <!-- Wird erstmal nicht benötigt
    <div class="card mb-4">
      <div class="card-header py-3  bg-dark text-white">
        <h6 class="m-0 font-weight-bold text-primary">Wiederholung </h6>
      </div>
      <div class="card-body">
        <%= render partial: 'events/form_partials/repeat_form', locals: { event: event, form: f } %>
      </div>
    </div>
  -->

  <%= render partial: "shared/partials/price_informations_form", locals: { record: event, record_type: "event", form: f } %>

  <div class="row">
    <div class="col">
      <h3 class="d-sm-flex align-items-center justify-content-between my-4">
        Dateien
      </h3>
    </div>
  </div>

  <%= render partial: "shared/partials/media_contents_form", locals: { record: event, form: f } %>

  <hr />

  <div class="row justify-content-center pb-4">
    <%= f.submit t("buttons.save"), class: "btn btn-primary btn--big" %>
  </div>

  <% if event.id.present? %>
    <div class="row justify-content-center pb-4">
      <%= f.submit t("buttons.copy"), class: "btn btn-link",  id: "real-copy-button", "data-confirm" => t("buttons.confirmations.copy_event") %>
    </div>
  <% end %>
<% end %>