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 } |