diff --git a/migration/iD10/oracle/202208220922_IDEMPIERE-5393.sql b/migration/iD10/oracle/202208220922_IDEMPIERE-5393.sql new file mode 100644 index 0000000000..3ffb568f46 --- /dev/null +++ b/migration/iD10/oracle/202208220922_IDEMPIERE-5393.sql @@ -0,0 +1,46 @@ +-- IDEMPIERE-5393 +SELECT register_migration_script('202208220922_IDEMPIERE-5393.sql') FROM dual; + +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- Aug 18, 2022, 11:13:06 AM CEST +INSERT INTO AD_Column (AD_Column_ID,Version,Name,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintType,IsHtml) VALUES (215099,0,'Status Line',50010,'AD_StatusLine_ID',22,'N','N','N','N','N',0,'N',19,0,0,'Y',TO_TIMESTAMP('2022-08-18 11:13:06','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2022-08-18 11:13:06','YYYY-MM-DD HH24:MI:SS'),100,202635,'Y','N','D','N','N','N','Y','6318c76d-e4e1-4846-a1e8-57d4c5a52df3','N',0,'N','N','N','N') +; + +-- Aug 18, 2022, 11:13:15 AM CEST +UPDATE AD_Column SET FKConstraintName='ADStatusLine_PADashboardConten', FKConstraintType='N',Updated=TO_TIMESTAMP('2022-08-18 11:13:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215099 +; + +-- Aug 18, 2022, 11:13:15 AM CEST +ALTER TABLE PA_DashboardContent ADD AD_StatusLine_ID NUMBER(10) DEFAULT NULL +; + +-- Aug 18, 2022, 11:13:15 AM CEST +ALTER TABLE PA_DashboardContent ADD CONSTRAINT ADStatusLine_PADashboardConten FOREIGN KEY (AD_StatusLine_ID) REFERENCES ad_statusline(ad_statusline_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Aug 18, 2022, 11:13:37 AM CEST +INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (207135,'Status Line',50010,215099,'Y',22,220,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2022-08-18 11:13:37','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2022-08-18 11:13:37','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','b855dcfe-397a-48a7-bebc-0903f6caf14e','Y',210,2) +; + +-- Aug 18, 2022, 11:15:07 AM CEST +UPDATE AD_Field SET IsDisplayed='Y', SeqNo=180, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2022-08-18 11:15:07','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207135 +; + +-- Aug 18, 2022, 11:15:07 AM CEST +UPDATE AD_Field SET SeqNo=190, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2022-08-18 11:15:07','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=56504 +; + +-- Aug 18, 2022, 11:15:07 AM CEST +UPDATE AD_Field SET SeqNo=200, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2022-08-18 11:15:07','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200268 +; + +-- Aug 18, 2022, 11:15:07 AM CEST +UPDATE AD_Field SET SeqNo=210, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2022-08-18 11:15:07','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200260 +; + +-- Aug 18, 2022, 11:15:07 AM CEST +UPDATE AD_Field SET SeqNo=220, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2022-08-18 11:15:07','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202286 +; + diff --git a/migration/iD10/postgresql/202208220922_IDEMPIERE-5393.sql b/migration/iD10/postgresql/202208220922_IDEMPIERE-5393.sql new file mode 100644 index 0000000000..41ded15e6f --- /dev/null +++ b/migration/iD10/postgresql/202208220922_IDEMPIERE-5393.sql @@ -0,0 +1,43 @@ +-- IDEMPIERE-5393 +SELECT register_migration_script('202208220922_IDEMPIERE-5393.sql') FROM dual; + +-- Aug 18, 2022, 11:13:06 AM CEST +INSERT INTO AD_Column (AD_Column_ID,Version,Name,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintType,IsHtml) VALUES (215099,0,'Status Line',50010,'AD_StatusLine_ID',22,'N','N','N','N','N',0,'N',19,0,0,'Y',TO_TIMESTAMP('2022-08-18 11:13:06','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2022-08-18 11:13:06','YYYY-MM-DD HH24:MI:SS'),100,202635,'Y','N','D','N','N','N','Y','6318c76d-e4e1-4846-a1e8-57d4c5a52df3','N',0,'N','N','N','N') +; + +-- Aug 18, 2022, 11:13:15 AM CEST +UPDATE AD_Column SET FKConstraintName='ADStatusLine_PADashboardConten', FKConstraintType='N',Updated=TO_TIMESTAMP('2022-08-18 11:13:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215099 +; + +-- Aug 18, 2022, 11:13:15 AM CEST +ALTER TABLE PA_DashboardContent ADD COLUMN AD_StatusLine_ID NUMERIC(10) DEFAULT NULL +; + +-- Aug 18, 2022, 11:13:15 AM CEST +ALTER TABLE PA_DashboardContent ADD CONSTRAINT ADStatusLine_PADashboardConten FOREIGN KEY (AD_StatusLine_ID) REFERENCES ad_statusline(ad_statusline_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Aug 18, 2022, 11:13:37 AM CEST +INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (207135,'Status Line',50010,215099,'Y',22,220,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2022-08-18 11:13:37','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2022-08-18 11:13:37','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','b855dcfe-397a-48a7-bebc-0903f6caf14e','Y',210,2) +; + +-- Aug 18, 2022, 11:15:07 AM CEST +UPDATE AD_Field SET IsDisplayed='Y', SeqNo=180, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2022-08-18 11:15:07','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207135 +; + +-- Aug 18, 2022, 11:15:07 AM CEST +UPDATE AD_Field SET SeqNo=190, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2022-08-18 11:15:07','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=56504 +; + +-- Aug 18, 2022, 11:15:07 AM CEST +UPDATE AD_Field SET SeqNo=200, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2022-08-18 11:15:07','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200268 +; + +-- Aug 18, 2022, 11:15:07 AM CEST +UPDATE AD_Field SET SeqNo=210, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2022-08-18 11:15:07','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200260 +; + +-- Aug 18, 2022, 11:15:07 AM CEST +UPDATE AD_Field SET SeqNo=220, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2022-08-18 11:15:07','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202286 +; + 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 9845acba64..e9c74a242c 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 @@ -55,8 +55,8 @@ public interface I_PA_DashboardContent /** Column name AD_Client_ID */ public static final String COLUMNNAME_AD_Client_ID = "AD_Client_ID"; - /** Get Client. - * Client/Tenant for this installation. + /** Get Tenant. + * Tenant for this installation. */ public int getAD_Client_ID(); @@ -64,12 +64,12 @@ public interface I_PA_DashboardContent public static final String COLUMNNAME_AD_Org_ID = "AD_Org_ID"; /** Set Organization. - * Organizational entity within client + * Organizational entity within tenant */ public void setAD_Org_ID (int AD_Org_ID); /** Get Organization. - * Organizational entity within client + * Organizational entity within tenant */ public int getAD_Org_ID(); @@ -103,6 +103,17 @@ public interface I_PA_DashboardContent public org.compiere.model.I_AD_Role getAD_Role() throws RuntimeException; + /** Column name AD_StatusLine_ID */ + public static final String COLUMNNAME_AD_StatusLine_ID = "AD_StatusLine_ID"; + + /** Set Status Line */ + public void setAD_StatusLine_ID (int AD_StatusLine_ID); + + /** Get Status Line */ + public int getAD_StatusLine_ID(); + + public org.compiere.model.I_AD_StatusLine getAD_StatusLine() throws RuntimeException; + /** Column name AD_User_ID */ public static final String COLUMNNAME_AD_User_ID = "AD_User_ID"; @@ -262,15 +273,6 @@ public interface I_PA_DashboardContent */ public boolean isShowInDashboard(); - /** Column name IsShowinLogin */ - public static final String COLUMNNAME_IsShowinLogin = "IsShowinLogin"; - - /** Set Show on Login */ - public void setIsShowinLogin (boolean IsShowinLogin); - - /** Get Show on Login */ - public boolean isShowinLogin(); - /** Column name IsShowTitle */ public static final String COLUMNNAME_IsShowTitle = "IsShowTitle"; @@ -280,6 +282,15 @@ public interface I_PA_DashboardContent /** Get Show Title */ public boolean isShowTitle(); + /** Column name IsShowinLogin */ + public static final String COLUMNNAME_IsShowinLogin = "IsShowinLogin"; + + /** Set Show on Login */ + public void setIsShowinLogin (boolean IsShowinLogin); + + /** Get Show on Login */ + public boolean isShowinLogin(); + /** Column name Line */ public static final String COLUMNNAME_Line = "Line"; @@ -380,4 +391,4 @@ public interface I_PA_DashboardContent * URI for Dashboard Gadget */ public String getZulFilePath(); -} +} \ No newline at end of file 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 c108dbe3d7..084f7089f7 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 @@ -33,7 +33,7 @@ public class X_PA_DashboardContent extends PO implements I_PA_DashboardContent, /** * */ - private static final long serialVersionUID = 20220712L; + private static final long serialVersionUID = 20220818L; /** Standard Constructor */ public X_PA_DashboardContent (Properties ctx, int PA_DashboardContent_ID, String trxName) @@ -188,6 +188,33 @@ public class X_PA_DashboardContent extends PO implements I_PA_DashboardContent, return ii.intValue(); } + public org.compiere.model.I_AD_StatusLine getAD_StatusLine() throws RuntimeException + { + return (org.compiere.model.I_AD_StatusLine)MTable.get(getCtx(), org.compiere.model.I_AD_StatusLine.Table_ID) + .getPO(getAD_StatusLine_ID(), get_TrxName()); + } + + /** Set Status Line. + @param AD_StatusLine_ID Status Line + */ + public void setAD_StatusLine_ID (int AD_StatusLine_ID) + { + if (AD_StatusLine_ID < 1) + set_Value (COLUMNNAME_AD_StatusLine_ID, null); + else + set_Value (COLUMNNAME_AD_StatusLine_ID, Integer.valueOf(AD_StatusLine_ID)); + } + + /** Get Status Line. + @return Status Line */ + public int getAD_StatusLine_ID() + { + Integer ii = (Integer)get_Value(COLUMNNAME_AD_StatusLine_ID); + if (ii == null) + return 0; + return ii.intValue(); + } + public org.compiere.model.I_AD_User getAD_User() throws RuntimeException { return (org.compiere.model.I_AD_User)MTable.get(getCtx(), org.compiere.model.I_AD_User.Table_ID) @@ -409,28 +436,6 @@ public class X_PA_DashboardContent extends PO implements I_PA_DashboardContent, return false; } - /** Set Show on Login. - @param IsShowinLogin Show on Login - */ - public void setIsShowinLogin (boolean IsShowinLogin) - { - set_Value (COLUMNNAME_IsShowinLogin, Boolean.valueOf(IsShowinLogin)); - } - - /** Get Show on Login. - @return Show on Login */ - public boolean isShowinLogin() - { - Object oo = get_Value(COLUMNNAME_IsShowinLogin); - if (oo != null) - { - if (oo instanceof Boolean) - return ((Boolean)oo).booleanValue(); - return "Y".equals(oo); - } - return false; - } - /** Set Show Title. @param IsShowTitle Show Title */ @@ -453,6 +458,28 @@ public class X_PA_DashboardContent extends PO implements I_PA_DashboardContent, return false; } + /** Set Show on Login. + @param IsShowinLogin Show on Login + */ + public void setIsShowinLogin (boolean IsShowinLogin) + { + set_Value (COLUMNNAME_IsShowinLogin, Boolean.valueOf(IsShowinLogin)); + } + + /** Get Show on Login. + @return Show on Login */ + public boolean isShowinLogin() + { + Object oo = get_Value(COLUMNNAME_IsShowinLogin); + 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 */ diff --git a/org.adempiere.ui.zk/WEB-INF/src/metainfo/zk/lang-addon.xml b/org.adempiere.ui.zk/WEB-INF/src/metainfo/zk/lang-addon.xml index e96272e9a4..61dd834e18 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/metainfo/zk/lang-addon.xml +++ b/org.adempiere.ui.zk/WEB-INF/src/metainfo/zk/lang-addon.xml @@ -57,6 +57,6 @@ Copyright (C) 2007 Ashley G Ramdass (ADempiere WebUI). - + 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 62e4d09374..b53241eb3e 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 @@ -61,6 +61,7 @@ import org.compiere.model.MPInstance; import org.compiere.model.MPInstancePara; import org.compiere.model.MProcess; import org.compiere.model.MProcessPara; +import org.compiere.model.MStatusLine; import org.compiere.model.MSysConfig; import org.compiere.model.PO; import org.compiere.print.ReportEngine; @@ -559,6 +560,19 @@ public class DashboardController implements EventListener { }); } + // Status Line + final int AD_StatusLine_ID = dc.getAD_StatusLine_ID(); + if(AD_StatusLine_ID > 0) { + MStatusLine sl = new MStatusLine(Env.getCtx(), AD_StatusLine_ID, null); + final Html statusLineHtml = new Html(); + statusLineHtml.setContent(sl.parseLine(0)); + Div div = new Div(); + div.appendChild(statusLineHtml); + div.setSclass("statusline-gadget"); + content.appendChild(div); + empty = false; + } + return !empty; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/web/theme/default/css/fragment/gadget.css.dsp b/org.adempiere.ui.zk/WEB-INF/src/web/theme/default/css/fragment/gadget.css.dsp index 7854b64cb7..ac41007b5e 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/web/theme/default/css/fragment/gadget.css.dsp +++ b/org.adempiere.ui.zk/WEB-INF/src/web/theme/default/css/fragment/gadget.css.dsp @@ -212,6 +212,10 @@ height: 100% !important; } +.statusline-gadget { + padding: 0px 10px 10px; +} + .help-content { padding: 2px;