/** * Change the order of a KPI definition comparing to the other KPIs with the same object type. * * @param kpiDefinitionId the KPI definition id * @param isDecrement if true then we decrement the order, else we increment it */ public Result changeOrder(Long kpiDefinitionId, Boolean isDecrement) { KpiDefinition kpiDefinition = KpiDefinition.getById(kpiDefinitionId); KpiDefinition kpiDefinitionToReverse = null; if (isDecrement) { kpiDefinitionToReverse = KpiDefinition.getPrevious(kpiDefinition.objectType, kpiDefinition.order); } else { kpiDefinitionToReverse = KpiDefinition.getNext(kpiDefinition.objectType, kpiDefinition.order); } if (kpiDefinitionToReverse != null) { Integer newOrder = kpiDefinitionToReverse.order; kpiDefinitionToReverse.order = kpiDefinition.order; kpiDefinitionToReverse.save(); kpiDefinition.order = newOrder; kpiDefinition.save(); } return redirect(controllers.admin.routes.KpiManagerController.index()); }