From 3687d3f778947df4e9cfae93750ad1f4a12c5f06 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Wed, 14 Mar 2012 21:49:10 -0500 Subject: [PATCH] IDEMPIERE-187 Support developer to generate migration script from webui http://jira.idempiere.com/browse/IDEMPIERE-187 --- .../src/org/compiere/dbPort/Convert.java | 9 ++++- .../src/org/compiere/model/MSequence.java | 34 +++++++++++++++++-- .../adempiere/webui/window/WPreference.java | 33 +++++++++++++++++- 3 files changed, 71 insertions(+), 5 deletions(-) diff --git a/org.adempiere.base/src/org/compiere/dbPort/Convert.java b/org.adempiere.base/src/org/compiere/dbPort/Convert.java index c0011309b2..8ac61c2e8e 100644 --- a/org.adempiere.base/src/org/compiere/dbPort/Convert.java +++ b/org.adempiere.base/src/org/compiere/dbPort/Convert.java @@ -39,6 +39,7 @@ import org.compiere.db.Database; import org.compiere.model.MSysConfig; import org.compiere.util.CLogger; import org.compiere.util.DisplayType; +import org.compiere.util.Env; import org.compiere.util.Ini; /** @@ -435,7 +436,13 @@ public abstract class Convert public static void logMigrationScript(String oraStatement, String pgStatement) { // Check AdempiereSys // check property Log migration script - boolean logMigrationScript = Ini.isPropertyBool(Ini.P_LOGMIGRATIONSCRIPT); + boolean logMigrationScript = false; + if (Ini.isClient()) { + logMigrationScript = Ini.isPropertyBool(Ini.P_LOGMIGRATIONSCRIPT); + } else { + String sysProperty = Env.getCtx().getProperty("LogMigrationScript", "N"); + logMigrationScript = "y".equalsIgnoreCase(sysProperty) || "true".equalsIgnoreCase(sysProperty); + } if (logMigrationScript) { if (dontLog(oraStatement)) return; diff --git a/org.adempiere.base/src/org/compiere/model/MSequence.java b/org.adempiere.base/src/org/compiere/model/MSequence.java index 5f4b2bb1ea..79689e02e3 100644 --- a/org.adempiere.base/src/org/compiere/model/MSequence.java +++ b/org.adempiere.base/src/org/compiere/model/MSequence.java @@ -88,7 +88,17 @@ public class MSequence extends X_AD_Sequence int retValue = -1; // Check AdempiereSys - boolean adempiereSys = Ini.isPropertyBool(Ini.P_ADEMPIERESYS); + boolean adempiereSys = false; + if (Ini.isClient()) + { + adempiereSys = Ini.isPropertyBool(Ini.P_ADEMPIERESYS); + } + else + { + String sysProperty = Env.getCtx().getProperty("AdempiereSys", "N"); + adempiereSys = "y".equalsIgnoreCase(sysProperty) || "true".equalsIgnoreCase(sysProperty); + } + if (adempiereSys && AD_Client_ID > 11) adempiereSys = false; // @@ -398,7 +408,16 @@ public class MSequence extends X_AD_Sequence throw new IllegalArgumentException("TableName missing"); // Check AdempiereSys - boolean adempiereSys = Ini.isPropertyBool(Ini.P_ADEMPIERESYS); + boolean adempiereSys = false; + if (Ini.isClient()) + { + adempiereSys = Ini.isPropertyBool(Ini.P_ADEMPIERESYS); + } + else + { + String sysProperty = Env.getCtx().getProperty("AdempiereSys", "N"); + adempiereSys = "y".equalsIgnoreCase(sysProperty) || "true".equalsIgnoreCase(sysProperty); + } if (adempiereSys && AD_Client_ID > 11) adempiereSys = false; // @@ -704,7 +723,16 @@ public class MSequence extends X_AD_Sequence } // Check AdempiereSys - boolean adempiereSys = Ini.isPropertyBool(Ini.P_ADEMPIERESYS); + boolean adempiereSys = false; + if (Ini.isClient()) + { + adempiereSys = Ini.isPropertyBool(Ini.P_ADEMPIERESYS); + } + else + { + String sysProperty = Env.getCtx().getProperty("AdempiereSys", "N"); + adempiereSys = "y".equalsIgnoreCase(sysProperty) || "true".equalsIgnoreCase(sysProperty); + } if (CLogMgt.isLevel(LOGLEVEL)) s_log.log(LOGLEVEL, "DocType_ID=" + C_DocType_ID + " [" + trxName + "]"); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPreference.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPreference.java index 0f19974b01..95e768fd67 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPreference.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPreference.java @@ -37,11 +37,16 @@ import org.zkoss.zul.Space; * */ public class WPreference extends Popup implements EventListener { + /** + * + */ + private static final long serialVersionUID = -8223456746437563389L; - private static final long serialVersionUID = 7163067116469715021L; private WYesNoEditor autoCommit; private WYesNoEditor autoNew; private WYesNoEditor tabCollapsible; + private WYesNoEditor adempiereSys; + private WYesNoEditor logMigrationScript; private Listbox tabPlacement; public WPreference() { @@ -88,6 +93,26 @@ public class WPreference extends Popup implements EventListener { div.appendChild(tabPlacement); this.appendChild(div); + if (Env.getAD_Client_ID(Env.getCtx()) <= 20 && Env.getAD_User_ID(Env.getCtx()) <= 102) { + adempiereSys = new WYesNoEditor("AdempiereSys", Msg.getMsg(Env.getCtx(), "AdempiereSys", true), + null, false, false, true); + adempiereSys.getComponent().setTooltiptext(Msg.getMsg(Env.getCtx(), "AdempiereSys", false)); + div = new Div(); + div.setStyle("background-color: transparent !important; border: none; margin: 5px;"); + div.appendChild(adempiereSys.getComponent()); + this.appendChild(div); + adempiereSys.setValue(Env.getCtx().getProperty("AdempiereSys")); + + logMigrationScript = new WYesNoEditor("LogMigrationScript", Msg.getMsg(Env.getCtx(), "LogMigrationScript", true), + null, false, false, true); + logMigrationScript.getComponent().setTooltiptext(Msg.getMsg(Env.getCtx(), "LogMigrationScript", false)); + div = new Div(); + div.setStyle("background-color: transparent !important; border: none; margin: 5px;"); + div.appendChild(logMigrationScript.getComponent()); + this.appendChild(div); + logMigrationScript.setValue(Env.getCtx().getProperty("LogMigrationScript")); + } + Separator separator = new Separator(); separator.setSpacing("20px"); div = new Div(); @@ -134,6 +159,12 @@ public class WPreference extends Popup implements EventListener { //update context Env.setAutoCommit(Env.getCtx(), "y".equalsIgnoreCase(preference.getProperty(UserPreference.P_AUTO_COMMIT))); Env.setAutoNew(Env.getCtx(), "y".equalsIgnoreCase(preference.getProperty(UserPreference.P_AUTO_NEW))); + + // Log Migration Script and AdempiereSys are just in-memory preferences, must not be saved + if (logMigrationScript != null) + Env.getCtx().setProperty("LogMigrationScript", (Boolean)logMigrationScript.getValue() ? "Y" : "N"); + if (adempiereSys != null) + Env.getCtx().setProperty("AdempiereSys", (Boolean)adempiereSys.getValue() ? "Y" : "N"); this.detach(); }