{% extends "base.html" %}
{% load i18n %}
{% load static %}
{# ============================================================
EENOS UAPP FORM TEMPLATE REFERENCE
============================================================
FRONTEND STACK
--------------
- Bootstrap 5.3.8
- jQuery 4
- Lucide Icons
- Parsley.js
- Eenos UappClass
UAPPCLASS FEATURES
-----------------
UappClass already provides shared functionality for:
- Parsley validation
- Searchable select fields
- Password generation
- Password show / hide
- Password strength meter
- Lucide icon initialization
Do NOT duplicate these features inside page-specific JS.
FORM RULES
----------
Forms using standard Eenos validation must use:
class="eenos-form"
Use native HTML validation attributes together with Parsley:
required
minlength=""
maxlength=""
min=""
max=""
data-parsley-type=""
data-parsley-pattern=""
Custom validation messages may use:
data-parsley-required-message=""
data-parsley-type-message=""
data-parsley-pattern-message=""
SEARCHABLE SELECT
-----------------
Searchable selects must use:
class="form-select eenos-select-search"
UappClass handles the enhanced select interface.
PASSWORD GENERATOR
------------------
Use the standard component classes:
.eenos-password-generator
.eenos-password-input
.eenos-password-toggle
.eenos-password-generate
.eenos-password-strength
.eenos-password-strength-progress
.eenos-password-strength-text
Do NOT write another password generator in the page JS.
CONFIRMATIONS / MODALS
----------------------
Do NOT use:
$.confirm()
$.alert()
jquery-confirm
All old jQuery Confirm dialogs must be converted to
Bootstrap 5.3 modals.
For actions requiring validation before confirmation:
1. Prevent the button's default action.
2. Get the form Parsley instance.
3. Call parsleyForm.validate().
4. Check parsleyForm.isValid().
5. Only open the Bootstrap modal when valid.
LUCIDE ICONS
------------
Use:
Lucide is already initialized by UappClass.
Do not initialize Lucide separately on every page unless
dynamically generated content specifically requires it.
HTML / ACCESSIBILITY
--------------------
Every form label must reference its field:
Do not use