Client: Difference between revisions

From MobileX for SageCRM
No edit summary
No edit summary
Line 34: Line 34:


See Factory API
See Factory API
Next we want to implement the "sendOrder" method
  cTSApp.prototype.sendOrder = function () {
    var params = {
        fileName: "js\\plugins\\PLUGINNAME\\server\\sendOrder.js",
        EntityId: cApp.EntityId
    };
    var onSendOrderCompleted = function (data) {
        Factory.msgBox(data);
    };
    cApp.gatewayPostParams("runServerScript", params, onSendOrderCompleted);
  };
With the code
    var params = {
        fileName: "js\\plugins\\PLUGINNAME\\server\\sendOrder.js",
        EntityId: cApp.EntityId
    };
We tell the system what server js file to make the request to and also pass in the current Entity Id (any params can be set and sent to the server)
The request is actually made with the method "cApp.gatewayPostParams"
  EG
  cApp.gatewayPostParams("runServerScript", params, onSendOrderCompleted);
The callback "onSendOrderCompleted"
    var onSendOrderCompleted = function (data) {
        Factory.msgBox(data);
    };
is called after the request returns and "Factory.msgBox" displays a message box with the result

Revision as of 11:40, 28 June 2016

The client plugin is created in the file "SageCRMWS/js/plugins/PLUGINNAME/client/plugin.js"

You would add the following:

 var onDocumentReady = function () {
 }
 var onContextChanged = function () {
 };

This is the basic setup of the client plugin

 onDocumentReady  - Called when the web application has finished loading.
 onContextChanged - Called when a context in the web application has changed, as the result of calling cApp.setContext() method.


Next thing we might want to do is create a button the screen.

 var onContextChanged = function () {
   // Add "Orders" tab to the Company Summary
   if (cApp.EntityName == "company") {
       Factory.destroyComponent("btnOrders");
       cApp.btnOrders= Factory.createTopButton("btnOrders");
       cApp.btnOrders.pr_caption = "Order";
       cApp.btnOrders.pr_icon = "icon-envelope icon-white";
       cApp.btnOrders.pr_onclick = "cApp.sendOrder();";
       cApp.btnOrders.pr_insert = true;
       cApp.btnOrders.draw("btnContainer");
       cApp.btnOrders.position(255, 2);
   }
 };

Our client API uses the Factory method to control creating elements.

See Factory API

Next we want to implement the "sendOrder" method

 cTSApp.prototype.sendOrder = function () {
   var params = {
       fileName: "js\\plugins\\PLUGINNAME\\server\\sendOrder.js",
       EntityId: cApp.EntityId
   };
   var onSendOrderCompleted = function (data) {
       Factory.msgBox(data);
   };
   cApp.gatewayPostParams("runServerScript", params, onSendOrderCompleted);
 };

With the code

   var params = {
       fileName: "js\\plugins\\PLUGINNAME\\server\\sendOrder.js",
       EntityId: cApp.EntityId
   };

We tell the system what server js file to make the request to and also pass in the current Entity Id (any params can be set and sent to the server)

The request is actually made with the method "cApp.gatewayPostParams"

 EG 
 cApp.gatewayPostParams("runServerScript", params, onSendOrderCompleted);


The callback "onSendOrderCompleted"

   var onSendOrderCompleted = function (data) {
       Factory.msgBox(data);
   };

is called after the request returns and "Factory.msgBox" displays a message box with the result