stable

Clone or download

Read-only

prepareRanking can be too greedy when parent_key value is 0

In tracker, fields of a tracker have a rank that is relative to their parent container. Every time we create or move fields in a container, the DataAccessObject::prepareRanking() generic method is here to compute the new rank, and move siblings' rank to match the desired outcome. However an issue arise for top level fields, those that are not in a container. In that case, the parent_key value is 0, meaning that all top level fields of every trackers on the platform can see their rank moved. This has no impact in daily usage (rank is still consistent for every fields), however we should not update rank of fields that do not belong to the current tracker. This commit add an additional grouping to be sure that we stay in the given boundaries. There is no impact on other modules that are using this generic method: - cardwall card fields & tooltip semantics - docman approval table reviewers - tracker static values definition - tracker report renderers (+ table columns & sort) - frs packages Fix request #14467: Massive update of the rank of form element fields Change-Id: Id68a1a70387b88dc8f09b2021fa721db048a0653

Modified Files

Name
M plugins/tracker/include/Tracker/FormElement/dao/Tracker_FormElement_FieldDao.class.php +20 −2 Go to diff View file
D plugins/tracker/include/Tracker/FormElement/dao/Tracker_FormElement_FieldSetDao.class.php +0 −95 Go to diff View file
M src/common/dao/include/DataAccessObject.class.php +37 −10 Go to diff View file