Skip to content
This repository was archived by the owner on Sep 6, 2021. It is now read-only.

Commit 630e0fe

Browse files
committed
Merge pull request #4718 from TomMalbran/tom/issue-3556
Fix issue #3556: Consolidate link handling code
2 parents 2de8d78 + 6d8d3b0 commit 630e0fe

29 files changed

+168
-101
lines changed

src/brackets.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@ define(function (require, exports, module) {
9696
NodeConnection = require("utils/NodeConnection"),
9797
ExtensionUtils = require("utils/ExtensionUtils"),
9898
DragAndDrop = require("utils/DragAndDrop"),
99-
ColorUtils = require("utils/ColorUtils");
99+
ColorUtils = require("utils/ColorUtils"),
100+
NativeApp = require("utils/NativeApp");
100101

101102
// Load modules that self-register and just need to get included in the main project
102103
require("command/DefaultMenus");
@@ -149,7 +150,7 @@ define(function (require, exports, module) {
149150
LiveDevServerManager : require("LiveDevelopment/LiveDevServerManager"),
150151
DOMAgent : require("LiveDevelopment/Agents/DOMAgent"),
151152
Inspector : require("LiveDevelopment/Inspector/Inspector"),
152-
NativeApp : require("utils/NativeApp"),
153+
NativeApp : NativeApp,
153154
ExtensionLoader : ExtensionLoader,
154155
ExtensionUtils : ExtensionUtils,
155156
UpdateNotification : require("utils/UpdateNotification"),
@@ -347,9 +348,13 @@ define(function (require, exports, module) {
347348
// navigate. Also, a capture handler is more reliable than bubble.
348349
window.document.body.addEventListener("click", function (e) {
349350
// Check parents too, in case link has inline formatting tags
350-
var node = e.target;
351+
var node = e.target, url;
351352
while (node) {
352353
if (node.tagName === "A") {
354+
url = node.getAttribute("href");
355+
if (url && !url.match(/^#/)) {
356+
NativeApp.openURLInDefaultBrowser(url);
357+
}
353358
e.preventDefault();
354359
break;
355360
}

src/extensibility/ExtensionManagerView.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,6 @@ define(function (require, exports, module) {
155155
ExtensionManager.markForRemoval($target.attr("data-extension-id"), true);
156156
} else if ($target.hasClass("undo-update")) {
157157
ExtensionManager.removeUpdate($target.attr("data-extension-id"));
158-
} else {
159-
// Open any other link in the external browser.
160-
NativeApp.openURLInDefaultBrowser($target.attr("href"));
161158
}
162159
})
163160
.on("click", "button.install", function (e) {

src/extensions/default/WebPlatformDocs/InlineDocsViewer.js

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,8 @@ define(function (require, exports, module) {
8181
});
8282

8383
this._sizeEditorToContent = this._sizeEditorToContent.bind(this);
84-
this._handleLinkClick = this._handleLinkClick.bind(this);
8584
this._handleWheelScroll = this._handleWheelScroll.bind(this);
8685

87-
this.$wrapperDiv.on("click", "a", this._handleLinkClick);
8886
this.$wrapperDiv.find(".scroller").on("mousewheel", this._handleWheelScroll);
8987
}
9088

@@ -95,15 +93,6 @@ define(function (require, exports, module) {
9593
InlineDocsViewer.prototype.$wrapperDiv = null;
9694

9795

98-
/** Clicking any link should open it in browser, not in Brackets shell */
99-
InlineDocsViewer.prototype._handleLinkClick = function (event) {
100-
var url = $(event.currentTarget).attr("href");
101-
if (url) {
102-
NativeApp.openURLInDefaultBrowser(url);
103-
}
104-
};
105-
106-
10796
/** Don't allow scrollwheel/trackpad to bubble up to host editor - makes scrolling docs painful */
10897
InlineDocsViewer.prototype._handleWheelScroll = function (event) {
10998
var scrollingUp = (event.originalEvent.wheelDeltaY > 0),

src/help/HelpCommandHandlers.js

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -105,17 +105,6 @@ define(function (require, exports, module) {
105105
$(this).trigger("load");
106106
}
107107
});
108-
109-
// Create a link for each contributor image to their github account
110-
$contributors.on("click", "img", function (e) {
111-
var url = $(e.target).data("url");
112-
if (url) {
113-
// Make sure the URL has a domain that we know about
114-
if (/(^|\.)github\.com$/i.test(PathUtils.parseUrl(url).hostname)) {
115-
NativeApp.openURLInDefaultBrowser(url);
116-
}
117-
}
118-
});
119108
}).fail(function () {
120109
$spinner.removeClass("spin");
121110
$contributors.html(Mustache.render("<p class='dialog-message'>{{ABOUT_TEXT_LINE6}}</p>", Strings));
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{{#.}}
2-
<a href="#" class="clickable-link" data-url="{{html_url}}" title="{{login}} - {{html_url}}">
2+
<a href="{{html_url}}" title="{{login}} - {{html_url}}">
33
<img src="{{avatar_url}}" alt="{{login}}" width="30" height="30" />
44
</a>
55
{{/.}}

src/htmlContent/update-list.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{{#.}}
22
<div>
3-
<h3>{{versionString}} - {{dateString}} (<a href="#" data-url="{{releaseNotesURL}}">{{Strings.RELEASE_NOTES}}</a>)</h3>
3+
<h3>{{versionString}} - {{dateString}} (<a href="{{releaseNotesURL}}" title="{{releaseNotesURL}}">{{Strings.RELEASE_NOTES}}</a>)</h3>
44
<ul>
55
{{#newFeatures}}
66
<li><b>{{name}}</b> - {{description}}</li>

src/nls/cs/strings.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ define({
8686
"LIVE_DEV_SERVER_NOT_READY_MESSAGE" : "Chyba při spouštění HTTP serveru pro soubory živého náhledu. Prosím, zkuste to znovu.",
8787
"LIVE_DEVELOPMENT_INFO_TITLE" : "Vítejte v živém náhledu!",
8888
"LIVE_DEVELOPMENT_INFO_MESSAGE" : "Živý náhled připojí {APP_NAME} k vašemu prohlížeči. Spustí náhled HTML souboru, který se aktualizuje pokaždé, kdy editujete svůj kód.<br /><br />V této verzi {APP_NAME}, živý náhled funguje pouze v <strong>Google Chrome</strong> a aktualizuje změny v <strong>CSS souborech</strong>. Změny v HTML nebo JavaScript souborech jsou automaticky načteny, když soubor uložíte.<br /><br />(Tato zpráva se zobrazí pouze jednou.)",
89-
"LIVE_DEVELOPMENT_TROUBLESHOOTING" : "Pro více informací navštivte <a href='#' class='clickable-link' data-href='{0}'>Troubleshooting Live Development connection errors</a>.",
89+
"LIVE_DEVELOPMENT_TROUBLESHOOTING" : "Pro více informací navštivte <a href='{0}' title='{0}'>Troubleshooting Live Development connection errors</a>.",
9090

9191
"LIVE_DEV_STATUS_TIP_NOT_CONNECTED" : "Živý náhled",
9292
"LIVE_DEV_STATUS_TIP_PROGRESS1" : "Živý náhled: Připojování\u2026",
@@ -293,11 +293,11 @@ define({
293293
"ABOUT" : "O aplikaci",
294294
"CLOSE" : "Zavřít",
295295
"ABOUT_TEXT_LINE1" : "sprint {VERSION_MINOR} {BUILD_TYPE} {VERSION}",
296-
"ABOUT_TEXT_LINE3" : "Oznámení, podmínky týkající se software třetích stran jsou umístěny na <a href='#' class='clickable-link' data-href='{ADOBE_THIRD_PARTY}'>http://www.adobe.com/go/thirdparty/</a> a začleněny prostřednictvím odkazu zde.",
297-
"ABOUT_TEXT_LINE4" : "Dokumentace a zdrojový kód na <a href='#' class='clickable-link' data-href='https://github.com/adobe/brackets/'>https://github.com/adobe/brackets/</a>.",
296+
"ABOUT_TEXT_LINE3" : "Oznámení, podmínky týkající se software třetích stran jsou umístěny na <a href='{ADOBE_THIRD_PARTY}'>{ADOBE_THIRD_PARTY}</a> a začleněny prostřednictvím odkazu zde.",
297+
"ABOUT_TEXT_LINE4" : "Dokumentace a zdrojový kód na <a href='https://github.com/adobe/brackets/'>https://github.com/adobe/brackets/</a>.",
298298
"ABOUT_TEXT_LINE5" : "Vytvořeno s \u2764 a pomocí JavaScript těmito lidmi:",
299299
"ABOUT_TEXT_LINE6" : "Mnoho lidí (ale momentálně máme problém s načítáním dat).",
300-
"ABOUT_TEXT_WEB_PLATFORM_DOCS" : "Web Platform Docs a Web Platform logo využívají licenci Creative Commons Attribution, <a href='#' class='clickable-link' data-href='{WEB_PLATFORM_DOCS_LICENSE}'>CC-BY 3.0 Unported</a>.",
300+
"ABOUT_TEXT_WEB_PLATFORM_DOCS" : "Web Platform Docs a Web Platform logo využívají licenci Creative Commons Attribution, <a href='{WEB_PLATFORM_DOCS_LICENSE}'>CC-BY 3.0 Unported</a>.",
301301
"UPDATE_NOTIFICATION_TOOLTIP" : "Je dostupná nová verze {APP_NAME} ! Klikněte zde pro více informací.",
302302
"UPDATE_AVAILABLE_TITLE" : "Dostupná aktualizace",
303303
"UPDATE_MESSAGE" : "Nová verze {APP_NAME} je dostupná. Seznam některých vylepšení:",

src/nls/cs/urls.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.
3+
*
4+
* Permission is hereby granted, free of charge, to any person obtaining a
5+
* copy of this software and associated documentation files (the "Software"),
6+
* to deal in the Software without restriction, including without limitation
7+
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
8+
* and/or sell copies of the Software, and to permit persons to whom the
9+
* Software is furnished to do so, subject to the following conditions:
10+
*
11+
* The above copyright notice and this permission notice shall be included in
12+
* all copies or substantial portions of the Software.
13+
*
14+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19+
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20+
* DEALINGS IN THE SOFTWARE.
21+
*
22+
*/
23+
24+
/*jslint vars: true, plusplus: true, devel: true, nomen: true, indent: 4, maxerr: 50 */
25+
/*global define */
26+
27+
define({
28+
// Relative to the samples folder
29+
"ADOBE_THIRD_PARTY" : "http://www.adobe.com/go/thirdparty/",
30+
"WEB_PLATFORM_DOCS_LICENSE" : "http://creativecommons.org/licenses/by/3.0/deed.cs"
31+
});

src/nls/de/strings.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ define({
8585
"LIVE_DEV_SERVER_NOT_READY_MESSAGE" : "Ein Fehler ist beim Starten des HTTP-Servers oder der Live-Vorschau-Dateien aufgetreten. Bitte versuchen Sie es später erneut.",
8686
"LIVE_DEVELOPMENT_INFO_TITLE" : "Willkommen bei der Live-Vorschau!",
8787
"LIVE_DEVELOPMENT_INFO_MESSAGE" : "Die Live-Vorschau verbindet {APP_NAME} mit Ihrem Browser. Sie startet eine Vorschau Ihrer HTML-Datei im Browser, und aktualisiert die Vorschau dann sofort, wenn Sie Ihren Code bearbeiten.<br /><br />In dieser frühen Version von {APP_NAME} funktioniert die Live-Vorschau nur beim Bearbeiten von <strong>CSS-Dateien</strong> und nur mit <strong>Google Chrome</strong>. Wir werden sie bald für HTML und JavaScript implementieren!<br /><br />(Sie sehen diese Meldung nur einmal.)",
88-
"LIVE_DEVELOPMENT_TROUBLESHOOTING" : "Weitere Informationen finden Sie unter dem Thema <a href='#' class='clickable-link' data-href='{0}'>Fehlerbehebung bei Verbindungs-Fehlern der Live-Entwicklung</a>.",
89-
88+
"LIVE_DEVELOPMENT_TROUBLESHOOTING" : "Weitere Informationen finden Sie unter dem Thema <a href='{0}' title='{0}'>Fehlerbehebung bei Verbindungs-Fehlern der Live-Entwicklung</a>.",
89+
9090
"LIVE_DEV_STATUS_TIP_NOT_CONNECTED" : "Live-Vorschau",
9191
"LIVE_DEV_STATUS_TIP_PROGRESS1" : "Live-Vorschau: Verbinden\u2026",
9292
"LIVE_DEV_STATUS_TIP_PROGRESS2" : "Live-Vorschau: Initialisieren\u2026",
@@ -300,11 +300,11 @@ define({
300300
"ABOUT" : "Über",
301301
"CLOSE" : "Schließen",
302302
"ABOUT_TEXT_LINE1" : "Sprint {VERSION_MINOR} {BUILD_TYPE} {VERSION}",
303-
"ABOUT_TEXT_LINE3" : "Hinweise, Bestimmungen und Bedingungen, die sich auf Drittanbieter-Software beziehen, finden sich unter <a href='#' class='clickable-link' data-href='{ADOBE_THIRD_PARTY}'>{ADOBE_THIRD_PARTY}</a> und sind hier durch Bezugnahme eingeschlossen.",
304-
"ABOUT_TEXT_LINE4" : "Dokumentation und Quellcode unter <a href='#' class='clickable-link' data-href='https://github.com/adobe/brackets/'>https://github.com/adobe/brackets/</a>",
303+
"ABOUT_TEXT_LINE3" : "Hinweise, Bestimmungen und Bedingungen, die sich auf Drittanbieter-Software beziehen, finden sich unter <a href='{ADOBE_THIRD_PARTY}'>{ADOBE_THIRD_PARTY}</a> und sind hier durch Bezugnahme eingeschlossen.",
304+
"ABOUT_TEXT_LINE4" : "Dokumentation und Quellcode unter <a href='https://github.com/adobe/brackets/'>https://github.com/adobe/brackets/</a>",
305305
"ABOUT_TEXT_LINE5" : "Gemacht mit \u2764 und JavaScript von:",
306306
"ABOUT_TEXT_LINE6" : "…vielen Leuten (…leider haben wir aber gerade Probleme, diese Daten zu laden).",
307-
"ABOUT_TEXT_WEB_PLATFORM_DOCS" : "Web Platform-Dokumente und das grafische Logo von Web Platform sind unter einer Creative-Commons-Namensnennungs-Lizenz lizenziert, <a href='#' class='clickable-link' data-href='{WEB_PLATFORM_DOCS_LICENSE}'>CC-BY 3.0 Unported</a>.",
307+
"ABOUT_TEXT_WEB_PLATFORM_DOCS" : "Web Platform-Dokumente und das grafische Logo von Web Platform sind unter einer Creative-Commons-Namensnennungs-Lizenz lizenziert, <a href='{WEB_PLATFORM_DOCS_LICENSE}'>CC-BY 3.0 Unported</a>.",
308308
"UPDATE_NOTIFICATION_TOOLTIP" : "Eine neue Version von {APP_NAME} ist verfügbar! Für Details hier klicken.",
309309
"UPDATE_AVAILABLE_TITLE" : "Update verfügbar",
310310
"UPDATE_MESSAGE" : "Hallo! Eine neue Version von {APP_NAME} ist verfügbar. Hier einige der neuen Funktionen:",

src/nls/es/strings.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ define({
8686
"LIVE_DEV_SERVER_NOT_READY_MESSAGE" : "Error iniciando el servidor HTTP para Desarrollo en Vivo. Vuelve a intentarlo, por favor.",
8787
"LIVE_DEVELOPMENT_INFO_TITLE" : "¡Bienvenido a Desarrollo en Vivo!",
8888
"LIVE_DEVELOPMENT_INFO_MESSAGE" : "Desarrollo en Vivo conecta {APP_NAME} con tu navegador. Lanza una vista previa de tu archivo HTML en el navegador y la actualiza a medida que modificas tu código.<br /><br />En esta versión preliminar de {APP_NAME}, Desarollo en Vivo sólo funciona para cambios de <strong>archivos CSS</strong> y únicamente con <strong>Google Chrome</strong>. ¡Pronto estará disponible también para HTML y JavaScript!<br /><br />(No volverás a ver este mensaje.)",
89-
"LIVE_DEVELOPMENT_TROUBLESHOOTING" : "Consulta <a href='#' class='clickable-link' data-href='{0}'>Resolución de Problemas de conexión en Desarrollo en Vivo</a> para más información.",
89+
"LIVE_DEVELOPMENT_TROUBLESHOOTING" : "Consulta <a href='{0}' title='{0}'>Resolución de Problemas de conexión en Desarrollo en Vivo</a> para más información.",
9090

9191
"LIVE_DEV_STATUS_TIP_NOT_CONNECTED" : "Desarrollo en Vivo",
9292
"LIVE_DEV_STATUS_TIP_PROGRESS1" : "Desarrollo en Vivo: Conectando\u2026",
@@ -301,11 +301,11 @@ define({
301301
"ABOUT" : "Acerca de\u2026",
302302
"CLOSE" : "Cerrar",
303303
"ABOUT_TEXT_LINE1" : "sprint {VERSION_MINOR} {BUILD_TYPE} {VERSION}",
304-
"ABOUT_TEXT_LINE3" : "Los avisos, términos y condiciones pertenecientes a software de terceros se encuentran en <a href='#' class='clickable-link' data-href='http://www.adobe.com/go/thirdparty/'>http://www.adobe.com/go/thirdparty/</a> y se incluyen aquí como referencia.",
305-
"ABOUT_TEXT_LINE4" : "Puedes encontrar la documentación y código fuente en <a href='#' class='clickable-link' data-href='https://github.com/adobe/brackets/'>https://github.com/adobe/brackets/</a>",
304+
"ABOUT_TEXT_LINE3" : "Los avisos, términos y condiciones pertenecientes a software de terceros se encuentran en <a href='{ADOBE_THIRD_PARTY}'>{ADOBE_THIRD_PARTY}</a> y se incluyen aquí como referencia.",
305+
"ABOUT_TEXT_LINE4" : "Puedes encontrar la documentación y código fuente en <a href='https://github.com/adobe/brackets/'>https://github.com/adobe/brackets/</a>",
306306
"ABOUT_TEXT_LINE5" : "Hecho con \u2764 y JavaScript por:",
307307
"ABOUT_TEXT_LINE6" : "Mucha gente (pero ahora mismo estamos teniendo problemas para cargar esos datos).",
308-
"ABOUT_TEXT_WEB_PLATFORM_DOCS" : "El contenido de Web Platform Docs y el logo de Web Platform están disponibles bajo una Licencia de Reconocimiento de Creative Commons, <a href='#' class='clickable-link' data-href='http://creativecommons.org/licenses/by/3.0/'>CC-BY 3.0 Unported</a>.",
308+
"ABOUT_TEXT_WEB_PLATFORM_DOCS" : "El contenido de Web Platform Docs y el logo de Web Platform están disponibles bajo una Licencia de Reconocimiento de Creative Commons, <a href='{WEB_PLATFORM_DOCS_LICENSE}'>CC-BY 3.0 Unported</a>.",
309309
"UPDATE_NOTIFICATION_TOOLTIP" : "¡Hay una nueva versión de {APP_NAME} disponible! Haz click aquí para más detalles.",
310310
"UPDATE_AVAILABLE_TITLE" : "Actualización disponible",
311311
"UPDATE_MESSAGE" : "¡Hay una nueva versión de {APP_NAME} disponible! Éstas son algunas de las nuevas características:",

0 commit comments

Comments
 (0)