Drew,

I recently wrote a proof-of-concept dlm processor that will link someone directly to a maximized version of a portlet. At the time, I was thinking... it would be easy to do something similar to navigate folks directly to a tab, or if you had anchors above each portlet, you could navigate them there as well.

We are in the middle of a significant roll-out project right now, but I would be happy to discuss this with you as time allows.

Tim

Drew Wills wrote:
Hey folks,

I've been asked by JHU to implement a "deep-linking" feature for their portal: essentially, they want to be able to link directly to a specific tab from another web application.

I have the sense that a lot of folks would be interested in this feature. I know I've been asked about it several times. University of Colorado System, for one, would like it very much.

I also learned that Pearson Education needs this feature -- in fact, they implemented it. It's currently used in their production portal that services large numbers of users.

What's more, I learned from a coworker at UNICON that Pearson had already agreed to contribute this feature -- they were only waiting on available bandwidth to get it done.

Rather than recreate this feature from scratch, I volunteered to be the one to get it in. I've created a JIRA, with a patch attached:

  - http://www.ja-sig.org/issues/browse/UP-1936

I've applied this patch to a local copy of rel-2-6-patches and verified that it functions as expected.

When I first considered the issue I was worried that this enhancement would be pretty invasive; it's actually very low-impact, as it turns out.

Here are all the files (5 total) affected by the patch:
-properties\db\data.xml
-webpages\stylesheets\org\jasig\portal\channels\DLMUserPreferences\tab-column\default.properties -webpages\stylesheets\org\jasig\portal\channels\DLMUserPreferences\tab-column\default.xsl -webpages\stylesheets\org\jasig\portal\layout\DLM-tab-column\tab-column.xsl -source\org\jasig\portal\channels\DLMUserPreferences\TabColumnPrefsState.java

In a nutshell, you enhance the DLMUserPreferences channel to support CRUD operations on a specific folder attribute (stored ultimately in UP_SS_USER_ATTS): "externalId"

Then, you enhance the DLM structure transformation to consume it where appropriate (takes like 3 lines of XSL).

Lastly, you have to register the name "externalId" as a valid folder attribute. This is the change to data.xml: it's one additional row in the DB.

URLs that target specific tabs would look like this:
-http[s]://my-portal/render.userLayoutRootNode.uP?uP_sparam=activeTab&activeTab={externalId}

I think this is a compelling feature, and I'd very much like to get it into the product.

Thoughts?  Anyone else interested in this enhancement?

drew wills

PS: JHU also has a great idea for writing a ServletFilter that could map to URLs like this one:

  - http[s]://my-portal/{externalId}

and translate them to the format shown above. I'm sure they'll be happy to contribute that as well.


--
You are currently subscribed to [email protected] as: [EMAIL 
PROTECTED]
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/uportal-dev

Reply via email to