]> git.ipfire.org Git - people/ms/westferry.git/commitdiff
demo: Add tabs to form examples
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 4 Dec 2021 17:05:23 +0000 (17:05 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 4 Dec 2021 17:05:23 +0000 (17:05 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Makefile.am
src/templates/demo/forms.html [deleted file]
src/templates/modules/tabs.html
src/westferry/handlers/demo.py
src/westferry/ui/forms.py
src/westferry/ui/tabs.py

index 7a819b9c4c26514fe9611bc083a3e18f42fbb3eb..57ce56f0b2489b9e22190cc67a1b5e6e08a4daca 100644 (file)
@@ -149,7 +149,6 @@ dist_templates_DATA = \
 templates_demodir = $(templatesdir)/demo
 
 dist_templates_demo_DATA = \
-       src/templates/demo/forms.html \
        src/templates/demo/index.html
 
 templates_modulesdir = $(templatesdir)/modules
diff --git a/src/templates/demo/forms.html b/src/templates/demo/forms.html
deleted file mode 100644 (file)
index efe0314..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-{% extends "../base.html" %}
-
-{% block main %}
-       {% module Form(form) %}
-{% end block %}
index 038d5d842fa450ba0ecd0a3fdc0927721effca76..bfd7d45b6c93703a341acfa439f7fa59b85cdcd9 100644 (file)
@@ -1,3 +1,4 @@
+{% import westferry.ui.forms %}
 {% import westferry.ui.graphs %}
 
 {#
@@ -27,7 +28,9 @@
 
                <div class="tabs-panel {% if selected %}is-active{% end %}" id="{{ tab.id }}">
                        {% for item in tab.items %}
-                               {% if isinstance(item, westferry.ui.graphs.Graph) %}
+                               {% if isinstance(item, westferry.ui.forms.Form) %}
+                                       {% module Form(item) %}
+                               {% elif isinstance(item, westferry.ui.graphs.Graph) %}
                                        {% module GraphBox(item, show_title=False) %}
                                {% else %}
                                        {% module WarningBox(_("Unknown UI Element"),
index 93000ddcb19c9447783b7a598b3a78b24835244e..b99031109c016b5b246357613958caf92f24b614 100644 (file)
@@ -53,22 +53,14 @@ class DemoFormsHandler(DemoBaseHandler):
        url = r"/demo/forms"
        title = N_("Forms")
 
-       def get(self):
-               self.render("demo/forms.html", form=self.form)
-
-       def post(self):
-               data = self.form.export()
-               self.finish(data)
-
-       @property
-       def form(self):
-               """
-                       This creates a simple form that asks the user
-                       for their address.
-               """
+       def initialize(self):
                _ = self.locale.translate
 
-               form = backend.forms.Form(self)
+               # Create a new tab
+               tab = self.tabs.add_tab("example-1", _("Example 1"))
+
+               # Add a form to the tab
+               form = tab.add_form()
                form.submit_text = _("Order")
 
                # First name
@@ -99,5 +91,3 @@ class DemoFormsHandler(DemoBaseHandler):
 
                # Subscribe to newsletter?
                e = fs2.add_yesno_input("subscribe_to_newsletter", description=_("Subscribe to newsletter?"))
-
-               return form
index 2764d92980ed238aadee0b5c1b8ebc48c015bec8..76dd6162f5efba0a64c32e89335d4d487b944136 100644 (file)
@@ -22,6 +22,9 @@
 from ..backend import forms
 from . import base
 
+# Forward-compatibility
+from ..backend.forms import Form
+
 class FormModule(base.BaseUIModule):
        def render(self, form):
                return self.render_string("modules/forms/index.html",
index 82f7e484b6e7c8695c1ee422c30d8edbc36e9eea..5db68003012dbd1e65afd891c7631f6e77f0b267 100644 (file)
@@ -22,6 +22,7 @@
 import uuid
 
 from . import base
+from . import forms
 from . import graphs
 
 class TabsModule(base.BaseUIModule):
@@ -72,8 +73,14 @@ class Tab(object):
                # List to store all items that have been added to this tab
                self.items = []
 
-       def add_graph(self, *args, **kwargs):
-               graph = graphs.Graph(self.handler, *args, **kwargs)
-               self.items.append(graph)
+       def _add_item(self, cls, *args, **kwargs):
+               item = cls(self.handler, *args, **kwargs)
+               self.items.append(item)
+
+               return item
 
-               return graph
+       def add_form(self, *args, **kwargs):
+               return self._add_item(forms.Form, *args, **kwargs)
+
+       def add_graph(self, *args, **kwargs):
+               return self._add_item(graphs.Graph, *args, **kwargs)