details:   https://code.openbravo.com/erp/devel/pi/rev/5a3ab4663af4
changeset: 14825:5a3ab4663af4
user:      David Baz Fayos <david.baz <at> openbravo.com>
date:      Fri Dec 02 20:09:11 2011 +0100
summary:   Fixed issue 19231: styles improvement in 'Manage Workspace' area

details:   https://code.openbravo.com/erp/devel/pi/rev/249ef15f97f7
changeset: 14826:249ef15f97f7
user:      David Baz Fayos <david.baz <at> openbravo.com>
date:      Fri Dec 02 20:20:12 2011 +0100
summary:   Fixed issue 19240: Now all grids have the same font type and size

details:   https://code.openbravo.com/erp/devel/pi/rev/37069a0fd86d
changeset: 14827:37069a0fd86d
user:      David Baz Fayos <david.baz <at> openbravo.com>
date:      Thu Dec 08 02:22:51 2011 +0100
summary:   Fixed issue 17621 - Fixed issue 17470: 'Help' items [KS] fixed

details:   https://code.openbravo.com/erp/devel/pi/rev/048096c51f60
changeset: 14828:048096c51f60
user:      David Baz Fayos <david.baz <at> openbravo.com>
date:      Thu Dec 08 02:35:24 2011 +0100
summary:   Fixed issue 18501: Removed orange outlines added by Chrome to 
focused items

details:   https://code.openbravo.com/erp/devel/pi/rev/1f8ad156bf59
changeset: 14829:1f8ad156bf59
user:      David Baz Fayos <david.baz <at> openbravo.com>
date:      Thu Dec 08 04:27:52 2011 +0100
summary:   Fixed issue 19263: Added 'addUnknownValues: false' to quick launch 
items
  and added proper pendingTextBoxStyle styles in case they were needed

diffstat:

 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-form-button.js
                                                                 |   18 +
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-help-about-widget.js
                                                         |   58 +++-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-quick-launch.js
                                                              |    2 +
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-quickrun-widget.js
                                                           |    2 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-user-profile-widget.js
                                                       |    1 +
 
modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-application-styles.css
 |    4 +
 
modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-form-styles.css
        |   24 +-
 
modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-form-styles.js
         |    2 +-
 
modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-grid-styles.css
        |    1 +
 modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MESSAGE.xml    
                                                                                
         |   36 ++
 
modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-myopenbravo.js
                                                                                
    |  159 ++++++++-
 
modules/org.openbravo.client.myob/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.myob/ob-myopenbravo-styles.js
                |    6 +
 
modules/org.openbravo.client.myob/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.myob/ob-widget-styles.css
                    |    4 +
 13 files changed, 276 insertions(+), 41 deletions(-)

diffs (truncated from 713 to 300 lines):

diff -r f4a9ad42e48a -r 1f8ad156bf59 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-form-button.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-form-button.js
   Fri Dec 02 14:40:09 2011 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-form-button.js
   Thu Dec 08 04:27:52 2011 +0100
@@ -26,3 +26,21 @@
   baseStyle: 'OBFormButton',
   titleStyle: 'OBFormButtonTitle'
 });
+
+
+// == OBFocusButton ==
+// Invisible button. It changes the focus location when it gets the focus.
+isc.ClassFactory.defineClass('OBFocusButton', isc.Button);
+
+isc.OBFocusButton.addProperties({
+  title: '',
+  width: 1,
+  height: 1,
+  border: '0px solid',
+  getFocusTarget: null,
+  focusChanged: function(hasFocus) {
+    if (hasFocus && typeof this.getFocusTarget === 'function' && typeof 
this.getFocusTarget().focus === 'function') {
+      this.getFocusTarget().focus();
+    }
+  }
+});
\ No newline at end of file
diff -r f4a9ad42e48a -r 1f8ad156bf59 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-help-about-widget.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-help-about-widget.js
   Fri Dec 02 14:40:09 2011 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-help-about-widget.js
   Thu Dec 08 04:27:52 2011 +0100
