]> saetta.ns0.it Git - rust/zakform/commitdiff
Field: added to_render.
authorAndrea Zagli <azagli@libero.it>
Sat, 4 Mar 2023 15:12:41 +0000 (16:12 +0100)
committerAndrea Zagli <azagli@libero.it>
Sat, 4 Mar 2023 15:12:41 +0000 (16:12 +0100)
src/fields.rs

index b884243bd989a77161f819b7ae45e86088642509..c4823ee6d93311db76ee930060968dd355fe680c 100644 (file)
@@ -14,6 +14,7 @@ struct Field {
        value: String,
        to_load: bool,
        to_save: bool,
+       to_render: bool,
        tmpl: tera::Tera,
        filters: Vec<super::filters::Filter>,
 }
@@ -42,6 +43,9 @@ pub trait TField {
        fn get_to_save(&self) -> bool;
        fn set_to_save(&mut self, to_save: bool);
 
+       fn get_to_render(&self) -> bool;
+       fn set_to_render(&mut self, to_render: bool);
+
        fn add_filter(&mut self, filter: super::filters::Filter);
 
        fn filter(&mut self);
@@ -120,6 +124,14 @@ impl TField for FieldText {
                self.field.to_save = save;
        }
 
+       fn get_to_render(&self) -> bool {
+               self.field.to_render
+       }
+
+       fn set_to_render(&mut self, render: bool) {
+               self.field.to_render = render;
+       }
+
        fn add_filter(&mut self, filter: super::filters::Filter) {
                self.field.filters.push(filter);
        }
@@ -139,6 +151,9 @@ impl TField for FieldText {
 
        fn render(&self) -> String {
                let mut s = String::new();
+               if !self.field.to_render {
+                       return s;
+               }
 
                let mut context = tera::Context::new();
                context.insert("name", &self.field.name);
@@ -166,6 +181,7 @@ impl FieldText {
                f.field.label = String::from(name);
                f.field.to_load = true;
                f.field.to_save = true;
+               f.field.to_render = true;
 
                match f.field.tmpl.add_raw_template("field", r#"{% if label %}<div class="mb-3">
  <label for="{{ name }}" class="form-label">{{ label }}</label>{% endif %}
@@ -256,6 +272,14 @@ impl TField for FieldTextArea {
                self.field.to_save = save;
        }
 
+       fn get_to_render(&self) -> bool {
+               self.field.to_render
+       }
+
+       fn set_to_render(&mut self, render: bool) {
+               self.field.to_render = render;
+       }
+
        fn add_filter(&mut self, filter: super::filters::Filter) {
                self.field.filters.push(filter);
        }
@@ -275,6 +299,9 @@ impl TField for FieldTextArea {
 
        fn render(&self) -> String {
                let mut s = String::new();
+               if !self.field.to_render {
+                       return s;
+               }
 
                let mut context = tera::Context::new();
                context.insert("name", &self.field.name);
@@ -303,6 +330,7 @@ impl FieldTextArea {
                f.field.label = String::from(name);
                f.field.to_load = true;
                f.field.to_save = true;
+               f.field.to_render = true;
 
                f.rows = 5;
 
@@ -409,6 +437,14 @@ impl TField for FieldRadio {
                self.field.to_save = save;
        }
 
+       fn get_to_render(&self) -> bool {
+               self.field.to_render
+       }
+
+       fn set_to_render(&mut self, render: bool) {
+               self.field.to_render = render;
+       }
+
        fn add_filter(&mut self, filter: super::filters::Filter) {
                self.field.filters.push(filter);
        }
@@ -428,6 +464,9 @@ impl TField for FieldRadio {
 
        fn render(&self) -> String {
                let mut s = String::new();
+               if !self.field.to_render {
+                       return s;
+               }
 
                let mut context = tera::Context::new();
                context.insert("name", &self.field.name);
@@ -455,6 +494,7 @@ impl FieldRadio {
                f.field.label = String::from(name);
                f.field.to_load = true;
                f.field.to_save = true;
+               f.field.to_render = true;
 
                match f.field.tmpl.add_raw_template("field", r#"{% if label %}<div class="mb-3">
  <label for="{{ name }}" class="form-label">{{ label }}</label><br/>{% endif %}
@@ -578,6 +618,14 @@ impl TField for FieldSelect {
                self.field.to_save = save;
        }
 
+       fn get_to_render(&self) -> bool {
+               self.field.to_render
+       }
+
+       fn set_to_render(&mut self, render: bool) {
+               self.field.to_render = render;
+       }
+
        fn add_filter(&mut self, filter: super::filters::Filter) {
                self.field.filters.push(filter);
        }
@@ -597,6 +645,9 @@ impl TField for FieldSelect {
 
        fn render(&self) -> String {
                let mut s = String::new();
+               if !self.field.to_render {
+                       return s;
+               }
 
                let mut context = tera::Context::new();
                context.insert("name", &self.field.name);
@@ -624,6 +675,7 @@ impl FieldSelect {
                f.field.label = String::from(name);
                f.field.to_load = true;
                f.field.to_save = true;
+               f.field.to_render = true;
 
                match f.field.tmpl.add_raw_template("field", r#"{% if label %}<div class="mb-3">
  <label for="{{ name }}" class="form-label">{{ label }}</label><br/>{% endif %}
@@ -712,6 +764,14 @@ impl TField for FieldCheck {
                self.field.to_save = save;
        }
 
+       fn get_to_render(&self) -> bool {
+               self.field.to_render
+       }
+
+       fn set_to_render(&mut self, render: bool) {
+               self.field.to_render = render;
+       }
+
        fn add_filter(&mut self, filter: super::filters::Filter) {
                self.field.filters.push(filter);
        }
@@ -731,6 +791,9 @@ impl TField for FieldCheck {
 
        fn render(&self) -> String {
                let mut s = String::new();
+               if !self.field.to_render {
+                       return s;
+               }
 
                let mut context = tera::Context::new();
                context.insert("name", &self.field.name);
@@ -757,6 +820,7 @@ impl FieldCheck {
                f.field.label = String::from(name);
                f.field.to_load = true;
                f.field.to_save = true;
+               f.field.to_render = true;
 
                match f.field.tmpl.add_raw_template("field", r#"<div class="form-check">
  <input type="checkbox" class="form-check-input{% if help %} is-invalid{% endif %}" name="{{ name }}" id="{{ name }}" {% if value == "1" or value == "on" %}checked{% endif %}/>
@@ -838,6 +902,14 @@ impl TField for FieldButton {
                self.field.to_save = save;
        }
 
+       fn get_to_render(&self) -> bool {
+               self.field.to_render
+       }
+
+       fn set_to_render(&mut self, render: bool) {
+               self.field.to_render = render;
+       }
+
        fn add_filter(&mut self, filter: super::filters::Filter) {
                self.field.filters.push(filter);
        }
@@ -857,6 +929,9 @@ impl TField for FieldButton {
 
        fn render(&self) -> String {
                let mut s = String::new();
+               if !self.field.to_render {
+                       return s;
+               }
 
                let mut context = tera::Context::new();
                context.insert("name", &self.field.name);
@@ -882,8 +957,7 @@ impl FieldButton {
 
                f.field.name = String::from(name);
                f.field.label = String::from(name);
-               f.field.to_load = false;
-               f.field.to_save = false;
+               f.field.to_render = true;
 
                match f.field.tmpl.add_raw_template("field", r#"<button class="btn btn-primary" type="submit" name="{{ name }}" id="{{ name }}"
 {% if form %}form="{{ form }}"{% endif %}>{{ label }}</button>"#) {