From: Łukasz Rekucki Date: Mon, 28 Sep 2009 16:43:49 +0000 (+0200) Subject: Merge branch 'view-refactor' of stigma:platforma into zuber-view-refactor X-Git-Url: https://git.mdrn.pl/redakcja.git/commitdiff_plain/9479037111e9b243268189874be167e6c445455f?hp=bb9b43739164088745a8e64bdde23ee0ca378d47 Merge branch 'view-refactor' of stigma:platforma into zuber-view-refactor --- diff --git a/apps/api/handlers/library_handlers.py b/apps/api/handlers/library_handlers.py index ae61389a..b30f2e78 100644 --- a/apps/api/handlers/library_handlers.py +++ b/apps/api/handlers/library_handlers.py @@ -276,20 +276,22 @@ class DocumentTextHandler(BaseHandler): f = lib._fileopen(resolve('xml'), 'w+') f.write(data) f.close() - + + ndoc = None ndoc = current.invoke_and_commit(\ xml_update_action, lambda d: (msg, current.owner) ) try: # return the new revision number - return { + return response.SuccessAllOk().django_response({ "document": ndoc.id, "subview": "xml", "previous_revision": current.revision, - "updated_revision": ndoc.revision - } + "updated_revision": ndoc.revision, + "url": reverse("doctext_view", args=[ndoc.id, ndoc.revision]) + }) except Exception, e: - lib._rollback() + if ndoc: lib._rollback() raise e except RevisionNotFound, e: return response.EntityNotFound().django_response(e) diff --git a/apps/api/tests/__init__.py b/apps/api/tests/__init__.py index f28b3b2f..751a085c 100644 --- a/apps/api/tests/__init__.py +++ b/apps/api/tests/__init__.py @@ -32,10 +32,11 @@ def temprepo(name): finally: if not clean and self.response: print "RESULT", func.__name__, ">>>" - print self.response + print self.response.content print "<<<" - - # shutil.rmtree(temp, True) + else: + shutil.rmtree(temp, True) + settings.REPOSITORY_PATH = '' return decorated @@ -141,24 +142,26 @@ class SimpleTest(TestCase): self.response = self.client.get(resp['text_url']) self.assertEqual(self.response.status_code, 200) self.assertEqual(self.response.content, "Ala ma kota\n") -# -# -# @temprepo('simple') -# def test_document_text_update(self): -# self.assertTrue(self.client.login(username='admin', password='admin')) -# TEXT = u"Ala ma kota i psa" -# -# self.response = self.client.put( \ -# reverse("doctext_view", args=['testfile']), {'contents': TEXT }) -# self.assertEqual(self.response.status_code, 200) -# -# self.response = self.client.get( \ -# reverse("doctext_view", args=['testfile']) ) -# self.assertEqual(self.response.status_code, 200) -# self.assertEqual(self.response.content, TEXT) + + + @temprepo('simple') + def test_document_text_update(self): + self.assertTrue(self.client.login(username='admin', password='admin')) + TEXT = u"Ala ma kota i psa" + + self.response = self.client.get( + reverse("document_view", args=['sample']) ) + + resp = self.assert_json_response() + + self.response = self.client.put(resp['text_url'], {'contents': TEXT }) + result = self.assert_json_response(must_have={u'document': u'sample'} ) + + #self.response = self.client.get(result['url']) + #self.assertEqual(self.response.content, TEXT) def assert_json_response(self, must_have={}, exclude=[], code=200): - self.assertEqual(self.response.status_code, code) + self.assertEqual(self.response.status_code, code) result = json.loads(self.response.content) for (k,v) in must_have.items(): diff --git a/project/static/js/views/button_toolbar.js b/project/static/js/views/button_toolbar.js index 11cc1487..3e0a1488 100644 --- a/project/static/js/views/button_toolbar.js +++ b/project/static/js/views/button_toolbar.js @@ -39,14 +39,14 @@ var ButtonToolbarView = View.extend({ $(self.element).trigger('resize'); }); - $('.buttontoolbarview-button', this.element).bind('click.buttontoolbarview', function() { + $('.buttontoolbarview-button', this.element).bind('click.buttontoolbarview', function(event) { var groupIndex = parseInt($(this).attr('ui:groupindex'), 10); var buttonIndex = parseInt($(this).attr('ui:buttonindex'), 10); var button = self.get('buttons')[groupIndex].buttons[buttonIndex]; var scriptletId = button.scriptlet_id; var params = eval('(' + button.params + ')'); // To nie powinno być potrzebne console.log('Executing', scriptletId, 'with params', params); - scriptletCenter[scriptletId](self.parent, params); + scriptletCenter.scriptlets[scriptletId](self.parent, params); }); $(this.element).trigger('resize'); diff --git a/project/templates/toolbar_api/scriptlets.js b/project/templates/toolbar_api/scriptlets.js index 801e5d3e..6f5258c9 100644 --- a/project/templates/toolbar_api/scriptlets.js +++ b/project/templates/toolbar_api/scriptlets.js @@ -8,8 +8,23 @@ function ScriptletCenter() { {% endfor %} _none: null - }; + }; } +ScriptletCenter.prototype.XMLEditorSelectedText = function(panel) { + return panel.contentView.editor.selection(); +} + +ScriptletCenter.prototype.XMLEditorReplaceSelectedText = function(panel, replacement) +{ + panel.contentView.editor.replaceSelection(replacement); + /* TODO: fire the change event */ +} + +ScriptletCenter.prototype.XMLEditorMoveCursorForward = function(panel, n) { + var pos = panel.contentView.editor.cursorPosition(); + panel.contentView.editor.selectLines(pos.line, pos.character + n); +} + scriptletCenter = new ScriptletCenter(); \ No newline at end of file