JS-Tech/resj

View on GitHub
app/views/users/cards/edit.html.erb

Summary

Maintainability
Test Coverage
<% content_for :id, "container-users-cards-edit" %>

<% content_for :links do %>
  <a href="/profile">Retour</a>
  <%= link_to "Voir le groupe", card_path(@card) %>
<% end %>

<%= render "outdated" if !@card.maintained? %>

<%= render "confirmed" if @confirmed %>
  
<section class="std-container top-container">
  <div class="left">
    <div class="title red">
      <h2>Editer le groupe:</h2>
      <span><%= @card.name %></span>
    </div>

    <!-- contain another form, which means it cannot be nested in the card's edit form -->
    <%= button_to_confirmation "Transférer le groupe", form: { url: transfer_users_card_path(@card) }, button_options: {class: "transfer-button"} do %>

      <p>Tu peux transférer la responsabilité du groupe à un autre utilisateur. Avant cela sois sûr que la personne à qui tu veux transférer la responsabilité du groupe a créé un compte sur le site. Sinon, demande-lui d'abord de s'inscrire avec ce lien: <%= link_to signup_url, signup_url %></p>
      <p>Indique l'email d'un utilisateur enregistré sur Réseau jeunesse:</p>

      <div class="form-row">
        <%= label_tag :email %>
        <%= email_field_tag :email, nil, placeholder: "email@exemple.com" %>
      </div>
    <% end %>

    <%= button_to_confirmation "Supprimer le groupe", form: { url: users_card_path(@card), method: :delete }, button_options: {class: "transfer-button"} do %>

      <p>Attention ! Tu t’apprêtes à définitivement supprimer ce groupe. Cette action est irréversible !</p>
      <p>Rentre le nom du groupe pour confirmer la suppression.</p>

      <div class="form-row">
        <%= label_tag :name, "Nom du groupe" %>
        <%= text_field_tag :name, nil, placeholder: @card.name %>
      </div>
    <% end %>

    <div class="date">
      <p>
        <span>Créé le <%= @card.created_at.strftime("%d/%m/%y") %></span>
        <span>Dernière modification le <%= @card.updated_at.strftime("%d/%m/%y") %></span>
      </p>
    </div>
  </div>
  
  <div class="right">
  </div>
</section>

<%= form_with model: [:users, @card], local: true do |f| %>

<%= render "error_messages", object: f.object %>

<section class="std-container content-container">

  <div class="left">
    <div class="field name">
      <%= f.label :name, "Titre - Nom du groupe" %>
      <%= f.text_field :name, placeholder: 'Nom' %>
    </div>

    <div class="field">
      <%= f.label :description, "Présentation" %>
      <%= f.text_area :description, placeholder: 'Description', "rows": 10 %>
    </div>

    <div class="field">
      <%= f.label :card_type, "Type de groupe" %>
      <%= f.select :card_type, options_for_enum(f.object, :card_type), { prompt: "Choisissez une catégorie" }, { class: "card_type", "data-controller": "select--simple" } %>
    </div>

    <div class="field">
      <%= f.label :parent_ids %>
      <%= f.collection_select :parent_ids, Card.active_networks, :id, :name, {}, { multiple: true, "data-controller": "select--simple" } %>
    </div>
    
    <div class="field">
      <%= f.label :street, "Rue" %>
      <%= f.text_field :street, placeholder: 'Rue' %>
    </div>

    <div class="field">
      <%= f.label :location_id, "Canton" %>
      <%= f.collection_select :location_id, [f.object.location].compact, :id, :full_name, {}, { class: "card_location", "data-controller": "select--locations" } %>
    </div>

    <div class="field">
      <%= f.label :affiliation %>
      <%= f.text_area :affiliation, placeholder: 'Eglise évangélique de ... (optionnel)' %>
    </div>

  </div>

  <div class="right">
    <div class="map-location" data-controller="cards--location">
      <p class="title">Emplacement sur la carte</p>
      <p class="hint">cliquez dessus pour changer l'emplacement du marqueur</p>
      <div id="mapbox" data-cards--location-target="map"></div>

      <details class="vanilla">
        <summary>Détails</summary>

        <%= f.label :latitude %>
        <%= f.text_field :latitude, readonly: "readonly", data: { "cards--location-target" => "latitude" } %>
        
        <%= f.label :longitude %>
        <%= f.text_field :longitude, readonly: "readonly", data: { "cards--location-target" => "longitude" } %>
      </details>
    </div>

    <div class="contact">
      <h3>Contact</h3>

      <div class="field">
        <%= f.label :email, "Email public de contact" %>
        <%= f.text_field :email, placeholder: "contact@mail.ch" %>
      </div>

      <div class="field">
        <%= f.label :website %>
        <%= f.text_field :website, placeholder: "http://mon-groupe.ch (optionnel)" %>
      </div>

      <div class="field">
        <%= f.label :place, "Lieu de rencontre" %>
        <%= f.text_field :place, placeholder: 'Lieu de rencontre (optionnel)' %>
      </div>
    </div>
  </div>
</section>

<section class="std-container submit-container">
  <div class="left"></div>
  <div class="right">
    <div class="submit">
      <%= f.submit "Sauvegarder et mettre à jour" %>
    </div>
  </div>
</section>

<!-- end form -->
<% end %>