From 8494d84b0b2f8b87ebe6bd388dfb98a2780b12f3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C5=81ukasz=20Rekucki?= Date: Wed, 26 Aug 2009 15:56:30 +0200 Subject: [PATCH] refs #62. --- apps/explorer/views.py | 36 +++++++++++++------ project/templates/explorer/edit_dc.html | 4 +++ project/templates/explorer/edit_text.html | 4 +++ .../templates/explorer/panels/dceditor.html | 24 +++++++++++-- .../templates/explorer/panels/xmleditor.html | 2 +- 5 files changed, 56 insertions(+), 14 deletions(-) create mode 100644 project/templates/explorer/edit_dc.html create mode 100644 project/templates/explorer/edit_text.html diff --git a/apps/explorer/views.py b/apps/explorer/views.py index 197e6f51..61d9a235 100644 --- a/apps/explorer/views.py +++ b/apps/explorer/views.py @@ -31,7 +31,12 @@ def file_xml(request, path): repo.commit(message='Local save at %s' % time.ctime(), user=request.user.username) repo.in_branch('local_'+request.user.username, save_action); - return HttpResponse( json.dumps({'result': 'ok', 'errors': []}) ); + result = "ok" + else: + result = "error" + + errors = dict( (field[0], field[1].as_text()) for field in form.errors.iteritems() ) + return HttpResponse( json.dumps({'result': result, 'errors': errors}) ); else: form = forms.BookForm() form.fields['content'].initial = repo.get_file(path).data() @@ -41,7 +46,24 @@ def file_xml(request, path): }) def file_dc(request, path): - return HttpResponse("N/A") + if request.method == 'POST': + form = forms.DublinCoreForm(request.POST) + if form.is_valid(): + form.save(repo, path) + result = "ok" + else: + result = "error" + + errors = dict( (field[0], field[1].as_text()) for field in form.errors.iteritems() ) + return HttpResponse( json.dumps({'result': result, 'errors': errors}) ); + else: + fulltext = repo.get_file(path).data() + form = forms.DublinCoreForm(text=fulltext) + + return direct_to_template(request, 'explorer/edit_dc.html', extra_context={ + 'form': form, + 'fpath': path, + }) # Display the main editor view def display_editor(request, path): @@ -78,14 +100,8 @@ def htmleditor_panel(request, path): def dceditor_panel(request, path): - if request.method == 'POST': - form = forms.DublinCoreForm(request.POST) - if form.is_valid(): - form.save(repo, path) - repo.commit(message='%s: DublinCore edited' % path) - else: - text = repo.get_file(path).data() - form = forms.DublinCoreForm(text=text) + text = repo.get_file(path).data() + form = forms.DublinCoreForm(text=text) return direct_to_template(request, 'explorer/panels/dceditor.html', extra_context={ 'fpath': path, diff --git a/project/templates/explorer/edit_dc.html b/project/templates/explorer/edit_dc.html new file mode 100644 index 00000000..1ad0c22d --- /dev/null +++ b/project/templates/explorer/edit_dc.html @@ -0,0 +1,4 @@ +
+{{ form.as_p }} + +
diff --git a/project/templates/explorer/edit_text.html b/project/templates/explorer/edit_text.html new file mode 100644 index 00000000..1ad0c22d --- /dev/null +++ b/project/templates/explorer/edit_text.html @@ -0,0 +1,4 @@ +
+{{ form.as_p }} + +
diff --git a/project/templates/explorer/panels/dceditor.html b/project/templates/explorer/panels/dceditor.html index 96c2c47e..2ca14d40 100644 --- a/project/templates/explorer/panels/dceditor.html +++ b/project/templates/explorer/panels/dceditor.html @@ -1,9 +1,27 @@
- {{ form }} -

+ {{ form.as_p }} +
diff --git a/project/templates/explorer/panels/xmleditor.html b/project/templates/explorer/panels/xmleditor.html index fe1870ed..2803b6a1 100644 --- a/project/templates/explorer/panels/xmleditor.html +++ b/project/templates/explorer/panels/xmleditor.html @@ -45,7 +45,7 @@ panel_hooks = { var pos = texteditor.cursorPosition(); texteditor.selectLines(pos.line, pos.character + tag.length + 2); } - $(document).trigger('panel:contentChanged', panel); + $(document).trigger('panel:contentChanged', self); } if ($(this).attr('p:key')) { keys[$(this).attr('p:key')] = handler; -- 2.20.1