details:   /erp/devel/pi/rev/b1a6dd4a06f9
changeset: 10697:b1a6dd4a06f9
user:      Antonio Moreno <antonio.moreno <at> openbravo.com>
date:      Wed Feb 16 11:10:14 2011 +0100
summary:   When changing role, if no language is provided, a default will be 
chosen

diffstat:

 
modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/UserInfoWidgetActionHandler.java
 |  25 +++++++++-
 1 files changed, 24 insertions(+), 1 deletions(-)

diffs (42 lines):

diff -r b79da7bc8943 -r b1a6dd4a06f9 
modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/UserInfoWidgetActionHandler.java
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/UserInfoWidgetActionHandler.java
    Wed Feb 16 09:50:10 2011 +0100
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/UserInfoWidgetActionHandler.java
    Wed Feb 16 11:10:14 2011 +0100
@@ -309,7 +309,12 @@
     final Role role = OBDal.getInstance().get(Role.class, roleId);
     final String clientId = role.getClient().getId();
     final String warehouseId = getStringValue(json, "warehouse");
-    final String languageId = getStringValue(json, "language");
+    String languageId = getStringValue(json, "language");
+    if (languageId == null) {
+      // If the default language the user has is not a system language, then 
another language will
+      // be automatically selected
+      languageId = pickLanguage();
+    }
     final boolean isDefault;
     if (json.has("default")) {
       isDefault = json.getBoolean("default");
@@ -323,6 +328,24 @@
     return ApplicationConstants.ACTION_RESULT_SUCCESS;
   }
 
+  private String pickLanguage() {
+    final OBQuery<Language> languages = OBDal.getInstance().createQuery(
+        Language.class,
+        "(" + Language.PROPERTY_SYSTEMLANGUAGE + "=true or " + 
Language.PROPERTY_BASELANGUAGE
+            + "=true)");
+    languages.setFilterOnReadableClients(false);
+    languages.setFilterOnReadableOrganization(false);
+    List<Language> languagesList = languages.list();
+
+    Client client = OBContext.getOBContext().getCurrentClient();
+    Language clientLanguage = client.getLanguage();
+    if (clientLanguage != null && languagesList.contains(clientLanguage)) {
+      return clientLanguage.getId();
+    } else {
+      return languagesList.get(0).getId();
+    }
+  }
+
   private String getStringValue(JSONObject json, String name) throws 
JSONException {
     if (json.isNull(name)) {
       return null;

------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to