Stan, I agree with you. I think I have a short term and a long term solution. The short term solution is to reuse the same concept that is used for the admin page right now where the model is given NavigationItems during page creation. Right now those are hardcoded in the controller. I'm going to replicate that for page, store and whatnot. I'm also going to add another task that will be to load those dynamically from the DB. That way plugins could add entries for each page type to the DB to get new nav items. And if a user wants to override the navbar they can just overwrite header.tag (which I plan on renaming since it's confusing with include/header.jsp).
Chris On Thu, Apr 26, 2012 at 2:14 PM, Drozdetski, Stan A. <[email protected]>wrote: > I like the spirit of your second suggestion - just not sure about the > implementation. > > (I don't mean "not sure because I don't like it" - as a front-end guy, I > just don't know the right way to implement what you're asking for. But > getting this right is surprisingly critical for extensibility.) > > In the past, we've discussed the ability to extend Rave using > plugins/extensions/whatever. It would be mightily useful if a plugin is > able to dynamically add an item to a specified menu. If DB is the place to > do it, I'm all for it. > > The alternative - file replacement - is limiting when it comes to > customizing your instance, and then trying to upgrade to a new version of > Rave. > > (Background - the platform that I'm familiar with, Elgg, first allowed > plugins a programmatic way to append menu items. That quickly became hard > to manage, since some plugins wanted to override certain options added by > other plugins. In one of the recent releases, the menus changed - now, a > plugin can register and unregister menu items. You also have a provision to > specify the sort order for menu items. Saved us a lot of pain that would > otherwise be caused by file replacement.) > > Stan Drozdetski > MITRE > > -----Original Message----- > From: Chris Geer [mailto:[email protected]] > Sent: Thursday, April 26, 2012 4:19 PM > To: [email protected] > Subject: Re: Review Request: Separates the menubar from the page.jsp into > a standalone jsp for easy customization > > In regards to this I've got a couple of ideas (limited to navbar for the > moment): > > 1) The simplest approach is to define multiple navbar.tag files (i.e. > userpage_navbar.tag, store_navbar.tag) and that way each jsp file can > properly incorporate the correct navbar layout they want. Same thing could > be done with tiles. > 2) Another approach, like you suggested, is make them dynamic based on some > configuration. I like this approach but I'm not sure how we would drive it > out of the DB. Page_template would be the perfect place but most pages > aren't based on page templates at the moment. In fact, store.jsp doesn't > look like it pulls any data from the DB. I guess we could build it where it > was based on page_type and just have static values from some page types. So > maybe, STORE, USER, ADMIN, PERSON_PROFILE? > > If it was DB driven I envision a navitems table with the following columns: > id, page_type, menu_name, menu_item_name, menu_item_url, menu_item_icon. > (being to have multiple groups is important to us since we want to have the > items split between two dropdown menus) > > Parent User Story: https://issues.apache.org/jira/browse/RAVE-585 > > Chris > > On Thu, Apr 26, 2012 at 8:25 AM, <[email protected]> wrote: > > > > > ----------------------------------------------------------- > > This is an automatically generated e-mail. To reply, visit: > > https://reviews.apache.org/r/4880/#review7265 > > ----------------------------------------------------------- > > > > > > Thanks for the patch. A couple of issues though: > > > > 1) This only takes into account the portal pages. Menus on other pages > > are rendered differently. What would be the best approach is to have a > > single menubar with navigation contributions based on page template and > > render out the nav elements dynamically. This approach can then be > extended > > to allow menu item contributions from other sources. > > > > 2) This needs a JIRA ticket for us to Apply it :) > > > > - mfranklin > > > > > > On 2012-04-25 23:47:10, Chris Geer wrote: > > > > > > ----------------------------------------------------------- > > > This is an automatically generated e-mail. To reply, visit: > > > https://reviews.apache.org/r/4880/ > > > ----------------------------------------------------------- > > > > > > (Updated 2012-04-25 23:47:10) > > > > > > > > > Review request for rave. > > > > > > > > > Summary > > > ------- > > > > > > I pulled the "menubar" code out of page.jsp and put it into > > common/menubar.jsp to support easier customization for users. I added an > > optional attribute to the base-layout to support this additional field > and > > added it to the tile-def for standard pages. > > > > > > Something similar might be done for profile and store in the future but > > they can't use this exact JSP since their menu options differ from normal > > pages. > > > > > > > > > Diffs > > > ----- > > > > > > > > > /trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/common/menubar.jsp > > PRE-CREATION > > > > > > /trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/templates/base_layout.jsp > > 1330602 > > > > > /trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/page.jsp > > 1330602 > > > /trunk/rave-portal-resources/src/main/webapp/WEB-INF/tiles-defs.xml > > 1330602 > > > > > > Diff: https://reviews.apache.org/r/4880/diff > > > > > > > > > Testing > > > ------- > > > > > > Ran portal and witnessed no problems. > > > > > > > > > Thanks, > > > > > > Chris > > > > > > > > > > >
