Easy API: Difference between revisions

From MobileX for SageCRM
No edit summary
No edit summary
Line 49: Line 49:
Example showing how to add in a menu item on the footer
Example showing how to add in a menu item on the footer


1. Navigate to the 'Administration -> Advanced Customisation -> System Menus'
1. Navigate to the 'Administration -> Advanced Customisation -> System Menus'
2. Open (or create) the menu 'MXFooterMenu'
2. Open (or create) the menu 'MXFooterMenu'
3. Add menu item setting:
3. Add menu item setting:
  caption: site
  caption: site
  custom file: fa fa-bar-chart
  custom file: fa fa-bar-chart
  sql: getwebsite('Site','https://crmtogether.com');
  sql: getwebsite('Site','https://crmtogether.com');
4. Save this
4. Save this
5. Open the custompages/sagecrmws folder
5. Open the custompages/sagecrmws folder
6. open web.config
6. open web.config
7. Add into 'CustomPlugins'
7. Add into 'CustomPlugins'


    <add name="website" />
<add name="website" />


EG
EG
  <CustomPlugins>
  <CustomPlugins>
    <plugins>
<plugins>
...
...
  '''<add name="website" />'''     
  '''<add name="website" />'''     
    </plugins>
</plugins>
  </CustomPlugins>
  </CustomPlugins>




8. Open the custompages/sagecrmws/js/plugins folder
8. Open the custompages/sagecrmws/js/plugins folder
9. Create a folder called 'website'
9. Create a folder called 'website'
10. Create a folder called 'client'
10. Create a folder called 'client'
11. Create a file called 'plugin.js'
11. Create a file called 'plugin.js'
12. add the following contents to the file created in 11
12. add the following contents to the file created in 11


var onDocumentReady = function () {
var onDocumentReady = function () {
}
}
var onContextChanged = function () {
var onContextChanged = function () {
};
};
var _websitecount=0;
var _websitecount=0;
function getwebsite(_caption,_url)
function getwebsite(_caption,_url)
{
{
_websitecount++;
_websitecount++;
cApp.containerTop.clear();
cApp.containerTop.clear();
cApp.container.clear();
cApp.container.clear();


var _id="websitetitle"+_websitecount;
var _id="websitetitle"+_websitecount;
Factory.destroyComponent(_id);
Factory.destroyComponent(_id);
var powerbititle = Factory.createLabel(_id);
var powerbititle = Factory.createLabel(_id);
powerbititle.pr_caption = _caption;
powerbititle.pr_caption = _caption;
powerbititle.draw("containerTop");
powerbititle.draw("containerTop");
powerbititle.position(150, 10, true);
powerbititle.position(150, 10, true);


console.log('getwebsite:'+_id);
console.log('getwebsite:'+_id);
var pr_targetImage = Factory.createImage("pr_targetImage");
var pr_targetImage = Factory.createImage("pr_targetImage");
pr_targetImage.pr_height = "100%";
pr_targetImage.pr_height = "100%";
pr_targetImage.pr_width = Factory.deviceObject.pr_width;
pr_targetImage.pr_width = Factory.deviceObject.pr_width;
pr_targetImage.pr_src=_url;
pr_targetImage.pr_src=_url;
pr_targetImage.pr_onclick = "";
pr_targetImage.pr_onclick = "";
pr_targetImage.draw("container");
pr_targetImage.draw("container");
pr_targetImage.position(0, 0);
pr_targetImage.position(0, 0);
}
}

Revision as of 21:30, 11 November 2019

New Easy API - Designed to make "some" screens easy to provide in the interface



  • showScreens - screens with optional edit
 - Parameters
   1. Entity - name of the entity
   2. EntityIdField - id field of the entity
   3. Screens - Comma seperated list of CRM screens
   4. EntityToUse - name field to make ContextEntityfield value to
   5. ContextEntityfield - name of the entity context (tab) we are in
   6. allowEdit - boolean - set to true to show edit button

Example:

   showScreens(cApp.EntityName, cApp.EntityId,'CustomCompanyScreenMX1,CustomCompanyScreenMX2', 'company', 'comp_companyid','comp_companyid',true);

  • cugetList – Table style lists
 - Parameters
   1. Entity - name of the entity
   2. EntityIdField - id field of the entity
   3. EntityOrderBy - order date by this column
   4. displayfields - optional - comma delimited list of fields, alternatively use CRMListToUse
   5. linktoEntity - boolean - allows the item be clicked on to navigate the user to that entity record summary page
   6. customlink - optional - set linktoEntity to false and instead set your own function call
   7. CRMListToUse - optional - name of a list in CRM alternatively use displayfields 

Example:

 cugetList('ctproject','ctpr_companyid','ctpr_createddate',,true,,'mxcustomlist');



  • getListScreen – repeating screens style list
 - Parameters 
   1. entityname
 - Notes
   1. Expects view "vENTITYnamesummary" to exist and must contain fields "pers_firstname,pers_lastname,pers_personid,comp_name,comp_companyid".
   2. Expects screen "ENTITYOfficeIntSmall"

Example:

 getListScreen('ctproject');

Example showing how to add in a menu item on the footer

1. Navigate to the 'Administration -> Advanced Customisation -> System Menus' 2. Open (or create) the menu 'MXFooterMenu' 3. Add menu item setting: caption: site custom file: fa fa-bar-chart sql: getwebsite('Site','https://crmtogether.com'); 4. Save this 5. Open the custompages/sagecrmws folder 6. open web.config 7. Add into 'CustomPlugins'

<add name="website" />

EG <CustomPlugins> <plugins> ... <add name="website" /> </plugins> </CustomPlugins>


8. Open the custompages/sagecrmws/js/plugins folder 9. Create a folder called 'website' 10. Create a folder called 'client' 11. Create a file called 'plugin.js' 12. add the following contents to the file created in 11

var onDocumentReady = function () { } var onContextChanged = function () { }; var _websitecount=0; function getwebsite(_caption,_url) { _websitecount++; cApp.containerTop.clear(); cApp.container.clear();

var _id="websitetitle"+_websitecount; Factory.destroyComponent(_id); var powerbititle = Factory.createLabel(_id); powerbititle.pr_caption = _caption; powerbititle.draw("containerTop"); powerbititle.position(150, 10, true);

console.log('getwebsite:'+_id); var pr_targetImage = Factory.createImage("pr_targetImage"); pr_targetImage.pr_height = "100%"; pr_targetImage.pr_width = Factory.deviceObject.pr_width; pr_targetImage.pr_src=_url; pr_targetImage.pr_onclick = ""; pr_targetImage.draw("container"); pr_targetImage.position(0, 0); }