firepad + others WIP

This commit is contained in:
Matthew Scragg 2014-10-01 17:14:54 -05:00
parent ec551ac09d
commit d72ecf10f0
10 changed files with 778 additions and 651 deletions

View file

@ -1,7 +1,8 @@
from realms import assets
assets.register('editor.js',
'vendor/localforage/dist/localforage.js',
'vendor/store-js/store.js',
'vendor/bootbox/bootbox.js',
'vendor/ace-builds/src/ace.js',
'vendor/ace-builds/src/mode-markdown.js',
'vendor/ace-builds/src/ext-keybinding_menu.js',

View file

@ -139,11 +139,11 @@ class Wiki():
return cached
# commit = gittle.utils.git.commit_info(self.repo[sha])
name = self.cname_to_filename(name).encode('latin-1')
filename = self.cname_to_filename(name).encode('latin-1')
sha = sha.encode('latin-1')
try:
data = self.gittle.get_commit_files(sha, paths=[name]).get(name)
data = self.gittle.get_commit_files(sha, paths=[filename]).get(filename)
if not data:
return None
partials = {}
@ -153,6 +153,7 @@ class Wiki():
for partial_name in meta['import']:
partials[partial_name] = self.get_page(partial_name)
data['partials'] = partials
data['info'] = self.get_history(name, limit=1)[0]
return data
except KeyError:
@ -175,10 +176,10 @@ class Wiki():
new = self.get_page(name, sha=new_sha)
return ghdiff.diff(old['data'], new['data'])
def get_history(self, name):
def get_history(self, name, limit=100):
file_path = self.cname_to_filename(name)
versions = []
walker = self.repo.get_walker(paths=[file_path], max_entries=100)
walker = self.repo.get_walker(paths=[file_path], max_entries=limit)
for entry in walker:
change_type = None
for change in entry.changes():

View file

@ -74,7 +74,12 @@ def edit(name):
name = remove_ext(data['name'])
content = data.get('data')
g.assets['js'].append('editor.js')
return render_template('wiki/edit.html', name=name, content=content, sha=data.get('sha'), partials=data.get('partials'))
return render_template('wiki/edit.html',
name=name,
content=content,
info=data.get('info'),
sha=data.get('sha'),
partials=data.get('partials'))
else:
return redirect(url_for('wiki.create', name=cname))
@ -110,7 +115,10 @@ def create(name):
return redirect(url_for('wiki.edit', name=cname))
g.assets['js'].append('editor.js')
return render_template('wiki/edit.html', name=cname, content="")
return render_template('wiki/edit.html',
name=cname,
content="",
info={})
@blueprint.route("/", defaults={'name': 'home'})