details:   https://code.openbravo.com/erp/devel/pi/rev/290a173d1040
changeset: 20153:290a173d1040
user:      David Baz Fayos <david.baz <at> openbravo.com>
date:      Fri Apr 19 17:57:21 2013 +0200
summary:   Fixed issue 23596: Added 'OB.ToolbarUtils.createCloneButton' function

diffstat:

 
modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml
                         |  12 +
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/toolbar/ob-clone-order.js
 |  40 +------
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/toolbar/ob-toolbar.js
     |  61 ++++++++++
 3 files changed, 76 insertions(+), 37 deletions(-)

diffs (147 lines):

diff -r b24931f09dcd -r 290a173d1040 
modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml
--- 
a/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml
        Fri Apr 19 14:07:55 2013 +0000
+++ 
b/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml
        Fri Apr 19 17:57:21 2013 +0200
@@ -96,6 +96,18 @@
 <!--04E5DFD5293748308CF3ED2848CE8AE4-->  
<ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--04E5DFD5293748308CF3ED2848CE8AE4--></AD_MESSAGE>
 
+<!--050A887278BB4AF0A40D7FBEC4BFED0D--><AD_MESSAGE>
+<!--050A887278BB4AF0A40D7FBEC4BFED0D-->  
<AD_MESSAGE_ID><![CDATA[050A887278BB4AF0A40D7FBEC4BFED0D]]></AD_MESSAGE_ID>
+<!--050A887278BB4AF0A40D7FBEC4BFED0D-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--050A887278BB4AF0A40D7FBEC4BFED0D-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--050A887278BB4AF0A40D7FBEC4BFED0D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--050A887278BB4AF0A40D7FBEC4BFED0D-->  
<VALUE><![CDATA[OBUIAPP_WantToCloneRecord]]></VALUE>
+<!--050A887278BB4AF0A40D7FBEC4BFED0D-->  <MSGTEXT><![CDATA[Do you want to 
clone the selected record?]]></MSGTEXT>
+<!--050A887278BB4AF0A40D7FBEC4BFED0D-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--050A887278BB4AF0A40D7FBEC4BFED0D-->  
<AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
+<!--050A887278BB4AF0A40D7FBEC4BFED0D-->  
<ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--050A887278BB4AF0A40D7FBEC4BFED0D--></AD_MESSAGE>
+
 <!--07272FCDEEA64054AF2F983D9814EE00--><AD_MESSAGE>
 <!--07272FCDEEA64054AF2F983D9814EE00-->  
<AD_MESSAGE_ID><![CDATA[07272FCDEEA64054AF2F983D9814EE00]]></AD_MESSAGE_ID>
 <!--07272FCDEEA64054AF2F983D9814EE00-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r b24931f09dcd -r 290a173d1040 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/toolbar/ob-clone-order.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/toolbar/ob-clone-order.js
        Fri Apr 19 14:07:55 2013 +0000
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/toolbar/ob-clone-order.js
        Fri Apr 19 17:57:21 2013 +0200
@@ -11,45 +11,11 @@
  * 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):   Sreedhar Sirigiri (TDS), Mallikarjun M (TDS)
  ************************************************************************
  */
 
