<div class="container">
  <h1>Edit <%= @content.schema.name %> #<%= @content.id %></h1>

  <form action={"#{@base_path}/content/#{@content.id}/update"} method="post" >
    <input type="hidden" name="_csrf_token" value={Plug.CSRFProtection.get_csrf_token()} />
    <%= for field <- @content.schema.fields do %>
      <div class="form-group">
        <label for={"field_#{field.id}"}><%= field.name %>:</label>

        <%= if field.field_type == "text" do %>
          <%= if Map.get(field.options, "multiline") do %>
            <textarea
              id={"field_#{field.id}"}
              name={"content[#{field.id}]"}
              style="width: 100%; height: 250px; resize: none;"
              required
            ><%= Map.get(@content.field_values, to_string(field.id), "") %></textarea>
          <% else %>
            <input
              type="text"
              id={"field_#{field.id}"}
              name={"content[#{field.id}]"}
              value={Map.get(@content.field_values, to_string(field.id), "")}
              required
            />
          <% end %>
        <% end %>

        <%= if field.field_type == "richtext" do %>
          <input
            type="hidden"
            id={"field_#{field.id}"}
            name={"content[#{field.id}]"}
            value={Map.get(@content.field_values, to_string(field.id), "")}
          />
          <trix-editor
            input={"field_#{field.id}"}
            placeholder={"Enter #{field.name}..."}
          ></trix-editor>
        <% end %>

        <%= if field.field_type == "reference" do %>
          <select
            id={"field_#{field.id}"}
            name={"content[#{field.id}]"}
            required
          >
            <option value="">Select <%= field.name %>...</option>
            <%= for content <- @all_contents do %>
              <%= if content.schema_id == field.referenced_schema_id do %>
                <% current_value = Map.get(@content.field_values, to_string(field.id)) %>
                <% is_selected = current_value && to_string(content.id) == to_string(current_value) %>
                <option value={content.id} selected={is_selected}>
                  <%= content.schema.name %> #<%= content.id %>
                  <%= if Map.get(content.field_values, "name"), do: " - #{Map.get(content.field_values, "name")}" %>
                </option>
              <% end %>
            <% end %>
          </select>
        <% end %>
      </div>
    <% end %>

    <div class="actions">
      <button type="submit">Save Changes</button>
      <a href={"#{@base_path}/content/#{@content.id}"} class="btn-secondary">Cancel</a>
    </div>
  </form>
</div>
