From 9a7a635f040338bafde6c5659ab280d9c0eaed3d Mon Sep 17 00:00:00 2001 From: Hadi Nategh Date: Tue, 2 Sep 2014 09:31:38 +0000 Subject: [PATCH] Add new attribute to url-email widget in order to be able to add contact+ button to each email address. --- etemplate/js/et2_widget_url.js | 54 ++++++++++++++++++++++ etemplate/templates/default/etemplate2.css | 6 +++ 2 files changed, 60 insertions(+) diff --git a/etemplate/js/et2_widget_url.js b/etemplate/js/et2_widget_url.js index ae9b98f139..f0b35f011a 100644 --- a/etemplate/js/et2_widget_url.js +++ b/etemplate/js/et2_widget_url.js @@ -238,6 +238,15 @@ et2_register_widget(et2_url, ["url", "url-email", "url-phone"]); */ var et2_url_ro = et2_valueWidget.extend([et2_IDetachedDOM], { + attributes: { + "contact_plus": { + "name": "Add contact button", + "type": "boolean", + "default": false, + "description": "Allow to add email as contact to addressbook" + } + }, + /** * Constructor * @@ -330,6 +339,51 @@ var et2_url_ro = et2_valueWidget.extend([et2_IDetachedDOM], { _nodes[0].setAttribute("class", _values["class"]); } + // Add contact_plus button + if (this.options.contact_plus && this._type == "url-email" ) + { + // If user doesn't have access to addressbook, stop + if(!egw.app('addressbook')) return; + + // Bind onmouseenter event on tag in order to add contact plus + this.span.on ({ + mouseenter: function (event) + { + event.stopImmediatePropagation(); + var self = this; + jQuery(this).tooltip({ + items: 'a.et2_email', + position: {my:"right top", at:"left top", collision:"flipfit"}, + tooltipClass: "et2_email_popup", + content: function() + { + // Here we could do all sorts of things + var extra = { + 'presets[email]': jQuery(this).text() + }; + + return jQuery('') + .on('click', function() { + egw.open('','addressbook','add',extra); + }); + }, + close: function( event, ui ) + { + ui.tooltip.hover( + function () { + jQuery(this).stop(true).fadeTo(400, 1); + //.fadeIn("slow"); // doesn't work because of stop() + }, + function () { + jQuery(this).fadeOut("400", function(){ jQuery(this).remove();}); + } + ); + } + }) + .tooltip("open"); + }, + }); + } } }); et2_register_widget(et2_url_ro, ["url_ro", "url-email_ro", "url-phone_ro"]); \ No newline at end of file diff --git a/etemplate/templates/default/etemplate2.css b/etemplate/templates/default/etemplate2.css index f6e51f83d9..d306619065 100644 --- a/etemplate/templates/default/etemplate2.css +++ b/etemplate/templates/default/etemplate2.css @@ -162,6 +162,12 @@ a.et2_url.phone { a.et2_url.url { background-image: url(images/url.png); } +.et2_email_popup { + border:0 !important; + padding: 0 !important; + box-shadow: none !important; + background: transparent !important; +} /** * Button widget - text only, and icon */