<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>{% if item %}Update{% else %}Add{% endif %} Item</title> </head> <body> {% include 'header.html' %} <h2>{% if item %}Update{% else %}Add{% endif %} Item</h2> <!-- Display error message if any --> {% if error %} <p>{{ error }}</p> {% endif %} <!-- Form for adding/updating an item --> <form method="POST"> {% for attrib in item_attributes -%} <p> <label for="{{ attrib.attrib_name }}">{{ attrib.display_name }}:</label> {% if attrib.html_input_type == "select" %} <!-- Render a dropdown for select attributes --> <select id="{{ attrib.attrib_name }}" name="{{ attrib.attrib_name }}" {% if attrib.required %} required {% endif %} > {% for option in attrib.options -%} <option value="{{ option }}" {% if item and item[attrib.attrib_name] == option %}selected{% endif %}>{{ option }}</option> {% endfor %} </select> {% else %} <!-- Render an input field for other attributes --> <input id="{{ attrib.attrib_name }}" type="{{ attrib.html_input_type }}" name="{{ attrib.attrib_name }}" {% if attrib.required %} required {% endif %} {% if attrib.min_val is not none %} min="{{ attrib.min_val }}" {% endif %} {% if attrib.max_val is not none %} max="{{ attrib.max_val }}" {% endif %} {% if attrib.step is not none %} step="{{ attrib.step }}" {% endif %} {% if attrib.max_length is not none %} maxlength="{{ attrib.max_length }}" {% endif %} {% if attrib.min_length is not none %} minlength="{{ attrib.min_length }}" {% endif %} {% if attrib.regex is not none %} pattern="{{ attrib.regex }}" {% endif %} {% if item %} value="{{ item[attrib.attrib_name] }}" {% else %} {% if attrib.default_val is not none %} value="{{ attrib.default_val }}" {% endif %} {% endif %} /> {% endif %} </p> {% endfor %} <p><input type="submit" value="{% if item %}Update{% else %}Submit{% endif %}" /></p> <button type="button" onclick="window.location.href='/'">Cancel</button> </form> </body> </html>