# HG changeset patch # User Ludovic Chabant # Date 1411974645 25200 # Node ID 794dfdb722e7ea31a9914c8d300b37e4e8cf708b # Parent 8bf279b1e8f8d32f638cbe7344931f2757ed1364 Use more proper URLs for non-default endpoints. Make the `templates:` endpoint not a search/query endpoint. diff -r 8bf279b1e8f8 -r 794dfdb722e7 wikked/assets/js/wikked/handlebars.js --- a/wikked/assets/js/wikked/handlebars.js Mon Sep 29 00:09:22 2014 -0700 +++ b/wikked/assets/js/wikked/handlebars.js Mon Sep 29 00:10:45 2014 -0700 @@ -107,7 +107,7 @@ }); Handlebars.registerHelper('get_cat_url', function(url, options) { url = url.toString(); - return '/#/read/category:' + url.replace(/^\//, ''); + return '/#/read/' + url.replace(/^\//, ''); }); }); diff -r 8bf279b1e8f8 -r 794dfdb722e7 wikked/assets/tpl/read-page.html --- a/wikked/assets/tpl/read-page.html Mon Sep 29 00:09:22 2014 -0700 +++ b/wikked/assets/tpl/read-page.html Mon Sep 29 00:10:45 2014 -0700 @@ -2,8 +2,8 @@ {{#ifnot meta.notitle}}

{{meta.title}}

- {{#if meta_query}} -
{{meta_query}}
+ {{#if endpoint}} +
{{endpoint}}
{{/if}} {{#if redirected_from}}
Redirected from diff -r 8bf279b1e8f8 -r 794dfdb722e7 wikked/resources/defaults.cfg --- a/wikked/resources/defaults.cfg Mon Sep 29 00:09:22 2014 -0700 +++ b/wikked/resources/defaults.cfg Mon Sep 29 00:10:45 2014 -0700 @@ -11,6 +11,9 @@ [endpoint:special] query=False +[endpoint:templates] +query=False + [endpoint:user] query=False default=special:User diff -r 8bf279b1e8f8 -r 794dfdb722e7 wikked/views/__init__.py --- a/wikked/views/__init__.py Mon Sep 29 00:09:22 2014 -0700 +++ b/wikked/views/__init__.py Mon Sep 29 00:10:45 2014 -0700 @@ -15,18 +15,18 @@ def url_from_viewarg(url): - url = urllib.unquote(url) - endpoint, path = split_page_url(url) + endpoint, path = split_url_from_viewarg(url) if endpoint: - return u'%s:/%s' % (endpoint, path) - return u'/' + path + return u'%s:%s' % (endpoint, path) + return path def split_url_from_viewarg(url): url = urllib.unquote(url) endpoint, path = split_page_url(url) - value = string.rsplit(path, '/', 1)[-1] - return (endpoint, value, u'/' + path) + if endpoint: + return (endpoint, path) + return (None, u'/' + path) def make_page_title(url): @@ -100,7 +100,7 @@ result = [] for item in category: result.append({ - 'url': urllib.quote(item.encode('utf-8')), + 'url': u'category:/' + urllib.quote(item.encode('utf-8')), 'name': item }) return result diff -r 8bf279b1e8f8 -r 794dfdb722e7 wikked/views/edit.py --- a/wikked/views/edit.py Mon Sep 29 00:09:22 2014 -0700 +++ b/wikked/views/edit.py Mon Sep 29 00:10:45 2014 -0700 @@ -98,7 +98,7 @@ @app.route('/api/edit/', methods=['GET', 'POST']) def api_edit_page(url): - endpoint, value, path = split_url_from_viewarg(url) + endpoint, path = split_url_from_viewarg(url) if request.method == 'GET': url = path @@ -106,10 +106,10 @@ custom_data = None if endpoint is not None: url = u'%s:%s' % (endpoint, path) - default_title = u'%s: %s' % (endpoint, value) + default_title = u'%s: %s' % (endpoint, path) custom_data = { 'meta_query': endpoint, - 'meta_value': value + 'meta_value': path.lstrip('/') } return get_edit_page( @@ -121,7 +121,7 @@ default_message = u'Edited ' + url if endpoint is not None: url = u'%s:%s' % (endpoint, path) - default_message = u'Edited %s %s' % (endpoint, value) + default_message = u'Edited %s %s' % (endpoint, path.lstrip('/')) return do_edit_page(url, default_message) diff -r 8bf279b1e8f8 -r 794dfdb722e7 wikked/views/read.py --- a/wikked/views/read.py Mon Sep 29 00:09:22 2014 -0700 +++ b/wikked/views/read.py Mon Sep 29 00:10:45 2014 -0700 @@ -70,7 +70,7 @@ no_redirect = ('no_redirect' in request.args) - endpoint, value, path = split_url_from_viewarg(url) + endpoint, path = split_url_from_viewarg(url) if endpoint is None: # Normal page. visited_paths = [] @@ -121,11 +121,15 @@ if not endpoint_info.query: # Not a query-based endpoint (like categories). Let's just # return the text. - result = {'meta': get_page_meta(info_page), 'text': info_page.text} + result = { + 'endpoint': endpoint, + 'meta': get_page_meta(info_page), + 'text': info_page.text} result.update(additional_info) return jsonify(result) # Get the list of pages to show here. + value = path.lstrip('/') query = {endpoint: [value]} pages = g.wiki.getPages(meta_query=query, fields=['url', 'title', 'text', 'meta']) @@ -143,6 +147,7 @@ # under either a default text, or the text from the meta page. text = render_template('meta_page.html', **tpl_data) result = { + 'endpoint': endpoint, 'meta_query': endpoint, 'meta_value': value, 'query': query,