details:   https://code.openbravo.com/erp/devel/pi/rev/c09f69635bed
changeset: 20155:c09f69635bed
user:      David Baz Fayos <david.baz <at> openbravo.com>
date:      Fri Apr 19 18:16:45 2013 +0200
summary:   Fixed issue 23597: Added 'overwriteIfExists' capabilities to 
'registerButton' function

diffstat:

 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-view.js
                              |   2 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-manage-views-toolbar.js
            |   4 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalize-form-toolbar-button.js
 |   6 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/toolbar/ob-toolbar.js
                                 |  45 +++++----
 4 files changed, 32 insertions(+), 25 deletions(-)

diffs (163 lines):

diff -r dceedab02219 -r c09f69635bed 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-view.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-view.js
 Fri Apr 19 18:04:36 2013 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-view.js
 Fri Apr 19 18:16:45 2013 +0200
@@ -250,7 +250,7 @@
       length = this.iconToolbarButtons.length;
       for (i = 0; i < length; i++) {
         // note create a somewhat unique id by concatenating the tabid and the 
index
-        OB.ToolbarRegistry.registerButton(this.tabId + '_' + i, 
isc.OBToolbarIconButton, this.iconToolbarButtons[i], 200 + (i * 10), 
this.tabId);
+        OB.ToolbarRegistry.registerButton(this.tabId + '_' + i, 
isc.OBToolbarIconButton, this.iconToolbarButtons[i], 200 + (i * 10), 
this.tabId, false);
       }
     }
 
diff -r dceedab02219 -r c09f69635bed 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-manage-views-toolbar.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-manage-views-toolbar.js
       Fri Apr 19 18:04:36 2013 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-manage-views-toolbar.js
       Fri Apr 19 18:16:45 2013 +0200
@@ -11,7 +11,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2011-2012 Openbravo SLU
+ * All portions are Copyright (C) 2011-2013 Openbravo SLU
  * All Rights Reserved.
  * Contributor(s): ___________
  ************************************************************************
@@ -228,6 +228,6 @@
     keyboardShortcutId: 'ToolBar_ManageViews'
   };
 
-  OB.ToolbarRegistry.registerButton(manageViewButtonProperties.buttonType, 
isc.OBToolbarIconButton, manageViewButtonProperties, 320, null);
+  OB.ToolbarRegistry.registerButton(manageViewButtonProperties.buttonType, 
isc.OBToolbarIconButton, manageViewButtonProperties, 320, null, false);
 
 }());
\ No newline at end of file
diff -r dceedab02219 -r c09f69635bed 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalize-form-toolbar-button.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalize-form-toolbar-button.js
    Fri Apr 19 18:04:36 2013 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalize-form-toolbar-button.js
    Fri Apr 19 18:16:45 2013 +0200
@@ -11,7 +11,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2011-2012 Openbravo SLU
+ * All portions are Copyright (C) 2011-2013 Openbravo SLU
  * All Rights Reserved.
  * Contributor(s): ___________
  ************************************************************************
@@ -71,7 +71,7 @@
     keyboardShortcutId: 'ToolBar_Personalization'
   };
 
-  
OB.ToolbarRegistry.registerButton(personalizationButtonProperties.buttonType, 
isc.OBToolbarIconButton, personalizationButtonProperties, 310, null);
+  
OB.ToolbarRegistry.registerButton(personalizationButtonProperties.buttonType, 
isc.OBToolbarIconButton, personalizationButtonProperties, 310, null, false);
 
   // and register the toolbar button the window personalization tab  
   windowPersonalizationTabButtonProperties = {
@@ -147,6 +147,6 @@
   };
 
   // register only for the window personalization tab
-  
OB.ToolbarRegistry.registerButton(windowPersonalizationTabButtonProperties.buttonType,
 isc.OBToolbarIconButton, windowPersonalizationTabButtonProperties, 320, 
'FF8081813157AED2013157BF6D810023');
+  
OB.ToolbarRegistry.registerButton(windowPersonalizationTabButtonProperties.buttonType,
 isc.OBToolbarIconButton, windowPersonalizationTabButtonProperties, 320, 
'FF8081813157AED2013157BF6D810023', false);
 
 }());
