Commit 9dfd6f72 authored by Kevin Robert's avatar Kevin Robert
Browse files

UNAPLLYREC-25 : Correction du déplacement des écrans pour prendre en compte...

UNAPLLYREC-25 : Correction du déplacement des écrans pour prendre en compte qu'il peut y avoir plusieurs formulaires.
parent 088d6357
......@@ -115,25 +115,25 @@ public interface ScreenRepository extends JpaRepository<Screen, Long> {
* @param oldIndex l'ancienne position de l'écran
* @param newIndex la nouvelle position de l'écran
*/
@Query(value = "UPDATE screen SET index = index + 1 WHERE index >= :newIndex AND index < :oldIndex", nativeQuery = true)
@Query(value = "UPDATE screen SET index = index + 1 WHERE index >= :newIndex AND index < :oldIndex and form_id = :formId", nativeQuery = true)
@Modifying
void moveUp(@Param("oldIndex") Integer oldIndex, @Param("newIndex") Integer newIndex);
void moveUp(@Param("oldIndex") Integer oldIndex, @Param("newIndex") Integer newIndex, @Param("formId") Long formId);
/**
* Déplace vers le haut tous les écrans dont l'index est > ancien index et <= nouvel index
* @param oldIndex l'ancienne position de l'écran
* @param newIndex la nouvelle position de l'écran
*/
@Query(value = "UPDATE screen SET index = index - 1 WHERE index > :oldIndex AND index <= :newIndex", nativeQuery = true)
@Query(value = "UPDATE screen SET index = index - 1 WHERE index > :oldIndex AND index <= :newIndex and form_id = :formId", nativeQuery = true)
@Modifying
void moveDown(@Param("oldIndex") Integer oldIndex, @Param("newIndex") Integer newIndex);
void moveDown(@Param("oldIndex") Integer oldIndex, @Param("newIndex") Integer newIndex, @Param("formId") Long formId);
/**
* Change l'index
* @param id l'id d'un écran
* @param newIndex son nouvel index
*/
@Query(value = "UPDATE screen SET index = :newIndex WHERE id = :id", nativeQuery = true)
@Query(value = "UPDATE screen SET index = :newIndex WHERE id = :id and form_id = :formId ", nativeQuery = true)
@Modifying(flushAutomatically = true, clearAutomatically = true)
void updateIndex(@Param("id") Long id, @Param("newIndex") Integer newIndex);
void updateIndex(@Param("id") Long id, @Param("newIndex") Integer newIndex, @Param("formId") Long formId);
}
......@@ -253,10 +253,12 @@ public class ScreenService {
* @param patchedScreen l'écran modifié
*/
public void updateScreenOrder(final ScreenDTO oldScreen, final ScreenDTO patchedScreen) {
final Integer newIndex = patchedScreen.getIndex();
final Integer oldIndex = oldScreen.getIndex();
if (!newIndex.equals(oldIndex)) {
updateScreenOrder(oldScreen.getId(), oldIndex, newIndex);
if (oldScreen.getFormId().equals(patchedScreen.getFormId())) {
final Integer newIndex = patchedScreen.getIndex();
final Integer oldIndex = oldScreen.getIndex();
if (!newIndex.equals(oldIndex)) {
updateScreenOrder(oldScreen.getId(), oldIndex, newIndex, oldScreen.getFormId());
}
}
}
......@@ -266,13 +268,13 @@ public class ScreenService {
* @param oldIndex l'écran modifié
* @param newIndex l'écran modifié
*/
private void updateScreenOrder(final Long id, final Integer oldIndex, final Integer newIndex) {
private void updateScreenOrder(final Long id, final Integer oldIndex, final Integer newIndex, final Long formId) {
if (oldIndex < newIndex) {
screenRepository.moveDown(oldIndex, newIndex);
screenRepository.updateIndex(id, newIndex);
screenRepository.moveDown(oldIndex, newIndex, formId);
screenRepository.updateIndex(id, newIndex, formId);
} else if (oldIndex > newIndex) {
screenRepository.moveUp(oldIndex, newIndex);
screenRepository.updateIndex(id, newIndex);
screenRepository.moveUp(oldIndex, newIndex, formId);
screenRepository.updateIndex(id, newIndex, formId);
} else {
log.debug("L'index de l'écran id = {} n'a pas été modifié", id);
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment