Skip to content

Instantly share code, notes, and snippets.

View pozil's full-sized avatar

Philippe Ozil pozil

View GitHub Profile
@pozil
pozil / update-sf-cli.sh
Last active September 24, 2024 10:59
Salesforce CLI update script for NPM install
VERSION_REGEX="([0-9]+\.[0-9]+\.[0-9]+)"
# Get local version
LOCAL_VERSION=$(sf -v)
if [[ $LOCAL_VERSION =~ $VERSION_REGEX ]]
then
LOCAL_VERSION="${BASH_REMATCH[1]}"
echo Local CLI version: $LOCAL_VERSION
else
echo Could not retrieve local CLI version.
@pozil
pozil / README.md
Created July 4, 2022 09:58
Drawing a Sankey Chart with Lightning Web Components and Chartjs

Drawing a Sankey Chart with Chartjs

This Gist explains how to draw a Sankey chart on the Salesforce Platform with Lightning Web Components. We use the Chart.js library and the chartjs-chart-sankey plugin. For the sake of simplicy we start from an existing Salesforce project: LWC Recipes.

  1. Install LWC Recipes and make sure that you can see the Chart.js recipe located in the 3rd Party Libs tab.
  2. Enable Lightning Web Security or you'll get the following error message:

    TypeError: ResizeObserver is not a constructor

  3. Download the latest version of the chartjs-chart-sankey plugin from this CDN link and rename the file to chartJsSankey.js.
@pozil
pozil / Build-WSC-JAR.md
Last active March 1, 2022 13:57
Build JAR files with WSC from WSDL files

This script lets you build JAR files with WSC from Salesforce WSDL files.

  1. Create a new directory and place this shell file in the directory.
  2. Obtain the Enterprise, Partner and Metadata WSDL files from your Salesforce org and place them in the folder.
  3. Run the build-jars.sh script.
  4. Grab the JAR files from the build directory.
@pozil
pozil / run-apex.sh
Last active August 23, 2024 16:24
Shell scripts that runs anonymous Apex with Salesforce CLI and filters out command output to only display time stamp and debug messages
#!/bin/bash
# Shell scripts that runs anonymous Apex with Salesforce CLI and filters out command output to only display time stamp and debug messages
# Know limitation: the script doesn't support multiline log messages (it will only display the first line)
# Get Apex file path from parameter or ask for it
filePath=""
if [ "$#" -eq 1 ]; then
filePath="$1"
else
echo "Apex file path:"
@pozil
pozil / github-auto-sso.user.js
Created December 8, 2020 17:07
GitHub Auto SSO script for Tampermonkey
// ==UserScript==
// @name GitHub Auto SSO
// @namespace http://pozil.github.io
// @version 1.0
// @description Adds a button that lets you automatically signs-in to all orgs that requires SSO login (instead of clicking 3x per org)
// @author pozil
// @match https://github.com/*
// ==/UserScript==
(function() {
@pozil
pozil / SlackIntegration.cls
Last active November 5, 2020 15:14
Slack Post Message Invocable Action
public with sharing class SlackIntegration {
@future(callout=true)
public static void postMessage(String url, String message) {
Map<String, String> body = new Map<String, String>();
body.put('text', message);
String bodyJSON = JSON.Serialize(body);
HttpResponse response = sendRequest(url, 'POST', bodyJSON);
if (response.getStatusCode() != 200) {
throw new SlackException('Failed to post Slack Message ' + response.getBody());
@pozil
pozil / async-basics.js
Created June 15, 2020 18:35
Asynchronous JavaScript Cheatsheet
function callbackExample() {
setTimeout(_callback, 1000);
console.log('This appears instantaneously');
}
function promiseExample() {
_longRunningOperation()
.then(() => {
console.log('This appears later');
@pozil
pozil / DX setup script
Last active September 24, 2019 17:18
DX setup script
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew tap caskroom/cask && brew cask install java
https://developer.salesforce.com/media/salesforce-cli/sfdx-osx.pkg
sfdx update
sfdx force:auth:web:login --setalias hub-org
sfdx force:config:set defaultdevhubusername=username --global
@pozil
pozil / toaster.cmp
Last active January 16, 2021 10:18
Lightning - Displaying a system toast with a few lines of code
<aura:component implements="force:appHostable,flexipage:availableForAllPageTypes" access="global">
<div class="slds-m-around--xx-large slds-text-align--center">
<lightning:button label="Fire toast event" onclick="{! c.fireToastEvent }"/>
</div>
</aura:component>
@pozil
pozil / gridAndLayoutSampleApp.cmp
Last active March 4, 2020 21:34
SLDS Grid vs. Lightning Layout
<aura:application extends="force:slds">
<!-- Pure HTML and SLDS Grid -->
<div class="slds-text-heading--large slds-p-around--small">Pure HTML and SLDS Grid</div>
<div class="slds-grid slds-wrap">
<div class="slds-p-around--small slds-size--1-of-1">1</div>
<div class="slds-p-around--small slds-size--1-of-2 slds-medium-size--5-of-6 slds-large-size--8-of-12">2</div>
<div class="slds-p-around--small slds-size--1-of-2 slds-medium-size--1-of-6 slds-large-size--4-of-12">3</div>
<div class="slds-p-around--small slds-size--1-of-1 slds-medium-size--1-of-2 slds-large-size--1-of-3">4</div>
<div class="slds-p-around--small slds-size--1-of-1 slds-medium-size--1-of-2 slds-large-size--1-of-3">5</div>