From 3412e50b54e3daac8745234e21ab6e72be0ed165 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Wed, 04 Jun 2014 11:20:33 -0400
Subject: [PATCH] Fix attachment menu structure and aria-attributes

---
 program/js/tiny_mce/plugins/advlink/js/advlink.js |   21 ++++++++++++++++-----
 1 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/program/js/tiny_mce/plugins/advlink/js/advlink.js b/program/js/tiny_mce/plugins/advlink/js/advlink.js
index 837c937..f013aac 100644
--- a/program/js/tiny_mce/plugins/advlink/js/advlink.js
+++ b/program/js/tiny_mce/plugins/advlink/js/advlink.js
@@ -54,16 +54,24 @@
 		document.getElementById('popupurl').style.width = '180px';
 
 	elm = inst.dom.getParent(elm, "A");
+	if (elm == null) {
+		var prospect = inst.dom.create("p", null, inst.selection.getContent());
+		if (prospect.childNodes.length === 1) {
+			elm = prospect.firstChild;
+		}
+	}
+
 	if (elm != null && elm.nodeName == "A")
 		action = "update";
 
-	formObj.insert.value = tinyMCEPopup.getLang(action, 'Insert', true); 
+	formObj.insert.value = tinyMCEPopup.getLang(action, 'Insert', true);
 
 	setPopupControlsDisabled(true);
 
 	if (action == "update") {
 		var href = inst.dom.getAttrib(elm, 'href');
 		var onclick = inst.dom.getAttrib(elm, 'onclick');
+		var linkTarget = inst.dom.getAttrib(elm, 'target') ? inst.dom.getAttrib(elm, 'target') : "_self";
 
 		// Setup form data
 		setFormValue('href', href);
@@ -91,7 +99,7 @@
 		setFormValue('onkeypress', inst.dom.getAttrib(elm, 'onkeypress'));
 		setFormValue('onkeydown', inst.dom.getAttrib(elm, 'onkeydown'));
 		setFormValue('onkeyup', inst.dom.getAttrib(elm, 'onkeyup'));
-		setFormValue('target', inst.dom.getAttrib(elm, 'target'));
+		setFormValue('target', linkTarget);
 		setFormValue('classes', inst.dom.getAttrib(elm, 'class'));
 
 		// Parse onclick data
@@ -112,7 +120,7 @@
 		addClassesToList('classlist', 'advlink_styles');
 
 		selectByValue(formObj, 'classlist', inst.dom.getAttrib(elm, 'class'), true);
-		selectByValue(formObj, 'targetlist', inst.dom.getAttrib(elm, 'target'), true);
+		selectByValue(formObj, 'targetlist', linkTarget, true);
 	} else
 		addClassesToList('classlist', 'advlink_styles');
 }
@@ -370,6 +378,9 @@
 	for (i=0, len=nodes.length; i<len; i++) {
 		if ((name = ed.dom.getAttrib(nodes[i], "name")) != "")
 			html += '<option value="#' + name + '">' + name + '</option>';
+
+		if ((name = nodes[i].id) != "" && !nodes[i].href)
+			html += '<option value="#' + name + '">' + name + '</option>';
 	}
 
 	if (html == "")
@@ -481,7 +492,7 @@
 	var html = "";
 
 	html += '<select id="' + elm_id + '" name="' + elm_id + '"';
-	html += ' class="mceLinkList" onfoc2us="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';
+	html += ' class="mceLinkList" onchange="this.form.' + target_form_element + '.value=';
 	html += 'this.options[this.selectedIndex].value;';
 
 	if (typeof(onchange_func) != "undefined")
@@ -503,7 +514,7 @@
 	var targets = tinyMCEPopup.getParam('theme_advanced_link_targets', '').split(';');
 	var html = '';
 
-	html += '<select id="' + elm_id + '" name="' + elm_id + '" onf2ocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';
+	html += '<select id="' + elm_id + '" name="' + elm_id + '" onchange="this.form.' + target_form_element + '.value=';
 	html += 'this.options[this.selectedIndex].value;">';
 	html += '<option value="_self">' + tinyMCEPopup.getLang('advlink_dlg.target_same') + '</option>';
 	html += '<option value="_blank">' + tinyMCEPopup.getLang('advlink_dlg.target_blank') + ' (_blank)</option>';

--
Gitblit v1.9.1