close richfaces popupPanel if method call has certain outcome

939 Views Asked by At

I'm trying to get build a simple Login Panel. The Panel is a rich:popupPanel. When the "Login" link/button is clicked I want the Panel to stay open if the login was unsuccessfull (due to wrong username/password, Database errors ... what ever). But the Panel should close if the login was successfull.

My best attempt looks like this, but the "oncomplete" value can not be parsed

<a4j:commandButton value="login" oncomplete="if (#{userController.login()}) #{rich:component('loginPanel')}.hide()"/>

How do I get that behavior from the popupPanel?

1

There are 1 best solutions below

0
On BEST ANSWER

You should use action property to invoke login method on your bean. The loginSuccess is a property indicating if login was successfull or not.

<a4j:commandButton value="login" action="#{userController.login}" oncomplete="if (#{userController.loginSuccess}) #{rich:component('loginPanel')}.hide()"/>