diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/umbracolink/plugin.min.js b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/umbracolink/plugin.min.js
index 9d80e310de..d1757de319 100644
--- a/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/umbracolink/plugin.min.js
+++ b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/umbracolink/plugin.min.js
@@ -192,28 +192,33 @@ tinymce.PluginManager.add('umbracolink', function(editor) {
if (data) {
var href = data.url;
// We want to use the Udi. If it is set, we use it, else fallback to id, and finally to null
- var id = data.udi ? data.udi : (data.id ? data.id : null);
+ var hasUdi = data.udi ? true : false;
+ var id = hasUdi ? data.udi : (data.id ? data.id : null);
+
+ //Create a json obj used to create the attributes for the tag
+ function createElemAttributes() {
+ var a = {
+ href: href,
+ title: data.name,
+ target: data.target ? data.target : null,
+ rel: data.rel ? data.rel : null
+ };
+ if (hasUdi) {
+ a["data-udi"] = data.udi;
+ }
+ else if (data.id) {
+ a["data-id"] = data.id;
+ }
+ }
function insertLink() {
if (anchorElm) {
- dom.setAttribs(anchorElm, {
- href: href,
- title: data.name,
- target: data.target ? data.target : null,
- rel: data.rel ? data.rel : null,
- 'data-id': id
- });
+ dom.setAttribs(anchorElm, createElemAttributes());
selection.select(anchorElm);
editor.execCommand('mceEndTyping');
} else {
- editor.execCommand('mceInsertLink', false, {
- href: href,
- title: data.name,
- target: data.target ? data.target : null,
- rel: data.rel ? data.rel : null,
- 'data-id': id
- });
+ editor.execCommand('mceInsertLink', false, createElemAttributes());
}
}
diff --git a/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js b/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js
index d08b21b89c..8753bb5316 100644
--- a/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js
+++ b/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js
@@ -95,11 +95,20 @@ function tinyMceService(dialogService, $log, imageHelper, $http, $timeout, macro
if(selectedElm.nodeName === 'IMG'){
var img = $(selectedElm);
+
+ var hasUdi = img.attr("data-udi") ? true : false;
+
currentTarget = {
altText: img.attr("alt"),
- url: img.attr("src"),
- id: img.attr("rel")
+ url: img.attr("src")
};
+
+ if (hasUdi) {
+ currentTarget["udi"] = img.attr("data-udi");
+ }
+ else {
+ currentTarget["id"] = img.attr("rel");
+ }
}
userService.getCurrentUser().then(function(userData) {
@@ -115,13 +124,23 @@ function tinyMceService(dialogService, $log, imageHelper, $http, $timeout, macro
insertMediaInEditor: function(editor, img) {
if(img) {
+ var hasUdi = img.udi ? true : false;
+
var data = {
alt: img.altText || "",
- src: (img.url) ? img.url : "nothing.jpg",
- rel: img.id,
- 'data-id': img.id,
+ src: (img.url) ? img.url : "nothing.jpg",
id: '__mcenew'
- };
+ };
+
+ if (hasUdi) {
+ data["data-udi"] = img.udi;
+ }
+ else {
+ //Considering these fixed because UDI will now be used and thus
+ // we have no need for rel http://issues.umbraco.org/issue/U4-6228, http://issues.umbraco.org/issue/U4-6595
+ data["rel"] = img.id;
+ data["data-id"] = img.id;
+ }
editor.insertContent(editor.dom.createHTML('img', data));
@@ -726,28 +745,35 @@ function tinyMceService(dialogService, $log, imageHelper, $http, $timeout, macro
var href = target.url;
// We want to use the Udi. If it is set, we use it, else fallback to id, and finally to null
- var id = target.udi ? target.udi : (target.id ? target.id : null);
+ var hasUdi = target.udi ? true : false;
+ var id = hasUdi ? target.udi : (target.id ? target.id : null);
+
+ //Create a json obj used to create the attributes for the tag
+ function createElemAttributes() {
+ var a = {
+ href: href,
+ title: target.name,
+ target: target.target ? target.target : null,
+ rel: target.rel ? target.rel : null
+ };
+ if (hasUdi) {
+ a["data-udi"] = target.udi;
+ }
+ else if (target.id) {
+ a["data-id"] = target.id;
+ }
+ return a;
+ }
function insertLink() {
if (anchorElm) {
- editor.dom.setAttribs(anchorElm, {
- href: href,
- title: target.name,
- target: target.target ? target.target : null,
- rel: target.rel ? target.rel : null,
- 'data-id': id
- });
+ editor.dom.setAttribs(anchorElm, createElemAttributes());
editor.selection.select(anchorElm);
editor.execCommand('mceEndTyping');
- } else {
- editor.execCommand('mceInsertLink', false, {
- href: href,
- title: target.name,
- target: target.target ? target.target : null,
- rel: target.rel ? target.rel : null,
- 'data-id': id
- });
+ }
+ else {
+ editor.execCommand('mceInsertLink', false, createElemAttributes());
}
}
diff --git a/src/Umbraco.Web.UI/config/tinyMceConfig.Release.config b/src/Umbraco.Web.UI/config/tinyMceConfig.Release.config
index a18841983d..c4ed5f5d99 100644
--- a/src/Umbraco.Web.UI/config/tinyMceConfig.Release.config
+++ b/src/Umbraco.Web.UI/config/tinyMceConfig.Release.config
@@ -241,7 +241,7 @@
hr
- hr
-