On 6/18/2014 6:11 AM, Petr Vobornik wrote:
1. As discussed on IRC, the plugin is causing an error due to missing
extend.js. This needs to be fixed.
4. I agree that the facet shouldn't define the hash. The hash should be
part of the plugin declaration.
Ideally, facet should be router agnostic. We need a mechanism of mapping
facet's state to hash and vice versa.
Originally I did not want to do it now because it requires bigger
refactoring of a router.
While I was designing it, I ended up with a patch - attached.
It's a replacement for original patch #649. Patch #651 and example
plugin are updated accordingly.
Basically I refactored router's `navigate_to_*`, `_create_*_hash` and
`*_route_handler` methods into separate classes which are registered and
mapped to facets. All in navigation.routing module.
Btw, can you think of some better name(s)/placement for the module?
ACK. Some comments below, but I think they can be addressed later.
1. I'm not sure if we really need a HashCreator. Ideally the router
should map a hash to a page. Links to another page can be hardcoded too
(and substitute the parameters).
2. Ideally there should be no entity-specific navigation code. All
routing should be handled in a generic way. This probably depends on the
entity-facet separation that we discussed previously. So routes like this:
should be replaced by individual routes for each entity:
Probably the entities should be written like plugins.
3. If we fix #1 and #2, is the "routing" module still necessary? The
"routing" object probably should have been a "router", but are you
concerned about conflicting with Dojo's router and the existing Router
4. The args/query in the navigation paths should be separated by a more
standard delimiter "?" instead of "//". For example:
should be replaced with:
Endi S. Dewata
Freeipa-devel mailing list