From c4f52f12cdb224c070cf5fe8a12b9894ecb8ae65 Mon Sep 17 00:00:00 2001 From: ddm Date: Tue, 10 Sep 2013 12:18:22 +0200 Subject: [PATCH] [FIX] Proper editing undo bzr revid: ddm@openerp.com-20130910101822-4pb6q6zq9dbho5h1 --- addons/website/static/src/js/website.ace.js | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/addons/website/static/src/js/website.ace.js b/addons/website/static/src/js/website.ace.js index 145a9dd256a..0a2de37b796 100644 --- a/addons/website/static/src/js/website.ace.js +++ b/addons/website/static/src/js/website.ace.js @@ -55,32 +55,27 @@ }); var editor = ace.edit(self.$('#ace-view-editor')[0]); editor.setTheme("ace/theme/monokai"); - editor.getSession().setMode("ace/mode/xml"); self.aceEditor = editor; }); }, displayView: function () { - var self = this; - var viewId = self.$viewList.val(); + var editor = this.aceEditor; openerp.jsonRpc('/web/dataset/call', 'call', { model: 'ir.ui.view', method: 'read', - args: [[viewId], ['arch']] + args: [[this.$viewList.val()], ['arch']] }).then(function(result) { - var viewXML = result[0].arch; - self.aceEditor.setValue(viewXML); - self.aceEditor.clearSelection(); - self.aceEditor.navigateTo(0, 0); + var editingSession = new ace.EditSession(result[0].arch); + editingSession.setMode("ace/mode/xml"); + editingSession.setUndoManager(new ace.UndoManager()); + editor.setSession(editingSession); }); }, saveView: function () { - var self = this; - var viewId = self.$viewList.val(); - var viewXML = self.aceEditor.getValue(); openerp.jsonRpc('/web/dataset/call', 'call', { model: 'ir.ui.view', method: 'write', - args: [[viewId], { 'arch': viewXML }] + args: [[this.$viewList.val()], { 'arch': this.aceEditor.getValue() }] }).then(function(result) { window.location.reload(); });