Skip to content

Instantly share code, notes, and snippets.

View SalesforceBobLightning's full-sized avatar
💭
Easy-peasy

Salesforce Bob Lightning SalesforceBobLightning

💭
Easy-peasy
View GitHub Profile
@SalesforceBobLightning
SalesforceBobLightning / callAction.js
Last active September 5, 2018 16:24
Salesforce Lightning JavaScript Helper method for calling an Apex Controller method
callAction : function(cmp, methodName, params, callback){
var action = cmp.get(methodName);
action.setParams(params);
action.setCallback(this, function(response) {
var state = response.getState();
console.log(methodName + ' ' + state);
if(cmp.isValid() && state === "SUCCESS"){
var result = response.getReturnValue();
console.log(result);
if (callback) callback(result);
@SalesforceBobLightning
SalesforceBobLightning / promiseAction.js
Created July 2, 2018 23:20
Salesforce Lightning JavaScript Helper method that returns a Promise when calling an Apex Controller method
promiseAction : function(cmp, methodName, params){
console.log(methodName);
console.log(params);
return new Promise(function(resolve, reject) {
var action = cmp.get(methodName);
action.setParams(params);
action.setCallback(this, function(response) {
var state = response.getState();
console.log(methodName + ' ' + state);
if(cmp.isValid() && state === "SUCCESS"){
@SalesforceBobLightning
SalesforceBobLightning / castBooleanPropertiesToString.js
Created July 2, 2018 23:21
JavaScript method which converts Boolean properties of an Object to String
castBooleanPropertiesToString : function(object) {
var props = Object.getOwnPropertyNames(object);
for (var i = 0; i < props.length; i++) {
var propName = props[i];
if (typeof object[propName] == 'boolean'){
object[propName] = object[propName].toString();
}
}
},
@SalesforceBobLightning
SalesforceBobLightning / openModel.js
Created July 2, 2018 23:25
Salesforce Lightning JavaScript Helper method for opening a custom modal window
openModel : function(cmp, componentName, params, modelId, header, cssClass, callback) {
var modalBody;
$A.createComponent(componentName, params,
function(content, status) {
if (status === "SUCCESS") {
modalBody = content;
cmp.find(modelId).showCustomModal({
header: header,
body: modalBody,
cssClass: cssClass,
@SalesforceBobLightning
SalesforceBobLightning / validateFields.js
Created July 2, 2018 23:27
Salesforce Lightning JavaScript Helper method for validating form fields
validateFields : function(cmp, event, helper){
var isValid = true;
var fields = [];
fields = cmp.find("field");
for (var i = 0; i < fields.length; i++) {
if (fields[i] != null){
if (fields[i].get('v.validity').valid == false){
@SalesforceBobLightning
SalesforceBobLightning / GetCustomObjectFiles.cls
Created July 8, 2018 14:54
Get Custom Object Related Files using Salesforce Apex
public Set<Id> getFiles(Id recordId) {
List<ContentDocumentLink> files = [SELECT ContentDocumentId
FROM ContentDocumentLink
WHERE LinkedEntityId IN ( SELECT Id FROM CUSTOM_OBJECT_NAME__c )
AND LinkedEntity.Type='CUSTOM_OBJECT_NAME__c'
AND LinkedEntityId = :recordId];
if (files.size() > 0) {
return (new Map<Id, ContentDocumentLink>(files)).keySet();
@SalesforceBobLightning
SalesforceBobLightning / EmailTemplateLookup.cmp
Last active July 10, 2018 09:30
Email Template Lookup Component for Salesforce Lightning
<aura:component controller="EmailTemplateLookupController">
<aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
<aura:handler name="change" value="{!v.selectedRecordId}" action="{!c.onChange}"/>
<aura:attribute name="label" type="String" />
<aura:attribute name="objectName" type="String" />
<aura:attribute name="fieldName" type="String" />
<aura:attribute name="recordId" type="String" />
@SalesforceBobLightning
SalesforceBobLightning / README.md
Last active July 10, 2018 15:48
Deleting Apex Class or Apex Trigger From Salesforce

Deleting Apex Class or Apex Trigger using Workbench

  1. Create a package.xml file
  2. Create a destructiveChanges.xml file
  3. Bundle the two files together in a .zip file
  4. Deploy the .zip package using Workbench

Using Workbench

  1. Open the migration menu, then click Deploy
@SalesforceBobLightning
SalesforceBobLightning / UpdateFieldAction.cls
Last active March 10, 2021 08:21
Generic InvocableMethod for updating a field on an object from Salesforce Process Builder
public class UpdateFieldAction {
@InvocableMethod(
label='Update Field Action'
description = 'Update a field on another object'
)
public static void updateFields(List<Request> requests) {
for(Request request : requests){
updateField(request);
@SalesforceBobLightning
SalesforceBobLightning / UpdateGrandChildRecordsAction.cls
Last active July 10, 2018 22:43
InvocableMethod for updating grand child records in Salesforce Process Builder
public class UpdateGrandChildRecordsAction {
private final static String TARGET = '{0}';
private final static String REPLACEMENT = '\'\'{0}\'\'';
private final static String FORMAT = 'SELECT Id, {0} FROM {1} WHERE Id = \'\'{2}\'\'';
@InvocableMethod(
label='Update Grand Child Records Action'
description = 'Query child and grand child records and then update grand child records'
)