]> saetta.ns0.it Git - rust/zakform/commitdiff
Added function Field::set_template.
authorAndrea Zagli <azagli@libero.it>
Tue, 7 Feb 2023 16:14:41 +0000 (17:14 +0100)
committerAndrea Zagli <azagli@libero.it>
Tue, 7 Feb 2023 16:14:41 +0000 (17:14 +0100)
examples/form.rs
src/lib.rs

index 8392fcd56ffc7516a3412db9cc94c28a18ff75ff..2e560cd09d7280c4ef7596f5969acc1c2ab03eb8 100644 (file)
@@ -72,6 +72,11 @@ async fn index_post(
        fi.set_value(map.get(fi.name().as_str()).unwrap().as_str());
        fi.add_filter(filters::filter_uppercase);
        fi.filter();
+       fi.set_template(r#"{% if label %}<div class="mb-3" style="background-color: #FF0000;">
+ <label for="{{ name }}" class="form-label">{{ label }}</label>{% endif %}
+ <input type="text" class="form-control{% if help %} is-invalid{% endif %}" name="{{ name }}" id="{{ name }}" {% if value %} value="{{ value }}" {% endif %} {% if disabled %} readonly {% endif %} {% if maxlen > 0 %}maxlength="{{ maxlen }}"{% endif %} {% if invisible %}style="display: none;"{% endif %}/>
+ {% if help %}<div id="helpBox_{{ name }}_" class="invalid-feedback">{{ help }}</div>{% endif %}
+ {% if label %}</div>{% endif %}"#);
        f.add_field(fi);
 
        let mut fi = zakform::Field::new(zakform::FType::TextArea, "notes");
@@ -122,6 +127,11 @@ async fn index(
 
        let mut fi = zakform::Field::new(zakform::FType::Text, "name");
        fi.set_label("Name");
+       fi.set_template(r#"{% if label %}<div class="mb-3" style="background-color: #FF0000;">
+ <label for="{{ name }}" class="form-label">{{ label }}</label>{% endif %}
+ <input type="text" class="form-control{% if help %} is-invalid{% endif %}" name="{{ name }}" id="{{ name }}" {% if value %} value="{{ value }}" {% endif %} {% if disabled %} readonly {% endif %} {% if maxlen > 0 %}maxlength="{{ maxlen }}"{% endif %} {% if invisible %}style="display: none;"{% endif %}/>
+ {% if help %}<div id="helpBox_{{ name }}_" class="invalid-feedback">{{ help }}</div>{% endif %}
+ {% if label %}</div>{% endif %}"#);
        f.add_field(fi);
 
        let mut fi = zakform::Field::new(zakform::FType::TextArea, "notes");
index 43b0f312b9674a1ffd21f5295506a80805e8fa6f..05474f47d8e46205d7cbf13bdd71a73ef846471d 100644 (file)
@@ -145,6 +145,10 @@ impl Field {
                self.options.push(option);
        }
 
+       pub fn set_template(&mut self, template: &str) {
+               self.tmpl.add_raw_template("field", template);
+       }
+
        pub fn add_filter(&mut self, filter: filters::Filter) {
                self.filters.push(filter);
        }