Skip to content

Instantly share code, notes, and snippets.

View keirbowden's full-sized avatar

Keir Bowden keirbowden

View GitHub Profile
@keirbowden
keirbowden / TableSorter.page
Created September 20, 2014 14:51
Demo page for Visualforce and tablesorter
<apex:page sidebar="true" controller="TableSortingCtrl">
<apex:includeScript
value="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" />
<apex:includeScript
value="//cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.17.8/js/jquery.tablesorter.min.js" />
<apex:stylesheet
value="//cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.17.8/css/theme.blue.css" />
<apex:datatable value="{!accounts}" var="acc" id="accsTable" styleclass="tablesorter">
<apex:column headerValue="Created">
@keirbowden
keirbowden / TableSortingCtrl.cls
Last active August 29, 2015 14:06
Custom controller for the table sorting blog post
public with sharing class TableSortingCtrl {
public List<Account> accounts {get; set;}
public TableSortingCtrl()
{
accounts=[select id, CreatedDate, Name, BillingStreet,
BillingState, BillingCity,
BillingPostalCode, BillingCountry
from Account
where BillingPostalCode!=null
@keirbowden
keirbowden / AddAttachmentExt.cls
Created September 5, 2014 16:43
Extension controller to save an attachment associated with a record encapsulated in the standard controller
public with sharing class AddAttachmentExt
{
private ApexPages.StandardController stdCtrl;
public Attachment att {get; set;}
public AddAttachmentExt(ApexPages.StandardController inStd)
{
stdCtrl=inStd;
att=new Attachment();
}
@keirbowden
keirbowden / CheckAttachmentSize.page
Created September 5, 2014 16:41
Visualforce page that checks the size of a file selected for upload
<apex:page standardController="Account" extensions="AddAttachmentExt">
<apex:includeScript value="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.9.1.min.js"/>
<apex:form>
<apex:sectionHeader title="{!Account.name} Attachments" />
<apex:pageBlock mode="maindetail">
<apex:pageBlockSection title="Existing Attachments" columns="1">
<apex:PageBlockTable value="{!Account.Attachments}" var="attach">
<apex:column value="{!attach.Name}" />
<apex:column headerValue="Length (bytes)" value="{!attach.BodyLength}" />
<apex:column headerValue="Owner" value="{!attach.Owner.Name}" />
@keirbowden
keirbowden / BarcodeSF1Ctrl
Created March 15, 2014 12:19
Visualforce controller with a JavaScript remoting method to retrieve a matching record after scanning a barcode.
public with sharing class BarcodeSF1Ctrl
{
@RemoteAction
public static String getRecordFromBarcode(String bcStr)
{
String result;
List<String> eles=bcStr.split(':');
String code=eles[1].trim();
List<Account> accs=[select id, Barcode__c from Account where Barcode__c=:code];
@keirbowden
keirbowden / BarcodeSF1
Created March 15, 2014 12:17
Visualforce page to decode a barcode from a captured or selected image.
<apex:page applyHtmlTag="false" showheader="false" sidebar="false" controller="BarcodeSF1Ctrl">
<head>
<title>BarcodeReader</title>
<apex:stylesheet value="{!URLFOR($Resource.alertify, 'alertify.js-0.3.11/themes/alertify.core.css')}"/>
<apex:stylesheet value="{!URLFOR($Resource.alertify, 'alertify.js-0.3.11/themes/alertify.default.css')}"/>
<apex:includeScript value="{!URLFOR($Resource.alertify, 'alertify.js-0.3.11/lib/alertify.min.js')}"/>
</head>
<body>
<div>
<img width="320" height="240" src="" id="picture" style="border:10px groove silver" />
@keirbowden
keirbowden / QRCode.page
Last active November 11, 2019 14:46
Salesforce1 QR Code Reader
<apex:page >
<script type="text/javascript"
src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="{!URLFOR($Resource.QRCode, 'jsqrcode-master/src/grid.js')}"></script>
<script type="text/javascript" src="{!URLFOR($Resource.QRCode, 'jsqrcode-master/src/version.js')}"></script>
<script type="text/javascript" src="{!URLFOR($Resource.QRCode, 'jsqrcode-master/src/detector.js')}"></script>
<script type="text/javascript" src="{!URLFOR($Resource.QRCode, 'jsqrcode-master/src/formatinf.js')}"></script>
<script type="text/javascript" src="{!URLFOR($Resource.QRCode, 'jsqrcode-master/src/errorlevel.js')}"></script>
<script type="text/javascript" src="{!URLFOR($Resource.QRCode, 'jsqrcode-master/src/bitmat.js')}"></script>
@keirbowden
keirbowden / StreamingController.cls
Created December 27, 2013 15:51
Custom controller for the streaming API browser notifications page.
public with sharing class StreamingController
{
public String getTopic()
{
String result='';
List<PushTopic> topics=[select id, Name from PushTopic where Name='Cases'];
if (0!=topics.size())
{
result='Cases';
@keirbowden
keirbowden / Streaming.page
Created December 27, 2013 15:50
Visualforce page that sets up the topic subscription and includes the streaming component to display browser notifications.
<apex:page controller="StreamingController">
<apex:pageMessages id="msgs" />
<apex:outputPanel id="all">
<apex:outputPanel rendered="{!topic==''}">
<apex:form >
<apex:actionFunction name="createTopic" action="{!CreateTopic}" rerender="all, msgs" />
<script>
alert('Creating topic - create topic function = ' + createTopic);
createTopic();
</script>
@keirbowden
keirbowden / Streaming.component
Last active July 23, 2017 10:30
Visualforce component to display browser notifications when a case is updated that is owned by the currently logged in user
<apex:component >
<apex:attribute name="topic" description="The topic name" type="String" required="true"/>
<apex:includeScript value="{!URLFOR($Resource.streaming, 'streaming/cometd.js')}"/>
<apex:includeScript value="{!URLFOR($Resource.streaming, 'streaming/jquery-1.5.1.js')}"/>
<apex:includeScript value="{!URLFOR($Resource.streaming, 'streaming/json2.js')}"/>
<apex:includeScript value="{!URLFOR($Resource.streaming, 'streaming/jquery.cometd.js')}"/>
<script type="text/javascript">
(function($){
$(document).ready(function() {
$.cometd.addListener("/meta/*",