src/main/kotlin/de/uapcore/lightpit/viewmodel/Issues.kt

changeset 307
23fe9f174d2d
parent 292
703591e739f4
child 311
bf67e0ff7131
equal deleted inserted replaced
306:1ab9f65e683e 307:23fe9f174d2d
206 val includeDone: Boolean = evalFlag(http, flagIncludeDone) 206 val includeDone: Boolean = evalFlag(http, flagIncludeDone)
207 val onlyMine: Boolean = evalFlag(http, flagMine) 207 val onlyMine: Boolean = evalFlag(http, flagMine)
208 val onlyBlocker: Boolean = evalFlag(http, flagBlocker) 208 val onlyBlocker: Boolean = evalFlag(http, flagBlocker)
209 val status: List<IssueStatus> = evalEnum(http, "s") 209 val status: List<IssueStatus> = evalEnum(http, "s")
210 val category: List<IssueCategory> = evalEnum(http, "c") 210 val category: List<IssueCategory> = evalEnum(http, "c")
211 val assignee: List<Int> = evalInts(http, "u")
211 212
212 val sortPrimary: IssueSorter.Criteria = evalSort(http, "primary", IssueSorter.Criteria(IssueSorter.Field.DONE)) 213 val sortPrimary: IssueSorter.Criteria = evalSort(http, "primary", IssueSorter.Criteria(IssueSorter.Field.DONE))
213 val sortSecondary: IssueSorter.Criteria = evalSort(http, "secondary", IssueSorter.Criteria(IssueSorter.Field.ETA)) 214 val sortSecondary: IssueSorter.Criteria = evalSort(http, "secondary", IssueSorter.Criteria(IssueSorter.Field.ETA))
214 val sortTertiary: IssueSorter.Criteria = evalSort(http, "tertiary", IssueSorter.Criteria(IssueSorter.Field.UPDATED, false)) 215 val sortTertiary: IssueSorter.Criteria = evalSort(http, "tertiary", IssueSorter.Criteria(IssueSorter.Field.UPDATED, false))
216
217 fun containsAssignee(user: User?): Boolean = assignee.contains(user?.id?:-1)
215 218
216 private fun evalSort(http: HttpRequest, prio: String, defaultValue: IssueSorter.Criteria): IssueSorter.Criteria { 219 private fun evalSort(http: HttpRequest, prio: String, defaultValue: IssueSorter.Criteria): IssueSorter.Criteria {
217 val param = http.param("sort_$prio") 220 val param = http.param("sort_$prio")
218 if (param != null) { 221 if (param != null) {
219 http.session.removeAttribute("sort_$prio") 222 http.session.removeAttribute("sort_$prio")
266 ?.toString() 269 ?.toString()
267 ?.split(",") 270 ?.split(",")
268 ?.map { enumValueOf(it) } 271 ?.map { enumValueOf(it) }
269 ?: emptyList() 272 ?: emptyList()
270 } 273 }
271 } 274
275 private fun evalInts(http: HttpRequest, prefix: String): List<Int> {
276 val sattr = "f.${prefix}"
277 val param = http.paramArray("filter")
278 if (param.isNotEmpty()) {
279 val list = param.filter { it.startsWith("${prefix}.") }
280 .map { it.substring(prefix.length + 1) }
281 .mapNotNull(String::toIntOrNull)
282 if (list.isEmpty()) {
283 http.session.removeAttribute(sattr)
284 } else {
285 http.session.setAttribute(sattr, list.joinToString(","))
286 }
287 }
288
289 return http.session.getAttribute(sattr)
290 ?.toString()
291 ?.split(",")
292 ?.map(String::toInt)
293 ?: emptyList()
294 }
295 }

mercurial