\ No newline at end of file
diff -r dceedab02219 -r c09f69635bed 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/toolbar/ob-toolbar.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/toolbar/ob-toolbar.js
    Fri Apr 19 18:04:36 2013 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/toolbar/ob-toolbar.js
    Fri Apr 19 18:16:45 2013 +0200
@@ -1678,7 +1678,7 @@
 };
 
 
-// ** {{{ OB.ToolbarUtils.createCloneButton(/*String*/ actionHandler, 
/*Array[String]*/ tabIds, /*String*/ askMsg, /*Integer*/ sortOrder, /*Boolean*/ 
editRecordAfterClone, /*String*/ buttonId}}} **
+// ** {{{ OB.ToolbarUtils.createCloneButton(/*String*/ actionHandler, 
/*Array[String]*/ tabIds, /*String*/ askMsg, /*Integer*/ sortOrder, /*Boolean*/ 
editRecordAfterClone, /*String*/ buttonId, /*Boolean*/ overwriteIfExists}}} **
 // Automatically set up a clone button for the provided tabs
 // Parameters:
 // * {{{actionHandler}}}:  action handler which processes and returns the 
cloned record
@@ -1686,10 +1686,9 @@
 // * {{{askMsg}}}: (Optional, 'OBUIAPP_WantToCloneRecord' by default) Text 
that will be displayed when the button be pressed.
 // * {{{sortOrder}}}: (Optional, '100' by default) Position in the toolbar of 
the clone button.
 // * {{{editRecordAfterClone}}}: (Optional, true by default) If the form edit 
