add more possible sort criteria

Tue, 03 Jan 2023 17:04:39 +0100

author
Mike Becker <universe@uap-core.de>
date
Tue, 03 Jan 2023 17:04:39 +0100
changeset 265
6a21bb926e02
parent 264
7d67245e5121
child 266
65c72e65ff67

add more possible sort criteria

src/main/kotlin/de/uapcore/lightpit/entities/Issue.kt file | annotate | diff | comparison | revisions
src/main/kotlin/de/uapcore/lightpit/servlet/ProjectServlet.kt file | annotate | diff | comparison | revisions
src/main/kotlin/de/uapcore/lightpit/viewmodel/Issues.kt file | annotate | diff | comparison | revisions
     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

mercurial