Last active
November 17, 2018 19:04
-
-
Save ChuckJonas/93853c2477dcbb3688008b5aa44846c2 to your computer and use it in GitHub Desktop.
LeadCloneWithActivitesController
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Author Charlie@callaway.cloud | |
// Replacement clone page which copies activity history | |
public with sharing class LeadCloneWithActivitiesController { | |
private SObjectDeepClone cloner; //cloning util | |
public Lead clone {get; private set;} //editable lead | |
public Metadata.Layout leadLayout {get; private set;} //layout | |
public Metadata.UiBehavior editEnum { | |
get{ return Metadata.UiBehavior.Edit; } | |
} | |
public LeadCloneWithActivitiesController(ApexPages.StandardController controller) { | |
Id idToClone = ((Lead)controller.getRecord()).Id; | |
try{ | |
//get lead layout | |
List<Metadata.Metadata> components = Metadata.Operations.retrieve( | |
Metadata.MetadataType.Layout, | |
new String[]{'Lead-Lead Layout'} | |
); | |
leadLayout = (Metadata.Layout) components.get(0); | |
//setup clone obj | |
cloner = new SObjectDeepClone( | |
idToClone, | |
new Set<String>{ | |
'Tasks', | |
'Events' | |
} | |
); | |
// set SObject so user can edit values | |
this.clone = (Lead) cloner.clone; | |
}catch(Exception e){ | |
ApexPages.addMessages(e); | |
} | |
} | |
//save object | |
public PageReference saveClone() { | |
try{ | |
Id newLeadId = cloner.save(); | |
return new PageReference('/'+newLeadId); | |
}catch(Exception e){ | |
ApexPages.addMessages(e); | |
return null; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment