A JSF application needs to open several tabs which are handled by same JSF CDI Bean Class.
I have tried to use ViewScope, yet when more than one tab is open by clicking the "Duplicate Tab" feature in the browser, they all share one bean object. Is there any way we can have each tab managed by a different instance of a JSF CDI bean?
For the time being, we use session sope controllers and advice users NOT to open multiple tabs for the application. This advice has made the application not so user friendly. These days users are used to opening multiple tabs by clicking the duplicate tab feature. Other technologies support managing data through multiple tabs seamlessly in such cases. So why can't JSF support data entry using multiple tabs?
Related
I've built a component for a new template in AEM 6.1 and I need it to only appear when authoring on that specific template (adding new components to that page and such). Main reason is there's a lot components in the sidekick and we want to clean it up; plus this component will only ever be usable on this template (because of authentication reasons). I'm told I need to achieve this via the allowedParent jcr attribute in the components .content.xml files.
Unfortunately upgrading from 6.1 isn't a possibility due to business reasons. Any help is greatly appreciated.
You just have to make this component available via your design which is usually located at /etc/designs/[yourdesign]. There you will find a jcr:content node and all page templates below it. Just find there the right parsys and add this component.
See also: how properties are stored in /etc/designs for design dialog
Scenario:
User preview xpage for editing in web browser.
Developer replicate a local replica to the server.
User click save button and trigger save action partial/full refresh
In 8.5.2 crash the whole database based on can't find java design classes. In 8.5.3 no error CS/SS accrued but there are no changes applied to the document. Seems like if you replicate the sessionID is overridden. Is there a way to fix/detect it?
Any ideas?
thx
It relates to this effect: Meaning of java.lang.ClassCastException: someClass incompatible with someClass.
Simply said, every design change resets XSP engine. Since 8.5.3 you can control it by property "Refresh entire application when design changes" in XPage properties - turning it off (default since that version) will just "soft reset" XSP engine.
Anyway, you may loose some scoped variables and beans. This concludes to some rules to obey:
Do not allow developers to change design in production during working hours.
Notify users about the problem (onError event for partial refresh) - Tim's comment explains, that you won't get an error from partial refresh after design change, unfortunately. Simple CSJS code pinging app availability and report problem when app does not respond could work, but I don't advise that: we use "keep alive" control from ExtLib, and troubleshooting in domlog.nsf became a nightmare - it is full of pings (almost all the time - many users keep their browsers open overnight).
If data are very important, implement auto save mechanism similar to Google apps.
BTW: This effect is similar to time-outed session - partial refreshes will fail and user need to reload the page (and possibly loose edits).
I've an XPages Web app and want to mobilize it. However, I'm encountering difficulty in finding a suitable control to let users for selecting a name from Domino Directory.
In my Web app, I use the built-in typeahead and xe:namePicker for that purpose. However, these two items would not work nicely on a mobile page. Are there any alternative solutions?
The standard typeahead will work if you include the dojo tundra.css in your mobile app, this will be modified to be included in the future.
The name picker doesn't work as the type of control used doesn't support mobile devices well, currenty there is no in built solution, An idea that comes to mind is click a button and open a page to a dataview / repeat control that has all the names in it and a textbox to filter the list.
I am using Liferay version 6.06. I have developed a Login Portlet using Liferay plugins SDK under which the View JSP consists of a login screen. Upon submitting credentials from this view JSP it will be received by the processAction Method of my Custom Portlet class. All this works good.
I have two questions:
Currently the Login Portlet is being part of Sample Category under Liferay screen (I want to have my own screen, where initially upon entering http://localhost:8080/mycontext, I want to show that Login screen).
And once the credentials are received inside the processAction method of my Custom Portlet class, I want to display my own two portlets.
Could anybody tell me how to achieve this?
Beside you don't need a customized login for your Usecase, in case you still need to customize the login process you should:
build a hook which is a kind of plugin able to interact with Liferay's core functionalities.
In case you don't know take a look [here] http://www.liferay.com/it/documentation/liferay-portal/6.0/development/-/ai/hooks
or just use the property login.events.post=my.custom.PortletAction
and put your business logic after successfull user login
We're using MyFaces, Richfaces & Restfaces to build a website on top of Oracle Stellant CMS. We're not using Site Studio. Are there any widgets/combination of widgets out there that could provide a unified navigation system? The site structure needs to be read from a DB table and CMS metadata fields, and we need a top tab menu, an expandable sidebar menu, breadcrumbs, and a sitemap (bonus points if it uses the sitemaps.org standard). We're currently using a combination of autonomous hand-rolled and off-the shelf widgets that aren't interoperating very well - the different navigation features aren't staying in sync as the site is navigated.
We faced a very similar issue last year and didn't find any set of widgets that could provide an integrated solution (we were using JSF, Facelets, RichFaces & Spring).
We ended up developing our own navigation system with menu state holders (stored per session) and the breadcrumbs would just go up in the menu tree from the current selection to construct itself.
The menu model itself was built once at application startup (read from an xml file) using Spring and bound to the view using facelets (
<rich:tabPanel id="topMenu" binding="#{menuBean.menu}" />
Keeping the components in sync was mainly managed by a Spring WebFlow FlowExecutionListener
Hope this helps..