web_PYTHON = \
src/web/__init__.py \
- src/web/api.py \
src/web/auth.py \
src/web/base.py \
src/web/builders.py \
return files
- def autocomplete(self, query, limit=8):
- res = self.db.query("SELECT DISTINCT name FROM packages \
- WHERE packages.name LIKE %s AND packages.type = %s \
- ORDER BY packages.name LIMIT %s", "%%%s%%" % query, "source", limit)
-
- return [row.name for row in res]
-
class Package(base.DataObject):
table = "packages"
// Activate tooltips.
$("a[rel=tooltip]").tooltip();
$("span[rel=tooltip]").tooltip();
-
- $(".typeahead-packages-autocomplete").typeahead({
- source: function(query, process) {
- $.get("/api/packages/autocomplete", { q: query }, function(data) {
- if (data.query == query) {
- process(data.packages);
- }
- });
- },
- });
});
function getCookie(name) {
from ..constants import *
# Import all handlers
-from . import api
from . import auth
from . import builders
from . import builds
# Log
(r"/log", LogHandler),
-
- # API handlers
- (r"/api/packages/autocomplete", api.ApiPackagesAutocomplete),
], default_handler_class=errors.Error404Handler, **settings)
# Launch backend
+++ /dev/null
-#!/usr/bin/python
-
-import tornado.web
-
-from . import base
-
-class ApiPackagesAutocomplete(base.BaseHandler):
- def get(self):
- query = self.get_argument("q")
- if not query:
- raise tornado.web.HTTPError(400)
-
- # Query database.
- packages = self.backend.packages.autocomplete(query, limit=8)
-
- res = {
- "query" : query,
- "packages" : packages,
- }
-
- self.write(res)