diff --git a/migration/360lts-release/oracle/862_1001002_MenuPortlet.sql b/migration/360lts-release/oracle/862_1001002_MenuPortlet.sql new file mode 100644 index 0000000000..fa844cdab2 --- /dev/null +++ b/migration/360lts-release/oracle/862_1001002_MenuPortlet.sql @@ -0,0 +1,359 @@ +-- Jul 30, 2012 5:47:12 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element (ColumnName,AD_Element_ID,EntityType,Name,Description,PrintName,AD_Element_UU,AD_Client_ID,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive) VALUES ('IsShowInDashboard',1000000,'U','Show in Dashboard','Show the dashlet in the dashboard','Show in Dashboard','7d368f1f-8e8c-41d6-b427-abd9b4853d8f',0,TO_DATE('2012-07-30 17:47:12','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2012-07-30 17:47:12','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y') +; + +-- Jul 30, 2012 5:47:12 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Name,Description,PrintName,PO_Name,PO_PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Name,t.Description,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 FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=1000000 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) +; + +-- Jul 30, 2012 5:47:33 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column (Version,AD_Table_ID,AD_Column_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,DefaultValue,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Client_ID) VALUES (0,50010,1000000,'U','Y','N','N',0,'N',1,'N',20,'N','N',1000000,'N','Y','d8dc950e-ddf5-4846-9cba-d7924dd08ece','N','Y','N','IsShowInDashboard','Show the dashlet in the dashboard','''Y''','Show in Dashboard','Y',100,TO_DATE('2012-07-30 17:47:33','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_DATE('2012-07-30 17:47:33','YYYY-MM-DD HH24:MI:SS'),100,0) +; + +-- Jul 30, 2012 5:47:33 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=1000000 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- Jul 30, 2012 5:47:39 PM SGT +-- Move the Menu to be a Portlet +ALTER TABLE PA_DashboardContent ADD IsShowInDashboard CHAR(1) DEFAULT 'Y' CHECK (IsShowInDashboard IN ('Y','N')) NOT NULL +; + +-- Jul 30, 2012 5:48:10 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,EntityType,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',50010,36,'N','N',60964,'Y',1000000,'N','D','PA_DashboardContent_UU','Y','N','fa330423-848e-4f6e-b94b-ca502f03c228',100,0,TO_DATE('2012-07-30 17:48:10','YYYY-MM-DD HH24:MI:SS'),0,100,TO_DATE('2012-07-30 17:48:10','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Jul 30, 2012 5:48:10 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000000 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Jul 30, 2012 5:48:10 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,EntityType,Description,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',50010,1,'N','N',1000000,'Y',1000001,'N','U','Show the dashlet in the dashboard','Show in Dashboard','Y','N','ced4be5c-cd78-44d4-8f84-561ceec749ce',100,0,TO_DATE('2012-07-30 17:48:10','YYYY-MM-DD HH24:MI:SS'),0,100,TO_DATE('2012-07-30 17:48:10','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Jul 30, 2012 5:48:10 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000001 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Jul 30, 2012 5:48:21 PM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=1000000 +; + +-- Jul 30, 2012 5:48:21 PM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=130,IsDisplayed='Y' WHERE AD_Field_ID=56504 +; + +-- Jul 30, 2012 5:48:21 PM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=140,IsDisplayed='Y' WHERE AD_Field_ID=1000001 +; + +-- Aug 2, 2012 10:50:25 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column (Version,AD_Table_ID,AD_Column_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Client_ID) VALUES (0,50010,1000001,'U','N','N','N',0,'N',10,'N',19,'N','N',117,'N','Y','b65e85c5-494a-450d-a495-d81612e63cd6','N','Y','N','AD_Process_ID','Process or Report','The Process field identifies a unique Process or Report in the system.','Process','Y',100,TO_DATE('2012-08-02 10:50:25','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_DATE('2012-08-02 10:50:25','YYYY-MM-DD HH24:MI:SS'),100,0) +; + +-- Aug 2, 2012 10:50:25 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=1000001 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- Aug 2, 2012 10:50:42 AM SGT +-- Move the Menu to be a Portlet +ALTER TABLE PA_DashboardContent ADD AD_Process_ID NUMBER(10) DEFAULT NULL +; + +-- Aug 2, 2012 10:51:45 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element (ColumnName,AD_Element_ID,EntityType,Name,Description,PrintName,AD_Element_UU,AD_Client_ID,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive) VALUES ('IsEmbedReportContent',1000001,'U','Embed Report Content','Embed report content into dashboard','Embed Report Content','9b2c09ce-ffbd-49db-bdcf-922fa14c89d7',0,TO_DATE('2012-08-02 10:51:45','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2012-08-02 10:51:45','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y') +; + +-- Aug 2, 2012 10:51:46 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Name,Description,PrintName,PO_Name,PO_PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Name,t.Description,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 FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=1000001 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) +; + +-- Aug 2, 2012 10:52:37 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column (Version,AD_Table_ID,AD_Column_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,DefaultValue,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Client_ID) VALUES (0,50010,1000002,'U','Y','N','N',0,'N',1,'N',20,'N','N',1000001,'N','Y','00f77d84-8488-45ae-b2c4-5560df00a01f','N','Y','N','IsEmbedReportContent','Embed report content into dashboard','N','Embed Report Content','Y',100,TO_DATE('2012-08-02 10:52:37','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_DATE('2012-08-02 10:52:37','YYYY-MM-DD HH24:MI:SS'),100,0) +; + +-- Aug 2, 2012 10:52:37 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=1000002 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- Aug 2, 2012 10:52:41 AM SGT +-- Move the Menu to be a Portlet +ALTER TABLE PA_DashboardContent ADD IsEmbedReportContent CHAR(1) DEFAULT 'N' CHECK (IsEmbedReportContent IN ('Y','N')) NOT NULL +; + +-- Aug 2, 2012 10:53:50 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element (ColumnName,AD_Element_ID,Help,EntityType,Name,Description,PrintName,AD_Element_UU,AD_Client_ID,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive) VALUES ('ProcessParameters',1000002,'A list of name value pair process parameter separated by comma','U','Process Parameters','Comma separated process parameter list','Process Parameters','ce4fe485-2380-42b6-9e42-62a6ddaadb92',0,TO_DATE('2012-08-02 10:53:50','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2012-08-02 10:53:50','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y') +; + +-- Aug 2, 2012 10:53:50 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Name,Description,PrintName,PO_Name,PO_PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Name,t.Description,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 FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=1000002 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) +; + +-- Aug 2, 2012 10:54:33 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column (Version,AD_Table_ID,AD_Column_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Client_ID) VALUES (0,50010,1000003,'U','N','N','N',0,'N',2000,'N',10,'N','N',1000002,'N','Y','07242c07-416a-4dec-8f0c-dab19d271d6d','N','Y','N','ProcessParameters','Comma separated process parameter list','A list of name value pair process parameter separated by comma','Process Parameters','Y',100,TO_DATE('2012-08-02 10:54:33','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_DATE('2012-08-02 10:54:33','YYYY-MM-DD HH24:MI:SS'),100,0) +; + +-- Aug 2, 2012 10:54:33 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=1000003 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- Aug 2, 2012 10:54:37 AM SGT +-- Move the Menu to be a Portlet +ALTER TABLE PA_DashboardContent ADD ProcessParameters NVARCHAR2(2000) DEFAULT NULL +; + +-- Aug 2, 2012 10:55:12 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,EntityType,Description,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',50010,1,'N','N',1000002,'Y',1000002,'N','U','Embed report content into dashboard','Embed Report Content','Y','N','c89622f5-06a4-4b36-8f4c-81b8f0487b21',100,0,TO_DATE('2012-08-02 10:55:12','YYYY-MM-DD HH24:MI:SS'),0,100,TO_DATE('2012-08-02 10:55:12','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Aug 2, 2012 10:55:12 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000002 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Aug 2, 2012 10:55:12 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,EntityType,Description,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',50010,10,'N','N',1000001,'Y',1000003,'N','The Process field identifies a unique Process or Report in the system.','U','Process or Report','Process','Y','N','58a3f72c-fff4-4209-8625-9b63d3e5f9be',100,0,TO_DATE('2012-08-02 10:55:12','YYYY-MM-DD HH24:MI:SS'),0,100,TO_DATE('2012-08-02 10:55:12','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Aug 2, 2012 10:55:12 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000003 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Aug 2, 2012 10:55:12 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,EntityType,Description,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',50010,2000,'N','N',1000003,'Y',1000004,'N','A list of name value pair process parameter separated by comma','U','Comma separated process parameter list','Process Parameters','Y','N','7baae861-ad87-44ec-b2d0-5c0c7e9b0f87',100,0,TO_DATE('2012-08-02 10:55:12','YYYY-MM-DD HH24:MI:SS'),0,100,TO_DATE('2012-08-02 10:55:12','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Aug 2, 2012 10:55:12 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000004 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Aug 2, 2012 10:55:35 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=150,IsDisplayed='Y' WHERE AD_Field_ID=1000003 +; + +-- Aug 2, 2012 10:55:35 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=160,IsDisplayed='Y' WHERE AD_Field_ID=1000002 +; + +-- Aug 2, 2012 10:55:35 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=170,IsDisplayed='Y' WHERE AD_Field_ID=1000004 +; + +-- Aug 2, 2012 10:56:20 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET IsSameLine='Y', DefaultValue='@AD_Process_ID@!0',Updated=TO_DATE('2012-08-02 10:56:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1000002 +; + +-- Aug 2, 2012 10:56:57 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET DefaultValue='@AD_Process_ID@!0&@IsEmbedReportContent@=''Y''',Updated=TO_DATE('2012-08-02 10:56:57','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1000004 +; + +-- Aug 2, 2012 4:58:46 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element (ColumnName,AD_Element_ID,EntityType,Name,Description,PrintName,AD_Element_UU,AD_Client_ID,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive) VALUES ('HeaderColor',1000003,'U','Header Color','Header color of calendar dashlet','Header Color','5eb8a795-bb75-4ab6-8e60-4b780e80b7bd',0,TO_DATE('2012-08-02 16:58:45','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2012-08-02 16:58:45','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y') +; + +-- Aug 2, 2012 4:58:46 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Name,Description,PrintName,PO_Name,PO_PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Name,t.Description,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 FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=1000003 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) +; + +-- Aug 2, 2012 4:59:03 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column (Version,AD_Table_ID,AD_Column_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Client_ID) VALUES (0,529,1000004,'U','N','N','N',0,'N',7,'N',10,'N','N',1000003,'N','Y','2da3cc0f-9db0-404f-ad1a-c306d6f65a9c','N','Y','N','HeaderColor','Header color of calendar dashlet','Header Color','Y',100,TO_DATE('2012-08-02 16:59:03','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_DATE('2012-08-02 16:59:03','YYYY-MM-DD HH24:MI:SS'),100,0) +; + +-- Aug 2, 2012 4:59:03 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=1000004 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- Aug 2, 2012 4:59:14 PM SGT +-- Move the Menu to be a Portlet +ALTER TABLE R_RequestType ADD HeaderColor NVARCHAR2(7) DEFAULT NULL +; + +-- Aug 2, 2012 4:59:45 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element (ColumnName,AD_Element_ID,EntityType,Name,Description,PrintName,AD_Element_UU,AD_Client_ID,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive) VALUES ('ContentColor',1000004,'U','Content Color','Content color of calendar dashlet','Content Color','b94231dd-8bda-46e3-8e5d-2b6753150549',0,TO_DATE('2012-08-02 16:59:45','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2012-08-02 16:59:45','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y') +; + +-- Aug 2, 2012 4:59:45 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Name,Description,PrintName,PO_Name,PO_PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Name,t.Description,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 FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=1000004 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) +; + +-- Aug 2, 2012 5:00:05 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column (Version,AD_Table_ID,AD_Column_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Client_ID) VALUES (0,529,1000005,'U','N','N','N',0,'N',7,'N',10,'N','N',1000004,'N','Y','63b8d845-33b8-4632-bbd8-b6caeee09c66','N','Y','N','ContentColor','Content color of calendar dashlet','Content Color','Y',100,TO_DATE('2012-08-02 17:00:05','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_DATE('2012-08-02 17:00:05','YYYY-MM-DD HH24:MI:SS'),100,0) +; + +-- Aug 2, 2012 5:00:05 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=1000005 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- Aug 2, 2012 5:00:09 PM SGT +-- Move the Menu to be a Portlet +ALTER TABLE R_RequestType ADD ContentColor NVARCHAR2(7) DEFAULT NULL +; + +-- Aug 2, 2012 5:00:26 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,EntityType,Description,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',437,7,'N','N',1000005,'Y',1000005,'N','U','Content color of calendar dashlet','Content Color','Y','N','fcf10a9f-a004-43d4-84a3-13c93590918e',100,0,TO_DATE('2012-08-02 17:00:26','YYYY-MM-DD HH24:MI:SS'),0,100,TO_DATE('2012-08-02 17:00:26','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Aug 2, 2012 5:00:26 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000005 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Aug 2, 2012 5:00:26 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,EntityType,Description,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',437,7,'N','N',1000004,'Y',1000006,'N','U','Header color of calendar dashlet','Header Color','Y','N','fd8cca24-1b80-4cfe-84fa-7826757b60f4',100,0,TO_DATE('2012-08-02 17:00:26','YYYY-MM-DD HH24:MI:SS'),0,100,TO_DATE('2012-08-02 17:00:26','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Aug 2, 2012 5:00:26 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000006 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Aug 2, 2012 5:00:26 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,EntityType,Description,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',437,1,'N','N',15805,'Y',1000007,'N','For cross document search, the document can be indexed for faster search (Container, Document Type, Request Type)','D','Index the document for the internal search engine','Indexed','Y','N','6b54a3cb-2e86-407c-88d4-3f64ceea240b',100,0,TO_DATE('2012-08-02 17:00:26','YYYY-MM-DD HH24:MI:SS'),0,100,TO_DATE('2012-08-02 17:00:26','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Aug 2, 2012 5:00:26 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000007 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Aug 2, 2012 5:00:26 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,EntityType,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',437,36,'N','N',61027,'Y',1000008,'N','D','R_RequestType_UU','Y','N','f75af72f-116c-4780-b38b-323cf5dd9428',100,0,TO_DATE('2012-08-02 17:00:26','YYYY-MM-DD HH24:MI:SS'),0,100,TO_DATE('2012-08-02 17:00:26','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Aug 2, 2012 5:00:26 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000008 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Aug 2, 2012 5:00:38 PM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=1000007 +; + +-- Aug 2, 2012 5:00:38 PM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=1000008 +; + +-- Aug 2, 2012 5:00:38 PM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=170,IsDisplayed='Y' WHERE AD_Field_ID=1000006 +; + +-- Aug 2, 2012 5:00:38 PM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=180,IsDisplayed='Y' WHERE AD_Field_ID=1000005 +; + +-- Aug 2, 2012 5:00:49 PM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET IsSameLine='Y',Updated=TO_DATE('2012-08-02 17:00:49','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1000005 +; + +-- Aug 3, 2012 10:41:17 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column (Version,AD_Table_ID,AD_Column_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,DefaultValue,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Client_ID) VALUES (0,50010,1000006,'U','Y','N','N',0,'N',1,'N',20,'N','N',53336,'N','Y','944e6718-0fe6-4d11-a874-d84987523f63','N','Y','N','IsCollapsedByDefault','Flag to set the initial state of collapsible field group.','N','Collapsed By Default','Y',100,TO_DATE('2012-08-03 10:41:17','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_DATE('2012-08-03 10:41:17','YYYY-MM-DD HH24:MI:SS'),100,0) +; + +-- Aug 3, 2012 10:41:17 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=1000006 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- Aug 3, 2012 10:41:25 AM SGT +-- Move the Menu to be a Portlet +ALTER TABLE PA_DashboardContent ADD IsCollapsedByDefault CHAR(1) DEFAULT 'N' CHECK (IsCollapsedByDefault IN ('Y','N')) NOT NULL +; + +-- Aug 3, 2012 10:42:03 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,EntityType,Description,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',50010,1,'N','N',1000006,'Y',1000009,'N','U','Flag to set the initial state of collapsible field group.','Collapsed By Default','Y','N','1953b83a-94b5-4fd7-98b8-d8b4d7b9e718',100,0,TO_DATE('2012-08-03 10:42:02','YYYY-MM-DD HH24:MI:SS'),0,100,TO_DATE('2012-08-03 10:42:02','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Aug 3, 2012 10:42:03 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000009 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Aug 3, 2012 10:42:17 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=140,IsDisplayed='Y' WHERE AD_Field_ID=1000009 +; + +-- Aug 3, 2012 10:42:17 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=150,IsDisplayed='Y' WHERE AD_Field_ID=1000001 +; + +-- Aug 3, 2012 10:42:17 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=160,IsDisplayed='Y' WHERE AD_Field_ID=1000003 +; + +-- Aug 3, 2012 10:42:17 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=170,IsDisplayed='Y' WHERE AD_Field_ID=1000002 +; + +-- Aug 3, 2012 10:42:17 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=180,IsDisplayed='Y' WHERE AD_Field_ID=1000004 +; + +-- Aug 3, 2012 10:42:41 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET IsSameLine='Y',Updated=TO_DATE('2012-08-03 10:42:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1000009 +; + +-- Aug 3, 2012 2:49:53 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO PA_DashboardContent (Line,PA_DashboardContent_ID,ZulFilePath,ColumnNo,IsCollapsible,GoalDisplay,Description,Name,AD_Org_ID,Created,CreatedBy,Updated,AD_Client_ID,UpdatedBy,IsActive,PA_DashboardContent_UU,IsShowInDashboard,IsEmbedReportContent,IsCollapsedByDefault) VALUES (0,1000006,'/zul/menuTree.zul',0,'Y','T','Menu','Menu',0,TO_DATE('2012-08-03 14:49:53','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2012-08-03 14:49:53','YYYY-MM-DD HH24:MI:SS'),0,100,'Y','a0c98b7a-56d5-44d5-850b-d969a5abb65f','N','N','N') +; + +-- Aug 3, 2012 2:49:53 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO PA_DashboardContent_Trl (AD_Language,PA_DashboardContent_ID, Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.PA_DashboardContent_ID, t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, PA_DashboardContent t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.PA_DashboardContent_ID=1000006 AND NOT EXISTS (SELECT * FROM PA_DashboardContent_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.PA_DashboardContent_ID=t.PA_DashboardContent_ID) +; \ No newline at end of file diff --git a/migration/360lts-release/postgresql/862_1001002_MenuPortlet.sql b/migration/360lts-release/postgresql/862_1001002_MenuPortlet.sql new file mode 100644 index 0000000000..1c6a58ee48 --- /dev/null +++ b/migration/360lts-release/postgresql/862_1001002_MenuPortlet.sql @@ -0,0 +1,359 @@ +-- Jul 30, 2012 5:47:12 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element (ColumnName,AD_Element_ID,EntityType,Name,Description,PrintName,AD_Element_UU,AD_Client_ID,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive) VALUES ('IsShowInDashboard',1000000,'U','Show in Dashboard','Show the dashlet in the dashboard','Show in Dashboard','7d368f1f-8e8c-41d6-b427-abd9b4853d8f',0,TO_TIMESTAMP('2012-07-30 17:47:12','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2012-07-30 17:47:12','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y') +; + +-- Jul 30, 2012 5:47:12 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Name,Description,PrintName,PO_Name,PO_PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Name,t.Description,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 FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=1000000 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) +; + +-- Jul 30, 2012 5:47:33 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column (Version,AD_Table_ID,AD_Column_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,DefaultValue,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Client_ID) VALUES (0,50010,1000000,'U','Y','N','N',0,'N',1,'N',20,'N','N',1000000,'N','Y','d8dc950e-ddf5-4846-9cba-d7924dd08ece','N','Y','N','IsShowInDashboard','Show the dashlet in the dashboard','''Y''','Show in Dashboard','Y',100,TO_TIMESTAMP('2012-07-30 17:47:33','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_TIMESTAMP('2012-07-30 17:47:33','YYYY-MM-DD HH24:MI:SS'),100,0) +; + +-- Jul 30, 2012 5:47:33 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=1000000 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- Jul 30, 2012 5:47:39 PM SGT +-- Move the Menu to be a Portlet +ALTER TABLE PA_DashboardContent ADD COLUMN IsShowInDashboard CHAR(1) DEFAULT 'Y' CHECK (IsShowInDashboard IN ('Y','N')) NOT NULL +; + +-- Jul 30, 2012 5:48:10 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,EntityType,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',50010,36,'N','N',60964,'Y',1000000,'N','D','PA_DashboardContent_UU','Y','N','fa330423-848e-4f6e-b94b-ca502f03c228',100,0,TO_TIMESTAMP('2012-07-30 17:48:10','YYYY-MM-DD HH24:MI:SS'),0,100,TO_TIMESTAMP('2012-07-30 17:48:10','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Jul 30, 2012 5:48:10 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000000 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Jul 30, 2012 5:48:10 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,EntityType,Description,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',50010,1,'N','N',1000000,'Y',1000001,'N','U','Show the dashlet in the dashboard','Show in Dashboard','Y','N','ced4be5c-cd78-44d4-8f84-561ceec749ce',100,0,TO_TIMESTAMP('2012-07-30 17:48:10','YYYY-MM-DD HH24:MI:SS'),0,100,TO_TIMESTAMP('2012-07-30 17:48:10','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Jul 30, 2012 5:48:10 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000001 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Jul 30, 2012 5:48:21 PM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=1000000 +; + +-- Jul 30, 2012 5:48:21 PM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=130,IsDisplayed='Y' WHERE AD_Field_ID=56504 +; + +-- Jul 30, 2012 5:48:21 PM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=140,IsDisplayed='Y' WHERE AD_Field_ID=1000001 +; + +-- Aug 2, 2012 10:50:25 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column (Version,AD_Table_ID,AD_Column_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Client_ID) VALUES (0,50010,1000001,'U','N','N','N',0,'N',10,'N',19,'N','N',117,'N','Y','b65e85c5-494a-450d-a495-d81612e63cd6','N','Y','N','AD_Process_ID','Process or Report','The Process field identifies a unique Process or Report in the system.','Process','Y',100,TO_TIMESTAMP('2012-08-02 10:50:25','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_TIMESTAMP('2012-08-02 10:50:25','YYYY-MM-DD HH24:MI:SS'),100,0) +; + +-- Aug 2, 2012 10:50:25 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=1000001 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- Aug 2, 2012 10:50:42 AM SGT +-- Move the Menu to be a Portlet +ALTER TABLE PA_DashboardContent ADD COLUMN AD_Process_ID NUMERIC(10) DEFAULT NULL +; + +-- Aug 2, 2012 10:51:45 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element (ColumnName,AD_Element_ID,EntityType,Name,Description,PrintName,AD_Element_UU,AD_Client_ID,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive) VALUES ('IsEmbedReportContent',1000001,'U','Embed Report Content','Embed report content into dashboard','Embed Report Content','9b2c09ce-ffbd-49db-bdcf-922fa14c89d7',0,TO_TIMESTAMP('2012-08-02 10:51:45','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2012-08-02 10:51:45','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y') +; + +-- Aug 2, 2012 10:51:46 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Name,Description,PrintName,PO_Name,PO_PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Name,t.Description,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 FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=1000001 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) +; + +-- Aug 2, 2012 10:52:37 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column (Version,AD_Table_ID,AD_Column_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,DefaultValue,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Client_ID) VALUES (0,50010,1000002,'U','Y','N','N',0,'N',1,'N',20,'N','N',1000001,'N','Y','00f77d84-8488-45ae-b2c4-5560df00a01f','N','Y','N','IsEmbedReportContent','Embed report content into dashboard','N','Embed Report Content','Y',100,TO_TIMESTAMP('2012-08-02 10:52:37','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_TIMESTAMP('2012-08-02 10:52:37','YYYY-MM-DD HH24:MI:SS'),100,0) +; + +-- Aug 2, 2012 10:52:37 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=1000002 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- Aug 2, 2012 10:52:41 AM SGT +-- Move the Menu to be a Portlet +ALTER TABLE PA_DashboardContent ADD COLUMN IsEmbedReportContent CHAR(1) DEFAULT 'N' CHECK (IsEmbedReportContent IN ('Y','N')) NOT NULL +; + +-- Aug 2, 2012 10:53:50 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element (ColumnName,AD_Element_ID,Help,EntityType,Name,Description,PrintName,AD_Element_UU,AD_Client_ID,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive) VALUES ('ProcessParameters',1000002,'A list of name value pair process parameter separated by comma','U','Process Parameters','Comma separated process parameter list','Process Parameters','ce4fe485-2380-42b6-9e42-62a6ddaadb92',0,TO_TIMESTAMP('2012-08-02 10:53:50','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2012-08-02 10:53:50','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y') +; + +-- Aug 2, 2012 10:53:50 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Name,Description,PrintName,PO_Name,PO_PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Name,t.Description,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 FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=1000002 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) +; + +-- Aug 2, 2012 10:54:33 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column (Version,AD_Table_ID,AD_Column_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Client_ID) VALUES (0,50010,1000003,'U','N','N','N',0,'N',2000,'N',10,'N','N',1000002,'N','Y','07242c07-416a-4dec-8f0c-dab19d271d6d','N','Y','N','ProcessParameters','Comma separated process parameter list','A list of name value pair process parameter separated by comma','Process Parameters','Y',100,TO_TIMESTAMP('2012-08-02 10:54:33','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_TIMESTAMP('2012-08-02 10:54:33','YYYY-MM-DD HH24:MI:SS'),100,0) +; + +-- Aug 2, 2012 10:54:33 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=1000003 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- Aug 2, 2012 10:54:37 AM SGT +-- Move the Menu to be a Portlet +ALTER TABLE PA_DashboardContent ADD COLUMN ProcessParameters VARCHAR(2000) DEFAULT NULL +; + +-- Aug 2, 2012 10:55:12 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,EntityType,Description,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',50010,1,'N','N',1000002,'Y',1000002,'N','U','Embed report content into dashboard','Embed Report Content','Y','N','c89622f5-06a4-4b36-8f4c-81b8f0487b21',100,0,TO_TIMESTAMP('2012-08-02 10:55:12','YYYY-MM-DD HH24:MI:SS'),0,100,TO_TIMESTAMP('2012-08-02 10:55:12','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Aug 2, 2012 10:55:12 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000002 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Aug 2, 2012 10:55:12 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,EntityType,Description,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',50010,10,'N','N',1000001,'Y',1000003,'N','The Process field identifies a unique Process or Report in the system.','U','Process or Report','Process','Y','N','58a3f72c-fff4-4209-8625-9b63d3e5f9be',100,0,TO_TIMESTAMP('2012-08-02 10:55:12','YYYY-MM-DD HH24:MI:SS'),0,100,TO_TIMESTAMP('2012-08-02 10:55:12','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Aug 2, 2012 10:55:12 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000003 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Aug 2, 2012 10:55:12 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,EntityType,Description,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',50010,2000,'N','N',1000003,'Y',1000004,'N','A list of name value pair process parameter separated by comma','U','Comma separated process parameter list','Process Parameters','Y','N','7baae861-ad87-44ec-b2d0-5c0c7e9b0f87',100,0,TO_TIMESTAMP('2012-08-02 10:55:12','YYYY-MM-DD HH24:MI:SS'),0,100,TO_TIMESTAMP('2012-08-02 10:55:12','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Aug 2, 2012 10:55:12 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000004 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Aug 2, 2012 10:55:35 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=150,IsDisplayed='Y' WHERE AD_Field_ID=1000003 +; + +-- Aug 2, 2012 10:55:35 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=160,IsDisplayed='Y' WHERE AD_Field_ID=1000002 +; + +-- Aug 2, 2012 10:55:35 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=170,IsDisplayed='Y' WHERE AD_Field_ID=1000004 +; + +-- Aug 2, 2012 10:56:20 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET IsSameLine='Y', DefaultValue='@AD_Process_ID@!0',Updated=TO_TIMESTAMP('2012-08-02 10:56:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1000002 +; + +-- Aug 2, 2012 10:56:57 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET DefaultValue='@AD_Process_ID@!0&@IsEmbedReportContent@=''Y''',Updated=TO_TIMESTAMP('2012-08-02 10:56:57','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1000004 +; + +-- Aug 2, 2012 4:58:46 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element (ColumnName,AD_Element_ID,EntityType,Name,Description,PrintName,AD_Element_UU,AD_Client_ID,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive) VALUES ('HeaderColor',1000003,'U','Header Color','Header color of calendar dashlet','Header Color','5eb8a795-bb75-4ab6-8e60-4b780e80b7bd',0,TO_TIMESTAMP('2012-08-02 16:58:45','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2012-08-02 16:58:45','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y') +; + +-- Aug 2, 2012 4:58:46 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Name,Description,PrintName,PO_Name,PO_PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Name,t.Description,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 FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=1000003 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) +; + +-- Aug 2, 2012 4:59:03 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column (Version,AD_Table_ID,AD_Column_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Client_ID) VALUES (0,529,1000004,'U','N','N','N',0,'N',7,'N',10,'N','N',1000003,'N','Y','2da3cc0f-9db0-404f-ad1a-c306d6f65a9c','N','Y','N','HeaderColor','Header color of calendar dashlet','Header Color','Y',100,TO_TIMESTAMP('2012-08-02 16:59:03','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_TIMESTAMP('2012-08-02 16:59:03','YYYY-MM-DD HH24:MI:SS'),100,0) +; + +-- Aug 2, 2012 4:59:03 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=1000004 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- Aug 2, 2012 4:59:14 PM SGT +-- Move the Menu to be a Portlet +ALTER TABLE R_RequestType ADD COLUMN HeaderColor VARCHAR(7) DEFAULT NULL +; + +-- Aug 2, 2012 4:59:45 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element (ColumnName,AD_Element_ID,EntityType,Name,Description,PrintName,AD_Element_UU,AD_Client_ID,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive) VALUES ('ContentColor',1000004,'U','Content Color','Content color of calendar dashlet','Content Color','b94231dd-8bda-46e3-8e5d-2b6753150549',0,TO_TIMESTAMP('2012-08-02 16:59:45','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2012-08-02 16:59:45','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y') +; + +-- Aug 2, 2012 4:59:45 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Name,Description,PrintName,PO_Name,PO_PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Name,t.Description,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 FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=1000004 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) +; + +-- Aug 2, 2012 5:00:05 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column (Version,AD_Table_ID,AD_Column_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Client_ID) VALUES (0,529,1000005,'U','N','N','N',0,'N',7,'N',10,'N','N',1000004,'N','Y','63b8d845-33b8-4632-bbd8-b6caeee09c66','N','Y','N','ContentColor','Content color of calendar dashlet','Content Color','Y',100,TO_TIMESTAMP('2012-08-02 17:00:05','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_TIMESTAMP('2012-08-02 17:00:05','YYYY-MM-DD HH24:MI:SS'),100,0) +; + +-- Aug 2, 2012 5:00:05 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=1000005 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- Aug 2, 2012 5:00:09 PM SGT +-- Move the Menu to be a Portlet +ALTER TABLE R_RequestType ADD COLUMN ContentColor VARCHAR(7) DEFAULT NULL +; + +-- Aug 2, 2012 5:00:26 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,EntityType,Description,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',437,7,'N','N',1000005,'Y',1000005,'N','U','Content color of calendar dashlet','Content Color','Y','N','fcf10a9f-a004-43d4-84a3-13c93590918e',100,0,TO_TIMESTAMP('2012-08-02 17:00:26','YYYY-MM-DD HH24:MI:SS'),0,100,TO_TIMESTAMP('2012-08-02 17:00:26','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Aug 2, 2012 5:00:26 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000005 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Aug 2, 2012 5:00:26 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,EntityType,Description,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',437,7,'N','N',1000004,'Y',1000006,'N','U','Header color of calendar dashlet','Header Color','Y','N','fd8cca24-1b80-4cfe-84fa-7826757b60f4',100,0,TO_TIMESTAMP('2012-08-02 17:00:26','YYYY-MM-DD HH24:MI:SS'),0,100,TO_TIMESTAMP('2012-08-02 17:00:26','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Aug 2, 2012 5:00:26 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000006 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Aug 2, 2012 5:00:26 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,EntityType,Description,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',437,1,'N','N',15805,'Y',1000007,'N','For cross document search, the document can be indexed for faster search (Container, Document Type, Request Type)','D','Index the document for the internal search engine','Indexed','Y','N','6b54a3cb-2e86-407c-88d4-3f64ceea240b',100,0,TO_TIMESTAMP('2012-08-02 17:00:26','YYYY-MM-DD HH24:MI:SS'),0,100,TO_TIMESTAMP('2012-08-02 17:00:26','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Aug 2, 2012 5:00:26 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000007 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Aug 2, 2012 5:00:26 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,EntityType,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',437,36,'N','N',61027,'Y',1000008,'N','D','R_RequestType_UU','Y','N','f75af72f-116c-4780-b38b-323cf5dd9428',100,0,TO_TIMESTAMP('2012-08-02 17:00:26','YYYY-MM-DD HH24:MI:SS'),0,100,TO_TIMESTAMP('2012-08-02 17:00:26','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Aug 2, 2012 5:00:26 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000008 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Aug 2, 2012 5:00:38 PM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=1000007 +; + +-- Aug 2, 2012 5:00:38 PM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=1000008 +; + +-- Aug 2, 2012 5:00:38 PM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=170,IsDisplayed='Y' WHERE AD_Field_ID=1000006 +; + +-- Aug 2, 2012 5:00:38 PM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=180,IsDisplayed='Y' WHERE AD_Field_ID=1000005 +; + +-- Aug 2, 2012 5:00:49 PM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET IsSameLine='Y',Updated=TO_TIMESTAMP('2012-08-02 17:00:49','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1000005 +; + +-- Aug 3, 2012 10:41:17 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column (Version,AD_Table_ID,AD_Column_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,DefaultValue,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Client_ID) VALUES (0,50010,1000006,'U','Y','N','N',0,'N',1,'N',20,'N','N',53336,'N','Y','944e6718-0fe6-4d11-a874-d84987523f63','N','Y','N','IsCollapsedByDefault','Flag to set the initial state of collapsible field group.','N','Collapsed By Default','Y',100,TO_TIMESTAMP('2012-08-03 10:41:17','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_TIMESTAMP('2012-08-03 10:41:17','YYYY-MM-DD HH24:MI:SS'),100,0) +; + +-- Aug 3, 2012 10:41:17 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=1000006 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- Aug 3, 2012 10:41:25 AM SGT +-- Move the Menu to be a Portlet +ALTER TABLE PA_DashboardContent ADD COLUMN IsCollapsedByDefault CHAR(1) DEFAULT 'N' CHECK (IsCollapsedByDefault IN ('Y','N')) NOT NULL +; + +-- Aug 3, 2012 10:42:03 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,EntityType,Description,Name,IsDisplayed,IsFieldOnly,AD_Field_UU,UpdatedBy,AD_Org_ID,Created,AD_Client_ID,CreatedBy,Updated,IsActive) VALUES ('N',50010,1,'N','N',1000006,'Y',1000009,'N','U','Flag to set the initial state of collapsible field group.','Collapsed By Default','Y','N','1953b83a-94b5-4fd7-98b8-d8b4d7b9e718',100,0,TO_TIMESTAMP('2012-08-03 10:42:02','YYYY-MM-DD HH24:MI:SS'),0,100,TO_TIMESTAMP('2012-08-03 10:42:02','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Aug 3, 2012 10:42:03 AM SGT +-- Move the Menu to be a Portlet +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=1000009 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Aug 3, 2012 10:42:17 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=140,IsDisplayed='Y' WHERE AD_Field_ID=1000009 +; + +-- Aug 3, 2012 10:42:17 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=150,IsDisplayed='Y' WHERE AD_Field_ID=1000001 +; + +-- Aug 3, 2012 10:42:17 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=160,IsDisplayed='Y' WHERE AD_Field_ID=1000003 +; + +-- Aug 3, 2012 10:42:17 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=170,IsDisplayed='Y' WHERE AD_Field_ID=1000002 +; + +-- Aug 3, 2012 10:42:17 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET SeqNo=180,IsDisplayed='Y' WHERE AD_Field_ID=1000004 +; + +-- Aug 3, 2012 10:42:41 AM SGT +-- Move the Menu to be a Portlet +UPDATE AD_Field SET IsSameLine='Y',Updated=TO_TIMESTAMP('2012-08-03 10:42:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1000009 +; + +-- Aug 3, 2012 2:49:53 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO PA_DashboardContent (Line,PA_DashboardContent_ID,ZulFilePath,ColumnNo,IsCollapsible,GoalDisplay,Description,Name,AD_Org_ID,Created,CreatedBy,Updated,AD_Client_ID,UpdatedBy,IsActive,PA_DashboardContent_UU,IsShowInDashboard,IsEmbedReportContent,IsCollapsedByDefault) VALUES (0,1000006,'/zul/menuTree.zul',0,'Y','T','Menu','Menu',0,TO_TIMESTAMP('2012-08-03 14:49:53','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2012-08-03 14:49:53','YYYY-MM-DD HH24:MI:SS'),0,100,'Y','a0c98b7a-56d5-44d5-850b-d969a5abb65f','N','N','N') +; + +-- Aug 3, 2012 2:49:53 PM SGT +-- Move the Menu to be a Portlet +INSERT INTO PA_DashboardContent_Trl (AD_Language,PA_DashboardContent_ID, Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.PA_DashboardContent_ID, t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, PA_DashboardContent t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.PA_DashboardContent_ID=1000006 AND NOT EXISTS (SELECT * FROM PA_DashboardContent_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.PA_DashboardContent_ID=t.PA_DashboardContent_ID) +; \ No newline at end of file diff --git a/org.adempiere.base/src/org/compiere/model/I_PA_DashboardContent.java b/org.adempiere.base/src/org/compiere/model/I_PA_DashboardContent.java index afd4a9ed29..b45fa4d4bf 100644 --- a/org.adempiere.base/src/org/compiere/model/I_PA_DashboardContent.java +++ b/org.adempiere.base/src/org/compiere/model/I_PA_DashboardContent.java @@ -62,6 +62,21 @@ public interface I_PA_DashboardContent */ public int getAD_Org_ID(); + /** Column name AD_Process_ID */ + public static final String COLUMNNAME_AD_Process_ID = "AD_Process_ID"; + + /** Set Process. + * Process or Report + */ + public void setAD_Process_ID (int AD_Process_ID); + + /** Get Process. + * Process or Report + */ + public int getAD_Process_ID(); + + public org.compiere.model.I_AD_Process getAD_Process() throws RuntimeException; + /** Column name AD_Window_ID */ public static final String COLUMNNAME_AD_Window_ID = "AD_Window_ID"; @@ -75,7 +90,7 @@ public interface I_PA_DashboardContent */ public int getAD_Window_ID(); - public I_AD_Window getAD_Window() throws RuntimeException; + public org.compiere.model.I_AD_Window getAD_Window() throws RuntimeException; /** Column name ColumnNo */ public static final String COLUMNNAME_ColumnNo = "ColumnNo"; @@ -154,6 +169,19 @@ public interface I_PA_DashboardContent */ public boolean isActive(); + /** Column name IsCollapsedByDefault */ + public static final String COLUMNNAME_IsCollapsedByDefault = "IsCollapsedByDefault"; + + /** Set Collapsed By Default. + * Flag to set the initial state of collapsible field group. + */ + public void setIsCollapsedByDefault (boolean IsCollapsedByDefault); + + /** Get Collapsed By Default. + * Flag to set the initial state of collapsible field group. + */ + public boolean isCollapsedByDefault(); + /** Column name IsCollapsible */ public static final String COLUMNNAME_IsCollapsible = "IsCollapsible"; @@ -167,6 +195,32 @@ public interface I_PA_DashboardContent */ public boolean isCollapsible(); + /** Column name IsEmbedReportContent */ + public static final String COLUMNNAME_IsEmbedReportContent = "IsEmbedReportContent"; + + /** Set Embed Report Content. + * Embed report content into dashboard + */ + public void setIsEmbedReportContent (boolean IsEmbedReportContent); + + /** Get Embed Report Content. + * Embed report content into dashboard + */ + public boolean isEmbedReportContent(); + + /** Column name IsShowInDashboard */ + public static final String COLUMNNAME_IsShowInDashboard = "IsShowInDashboard"; + + /** Set Show in Dashboard. + * Show the dashlet in the dashboard + */ + public void setIsShowInDashboard (boolean IsShowInDashboard); + + /** Get Show in Dashboard. + * Show the dashlet in the dashboard + */ + public boolean isShowInDashboard(); + /** Column name Line */ public static final String COLUMNNAME_Line = "Line"; @@ -196,12 +250,21 @@ public interface I_PA_DashboardContent /** Column name PA_DashboardContent_ID */ public static final String COLUMNNAME_PA_DashboardContent_ID = "PA_DashboardContent_ID"; - /** Set PA_DashboardContent_ID */ + /** Set Dashboard Content */ public void setPA_DashboardContent_ID (int PA_DashboardContent_ID); - /** Get PA_DashboardContent_ID */ + /** Get Dashboard Content */ public int getPA_DashboardContent_ID(); + /** Column name PA_DashboardContent_UU */ + public static final String COLUMNNAME_PA_DashboardContent_UU = "PA_DashboardContent_UU"; + + /** Set PA_DashboardContent_UU */ + public void setPA_DashboardContent_UU (String PA_DashboardContent_UU); + + /** Get PA_DashboardContent_UU */ + public String getPA_DashboardContent_UU(); + /** Column name PA_Goal_ID */ public static final String COLUMNNAME_PA_Goal_ID = "PA_Goal_ID"; @@ -215,7 +278,20 @@ public interface I_PA_DashboardContent */ public int getPA_Goal_ID(); - public I_PA_Goal getPA_Goal() throws RuntimeException; + public org.compiere.model.I_PA_Goal getPA_Goal() throws RuntimeException; + + /** Column name ProcessParameters */ + public static final String COLUMNNAME_ProcessParameters = "ProcessParameters"; + + /** Set Process Parameters. + * Comma separated process parameter list + */ + public void setProcessParameters (String ProcessParameters); + + /** Get Process Parameters. + * Comma separated process parameter list + */ + public String getProcessParameters(); /** Column name Updated */ public static final String COLUMNNAME_Updated = "Updated"; diff --git a/org.adempiere.base/src/org/compiere/model/I_R_RequestType.java b/org.adempiere.base/src/org/compiere/model/I_R_RequestType.java index b04bbc220d..013d137317 100644 --- a/org.adempiere.base/src/org/compiere/model/I_R_RequestType.java +++ b/org.adempiere.base/src/org/compiere/model/I_R_RequestType.java @@ -88,6 +88,19 @@ public interface I_R_RequestType */ public String getConfidentialType(); + /** Column name ContentColor */ + public static final String COLUMNNAME_ContentColor = "ContentColor"; + + /** Set Content Color. + * Content color of calendar dashlet + */ + public void setContentColor (String ContentColor); + + /** Get Content Color. + * Content color of calendar dashlet + */ + public String getContentColor(); + /** Column name Created */ public static final String COLUMNNAME_Created = "Created"; @@ -130,6 +143,19 @@ public interface I_R_RequestType */ public int getDueDateTolerance(); + /** Column name HeaderColor */ + public static final String COLUMNNAME_HeaderColor = "HeaderColor"; + + /** Set Header Color. + * Header color of calendar dashlet + */ + public void setHeaderColor (String HeaderColor); + + /** Get Header Color. + * Header color of calendar dashlet + */ + public String getHeaderColor(); + /** Column name IsActive */ public static final String COLUMNNAME_IsActive = "IsActive"; @@ -273,6 +299,15 @@ public interface I_R_RequestType */ public int getR_RequestType_ID(); + /** Column name R_RequestType_UU */ + public static final String COLUMNNAME_R_RequestType_UU = "R_RequestType_UU"; + + /** Set R_RequestType_UU */ + public void setR_RequestType_UU (String R_RequestType_UU); + + /** Get R_RequestType_UU */ + public String getR_RequestType_UU(); + /** Column name R_StatusCategory_ID */ public static final String COLUMNNAME_R_StatusCategory_ID = "R_StatusCategory_ID"; @@ -286,7 +321,7 @@ public interface I_R_RequestType */ public int getR_StatusCategory_ID(); - public I_R_StatusCategory getR_StatusCategory() throws RuntimeException; + public org.compiere.model.I_R_StatusCategory getR_StatusCategory() throws RuntimeException; /** Column name Updated */ public static final String COLUMNNAME_Updated = "Updated"; diff --git a/org.adempiere.base/src/org/compiere/model/MDashboardContent.java b/org.adempiere.base/src/org/compiere/model/MDashboardContent.java index 688bd3470c..3de67cb2b5 100644 --- a/org.adempiere.base/src/org/compiere/model/MDashboardContent.java +++ b/org.adempiere.base/src/org/compiere/model/MDashboardContent.java @@ -20,22 +20,23 @@ public class MDashboardContent extends X_PA_DashboardContent */ private static final long serialVersionUID = 5425307033413466516L; - public static int getForSessionColumnCount() + public static int getForSessionColumnCount(boolean isShowInDashboard) { - int noOfCols = getForSessionQuery().aggregate("DISTINCT "+COLUMNNAME_ColumnNo, Query.AGGREGATE_COUNT, Integer.class); + int noOfCols = getForSessionQuery(isShowInDashboard).aggregate("DISTINCT "+COLUMNNAME_ColumnNo, Query.AGGREGATE_COUNT, Integer.class); return noOfCols; } - public static MDashboardContent[] getForSession() + public static MDashboardContent[] getForSession(boolean isShowInDashboard) { - List list = getForSessionQuery().list(); + List list = getForSessionQuery(isShowInDashboard).list(); return list.toArray(new MDashboardContent[list.size()]); } - public static Query getForSessionQuery() + public static Query getForSessionQuery(boolean isShowInDashboard) { Properties ctx = Env.getCtx(); - return new Query(ctx, Table_Name, null, null) + return new Query(ctx, Table_Name, COLUMNNAME_IsShowInDashboard+"=?", null) + .setParameters(isShowInDashboard) .setOnlyActiveRecords(true) .setApplyAccessFilter(true, false) .setOrderBy(COLUMNNAME_ColumnNo+","+COLUMNNAME_AD_Client_ID+","+COLUMNNAME_Line); diff --git a/org.adempiere.base/src/org/compiere/model/X_PA_DashboardContent.java b/org.adempiere.base/src/org/compiere/model/X_PA_DashboardContent.java index 80e01e3b0a..4a90d283bb 100644 --- a/org.adempiere.base/src/org/compiere/model/X_PA_DashboardContent.java +++ b/org.adempiere.base/src/org/compiere/model/X_PA_DashboardContent.java @@ -32,7 +32,7 @@ public class X_PA_DashboardContent extends PO implements I_PA_DashboardContent, /** * */ - private static final long serialVersionUID = 20100614L; + private static final long serialVersionUID = 20120803L; /** Standard Constructor */ public X_PA_DashboardContent (Properties ctx, int PA_DashboardContent_ID, String trxName) @@ -40,8 +40,14 @@ public class X_PA_DashboardContent extends PO implements I_PA_DashboardContent, super (ctx, PA_DashboardContent_ID, trxName); /** if (PA_DashboardContent_ID == 0) { + setIsCollapsedByDefault (false); +// N setIsCollapsible (true); // Y + setIsEmbedReportContent (false); +// N + setIsShowInDashboard (true); +// 'Y' setName (null); setPA_DashboardContent_ID (0); } */ @@ -75,9 +81,37 @@ public class X_PA_DashboardContent extends PO implements I_PA_DashboardContent, return sb.toString(); } - public I_AD_Window getAD_Window() throws RuntimeException + public org.compiere.model.I_AD_Process getAD_Process() throws RuntimeException { - return (I_AD_Window)MTable.get(getCtx(), I_AD_Window.Table_Name) + return (org.compiere.model.I_AD_Process)MTable.get(getCtx(), org.compiere.model.I_AD_Process.Table_Name) + .getPO(getAD_Process_ID(), get_TrxName()); } + + /** Set Process. + @param AD_Process_ID + Process or Report + */ + public void setAD_Process_ID (int AD_Process_ID) + { + if (AD_Process_ID < 1) + set_Value (COLUMNNAME_AD_Process_ID, null); + else + set_Value (COLUMNNAME_AD_Process_ID, Integer.valueOf(AD_Process_ID)); + } + + /** Get Process. + @return Process or Report + */ + public int getAD_Process_ID () + { + Integer ii = (Integer)get_Value(COLUMNNAME_AD_Process_ID); + if (ii == null) + return 0; + return ii.intValue(); + } + + public org.compiere.model.I_AD_Window getAD_Window() throws RuntimeException + { + return (org.compiere.model.I_AD_Window)MTable.get(getCtx(), org.compiere.model.I_AD_Window.Table_Name) .getPO(getAD_Window_ID(), get_TrxName()); } /** Set Window. @@ -178,6 +212,30 @@ public class X_PA_DashboardContent extends PO implements I_PA_DashboardContent, return (String)get_Value(COLUMNNAME_HTML); } + /** Set Collapsed By Default. + @param IsCollapsedByDefault + Flag to set the initial state of collapsible field group. + */ + public void setIsCollapsedByDefault (boolean IsCollapsedByDefault) + { + set_Value (COLUMNNAME_IsCollapsedByDefault, Boolean.valueOf(IsCollapsedByDefault)); + } + + /** Get Collapsed By Default. + @return Flag to set the initial state of collapsible field group. + */ + public boolean isCollapsedByDefault () + { + Object oo = get_Value(COLUMNNAME_IsCollapsedByDefault); + if (oo != null) + { + if (oo instanceof Boolean) + return ((Boolean)oo).booleanValue(); + return "Y".equals(oo); + } + return false; + } + /** Set Collapsible. @param IsCollapsible Flag to indicate the state of the dashboard panel @@ -202,6 +260,54 @@ public class X_PA_DashboardContent extends PO implements I_PA_DashboardContent, return false; } + /** Set Embed Report Content. + @param IsEmbedReportContent + Embed report content into dashboard + */ + public void setIsEmbedReportContent (boolean IsEmbedReportContent) + { + set_Value (COLUMNNAME_IsEmbedReportContent, Boolean.valueOf(IsEmbedReportContent)); + } + + /** Get Embed Report Content. + @return Embed report content into dashboard + */ + public boolean isEmbedReportContent () + { + Object oo = get_Value(COLUMNNAME_IsEmbedReportContent); + if (oo != null) + { + if (oo instanceof Boolean) + return ((Boolean)oo).booleanValue(); + return "Y".equals(oo); + } + return false; + } + + /** Set Show in Dashboard. + @param IsShowInDashboard + Show the dashlet in the dashboard + */ + public void setIsShowInDashboard (boolean IsShowInDashboard) + { + set_Value (COLUMNNAME_IsShowInDashboard, Boolean.valueOf(IsShowInDashboard)); + } + + /** Get Show in Dashboard. + @return Show the dashlet in the dashboard + */ + public boolean isShowInDashboard () + { + Object oo = get_Value(COLUMNNAME_IsShowInDashboard); + if (oo != null) + { + if (oo instanceof Boolean) + return ((Boolean)oo).booleanValue(); + return "Y".equals(oo); + } + return false; + } + /** Set Line No. @param Line Unique line for this document @@ -247,8 +353,8 @@ public class X_PA_DashboardContent extends PO implements I_PA_DashboardContent, return new KeyNamePair(get_ID(), getName()); } - /** Set PA_DashboardContent_ID. - @param PA_DashboardContent_ID PA_DashboardContent_ID */ + /** Set Dashboard Content. + @param PA_DashboardContent_ID Dashboard Content */ public void setPA_DashboardContent_ID (int PA_DashboardContent_ID) { if (PA_DashboardContent_ID < 1) @@ -257,8 +363,8 @@ public class X_PA_DashboardContent extends PO implements I_PA_DashboardContent, set_ValueNoCheck (COLUMNNAME_PA_DashboardContent_ID, Integer.valueOf(PA_DashboardContent_ID)); } - /** Get PA_DashboardContent_ID. - @return PA_DashboardContent_ID */ + /** Get Dashboard Content. + @return Dashboard Content */ public int getPA_DashboardContent_ID () { Integer ii = (Integer)get_Value(COLUMNNAME_PA_DashboardContent_ID); @@ -267,9 +373,23 @@ public class X_PA_DashboardContent extends PO implements I_PA_DashboardContent, return ii.intValue(); } - public I_PA_Goal getPA_Goal() throws RuntimeException + /** Set PA_DashboardContent_UU. + @param PA_DashboardContent_UU PA_DashboardContent_UU */ + public void setPA_DashboardContent_UU (String PA_DashboardContent_UU) + { + set_Value (COLUMNNAME_PA_DashboardContent_UU, PA_DashboardContent_UU); + } + + /** Get PA_DashboardContent_UU. + @return PA_DashboardContent_UU */ + public String getPA_DashboardContent_UU () + { + return (String)get_Value(COLUMNNAME_PA_DashboardContent_UU); + } + + public org.compiere.model.I_PA_Goal getPA_Goal() throws RuntimeException { - return (I_PA_Goal)MTable.get(getCtx(), I_PA_Goal.Table_Name) + return (org.compiere.model.I_PA_Goal)MTable.get(getCtx(), org.compiere.model.I_PA_Goal.Table_Name) .getPO(getPA_Goal_ID(), get_TrxName()); } /** Set Goal. @@ -295,6 +415,23 @@ public class X_PA_DashboardContent extends PO implements I_PA_DashboardContent, return ii.intValue(); } + /** Set Process Parameters. + @param ProcessParameters + Comma separated process parameter list + */ + public void setProcessParameters (String ProcessParameters) + { + set_Value (COLUMNNAME_ProcessParameters, ProcessParameters); + } + + /** Get Process Parameters. + @return Comma separated process parameter list + */ + public String getProcessParameters () + { + return (String)get_Value(COLUMNNAME_ProcessParameters); + } + /** Set ZUL File Path. @param ZulFilePath Absolute path to zul file diff --git a/org.adempiere.base/src/org/compiere/model/X_R_RequestType.java b/org.adempiere.base/src/org/compiere/model/X_R_RequestType.java index 0bc0a1c544..9d7259872a 100644 --- a/org.adempiere.base/src/org/compiere/model/X_R_RequestType.java +++ b/org.adempiere.base/src/org/compiere/model/X_R_RequestType.java @@ -30,7 +30,7 @@ public class X_R_RequestType extends PO implements I_R_RequestType, I_Persistent /** * */ - private static final long serialVersionUID = 20100614L; + private static final long serialVersionUID = 20120802L; /** Standard Constructor */ public X_R_RequestType (Properties ctx, int R_RequestType_ID, String trxName) @@ -134,6 +134,23 @@ public class X_R_RequestType extends PO implements I_R_RequestType, I_Persistent return (String)get_Value(COLUMNNAME_ConfidentialType); } + /** Set Content Color. + @param ContentColor + Content color of calendar dashlet + */ + public void setContentColor (String ContentColor) + { + set_Value (COLUMNNAME_ContentColor, ContentColor); + } + + /** Get Content Color. + @return Content color of calendar dashlet + */ + public String getContentColor () + { + return (String)get_Value(COLUMNNAME_ContentColor); + } + /** Set Description. @param Description Optional short description of the record @@ -171,6 +188,23 @@ public class X_R_RequestType extends PO implements I_R_RequestType, I_Persistent return ii.intValue(); } + /** Set Header Color. + @param HeaderColor + Header color of calendar dashlet + */ + public void setHeaderColor (String HeaderColor) + { + set_Value (COLUMNNAME_HeaderColor, HeaderColor); + } + + /** Get Header Color. + @return Header color of calendar dashlet + */ + public String getHeaderColor () + { + return (String)get_Value(COLUMNNAME_HeaderColor); + } + /** Set Create Change Request. @param IsAutoChangeRequest Automatically create BOM (Engineering) Change Request @@ -411,9 +445,23 @@ public class X_R_RequestType extends PO implements I_R_RequestType, I_Persistent return ii.intValue(); } - public I_R_StatusCategory getR_StatusCategory() throws RuntimeException + /** Set R_RequestType_UU. + @param R_RequestType_UU R_RequestType_UU */ + public void setR_RequestType_UU (String R_RequestType_UU) + { + set_Value (COLUMNNAME_R_RequestType_UU, R_RequestType_UU); + } + + /** Get R_RequestType_UU. + @return R_RequestType_UU */ + public String getR_RequestType_UU () + { + return (String)get_Value(COLUMNNAME_R_RequestType_UU); + } + + public org.compiere.model.I_R_StatusCategory getR_StatusCategory() throws RuntimeException { - return (I_R_StatusCategory)MTable.get(getCtx(), I_R_StatusCategory.Table_Name) + return (org.compiere.model.I_R_StatusCategory)MTable.get(getCtx(), org.compiere.model.I_R_StatusCategory.Table_Name) .getPO(getR_StatusCategory_ID(), get_TrxName()); } /** Set Status Category. diff --git a/org.adempiere.ui.swing/src/org/adempiere/apps/graph/HtmlDashboard.java b/org.adempiere.ui.swing/src/org/adempiere/apps/graph/HtmlDashboard.java index 7e05b1e534..3d0fb059f6 100644 --- a/org.adempiere.ui.swing/src/org/adempiere/apps/graph/HtmlDashboard.java +++ b/org.adempiere.ui.swing/src/org/adempiere/apps/graph/HtmlDashboard.java @@ -143,7 +143,7 @@ public class HtmlDashboard extends JPanel implements MouseListener, String appendToHome = null; try { - for (final MDashboardContent dp : MDashboardContent.getForSession()) + for (final MDashboardContent dp : MDashboardContent.getForSession(true)) { if (!Util.isEmpty(dp.getZulFilePath(), true)) continue; diff --git a/org.adempiere.ui.zk/.classpath b/org.adempiere.ui.zk/.classpath index 98e885e68d..291b7a5ac1 100644 --- a/org.adempiere.ui.zk/.classpath +++ b/org.adempiere.ui.zk/.classpath @@ -1,11 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + + diff --git a/org.adempiere.ui.zk/META-INF/MANIFEST.MF b/org.adempiere.ui.zk/META-INF/MANIFEST.MF index 63daaab3b2..dc87e96739 100644 --- a/org.adempiere.ui.zk/META-INF/MANIFEST.MF +++ b/org.adempiere.ui.zk/META-INF/MANIFEST.MF @@ -18,7 +18,8 @@ Bundle-ClassPath: WEB-INF/classes/, WEB-INF/lib/atmosphere-runtime-0.9.jar, WEB-INF/lib/atmosphere-compat-jbossweb-0.9.jar, WEB-INF/lib/atmosphere-compat-tomcat-0.9.jar, - WEB-INF/lib/atmosphere-compat-tomcat7-0.9.jar + WEB-INF/lib/atmosphere-compat-tomcat7-0.9.jar, + WEB-INF/lib/calendar.jar Export-Package: metainfo.zk, org.adempiere.webui, org.adempiere.webui.acct, diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/ADCalendarEvent.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/ADCalendarEvent.java new file mode 100644 index 0000000000..1029795a51 --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/ADCalendarEvent.java @@ -0,0 +1,47 @@ +/****************************************************************************** + * Copyright (C) 2008 Elaine Tan * + * Copyright (C) 2008 Idalica Corporation * + * 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.dashboard; + +import org.zkoss.calendar.impl.SimpleCalendarEvent; + +/** + * + * @author Elaine + * + */ +public class ADCalendarEvent extends SimpleCalendarEvent { + /** + * + */ + private static final long serialVersionUID = 2289841014956779967L; + + private int R_Request_ID; + private int R_RequestType_ID; + + public int getR_Request_ID() { + return R_Request_ID; + } + + public void setR_Request_ID(int request_ID) { + R_Request_ID = request_ID; + } + + public int getR_RequestType_ID() { + return R_RequestType_ID; + } + + public void setR_RequestType_ID(int requestType_ID) { + R_RequestType_ID = requestType_ID; + } +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/CalendarWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/CalendarWindow.java new file mode 100644 index 0000000000..9bc144d17e --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/CalendarWindow.java @@ -0,0 +1,409 @@ +/****************************************************************************** + * Copyright (C) 2008 Elaine Tan * + * Copyright (C) 2008 Idalica Corporation * + * 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.dashboard; + +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.Enumeration; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.TimeZone; + +import org.adempiere.webui.component.Window; +import org.adempiere.webui.session.SessionManager; +import org.compiere.model.X_R_RequestType; +import org.jfree.chart.ChartFactory; +import org.jfree.chart.JFreeChart; +import org.jfree.chart.encoders.EncoderUtil; +import org.jfree.chart.encoders.ImageFormat; +import org.jfree.chart.plot.PiePlot3D; +import org.jfree.data.general.DefaultPieDataset; +import org.zkoss.calendar.Calendars; +import org.zkoss.calendar.api.CalendarEvent; +import org.zkoss.calendar.event.CalendarsEvent; +import org.zkoss.calendar.impl.SimpleCalendarEvent; +import org.zkoss.calendar.impl.SimpleCalendarModel; +import org.zkoss.image.AImage; +import org.zkoss.util.Locales; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.Executions; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zk.ui.event.Events; +import org.zkoss.zul.Borderlayout; +import org.zkoss.zul.Button; +import org.zkoss.zul.Image; +import org.zkoss.zul.Label; +import org.zkoss.zul.Listbox; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.Popup; +import org.zkoss.zul.Span; +import org.zkoss.zul.Timer; +import org.zkoss.zul.Toolbarbutton; + +/** + * + * @author Elaine + * + */ +public class CalendarWindow extends Window implements EventListener { + private static final long serialVersionUID = 1L; + + private Calendars calendars; + private SimpleCalendarModel scm; + private Toolbarbutton btnRefresh; + private Listbox lbxRequestTypes; + private Image myChart; + private Button btnCurrentDate, btnSwitchTimeZone; + private Label lblDate; + private Component divArrowLeft, divArrowRight; + private Span FDOW; + private Listbox lbxFDOW; + private Component divTabDay, divTabWeek, divTabWeekdays, divTabMonth; + private Popup updateMsg; + private Label popupLabel; + private Timer timer; + + private EventWindow eventWin; + + public CalendarWindow(SimpleCalendarModel scm) { + + super(); + + this.scm = scm; + + setTitle("Calendar"); + setAttribute(Window.MODE_KEY, Window.MODE_EMBEDDED); + + Component component = Executions.createComponents("calendar.zul", this, null); + + Borderlayout borderlayout = (Borderlayout) component.getFellow("main"); + borderlayout.setStyle("position: absolute"); + borderlayout.setWidth("100%"); + borderlayout.setHeight("100%"); + + calendars = (Calendars) component.getFellow("cal"); + calendars.setModel(scm); + if (calendars.getCurrentDate() != null) + calendars.setCurrentDate(calendars.getCurrentDate()); + calendars.setTimeZone(getTimeZone()); + + btnRefresh = (Toolbarbutton) component.getFellow("btnRefresh"); + btnRefresh.addEventListener(Events.ON_CLICK, this); + + lbxRequestTypes = (Listbox) component.getFellow("lbxRequestTypes"); + lbxRequestTypes.addEventListener(Events.ON_SELECT, this); + + lbxRequestTypes.appendItem("(Show All)", "0"); + ArrayList types = DPCalendar.getRequestTypes(); + for(X_R_RequestType type : types) + lbxRequestTypes.appendItem(type.getName(), type.getR_RequestType_ID() + ""); + lbxRequestTypes.setSelectedIndex(0); + + myChart = (Image) component.getFellow("mychart"); + myChart.addEventListener(Events.ON_CREATE, this); + + btnCurrentDate = (Button) component.getFellow("btnCurrentDate"); + btnCurrentDate.addEventListener(Events.ON_CLICK, this); + + btnSwitchTimeZone = (Button) component.getFellow("btnSwitchTimeZone"); + btnSwitchTimeZone.addEventListener(Events.ON_CLICK, this); + + lblDate = (Label) component.getFellow("lblDate"); + lblDate.addEventListener(Events.ON_CREATE, this); + + divArrowLeft = component.getFellow("divArrowLeft"); + divArrowLeft.addEventListener("onMoveDate", this); + + divArrowRight = component.getFellow("divArrowRight"); + divArrowRight.addEventListener("onMoveDate", this); + + FDOW = (Span) component.getFellow("FDOW"); + FDOW.addEventListener(Events.ON_CREATE, this); + + lbxFDOW = (Listbox) component.getFellow("lbxFDOW"); + lbxFDOW.addEventListener(Events.ON_SELECT, this); + lbxFDOW.addEventListener(Events.ON_CREATE, this); + + divTabDay = component.getFellow("divTabDay"); + divTabDay.addEventListener("onUpdateView", this); + + divTabWeek = component.getFellow("divTabWeek"); + divTabWeek.addEventListener("onUpdateView", this); + + divTabWeekdays = component.getFellow("divTabWeekdays"); + divTabWeekdays.addEventListener("onUpdateView", this); + + divTabMonth = component.getFellow("divTabMonth"); + divTabMonth.addEventListener("onUpdateView", this); + + updateMsg = (Popup) component.getFellow("updateMsg"); + + popupLabel = (Label) component.getFellow("popupLabel"); + + timer = (Timer) component.getFellow("timer"); + + this.appendChild(component); + + calendars.addEventListener("onEventCreate", this); + calendars.addEventListener("onEventEdit", this); + calendars.addEventListener("onEventUpdate", this); + calendars.addEventListener("onMouseOver", this); + + SessionManager.getAppDesktop().showWindow(this); + } + + public void onEvent(Event e) throws Exception { + String type = e.getName(); + + if (type.equals(Events.ON_CLICK)) { + if (e.getTarget() == btnRefresh) + btnRefreshClicked(); + else if (e.getTarget() == btnCurrentDate) + btnCurrentDateClicked(); + else if (e.getTarget() == btnSwitchTimeZone) + btnSwitchTimeZoneClicked(); + } + else if (type.equals(Events.ON_CREATE)) { + if (e.getTarget() == lblDate) + updateDateLabel(); + else if (e.getTarget() == FDOW) + FDOW.setVisible("month".equals(calendars.getMold()) || calendars.getDays() == 7); + else if (e.getTarget() == myChart) + syncModel(); + else if (e.getTarget() == lbxFDOW) + lbxFDOW.setSelectedIndex(0); + } + else if (type.equals("onMoveDate")) { + if (e.getTarget() == divArrowLeft) + divArrowClicked(false); + else if (e.getTarget() == divArrowRight) + divArrowClicked(true); + } + else if (type.equals("onUpdateView")) { + String text = String.valueOf(e.getData()); + int days = "Day".equals(text) ? 1: "5 Days".equals(text) ? 5: "Week".equals(text) ? 7: 0; + divTabClicked(days); + } + else if (type.equals(Events.ON_SELECT)) { + if (e.getTarget() == lbxRequestTypes) { + Listitem li = lbxRequestTypes.getSelectedItem(); + if(li == null) return; + + if(li.getValue() == null) return; + int R_RequestType_ID = Integer.parseInt(li.getValue().toString()); + + scm.clear(); + ArrayList events = DPCalendar.getEvents(R_RequestType_ID); + for (ADCalendarEvent event : events) + scm.add(event); + calendars.setModel(scm); + calendars.invalidate(); + syncModel(); + } + else if (e.getTarget() == lbxFDOW) { + calendars.setFirstDayOfWeek(lbxFDOW.getSelectedItem().getLabel()); + syncModel(); + } + } + else if (type.equals("onEventCreate")) { + if (e instanceof CalendarsEvent) { + CalendarsEvent calendarsEvent = (CalendarsEvent) e; + RequestWindow requestWin = new RequestWindow(calendarsEvent, this); + SessionManager.getAppDesktop().showWindow(requestWin); + } + } + else if (type.equals("onEventEdit")) { + if (e instanceof CalendarsEvent) { + CalendarsEvent calendarsEvent = (CalendarsEvent) e; + CalendarEvent calendarEvent = calendarsEvent.getCalendarEvent(); + + if (calendarEvent instanceof ADCalendarEvent) { + ADCalendarEvent ce = (ADCalendarEvent) calendarEvent; + + if(eventWin == null) + eventWin = new EventWindow(); + eventWin.setData(ce); + SessionManager.getAppDesktop().showWindow(eventWin); + } + } + } + else if (type.equals("onEventUpdate")) { + if (e instanceof CalendarsEvent) + { + CalendarsEvent evt = (CalendarsEvent) e; + SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/d"); + sdf1.setTimeZone(calendars.getDefaultTimeZone()); + StringBuffer sb = new StringBuffer("Update... from "); + sb.append(sdf1.format(evt.getCalendarEvent().getBeginDate())); + sb.append(" to "); + sb.append(sdf1.format(evt.getBeginDate())); + popupLabel.setValue(sb.toString()); + int left = evt.getX(); + int top = evt.getY(); + if (top + 100 > evt.getDesktopHeight()) + top = evt.getDesktopHeight() - 100; + if (left + 330 > evt.getDesktopWidth()) + left = evt.getDesktopWidth() - 330; + updateMsg.open(left, top); + timer.start(); + org.zkoss.calendar.Calendars cal = (org.zkoss.calendar.Calendars) evt.getTarget(); + SimpleCalendarModel m = (SimpleCalendarModel) cal.getModel(); + SimpleCalendarEvent sce = (SimpleCalendarEvent) evt.getCalendarEvent(); + sce.setBeginDate(evt.getBeginDate()); + sce.setEndDate(evt.getEndDate()); + m.update(sce); + } + } + } + + private void syncModel() { + Hashtable ht = new Hashtable(); + + List list = calendars.getModel().get(calendars.getBeginDate(), calendars.getEndDate(), null); + int size = list.size(); + for (Iterator it = list.iterator(); it.hasNext();) { + String key = ((ADCalendarEvent)it.next()).getR_RequestType_ID() + ""; + + if (!ht.containsKey(key)) + ht.put(key, BigDecimal.ONE); + else { + BigDecimal value = (BigDecimal) ht.get(key); + ht.put(key, value.add(BigDecimal.ONE)); + } + } + + Hashtable htTypes = new Hashtable(); + for(int i = 0; i < lbxRequestTypes.getItemCount(); i++) + { + Listitem li = lbxRequestTypes.getItemAtIndex(i); + if(li != null && li.getValue() != null) + htTypes.put(li.getValue(), li.getLabel()); + } + + DefaultPieDataset pieDataset = new DefaultPieDataset(); + Enumeration keys = ht.keys(); + while(keys.hasMoreElements()) { + String key = (String) keys.nextElement(); + BigDecimal value = (BigDecimal) ht.get(key); + String name = (String) htTypes.get(key); + pieDataset.setValue(name == null ? "" : name, new Double(size > 0 ? value.doubleValue()/size*100 : 0)); + } + + JFreeChart chart = ChartFactory.createPieChart3D("Events Analysis", pieDataset, true, true, true); + PiePlot3D plot = (PiePlot3D) chart.getPlot(); + plot.setForegroundAlpha(0.5f); + BufferedImage bi = chart.createBufferedImage(600, 250); + try { + byte[] bytes = EncoderUtil.encode(bi, ImageFormat.PNG, true); + AImage image = new AImage("Pie Chart", bytes); + myChart.setContent(image); + } catch (IOException e) { + e.printStackTrace(); + } + htTypes = null; + ht = null; + } + + public void onRefresh() { + btnRefreshClicked(); + } + + private void btnRefreshClicked() { + int R_RequestType_ID = 0; + Listitem li = lbxRequestTypes.getSelectedItem(); + if(li != null && li.getValue() != null) + R_RequestType_ID = Integer.parseInt(li.getValue().toString()); + + int cnt = lbxRequestTypes.getItemCount(); + for (int i = cnt - 1; i >=0; i--) + lbxRequestTypes.removeItemAt(i); + + lbxRequestTypes.appendItem("(Show All)", "0"); + ArrayList types = DPCalendar.getRequestTypes(); + for(X_R_RequestType requestType : types) + { + Listitem item = lbxRequestTypes.appendItem(requestType.getName(), requestType.getR_RequestType_ID() + ""); + if(R_RequestType_ID == requestType.getR_RequestType_ID()) + lbxRequestTypes.setSelectedItem(item); + } + if(lbxRequestTypes.getSelectedIndex() < 0) + lbxRequestTypes.setSelectedIndex(0); + + scm.clear(); + ArrayList events = DPCalendar.getEvents(R_RequestType_ID); + for (ADCalendarEvent event : events) + scm.add(event); + calendars.setModel(scm); + calendars.invalidate(); + syncModel(); + } + + private String getTimeZone() + { + TimeZone defaultTimeZone = TimeZone.getDefault(); + String defaultTimeZoneName = defaultTimeZone.getDisplayName(); + int defaultTimeZoneOffset = defaultTimeZone.getOffset(0) / 3375000; + return defaultTimeZoneName + "=GMT" + (defaultTimeZoneOffset > 0 ? "+" : "-") + defaultTimeZoneOffset + ",Pacific Time=GMT-8"; + } + + private void updateDateLabel() { + Date b = calendars.getBeginDate(); + Date e = calendars.getEndDate(); + SimpleDateFormat sdfV = new SimpleDateFormat("yyyy/MMM/dd", Locales.getCurrent()); + sdfV.setTimeZone(calendars.getDefaultTimeZone()); + lblDate.setValue(sdfV.format(b) + " - " + sdfV.format(e)); + } + + private void btnCurrentDateClicked() { + calendars.setCurrentDate(Calendar.getInstance(calendars.getDefaultTimeZone()).getTime()); + updateDateLabel(); + syncModel(); + } + + private void btnSwitchTimeZoneClicked() { + Map zone = calendars.getTimeZones(); + if (!zone.isEmpty()) { + Map.Entry me = (Map.Entry) zone.entrySet().iterator().next(); + calendars.removeTimeZone((TimeZone) me.getKey()); + calendars.addTimeZone((String) me.getValue(), (TimeZone) me.getKey()); + } + syncModel(); + } + + private void divArrowClicked(boolean isNext) { + if (isNext) + calendars.nextPage(); + else + calendars.previousPage(); + updateDateLabel(); + syncModel(); + } + + private void divTabClicked(int days) { + if (days > 0) { + calendars.setMold("default"); + calendars.setDays(days); + } else calendars.setMold("month"); + updateDateLabel(); + FDOW.setVisible("month".equals(calendars.getMold()) || calendars.getDays() == 7); + } +} \ No newline at end of file diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/DPCalendar.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/DPGoogleCalendar.java similarity index 92% rename from org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/DPCalendar.java rename to org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/DPGoogleCalendar.java index 87257b7c83..f474c2e6b8 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/DPCalendar.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/DPGoogleCalendar.java @@ -20,14 +20,14 @@ import org.zkoss.zul.Iframe; * @author Elaine * @date November 20, 2008 */ -public class DPCalendar extends DashboardPanel { +public class DPGoogleCalendar extends DashboardPanel { /** * */ private static final long serialVersionUID = -6420016898259232438L; - public DPCalendar() + public DPGoogleCalendar() { super(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/DPMenuTree.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/DPMenuTree.java new file mode 100644 index 0000000000..bcc001c491 --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/DPMenuTree.java @@ -0,0 +1,46 @@ +/****************************************************************************** + * Copyright (C) 2012 Elaine Tan * + * Copyright (C) 2012 Trek Global + * 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.dashboard; + +import org.adempiere.webui.panel.MenuTreePanel; + +/** + * Dashboard item: Menu Tree + * @author Elaine + * @date July 31, 2012 + */ +public class DPMenuTree extends DashboardPanel { + + /** + * + */ + private static final long serialVersionUID = -3095921038206382907L; + + private MenuTreePanel menuTreePanel; + + public DPMenuTree() + { + super(); + + menuTreePanel = new MenuTreePanel(this); + this.appendChild(menuTreePanel); + } + + public MenuTreePanel getMenuTreePanel() + { + return menuTreePanel; + } + +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/EventWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/EventWindow.java new file mode 100644 index 0000000000..08293b1097 --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/EventWindow.java @@ -0,0 +1,161 @@ +/****************************************************************************** + * Copyright (C) 2008 Elaine Tan * + * Copyright (C) 2008 Idalica Corporation * + * 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.dashboard; + +import org.adempiere.webui.apps.AEnv; +import org.adempiere.webui.component.Borderlayout; +import org.adempiere.webui.component.Column; +import org.adempiere.webui.component.Columns; +import org.adempiere.webui.component.ConfirmPanel; +import org.adempiere.webui.component.DatetimeBox; +import org.adempiere.webui.component.Grid; +import org.adempiere.webui.component.GridFactory; +import org.adempiere.webui.component.Label; +import org.adempiere.webui.component.Row; +import org.adempiere.webui.component.Rows; +import org.adempiere.webui.component.Textbox; +import org.adempiere.webui.component.Window; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zul.Center; +import org.zkoss.zul.South; + +/** + * + * @author Elaine + * + */ +public class EventWindow extends Window implements EventListener { + private static final long serialVersionUID = 1L; + + private DatetimeBox dtBeginDate, dtEndDate; + private Textbox txtContent, txtHeaderColor, txtContentColor; + private ConfirmPanel confirmPanel; + + private int R_Request_ID = 0; + + public EventWindow() { + + super(); + + setTitle("Event"); + setAttribute(Window.MODE_KEY, Window.MODE_POPUP); + setWidth("400px"); + setHeight("310px"); + this.setBorder("normal"); + this.setClosable(true); + + Label lblHeaderColor = new Label("Header Color"); + Label lblContentColor = new Label("Content Color"); + Label lblBeginDate = new Label("Begin Date"); + Label lblEndDate = new Label("End Date"); + Label lblContent = new Label("Content"); + + dtBeginDate = new DatetimeBox(); + dtBeginDate.setEnabled(false); + + dtEndDate = new DatetimeBox(); + dtEndDate.setEnabled(false); + + txtContent = new Textbox(); + txtContent.setRows(5); + txtContent.setWidth("95%"); + txtContent.setReadonly(true); + + txtHeaderColor = new Textbox(); + txtHeaderColor.setWidth("50px"); + txtHeaderColor.setReadonly(true); + + txtContentColor = new Textbox(); + txtContentColor.setWidth("50px"); + txtContentColor.setReadonly(true); + + confirmPanel = new ConfirmPanel(false, false, false, false, false, true); + confirmPanel.addActionListener(this); + + + Grid grid = GridFactory.newGridLayout(); + + Columns columns = new Columns(); + grid.appendChild(columns); + + Column column = new Column(); + columns.appendChild(column); + + column = new Column(); + columns.appendChild(column); + column.setWidth("250px"); + + Rows rows = new Rows(); + grid.appendChild(rows); + + Row row = new Row(); + rows.appendChild(row); + row.appendChild(lblBeginDate.rightAlign()); + row.appendChild(dtBeginDate); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblEndDate.rightAlign()); + row.appendChild(dtEndDate); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblContent.rightAlign()); + row.appendChild(txtContent); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblHeaderColor.rightAlign()); + row.appendChild(txtHeaderColor); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblContentColor.rightAlign()); + row.appendChild(txtContentColor); + + Borderlayout borderlayout = new Borderlayout(); + appendChild(borderlayout); + + Center center = new Center(); + borderlayout.appendChild(center); + center.appendChild(grid); + center.setFlex(true); + + South south = new South(); + borderlayout.appendChild(south); + south.appendChild(confirmPanel); + } + + public void setData(ADCalendarEvent event) { + txtHeaderColor.setStyle("background-color: " + event.getHeaderColor()); + txtContentColor.setStyle("background-color: " + event.getContentColor()); + + dtBeginDate.setValue(event.getBeginDate()); + dtEndDate.setValue(event.getEndDate()); + txtContent.setText(event.getContent()); + + R_Request_ID = event.getR_Request_ID(); + confirmPanel.getButton(ConfirmPanel.A_ZOOM).setEnabled(R_Request_ID > 0); + } + + public void onEvent(Event e) throws Exception { + if (e.getTarget() == confirmPanel.getButton(ConfirmPanel.A_OK)) + setVisible(false); + else if (e.getTarget() == confirmPanel.getButton(ConfirmPanel.A_ZOOM)) { + if (R_Request_ID > 0) + AEnv.zoom(417, R_Request_ID); + } + } +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/RequestWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/RequestWindow.java new file mode 100644 index 0000000000..c219ad0f59 --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/RequestWindow.java @@ -0,0 +1,303 @@ +/****************************************************************************** + * Copyright (C) 2008 Elaine Tan * + * Copyright (C) 2008 Idalica Corporation * + * 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.dashboard; + +import java.sql.Timestamp; + +import org.adempiere.webui.component.Borderlayout; +import org.adempiere.webui.component.Column; +import org.adempiere.webui.component.Columns; +import org.adempiere.webui.component.ConfirmPanel; +import org.adempiere.webui.component.Datebox; +import org.adempiere.webui.component.Grid; +import org.adempiere.webui.component.GridFactory; +import org.adempiere.webui.component.Label; +import org.adempiere.webui.component.Row; +import org.adempiere.webui.component.Rows; +import org.adempiere.webui.component.Textbox; +import org.adempiere.webui.component.Window; +import org.adempiere.webui.editor.WTableDirEditor; +import org.adempiere.webui.window.FDialog; +import org.compiere.model.MColumn; +import org.compiere.model.MLookup; +import org.compiere.model.MLookupFactory; +import org.compiere.model.MRequest; +import org.compiere.model.MRole; +import org.compiere.util.CLogger; +import org.compiere.util.DisplayType; +import org.compiere.util.Env; +import org.compiere.util.Msg; +import org.zkoss.calendar.event.CalendarsEvent; +import org.zkoss.zk.ui.WrongValueException; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zk.ui.event.Events; +import org.zkoss.zul.Center; +import org.zkoss.zul.South; +import org.zkoss.zul.Timebox; + +/** + * + * @author Elaine + * + */ +public class RequestWindow extends Window implements EventListener { + private static final long serialVersionUID = 1L; + + private static CLogger log = CLogger.getCLogger(RequestWindow.class); + + /** Read Only */ + private boolean m_readOnly = false; + + private WTableDirEditor requestTypeField, dueTypeField, priorityField, + confidentialField, salesRepField, entryConfidentialField; + private Textbox txtSummary; + private Datebox dbxStartPlan, dbxCompletePlan; + private Timebox tbxStartTime, tbxEndTime; + private ConfirmPanel confirmPanel; + + private Window parent; + + public RequestWindow(CalendarsEvent ce, Window parent) { + + super(); + + this.parent = parent; + + setTitle("Event"); + setAttribute(Window.MODE_KEY, Window.MODE_MODAL); + setWidth("400px"); + setHeight("500px"); + this.setBorder("normal"); + this.setClosable(true); + + m_readOnly = !MRole.getDefault().canUpdate( + Env.getAD_Client_ID(Env.getCtx()), Env.getAD_Org_ID(Env.getCtx()), + MRequest.Table_ID, 0, false); + + Label lblDueType = new Label("Due Type"); + Label lblRequestType = new Label("Request Type"); + Label lblPriority = new Label("Priority"); + Label lblSummary = new Label("Summary"); + Label lblConfidential = new Label("Confidentiality"); + Label lblSalesRep = new Label("Sales Representative"); + Label lblEntryConfidential = new Label("Entry Confidentiality"); + Label lblStartPlan = new Label("Start Plan"); + Label lblCompletePlan = new Label("Complete Plan"); + Label lblStartTime = new Label("Start Time"); + Label lblEndTime = new Label("End Time"); + + int columnID = MColumn.getColumn_ID(MRequest.Table_Name, MRequest.COLUMNNAME_DueType); + MLookup lookup = MLookupFactory.get(Env.getCtx(), 0, 0, columnID, DisplayType.List); + dueTypeField = new WTableDirEditor("DueType", true, false, true, lookup); + dueTypeField.setValue(Env.getContext(Env.getCtx(), "P232|DueType")); + if(dueTypeField.getValue() == null || dueTypeField.getValue().equals("")) + if(dueTypeField.getComponent().getItemCount() > 1) + dueTypeField.setValue(dueTypeField.getComponent().getItemAtIndex(1).getValue()); + + columnID = MColumn.getColumn_ID(MRequest.Table_Name, MRequest.COLUMNNAME_R_RequestType_ID); + lookup = MLookupFactory.get(Env.getCtx(), 0, 0, columnID, DisplayType.TableDir); + requestTypeField = new WTableDirEditor("R_RequestType_ID", true, false, true, lookup); + requestTypeField.setValue(Env.getContext(Env.getCtx(), "P232|R_RequestType_ID")); + if(requestTypeField.getValue() == null || requestTypeField.getValue().equals("")) + if(requestTypeField.getComponent().getItemCount() > 1) + requestTypeField.setValue(requestTypeField.getComponent().getItemAtIndex(1).getValue()); + + columnID = MColumn.getColumn_ID(MRequest.Table_Name, MRequest.COLUMNNAME_Priority); + lookup = MLookupFactory.get(Env.getCtx(), 0, 0, columnID, DisplayType.List); + priorityField = new WTableDirEditor("Priority", true, false, true, lookup); + priorityField.setValue(Env.getContext(Env.getCtx(), "P232|Priority")); + if(priorityField.getValue() == null || priorityField.getValue().equals("")) + if(priorityField.getComponent().getItemCount() > 1) + priorityField.setValue(priorityField.getComponent().getItemAtIndex(1).getValue()); + + columnID = MColumn.getColumn_ID(MRequest.Table_Name, MRequest.COLUMNNAME_ConfidentialType); + lookup = MLookupFactory.get(Env.getCtx(), 0, 0, columnID, DisplayType.List); + confidentialField = new WTableDirEditor("ConfidentialType", true, false, true, lookup); + confidentialField.setValue(Env.getContext(Env.getCtx(), "P232|ConfidentialType")); + if(confidentialField.getValue() == null || confidentialField.getValue().equals("")) + if(confidentialField.getComponent().getItemCount() > 1) + confidentialField.setValue(confidentialField.getComponent().getItemAtIndex(1).getValue()); + + columnID = MColumn.getColumn_ID(MRequest.Table_Name, MRequest.COLUMNNAME_SalesRep_ID); + lookup = MLookupFactory.get(Env.getCtx(), 0, 0, columnID, DisplayType.TableDir); + salesRepField = new WTableDirEditor("SalesRep_ID", true, false, true, lookup); + salesRepField.setValue(Env.getContextAsInt(Env.getCtx(), "SalesRep_ID")); + if(salesRepField.getValue() == null || salesRepField.getValue().equals("0")) + if(salesRepField.getComponent().getItemCount() > 1) + salesRepField.setValue(salesRepField.getComponent().getItemAtIndex(1).getValue()); + + columnID = MColumn.getColumn_ID(MRequest.Table_Name, MRequest.COLUMNNAME_ConfidentialTypeEntry); + lookup = MLookupFactory.get(Env.getCtx(), 0, 0, columnID, DisplayType.List); + entryConfidentialField = new WTableDirEditor("ConfidentialTypeEntry", true, false, true, lookup); + entryConfidentialField.setValue(Env.getContext(Env.getCtx(), "P232|ConfidentialTypeEntry")); + if(entryConfidentialField.getValue() == null || entryConfidentialField.getValue().equals("")) + if(entryConfidentialField.getComponent().getItemCount() > 1) + entryConfidentialField.setValue(entryConfidentialField.getComponent().getItemAtIndex(1).getValue()); + + txtSummary = new Textbox(); + txtSummary.setRows(3); + txtSummary.setWidth("95%"); + + dbxStartPlan = new Datebox(); + dbxCompletePlan = new Datebox(); + + tbxStartTime = new Timebox(); + tbxEndTime = new Timebox(); + + confirmPanel = new ConfirmPanel(true); + confirmPanel.addActionListener(this); + + + Grid grid = GridFactory.newGridLayout(); + + Columns columns = new Columns(); + grid.appendChild(columns); + + Column column = new Column(); + columns.appendChild(column); + + column = new Column(); + columns.appendChild(column); + column.setWidth("250px"); + + Rows rows = new Rows(); + grid.appendChild(rows); + + Row row = new Row(); + rows.appendChild(row); + row.appendChild(lblDueType.rightAlign()); + row.appendChild(dueTypeField.getComponent()); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblRequestType.rightAlign()); + row.appendChild(requestTypeField.getComponent()); + + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblPriority.rightAlign()); + row.appendChild(priorityField.getComponent()); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblSummary.rightAlign()); + row.appendChild(txtSummary); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblConfidential.rightAlign()); + row.appendChild(confidentialField.getComponent()); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblSalesRep.rightAlign()); + row.appendChild(salesRepField.getComponent()); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblEntryConfidential.rightAlign()); + row.appendChild(entryConfidentialField.getComponent()); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblStartPlan.rightAlign()); + row.appendChild(dbxStartPlan); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblCompletePlan.rightAlign()); + row.appendChild(dbxCompletePlan); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblStartTime.rightAlign()); + row.appendChild(tbxStartTime); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblEndTime.rightAlign()); + row.appendChild(tbxEndTime); + + Borderlayout borderlayout = new Borderlayout(); + appendChild(borderlayout); + + Center center = new Center(); + borderlayout.appendChild(center); + center.appendChild(grid); + center.setFlex(true); + + South south = new South(); + borderlayout.appendChild(south); + south.appendChild(confirmPanel); + + dbxStartPlan.setValue(ce.getBeginDate()); + dbxCompletePlan.setValue(ce.getEndDate()); + tbxStartTime.setValue(ce.getBeginDate()); + tbxEndTime.setValue(ce.getEndDate()); + } + + public void onEvent(Event e) throws Exception { + if (m_readOnly) + this.detach(); + else if (e.getTarget() == confirmPanel.getButton(ConfirmPanel.A_OK)) { + // Check Mandatory fields + if (dueTypeField.getValue() == null || dueTypeField.getValue().equals("")) + throw new WrongValueException(dueTypeField.getComponent(), Msg.translate(Env.getCtx(), "FillMandatory")); + if (requestTypeField.getValue() == null || requestTypeField.getValue().equals("0")) + throw new WrongValueException(requestTypeField.getComponent(), Msg.translate(Env.getCtx(), "FillMandatory")); + if (priorityField.getValue() == null || priorityField.getValue().equals("")) + throw new WrongValueException(priorityField.getComponent(), Msg.translate(Env.getCtx(), "FillMandatory")); + if (txtSummary.getText() == null || txtSummary.getText().equals("")) + throw new WrongValueException(txtSummary, Msg.translate(Env.getCtx(), "FillMandatory")); + if (confidentialField.getValue() == null || confidentialField.getValue().equals("")) + throw new WrongValueException(confidentialField.getComponent(), Msg.translate(Env.getCtx(), "FillMandatory")); + if (salesRepField.getValue() == null || salesRepField.getValue().equals("0")) + throw new WrongValueException(salesRepField.getComponent(), Msg.translate(Env.getCtx(), "FillMandatory")); + if (entryConfidentialField.getValue() == null || entryConfidentialField.getValue().equals("")) + throw new WrongValueException(entryConfidentialField.getComponent(), Msg.translate(Env.getCtx(), "FillMandatory")); + + MRequest request = new MRequest(Env.getCtx(), 0, null); + request.setAD_Org_ID(Env.getAD_Org_ID(Env.getCtx())); + request.setDueType((String) dueTypeField.getValue()); + request.setR_RequestType_ID((Integer) requestTypeField.getValue()); + request.setPriority((String) priorityField.getValue()); + request.setSummary(txtSummary.getText()); + request.setConfidentialType((String) confidentialField.getValue()); + request.setSalesRep_ID((Integer) salesRepField.getValue()); + request.setConfidentialTypeEntry((String) entryConfidentialField.getValue()); + request.setDateStartPlan(new Timestamp(dbxStartPlan.getValue().getTime())); + request.setDateCompletePlan(new Timestamp(dbxCompletePlan.getValue().getTime())); + request.setStartTime(new Timestamp(tbxStartTime.getValue().getTime())); + request.setEndTime(new Timestamp(tbxEndTime.getValue().getTime())); + + if (request.save()) + { + log.fine("R_Request_ID=" + request.getR_Request_ID()); + Events.postEvent("onRefresh", parent, null); +// Events.echoEvent("onRefresh", parent, null); + } + else + { + FDialog.error(0, this, "Request record not saved"); + return; + } + + this.detach(); + } + else if (e.getTarget() == confirmPanel.getButton(ConfirmPanel.A_CANCEL)) + this.detach(); + } +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DashboardController.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DashboardController.java index 0b88730171..be057d51ce 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DashboardController.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DashboardController.java @@ -14,24 +14,49 @@ package org.adempiere.webui.desktop; import java.io.BufferedReader; +import java.io.File; import java.io.IOException; import java.io.InputStreamReader; +import java.math.BigDecimal; import java.net.URL; +import java.sql.Timestamp; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.logging.Level; +import org.adempiere.webui.apps.AEnv; +import org.adempiere.webui.apps.WReport; import org.adempiere.webui.apps.graph.WGraph; import org.adempiere.webui.apps.graph.WPerformanceDetail; import org.adempiere.webui.component.ToolBarButton; import org.adempiere.webui.dashboard.DashboardPanel; import org.adempiere.webui.dashboard.DashboardRunnable; +import org.adempiere.webui.event.DrillEvent; +import org.adempiere.webui.event.ZoomEvent; +import org.adempiere.webui.report.HTMLExtension; +import org.adempiere.webui.session.SessionManager; +import org.adempiere.webui.window.FDialog; +import org.adempiere.webui.window.ZkReportViewerProvider; import org.compiere.model.I_AD_Menu; import org.compiere.model.MDashboardContent; import org.compiere.model.MGoal; +import org.compiere.model.MMenu; +import org.compiere.model.MPInstance; +import org.compiere.model.MPInstancePara; +import org.compiere.model.MProcess; +import org.compiere.model.MQuery; +import org.compiere.model.MRole; +import org.compiere.model.MTable; import org.compiere.model.X_PA_DashboardContent; +import org.compiere.print.ReportEngine; +import org.compiere.process.ProcessInfo; import org.compiere.util.CLogger; +import org.compiere.util.DB; +import org.compiere.util.DisplayType; import org.compiere.util.Env; +import org.zkoss.util.media.AMedia; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Desktop; import org.zkoss.zk.ui.Executions; @@ -43,9 +68,12 @@ import org.zkoss.zk.ui.event.MaximizeEvent; import org.zkoss.zul.Anchorchildren; import org.zkoss.zul.Anchorlayout; import org.zkoss.zul.Html; +import org.zkoss.zul.Iframe; import org.zkoss.zul.Panel; import org.zkoss.zul.Panelchildren; +import org.zkoss.zul.Separator; import org.zkoss.zul.Style; +import org.zkoss.zul.Toolbar; import org.zkoss.zul.Toolbarbutton; import org.zkoss.zul.Vlayout; @@ -53,7 +81,7 @@ import org.zkoss.zul.Vlayout; * @author hengsin * */ -public class DashboardController implements EventListener { +public class DashboardController implements EventListener { private final static CLogger logger = CLogger.getCLogger(DashboardController.class); private Component prevParent; @@ -77,7 +105,7 @@ public class DashboardController implements EventListener { maximizedHolder.setAnchor("99% 99%"); } - public void render(Component parent, IDesktop desktopImpl) { + public void render(Component parent, IDesktop desktopImpl, boolean isShowInDashboard) { Style style = new Style(); //, .z-anchorchildren style.setContent(".z-anchorlayout-body { overflow:auto } .z-anchorchildren { overflow:visible } "); @@ -99,9 +127,9 @@ public class DashboardController implements EventListener { try { - noOfCols = MDashboardContent.getForSessionColumnCount(); + noOfCols = MDashboardContent.getForSessionColumnCount(isShowInDashboard); width = noOfCols <= 0 ? 100 : 100 / noOfCols; - for (final MDashboardContent dp : MDashboardContent.getForSession()) + for (final MDashboardContent dp : MDashboardContent.getForSession(isShowInDashboard)) { int columnNo = dp.getColumnNo(); if(dashboardColumnLayout == null || currentColumnNo != columnNo) @@ -129,6 +157,7 @@ public class DashboardController implements EventListener { panel.setTooltiptext(description); panel.setCollapsible(dp.isCollapsible()); + panel.setOpen(!dp.isCollapsedByDefault()); panel.setBorder("normal"); dashboardColumnLayout.appendChild(panel); @@ -181,6 +210,67 @@ public class DashboardController implements EventListener { content.appendChild(btn); panelEmpty = false; } + + //Report & Process + int AD_Process_ID = dp.getAD_Process_ID(); + if(AD_Process_ID > 0) + { + String sql = "SELECT AD_MENU_ID FROM AD_MENU WHERE AD_Process_ID=?"; + int AD_Menu_ID = DB.getSQLValue(null, sql, AD_Process_ID); + ToolBarButton btn = new ToolBarButton(); + MMenu menu = new MMenu(Env.getCtx(), AD_Menu_ID, null); + btn.setAttribute("AD_Menu_ID", AD_Menu_ID); + btn.addEventListener(Events.ON_CLICK, this); + panelEmpty = false; + + if (dp.isEmbedReportContent()) + { + String processParameters = dp.getProcessParameters(); + embedReport(content, AD_Process_ID, processParameters); + content.addEventListener("onZoom", new EventListener() { + public void onEvent(Event event) throws Exception { + if (event instanceof ZoomEvent) + { + ZoomEvent ze = (ZoomEvent) event; + if (ze.getData() != null && ze.getData() instanceof MQuery) { + AEnv.zoom((MQuery) ze.getData()); + } + } + } + }); + + content.addEventListener(DrillEvent.ON_DRILL_DOWN, new EventListener() { + public void onEvent(Event event) throws Exception { + if (event instanceof DrillEvent) + { + DrillEvent de = (DrillEvent) event; + if (de.getData() != null && de.getData() instanceof MQuery) { + MQuery query = (MQuery) de.getData(); + executeDrill(query); + } + } + } + }); + + Toolbar toolbar = new Toolbar(); + content.appendChild(toolbar); + btn.setLabel("Open run dialog"); + toolbar.appendChild(btn); + + btn = new ToolBarButton(); + btn.setAttribute("AD_Process_ID", AD_Process_ID); + btn.setAttribute("ProcessParameters", processParameters); + btn.addEventListener(Events.ON_CLICK, this); + btn.setLabel("View report in new tab"); + toolbar.appendChild(new Separator("vertical")); + toolbar.appendChild(btn); + } + else + { + btn.setLabel(menu.getName()); + content.appendChild(btn); + } + } // Goal int PA_Goal_ID = dp.getPA_Goal_ID(); @@ -256,29 +346,55 @@ public class DashboardController implements EventListener { } } - @Override - public void onEvent(MaximizeEvent event) throws Exception { - Panel panel = (Panel) event.getTarget(); - if (event.isMaximized()) { - prevParent = panel.getParent(); - prevNext = panel.getNextSibling(); - panel.detach(); - for (Anchorchildren anchorChildren : columnList) { - anchorChildren.detach(); - } - dashboardLayout.appendChild(maximizedHolder); - maximizedHolder.appendChild(panel); - } else { - maximizedHolder.detach(); - panel.detach(); - prevParent.insertBefore(panel, prevNext); - for (Anchorchildren anchorChildren : columnList) { - dashboardLayout.appendChild(anchorChildren); - } - //following 2 line needed for restore to size the panel correctly - panel.setWidth(null); - panel.setHeight(null); - } + public void onEvent(Event event) throws Exception { + Component comp = event.getTarget(); + String eventName = event.getName(); + + if (event instanceof MaximizeEvent) + { + MaximizeEvent me = (MaximizeEvent) event; + Panel panel = (Panel) event.getTarget(); + if (me.isMaximized()) { + prevParent = panel.getParent(); + prevNext = panel.getNextSibling(); + panel.detach(); + for (Anchorchildren anchorChildren : columnList) { + anchorChildren.detach(); + } + dashboardLayout.appendChild(maximizedHolder); + maximizedHolder.appendChild(panel); + } else { + maximizedHolder.detach(); + panel.detach(); + prevParent.insertBefore(panel, prevNext); + for (Anchorchildren anchorChildren : columnList) { + dashboardLayout.appendChild(anchorChildren); + } + //following 2 line needed for restore to size the panel correctly + panel.setWidth(null); + panel.setHeight(null); + } + } + else if(eventName.equals(Events.ON_CLICK)) + { + if(comp instanceof ToolBarButton) + { + ToolBarButton btn = (ToolBarButton) comp; + + if (btn.getAttribute("AD_Menu_ID") != null) + { + int menuId = (Integer)btn.getAttribute("AD_Menu_ID"); + if(menuId > 0) SessionManager.getAppDesktop().onMenuSelected(menuId); + } + else if (btn.getAttribute("AD_Process_ID") != null) + { + int processId = (Integer)btn.getAttribute("AD_Process_ID"); + String parameters = (String)btn.getAttribute("ProcessParameters"); + if (processId > 0) + openReportInViewer(processId, parameters); + } + } + } } /** @@ -331,4 +447,131 @@ public class DashboardController implements EventListener { .replace("<", "<"); return htmlString; } + + private ReportEngine runReport(int AD_Process_ID, String parameters) { + MProcess process = MProcess.get(Env.getCtx(), AD_Process_ID); + if (!process.isReport() || process.getAD_ReportView_ID() == 0) + new IllegalArgumentException("Not a Report AD_Process_ID=" + process.getAD_Process_ID() + + " - " + process.getName()); + // Process + int AD_Table_ID = 0; + int Record_ID = 0; + // + MPInstance pInstance = new MPInstance(process, Record_ID); + fillParameter(pInstance, parameters); + // + ProcessInfo pi = new ProcessInfo (process.getName(), process.getAD_Process_ID(), + AD_Table_ID, Record_ID); + pi.setAD_User_ID(Env.getAD_User_ID(Env.getCtx())); + pi.setAD_Client_ID(Env.getAD_Client_ID(Env.getCtx())); + pi.setAD_PInstance_ID(pInstance.getAD_PInstance_ID()); + if (!process.processIt(pi, null) && pi.getClassName() != null) + new IllegalStateException("Process failed: (" + pi.getClassName() + ") " + pi.getSummary()); + + // Report + ReportEngine re = ReportEngine.get(Env.getCtx(), pi); + if (re == null) + new IllegalStateException("Cannot create Report AD_Process_ID=" + process.getAD_Process_ID() + + " - " + process.getName()); + + return re; + } + + public void embedReport(Component parent, int AD_Process_ID, String parameters) throws Exception { + ReportEngine re = runReport(AD_Process_ID, parameters); + + Iframe iframe = new Iframe(); + iframe.setWidth("99%"); + iframe.setHeight("90%"); + iframe.setStyle("min-height:300px; border: 1px solid lightgray; margin:auto"); + File file = File.createTempFile(re.getName(), ".html"); + re.createHTML(file, false, AEnv.getLanguage(Env.getCtx()), new HTMLExtension(Executions.getCurrent().getContextPath(), "rp", parent.getUuid())); + AMedia media = new AMedia(re.getName(), "html", "text/html", file, false); + iframe.setContent(media); + parent.appendChild(iframe); + } + + protected void openReportInViewer(int AD_Process_ID, String parameters) { + ReportEngine re = runReport(AD_Process_ID, parameters); + new ZkReportViewerProvider().openViewer(re); + } + + /** + * Execute Drill to Query + * @param query query + */ + public void executeDrill (MQuery query) + { + int AD_Table_ID = MTable.getTable_ID(query.getTableName()); + if (!MRole.getDefault().isCanReport(AD_Table_ID)) + { + FDialog.error(0, dashboardLayout.getParent(), "AccessCannotReport", query.getTableName()); + return; + } + if (AD_Table_ID != 0) + new WReport(AD_Table_ID, query); + } // executeDrill + + private void fillParameter(MPInstance pInstance, String parameters) { + if (parameters != null && parameters.trim().length() > 0) { + Map paramMap = new HashMap(); + String[] params = parameters.split("[,]"); + for (String s : params) + { + String[] elements = s.split("[=]"); + String key = elements[0]; + String value = elements[1]; + paramMap.put(key, value); + } + MPInstancePara[] iParams = pInstance.getParameters(); + for (MPInstancePara iPara : iParams) + { + String variable = paramMap.get(iPara.getParameterName()); + // Value - Constant/Variable + Object value = variable; + if (variable == null + || (variable != null && variable.length() == 0)) + value = null; + else if (variable.indexOf('@') != -1) // we have a variable + { + value = Env.parseContext(Env.getCtx(), 0, variable, false, false); + } // @variable@ + + // No Value + if (value == null) + { + continue; + } + + // Convert to Type + if (DisplayType.isNumeric(iPara.getDisplayType()) + || DisplayType.isID(iPara.getDisplayType())) + { + BigDecimal bd = null; + if (value instanceof BigDecimal) + bd = (BigDecimal)value; + else if (value instanceof Integer) + bd = new BigDecimal (((Integer)value).intValue()); + else + bd = new BigDecimal (value.toString()); + iPara.setP_Number(bd); + } + else if (DisplayType.isDate(iPara.getDisplayType())) + { + Timestamp ts = null; + if (value instanceof Timestamp) + ts = (Timestamp)value; + else + ts = Timestamp.valueOf(value.toString()); + iPara.setP_Date(ts); + } + else + { + iPara.setP_String(value.toString()); + } + iPara.saveEx(); + + } + } + } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DefaultDesktop.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DefaultDesktop.java index 92cd997ce8..01d83d7161 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DefaultDesktop.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DefaultDesktop.java @@ -29,7 +29,6 @@ import org.adempiere.webui.component.ToolBarButton; import org.adempiere.webui.dashboard.DPActivities; import org.adempiere.webui.event.MenuListener; import org.adempiere.webui.panel.HeaderPanel; -import org.adempiere.webui.panel.SidePanel; import org.adempiere.webui.session.SessionContextListener; import org.adempiere.webui.session.SessionManager; import org.adempiere.webui.util.IServerPushCallback; @@ -82,17 +81,17 @@ public class DefaultDesktop extends TabbedDesktop implements MenuListener, Seria private Tabpanel homeTab; - private DashboardController dashboardController; + private DashboardController dashboardController, sideController; public DefaultDesktop() { super(); dashboardController = new DashboardController(); + sideController = new DashboardController(); } protected Component doCreatePart(Component parent) { - HeaderPanel pnlHead = new HeaderPanel(); layout = new Borderlayout(); @@ -116,7 +115,6 @@ public class DefaultDesktop extends TabbedDesktop implements MenuListener, Seria w.setSclass("desktop-left-column"); w.setCollapsible(true); w.setSplittable(true); - w.setTitle(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "Menu"))); w.setFlex(false); w.addEventListener(Events.ON_OPEN, new EventListener() { @Override @@ -131,8 +129,7 @@ public class DefaultDesktop extends TabbedDesktop implements MenuListener, Seria boolean menuCollapsed= pref.isPropertyBool(UserPreference.P_MENU_COLLAPSED); w.setOpen(!menuCollapsed); - SidePanel pnlSide = new SidePanel(w); - pnlSide.getMenuPanel().addMenuListener(this); + sideController.render(w, this, false); windowArea = new Center(); windowArea.setParent(layout); @@ -187,7 +184,7 @@ public class DefaultDesktop extends TabbedDesktop implements MenuListener, Seria //register as 0 registerWindow(homeTab); - dashboardController.render(homeTab, this); + dashboardController.render(homeTab, this, true); if (AEnv.isTablet()) { @@ -240,7 +237,11 @@ public class DefaultDesktop extends TabbedDesktop implements MenuListener, Seria if (dashboardController != null) { dashboardController.onSetPage(page, layout.getDesktop(), this); - } + } + + if (sideController != null) { + sideController.onSetPage(page, layout.getDesktop(), this); + } } } @@ -256,6 +257,10 @@ public class DefaultDesktop extends TabbedDesktop implements MenuListener, Seria if (dashboardController != null) { dashboardController.onLogOut(); } + + if (sideController != null) { + sideController.onLogOut(); + } } public void updateUI() { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/NavBar2Desktop.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/NavBar2Desktop.java index b7ba0e13ab..01e4493197 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/NavBar2Desktop.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/NavBar2Desktop.java @@ -27,7 +27,6 @@ import org.adempiere.webui.dashboard.DashboardPanel; import org.adempiere.webui.event.MenuListener; import org.adempiere.webui.panel.ADForm; import org.adempiere.webui.panel.HeaderPanel; -import org.adempiere.webui.panel.SidePanel; import org.adempiere.webui.session.SessionContextListener; import org.adempiere.webui.session.SessionManager; import org.adempiere.webui.util.IServerPushCallback; @@ -49,9 +48,9 @@ import org.zkoss.zk.ui.event.OpenEvent; import org.zkoss.zk.ui.util.Clients; import org.zkoss.zul.Borderlayout; import org.zkoss.zul.Center; +import org.zkoss.zul.Div; import org.zkoss.zul.North; import org.zkoss.zul.West; -import org.zkoss.zul.Div; /** * @author hengsin @@ -82,12 +81,13 @@ public class NavBar2Desktop extends TabbedDesktop implements MenuListener, Seria private Tabpanel homeTab; - private DashboardController dashboardController; + private DashboardController dashboardController, sideController; public NavBar2Desktop() { super(); dashboardController = new DashboardController(); + sideController = new DashboardController(); } protected Component doCreatePart(Component parent) @@ -115,7 +115,6 @@ public class NavBar2Desktop extends TabbedDesktop implements MenuListener, Seria w.setWidth("300px"); w.setCollapsible(true); w.setSplittable(true); - w.setTitle(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "Menu"))); w.setFlex(true); w.addEventListener(Events.ON_OPEN, new EventListener() { @Override @@ -130,8 +129,7 @@ public class NavBar2Desktop extends TabbedDesktop implements MenuListener, Seria boolean menuCollapsed= pref.isPropertyBool(UserPreference.P_MENU_COLLAPSED); w.setOpen(!menuCollapsed); - SidePanel pnlSide = new SidePanel(w); - pnlSide.getMenuPanel().addMenuListener(this); + sideController.render(w, this, false); Center center = new Center(); center.setParent(layout); @@ -222,7 +220,7 @@ public class NavBar2Desktop extends TabbedDesktop implements MenuListener, Seria //register as 0 registerWindow(homeTab); - dashboardController.render(homeTab, this); + dashboardController.render(homeTab, this, true); } public void onEvent(Event event) @@ -271,6 +269,9 @@ public class NavBar2Desktop extends TabbedDesktop implements MenuListener, Seria if (dashboardController != null) { dashboardController.onSetPage(page, layout.getDesktop(), this); } + if (sideController != null) { + sideController.onSetPage(page, layout.getDesktop(), this); + } } /** @@ -285,6 +286,9 @@ public class NavBar2Desktop extends TabbedDesktop implements MenuListener, Seria if (dashboardController != null) { dashboardController.onLogOut(); } + if (sideController != null) { + sideController.onLogOut(); + } } public void updateUI() { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/NavBarDesktop.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/NavBarDesktop.java index 0288a1d905..b22acddd47 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/NavBarDesktop.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/NavBarDesktop.java @@ -28,7 +28,7 @@ import org.adempiere.webui.dashboard.DashboardPanel; import org.adempiere.webui.event.MenuListener; import org.adempiere.webui.panel.ADForm; import org.adempiere.webui.panel.HeaderPanel; -import org.adempiere.webui.panel.SidePanel; +import org.adempiere.webui.panel.MenuTreePanel; import org.adempiere.webui.session.SessionContextListener; import org.adempiere.webui.session.SessionManager; import org.adempiere.webui.util.IServerPushCallback; @@ -50,11 +50,11 @@ import org.zkoss.zk.ui.event.OpenEvent; import org.zkoss.zk.ui.util.Clients; import org.zkoss.zul.Borderlayout; import org.zkoss.zul.Center; -import org.zkoss.zul.North; -import org.zkoss.zul.West; import org.zkoss.zul.Div; +import org.zkoss.zul.North; import org.zkoss.zul.Treeitem; import org.zkoss.zul.Treerow; +import org.zkoss.zul.West; /** * @author hengsin @@ -144,9 +144,7 @@ public class NavBarDesktop extends TabbedDesktop implements MenuListener, Serial navigationPanel.setWidth("100%"); navigationPanel.setHeight("100%"); - SidePanel pnlSide = new SidePanel(null); - pnlSide.getMenuPanel().addMenuListener(this); - navigationPanel.add(pnlSide, "Application Menu"); + navigationPanel.add(new MenuTreePanel(null), "Application Menu"); Div div = new Div(); favPanel = (DPFavourites) Executions.createComponents(FAVOURITES_PATH, div, null); @@ -224,7 +222,7 @@ public class NavBarDesktop extends TabbedDesktop implements MenuListener, Serial //register as 0 registerWindow(homeTab); - dashboardController.render(homeTab, this); + dashboardController.render(homeTab, this, true); } public void onEvent(Event event) @@ -300,7 +298,7 @@ public class NavBarDesktop extends TabbedDesktop implements MenuListener, Serial public void logout() { if (dashboardController != null) { dashboardController.onLogOut(); - } + } } public void updateUI() { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/AbstractMenuPanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/AbstractMenuPanel.java new file mode 100644 index 0000000000..3db0317e5a --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/AbstractMenuPanel.java @@ -0,0 +1,333 @@ +/****************************************************************************** + * Copyright (C) 2012 Elaine Tan * + * Copyright (C) 2012 Trek Global + * 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 java.util.Collection; +import java.util.Enumeration; +import java.util.Properties; + +import org.adempiere.webui.apps.AEnv; +import org.adempiere.webui.event.TouchEventHelper; +import org.adempiere.webui.event.TouchEvents; +import org.adempiere.webui.exception.ApplicationException; +import org.adempiere.webui.session.SessionManager; +import org.adempiere.webui.window.ADWindow; +import org.compiere.model.GridTab; +import org.compiere.model.MMenu; +import org.compiere.model.MQuery; +import org.compiere.model.MTree; +import org.compiere.model.MTreeNode; +import org.compiere.model.SystemIDs; +import org.compiere.util.DB; +import org.compiere.util.Env; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zk.ui.event.EventQueues; +import org.zkoss.zk.ui.event.Events; +import org.zkoss.zul.A; +import org.zkoss.zul.Panel; +import org.zkoss.zul.Toolbarbutton; +import org.zkoss.zul.Tree; +import org.zkoss.zul.Treecell; +import org.zkoss.zul.Treechildren; +import org.zkoss.zul.Treecol; +import org.zkoss.zul.Treecols; +import org.zkoss.zul.Treeitem; +import org.zkoss.zul.Treerow; + +/** + * Menu Panel Base + * @author Elaine + * @date July 31, 2012 + */ +public abstract class AbstractMenuPanel extends Panel implements EventListener, SystemIDs { + + /** + * + */ + private static final long serialVersionUID = -6160708371157917922L; + + public static final String MENU_ITEM_SELECTED_QUEUE = "MENU_ITEM_SELECTED_QUEUE"; + + private Properties ctx; + private Tree menuTree; + + public AbstractMenuPanel(Component parent) + { + if (parent != null) + this.setParent(parent); + init(); + + EventQueues.lookup(MENU_ITEM_SELECTED_QUEUE, EventQueues.APPLICATION, true).subscribe(new EventListener() { + public void onEvent(Event event) throws Exception { + if (event.getName() == Events.ON_SELECT) + { + Treeitem selectedItem = (Treeitem) event.getData(); + + if (selectedItem != null) + { + Object value = selectedItem.getValue(); + if (value != null) + { + if (menuTree.getSelectedItem() != null && menuTree.getSelectedItem().getValue() != null && menuTree.getSelectedItem().getValue().equals(value)) + return; + + Collection items = menuTree.getItems(); + for (Treeitem item : items) + { + if (item != null && item.getValue() != null && item.getValue().equals(value)) + { + TreeSearchPanel.select(item); + return; + } + } + } + else + { + String label = selectedItem.getLabel(); + if (menuTree.getSelectedItem() != null && menuTree.getSelectedItem().getLabel() != null && menuTree.getSelectedItem().getLabel().equals(label)) + return; + + Collection items = menuTree.getItems(); + for (Treeitem item : items) + { + if (item != null && item.getLabel() != null && item.getLabel().equals(label)) + { + TreeSearchPanel.select(item); + return; + } + } + } + } + } + } + }); + } + + protected void init() { + ctx = Env.getCtx(); + int adRoleId = Env.getAD_Role_ID(ctx); + int adTreeId = getTreeId(ctx, adRoleId); + MTree mTree = new MTree(ctx, adTreeId, false, true, null); + MTreeNode rootNode = mTree.getRoot(); + initComponents(); + initMenu(rootNode); + } + + protected void initComponents() + { + this.setWidth("100%"); + this.setHeight("100%"); + this.setStyle("position: relative"); + + menuTree = new Tree(); + menuTree.setMultiple(false); + menuTree.setId("mnuMain"); + menuTree.setWidth("100%"); + menuTree.setVflex(true); + menuTree.setSizedByContent(false); + menuTree.setPageSize(-1); // Due to bug in the new paging functionality + + menuTree.setStyle("border: none"); + } + + private void initMenu(MTreeNode rootNode) + { + Treecols treeCols = new Treecols(); + Treecol treeCol = new Treecol(); + + Treechildren rootTreeChildren = new Treechildren(); + + treeCols.appendChild(treeCol); + menuTree.appendChild(treeCols); + menuTree.appendChild(rootTreeChildren); + + generateMenu(rootTreeChildren, rootNode); + } + + private int getTreeId(Properties ctx, int adRoleId) + { + int AD_Tree_ID = DB.getSQLValue(null, + "SELECT COALESCE(r.AD_Tree_Menu_ID, ci.AD_Tree_Menu_ID)" + + "FROM AD_ClientInfo ci" + + " INNER JOIN AD_Role r ON (ci.AD_Client_ID=r.AD_Client_ID) " + + "WHERE AD_Role_ID=?", adRoleId); + if (AD_Tree_ID <= 0) + AD_Tree_ID = TREE_MENUPRIMARY; // Menu + return AD_Tree_ID; + } + + private void generateMenu(Treechildren treeChildren, MTreeNode mNode) + { + Enumeration nodeEnum = mNode.children(); + + while(nodeEnum.hasMoreElements()) + { + MTreeNode mChildNode = (MTreeNode)nodeEnum.nextElement(); + Treeitem treeitem = new Treeitem(); + treeChildren.appendChild(treeitem); + treeitem.setTooltiptext(mChildNode.getDescription()); + + if(mChildNode.getChildCount() != 0) + { + treeitem.setOpen(false); + treeitem.setLabel(mChildNode.getName()); + Treecell cell = (Treecell)treeitem.getTreerow().getFirstChild(); + cell.setSclass("menu-treecell-cnt"); + Treechildren treeItemChildren = new Treechildren(); + treeitem.appendChild(treeItemChildren); + generateMenu(treeItemChildren, mChildNode); + if (treeItemChildren.getChildren().size() == 0) + { + treeItemChildren.detach(); + } + + treeitem.getTreerow().addEventListener(Events.ON_CLICK, this); + } + else + { + treeitem.setValue(String.valueOf(mChildNode.getNode_ID())); + Treerow treeRow = new Treerow(); + treeitem.appendChild(treeRow); + Treecell treeCell = new Treecell(); + treeRow.appendChild(treeCell); + A link = new A(); + treeCell.appendChild(link); + + if (mChildNode.isReport()) + { + link.setImage("/images/mReport.png"); + treeitem.setAttribute("menu.type", "report"); + } + else if (mChildNode.isProcess() || mChildNode.isTask()) + { + link.setImage("/images/mProcess.png"); + treeitem.setAttribute("menu.type", "process"); + } + else if (mChildNode.isWorkFlow()) + { + link.setImage("/images/mWorkFlow.png"); + treeitem.setAttribute("menu.type", "workflow"); + } + else + { + link.setImage("/images/mWindow.png"); + treeitem.setAttribute("menu.type", "window"); + + Toolbarbutton newBtn = new Toolbarbutton(null, "/images/New10.png"); + newBtn.setStyle("margin-bottom:5px"); + treeCell.appendChild(newBtn); + newBtn.addEventListener(Events.ON_CLICK, this); + } + link.setLabel(mChildNode.getName()); + + link.addEventListener(Events.ON_CLICK, this); + link.setSclass("menu-href"); + if (AEnv.isTablet()) { + TouchEventHelper.addOnTapEventListener(link, this); + } + + treeitem.getTreerow().setDraggable("favourite"); // Elaine 2008/07/24 + } + } + } + + public void onEvent(Event event) + { + Component comp = event.getTarget(); + String eventName = event.getName(); + if (eventName.equals(TouchEvents.ON_TAP)) + { + doOnClick(comp); + } + else if (eventName.equals(Events.ON_CLICK) && !TouchEventHelper.isIgnoreClick(comp)) + { + doOnClick(comp); + } + } + + private void doOnClick(Component comp) { + boolean newRecord = false; + if (comp instanceof A) { + comp = comp.getParent().getParent(); + } + if (comp instanceof Toolbarbutton) { + comp = comp.getParent().getParent(); + newRecord = true; + } + if (comp instanceof Treerow) + { + Treeitem selectedItem = (Treeitem) comp.getParent(); + if(selectedItem.getValue() != null) + { + if (newRecord) + { + try + { + int menuId = Integer.parseInt((String)selectedItem.getValue()); + MMenu menu = new MMenu(Env.getCtx(), menuId, null); + + MQuery query = new MQuery(""); + query.addRestriction("1=2"); + query.setRecordCount(0); + + ADWindow frame = SessionManager.getAppDesktop().openWindow(menu.getAD_Window_ID(), query); + if(frame == null) + return; + + GridTab tab = frame.getADWindowPanel().getActiveGridTab(); + tab.dataNew(false); + } + catch (Exception e) + { + throw new ApplicationException(e.getMessage(), e); + } + } + else + { + fireMenuSelectedEvent(selectedItem); + } + } + else + selectedItem.setOpen(!selectedItem.isOpen()); + selectedItem.setSelected(true); + EventQueues.lookup(MENU_ITEM_SELECTED_QUEUE, EventQueues.APPLICATION, true).publish(new Event(Events.ON_SELECT, null, selectedItem)); + } + } + + protected void fireMenuSelectedEvent(Treeitem selectedItem) { + int nodeId = Integer.parseInt((String)selectedItem.getValue()); + + try + { + SessionManager.getAppDesktop().onMenuSelected(nodeId); + } + catch (Exception e) + { + throw new ApplicationException(e.getMessage(), e); + } + } + + public Tree getMenuTree() + { + return menuTree; + } + + public Properties getCtx() + { + return ctx; + } +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/MenuSearchPanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/MenuSearchPanel.java new file mode 100644 index 0000000000..7fd3f9d8be --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/MenuSearchPanel.java @@ -0,0 +1,85 @@ +/****************************************************************************** + * Copyright (C) 2012 Elaine Tan * + * Copyright (C) 2012 Trek Global + * 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.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.Events; +import org.zkoss.zul.Panelchildren; +import org.zkoss.zul.Style; +import org.zkoss.zul.Toolbar; +import org.zkoss.zul.Toolbarbutton; + +/** + * Menu Search Panel + * @author Elaine + * @date July 31, 2012 + */ +public class MenuSearchPanel extends AbstractMenuPanel +{ + /** + * + */ + private static final long serialVersionUID = 5308522340852904168L; + + + + private TreeSearchPanel pnlSearch; + private MenuTreeFilterPanel filterPanel; + private Toolbarbutton filterBtn; + + public MenuSearchPanel(Component parent) + { + super(parent); + } + + protected void init() + { + super.init(); + pnlSearch.initialise(); + } + + protected void initComponents() + { + super.initComponents(); + + Toolbar toolbar = new Toolbar(); + toolbar.setMold("panel"); + this.appendChild(toolbar); + + pnlSearch = new TreeSearchPanel(getMenuTree()); + Style style = new Style(); + style.setContent(".z-comboitem-img{ vertical-align:top; padding-right:2px; padding-bottom:4px; }"); + pnlSearch.insertBefore(style, pnlSearch.getFirstChild()); + toolbar.appendChild(pnlSearch); + filterBtn = new Toolbarbutton(); + filterBtn.setImage("/images/Preference16.png"); + filterBtn.addEventListener(Events.ON_CLICK, this); + toolbar.appendChild(filterBtn); + + Panelchildren pc = new Panelchildren(); + this.appendChild(pc); + filterPanel = new MenuTreeFilterPanel(getMenuTree(), pnlSearch); + pc.appendChild(filterPanel); + } + + public void onEvent(Event event) + { + super.onEvent(event); + + if (event.getName().equals(Events.ON_CLICK) && event.getTarget() == filterBtn) + filterPanel.open(filterBtn); + } +} \ No newline at end of file diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/MenuTreeFilterPanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/MenuTreeFilterPanel.java new file mode 100644 index 0000000000..af335bacf4 --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/MenuTreeFilterPanel.java @@ -0,0 +1,185 @@ +package org.adempiere.webui.panel; + +import org.adempiere.webui.util.TreeItemAction; +import org.adempiere.webui.util.TreeUtils; +import org.zkoss.zk.ui.IdSpace; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zk.ui.event.EventQueues; +import org.zkoss.zk.ui.event.Events; +import org.zkoss.zul.Checkbox; +import org.zkoss.zul.Popup; +import org.zkoss.zul.Tree; +import org.zkoss.zul.Treeitem; +import org.zkoss.zul.Vbox; + +public class MenuTreeFilterPanel extends Popup implements EventListener, IdSpace { + + private static final long serialVersionUID = 5884898489357885711L; + + public static final String MENU_TREE_FILTER_CHECKED_QUEUE = "MENU_TREE_FILTER_CHECKED_QUEUE"; + + private Tree tree; + private TreeSearchPanel searchPanel; + + public MenuTreeFilterPanel(Tree tree, TreeSearchPanel panel) { + super(); + this.tree = tree; + this.searchPanel = panel; + + Vbox box = new Vbox(); + + Checkbox report = new Checkbox(); + report.setImage("/images/mReport.png"); + report.setChecked(true); + report.setId("report"); + report.addEventListener(Events.ON_CHECK, this); + box.appendChild(report); + + Checkbox process = new Checkbox(); + process.setImage("/images/mProcess.png"); + process.setChecked(true); + process.setId("process"); + process.addEventListener(Events.ON_CHECK, this); + box.appendChild(process); + + Checkbox workflow = new Checkbox(); + workflow.setImage("/images/mWorkFlow.png"); + workflow.setChecked(true); + workflow.setId("workflow"); + workflow.addEventListener(Events.ON_CHECK, this); + box.appendChild(workflow); + + Checkbox window = new Checkbox(); + window.setImage("/images/mWindow.png"); + window.setChecked(true); + window.setId("window"); + window.addEventListener(Events.ON_CHECK, this); + box.appendChild(window); + + Checkbox single = new Checkbox(); + single.setLabel("Flat View"); + single.setId("flatView"); + single.setChecked(false); + single.addEventListener(Events.ON_CHECK, this); + box.appendChild(single); + + appendChild(box); + } + + public void onEvent(Event event) throws Exception { + final Checkbox chk = (Checkbox) event.getTarget(); + if ("flatView".equals(chk.getId())) + toggleFlatView(tree, chk); + else + toggle(tree, chk); + if (searchPanel != null) + searchPanel.refreshSearchList(); + tree.invalidate(); + + EventQueues.lookup(MENU_TREE_FILTER_CHECKED_QUEUE, EventQueues.APPLICATION, true).publish(new Event(Events.ON_CHECK, null, chk)); + } + + public static void toggleFlatView(Tree tree, final Checkbox chk) { + TreeUtils.traverse(tree, new TreeItemAction() { + public void run(Treeitem treeItem) { + if (treeItem.getAttribute("menu.type") == null) + { + if (chk.isChecked()) + { + if (treeItem.getLevel() > 0) + { + treeItem.setVisible(false); + } + } + else + { + treeItem.setVisible(true); + } + } + else + { + if (chk.isChecked()) + { + if (treeItem.getParentItem() != null && !treeItem.getParentItem().isVisible()) + { + StringBuffer label = new StringBuffer(treeItem.getLabel()); + treeItem.setAttribute("flatView.label", treeItem.getLabel()); + Treeitem parent = treeItem.getParentItem(); + treeItem.setAttribute("flatView.parent", parent); + while(parent != null) + { + if (parent.isVisible()) + { + treeItem.detach(); + parent.getTreechildren().appendChild(treeItem); + break; + } + String t = parent.getLabel(); + label.insert(0, " > "); + label.insert(0, t); + parent = parent.getParentItem(); + } + treeItem.setLabel(label.toString()); + } + else + { + Treeitem parent = treeItem.getParentItem(); + if (parent != null) + parent.getTreechildren().appendChild(treeItem); + } + } + else + { + if (treeItem.getAttribute("flatView.parent") != null) + { + Treeitem parent = (Treeitem) treeItem.getAttribute("flatView.parent"); + String label = (String) treeItem.getAttribute("flatView.label"); + treeItem.setLabel(label); + treeItem.detach(); + parent.getTreechildren().appendChild(treeItem); + treeItem.removeAttribute("flatView.parent"); + treeItem.removeAttribute("flatView.label"); + } + } + } + } + }); + } + + public static void toggle(Tree tree, final Checkbox chk) { + TreeUtils.traverse(tree, new TreeItemAction() { + public void run(Treeitem treeItem) { + if (treeItem.getAttribute("menu.type") != null) + { + if (chk.isChecked()) + { + if (chk.getId().equals(treeItem.getAttribute("menu.type"))) + { + boolean open = false; + Treeitem parent = treeItem.getParentItem(); + if (parent != null) + open = parent.isOpen(); + treeItem.setVisible(true); + if (parent != null) + parent.setOpen(open); + } + } + else + { + if (chk.getId().equals(treeItem.getAttribute("menu.type"))) + { + boolean open = false; + Treeitem parent = treeItem.getParentItem(); + if (parent != null) + open = parent.isOpen(); + treeItem.setVisible(false); + if (parent != null) + parent.setOpen(open); + } + } + } + } + }); + } +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/MenuTreePanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/MenuTreePanel.java new file mode 100644 index 0000000000..875124e12c --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/MenuTreePanel.java @@ -0,0 +1,153 @@ +/****************************************************************************** + * Copyright (C) 2012 Elaine Tan * + * Copyright (C) 2012 Trek Global + * 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.adempiere.webui.component.ToolBarButton; +import org.adempiere.webui.util.TreeUtils; +import org.compiere.model.MUser; +import org.compiere.util.Env; +import org.compiere.util.Msg; +import org.compiere.util.Util; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zk.ui.event.EventQueues; +import org.zkoss.zk.ui.event.Events; +import org.zkoss.zk.ui.util.Clients; +import org.zkoss.zul.Checkbox; +import org.zkoss.zul.Panelchildren; +import org.zkoss.zul.Toolbar; + +/** + * Menu Tree Panel + * @author Elaine + * @date July 31, 2012 + */ +public class MenuTreePanel extends AbstractMenuPanel +{ + /** + * + */ + private static final long serialVersionUID = -911113870835089567L; + private static final String ON_EXPAND_MENU_EVENT = "onExpandMenu"; + private ToolBarButton expandToggle; + + public MenuTreePanel(Component parent) + { + super(parent); + } + + protected void init() + { + super.init(); + + // Auto Expand Tree - nmicoud IDEMPIERE 195 + if (MUser.get(getCtx()).isMenuAutoExpand()) + expandAll(); + // Auto Expand Tree - nmicoud IDEMPIERE 195 + + EventQueues.lookup(MenuTreeFilterPanel.MENU_TREE_FILTER_CHECKED_QUEUE, EventQueues.APPLICATION, true).subscribe(new EventListener() { + public void onEvent(Event event) throws Exception { + if (event.getName() == Events.ON_CHECK) + { + Checkbox chk = (Checkbox) event.getData(); + if (chk != null) + { + if ("flatView".equals(chk.getId())) + MenuTreeFilterPanel.toggleFlatView(getMenuTree(), chk); + else + MenuTreeFilterPanel.toggle(getMenuTree(), chk); + getMenuTree().invalidate(); + } + } + } + }); + } + + protected void initComponents() + { + super.initComponents(); + + Panelchildren pc = new Panelchildren(); + this.appendChild(pc); + pc.appendChild(getMenuTree()); + + // Elaine 2009/02/27 - expand tree + Toolbar toolbar = new Toolbar(); + toolbar.setStyle("verticle-align: middle; padding: 2px"); + expandToggle = new ToolBarButton(); + expandToggle.setLabel(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "ExpandTree"))); + expandToggle.setMode("toggle"); + expandToggle.addEventListener(Events.ON_CHECK, this); + toolbar.appendChild(expandToggle); + toolbar.setMold("panel"); + this.appendChild(toolbar); + + this.addEventListener(ON_EXPAND_MENU_EVENT, this); + } + + public void onEvent(Event event) + { + super.onEvent(event); + + String eventName = event.getName(); + // Elaine 2009/02/27 - expand tree + if (eventName.equals(Events.ON_CHECK) && event.getTarget() == expandToggle) + { + Clients.showBusy(null); + Events.echoEvent(ON_EXPAND_MENU_EVENT, this, null); + } + else if (eventName.equals(ON_EXPAND_MENU_EVENT)) + { + expandOnCheck(); + Clients.clearBusy(); + } + // + } + + /** + * expand all node + */ + public void expandAll() + { + if (!expandToggle.isChecked()) + expandToggle.setChecked(true); + + TreeUtils.expandAll(getMenuTree()); + } + + /** + * collapse all node + */ + public void collapseAll() + { + if (expandToggle.isChecked()) + expandToggle.setChecked(false); + + TreeUtils.collapseAll(getMenuTree()); + } + + /** + * On check event for the expand checkbox + */ + private void expandOnCheck() + { + if (expandToggle.isChecked()) + expandAll(); + else + collapseAll(); + } + // +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/TreeSearchPanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/TreeSearchPanel.java index 72a886299a..6be1fdc7b8 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/TreeSearchPanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/TreeSearchPanel.java @@ -313,7 +313,7 @@ public class TreeSearchPanel extends Panel implements EventListener, Tree Events.postEvent(event); } - private void select(Treeitem selectedItem) { + public static void select(Treeitem selectedItem) { Treeitem parent = selectedItem.getParentItem(); while (parent != null) { if (!parent.isOpen()) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/UserPanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/UserPanel.java index 62dc8b2100..78581df534 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/UserPanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/UserPanel.java @@ -44,7 +44,7 @@ import org.zkoss.zul.Vbox; * @date Feb 25, 2007 * @version $Revision: 0.10 $ */ -public class UserPanel extends Vbox implements EventListener +public class UserPanel extends Vbox implements EventListener { private static final long serialVersionUID = -45350536628290540L; @@ -72,13 +72,22 @@ public class UserPanel extends Vbox implements EventListener this.setWidth("100%"); this.setAlign("right"); // + + Hbox hbox = new Hbox(); + this.appendChild(hbox); + + hbox.appendChild(new MenuSearchPanel(this)); + + Vbox vbox = new Vbox(); + hbox.appendChild(vbox); lblUserNameValue.setValue(getUserName() + "@" + getClientName() + "." + getOrgName()); lblUserNameValue.setStyle("text-align:right"); LayoutUtils.addSclass("desktop-header-font", lblUserNameValue); - this.appendChild(lblUserNameValue); + vbox.appendChild(lblUserNameValue); - Hbox hbox = new Hbox(); + hbox = new Hbox(); + vbox.appendChild(hbox); preference.setLabel(Msg.getMsg(Env.getCtx(), "Preference")); preference.addEventListener(Events.ON_CLICK, this); @@ -105,8 +114,6 @@ public class UserPanel extends Vbox implements EventListener logout.setStyle("text-align:right"); LayoutUtils.addSclass("desktop-header-font", logout); logout.setParent(hbox); - - this.appendChild(hbox); } private String getUserName() diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/util/TreeUtils.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/util/TreeUtils.java index 02d5a56b17..d383543c7b 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/util/TreeUtils.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/util/TreeUtils.java @@ -13,8 +13,6 @@ *****************************************************************************/ package org.adempiere.webui.util; -import java.util.List; - import org.zkoss.zul.DefaultTreeNode; import org.zkoss.zul.Tree; import org.zkoss.zul.TreeModel; @@ -77,10 +75,10 @@ public class TreeUtils { */ public static void traverse(Treechildren treechildren, TreeItemAction action) { - List list = treechildren.getChildren(); - for(int index = 0; index < list.size(); index++) + Object[] list = treechildren.getChildren().toArray(); + for(int index = 0; index < list.length; index++) { - Object o = list.get(index); + Object o = list[index]; if(o instanceof Treechildren) { Treechildren treechild = (Treechildren) o; @@ -91,10 +89,10 @@ public class TreeUtils { Treeitem treeitem = (Treeitem) o; action.run(treeitem); - List treeitemChildren = treeitem.getChildren(); - for(int childIndex = 0; childIndex < treeitemChildren.size(); childIndex++) + Object[] treeitemChildren = treeitem.getChildren().toArray(); + for(int childIndex = 0; childIndex < treeitemChildren.length; childIndex++) { - Object child = treeitemChildren.get(childIndex); + Object child = treeitemChildren[childIndex]; if(child instanceof Treechildren) { Treechildren treechild = (Treechildren) child; diff --git a/org.adempiere.ui.zk/build.properties b/org.adempiere.ui.zk/build.properties index b1c303cacd..f2a25e7f08 100644 --- a/org.adempiere.ui.zk/build.properties +++ b/org.adempiere.ui.zk/build.properties @@ -16,7 +16,8 @@ bin.includes = META-INF/,\ WEB-INF/lib/atmosphere-compat-jbossweb-0.9.jar,\ WEB-INF/lib/atmosphere-compat-tomcat-0.9.jar,\ WEB-INF/lib/atmosphere-compat-tomcat7-0.9.jar,\ - metainfo/ + metainfo/,\ + WEB-INF/lib/calendar.jar src.includes = WEB-INF/classes/,\ WEB-INF/tld/,\ WEB-INF/web.xml,\ diff --git a/org.adempiere.ui.zk/calendar.css b/org.adempiere.ui.zk/calendar.css new file mode 100644 index 0000000000..94843dfb6f --- /dev/null +++ b/org.adempiere.ui.zk/calendar.css @@ -0,0 +1,157 @@ +.float-left { + float: left; +} +.float-right { + float: right; + margin-top: 5px; + padding-right: 10px; +} +.refresh { + background: none !important; + text-decoration: underline !important; + border: 0 !important; + color: blue !important; +} +.tabs * { + background: #7EAAC6; + cursor: pointer; +} +.tabs .bd { + background: #7EAAC6; + zoom: 1; +} +.tabs .t1, .tabs .t2, .tabs .t3 { + background: #7EAAC6; + font-size: 0; + line-height: 0; + margin: 0 2px; + height: 1px; + padding: 0; + overflow: hidden; +} +.tabs .t2 { + margin: 0 1px; +} +.tabs .t3 { + background: white; + height: 1px; + margin: 0 1px; +} +.tabs .b1, .tabs .b2, .tabs .b3 { + background: #7EAAC6; + font-size: 0; + line-height: 0; + margin: 0 2px; + height: 1px; + padding: 0; + overflow: hidden; +} +.tabs .b2 { + margin: 0 1px; +} +.tabs .b3 { + background: white; + height: 1px; + margin: 0 1px; +} +.tabs .cm { + background: #C3E0F2; + margin: 0 1px; + border-left: 1px solid white; + border-right: 1px solid white; +} +.tabs .text { + line-height: 1.2em; + position: relative; + vertical-align: middle; + text-align: center; + white-space: nowrap; + color: #0F3B82; + padding: 2px 5px; +} +.tabs .text, .tabs .text * { + background: none; +} +.cnt { + position: relative; +} +.top { + background: #f1fcff; + border-bottom: 0.2em solid #B5D5E9; + overflow: hidden; + height: 0.7em; + position: absolute; + right: 0px; + left: 0px; + top: 0px; +} +.ie6 .top { + width: 100%; +} +.calendar-toolbar .z-toolbar-body { + width: 100%; + padding-left: 2px; +} +.calendar-toolbar { + margin: -3px; + padding-top: 5px; +} +.gecko2 .calendar-toolbar { + margin: -3px; +} +.arrows .cnt { + background: #CCE5F4; + zoom: 1; +} +.arrow-left { + border-color: #CCE5F4 #7EAAC6 #CCE5F4 #CCE5F4; + border-style: solid; + border-width: 5px; + height: 0; + width: 0; + top: 4px; + left: 5px; + position: absolute; + font-size: 0; + line-height: 0; +} +.arrow-right { + border-color: #CCE5F4 #CCE5F4 #CCE5F4 #7EAAC6; + border-style: solid; + border-width: 5px; + height: 0; + width: 0; + top: 4px; + left: 11px; + position: absolute; + font-size: 0; + line-height: 0; +} +.arrow-over .cnt { + background-color: #B9D0DE; +} +.arrow-over .arrow-left { + border-color: #B9D0DE white #B9D0DE #B9D0DE; +} +.arrow-over .arrow-right { + border-color: #B9D0DE #B9D0DE #B9D0DE white; +} +.blue *, .red *, .green *, .purple *, .khaki * { + color: white; + text-align: center; +} +.red { + background: #D96666!important; +} +.blue { + background: #668CD9!important; +} +.green { + background: #4CB052!important; +} +.khaki { + background: #BFBF4D!important; +} +.purple { + background: #B373B3!important; +} \ No newline at end of file diff --git a/org.adempiere.ui.zk/calendar.zul b/org.adempiere.ui.zk/calendar.zul new file mode 100644 index 0000000000..e2ffd38939 --- /dev/null +++ b/org.adempiere.ui.zk/calendar.zul @@ -0,0 +1,58 @@ + + + + +