view (of the cloned record) should be opened after clone it.
-// * {{{buttonId}}}: (Optional, random by default) Don't set it unless you 
plan to do advanced coding with this button
-//
-// Based on the development of: Sreedhar Sirigiri (TDS), Mallikarjun M (TDS)
-OB.ToolbarUtils.createCloneButton = function (actionHandler, tabIds, askMsg, 
sortOrder, editRecordAfterClone, buttonId) {
+// * {{{buttonId}}}: (Optional, random by default) Don't set it unless you 
plan to do advanced coding with this button (as, for example, overwrite it 
later in another place).
+// * {{{overwriteIfExists}}}: (Optional, false by default) To be able to 
overwrite a particular existing clone button. The buttonId should match with 
the overwritten one.
+OB.ToolbarUtils.createCloneButton = function (actionHandler, tabIds, askMsg, 
sortOrder, editRecordAfterClone, buttonId, overwriteIfExists) {
   var cloneButtonProps = isc.addProperties({}, 
isc.OBToolbar.CLONE_BUTTON_PROPERTIES);
 
   if (!askMsg) {
@@ -1704,6 +1703,9 @@
   if (!buttonId) {
     buttonId = cloneButtonProps.buttonType + '_' + 
OB.Utilities.generateRandomString(8);
   }
+  if (overwriteIfExists !== true) {
+    overwriteIfExists = false;
+  }
 
   cloneButtonProps.action = function () {
     var view = this.view,
@@ -1735,14 +1737,14 @@
     isc.ask(askMsg, callback);
   };
 
-  OB.ToolbarRegistry.registerButton(buttonId, isc.OBToolbarIconButton, 
cloneButtonProps, sortOrder, tabIds);
+  OB.ToolbarRegistry.registerButton(buttonId, isc.OBToolbarIconButton, 
cloneButtonProps, sortOrder, tabIds, overwriteIfExists);
 };
 
 OB.ToolbarRegistry = {
   buttonDefinitions: [],
 
   // note tabIds is an array of strings, but maybe null/undefined
-  registerButton: function (buttonId, clazz, properties, sortOrder, tabIds) {
+  registerButton: function (buttonId, clazz, properties, sortOrder, tabIds, 
overwriteIfExists) {
     var length;
 
     if (tabIds && !isc.isA.Array(tabIds)) {
@@ -1761,11 +1763,16 @@
       tabIds: tabIds
     };
 
-    // already registered, bail
+    // already registered button handling
     length = this.buttonDefinitions.length;
     for (i = 0; i < length; i++) {
       if (this.buttonDefinitions[i].buttonId === buttonId) {
-        return;
+        if (overwriteIfExists) {
+          this.buttonDefinitions.splice(i, 1);
+          break;
+        } else {
+          return;
+        }
       }
     }
 
@@ -1815,15 +1822,15 @@
 };
 
 //These are the icon toolbar buttons shown in all the tabs 
-OB.ToolbarRegistry.registerButton(isc.OBToolbar.NEW_DOC_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.NEW_DOC_BUTTON_PROPERTIES, 10, null);
-OB.ToolbarRegistry.registerButton(isc.OBToolbar.NEW_ROW_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.NEW_ROW_BUTTON_PROPERTIES, 20, null);
-OB.ToolbarRegistry.registerButton(isc.OBToolbar.SAVE_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.SAVE_BUTTON_PROPERTIES, 30, null);
-OB.ToolbarRegistry.registerButton(isc.OBToolbar.SAVECLOSE_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.SAVECLOSE_BUTTON_PROPERTIES, 40, null);
-OB.ToolbarRegistry.registerButton(isc.OBToolbar.UNDO_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.UNDO_BUTTON_PROPERTIES, 50, null);
-OB.ToolbarRegistry.registerButton(isc.OBToolbar.DELETE_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.DELETE_BUTTON_PROPERTIES, 60, null);
-OB.ToolbarRegistry.registerButton(isc.OBToolbar.REFRESH_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.REFRESH_BUTTON_PROPERTIES, 70, null);
-OB.ToolbarRegistry.registerButton(isc.OBToolbar.EXPORT_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.EXPORT_BUTTON_PROPERTIES, 80, null);
-OB.ToolbarRegistry.registerButton(isc.OBToolbar.ATTACHMENTS_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.ATTACHMENTS_BUTTON_PROPERTIES, 90, 
null);
+OB.ToolbarRegistry.registerButton(isc.OBToolbar.NEW_DOC_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.NEW_DOC_BUTTON_PROPERTIES, 10, null, 
false);
+OB.ToolbarRegistry.registerButton(isc.OBToolbar.NEW_ROW_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.NEW_ROW_BUTTON_PROPERTIES, 20, null, 
false);
+OB.ToolbarRegistry.registerButton(isc.OBToolbar.SAVE_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.SAVE_BUTTON_PROPERTIES, 30, null, 
false);
+OB.ToolbarRegistry.registerButton(isc.OBToolbar.SAVECLOSE_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.SAVECLOSE_BUTTON_PROPERTIES, 40, null, 
false);
+OB.ToolbarRegistry.registerButton(isc.OBToolbar.UNDO_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.UNDO_BUTTON_PROPERTIES, 50, null, 
false);
+OB.ToolbarRegistry.registerButton(isc.OBToolbar.DELETE_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.DELETE_BUTTON_PROPERTIES, 60, null, 
false);
+OB.ToolbarRegistry.registerButton(isc.OBToolbar.REFRESH_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.REFRESH_BUTTON_PROPERTIES, 70, null, 
false);
+OB.ToolbarRegistry.registerButton(isc.OBToolbar.EXPORT_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.EXPORT_BUTTON_PROPERTIES, 80, null, 
false);
+OB.ToolbarRegistry.registerButton(isc.OBToolbar.ATTACHMENTS_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.ATTACHMENTS_BUTTON_PROPERTIES, 90, 
null, false);
 
 //and add the direct link at the end
-OB.ToolbarRegistry.registerButton(isc.OBToolbar.LINK_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.LINK_BUTTON_PROPERTIES, 300, null);
\ No newline at end of file
+OB.ToolbarRegistry.registerButton(isc.OBToolbar.LINK_BUTTON_PROPERTIES.buttonType,
 isc.OBToolbarIconButton, isc.OBToolbar.LINK_BUTTON_PROPERTIES, 300, null, 
false);
\ No newline at end of file

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to