Content
View differences
Updated by Jens Ulferts almost 6 years ago
### User Problem
#### User
Everybody editing work packages within the work package list among which are
* Project manager
* Project member
* Product owner
#### Problem
The whole table (+ gantt) is currently reloaded whenever a user alters a work package within the list. This reload is slow and (in part) blocking.
* User having to wait for the table to refresh.
* User having their already opened input closed unexpectedly by a table refresh.
#### Pain
* Wait
### Solution
_Avoid the refresh to become visible to the user_
This represents the current state of the discussion
* After every update, fetch the data (same as before)
* Instead We only refresh parts of repainting the whole table, only repaint individual rows. In order to know table (that which rows need repainting, we can store the lock version and the id in the front end and compare the values.
know is outdated)
* The repainting of individual rows will be fast compared to repainting the entire table.
* The repainting of individual rows will lead to We do not closing close open edit fields already opened by (as we do not refresh the user in the meantime. whole table but only individual rows)
* This approach has (Optionally) We do not refresh the drawback that in some cases, e.g. changing whole of the attribute table at all as this also leads to users loosing the work packages are grouped or filtered by, a package they where just working at (e.g. added new work package might end up in the wrong place. Additionally, group counters & sums might be wrong. We have to identify whether this is acceptable. To mitigate the problem, package, changing position because of grouping). Instead, we could display an icon showing that some data might be placed incorrectly. Ideally, we would highlight add a notification (e.g. bubble) informing the elements user that are invalid. The user can force refreshing the whole table by clicking on is outdated, possibly indicating the icon.
* To think about: If we accept the drawback of having incorrect positions, we could use this to our advantage by filtering by work package id and the updated at time (as well as the existing filters) to only fetch the work packages that have been updated since last we queried. This will lead to become outdated. Only if the user actively requests a considerable increase in backend performance in most cases as probably fewer work packages are returned than refresh, is the whole page size. of the table refreshed.
#### Out of Scope for the MVC
* Backend speed improvements
#### Differentiation
* An uninhibited flow when updating a set of work packages
#### Next iteration
* Backend speed improvements (signaling and JSON rendering in DB)
### Launch and Growth
#### Measures
* No more complaints about edit fields being closed unexpectedly
* No more complaints about poor performance when editing fields in the wp table.
#### Messaging
_If you were to write a press release, how would you describe the value to customers?_
<figure class="table"><table><tbody><tr><th>Headline</th><td></td></tr><tr><th>First Paragraph</th><td></td></tr><tr><th>Customer Quote</th><td></td></tr></tbody></table></figure>
#### Go to market
_How are you planning on getting this into users' hands?_
#### User
Everybody editing work packages within the work package list among which are
* Project manager
* Project member
* Product owner
#### Problem
The whole table (+ gantt) is currently reloaded whenever a user alters a work package within the list. This reload is slow and (in part) blocking.
* User having to wait for the table to refresh.
* User having their already opened input closed unexpectedly by a table refresh.
#### Pain
* Wait
### Solution
_Avoid the refresh to become visible to the user_
This represents the current state of the discussion
* After every update, fetch the data (same as before)
* Instead
* The repainting of individual rows will lead to
* This approach has
* To think about: If we accept the drawback of having incorrect positions, we could use this to our advantage by filtering by work package id and the updated at time (as well as the existing filters) to only fetch the work packages that have been updated since last we queried. This will lead to
#### Out of Scope for the MVC
* Backend speed improvements
#### Differentiation
* An uninhibited flow when updating a set of work packages
#### Next iteration
* Backend speed improvements (signaling and JSON rendering in DB)
### Launch and Growth
#### Measures
* No more complaints about edit fields being closed unexpectedly
* No more complaints about poor performance when editing fields in the wp table.
#### Messaging
_If you were to write a press release, how would you describe the value to customers?_
<figure class="table"><table><tbody><tr><th>Headline</th><td></td></tr><tr><th>First Paragraph</th><td></td></tr><tr><th>Customer Quote</th><td></td></tr></tbody></table></figure>
#### Go to market
_How are you planning on getting this into users' hands?_