Modify

Opened 10 years ago

Closed 6 months ago

#772 closed defect (fixed)

Wrong link path in navigation

Reported by: timn Owned by: cboos
Priority: high Component: DoxygenPlugin
Severity: major Keywords:
Cc: Trac Release: 0.10

Description

The link in the navigation goes to "doxygen". So following this link it will take you to something like http://server/trac/doxygen. On this the relative links in the Trac navigation (for instance to classes.html) will point to a non-existent path. The problem is the following code in source:doxygenplugin/0.10/doxygentrac/doxygentrac.py?rev=1251, line 86-90:

    def get_navigation_items(self, req):
        if req.perm.has_permission('DOXYGEN_VIEW'):
            # Return mainnav buttons.
            yield 'mainnav', 'doxygen', html.a(self.title,
                                               href=req.href.doxygen())

This will create a relative link to doxygen. Similar to the code in 0.9 this should read:

    def get_navigation_items(self, req):
        if req.perm.has_permission('DOXYGEN_VIEW'):
            # Return mainnav buttons.
            yield 'mainnav', 'doxygen', html.a(self.title,
                                               href=req.href.doxygen() + '/')

Note the additional + '/'. This will create a link to http://server/trac/doxygen/ and relative links will work just fine.

Attachments (0)

Change History (7)

comment:1 Changed 10 years ago by cboos

  • Status changed from new to assigned

Thanks, will do.

comment:2 Changed 10 years ago by dirk@…

I have the same problem, but the above solution doesn't work for me.

The problem (at least to my Trac-newbie eyes) seems to be that for the main index action without wiki_index the plugin just returns the text of the index page, but for the client the URL is ".../trac/doxygen", so relative links don't work. The fix above won't help with that either, AFAICS, as the necessary base path is ".../trac/doxygen/html/", not ".../trac/doxygen/".

I kludged it by using a redirect instead, i.e. instead of setting path I do a

# use configured Doxygen index
req.redirect(os.path.join('trac', 'doxygen', self.default_doc,
                          self.html_output, self.index))

Not very elegant, but it works, at least for me.

comment:3 Changed 10 years ago by anonymous

i'm only have to say that the patch adding a +"/" work good to me.

comment:4 Changed 10 years ago by jose.junior@…

  • Priority changed from normal to high

as this guy the URL of the main page when clicking on the navbar button is wrong, it doesn't include the 'html output' part.

The solution he gave is not ok here because I have multiple environments.

comment:5 Changed 9 years ago by c.hoeller@…

Hi,

anyhow all these solutions don't work for me - I have multiple Project, and my documentations are in /home/httpdroot/doxygen/MyProjectName/ Sadly I'm a total Python-Fool, but to me it seems, that, with this bug, the plugin is useless for me... Can you tell me, when you are planing to fix the bug?

Greetings Christoph

comment:6 Changed 9 years ago by fmos

Hi, I also had issues with the location of the class documentation

(Doxyfile is in /home/rave/public_html/doxygen)

Changing the suggested

path = /home/rave/public_html/doxygen
html_output = html

to

path = /hepforge/home/rave/public_html/doxygen/html
html_output =

made everything working.

Cheers, Fabian

comment:7 Changed 6 months ago by Committo-Ergo-Sum

  • Resolution set to fixed
  • Status changed from assigned to closed

In 15358:

DoxygenPlugin: new implementation of IRequestHandler methods. In particular, the "path" parameter in the query-string is droped. This fixes #772 #951 #962 #1564 and #2702 who complain about the security vulnerability it may contain, and other wrong path generations.

Add Comment

Modify Ticket

Action
as closed The owner will remain cboos.
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.