Opened 10 years ago
Closed 10 years ago
#796 closed (fixed)
Management of table preferences should be more stable
Reported by: | olle | Owned by: | olle |
---|---|---|---|
Milestone: | Proteios SE 2.18.0 | Keywords: | |
Cc: |
Description
Management of table preferences should be more stable. Current design has been known to sometimes lead to erroneous updates of table preferences, when no preferences have been changed by the user. As such an erroneous update will save default table settings, the user often perceives this as if the previous table settings were never saved, while they actually were later over-written by standard settings.
Change History (6)
comment:1 Changed 10 years ago by
Status: | new → assigned |
---|
comment:2 Changed 10 years ago by
Traceability note.
- Saving of table preferences were introduced in Ticket #582 (Table setting in the Hits table should be persistent).
- Ticket #783 (Table preferences job table) describes a problem with job table preferences, but related to the preferences not being saved between sessions.
- Ticket #795 (Job table buttons may trigger erroneous table preferences update) concerns another problem related to table preferences for the job table.
comment:3 Changed 10 years ago by
Problem discussion.
This discussion assumes that the user has selected to always save table preferences.
- Valid parameter
VString VTABLECONFIGURATIONUPDATED
with name "tableConfigurationUpdated
" is defined in class/fileaction/ConfigureTableFactory2.java
inclient/servlet/
, and is used to indicate when a user has updated the table configuration in the table preferences pop-up window. The latter is defined in public methodTag convert(org.proteios.gui.table.Table table)
in class/filegui/web/GUIConverter.java
inclient/servlet/
, and contains an "Apply" button, which when clicked will submit the form that includes a hidden input field with name "tableConfigurationUpdated
" and value set to "true
". - When a class with a table managed by
ConfigureTableFactory2
is entered, the values of some valid parameters includingVString VTABLECONFIGURATIONUPDATED
are checked, to determine if the current table settings should be saved in the preferences file. The other parameters are valid parameterVBoolean VTABLEUPDATEBUTTONCLICKED
andboolean
instance variableConfigureTableFactory2.externalTableUpdateButtonClicked
, which are used when table filter settings are changed. Afterwards, the table is created with settings read from the preferences file. - When a class with a table managed by
ConfigureTableFactory2
is first entered, the value of valid parameterVString VTABLECONFIGURATIONUPDATED
isnull
, which classConfigureTableFactory2
handles as "false
". However, after the table configuration has been changed and saved from the table preferences pop-up window, when one returns to the original table after some other action, the value of valid parameterVString VTABLECONFIGURATIONUPDATED
has sometimes been "true
" instead ofnull
, making default settings being saved in the preferences file, overwriting the desired settings. This conclusion could be drawn from inspection of debug output of variable values in log files, and direct inspection of the contents of the preferences file in question at different stages of the use case. Unfortunately, it is not easy to determine exactly where the problem starts.
comment:4 Changed 10 years ago by
Design update.
- Values of valid parameters can be set when an action link like a button is clicked, or via an input field in a submitted form. The table preferences pop-up window defined in public method
Tag convert(org.proteios.gui.table.Table table)
in class/filegui/web/GUIConverter.java
inclient/servlet/
is updated to not have a hidden input field with name "tableConfigurationUpdated
" and value set to "true
", but instead define an action link coupled to the "Apply" button, and adding parameter "tableConfigurationUpdated
" with value "true
" to this action link. The intention is to couple the setting of the flag more closely to the clicking of the "Apply" button in the table preferences pop-up window, and avoid any undesired side effects from having the value set in a hidden input field in the form. - In order to test if this modification makes management of table preferences more stable, the fixes made in Ticket #795 (Job table buttons may trigger erroneous table preferences update) to class/file
action/job/ListJobs.java
inclient/servlet/
, where the value of valid parameterVString VTABLECONFIGURATIONUPDATED
was explicitly set to "false
", when one of the buttons for the job table was clicked, should be reverted.
comment:5 Changed 10 years ago by
(In [4398]) Refs #796. Refs #795. Refs #783. Update of table preferences management:
- The table preferences pop-up window defined in public method
Tag convert(org.proteios.gui.table.Table table)
in class/filegui/web/GUIConverter.java
inclient/servlet/
is updated to not have a hidden input field with name "tableConfigurationUpdated
" and value set to "true
", but instead define an action link coupled to the "Apply" button, and adding parameter "tableConfigurationUpdated
" with value "true
" to this action link. The intention is to couple the setting of the flag more closely to the clicking of the "Apply" button in the table preferences pop-up window, and avoid any undesired side effects from having the value set in a hidden input field in the form.
- The fixes made in Ticket #795 (Job table buttons may trigger erroneous table preferences update) to class/file
action/job/ListJobs.java
inclient/servlet/
, where the value of valid parameterVString VTABLECONFIGURATIONUPDATED
was explicitly set to "false
", when one of the buttons for the job table was clicked, have been reverted, in order to check if the modification above makes management of table preferences more stable.
comment:6 Changed 10 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Ticket closed since the added changes seems to be an improvement. If unwanted side effects should be found, this ticket may be reopened, or a new ticket created.
Ticket accepted.