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