@@ -7,6 +7,31 @@ function escapeHtml(str) {
77 return escapeDiv.innerHTML
88}
99
10+ var SERVICE_INFO = {
11+ wikipedia: { name: 'Wikipedia', url: 'https://wikipedia.org' },
12+ unsplash: { name: 'Unsplash', url: 'https://unsplash.com' },
13+ pixabay: { name: 'Pixabay', url: 'https://pixabay.com' },
14+ google_places: { name: 'Google', url: 'https://maps.google.com' }
15+ }
16+
17+ function formatAttributionHtml(attr) {
18+ var service = SERVICE_INFO[attr.source] || { name: attr.source, url: '#' }
19+
20+ var authorHtml = attr.authorUrl
21+ ? '<a href="' + escapeHtml(attr.authorUrl) + '" target="_blank">' + escapeHtml(attr.name) + '</a>'
22+ : escapeHtml(attr.name)
23+
24+ var html = '<a href="' + escapeHtml(attr.photoUrl) + '" target="_blank">Photo</a> by ' +
25+ authorHtml + ' on ' +
26+ '<a href="' + escapeHtml(service.url) + '" target="_blank">' + service.name + '</a>'
27+
28+ if (attr.license) {
29+ html += ' (' + escapeHtml(attr.license) + ')'
30+ }
31+
32+ return html
33+ }
34+
1035function formatSenders(messages) {
1136 var uniqueSenders = []
1237 var seen = {}
@@ -50,12 +75,21 @@ function showTooltip(trigger, messages) {
5075 positionTooltip(trigger, false)
5176}
5277
53- function showAttributionTooltip(trigger, text ) {
78+ function showAttributionTooltip(trigger, attr ) {
5479 floatingTooltip.className = 'tooltip-simple'
55- floatingTooltip.innerHTML = '<div style="color:#e5e7eb;">' + escapeHtml(text ) + '</div>'
80+ floatingTooltip.innerHTML = '<div style="color:#e5e7eb;">' + formatAttributionText(attr ) + '</div>'
5681 positionTooltip(trigger, true)
5782}
5883
84+ function formatAttributionText(attr) {
85+ var service = SERVICE_INFO[attr.source] || { name: attr.source }
86+ var text = 'Photo by ' + escapeHtml(attr.name) + ' on ' + service.name
87+ if (attr.license) {
88+ text += ' (' + escapeHtml(attr.license) + ')'
89+ }
90+ return text
91+ }
92+
5993function positionTooltip(trigger, center) {
6094 var rect = trigger.getBoundingClientRect()
6195 floatingTooltip.style.display = 'block'
0 commit comments