From 276a2516cffb158c69adb5d6e40c74830724a63c Mon Sep 17 00:00:00 2001 From: Nathan Gray Date: Tue, 24 Jul 2012 19:59:55 +0000 Subject: [PATCH] Implement et2_IDetachedDOM for url widget --- etemplate/js/et2_widget_url.js | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/etemplate/js/et2_widget_url.js b/etemplate/js/et2_widget_url.js index ce208747b6..9822718d55 100644 --- a/etemplate/js/et2_widget_url.js +++ b/etemplate/js/et2_widget_url.js @@ -198,7 +198,7 @@ et2_register_widget(et2_url, ["url", "url-email", "url-phone"]); * et2_url_ro is the readonly implementation of the url, email & phone. * It renders things as links, when possible */ -var et2_url_ro = et2_valueWidget.extend({ +var et2_url_ro = et2_valueWidget.extend([et2_IDetachedDOM],{ init: function() { this._super.apply(this, arguments); @@ -254,8 +254,35 @@ var et2_url_ro = et2_valueWidget.extend({ } break; } - } + }, + /** + * Code for implementing et2_IDetachedDOM + */ + + getDetachedAttributes: function(_attrs) + { + _attrs.push("value", "class"); + }, + + getDetachedNodes: function() + { + return [this.span[0]]; + }, + + setDetachedAttributes: function(_nodes, _values) + { + // Update the properties + this.span = jQuery(_nodes[0]); + if (typeof _values["value"] != "undefined") + { + this.set_value(_values["value"]); + } + if (typeof _values["class"] != "undefined") + { + _nodes[0].setAttribute("class", _values["class"]); + } + } }); et2_register_widget(et2_url_ro, ["url_ro", "url-email_ro", "url-phone_ro"]);