summaryrefslogtreecommitdiff
path: root/addons/website/static/src/js
diff options
context:
space:
mode:
authorddm <ddm@openerp.com>2013-09-10 12:18:22 +0200
committerddm <ddm@openerp.com>2013-09-10 12:18:22 +0200
commitc4f52f12cdb224c070cf5fe8a12b9894ecb8ae65 (patch)
tree59690c182201edab2feab97f7ebb8a7f67c81f67 /addons/website/static/src/js
parenta109098cb782aa8d44d4091035e6707b4161a70d (diff)
[FIX] Proper editing undo
bzr revid: ddm@openerp.com-20130910101822-4pb6q6zq9dbho5h1
Diffstat (limited to 'addons/website/static/src/js')
-rw-r--r--addons/website/static/src/js/website.ace.js19
1 files 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();
});