|
86 | 86 | .. autofunction:: put_checkbox |
87 | 87 | .. autofunction:: put_radio |
88 | 88 | .. autofunction:: put_slider |
| 89 | +.. autofunction:: put_actions |
89 | 90 |
|
90 | 91 | Pin utils |
91 | 92 | ------------------ |
|
128 | 129 |
|
129 | 130 | _html_value_chars = set(string.ascii_letters + string.digits + '_') |
130 | 131 |
|
131 | | -__all__ = ['put_input', 'put_textarea', 'put_select', 'put_checkbox', 'put_radio', 'put_slider', 'pin', 'pin_update', |
132 | | - 'pin_wait_change'] |
| 132 | +__all__ = ['put_input', 'put_textarea', 'put_select', 'put_checkbox', 'put_radio', 'put_slider', 'put_actions', |
| 133 | + 'pin', 'pin_update', 'pin_wait_change'] |
133 | 134 |
|
134 | 135 |
|
135 | 136 | def check_name(name): |
@@ -204,6 +205,22 @@ def put_slider(name, *, label='', value=0, min_value=0, max_value=100, step=1, r |
204 | 205 | return _pin_output(single_input_return, scope, position) |
205 | 206 |
|
206 | 207 |
|
| 208 | +def put_actions(name, *, label='', buttons=None, help_text=None, |
| 209 | + scope=Scope.Current, position=OutputPosition.BOTTOM) -> Output: |
| 210 | + """Output a group of action button. Refer to: `pywebio.input.actions()` |
| 211 | +
|
| 212 | + Unlike the ``actions()``, ``put_actions()`` won't submit any form, it will only set the value of the pin widget. |
| 213 | + Only 'submit' type button is available in pin widget version. |
| 214 | + """ |
| 215 | + from pywebio.input import actions |
| 216 | + check_name(name) |
| 217 | + single_input_return = actions(name=name, label=label, buttons=buttons, help_text=help_text) |
| 218 | + input_kwargs = single_input_kwargs(single_input_return) |
| 219 | + for btn in input_kwargs['item_spec']['buttons']: |
| 220 | + assert btn['type'] == 'submit', "The `put_actions()` pin widget only accept 'submit' type button." |
| 221 | + return _pin_output(input_kwargs, scope, position) |
| 222 | + |
| 223 | + |
207 | 224 | @chose_impl |
208 | 225 | def get_client_val(): |
209 | 226 | res = yield next_client_event() |
|
0 commit comments