#405 Improve upon commit f6a511bf
Merged 6 years ago by abompard. Opened 6 years ago by abompard.
abompard/fedora-hubs feature/widget-params  into  develop

@@ -11,14 +11,15 @@ 

  

    render() {

      let fields = this.props.widget.params.map((field) => {

+       const attributes = {

+         className: "form-control",

+         ...field.renderAttributes

+       };

        return (

          <fieldset className="form-group row" key={field.name}>

            <strong>{field.label}</strong>

            <field.renderTag

-             className="form-control"

-             type={

-               field.renderTag === "input" ? field.renderType : null

-             }

+             {...attributes}

              value={this.props.values[field.name] || ""}

              name={field.name}

              onChange={(e) => {

@@ -161,7 +161,7 @@ 

                   'label': 'Text',

                   'name': 'text',

                   'renderTag': 'input',

-                  'renderType': 'text',

+                  'renderAttributes': {'type': 'text'},

                   },

              ],

              'position': 'right',

@@ -129,14 +129,14 @@ 

                   'label': 'Hubs',

                   'name': 'hubs',

                   'renderTag': 'input',

-                  'renderType': 'text',

+                  'renderAttributes': {'type': 'text'},

                   },

                  {'default': 4,

                   'help': 'The number of requests per page to display.',

                   'label': 'Requests per page',

                   'name': 'per_page',

                   'renderTag': 'input',

-                  'renderType': 'text',

+                  'renderAttributes': {'type': 'text'},

                   },

              ],

              'position': 'right',

file modified
+6 -4
@@ -29,8 +29,8 @@ 

              viewing the widget, it will only be available in the widget

              configuration.

          render_tag (str): The HTML tag to use when rendering.

-         render_type (str): The HTML type attribute to use when rendering if the

-             tag is ``input``.

+         render_attributes (dict): A mapping of HTML attribute names to values

+             to use when rendering.

      """

  

      _defaults = {
@@ -40,13 +40,15 @@ 

          "validator": Noop,

          "secret": False,

          "render_tag": "input",

-         "render_type": "text",

+         "render_attributes": {},

      }

  

      def __init__(self, name, **kwargs):

          self.name = name

          for attr, default in self._defaults.items():

              setattr(self, attr, kwargs.pop(attr, default))

+         if self.render_tag == "input" and "type" not in self.render_attributes:

+             self.render_attributes["type"] = "text"

          for kw in kwargs:

              raise TypeError("Invalid argument: %s" % kw)

  
@@ -60,6 +62,6 @@ 

              label=self.label,

              default=self.default,

              renderTag=self.render_tag,

-             renderType=self.render_type,

+             renderAttributes=self.render_attributes,

              help=self.help,

              )

Commit f6a511b did not bring enough flexibility to the widget parameters. This commit takes a more generic approach.

rebased onto 56b117c

6 years ago

Pull-Request has been merged by abompard

6 years ago