IDEMPIERE-293 Support for Kill Session
This commit is contained in:
parent
8d1865571f
commit
962110fd2c
|
@ -0,0 +1,63 @@
|
||||||
|
-- Nov 28, 2012 3:45:10 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Process (CopyFromProcess,Created,AD_Process_ID,IsDirectPrint,IsReport,AD_Process_UU,AccessLevel,IsBetaFunctionality,IsServerProcess,Statistic_Seconds,Statistic_Count,ShowHelp,EntityType,Classname,Name,Value,AD_Org_ID,AD_Client_ID,Updated,UpdatedBy,IsActive,CreatedBy) VALUES ('N',TO_DATE('2012-11-28 15:45:05','YYYY-MM-DD HH24:MI:SS'),200021,'N','N','1b4a0890-2e4b-4e20-be55-d0248ec4e4c6','4','N','N',0,0,'Y','U','org.adempiere.webui.process.KillCurrentSession','Kill Current Session','Kill Current Session',0,0,TO_DATE('2012-11-28 15:45:05','YYYY-MM-DD HH24:MI:SS'),100,'Y',100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:45:11 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Process_Trl (AD_Language,AD_Process_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Process_Trl_UU ) SELECT l.AD_Language,t.AD_Process_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Process t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Process_ID=200021 AND NOT EXISTS (SELECT * FROM AD_Process_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Process_ID=t.AD_Process_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:47:21 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Element (ColumnName,AD_Element_ID,EntityType,Name,PrintName,AD_Element_UU,AD_Client_ID,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive) VALUES ('TimeOutInSeconds',200256,'U','TimeOutInSeconds','Timeout In Seconds','3a2c3c58-cf06-4624-bd31-332957521736',0,TO_DATE('2012-11-28 15:47:20','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2012-11-28 15:47:20','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:47:21 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Description,Name,PrintName,PO_Name,PO_PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Element_Trl_UU ) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Description,t.Name,t.PrintName,t.PO_Name,t.PO_PrintName, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=200256 AND NOT EXISTS (SELECT * FROM AD_Element_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Element_ID=t.AD_Element_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:48:48 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Process_Para (IsRange,AD_Element_ID,AD_Process_Para_ID,AD_Process_Para_UU,AD_Process_ID,AD_Reference_ID,IsMandatory,EntityType,Name,ColumnName,FieldLength,IsCentrallyMaintained,SeqNo,IsActive,UpdatedBy,Updated,CreatedBy,Created,AD_Org_ID,AD_Client_ID,IsEncrypted) VALUES ('N',200256,200044,'a5bc974e-d6b6-403e-8102-82e53950a14c',200021,11,'Y','U','TimeOutInSeconds','TimeOutInSeconds',4,'Y',10,'Y',100,TO_DATE('2012-11-28 15:48:47','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2012-11-28 15:48:47','YYYY-MM-DD HH24:MI:SS'),0,0,'N')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:48:48 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Process_Para_Trl (AD_Language,AD_Process_Para_ID, Help,Name,Description, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Process_Para_Trl_UU ) SELECT l.AD_Language,t.AD_Process_Para_ID, t.Help,t.Name,t.Description, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Process_Para t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Process_Para_ID=200044 AND NOT EXISTS (SELECT * FROM AD_Process_Para_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Process_Para_ID=t.AD_Process_Para_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:50:54 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_ToolBarButton (Action,AD_Tab_ID,AD_Process_ID,SeqNo,Name,ComponentName,IsCustomization,AD_Client_ID,AD_Org_ID,Created,CreatedBy,AD_ToolBarButton_ID,Updated,UpdatedBy,AD_ToolBarButton_UU,IsActive) VALUES ('W',200025,200021,10,'Kill Current Session','KillCurrentSession','N',0,0,TO_DATE('2012-11-28 15:50:53','YYYY-MM-DD HH24:MI:SS'),100,200073,TO_DATE('2012-11-28 15:50:53','YYYY-MM-DD HH24:MI:SS'),100,'f123c14c-0aa7-4ee9-87ed-3c4ef4ccc961','Y')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:53:26 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Process (CopyFromProcess,Created,AD_Process_ID,IsDirectPrint,IsReport,AD_Process_UU,AccessLevel,IsBetaFunctionality,IsServerProcess,Statistic_Seconds,Statistic_Count,ShowHelp,EntityType,Classname,Name,Value,AD_Org_ID,AD_Client_ID,Updated,UpdatedBy,IsActive,CreatedBy) VALUES ('N',TO_DATE('2012-11-28 15:53:25','YYYY-MM-DD HH24:MI:SS'),200022,'N','N','06a44cb0-5782-475b-aeab-63429829c708','4','N','N',0,0,'Y','U','org.adempiere.webui.process.KillAllSession','Kill All Session','Kill All Session',0,0,TO_DATE('2012-11-28 15:53:25','YYYY-MM-DD HH24:MI:SS'),100,'Y',100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:53:26 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Process_Trl (AD_Language,AD_Process_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Process_Trl_UU ) SELECT l.AD_Language,t.AD_Process_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Process t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Process_ID=200022 AND NOT EXISTS (SELECT * FROM AD_Process_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Process_ID=t.AD_Process_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:55:32 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Process_Para (IsRange,AD_Element_ID,AD_Process_Para_ID,AD_Process_Para_UU,AD_Process_ID,AD_Reference_ID,IsMandatory,EntityType,Name,ColumnName,FieldLength,IsCentrallyMaintained,SeqNo,IsActive,UpdatedBy,Updated,CreatedBy,Created,AD_Org_ID,AD_Client_ID,IsEncrypted) VALUES ('N',200256,200045,'c9f241c3-9085-4f3b-a071-e49bdc14541f',200022,11,'N','U','TimeOutInSeconds','TimeOutInSeconds',4,'Y',10,'Y',100,TO_DATE('2012-11-28 15:55:31','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2012-11-28 15:55:31','YYYY-MM-DD HH24:MI:SS'),0,0,'N')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:55:32 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Process_Para_Trl (AD_Language,AD_Process_Para_ID, Help,Name,Description, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Process_Para_Trl_UU ) SELECT l.AD_Language,t.AD_Process_Para_ID, t.Help,t.Name,t.Description, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Process_Para t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Process_Para_ID=200045 AND NOT EXISTS (SELECT * FROM AD_Process_Para_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Process_Para_ID=t.AD_Process_Para_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:57:20 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_ToolBarButton (Action,AD_Tab_ID,AD_Process_ID,SeqNo,Name,ComponentName,IsCustomization,AD_Client_ID,AD_Org_ID,Created,CreatedBy,AD_ToolBarButton_ID,Updated,UpdatedBy,AD_ToolBarButton_UU,IsActive) VALUES ('W',200025,200022,20,'Kill All Session','KillAllSession','N',0,0,TO_DATE('2012-11-28 15:57:19','YYYY-MM-DD HH24:MI:SS'),100,200074,TO_DATE('2012-11-28 15:57:19','YYYY-MM-DD HH24:MI:SS'),100,'b56e98d9-bbfd-478e-bc11-c3e9cdb9637e','Y')
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
SELECT register_migration_script('201211300507_IDEMPIERE-293.sql') FROM dual
|
||||||
|
;
|
|
@ -0,0 +1,62 @@
|
||||||
|
-- Nov 28, 2012 3:45:10 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Process (CopyFromProcess,Created,AD_Process_ID,IsDirectPrint,IsReport,AD_Process_UU,AccessLevel,IsBetaFunctionality,IsServerProcess,Statistic_Seconds,Statistic_Count,ShowHelp,EntityType,Classname,Name,Value,AD_Org_ID,AD_Client_ID,Updated,UpdatedBy,IsActive,CreatedBy) VALUES ('N',TO_TIMESTAMP('2012-11-28 15:45:05','YYYY-MM-DD HH24:MI:SS'),200021,'N','N','1b4a0890-2e4b-4e20-be55-d0248ec4e4c6','4','N','N',0,0,'Y','U','org.adempiere.webui.process.KillCurrentSession','Kill Current Session','Kill Current Session',0,0,TO_TIMESTAMP('2012-11-28 15:45:05','YYYY-MM-DD HH24:MI:SS'),100,'Y',100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:45:11 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Process_Trl (AD_Language,AD_Process_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Process_Trl_UU ) SELECT l.AD_Language,t.AD_Process_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Process t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Process_ID=200021 AND NOT EXISTS (SELECT * FROM AD_Process_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Process_ID=t.AD_Process_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:47:21 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Element (ColumnName,AD_Element_ID,EntityType,Name,PrintName,AD_Element_UU,AD_Client_ID,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive) VALUES ('TimeOutInSeconds',200256,'U','TimeOutInSeconds','Timeout In Seconds','3a2c3c58-cf06-4624-bd31-332957521736',0,TO_TIMESTAMP('2012-11-28 15:47:20','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2012-11-28 15:47:20','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:47:21 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Description,Name,PrintName,PO_Name,PO_PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Element_Trl_UU ) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Description,t.Name,t.PrintName,t.PO_Name,t.PO_PrintName, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=200256 AND NOT EXISTS (SELECT * FROM AD_Element_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Element_ID=t.AD_Element_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:48:48 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Process_Para (IsRange,AD_Element_ID,AD_Process_Para_ID,AD_Process_Para_UU,AD_Process_ID,AD_Reference_ID,IsMandatory,EntityType,Name,ColumnName,FieldLength,IsCentrallyMaintained,SeqNo,IsActive,UpdatedBy,Updated,CreatedBy,Created,AD_Org_ID,AD_Client_ID,IsEncrypted) VALUES ('N',200256,200044,'a5bc974e-d6b6-403e-8102-82e53950a14c',200021,11,'Y','U','TimeOutInSeconds','TimeOutInSeconds',4,'Y',10,'Y',100,TO_TIMESTAMP('2012-11-28 15:48:47','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2012-11-28 15:48:47','YYYY-MM-DD HH24:MI:SS'),0,0,'N')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:48:48 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Process_Para_Trl (AD_Language,AD_Process_Para_ID, Help,Name,Description, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Process_Para_Trl_UU ) SELECT l.AD_Language,t.AD_Process_Para_ID, t.Help,t.Name,t.Description, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Process_Para t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Process_Para_ID=200044 AND NOT EXISTS (SELECT * FROM AD_Process_Para_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Process_Para_ID=t.AD_Process_Para_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:50:54 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_ToolBarButton ("action",AD_Tab_ID,AD_Process_ID,SeqNo,Name,ComponentName,IsCustomization,AD_Client_ID,AD_Org_ID,Created,CreatedBy,AD_ToolBarButton_ID,Updated,UpdatedBy,AD_ToolBarButton_UU,IsActive) VALUES ('W',200025,200021,10,'Kill Current Session','KillCurrentSession','N',0,0,TO_TIMESTAMP('2012-11-28 15:50:53','YYYY-MM-DD HH24:MI:SS'),100,200073,TO_TIMESTAMP('2012-11-28 15:50:53','YYYY-MM-DD HH24:MI:SS'),100,'f123c14c-0aa7-4ee9-87ed-3c4ef4ccc961','Y')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:53:26 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Process (CopyFromProcess,Created,AD_Process_ID,IsDirectPrint,IsReport,AD_Process_UU,AccessLevel,IsBetaFunctionality,IsServerProcess,Statistic_Seconds,Statistic_Count,ShowHelp,EntityType,Classname,Name,Value,AD_Org_ID,AD_Client_ID,Updated,UpdatedBy,IsActive,CreatedBy) VALUES ('N',TO_TIMESTAMP('2012-11-28 15:53:25','YYYY-MM-DD HH24:MI:SS'),200022,'N','N','06a44cb0-5782-475b-aeab-63429829c708','4','N','N',0,0,'Y','U','org.adempiere.webui.process.KillAllSession','Kill All Session','Kill All Session',0,0,TO_TIMESTAMP('2012-11-28 15:53:25','YYYY-MM-DD HH24:MI:SS'),100,'Y',100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:53:26 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Process_Trl (AD_Language,AD_Process_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Process_Trl_UU ) SELECT l.AD_Language,t.AD_Process_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Process t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Process_ID=200022 AND NOT EXISTS (SELECT * FROM AD_Process_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Process_ID=t.AD_Process_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:55:32 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Process_Para (IsRange,AD_Element_ID,AD_Process_Para_ID,AD_Process_Para_UU,AD_Process_ID,AD_Reference_ID,IsMandatory,EntityType,Name,ColumnName,FieldLength,IsCentrallyMaintained,SeqNo,IsActive,UpdatedBy,Updated,CreatedBy,Created,AD_Org_ID,AD_Client_ID,IsEncrypted) VALUES ('N',200256,200045,'c9f241c3-9085-4f3b-a071-e49bdc14541f',200022,11,'N','U','TimeOutInSeconds','TimeOutInSeconds',4,'Y',10,'Y',100,TO_TIMESTAMP('2012-11-28 15:55:31','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2012-11-28 15:55:31','YYYY-MM-DD HH24:MI:SS'),0,0,'N')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:55:32 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_Process_Para_Trl (AD_Language,AD_Process_Para_ID, Help,Name,Description, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Process_Para_Trl_UU ) SELECT l.AD_Language,t.AD_Process_Para_ID, t.Help,t.Name,t.Description, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Process_Para t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Process_Para_ID=200045 AND NOT EXISTS (SELECT * FROM AD_Process_Para_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Process_Para_ID=t.AD_Process_Para_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 28, 2012 3:57:20 PM GMT+05:30
|
||||||
|
-- IDEMPIERE-293 Adding ability to kill session from active session winodw
|
||||||
|
INSERT INTO AD_ToolBarButton ("action",AD_Tab_ID,AD_Process_ID,SeqNo,Name,ComponentName,IsCustomization,AD_Client_ID,AD_Org_ID,Created,CreatedBy,AD_ToolBarButton_ID,Updated,UpdatedBy,AD_ToolBarButton_UU,IsActive) VALUES ('W',200025,200022,20,'Kill All Session','KillAllSession','N',0,0,TO_TIMESTAMP('2012-11-28 15:57:19','YYYY-MM-DD HH24:MI:SS'),100,200074,TO_TIMESTAMP('2012-11-28 15:57:19','YYYY-MM-DD HH24:MI:SS'),100,'b56e98d9-bbfd-478e-bc11-c3e9cdb9637e','Y')
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201211300507_IDEMPIERE-293.sql') FROM dual
|
||||||
|
;
|
|
@ -91,6 +91,6 @@ public interface IEventTopics {
|
||||||
|
|
||||||
public static final String PREF_AFTER_LOAD = "adempiere/pref/afterLoad";
|
public static final String PREF_AFTER_LOAD = "adempiere/pref/afterLoad";
|
||||||
|
|
||||||
public static final String BROADCAST_MESSAGE = "adempiere/broadcastMsg";
|
public static final String BROADCAST_MESSAGE = "idempiere/broadcastMsg";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,8 +28,8 @@ public class BroadCastMsg implements Serializable {
|
||||||
private static final long serialVersionUID = -7669279373526944539L;
|
private static final long serialVersionUID = -7669279373526944539L;
|
||||||
|
|
||||||
private String src;
|
private String src;
|
||||||
private int messageId;
|
private int intData;
|
||||||
private String targetNode;
|
private String target;
|
||||||
private int eventId;
|
private int eventId;
|
||||||
|
|
||||||
private boolean fromCluster = false;
|
private boolean fromCluster = false;
|
||||||
|
@ -50,12 +50,12 @@ public class BroadCastMsg implements Serializable {
|
||||||
this.eventId = eventId;
|
this.eventId = eventId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTargetNode() {
|
public String getTarget() {
|
||||||
return targetNode;
|
return target;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTargetNode(String targetNode) {
|
public void setTarget(String targetNode) {
|
||||||
this.targetNode = targetNode;
|
this.target = targetNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getSrc() {
|
public String getSrc() {
|
||||||
|
@ -66,12 +66,12 @@ public class BroadCastMsg implements Serializable {
|
||||||
this.src = src;
|
this.src = src;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getMessageId() {
|
public int getIntData() {
|
||||||
return messageId;
|
return intData;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMessageId(int messageId) {
|
public void setIntData(int messageId) {
|
||||||
this.messageId = messageId;
|
this.intData = messageId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@ public class BroadCastUtil {
|
||||||
public static final int EVENT_BROADCAST_MESSAGE =1;
|
public static final int EVENT_BROADCAST_MESSAGE =1;
|
||||||
public static final int EVENT_TEST_BROADCAST_MESSAGE=2;
|
public static final int EVENT_TEST_BROADCAST_MESSAGE=2;
|
||||||
public static final int EVENT_SESSION_TIMEOUT =3;
|
public static final int EVENT_SESSION_TIMEOUT =3;
|
||||||
|
public static final int EVENT_SESSION_ONNODE_TIMEOUT=4;
|
||||||
|
|
||||||
public static void subscribe(ITopicSubscriber<BroadCastMsg> subscriber){
|
public static void subscribe(ITopicSubscriber<BroadCastMsg> subscriber){
|
||||||
|
|
||||||
|
|
|
@ -106,7 +106,7 @@ public class BroadcastMsgUtil
|
||||||
|
|
||||||
if (!MBroadcastMessage.BROADCASTTYPE_Login.equals(broadcastType)) {
|
if (!MBroadcastMessage.BROADCASTTYPE_Login.equals(broadcastType)) {
|
||||||
BroadCastMsg msg = new BroadCastMsg();
|
BroadCastMsg msg = new BroadCastMsg();
|
||||||
msg.setMessageId(messageID);
|
msg.setIntData(messageID);
|
||||||
msg.setEventId(BroadCastUtil.EVENT_BROADCAST_MESSAGE);
|
msg.setEventId(BroadCastUtil.EVENT_BROADCAST_MESSAGE);
|
||||||
pushToQueue(msg);
|
pushToQueue(msg);
|
||||||
}
|
}
|
||||||
|
@ -136,10 +136,10 @@ public class BroadcastMsgUtil
|
||||||
*/
|
*/
|
||||||
public static void testBroadcastMessage(int messageID, int AD_Session_ID) {
|
public static void testBroadcastMessage(int messageID, int AD_Session_ID) {
|
||||||
BroadCastMsg msg = new BroadCastMsg();
|
BroadCastMsg msg = new BroadCastMsg();
|
||||||
msg.setMessageId(messageID);
|
msg.setIntData(messageID);
|
||||||
msg.setFromCluster(true);
|
msg.setFromCluster(true);
|
||||||
msg.setEventId(BroadCastUtil.EVENT_TEST_BROADCAST_MESSAGE);
|
msg.setEventId(BroadCastUtil.EVENT_TEST_BROADCAST_MESSAGE);
|
||||||
msg.setTargetNode(Integer.toString(AD_Session_ID));
|
msg.setTarget(Integer.toString(AD_Session_ID));
|
||||||
|
|
||||||
pushToQueue(msg);
|
pushToQueue(msg);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,6 @@ import org.adempiere.base.event.IEventManager;
|
||||||
import org.adempiere.base.event.IEventTopics;
|
import org.adempiere.base.event.IEventTopics;
|
||||||
import org.adempiere.model.MBroadcastMessage;
|
import org.adempiere.model.MBroadcastMessage;
|
||||||
import org.adempiere.util.ServerContext;
|
import org.adempiere.util.ServerContext;
|
||||||
import org.adempiere.webui.LayoutUtils;
|
|
||||||
import org.adempiere.webui.apps.AEnv;
|
import org.adempiere.webui.apps.AEnv;
|
||||||
import org.adempiere.webui.apps.BusyDialog;
|
import org.adempiere.webui.apps.BusyDialog;
|
||||||
import org.adempiere.webui.component.Tabpanel;
|
import org.adempiere.webui.component.Tabpanel;
|
||||||
|
@ -35,6 +34,7 @@ import org.adempiere.webui.event.MenuListener;
|
||||||
import org.adempiere.webui.event.ZKBroadCastManager;
|
import org.adempiere.webui.event.ZKBroadCastManager;
|
||||||
import org.adempiere.webui.panel.BroadcastMessageWindow;
|
import org.adempiere.webui.panel.BroadcastMessageWindow;
|
||||||
import org.adempiere.webui.panel.HeaderPanel;
|
import org.adempiere.webui.panel.HeaderPanel;
|
||||||
|
import org.adempiere.webui.panel.TimeoutPanel;
|
||||||
import org.adempiere.webui.session.SessionContextListener;
|
import org.adempiere.webui.session.SessionContextListener;
|
||||||
import org.adempiere.webui.session.SessionManager;
|
import org.adempiere.webui.session.SessionManager;
|
||||||
import org.adempiere.webui.util.IServerPushCallback;
|
import org.adempiere.webui.util.IServerPushCallback;
|
||||||
|
@ -45,6 +45,7 @@ import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
import org.compiere.util.Msg;
|
import org.compiere.util.Msg;
|
||||||
import org.compiere.util.Util;
|
import org.compiere.util.Util;
|
||||||
|
import org.compiere.util.WebUtil;
|
||||||
import org.idempiere.broadcast.BroadCastMsg;
|
import org.idempiere.broadcast.BroadCastMsg;
|
||||||
import org.idempiere.broadcast.BroadCastUtil;
|
import org.idempiere.broadcast.BroadCastUtil;
|
||||||
import org.idempiere.broadcast.BroadcastMsgUtil;
|
import org.idempiere.broadcast.BroadcastMsgUtil;
|
||||||
|
@ -105,6 +106,8 @@ public class DefaultDesktop extends TabbedDesktop implements MenuListener, Seria
|
||||||
private HeaderPanel pnlHead;
|
private HeaderPanel pnlHead;
|
||||||
|
|
||||||
private Desktop m_desktop = null;
|
private Desktop m_desktop = null;
|
||||||
|
private TimeoutPanel panel = null;
|
||||||
|
|
||||||
public DefaultDesktop()
|
public DefaultDesktop()
|
||||||
{
|
{
|
||||||
super();
|
super();
|
||||||
|
@ -322,7 +325,8 @@ public class DefaultDesktop extends TabbedDesktop implements MenuListener, Seria
|
||||||
* @param eventManager
|
* @param eventManager
|
||||||
*/
|
*/
|
||||||
public void bindEventManager() {
|
public void bindEventManager() {
|
||||||
EventManager.getInstance().register(IEventTopics.BROADCAST_MESSAGE, this);
|
String topics [] = {IEventTopics.BROADCAST_MESSAGE,IEventTopics.KILL_SESSION};
|
||||||
|
EventManager.getInstance().register(topics, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -336,19 +340,21 @@ public class DefaultDesktop extends TabbedDesktop implements MenuListener, Seria
|
||||||
public void handleEvent(final org.osgi.service.event.Event event) {
|
public void handleEvent(final org.osgi.service.event.Event event) {
|
||||||
String eventName = event.getTopic();
|
String eventName = event.getTopic();
|
||||||
if (eventName.equals(IEventTopics.BROADCAST_MESSAGE)) {
|
if (eventName.equals(IEventTopics.BROADCAST_MESSAGE)) {
|
||||||
EventListener<Event> listner = new EventListener<Event>(){
|
EventListener<Event> listner = new EventListener<Event>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEvent(Event event) throws Exception {
|
public void onEvent(Event event) throws Exception {
|
||||||
BroadCastMsg msg = (BroadCastMsg) event.getData();
|
BroadCastMsg msg = (BroadCastMsg) event.getData();
|
||||||
MBroadcastMessage mbMessage = MBroadcastMessage.get(
|
|
||||||
Env.getCtx(), msg.getMessageId());
|
|
||||||
if (msg.getEventId() == BroadCastUtil.EVENT_TEST_BROADCAST_MESSAGE) {
|
|
||||||
|
|
||||||
|
switch (msg.getEventId()) {
|
||||||
|
case BroadCastUtil.EVENT_TEST_BROADCAST_MESSAGE:
|
||||||
|
MBroadcastMessage mbMessage = MBroadcastMessage.get(
|
||||||
|
Env.getCtx(), msg.getIntData());
|
||||||
String currSession = Integer
|
String currSession = Integer
|
||||||
.toString(Env.getContextAsInt(Env.getCtx(),
|
.toString(Env.getContextAsInt(Env.getCtx(),
|
||||||
"AD_Session_ID"));
|
"AD_Session_ID"));
|
||||||
if (currSession.equals(msg.getTargetNode())) {
|
if (currSession.equals(msg.getTarget())) {
|
||||||
if (testMessageWindow == null)
|
if (testMessageWindow == null)
|
||||||
testMessageWindow = new BroadcastMessageWindow(
|
testMessageWindow = new BroadcastMessageWindow(
|
||||||
pnlHead);
|
pnlHead);
|
||||||
|
@ -356,16 +362,51 @@ public class DefaultDesktop extends TabbedDesktop implements MenuListener, Seria
|
||||||
testMessageWindow = null;
|
testMessageWindow = null;
|
||||||
|
|
||||||
}
|
}
|
||||||
} else if (mbMessage.isValidUserforMessage()) {
|
break;
|
||||||
if (messageWindow == null)
|
case BroadCastUtil.EVENT_BROADCAST_MESSAGE:
|
||||||
messageWindow = new BroadcastMessageWindow(pnlHead);
|
mbMessage = MBroadcastMessage.get(
|
||||||
messageWindow.appendMessage(mbMessage, false);
|
Env.getCtx(), msg.getIntData());
|
||||||
|
if (mbMessage.isValidUserforMessage()) {
|
||||||
|
|
||||||
|
if (messageWindow == null)
|
||||||
|
messageWindow = new BroadcastMessageWindow(
|
||||||
|
pnlHead);
|
||||||
|
messageWindow.appendMessage(mbMessage, false);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BroadCastUtil.EVENT_SESSION_TIMEOUT:
|
||||||
|
|
||||||
|
currSession = Integer.toString(Env.getContextAsInt(
|
||||||
|
Env.getCtx(), "AD_Session_ID"));
|
||||||
|
System.out.println("Current Session" + currSession);
|
||||||
|
if (currSession.equalsIgnoreCase(msg.getTarget())) {
|
||||||
|
if (panel == null) {
|
||||||
|
panel = new TimeoutPanel(pnlHead,
|
||||||
|
msg.getIntData());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case BroadCastUtil.EVENT_SESSION_ONNODE_TIMEOUT:
|
||||||
|
|
||||||
|
currSession = WebUtil.getServerName();
|
||||||
|
|
||||||
|
if (currSession.equalsIgnoreCase(msg.getTarget())) {
|
||||||
|
if (panel == null) {
|
||||||
|
panel = new TimeoutPanel(pnlHead,
|
||||||
|
msg.getIntData());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
Executions.schedule(m_desktop, listner, new Event("OnBroadcast", null, event.getProperty(IEventManager.EVENT_DATA)));
|
|
||||||
|
Executions.schedule(m_desktop, listner, new Event("OnBroadcast",
|
||||||
|
null, event.getProperty(IEventManager.EVENT_DATA)));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,14 @@ public class ZKBroadCastManager implements ITopicSubscriber<BroadCastMsg>,EventH
|
||||||
BroadcastMsgUtil.pushToQueue(message);
|
BroadcastMsgUtil.pushToQueue(message);
|
||||||
break;
|
break;
|
||||||
case BroadCastUtil.EVENT_SESSION_TIMEOUT:
|
case BroadCastUtil.EVENT_SESSION_TIMEOUT:
|
||||||
|
message.setFromCluster(true);
|
||||||
|
BroadcastMsgUtil.pushToQueue(message);
|
||||||
|
break;
|
||||||
|
case BroadCastUtil.EVENT_SESSION_ONNODE_TIMEOUT:
|
||||||
|
if(WebUtil.getServerName().equalsIgnoreCase(message.getTarget())){
|
||||||
|
message.setFromCluster(true);
|
||||||
|
BroadcastMsgUtil.pushToQueue(message);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,148 @@
|
||||||
|
/******************************************************************************
|
||||||
|
* Copyright (C) 2012 Trek Global *
|
||||||
|
* Product: iDempiere ERP & CRM Smart Business Solution *
|
||||||
|
* This program is free software; you can redistribute it and/or modify it *
|
||||||
|
* under the terms version 2 of the GNU General Public License as published *
|
||||||
|
* by the Free Software Foundation. This program is distributed in the hope *
|
||||||
|
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
|
||||||
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||||
|
* See the GNU General Public License for more details. *
|
||||||
|
* You should have received a copy of the GNU General Public License along *
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc., *
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
package org.adempiere.webui.panel;
|
||||||
|
|
||||||
|
import org.zkoss.zhtml.Script;
|
||||||
|
import org.zkoss.zk.ui.Executions;
|
||||||
|
import org.zkoss.zk.ui.Session;
|
||||||
|
import org.zkoss.zk.ui.Sessions;
|
||||||
|
import org.zkoss.zk.ui.event.Event;
|
||||||
|
import org.zkoss.zk.ui.event.Events;
|
||||||
|
import org.zkoss.zul.Borderlayout;
|
||||||
|
import org.zkoss.zul.Center;
|
||||||
|
import org.zkoss.zul.Div;
|
||||||
|
import org.zkoss.zul.Html;
|
||||||
|
import org.zkoss.zul.Label;
|
||||||
|
import org.zkoss.zul.North;
|
||||||
|
import org.zkoss.zul.South;
|
||||||
|
import org.zkoss.zul.Timer;
|
||||||
|
import org.zkoss.zul.Vlayout;
|
||||||
|
import org.zkoss.zul.Window;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Deepak Pansheriya
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class TimeoutPanel extends Window implements
|
||||||
|
org.zkoss.zk.ui.event.EventListener<Event> {
|
||||||
|
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -2734157789771800337L;
|
||||||
|
private Timer timer = null;
|
||||||
|
private int count = 0;
|
||||||
|
private Label lCaption = null;
|
||||||
|
private Label ltime = null;
|
||||||
|
private Timer timerJS = null;
|
||||||
|
|
||||||
|
public TimeoutPanel(HeaderPanel pnlHead, int timeInSecond) {
|
||||||
|
count = timeInSecond;
|
||||||
|
pnlHead.appendChild(this);
|
||||||
|
|
||||||
|
|
||||||
|
Borderlayout layout = new Borderlayout();
|
||||||
|
layout.setParent(this);
|
||||||
|
|
||||||
|
setWidth("23%");
|
||||||
|
setHeight("25%");
|
||||||
|
setPosition("left,bottom");
|
||||||
|
setBorder(true);
|
||||||
|
setShadow(false);
|
||||||
|
doOverlapped();
|
||||||
|
|
||||||
|
North north = new North();
|
||||||
|
north.setParent(layout);
|
||||||
|
|
||||||
|
Div divNorth = new Div();
|
||||||
|
divNorth.setParent(north);
|
||||||
|
divNorth.setStyle("text-align: center;");
|
||||||
|
|
||||||
|
lCaption = new Label("You will be logged out in ");
|
||||||
|
lCaption.setParent(divNorth);
|
||||||
|
lCaption.setStyle("text-align: center; font-size: 20px;");
|
||||||
|
|
||||||
|
Center center = new Center();
|
||||||
|
center.setParent(layout);
|
||||||
|
|
||||||
|
Vlayout centerVlayout = new Vlayout();
|
||||||
|
centerVlayout.setParent(center);
|
||||||
|
centerVlayout.setStyle("height:100%; text-align: center;");
|
||||||
|
|
||||||
|
|
||||||
|
South south = new South();
|
||||||
|
south.setParent(layout);
|
||||||
|
|
||||||
|
|
||||||
|
Div divSouth = new Div();
|
||||||
|
divSouth.setParent(south);
|
||||||
|
divSouth.setStyle("height:100%; text-align: center;");
|
||||||
|
|
||||||
|
|
||||||
|
timer = new Timer();
|
||||||
|
timer.setDelay((count * 1000));
|
||||||
|
timer.addEventListener(Events.ON_TIMER, this);
|
||||||
|
timer.setRepeats(true);
|
||||||
|
timer.start();
|
||||||
|
centerVlayout.appendChild(timer);
|
||||||
|
|
||||||
|
|
||||||
|
Script jScript = new Script("var countJS = "+count+";");
|
||||||
|
jScript.setDynamicProperty("defer","true");
|
||||||
|
jScript.setParent(centerVlayout);
|
||||||
|
|
||||||
|
timerJS = new Timer();
|
||||||
|
timerJS.setDelay((1000));
|
||||||
|
timerJS.stop();
|
||||||
|
timerJS.setRepeats(true);
|
||||||
|
String script = " countJS--;if(countJS <= 0){this.stop();} minValue = Math.floor(countJS/60).toString().length > 1 ? Math.floor(countJS/60) : '0' + Math.floor(countJS/60); secValue = (countJS%60).toString().length>1?(countJS%60) : '0'+(countJS%60); this.nextSibling.setValue(minValue+' : '+secValue);";
|
||||||
|
timerJS.setWidgetListener("onTimer", script);
|
||||||
|
timerJS.start();
|
||||||
|
timerJS.setParent(centerVlayout);
|
||||||
|
|
||||||
|
String minConverted = ((count / 60) + "").length() > 1 ? (count / 60) + ""
|
||||||
|
: "0" + (count / 60);
|
||||||
|
String secConverted = ((count % 60) + "").length() > 1 ? (count % 60) + ""
|
||||||
|
: "0" + (count % 60);
|
||||||
|
|
||||||
|
ltime = new Label(minConverted +" : "+secConverted);
|
||||||
|
ltime.setParent(centerVlayout);
|
||||||
|
ltime.setStyle("text-align: center; font-size: 40px; color:red;");
|
||||||
|
|
||||||
|
|
||||||
|
Html txtLbl = new Html("Minutes Second");
|
||||||
|
txtLbl.setParent(centerVlayout);
|
||||||
|
txtLbl.setStyle("font-size: 12px;");
|
||||||
|
|
||||||
|
|
||||||
|
Vlayout vLayout = new Vlayout();
|
||||||
|
vLayout.setParent(divSouth);
|
||||||
|
|
||||||
|
|
||||||
|
Label saveLbl = new Label("Save your work!!");
|
||||||
|
saveLbl.setParent(vLayout);
|
||||||
|
saveLbl.setStyle("font-size: 20px;");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onEvent(Event event) throws Exception {
|
||||||
|
if (event.getName().equals("onTimer"))
|
||||||
|
{
|
||||||
|
timer.stop();
|
||||||
|
Session session = Sessions.getCurrent();
|
||||||
|
session.invalidate();
|
||||||
|
Executions.sendRedirect("/index.zul");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,79 @@
|
||||||
|
/******************************************************************************
|
||||||
|
* Copyright (C) 2012 Trek Global *
|
||||||
|
* Product: iDempiere ERP & CRM Smart Business Solution *
|
||||||
|
* This program is free software; you can redistribute it and/or modify it *
|
||||||
|
* under the terms version 2 of the GNU General Public License as published *
|
||||||
|
* by the Free Software Foundation. This program is distributed in the hope *
|
||||||
|
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
|
||||||
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||||
|
* See the GNU General Public License for more details. *
|
||||||
|
* You should have received a copy of the GNU General Public License along *
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc., *
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
package org.adempiere.webui.process;
|
||||||
|
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import org.compiere.process.ProcessInfoParameter;
|
||||||
|
import org.compiere.process.SvrProcess;
|
||||||
|
import org.compiere.util.CLogger;
|
||||||
|
import org.compiere.util.DB;
|
||||||
|
import org.idempiere.broadcast.BroadCastMsg;
|
||||||
|
import org.idempiere.broadcast.BroadCastUtil;
|
||||||
|
import org.idempiere.broadcast.BroadcastMsgUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Deepak Pansheriya
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class KillAllSession extends SvrProcess {
|
||||||
|
private static final CLogger logger = CLogger
|
||||||
|
.getCLogger(KillAllSession.class);
|
||||||
|
private int scndTimeout = 0;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void prepare() {
|
||||||
|
ProcessInfoParameter[] para = getParameter();
|
||||||
|
for (int i = 0; i < para.length; i++) {
|
||||||
|
String name = para[i].getParameterName();
|
||||||
|
if (para[i].getParameter() == null)
|
||||||
|
;
|
||||||
|
else if (name.equals("TimeOutInSeconds"))
|
||||||
|
scndTimeout = para[i].getParameterAsInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String doIt() throws Exception {
|
||||||
|
|
||||||
|
|
||||||
|
String sql = "SELECT servername FROM ad_session WHERE ad_session_id=?";
|
||||||
|
PreparedStatement pstmt = null;
|
||||||
|
ResultSet rs = null;
|
||||||
|
try {
|
||||||
|
pstmt = DB.prepareStatement(sql, null);
|
||||||
|
pstmt.setInt(1, getRecord_ID());
|
||||||
|
rs = pstmt.executeQuery();
|
||||||
|
if (rs.next()) {
|
||||||
|
BroadCastMsg msg = new BroadCastMsg();
|
||||||
|
msg.setEventId(BroadCastUtil.EVENT_SESSION_ONNODE_TIMEOUT);
|
||||||
|
msg.setIntData(scndTimeout);
|
||||||
|
msg.setTarget(rs.getString("servername"));
|
||||||
|
BroadcastMsgUtil.pushToQueue(msg);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.log(Level.SEVERE, "servername could not be retrieved", e);
|
||||||
|
throw new IllegalStateException(e.getMessage());
|
||||||
|
} finally {
|
||||||
|
DB.close(rs, pstmt);
|
||||||
|
}
|
||||||
|
|
||||||
|
return "Session Time Out Initiated";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,56 @@
|
||||||
|
/******************************************************************************
|
||||||
|
* Copyright (C) 2012 Trek Global *
|
||||||
|
* Product: iDempiere ERP & CRM Smart Business Solution *
|
||||||
|
* This program is free software; you can redistribute it and/or modify it *
|
||||||
|
* under the terms version 2 of the GNU General Public License as published *
|
||||||
|
* by the Free Software Foundation. This program is distributed in the hope *
|
||||||
|
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
|
||||||
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||||
|
* See the GNU General Public License for more details. *
|
||||||
|
* You should have received a copy of the GNU General Public License along *
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc., *
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
package org.adempiere.webui.process;
|
||||||
|
|
||||||
|
import org.compiere.process.ProcessInfoParameter;
|
||||||
|
import org.compiere.process.SvrProcess;
|
||||||
|
import org.idempiere.broadcast.BroadCastMsg;
|
||||||
|
import org.idempiere.broadcast.BroadCastUtil;
|
||||||
|
import org.idempiere.broadcast.BroadcastMsgUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Deepak Pansheriya
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class KillCurrentSession extends SvrProcess {
|
||||||
|
|
||||||
|
private int scndTimeout = 0;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void prepare() {
|
||||||
|
ProcessInfoParameter[] para = getParameter();
|
||||||
|
for (int i = 0; i < para.length; i++) {
|
||||||
|
String name = para[i].getParameterName();
|
||||||
|
if (para[i].getParameter() == null)
|
||||||
|
;
|
||||||
|
else if (name.equals("TimeOutInSeconds"))
|
||||||
|
scndTimeout = para[i].getParameterAsInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String doIt() throws Exception {
|
||||||
|
|
||||||
|
BroadCastMsg msg = new BroadCastMsg();
|
||||||
|
msg.setEventId(BroadCastUtil.EVENT_SESSION_TIMEOUT);
|
||||||
|
msg.setIntData(scndTimeout);
|
||||||
|
msg.setTarget(Integer.toString(getRecord_ID()));
|
||||||
|
BroadcastMsgUtil.pushToQueue(msg);
|
||||||
|
|
||||||
|
return "Session notified";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue