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