Tue, 03 Jan 2023 17:04:39 +0100
add more possible sort criteria
1.1 --- a/src/main/kotlin/de/uapcore/lightpit/entities/Issue.kt Fri Dec 30 19:14:04 2022 +0100 1.2 +++ b/src/main/kotlin/de/uapcore/lightpit/entities/Issue.kt Tue Jan 03 17:04:39 2023 +0100 1.3 @@ -62,5 +62,13 @@ 1.4 eta == reference.eta && 1.5 affected == reference.affected && 1.6 resolved == reference.resolved) 1.7 + 1.8 + fun compareEtaTo(date: Date?): Int { 1.9 + val eta = this.eta 1.10 + return if (eta == null && date == null) 0 1.11 + else if (eta == null) 1 1.12 + else if (date == null) -1 1.13 + else eta.compareTo(date) 1.14 + } 1.15 } 1.16
2.1 --- a/src/main/kotlin/de/uapcore/lightpit/servlet/ProjectServlet.kt Fri Dec 30 19:14:04 2022 +0100 2.2 +++ b/src/main/kotlin/de/uapcore/lightpit/servlet/ProjectServlet.kt Tue Jan 03 17:04:39 2023 +0100 2.3 @@ -187,7 +187,7 @@ 2.4 val issues = dao.listIssues(project, version, component) 2.5 .sortedWith( 2.6 IssueSorter( 2.7 - IssueSorter.Criteria(IssueSorter.Field.PHASE), 2.8 + IssueSorter.Criteria(IssueSorter.Field.STATUS), 2.9 IssueSorter.Criteria(IssueSorter.Field.ETA), 2.10 IssueSorter.Criteria(IssueSorter.Field.UPDATED, false) 2.11 )
3.1 --- a/src/main/kotlin/de/uapcore/lightpit/viewmodel/Issues.kt Fri Dec 30 19:14:04 2022 +0100 3.2 +++ b/src/main/kotlin/de/uapcore/lightpit/viewmodel/Issues.kt Tue Jan 03 17:04:39 2023 +0100 3.3 @@ -37,7 +37,7 @@ 3.4 3.5 class IssueSorter(private vararg val criteria: Criteria) : Comparator<Issue> { 3.6 enum class Field { 3.7 - PHASE, ETA, UPDATED 3.8 + STATUS, CATEGORY, ETA, UPDATED, CREATED 3.9 } 3.10 3.11 data class Criteria(val field: Field, val asc: Boolean = true) 3.12 @@ -48,16 +48,11 @@ 3.13 } 3.14 for (c in criteria) { 3.15 val result = when (c.field) { 3.16 - Field.PHASE -> left.status.phase.compareTo(right.status.phase) 3.17 - Field.ETA -> { 3.18 - val l = left.eta 3.19 - val r = right.eta 3.20 - if (l == null && r == null) 0 3.21 - else if (l == null) 1 3.22 - else if (r == null) -1 3.23 - else l.compareTo(r) 3.24 - } 3.25 + Field.STATUS -> left.status.compareTo(right.status) 3.26 + Field.CATEGORY -> left.category.compareTo(right.category) 3.27 + Field.ETA -> left.compareEtaTo(right.eta) 3.28 Field.UPDATED -> left.updated.compareTo(right.updated) 3.29 + Field.CREATED -> left.created.compareTo(right.created) 3.30 } 3.31 if (result != 0) { 3.32 return if (c.asc) result else -result