improved auth.wiki @{/a/c/f/args}
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 2.00.0 (2012-08-18 16:21:48) dev
|
Version 2.00.0 (2012-08-18 17:50:47) dev
|
||||||
|
|||||||
@@ -510,7 +510,7 @@ META = '\x06'
|
|||||||
LINK = '\x07'
|
LINK = '\x07'
|
||||||
DISABLED_META = '\x08'
|
DISABLED_META = '\x08'
|
||||||
LATEX = '<img src="http://chart.apis.google.com/chart?cht=tx&chl=%s" />'
|
LATEX = '<img src="http://chart.apis.google.com/chart?cht=tx&chl=%s" />'
|
||||||
regex_URL=re.compile(r'@\{(?P<f>\w+)/(?P<args>.*?)\}')
|
regex_URL=re.compile(r'@\{/(?P<a>\w*)/(?P<c>\w*)/(?P<f>\w*(\.\w+)?)(/(?P<args>[\w\.\-/]+))?\}')
|
||||||
regex_env=re.compile(r'@\{(?P<a>[\w\-\.]+?)(\:(?P<b>.*?))?\}')
|
regex_env=re.compile(r'@\{(?P<a>[\w\-\.]+?)(\:(?P<b>.*?))?\}')
|
||||||
regex_expand_meta = re.compile('('+META+'|'+DISABLED_META+')')
|
regex_expand_meta = re.compile('('+META+'|'+DISABLED_META+')')
|
||||||
regex_dd=re.compile(r'\$\$(?P<latex>.*?)\$\$')
|
regex_dd=re.compile(r'\$\$(?P<latex>.*?)\$\$')
|
||||||
@@ -801,8 +801,9 @@ def render(text,
|
|||||||
# this is experimental @{function/args}
|
# this is experimental @{function/args}
|
||||||
# turns into a digitally signed URL
|
# turns into a digitally signed URL
|
||||||
def u1(match,URL=URL):
|
def u1(match,URL=URL):
|
||||||
f,args = match.group('f','args')
|
a,c,f,args = match.group('a','c','f','args')
|
||||||
return URL(f,args=args.split('/'), scheme=True, host=True)
|
return URL(a=a or None,c=c or None,f = f or None,
|
||||||
|
args=args.split('/'), scheme=True, host=True)
|
||||||
text = regex_URL.sub(u1,text)
|
text = regex_URL.sub(u1,text)
|
||||||
|
|
||||||
if latex == 'google':
|
if latex == 'google':
|
||||||
|
|||||||
@@ -1358,6 +1358,8 @@ class A(DIV):
|
|||||||
tag = 'a'
|
tag = 'a'
|
||||||
|
|
||||||
def xml(self):
|
def xml(self):
|
||||||
|
if not self.components and self['_href']:
|
||||||
|
self.append(self['_href'])
|
||||||
if self['delete']:
|
if self['delete']:
|
||||||
d = "jQuery(this).closest('%s').remove();" % self['delete']
|
d = "jQuery(this).closest('%s').remove();" % self['delete']
|
||||||
else:
|
else:
|
||||||
|
|||||||
+8
-3
@@ -4552,8 +4552,8 @@ class Wiki(object):
|
|||||||
current.response.menu = self.menu(request.controller,
|
current.response.menu = self.menu(request.controller,
|
||||||
request.function)
|
request.function)
|
||||||
zero = request.args(0)
|
zero = request.args(0)
|
||||||
if zero=='_media':
|
if zero and zero.isdigit():
|
||||||
return self.media(request.args(1,cast=int))
|
return self.media(int(zero))
|
||||||
elif not zero or not zero.startswith('_'):
|
elif not zero or not zero.startswith('_'):
|
||||||
return self.read(zero or 'index')
|
return self.read(zero or 'index')
|
||||||
elif zero=='_edit':
|
elif zero=='_edit':
|
||||||
@@ -4652,6 +4652,10 @@ class Wiki(object):
|
|||||||
db = auth.db
|
db = auth.db
|
||||||
page = db.wiki_page(slug=slug)
|
page = db.wiki_page(slug=slug)
|
||||||
if not (page and self.can_edit(page)): return self.not_authorized(page)
|
if not (page and self.can_edit(page)): return self.not_authorized(page)
|
||||||
|
self.auth.db.wiki_media.id.represent = lambda id,row:\
|
||||||
|
SPAN('@{////%i/%s.%s}' % \
|
||||||
|
(id,IS_SLUG.urlify(row.title.split('.')[0]),
|
||||||
|
row.file.split('.')[-1]))
|
||||||
self.auth.db.wiki_media.wiki_page.default = page.id
|
self.auth.db.wiki_media.wiki_page.default = page.id
|
||||||
self.auth.db.wiki_media.wiki_page.writable = False
|
self.auth.db.wiki_media.wiki_page.writable = False
|
||||||
content = SQLFORM.grid(
|
content = SQLFORM.grid(
|
||||||
@@ -4672,6 +4676,7 @@ class Wiki(object):
|
|||||||
return dict(content=form)
|
return dict(content=form)
|
||||||
def pages(self):
|
def pages(self):
|
||||||
if not self.can_manage(): return self.not_authorized()
|
if not self.can_manage(): return self.not_authorized()
|
||||||
|
self.auth.db.wiki_page.id.represent = lambda id,row:SPAN('@{////%s}' % row.slug)
|
||||||
self.auth.db.wiki_page.title.represent = lambda title,row: \
|
self.auth.db.wiki_page.title.represent = lambda title,row: \
|
||||||
A(title,_href=URL(args=row.slug))
|
A(title,_href=URL(args=row.slug))
|
||||||
content=SQLFORM.grid(
|
content=SQLFORM.grid(
|
||||||
@@ -4691,7 +4696,7 @@ class Wiki(object):
|
|||||||
media = db.wiki_media(id)
|
media = db.wiki_media(id)
|
||||||
if media:
|
if media:
|
||||||
if self.manage_permissions:
|
if self.manage_permissions:
|
||||||
page = db.wiki_page(media.page)
|
page = db.wiki_page(media.wiki_page)
|
||||||
if not self.can_read(page): return self.not_authorized(page)
|
if not self.can_read(page): return self.not_authorized(page)
|
||||||
request.args = [media.file]
|
request.args = [media.file]
|
||||||
return current.response.download(request,db)
|
return current.response.download(request,db)
|
||||||
|
|||||||
Reference in New Issue
Block a user