From d8984be74721499e37561b4191dd02be45a0c9a9 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Fri, 23 Aug 2013 15:15:30 +0000 Subject: [PATCH] isDirty() method for whole template / etemplate2 object, thought it needs more work in widgets, not setting this._oldValue in their set_value() method --- etemplate/js/et2_widget_htmlarea.js | 2 ++ etemplate/js/etemplate2.js | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/etemplate/js/et2_widget_htmlarea.js b/etemplate/js/et2_widget_htmlarea.js index 4fc6b909ef..df067037f0 100644 --- a/etemplate/js/et2_widget_htmlarea.js +++ b/etemplate/js/et2_widget_htmlarea.js @@ -145,6 +145,8 @@ var et2_htmlarea = et2_inputWidget.extend( } }, set_value: function(_value) { + this._oldValue = _value; + try { //this.htmlNode.ckeditorGet().setData(_value); var ckeditor = CKEDITOR.instances[this.dom_id]; diff --git a/etemplate/js/etemplate2.js b/etemplate/js/etemplate2.js index 48230de26e..5e1f93f19f 100644 --- a/etemplate/js/etemplate2.js +++ b/etemplate/js/etemplate2.js @@ -301,6 +301,24 @@ etemplate2.prototype.load = function(_name, _url, _data, _callback) }; +/** + * Check if template contains any dirty (unsaved) content + * + * @returns {Boolean} + */ +etemplate2.prototype.isDirty = function() +{ + var dirty = false; + this.widgetContainer.iterateOver(function(_widget) { + if (_widget.isDirty && _widget.isDirty()) + { + dirty = true; + } + }); + + return dirty; +}; + etemplate2.prototype.submit = function(button) { // Get the form values