bsw/jbe@19: local search_for = param.get("search_for", atom.string) or "global" bsw/jbe@0: local search_string = param.get("search", atom.string) bsw/jbe@0: bsw@480: if search_string then bsw@480: slot.put_into("title", encode.html(_("Search results for: '#{search}'", { search = search_string }))) bsw@480: else bsw@480: slot.put_into("title", encode.html(_"Search")) bsw/jbe@0: end bsw/jbe@0: bsw@480: ui.form{ bsw@480: method = "get", module = "index", view = "search", bsw@480: routing = { default = { mode = "redirect", bsw@480: module = "index", view = "search", search_for = search_for, search = search_string bsw@480: } }, bsw@480: attr = { class = "vertical" }, bsw@480: content = function() bsw@725: bsw@816: if app.session:has_access("everything") then bsw@725: ui.field.select{ bsw@725: label = _"Search context", bsw@725: name = "search_for", bsw@725: value = search_for, bsw@725: foreign_records = { bsw@725: { id = "global", name = _"Global search" }, bsw@725: { id = "member", name = _"Search for members" }, bsw@725: { id = "issue", name = _"Search for issues" } bsw@725: }, bsw@725: foreign_id = "id", bsw@725: foreign_name = "name", bsw@725: } bsw@725: end bsw@480: ui.field.text{ label = _"Search term (only complete words)", name = "search", value = search_string } bsw@480: ui.submit{ value = _"Start search" } bsw@480: end bsw@480: } bsw@480: bsw@480: slot.put("
") bsw@480: bsw@480: if search_string then bsw/jbe@19: bsw@816: if app.session:has_access("everything") then bsw@725: if search_for == "global" or search_for == "member" then bsw@725: local members_selector = Member:get_search_selector(search_string) bsw@725: execute.view{ bsw@725: module = "member", bsw@725: view = "_list", bsw@725: params = { members_selector = members_selector }, bsw@725: } bsw@725: end bsw@480: end bsw@725: bsw@606: if search_for == "global" or search_for == "issue" then bsw@480: local issues_selector = Issue:get_search_selector(search_string) bsw@480: execute.view{ bsw@480: module = "issue", bsw@480: view = "_list", bsw@480: params = { bsw@480: issues_selector = issues_selector, bsw@480: highlight_string = search_string, bsw@480: no_filter = true bsw@480: }, bsw@480: } bsw@480: end bsw@480: bsw/jbe@0: end