uPortal IRC Logs-2011-04-12
[13:05:49 CDT(-0500)] <athena> ergh, mobile theme appears to be broken
[13:05:59 CDT(-0500)] <athena> EricDalquist: i assume this might be related to recent URL changes?
[13:06:06 CDT(-0500)] <EricDalquist> oh I forgot to test that this morning
[13:06:11 CDT(-0500)] <EricDalquist> :/
[13:06:17 CDT(-0500)] <athena> s'ok
[13:06:19 CDT(-0500)] <EricDalquist> are you seeing exceptions?
[13:06:24 CDT(-0500)] <athena> yeah
[13:06:44 CDT(-0500)] <athena> http://pastebin.com/7JLyUq1m
[13:07:46 CDT(-0500)] <EricDalquist> heh
[13:08:13 CDT(-0500)] <EricDalquist> there probably is no "defaultTab" stylesheet parameter defined for the mobile layout structure stylesheet descriptor
[13:08:21 CDT(-0500)] <athena> no
[13:08:32 CDT(-0500)] <EricDalquist> this is the UI specific URL stuff I had mentioned a while back
[13:08:38 CDT(-0500)] <athena> which there probably shouldn't be, since that theme doesn't recognize tabs
[13:08:43 CDT(-0500)] <EricDalquist> right
[13:08:55 CDT(-0500)] <EricDalquist> I think we need to figure out what we want URLs to even look like for the mobile ui
[13:09:14 CDT(-0500)] <EricDalquist> all the code that is there right now assumes /f/tabName/p/portletName/render.uP
[13:09:21 CDT(-0500)] <EricDalquist> but mobile doesn't really have tabs does it
[13:09:27 CDT(-0500)] <athena> hmm, yeah, that's true
[13:09:32 CDT(-0500)] <athena> so i think all the focused portlet URLs make sense
[13:09:35 CDT(-0500)] <EricDalquist> brb
[13:09:53 CDT(-0500)] <athena> but unclear what the main url should be - right now just one main URL for everything that's not focused
[13:09:54 CDT(-0500)] <athena> ok
[13:11:59 CDT(-0500)] <EricDalquist> hrm
[13:12:00 CDT(-0500)] <athena> maybe just uPortal/render.uP?
[13:12:04 CDT(-0500)] <EricDalquist> yeah
[13:12:15 CDT(-0500)] <athena> so what needs to happen to get this fixed?
[13:12:46 CDT(-0500)] <EricDalquist> how soon do you need it fixed ... I'm assuming asap?
[13:12:58 CDT(-0500)] <athena> yeah :/
[13:13:08 CDT(-0500)] <athena> can just put in a default tab or something for now if that's easiest
[13:13:45 CDT(-0500)] <athena> or willing to do dev to get it really fixed - whichever
[13:13:47 CDT(-0500)] <EricDalquist> so a quick hack would be int SingleTabUrlNodeSyntaxHelper.getDefaultTabIndex
[13:14:03 CDT(-0500)] <EricDalquist> check if this returns null
[13:14:04 CDT(-0500)] <EricDalquist> final IStylesheetParameterDescriptor defaultTabParameterDescriptor = stylesheetDescriptor.getStylesheetParameterDescriptor(defaultTabParameter);
[13:14:07 CDT(-0500)] <EricDalquist> and if it does return "1"
[13:14:11 CDT(-0500)] <athena> ok
[13:14:23 CDT(-0500)] <EricDalquist> when you have time I'd like to chat about a real fix for this'
[13:14:31 CDT(-0500)] <athena> yeah, definitely
[13:14:36 CDT(-0500)] <athena> i do have time today if you want to talk about it
[13:14:41 CDT(-0500)] <athena> or if today's not good, will make time later
[13:14:54 CDT(-0500)] <EricDalquist> sure ... maybe ~ 20 minutes from now?
[13:15:08 CDT(-0500)] <athena> sure, no problem
[13:15:10 CDT(-0500)] <EricDalquist> I think https://source.jasig.org/uPortal/trunk/uportal-war/src/main/java/org/jasig/portal/url/SingleTabUrlNodeSyntaxHelper.java is the primary class we'll need to be thinking about
[13:15:17 CDT(-0500)] <athena> ok
[13:15:23 CDT(-0500)] <EricDalquist> you can take look a the 3 xpath's and that getStylesheetParameterDescriptor method
[13:15:30 CDT(-0500)] <athena> sure
[13:15:32 CDT(-0500)] <EricDalquist> those are the big structure specific bits
[13:15:36 CDT(-0500)] <athena> thanks
[13:34:07 CDT(-0500)] <athena> i'm now getting http://pastebin.com/gFTtQJni
[13:34:15 CDT(-0500)] <EricDalquist>
[13:34:17 CDT(-0500)] <athena> looks like uPortal isn't picking up the skin name
[13:34:42 CDT(-0500)] <athena> not quite sure what changed that?
[13:34:52 CDT(-0500)] <EricDalquist> uhg
[13:35:36 CDT(-0500)] <EricDalquist> let me update to latest trunk here
[13:36:14 CDT(-0500)] <athena> ok
[13:41:30 CDT(-0500)] <EricDalquist> athena: can you set a break point in PreferencesTransformerConfigurationSource
[13:41:38 CDT(-0500)] <athena> i noticed that hte UniversalityMobile-theme.stylesheet-descriptor file didn't have the right value for the skin
[13:41:39 CDT(-0500)] <EricDalquist> public final LinkedHashMap<String, Object> getParameters(HttpServletRequest request, HttpServletResponse response)
[13:41:41 CDT(-0500)] <athena> but changing it didn't help
[13:41:42 CDT(-0500)] <athena> sure
[13:41:50 CDT(-0500)] <EricDalquist> did you re-run the db import?
[13:41:59 CDT(-0500)] <athena> hmm.
[13:42:11 CDT(-0500)] <athena> no, but it looks like the right value is in the database?
[13:42:19 CDT(-0500)] <athena> can do that if it'll help though
[13:42:32 CDT(-0500)] <EricDalquist> sure, those are just entity files so just changing the file won't fix it
[13:42:36 CDT(-0500)] <athena> ok
[13:43:04 CDT(-0500)] <athena> hopefully that'll fix it then
[13:43:11 CDT(-0500)] <athena> how come this just cropped up now?
[13:44:40 CDT(-0500)] <EricDalquist> I just fixed an issue where the default stylesheet descriptor values weren't appearing in the parameters
[13:45:10 CDT(-0500)] <athena> ah, gtocha
[13:45:13 CDT(-0500)] <athena> that makes sense then
[13:55:19 CDT(-0500)] <EricDalquist> any more progress on it working?
[14:00:19 CDT(-0500)] <EricDalquist> athena: I have to run to a meeting, back in an hour
[14:00:34 CDT(-0500)] <athena> starting back up again
[14:00:44 CDT(-0500)] <athena> ooh it works!
[14:00:46 CDT(-0500)] <athena> hurray!
[14:00:58 CDT(-0500)] <athena> ok, we can talk about the URL issue whenever it's convenient - just ping me
[14:01:03 CDT(-0500)] <athena> thanks for the help
[15:02:21 CDT(-0500)] <EricDalquist> glad it is working
[15:02:33 CDT(-0500)] <athena> me too!
[15:02:43 CDT(-0500)] <athena> feel like i'm in permanently panic mode these days
[15:02:53 CDT(-0500)] <EricDalquist> I hear that
[15:03:03 CDT(-0500)] <EricDalquist> the entire uw system is switching to a new HR system this week
[15:03:19 CDT(-0500)] <athena> oh yikes
[15:03:20 CDT(-0500)] <EricDalquist> and we wrote a bunch of self-service portlets to display data from it in the portal
[15:03:29 CDT(-0500)] <EricDalquist> so we have to be part of the coodination of the switch
[15:03:42 CDT(-0500)] <EricDalquist> I cannot wait for Monday morning and it to be done with
[15:05:06 CDT(-0500)] <EricDalquist> so for the url stuff
[15:05:20 CDT(-0500)] <EricDalquist> there are some basic questions the url generation and parsing code needs answers to
[15:05:46 CDT(-0500)] <EricDalquist> the first one that was biting you was getDefaultLayoutNodeId
[15:06:08 CDT(-0500)] <EricDalquist> this is used to generate the "default" portal url, essentially the URL that the user should see when they just access /uPortal/
[15:06:27 CDT(-0500)] <EricDalquist> the other things that are needed are for navigation
[15:06:43 CDT(-0500)] <EricDalquist> getFolderNamesForLayoutNode gets a list of folders to put in the url when the specified node is targeted
[15:07:04 CDT(-0500)] <EricDalquist> the current config for that is this regex "/layout/folder/folder[@ID=$nodeId or descendant::node()[@ID=$nodeId]]/@ID"
[15:07:26 CDT(-0500)] <EricDalquist> which finds the tab with the specified ID or the tab that has a node with the specified ID as a child
[15:07:50 CDT(-0500)] <EricDalquist> and finally getFolderNameForPortlet gets a folder name to use when targeting a specific portlet
[15:08:07 CDT(-0500)] <EricDalquist> the code should all work if any/all of those return null
[15:08:24 CDT(-0500)] <EricDalquist> which is what it sounds like should happen for at least the default view in mobile
[15:08:43 CDT(-0500)] <EricDalquist> then the next question is does the mobile UI ever have any layout based navigation
[15:08:54 CDT(-0500)] <EricDalquist> or is it just "all the portlets" or "a single portlet"
[15:09:18 CDT(-0500)] <EricDalquist> in which case getFolderNamesForLayoutNode probably always just returns an empty List of folder names
[15:20:10 CDT(-0500)] <EricDalquist> I have to run but we can chat more about this later
[16:08:07 CDT(-0500)] <EricDalquist> so any thoughts on that whole url syntax diatribe athena?
[16:08:22 CDT(-0500)] <athena> hey eric, sorry i missed you before
[16:08:25 CDT(-0500)] <athena> didn't see the window blink
[16:08:32 CDT(-0500)] <athena> thoughts . . . mostly just a headache
[16:09:00 CDT(-0500)] <athena> not sure what all that means practically w/ our use case
[16:09:09 CDT(-0500)] <athena> definitely noticing that once you enter a portlet you can't go back home
[16:09:26 CDT(-0500)] <EricDalquist> no problem
[16:09:53 CDT(-0500)] <EricDalquist> well the url syntax is pretty flexible
[16:10:05 CDT(-0500)] <EricDalquist> so I guess if you have thoughts on what the URLs should look like for the mobile view
[16:10:24 CDT(-0500)] <athena> for the main URL, maybe just /uPortal/render.uP?
[16:10:27 CDT(-0500)] <EricDalquist> are /uPortal/render.uP and /uPortal/p/coursesPortlet/render.uP good enough?
[16:10:33 CDT(-0500)] <athena> yes completely
[16:10:39 CDT(-0500)] <EricDalquist> is there any need for targeting a layout node like tabs
[16:10:49 CDT(-0500)] <EricDalquist> and when targeting a portlet is there any layout context info that needs to be included
[16:11:10 CDT(-0500)] <athena> no, not right now
[16:11:18 CDT(-0500)] <athena> we're just pretending tabs don't even exist
[16:11:18 CDT(-0500)] <EricDalquist> ok
[16:12:28 CDT(-0500)] <EricDalquist> so I think the plan is going to be that we'll have an impl of IUrlNodeSyntaxHelper for each structure stylesheet
[16:12:53 CDT(-0500)] <EricDalquist> or at least have some what of doing a mapping between structure stylesheet names and IUrlNodeSyntaxHelper impls
[16:15:15 CDT(-0500)] <athena> ok i think that makes sense
[16:16:39 CDT(-0500)] <EricDalquist> one thing I want to do eventually is touch base with drew
[16:16:45 CDT(-0500)] <EricDalquist> and see about the sub-tab stuff
[16:17:00 CDT(-0500)] <EricDalquist> that could potentially be codified into the URL as well just by tweaking this class
[16:17:22 CDT(-0500)] <EricDalquist> also do you remember what the folder attribute name was that we were using as a "fname for tabs"?
[16:22:29 CDT(-0500)] <athena> that'd be completely awesome
[16:22:31 CDT(-0500)] <athena> and no, i don't
[16:22:44 CDT(-0500)] <athena> was looking for that in response to that thread this morning
[16:22:45 CDT(-0500)] <athena> cna't find it
[16:22:52 CDT(-0500)] <athena> also, there's no way to set that in uportal trunk
[16:22:57 CDT(-0500)] <athena> either that or the default tab
[16:23:57 CDT(-0500)] <EricDalquist> yeah, what I was thinking is that we might be able to just use tab-name
[16:24:01 CDT(-0500)] <EricDalquist> cleaned up with our fname regex
[16:24:15 CDT(-0500)] <EricDalquist> and just add the node-id if there is another tab with the same name
[16:24:19 CDT(-0500)] <EricDalquist> which would be pretty rare
[16:24:55 CDT(-0500)] <athena> yeah that sounds pretty reasonable to me
[16:25:20 CDT(-0500)] <athena> it'd be terrific to have that in the url
[16:25:22 CDT(-0500)] <athena> pretty pretty
[16:25:39 CDT(-0500)] <EricDalquist> yeah
[16:25:49 CDT(-0500)] <EricDalquist> I don't think we can do that with portlets
[16:25:55 CDT(-0500)] <EricDalquist> well maybe
[16:26:08 CDT(-0500)] <athena> we could use the portlet fname, no?
[16:26:11 CDT(-0500)] <EricDalquist> I wonder how expensive it is to figure out if a portlet is in the user's layout more than once/fname
[16:26:18 CDT(-0500)] <EricDalquist> thats the question for both of those
[16:26:21 CDT(-0500)] <athena> hmm, interesting point
[16:26:21 CDT(-0500)] <athena> yeah
[16:26:34 CDT(-0500)] <EricDalquist> since if it is subscribed more than once we have to include the subscribeId
[16:27:07 CDT(-0500)] <athena> yeah
[16:27:09 CDT(-0500)] <athena> that makes nese
[16:27:11 CDT(-0500)] <athena> er, sense
[16:27:20 CDT(-0500)] <EricDalquist> same thing for tabs really
[16:27:30 CDT(-0500)] <EricDalquist> thats just less common of an occurance
[16:27:33 CDT(-0500)] <athena> yeah
[16:31:19 CDT(-0500)] <athena> how does this icon set have a plane and a sailboat but no car or bus?
[16:35:53 CDT(-0500)] <EricDalquist> lol
[16:36:02 CDT(-0500)] <EricDalquist> its a high-brow icon set
[16:36:09 CDT(-0500)] <EricDalquist> none of those lowly forms of transport
[16:36:15 CDT(-0500)] <EricDalquist> does it have a limo?
[16:38:56 CDT(-0500)] <athena> nope
[16:39:05 CDT(-0500)] <athena> though that's an amusing hypothesis