IDEMPIERE-3770 Translation : export only centralized data
This commit is contained in:
parent
00b15802d0
commit
ec6d32fdd5
|
@ -0,0 +1,10 @@
|
||||||
|
SET SQLBLANKLINES ON
|
||||||
|
SET DEFINE OFF
|
||||||
|
|
||||||
|
-- IDEMPIERE-3770: Translation : export only centralized data
|
||||||
|
-- Aug 2, 2018 3:36:33 PM CEST
|
||||||
|
INSERT INTO AD_Message (MsgType,MsgText,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Message_ID,Value,EntityType,AD_Message_UU) VALUES ('I','Only centralized data',0,0,'Y',TO_DATE('2018-08-02 15:36:32','YYYY-MM-DD HH24:MI:SS'),0,TO_DATE('2018-08-02 15:36:32','YYYY-MM-DD HH24:MI:SS'),0,200481,'OnlyCentralizedData','D','f43c0cce-0462-4247-baf6-e7da842152ab')
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201808021530_IDEMPIERE-3770.sql') FROM dual
|
||||||
|
;
|
|
@ -0,0 +1,7 @@
|
||||||
|
-- IDEMPIERE-3770: Translation : export only centralized data
|
||||||
|
-- Aug 2, 2018 3:36:33 PM CEST
|
||||||
|
INSERT INTO AD_Message (MsgType,MsgText,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Message_ID,Value,EntityType,AD_Message_UU) VALUES ('I','Only centralized data',0,0,'Y',TO_TIMESTAMP('2018-08-02 15:36:32','YYYY-MM-DD HH24:MI:SS'),0,TO_TIMESTAMP('2018-08-02 15:36:32','YYYY-MM-DD HH24:MI:SS'),0,200481,'OnlyCentralizedData','D','f43c0cce-0462-4247-baf6-e7da842152ab')
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201808021530_IDEMPIERE-3770.sql') FROM dual
|
||||||
|
;
|
|
@ -173,7 +173,7 @@ public class Translation implements IApplication
|
||||||
* @param Trl_Table translation table _Trl
|
* @param Trl_Table translation table _Trl
|
||||||
* @return status message
|
* @return status message
|
||||||
*/
|
*/
|
||||||
public String exportTrl (String directory, int AD_Client_ID, String AD_Language, String Trl_Table)
|
public String exportTrl (String directory, int AD_Client_ID, String AD_Language, String Trl_Table, boolean onlyCentralized)
|
||||||
{
|
{
|
||||||
String fileName = directory + File.separator + Trl_Table + "_" + AD_Language + ".xml";
|
String fileName = directory + File.separator + Trl_Table + "_" + AD_Language + ".xml";
|
||||||
log.info(fileName);
|
log.info(fileName);
|
||||||
|
@ -185,6 +185,12 @@ public class Translation implements IApplication
|
||||||
String Base_Table = Trl_Table.substring(0, pos);
|
String Base_Table = Trl_Table.substring(0, pos);
|
||||||
if (isBaseLanguage)
|
if (isBaseLanguage)
|
||||||
tableName = Base_Table;
|
tableName = Base_Table;
|
||||||
|
|
||||||
|
if (onlyCentralized) {
|
||||||
|
if (MTable.get(m_ctx, tableName).getAD_Table_ID() > MTable.MAX_OFFICIAL_ID)
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
String keyColumn = Base_Table + "_ID";
|
String keyColumn = Base_Table + "_ID";
|
||||||
String uuidColumn = MTable.getUUIDColumnName(Base_Table);
|
String uuidColumn = MTable.getUUIDColumnName(Base_Table);
|
||||||
String[] trlColumns = getTrlColumns (Base_Table);
|
String[] trlColumns = getTrlColumns (Base_Table);
|
||||||
|
@ -237,6 +243,10 @@ public class Translation implements IApplication
|
||||||
}
|
}
|
||||||
if (AD_Client_ID >= 0)
|
if (AD_Client_ID >= 0)
|
||||||
sql.append(haveWhere ? " AND " : " WHERE ").append("o.AD_Client_ID=").append(AD_Client_ID);
|
sql.append(haveWhere ? " AND " : " WHERE ").append("o.AD_Client_ID=").append(AD_Client_ID);
|
||||||
|
|
||||||
|
if (onlyCentralized)
|
||||||
|
sql.append(haveWhere ? " AND " : " WHERE ").append(" o.").append(keyColumn).append("<=").append(MTable.MAX_OFFICIAL_ID).append(" AND o.IsActive = 'Y'");
|
||||||
|
|
||||||
sql.append(" ORDER BY t.").append(keyColumn);
|
sql.append(" ORDER BY t.").append(keyColumn);
|
||||||
//
|
//
|
||||||
pstmt = DB.prepareStatement(sql.toString(), null);
|
pstmt = DB.prepareStatement(sql.toString(), null);
|
||||||
|
@ -500,7 +510,7 @@ public class Translation implements IApplication
|
||||||
System.out.println("Cannot create directory " + directory + " to export the language to it.");
|
System.out.println("Cannot create directory " + directory + " to export the language to it.");
|
||||||
System.exit(1);
|
System.exit(1);
|
||||||
}
|
}
|
||||||
exportTrl(directory, -1, AD_Language, table);
|
exportTrl(directory, -1, AD_Language, table, true);
|
||||||
} else
|
} else
|
||||||
System.out.println("Just import and export are supported as modes.");
|
System.out.println("Just import and export are supported as modes.");
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,6 +36,7 @@ import org.compiere.apps.ADialog;
|
||||||
import org.compiere.apps.StatusBar;
|
import org.compiere.apps.StatusBar;
|
||||||
import org.compiere.apps.form.FormFrame;
|
import org.compiere.apps.form.FormFrame;
|
||||||
import org.compiere.apps.form.FormPanel;
|
import org.compiere.apps.form.FormPanel;
|
||||||
|
import org.compiere.grid.ed.VCheckBox;
|
||||||
import org.compiere.swing.CPanel;
|
import org.compiere.swing.CPanel;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
|
@ -80,6 +81,7 @@ public class VTranslationDialog extends TranslationController
|
||||||
private StatusBar statusBar = new StatusBar();
|
private StatusBar statusBar = new StatusBar();
|
||||||
private JLabel lClient = new JLabel();
|
private JLabel lClient = new JLabel();
|
||||||
private JComboBox<Object> cbClient = new JComboBox<Object>();
|
private JComboBox<Object> cbClient = new JComboBox<Object>();
|
||||||
|
private VCheckBox isOnlyCentralized = new VCheckBox();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -93,6 +95,7 @@ public class VTranslationDialog extends TranslationController
|
||||||
lLanguage.setText(Msg.translate(Env.getCtx(), "AD_Language"));
|
lLanguage.setText(Msg.translate(Env.getCtx(), "AD_Language"));
|
||||||
lLanguage.setToolTipText(Msg.translate(Env.getCtx(), "IsSystemLanguage"));
|
lLanguage.setToolTipText(Msg.translate(Env.getCtx(), "IsSystemLanguage"));
|
||||||
lTable.setText(Msg.translate(Env.getCtx(), "AD_Table_ID"));
|
lTable.setText(Msg.translate(Env.getCtx(), "AD_Table_ID"));
|
||||||
|
isOnlyCentralized.setText(Msg.getMsg(Env.getCtx(), "OnlyCentralizedData"));
|
||||||
//
|
//
|
||||||
bExport.setText(Msg.getMsg(Env.getCtx(), "Export"));
|
bExport.setText(Msg.getMsg(Env.getCtx(), "Export"));
|
||||||
bExport.addActionListener(this);
|
bExport.addActionListener(this);
|
||||||
|
@ -107,9 +110,11 @@ public class VTranslationDialog extends TranslationController
|
||||||
,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
|
,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
|
||||||
panel.add(cbTable, new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0
|
panel.add(cbTable, new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0
|
||||||
,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
|
,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
|
||||||
panel.add(bExport, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0
|
panel.add(isOnlyCentralized, new GridBagConstraints(1, 4, 1, 1, 0.0, 0.0
|
||||||
|
,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
|
||||||
|
panel.add(bExport, new GridBagConstraints(0, 5, 1, 1, 0.0, 0.0
|
||||||
,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
|
,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
|
||||||
panel.add(bImport, new GridBagConstraints(1, 3, 1, 1, 0.0, 0.0
|
panel.add(bImport, new GridBagConstraints(1, 5, 1, 1, 0.0, 0.0
|
||||||
,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
|
,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
|
||||||
panel.add(lClient, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
|
panel.add(lClient, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
|
||||||
,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
|
,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
|
||||||
|
@ -224,7 +229,7 @@ public class VTranslationDialog extends TranslationController
|
||||||
AD_Table = (ValueNamePair)cbTable.getItemAt(i);
|
AD_Table = (ValueNamePair)cbTable.getItemAt(i);
|
||||||
msg = imp
|
msg = imp
|
||||||
? t.importTrl (directory, AD_Client_ID, AD_Language.getValue(), AD_Table.getValue())
|
? t.importTrl (directory, AD_Client_ID, AD_Language.getValue(), AD_Table.getValue())
|
||||||
: t.exportTrl (directory, AD_Client_ID, AD_Language.getValue(), AD_Table.getValue());
|
: t.exportTrl (directory, AD_Client_ID, AD_Language.getValue(), AD_Table.getValue(), isOnlyCentralized.isSelected());
|
||||||
}
|
}
|
||||||
|
|
||||||
if(msg == null || msg.length() == 0)
|
if(msg == null || msg.length() == 0)
|
||||||
|
@ -237,7 +242,7 @@ public class VTranslationDialog extends TranslationController
|
||||||
msg = null;
|
msg = null;
|
||||||
msg = imp
|
msg = imp
|
||||||
? t.importTrl (directory, AD_Client_ID, AD_Language.getValue(), AD_Table.getValue())
|
? t.importTrl (directory, AD_Client_ID, AD_Language.getValue(), AD_Table.getValue())
|
||||||
: t.exportTrl (directory, AD_Client_ID, AD_Language.getValue(), AD_Table.getValue());
|
: t.exportTrl (directory, AD_Client_ID, AD_Language.getValue(), AD_Table.getValue(), isOnlyCentralized.isSelected());
|
||||||
|
|
||||||
if(msg == null || msg.length() == 0)
|
if(msg == null || msg.length() == 0)
|
||||||
msg = (imp ? "Import" : "Export") + " Successful. [" + directory + "]";
|
msg = (imp ? "Import" : "Export") + " Successful. [" + directory + "]";
|
||||||
|
|
|
@ -29,6 +29,7 @@ import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.webui.AdempiereWebUI;
|
import org.adempiere.webui.AdempiereWebUI;
|
||||||
import org.adempiere.webui.LayoutUtils;
|
import org.adempiere.webui.LayoutUtils;
|
||||||
import org.adempiere.webui.component.Button;
|
import org.adempiere.webui.component.Button;
|
||||||
|
import org.adempiere.webui.component.Checkbox;
|
||||||
import org.adempiere.webui.component.FolderBrowser;
|
import org.adempiere.webui.component.FolderBrowser;
|
||||||
import org.adempiere.webui.component.Grid;
|
import org.adempiere.webui.component.Grid;
|
||||||
import org.adempiere.webui.component.GridFactory;
|
import org.adempiere.webui.component.GridFactory;
|
||||||
|
@ -119,6 +120,7 @@ public class WTranslationDialog extends TranslationController implements IFormCo
|
||||||
private int m_AD_Client_ID;
|
private int m_AD_Client_ID;
|
||||||
private boolean m_imp;
|
private boolean m_imp;
|
||||||
private ValueNamePair m_AD_Language;
|
private ValueNamePair m_AD_Language;
|
||||||
|
private Checkbox isOnlyCentralized = new Checkbox();
|
||||||
|
|
||||||
private void zkInit() throws Exception
|
private void zkInit() throws Exception
|
||||||
{
|
{
|
||||||
|
@ -139,6 +141,8 @@ public class WTranslationDialog extends TranslationController implements IFormCo
|
||||||
bImportZIP.setLabel(Msg.getMsg(Env.getCtx(), "ImportZIP"));
|
bImportZIP.setLabel(Msg.getMsg(Env.getCtx(), "ImportZIP"));
|
||||||
bImportZIP.setUpload(AdempiereWebUI.getUploadSetting());
|
bImportZIP.setUpload(AdempiereWebUI.getUploadSetting());
|
||||||
bImportZIP.addEventListener(Events.ON_UPLOAD, this);
|
bImportZIP.addEventListener(Events.ON_UPLOAD, this);
|
||||||
|
isOnlyCentralized.setLabel(Msg.getMsg(Env.getCtx(), "OnlyCentralizedData"));
|
||||||
|
isOnlyCentralized.setChecked(true);
|
||||||
|
|
||||||
Rows rows = centerLayout.newRows();
|
Rows rows = centerLayout.newRows();
|
||||||
Row row = rows.newRow();
|
Row row = rows.newRow();
|
||||||
|
@ -152,7 +156,11 @@ public class WTranslationDialog extends TranslationController implements IFormCo
|
||||||
row = rows.newRow();
|
row = rows.newRow();
|
||||||
row.appendChild(lTable.rightAlign());
|
row.appendChild(lTable.rightAlign());
|
||||||
row.appendChild(cbTable);
|
row.appendChild(cbTable);
|
||||||
|
|
||||||
|
row = rows.newRow();
|
||||||
|
row.appendChild(new Label(""));
|
||||||
|
row.appendChild(isOnlyCentralized);
|
||||||
|
|
||||||
row = rows.newRow();
|
row = rows.newRow();
|
||||||
Div div = new Div();
|
Div div = new Div();
|
||||||
div.setStyle("text-align: right;");
|
div.setStyle("text-align: right;");
|
||||||
|
@ -298,7 +306,7 @@ public class WTranslationDialog extends TranslationController implements IFormCo
|
||||||
// Carlos Ruiz - globalqss - improve output message from translation import process
|
// Carlos Ruiz - globalqss - improve output message from translation import process
|
||||||
msg.append(m_AD_Table.getValue()).append(" ").append((m_imp
|
msg.append(m_AD_Table.getValue()).append(" ").append((m_imp
|
||||||
? t.importTrl (directory, m_AD_Client_ID, m_AD_Language.getValue(), m_AD_Table.getValue())
|
? t.importTrl (directory, m_AD_Client_ID, m_AD_Language.getValue(), m_AD_Table.getValue())
|
||||||
: t.exportTrl (directory, m_AD_Client_ID, m_AD_Language.getValue(), m_AD_Table.getValue()))).append(" ");
|
: t.exportTrl (directory, m_AD_Client_ID, m_AD_Language.getValue(), m_AD_Table.getValue(), isOnlyCentralized.isChecked()))).append(" ");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(msg == null || msg.length() == 0)
|
if(msg == null || msg.length() == 0)
|
||||||
|
@ -311,7 +319,7 @@ public class WTranslationDialog extends TranslationController implements IFormCo
|
||||||
msg = null;
|
msg = null;
|
||||||
msg = new StringBuilder(m_imp
|
msg = new StringBuilder(m_imp
|
||||||
? t.importTrl (directory, m_AD_Client_ID, m_AD_Language.getValue(), m_AD_Table.getValue())
|
? t.importTrl (directory, m_AD_Client_ID, m_AD_Language.getValue(), m_AD_Table.getValue())
|
||||||
: t.exportTrl (directory, m_AD_Client_ID, m_AD_Language.getValue(), m_AD_Table.getValue()));
|
: t.exportTrl (directory, m_AD_Client_ID, m_AD_Language.getValue(), m_AD_Table.getValue(), isOnlyCentralized.isChecked()));
|
||||||
|
|
||||||
if(msg == null || msg.length() == 0)
|
if(msg == null || msg.length() == 0)
|
||||||
msg = new StringBuilder(m_imp ? "Import" : "Export").append(" Successful. [").append(directory).append("]");
|
msg = new StringBuilder(m_imp ? "Import" : "Export").append(" Successful. [").append(directory).append("]");
|
||||||
|
|
Loading…
Reference in New Issue