@@ -40,14 +40,51 @@
     
OB.TestRegistry.register('org.openbravo.client.application.HelpAboutWidget', 
this);
     this.Super('initWidget', arguments);
   },
+
+  doShow: function(){
+    this.Super('doShow', arguments);
+    var me = this, focusInFirstHelpItem;
+    focusInFirstHelpItem = function() {
+      if (me.members[0].members[1]) {
+        me.members[0].members[1].focus(); 
+      }
+      if (isc.EH.getFocusCanvas() === me.members[0].members[1]) { // Sometimes 
the focus is not positioned in the previous step
+        return;
+      } else {
+        setTimeout(function() { focusInFirstHelpItem(); }, 10);
+      }
+    };
+    focusInFirstHelpItem();
+  },
   
   beforeShow: function(){
     // determine if the help should be displayed or not
-    var tabPane = null, aboutLink = null, helpLink = null, helpView = null;
-    
+    var tabPane = null, aboutLink = null, helpLink = null, helpView = null, 
dummyFirstField = null, dummyLastField = null;
+
+    dummyFirstField = isc.OBFocusButton.create({
+      getFocusTarget: function() {
+        return 
isc.OBQuickRun.currentQuickRun.members[0].members[isc.OBQuickRun.currentQuickRun.members[0].getMembers().length-2];
+      }
+    });
+
+    dummyLastField = isc.OBFocusButton.create({
+      getFocusTarget: function() {
+        return isc.OBQuickRun.currentQuickRun.members[0].members[1];
+      }
+    });
+
     aboutLink = isc.OBHelpAboutLinkButton.create({
       name: 'aboutLink',
       title: OB.I18N.getLabel('UINAVBA_About'),
+      keyPress: function(){
+        var key = isc.EventHandler.getKey();
+        if (key === 'Escape') {
+          if (isc.OBQuickRun.currentQuickRun) {
+            isc.OBQuickRun.currentQuickRun.doHide();
+          }
+        }
+        return true;
+      },
       action: function(){
         isc.OBQuickRun.hide();
         OB.Layout.ClassicOBCompatibility.Popup.open('About', 620, 500, 
OB.Application.contextUrl + 'ad_forms/about.html', '', window);
@@ -57,6 +94,15 @@
     helpLink = isc.OBHelpAboutLinkButton.create({
       name: 'helpLink',
       title: OB.I18N.getLabel('UINAVBA_Help'),
+      keyPress: function(){
+        var key = isc.EventHandler.getKey();
+        if (key === 'Escape') {
+          if (isc.OBQuickRun.currentQuickRun) {
+            isc.OBQuickRun.currentQuickRun.doHide();
+          }
+        }
+        return true;
+      },
       action: function(){
         isc.OBQuickRun.hide();
         OB.Layout.ViewManager.openView(helpView.viewId, helpView);
@@ -74,15 +120,17 @@
       
this.members[0].destroyAndRemoveMembers(this.members[0].getMembers().duplicate());
     } 
     if (!tabPane) {
-      this.members[0].setMembers([aboutLink]);
+      this.members[0].addMembers([aboutLink]);
     } else {
       helpView = tabPane.getHelpView();
       if (!helpView) {
-        this.members[0].setMembers([aboutLink]);
+        this.members[0].addMembers([aboutLink]);
       } else {
-        this.members[0].setMembers([helpLink, aboutLink]);
+        this.members[0].addMembers([helpLink, aboutLink]);
       }
     }
+    this.members[0].addMembers(dummyFirstField, 0);
+    this.members[0].addMembers(dummyLastField, 
this.members[0].getMembers().length);
     
OB.TestRegistry.register('org.openbravo.client.application.HelpAbout.HelpLink', 
helpLink);
     
OB.TestRegistry.register('org.openbravo.client.application.HelpAbout.AboutLink',
 aboutLink);
   },
diff -r f4a9ad42e48a -r 1f8ad156bf59 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-quick-launch.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-quick-launch.js
        Fri Dec 02 14:40:09 2011 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-quick-launch.js
        Thu Dec 08 04:27:52 2011 +0100
@@ -124,6 +124,7 @@
         cellStyle: OB.Styles.OBFormField.DefaultComboBox.cellStyle,
         titleStyle: OB.Styles.OBFormField.DefaultComboBox.titleStyle,
         textBoxStyle: OB.Styles.OBFormField.DefaultComboBox.textBoxStyle,
+        pendingTextBoxStyle: 
OB.Styles.OBFormField.DefaultComboBox.pendingTextBoxStyle,
         controlStyle: OB.Styles.OBFormField.DefaultComboBox.controlStyle,
         pickListBaseStyle: 
OB.Styles.OBFormField.DefaultComboBox.pickListBaseStyle,
         pickListTallBaseStyle: 
OB.Styles.OBFormField.DefaultComboBox.pickListTallBaseStyle,
@@ -134,6 +135,7 @@
         // fixes issue https://issues.openbravo.com/view.php?id=15105
         pickListCellHeight: 
OB.Styles.OBFormField.DefaultComboBox.quickRunPickListCellHeight,
         recentPropertyName : this.recentPropertyName,
+        addUnknownValues: false,
 
         getControlTableCSS: function(){
           // prevent extra width settings, super class
diff -r f4a9ad42e48a -r 1f8ad156bf59 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-quickrun-widget.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-quickrun-widget.js
     Fri Dec 02 14:40:09 2011 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-quickrun-widget.js
     Thu Dec 08 04:27:52 2011 +0100
@@ -83,7 +83,7 @@
       if (!me.showing) {
         isc.EH.clickMaskClick();
       }
-      me.click();
+      setTimeout(function() {me.click();}, 10); //setTimeout to avoid 
delayCall function that manages the focus
       return false; //To avoid keyboard shortcut propagation
     };
     OB.KeyboardManager.Shortcuts.set(this.keyboardShortcutId, 'Canvas', 
ksAction);
diff -r f4a9ad42e48a -r 1f8ad156bf59 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-user-profile-widget.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-user-profile-widget.js
 Fri Dec 02 14:40:09 2011 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-user-profile-widget.js
 Thu Dec 08 04:27:52 2011 +0100
@@ -111,6 +111,7 @@
       cellStyle: OB.Styles.OBFormField.DefaultComboBox.cellStyle,
       titleStyle: OB.Styles.OBFormField.DefaultComboBox.titleStyle,
       textBoxStyle: OB.Styles.OBFormField.DefaultComboBox.textBoxStyle,
+      pendingTextBoxStyle: 
OB.Styles.OBFormField.DefaultComboBox.pendingTextBoxStyle,
       controlStyle: OB.Styles.OBFormField.DefaultComboBox.controlStyle,
       width: '*',
       pickListBaseStyle: 
OB.Styles.OBFormField.DefaultComboBox.pickListBaseStyle,
diff -r f4a9ad42e48a -r 1f8ad156bf59 
modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-application-styles.css
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-application-styles.css
   Fri Dec 02 14:40:09 2011 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-application-styles.css
   Thu Dec 08 04:27:52 2011 +0100
@@ -37,6 +37,10 @@
   color: #333;
 }
 
+* :focus { /* Fixes completely issue: 
https://issues.openbravo.com/view.php?id=18501 */
+  outline: none;
+}
+
 .pageBackground {
   color: #333333;
   background: #FAFAFA;
diff -r f4a9ad42e48a -r 1f8ad156bf59 
modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-form-styles.css
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-form-styles.css
  Fri Dec 02 14:40:09 2011 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-form-styles.css
  Thu Dec 08 04:27:52 2011 +0100
@@ -100,6 +100,8 @@
 .OBFormFieldSelectInputError,
 .OBFormFieldSelectInputHint,
 
+.OBFormFieldSelectInputPending,
+
 .OBFormFieldSelectInputRequired,
 .OBFormFieldSelectInputRequiredDisabled,
 .OBFormFieldSelectInputRequiredFocused,
@@ -186,6 +188,8 @@
 .OBFormFieldSelectInputFocused,
 .OBFormFieldSelectInputHint,
 
+.OBFormFieldSelectInputPending,
+
 .OBFormFieldSelectInputRequired,
 .OBFormFieldSelectInputRequiredFocused,
 .OBFormFieldSelectInputRequiredError,
@@ -325,18 +329,24 @@
   border: 1px solid #fa962f;
 }
 
+.OBFormFieldSelectInput,
+.OBFormFieldSelectInputError,
+.OBFormFieldSelectInputSelectedFocused,
+.OBFormFieldSelectInputFocused,
+.OBFormFieldSelectInputDisabled,
+
+.OBFormFieldSelectInputPending,
+
 .OBFormFieldSelectInputRequired,
 .OBFormFieldSelectInputRequiredDisabled,
 .OBFormFieldSelectInputRequiredFocused,
 .OBFormFieldSelectInputRequiredError,
-.OBFormFieldSelectInputRequiredHint,
+.OBFormFieldSelectInputRequiredHint {
+  border-width: 1px 0px 1px 1px;
+}
 
-.OBFormFieldSelectInput,
-.OBFormFieldSelectInputError,
-.OBFormFieldSelectInputSelectedFocused,
-.OBFormFieldSelectInputFocused,
-.OBFormFieldSelectInputDisabled {
-  border-width: 1px 0px 1px 1px;
+.OBFormFieldSelectInputPending {
+  background-color: #FFDFDF;
 }
 
 .OBFormFieldInputRequiredHint,
diff -r f4a9ad42e48a -r 1f8ad156bf59 
modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-form-styles.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-form-styles.js
   Fri Dec 02 14:40:09 2011 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-form-styles.js
   Thu Dec 08 04:27:52 2011 +0100
@@ -100,10 +100,10 @@
   cellStyle: 'OBFormField',
   titleStyle: 'OBFormFieldLabel',
   textBoxStyle: 'OBFormFieldSelectInput',
+  pendingTextBoxStyle: 'OBFormFieldSelectInputPending',
   controlStyle: 'OBFormFieldSelectControl',
   pickerIconStyle: 'OBFormFieldSelectPickerIcon',
   pickListBaseStyle: 'OBFormFieldPickListCell',
-  pendingTextBoxStyle: null,
   // tallbasestyle is used when the cellheight is different
   // from the standard
   pickListTallBaseStyle: 'OBFormFieldPickListCell',
diff -r f4a9ad42e48a -r 1f8ad156bf59 
modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-grid-styles.css
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-grid-styles.css
  Fri Dec 02 14:40:09 2011 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-grid-styles.css
  Thu Dec 08 04:27:52 2011 +0100
@@ -77,6 +77,7 @@
 .OBGridCellErrorEditDisabled,
 .OBGridCellErrorEditDisabledDark {
   font-family: arial, sans-serif;
+  font-size: 12px;
   vertical-align: middle;
   border-right: 1px solid #cdd7bb;
   border-bottom: 1px solid #cdd7bb;
diff -r f4a9ad42e48a -r 1f8ad156bf59 
modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MESSAGE.xml
--- 
a/modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MESSAGE.xml   
    Fri Dec 02 14:40:09 2011 +0100
+++ 
b/modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MESSAGE.xml   
    Thu Dec 08 04:27:52 2011 +0100
@@ -67,6 +67,18 @@
 <!--1547AA8E541249B1979258E8D5443594-->  
<AD_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_MODULE_ID>
 <!--1547AA8E541249B1979258E8D5443594--></AD_MESSAGE>
 
+<!--1EB68E2D11EF4404ADFB6470D052EB99--><AD_MESSAGE>
+<!--1EB68E2D11EF4404ADFB6470D052EB99-->  
<AD_MESSAGE_ID><![CDATA[1EB68E2D11EF4404ADFB6470D052EB99]]></AD_MESSAGE_ID>
+<!--1EB68E2D11EF4404ADFB6470D052EB99-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--1EB68E2D11EF4404ADFB6470D052EB99-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--1EB68E2D11EF4404ADFB6470D052EB99-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--1EB68E2D11EF4404ADFB6470D052EB99-->  
<VALUE><![CDATA[OBKMO_AdminValueLabel]]></VALUE>
+<!--1EB68E2D11EF4404ADFB6470D052EB99-->  <MSGTEXT><![CDATA[Value]]></MSGTEXT>
+<!--1EB68E2D11EF4404ADFB6470D052EB99-->  <MSGTIP><![CDATA[Label uses in the 
'Admin Others' dialog's second combo]]></MSGTIP>
+<!--1EB68E2D11EF4404ADFB6470D052EB99-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--1EB68E2D11EF4404ADFB6470D052EB99-->  
<AD_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_MODULE_ID>
+<!--1EB68E2D11EF4404ADFB6470D052EB99--></AD_MESSAGE>
+
 <!--2AEA0063724C4EB69EA7829F37CCACF4--><AD_MESSAGE>
 <!--2AEA0063724C4EB69EA7829F37CCACF4-->  
<AD_MESSAGE_ID><![CDATA[2AEA0063724C4EB69EA7829F37CCACF4]]></AD_MESSAGE_ID>
 <!--2AEA0063724C4EB69EA7829F37CCACF4-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -191,6 +203,18 @@
 <!--5E70B4EEF8E7486A8EEBEFC99D36C9BC-->  
<AD_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_MODULE_ID>
 <!--5E70B4EEF8E7486A8EEBEFC99D36C9BC--></AD_MESSAGE>
 
+<!--68DF6DE9C5504710A6698DF1D3569374--><AD_MESSAGE>
+<!--68DF6DE9C5504710A6698DF1D3569374-->  
<AD_MESSAGE_ID><![CDATA[68DF6DE9C5504710A6698DF1D3569374]]></AD_MESSAGE_ID>
+<!--68DF6DE9C5504710A6698DF1D3569374-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--68DF6DE9C5504710A6698DF1D3569374-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--68DF6DE9C5504710A6698DF1D3569374-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--68DF6DE9C5504710A6698DF1D3569374-->  
<VALUE><![CDATA[OBKMO_AdminLevelLabel]]></VALUE>
+<!--68DF6DE9C5504710A6698DF1D3569374-->  <MSGTEXT><![CDATA[Level]]></MSGTEXT>
+<!--68DF6DE9C5504710A6698DF1D3569374-->  <MSGTIP><![CDATA[Label uses in the 
'Admin Others' dialog's first combo]]></MSGTIP>
+<!--68DF6DE9C5504710A6698DF1D3569374-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--68DF6DE9C5504710A6698DF1D3569374-->  
<AD_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_MODULE_ID>
+<!--68DF6DE9C5504710A6698DF1D3569374--></AD_MESSAGE>
+
 <!--6B3520F1A0F5415B9A8C5CA78D06AA75--><AD_MESSAGE>
 <!--6B3520F1A0F5415B9A8C5CA78D06AA75-->  
<AD_MESSAGE_ID><![CDATA[6B3520F1A0F5415B9A8C5CA78D06AA75]]></AD_MESSAGE_ID>
 <!--6B3520F1A0F5415B9A8C5CA78D06AA75-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -258,6 +282,18 @@
 <!--9A0BD5C58B094E0884DD43D4281EDF06-->  
<AD_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_MODULE_ID>
 <!--9A0BD5C58B094E0884DD43D4281EDF06--></AD_MESSAGE>
 

------------------------------------------------------------------------------
Cloud Services Checklist: Pricing and Packaging Optimization
This white paper is intended to serve as a reference, checklist and point of 
discussion for anyone considering optimizing the pricing and packaging model 
of a cloud services business. Read Now!
http://www.accelacomm.com/jaw/sfnl/114/51491232/
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to