From 4961036719d851989ea693f6536986b747bef706 Mon Sep 17 00:00:00 2001 From: Andrea Zagli <azagli@libero.it> Date: Tue, 7 Feb 2023 17:14:41 +0100 Subject: [PATCH] Added function Field::set_template. --- examples/form.rs | 10 ++++++++++ src/lib.rs | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/examples/form.rs b/examples/form.rs index 8392fcd..2e560cd 100644 --- a/examples/form.rs +++ b/examples/form.rs @@ -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"); diff --git a/src/lib.rs b/src/lib.rs index 43b0f31..05474f4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -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); } -- 2.49.0