Steps to reproduce:
- Run 'timezone' yast2 module when libyui-rest-api is installed in the system (e.g. for ncurses:
sudo YUI_HTTP_PORT=9999 /sbin/yast2 timezone, Qt:
xdg-su -c "env YUI_HTTP_PORT=9999 /sbin/yast2 timezone");
- Select another region (e.g. select 'Russia' with
curl -X POST 'http://localhost:9999/v1/widgets?id=region&action=select&value=Russia');
- Focus on 'Time Zone' selector.
Time Zone list is changed in accordance with the selected region.
Time Zone is remained unchanged.
The same issue is reproduced for:
- YComboBox in Qt;
- YInputField (e.g. run
xdg-su -c "env YUI_HTTP_PORT=9999 /sbin/yast2 alternatives"and execute
curl -X POST 'http://localhost:9999/v1/widgets?id=search&action=enter_text&value=clang'=> The text will be set, but table is not updated.
- YSelectionBox in ncurses.
Please consider other elements which also require the event to be sent after updating.
The issue might happen because YComboBox, YSelectionBox, YInputField do not implement
activate() method (we just need to send relevant event), so that the method is not called in YHttpWidgetsActionHandler in libyui-rest-api:
/** * Activate the item selected in the tree. Can be used in tests to simulate user input. * * Derived classes are required to implement this. **/ virtual void activate() = 0;
#4 Updated by oorlov about 1 year ago
- Subject changed from [functional][y] Changing a value in YComboBox and YSelectionBox does not trigger events to reload other elements of the window. to [functional][y] Changing a value in an element does not trigger events to reload other elements of the window.
- Description updated (diff)