Opened 7 years ago

Last modified 3 years ago

#1302 assigned enhancement

Consolidate tunnel configuration and/or add obvious links between the various tunnel pages

Reported by: somewon Owned by: sadie
Priority: minor Milestone:
Component: apps/console Version: 0.9.13
Keywords: UI, interface, useability, design, configuration, tunnel, tunnels Cc:
Parent Tickets: Sensitive: no


Let's face it - at present, the tunnel management and configuration interface(s) for I2P are a total mess, from a UI perspective. Even as a somewhat advanced user, I spent a long time confused and frustrated trying to configure tunnels as I would like, or even FINDING some of the significant pages to do so.

There are at least five distinct URLs that I've found (so far…) that are related to tunnels, that really should be at most two (or MAYBE three) pages. They are:

  1. http://localhost:7657/tunnels
  1. http://localhost:7657/configtunnels
  1. http://localhost:7657/i2psnark/configure
  1. http://localhost:7657/i2ptunnel/index.jsp
  1. http://localhost:7657/i2ptunnel/edit?tunnel=X

Now, the Snark config I can see the relevance of it being separate, no big deal - although the tunnel options for it are ALSO present elsewhere, and only one of those seems to actually "stick" - but I digress, that's a separate issue.

Those last two URLs were literally unknown me until someone on IRC told me about them - and #4… I'm still not even sure how one is supposed to navigate to it naturally from another interface page, though it is a very important config page for tunnels. #5 was unknown to me because it wasn't clear that the name for each tunnel on #4 was a hyperlink, much less that I might actually be able to adjust the configuration for each of those tunnels by clicking it.

So what can we do? I would propose a few different options, and either some or all of them being implemented would make a big difference, in my opinion. They would be:

  1. Provide very clear hyperlinks, perhaps in a simple list at the bottom of the page, to all other tunnel pages from any given tunnel page.
  1. Consolidate some of these pages - for example, while http://localhost:7657/configtunnels allows "temporary" tunnel options for clients, perhaps the permanent options (as from http://localhost:7657/i2ptunnel/index.jsp ) could be listed alongside/underneath those, with clear labels (e.g., a small table with drop-downs, where one row is marked "For this session (temporary)" and the other is marked "For all future sessions (permanent)". I suppose it might make sense to use http://localhost:7657/i2ptunnel/index.jsp as the template for the consolidated page, as its interface is better suited to handling all of this configuration.
  1. Eliminate (or minimize) the separate http://localhost:7657/i2ptunnel/edit?tunnel=X pages that must be clicked to configure each tunnel, and instead replace them with, perhaps, a simple Show/Hide? box on http://localhost:7657/i2ptunnel/index.jsp under each tunnel heading. Perhaps that doesn't work without javascript (which would be a deal-breaker, in my opinion), but I think it might still work even if the basic config for each, like the number of tunnels and hops (only), were always visible under each tunnel name, there, perhaps with a very clear link at the bottom of each marked "More options…" or similar, to configure the advanced things like ports, idle behavior, etc. Even if the existing http://localhost:7657/i2ptunnel/edit?tunnel=X were just linked more clearly (perhaps instead of being linked from the Name of the tunnel, there was a distinct, very clear link for each that said "Tunnel Options…" or similar), that would be a big usability increase in my book.

That's all I can come up with at the moment, but I'm sure some other interface design improvements can be developed for these pages. I really do think that it should be a high priority - this tunnel config rabbit hole is probably one of the most counter-intuitive, confusing, potentially frustrating things that an I2P user might find - especially a prospective, new user - particularly since these settings are pretty important and many, many users will likely want to configure them. I think making these options simpler to find, and possibly simpler to adjust, could make a big impact on overall useability.

Thanks for reading through all this, and thanks for all the work that goes into I2P!


Change History (4)

comment:1 Changed 7 years ago by zzz

Component: router/generalapps/console
Milestone: 0.9.14
Priority: majorminor

Thanks for the well-written ticket.

There's several ideas here. More javascript could help with the show/hide implementation. The i2ptunnel config pages need some work for sure.

Part of the problem, though, is caused by the design of I2P, and the router/client separation in general. The client, which could be in a separate process or even on a separate computer, controls and stores its own configuration and passes the settings to the router over I2CP. That's why /configtunnels shows only the current settings for clients, and changes made there are not persistent.

And it's also why the router doesn't know how to get from a particular tunnel to some web page for how to configure it.

Not to say we can't make it easier but it won't be straightforward. The router/client separation is one of the more difficult things for new users to grasp.

comment:2 Changed 5 years ago by zzz

Status: newopen

Would be nice to distill the OP ideas down into a short list that's feasible, given my comments above.

comment:3 Changed 5 years ago by zzz

Owner: set to str4d
Status: openassigned

Maybe str4d has some ideas here

comment:4 Changed 3 years ago by zzz

Owner: changed from str4d to sadie
Note: See TracTickets for help on using tickets.