Current section
Files
Jump to
Current section
Files
lib/plato_web/controllers/content_html/new.html.heex
<div class="container">
<h1>Create <%= @schema.name %></h1>
<form action={"#{@base_path}/content"} method="post" class="content-form" enctype="multipart/form-data">
<input type="hidden" name="_csrf_token" value={Plug.CSRFProtection.get_csrf_token()} />
<input type="hidden" name="schema_id" value={@schema.id} />
<%= for field <- @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
></textarea>
<% else %>
<input
type="text"
id={"field_#{field.id}"}
name={"content[#{field.id}]"}
required
/>
<% end %>
<% end %>
<%= if field.field_type == "richtext" do %>
<input
type="hidden"
id={"field_#{field.id}"}
name={"content[#{field.id}]"}
value=""
/>
<trix-editor
input={"field_#{field.id}"}
placeholder={"Enter #{field.name}..."}
></trix-editor>
<% end %>
<%= if field.field_type == "image" do %>
<input
type="file"
id={"field_#{field.id}"}
name={"content_files[#{field.id}]"}
accept="image/*"
required
/>
<small style="color: #666; font-size: 0.875rem;">Upload an image file</small>
<% 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 %>
<option value={content.id}>
<%= 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">Create</button>
<a href={"#{@base_path}/content"} class="btn-secondary">Cancel</a>
</div>
</form>
</div>