Изменения способа сортировки задач в Share
По умолчанию список задач в Share отсортирован по срокам выполнения (наиболее срочные находятся вверху). Иногда может возникнуть необходимость изменить этот порядок, но, к сожалению, разработчиками не предусмотрена возможность такой настройки. Ниже приведен патч, который позволяет сортировать задачи по их id (в таком случае самые старые задачи будут находиться сверху):
--- TaskInstancesGet.java +++ TaskInstancesGet.java @@ -57,7 +57,7 @@ public static final String PARAM_POOLED_TASKS = "pooledTasks"; public static final String VAR_WORKFLOW_INSTANCE_ID = "workflow_instance_id"; - private WorkflowTaskDueAscComparator taskComparator = new WorkflowTaskDueAscComparator(); + private WorkflowTaskIdAscComparator taskComparator = new WorkflowTaskIdAscComparator(); @Override protected Map<String, Object> buildModel(WorkflowModelBuilder modelBuilder, WebScriptRequest req, Status status, Cache cache) @@ -331,4 +331,20 @@ } } + + /** + * Comparator to sort workflow tasks by id in ascending order. + */ + class WorkflowTaskIdAscComparator implements Comparator<WorkflowTask> + { + @Override + public int compare(WorkflowTask o1, WorkflowTask o2) + { + Long id1 = (Long)o1.getProperties().get(WorkflowModel.PROP_TASK_ID); + Long id2 = (Long)o2.getProperties().get(WorkflowModel.PROP_TASK_ID); + + return (id1 > id2 ? 1 : 0); } + + } +}
Патч определяет новый компаратор и использует его вместо стандартного. Патч написан для 3.4.c, но должен накладываться и на более свежие версии.