IDEMPIERE-984 Change Role and Logout must check for unsaved records on open windows / use case 1 / peer review
This commit is contained in:
parent
839f02d823
commit
3e06cf3255
|
@ -7,4 +7,6 @@ INSERT INTO AD_Message (MsgType,MsgText,MsgTip,AD_Message_ID,EntityType,AD_Messa
|
||||||
-- IDEMPIERE-984 Change Role and Logout must check for unsaved records on open windows
|
-- IDEMPIERE-984 Change Role and Logout must check for unsaved records on open windows
|
||||||
INSERT INTO AD_Message_Trl (AD_Language,AD_Message_ID, MsgText,MsgTip, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Message_Trl_UU ) SELECT l.AD_Language,t.AD_Message_ID, t.MsgText,t.MsgTip, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Message t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Message_ID=200207 AND NOT EXISTS (SELECT * FROM AD_Message_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Message_ID=t.AD_Message_ID)
|
INSERT INTO AD_Message_Trl (AD_Language,AD_Message_ID, MsgText,MsgTip, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Message_Trl_UU ) SELECT l.AD_Language,t.AD_Message_ID, t.MsgText,t.MsgTip, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Message t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Message_ID=200207 AND NOT EXISTS (SELECT * FROM AD_Message_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Message_ID=t.AD_Message_ID)
|
||||||
;
|
;
|
||||||
|
|
||||||
SELECT register_migration_script('20130717091459_IDEMPIERE-984.sql') FROM dual
|
SELECT register_migration_script('20130717091459_IDEMPIERE-984.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -9,3 +9,4 @@ INSERT INTO AD_Message_Trl (AD_Language,AD_Message_ID, MsgText,MsgTip, IsTransla
|
||||||
;
|
;
|
||||||
|
|
||||||
SELECT register_migration_script('20130717091459_IDEMPIERE-984.sql') FROM dual
|
SELECT register_migration_script('20130717091459_IDEMPIERE-984.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
|
|
||||||
package org.adempiere.webui.panel;
|
package org.adempiere.webui.panel;
|
||||||
|
|
||||||
|
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
import org.adempiere.util.Callback;
|
import org.adempiere.util.Callback;
|
||||||
|
@ -66,7 +65,10 @@ public class UserPanel implements EventListener<Event>, Composer<Component>
|
||||||
|
|
||||||
protected Component component;
|
protected Component component;
|
||||||
|
|
||||||
public UserPanel()
|
private static final String ON_DEFER_CHANGE_ROLE = "onDeferChangeRole";
|
||||||
|
private static final String ON_DEFER_LOGOUT = "onDeferLogout";
|
||||||
|
|
||||||
|
public UserPanel()
|
||||||
{
|
{
|
||||||
super();
|
super();
|
||||||
this.ctx = Env.getCtx();
|
this.ctx = Env.getCtx();
|
||||||
|
@ -106,6 +108,9 @@ public class UserPanel implements EventListener<Event>, Composer<Component>
|
||||||
|
|
||||||
SessionManager.getSessionApplication().getKeylistener().addEventListener(Events.ON_CTRL_KEY, this);
|
SessionManager.getSessionApplication().getKeylistener().addEventListener(Events.ON_CTRL_KEY, this);
|
||||||
component.addEventListener("onEmailSupport", this);
|
component.addEventListener("onEmailSupport", this);
|
||||||
|
|
||||||
|
component.addEventListener(ON_DEFER_LOGOUT, this);
|
||||||
|
component.addEventListener(ON_DEFER_CHANGE_ROLE, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getUserName()
|
private String getUserName()
|
||||||
|
@ -139,19 +144,13 @@ public class UserPanel implements EventListener<Event>, Composer<Component>
|
||||||
return "*";
|
return "*";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onEvent(Event event) throws Exception {
|
public void onEvent(Event event) throws Exception {
|
||||||
if (event == null)
|
if (event == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (logout == event.getTarget())
|
if (logout == event.getTarget())
|
||||||
{
|
{
|
||||||
component.addEventListener("onLogout", new EventListener<Event>() {
|
|
||||||
@Override
|
|
||||||
public void onEvent(Event event) throws Exception {
|
|
||||||
SessionManager.logoutSession();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (SessionManager.getAppDesktop().isPendingWindow()) {
|
if (SessionManager.getAppDesktop().isPendingWindow()) {
|
||||||
FDialog.ask(0, component, "ProceedWithTask?", new Callback<Boolean>() {
|
FDialog.ask(0, component, "ProceedWithTask?", new Callback<Boolean>() {
|
||||||
|
|
||||||
|
@ -160,12 +159,12 @@ public class UserPanel implements EventListener<Event>, Composer<Component>
|
||||||
{
|
{
|
||||||
if (result)
|
if (result)
|
||||||
{
|
{
|
||||||
Events.echoEvent(new Event("onLogout", component));
|
Events.echoEvent(ON_DEFER_LOGOUT, component, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
SessionManager.logoutSession();
|
Events.echoEvent(ON_DEFER_LOGOUT, component, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (lblUserNameValue == event.getTarget())
|
else if (lblUserNameValue == event.getTarget())
|
||||||
|
@ -176,13 +175,6 @@ public class UserPanel implements EventListener<Event>, Composer<Component>
|
||||||
}
|
}
|
||||||
else if (changeRole == event.getTarget())
|
else if (changeRole == event.getTarget())
|
||||||
{
|
{
|
||||||
component.addEventListener("onChangeRole", new EventListener<Event>() {
|
|
||||||
@Override
|
|
||||||
public void onEvent(Event event) throws Exception {
|
|
||||||
MUser user = MUser.get(ctx);
|
|
||||||
SessionManager.changeRole(user);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
if (SessionManager.getAppDesktop().isPendingWindow()) {
|
if (SessionManager.getAppDesktop().isPendingWindow()) {
|
||||||
FDialog.ask(0, component, "ProceedWithTask?", new Callback<Boolean>() {
|
FDialog.ask(0, component, "ProceedWithTask?", new Callback<Boolean>() {
|
||||||
|
|
||||||
|
@ -191,13 +183,12 @@ public class UserPanel implements EventListener<Event>, Composer<Component>
|
||||||
{
|
{
|
||||||
if (result)
|
if (result)
|
||||||
{
|
{
|
||||||
Events.echoEvent(new Event("onChangeRole", component));
|
Events.echoEvent(ON_DEFER_CHANGE_ROLE, component, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
MUser user = MUser.get(ctx);
|
Events.echoEvent(ON_DEFER_CHANGE_ROLE, component, null);
|
||||||
SessionManager.changeRole(user);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (preference == event.getTarget())
|
else if (preference == event.getTarget())
|
||||||
|
@ -246,6 +237,16 @@ public class UserPanel implements EventListener<Event>, Composer<Component>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (ON_DEFER_LOGOUT.equals(event.getName()))
|
||||||
|
{
|
||||||
|
SessionManager.logoutSession();
|
||||||
|
}
|
||||||
|
else if (ON_DEFER_CHANGE_ROLE.equals(event.getName()))
|
||||||
|
{
|
||||||
|
MUser user = MUser.get(ctx);
|
||||||
|
SessionManager.changeRole(user);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue