Ticket #6562: t6562-r6370-logo_abssrc-a.diff
| File t6562-r6370-logo_abssrc-a.diff, 7.2 KB (added by osimons, 4 years ago) |
|---|
-
trac/ticket/templates/report.rss
8 8 <link>${abs_href.report(report.id)}</link> 9 9 <description>Trac Report - $report.description</description> 10 10 <language>en-us</language> 11 <image py:if="chrome.logo.src ">11 <image py:if="chrome.logo.src_abs"> 12 12 <title>$project.name</title> 13 <url>$chrome.logo.src </url>13 <url>$chrome.logo.src_abs</url> 14 14 <link>${abs_href.report(report.id != -1 and report.id or '')}</link> 15 15 </image> 16 16 <generator>Trac v${trac.version}</generator> -
trac/ticket/templates/ticket.rss
8 8 <link>${abs_href.ticket(ticket.id)}</link> 9 9 <description>${unicode(wiki_to_html(context, ticket.description))}</description> 10 10 <language>en-us</language> 11 <image py:if=" 'src' in chrome.logo">11 <image py:if="chrome.logo.src_abs"> 12 12 <title>$project.name</title> 13 <url>$chrome.logo.src </url>13 <url>$chrome.logo.src_abs</url> 14 14 <link>${abs_href.ticket(ticket.id)}</link> 15 15 </image> 16 16 <generator>Trac $trac.version</generator> -
trac/ticket/templates/query.rss
8 8 <link>$query_href</link> 9 9 <description>$project.descr</description> 10 10 <language>en-US</language> 11 <image py:if="chrome.logo.src ">11 <image py:if="chrome.logo.src_abs"> 12 12 <title>$project.name</title> 13 <url>$chrome.logo.src </url>13 <url>$chrome.logo.src_abs</url> 14 14 <link>$query_href</link> 15 15 </image> 16 16 <generator>Trac $trac.version</generator> -
trac/versioncontrol/templates/revisionlog.rss
9 9 <description>Trac Log - Revisions of $path</description> 10 10 <language>en-US</language> 11 11 <generator>Trac ${trac.version}</generator> 12 <image py:if="chrome.logo ">12 <image py:if="chrome.logo.src_abs"> 13 13 <title>${project.name}</title> 14 <url>${chrome.logo.src }</url>14 <url>${chrome.logo.src_abs}</url> 15 15 <link>$log_href</link> 16 16 </image> 17 17 -
trac/timeline/templates/timeline.rss
9 9 <description>Trac Timeline</description> 10 10 <language>en-US</language> 11 11 <generator>Trac ${trac.version}</generator> 12 <image py:if="chrome.logo.src ">12 <image py:if="chrome.logo.src_abs"> 13 13 <title>${project.name}</title> 14 <url>${ 15 chrome.logo.src_abs and chrome.logo.src_abs or abs_href(chrome.logo.src) 16 }</url> 14 <url>${chrome.logo.src_abs}</url> 17 15 <link>${abs_href.timeline()}</link> 18 16 </image> 19 17 -
trac/web/tests/chrome.py
68 68 self.env.config.set('header_logo', 'src', '') 69 69 info = Chrome(self.env).prepare_request(req) 70 70 assert 'src' not in info['logo'] 71 assert 'src_abs' not in info['logo'] 71 72 72 73 # Test with a relative path to the logo image 73 74 self.env.config.set('header_logo', 'src', 'foo.png') 74 75 info = Chrome(self.env).prepare_request(req) 75 76 self.assertEqual('/trac.cgi/chrome/common/foo.png', info['logo']['src']) 77 self.assertEqual('http://example.org/trac.cgi/chrome/common/foo.png', 78 info['logo']['src_abs']) 76 79 80 # Test with a location in project htdocs 81 self.env.config.set('header_logo', 'src', 'site/foo.png') 82 info = Chrome(self.env).prepare_request(req) 83 self.assertEqual('/trac.cgi/chrome/site/foo.png', info['logo']['src']) 84 self.assertEqual('http://example.org/trac.cgi/chrome/site/foo.png', 85 info['logo']['src_abs']) 86 77 87 # Test with a server-relative path to the logo image 78 88 self.env.config.set('header_logo', 'src', '/img/foo.png') 79 89 info = Chrome(self.env).prepare_request(req) 80 90 self.assertEqual('/img/foo.png', info['logo']['src']) 91 self.assertEqual('/img/foo.png', info['logo']['src_abs']) 81 92 82 93 # Test with an absolute path to the logo image 83 94 self.env.config.set('header_logo', 'src', 84 95 'http://www.example.org/foo.png') 85 96 info = Chrome(self.env).prepare_request(req) 86 97 self.assertEqual('http://www.example.org/foo.png', info['logo']['src']) 98 self.assertEqual('http://www.example.org/foo.png', info['logo']['src_abs']) 87 99 88 100 def test_default_links(self): 89 101 req = Mock(chrome={}, abs_href=Href('http://example.org/trac.cgi'), -
trac/web/chrome.py
430 430 add_link(fakereq, 'shortcut icon', src, mimetype=mimetype) 431 431 432 432 # Logo image 433 chrome['logo'] = self.get_logo_data(req.href )433 chrome['logo'] = self.get_logo_data(req.href, req.abs_href) 434 434 435 435 # Navigation links 436 436 allitems = {} … … 503 503 'mimetype': mimetype} 504 504 return icon 505 505 506 def get_logo_data(self, href): 506 def get_logo_data(self, href, abs_href=None): 507 # TODO: Possibly, links to 'common/' could use chrome.htdocs_location 507 508 logo = {} 508 509 logo_src = self.logo_src 509 510 if logo_src: 510 logo_src_abs = logo_src.startswith('http://') or \ 511 logo_src.startswith('https://') 512 if not logo_src.startswith('/') and not logo_src_abs: 513 if '/' in logo_src: 514 logo_src = href.chrome(logo_src) 515 else: 516 logo_src = href.chrome('common', logo_src) 511 abs_href = abs_href or href 512 if logo_src.startswith('http://') or \ 513 logo_src.startswith('https://') or \ 514 logo_src.startswith('/'): 515 # Nothing further can be calculated 516 logo_src_abs = logo_src 517 elif '/' in logo_src: 518 # Like 'common/trac_banner.png' or 'site/my_banner.png' 519 logo_src_abs = abs_href.chrome(logo_src) 520 logo_src = href.chrome(logo_src) 521 else: 522 # Like 'trac_banner.png' 523 logo_src_abs = abs_href.chrome('common', logo_src) 524 logo_src = href.chrome('common', logo_src) 517 525 width = self.logo_width > -1 and self.logo_width or None 518 526 height = self.logo_height > -1 and self.logo_height or None 519 527 logo = {