-// Registers a button to clone an order
-// put within a function to hide local vars etc.
-(function () {
-  var cloneButtonProps = isc.addProperties({}, 
isc.OBToolbar.CLONE_BUTTON_PROPERTIES);
-
-  cloneButtonProps.action = function () {
-    var view = this.view,
-        callback;
-
-    callback = function (ok) {
-      var requestParams;
-
-      if (ok) {
-        requestParams = {
-          orderId: view.viewGrid.getSelectedRecord().id
-        };
-        
OB.RemoteCallManager.call('org.openbravo.client.application.businesslogic.CloneOrderActionHandler',
 {}, requestParams, function (rpcResponse, data, rpcRequest) {
-
-          var recordIndex = 
view.viewGrid.getRecordIndex(view.viewGrid.getSelectedRecord()) + 1;
-          // takes care of transforming dates etc.
-          data = view.viewGrid.getDataSource().recordsFromObjects(data)[0];
-          view.viewGrid.addToCacheData(data, recordIndex);
-          view.viewGrid.scrollToRow(recordIndex);
-          view.viewGrid.markForRedraw();
-          var visibleRows = view.viewGrid.body.getVisibleRows();
-          view.editRecord(view.viewGrid.getRecord(recordIndex), false);
-        });
-      }
-    };
-    isc.ask(OB.I18N.getLabel('OBUIAPP_WantToCloneOrder'), callback);
-  };
-
-  // register the button for the sales order tab
-  OB.ToolbarRegistry.registerButton(cloneButtonProps.buttonType, 
isc.OBToolbarIconButton, cloneButtonProps, 100, ['186', '294']);
-
-}());
\ No newline at end of file
+// Create a button to clone a sales order ('Sales Order' tab)
+OB.ToolbarUtils.createCloneButton('org.openbravo.client.application.businesslogic.CloneOrderActionHandler',
 ['186', '294'], OB.I18N.getLabel('OBUIAPP_WantToCloneOrder'));
\ No newline at end of file
diff -r b24931f09dcd -r 290a173d1040 
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 14:07:55 2013 +0000
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/toolbar/ob-toolbar.js
    Fri Apr 19 17:57:21 2013 +0200
@@ -1677,6 +1677,67 @@
   view.setContextInfo(view.getContextInfo(true, true, true, true), 
openPopupTree, true);
 };
 
+
+// ** {{{ OB.ToolbarUtils.createCloneButton(/*String*/ actionHandler, 
/*Array[String]*/ tabIds, /*String*/ askMsg, /*Integer*/ sortOrder, /*Boolean*/ 
editRecordAfterClone, /*String*/ buttonId}}} **
+// Automatically set up a clone button for the provided tabs
+// Parameters:
+// * {{{actionHandler}}}:  action handler which processes and returns the 
cloned record
+// * {{{tabIds}}}: array of tabIds where this button will be shown
+// * {{{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) {
+  var cloneButtonProps = isc.addProperties({}, 
isc.OBToolbar.CLONE_BUTTON_PROPERTIES);
+
+  if (!askMsg) {
+    askMsg = OB.I18N.getLabel('OBUIAPP_WantToCloneRecord');
+  }
+  if (!sortOrder) {
+    sortOrder = 100;
+  }
+  if (editRecordAfterClone !== false) {
+    editRecordAfterClone = true;
+  }
+  if (!buttonId) {
+    buttonId = cloneButtonProps.buttonType + '_' + 
OB.Utilities.generateRandomString(8);
+  }
+
+  cloneButtonProps.action = function () {
+    var view = this.view,
+        callback;
+
+    callback = function (ok) {
+      var requestParams;
+
+      if (ok) {
+        requestParams = {
+          orderId: view.viewGrid.getSelectedRecord().id
+        };
+        OB.RemoteCallManager.call(actionHandler, {}, requestParams, function 
(rpcResponse, data, rpcRequest) {
+          var recordIndex = 
view.viewGrid.getRecordIndex(view.viewGrid.getSelectedRecord()) + 1,
+              recordsData = 
view.viewGrid.getDataSource().recordsFromObjects(data)[0];
+          view.viewGrid.addToCacheData(recordsData, recordIndex);
+          view.viewGrid.scrollToRow(recordIndex);
+          view.viewGrid.markForRedraw();
+          if (view.viewGrid.getEditRow()) {
+            view.viewGrid.endEditing();
+          }
+          view.viewGrid.doSelectSingleRecord(recordIndex);
+          if (editRecordAfterClone) {
+            view.editRecord(view.viewGrid.getRecord(recordIndex), false);
+          }
+        });
+      }
+    };
+    isc.ask(askMsg, callback);
+  };
+
+  OB.ToolbarRegistry.registerButton(buttonId, isc.OBToolbarIconButton, 
cloneButtonProps, sortOrder, tabIds);
+};
+
 OB.ToolbarRegistry = {
   buttonDefinitions: [],
 

------------------------------------------------------------------------------
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