search.shtml revision 1431
1N/A## You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1N/A## file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1N/A import pkg.actions as actions
1N/A import pkg.query_parser as qp
1N/A import pkg.server.api_errors as api_errors
1N/A import pkg.version as version
1N/A<%inherit file="layout.shtml"/>\
1N/A "token": request.params.get("token", ""),
1N/A "query_error": request.params.get("qe", ""),
1N/A show = request.params.get("show", "p")
1N/A criteria["return_type"] = qp.Query.RETURN_PACKAGES
1N/A criteria["return_type"] = qp.Query.RETURN_ACTIONS
1N/A val = request.params.get(name, default)
1N/A mver = criteria.get("selected_ver", None)
1N/A results = catalog.search(token,
1N/A except qp.QueryException, e:
1N/A result = results.next()
1N/A if result and result[1] == qp.Query.RETURN_PACKAGES:
1N/A results = itertools.chain([result], results)
1N/A elif result and result[1] == qp.Query.RETURN_ACTIONS:
1N/A results = itertools.chain([result], results)
1N/A return_type = qp.Query.RETURN_PACKAGES
1N/A request.log("Unsupported return_type '%s' "
1N/A search_uri = "advanced_search.shtml"
1N/A<form class="search" action="search.shtml">
1N/A scheme, netloc, path, params, query, fragment = urlparse.urlparse(uri)
1N/A for name, val in request.params.iteritems():
1N/A nparams.append((name, val))
1N/A nparams.append(("start", start))
1N/A qs = urllib.urlencode(nparams)
1N/A uri = urlparse.urlunparse((scheme, netloc, path, params, qs, fragment))
1N/A scheme, netloc, path, params, query, fragment = urlparse.urlparse(uri)
1N/A for name, val in request.params.iteritems():
1N/A nparams.append((name, val))
1N/A nparams.append(("start", (start + result_count - 1)))
1N/A qs = urllib.urlencode(nparams)
1N/A uri = urlparse.urlunparse((scheme, netloc, path, params, qs, fragment))
1N/A <a href="${self.get_prev_page_uri(criteria, request) | h}">
1N/A <a href="${self.get_next_page_uri(criteria, request,
1N/A% if not catalog.search_available:
1N/A criteria = self.get_search_criteria(request)
1N/A return_type, results, query_error = self.search(
1N/A fragment = urlparse.urlparse(uri)
1N/A for name, val in request.params.iteritems():
1N/A nparams.append((name, val))
1N/A nparams.append(("failed", 1))
1N/A nparams.append(("qe", query_error))
1N/A qs = urllib.urlencode(nparams)
1N/A uri = urlparse.urlunparse((scheme, netloc, path, params,
raise api_errors.RedirectException(uri)
${self.display_search_form(criteria, request)}
<kbd>/usr/bin/vim</kbd></li>
<kbd>/usr/bin/[ca]t</kbd></li>
% if searched and return_type == qp.Query.RETURN_PACKAGES:
stem = pfmri.split("@", 1)[0]
phref = self.shared.rpath(g_vars, "info/0/%s" % (
urllib.quote(pfmri, "")))
urllib.quote(stem, "")))
mhref = self.shared.rpath(g_vars, "manifest/0/%s" % (
urllib.quote(pfmri, "")))
% elif searched and return_type == qp.Query.RETURN_ACTIONS:
action = a.name
if isinstance(a, actions.attribute.AttributeAction):
phref = self.shared.rpath(g_vars, "info/0/%s" % (
urllib.quote(pfmri, "")))