You need to sign in to do that
Don't have an account?
A.Zaykov
lightning component quick action
Hi,
I am trying to substitute a quick action (submitting a case for account to be removed) with a lightning component.
I need to prepopulate the Case.ContactId with the id of the internal contact attached to the user.
Here's the component:
JS Controller:
Thanks!
I am trying to substitute a quick action (submitting a case for account to be removed) with a lightning component.
I need to prepopulate the Case.ContactId with the id of the internal contact attached to the user.
Here's the component:
<aura:component implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId" access="global" controller="caseCreate"> <!--including lightning styles--> <ltng:require styles="{/assets/styles/salesforce-lightning-design-system.css'}"/> <ltng:require styles="{/assets/styles/salesforce-lightning-design-system.min.css'}"/> <aura:attribute name="contact" type="Contact" default="{ 'sobjectType': 'Contact' }"/> <aura:handler name="init" value="{!this}" action="{!c.loadContact}" /> <!-- Preparation of case object with fields--> <aura:attribute name="caseObj" type="Case" default="{'sobjectType':'Case', 'Type':'Remove/Merge Account', 'Subtype':'', 'Subject':'', 'Priority':'Medium', 'Status':'New/Not Started', 'Description':''}"/> <div class="slds"> <div class="slds-form-element"> <label class="slds-form-element__label" for="Type">Type</label> <div class="slds-form-element__control"> <ui:inputText aura:id="type" class="slds-input" value="{!v.caseObj.Type}" placeholder="Remove/Merge Account" /> </div> </div> <div class="slds-form-element"> <label class="slds-form-element__label" for="Subtype">Subtype</label> <div class="slds-form-element__control"> <ui:inputText aura:id="subtype" class="slds-input" value="{!v.casedObj.Subtype__c}" placeholder="--None--" /> </div> </div> <div class="slds-form-element"> <label class="slds-form-element__label" for="Subject">Subject</label> <div class="slds-form-element__control"> <ui:inputText aura:id="subject" class="slds-input" value="{!v.casedObj.Subject}" placeholder="--None--" /> </div> </div> <div class="slds-form-element"> <label class="slds-form-element__label" for="Email">Priority</label> <div class="slds-form-element__control"> <ui:inputText aura:id="priority" class="slds-input" value="{!v.caseObj.Priority}" placeholder="Medium" /> </div> </div> <div class="slds-form-element"> <label class="slds-form-element__label" for="Status">Status</label> <div class="slds-form-element__control"> <ui:inputText aura:id="status" class="slds-input" value="{!v.caseObj.Status}" placeholder="New/Not Started" /> </div> </div> <div class="slds-form-element"> <label class="slds-form-element__label" for="Description">Description</label> <div class="slds-form-element__control"> <ui:inputText aura:id="description" class="slds-input" value="{!v.caseObj.Description}" placeholder="" /> </div> </div> <div class="slds-form-element"> <label class="slds-form-element__label" for="ContactName">Contact Name</label> <div class="slds-form-element__control"> <ui:inputText aura:id="description" class="slds-input" value="{!v.caseObj.ContactId}" placeholder="{!v.contact.Id}" /> </div> </div> <div class="slds-form-element"> <div class="slds-form-element__control"> <ui:button label="Save" press="{!c.save}"/> </div> </div> </div> </aura:component>The ContactId is internal contact attached to the user.
JS Controller:
({ loadContact : function(component, event, helper) { var action = component.get("c.getContact"); action.setCallback(this, function(response) { var state = response.getState(); if(state === "SUCCESS") { component.set("v.contact", response.getReturnValue()); console.log(response.getReturnValue()); } }); $A.enqueueAction(action); }, save : function(component, event, helper) { var action = component.get("c.createCaseRecord"); action.setParams({"caseObj":component.get("v.caseObj")}); action.setCallback(this,function(result){ component.set("v.isShow",true); var caseId = result.getReturnValue(); var toastEvent = $A.get("e.force:showToast"); toastEvent.setParams({ title: "Success!", message: "You have successfully submitted the case", type: "Success" }); toastEvent.fire(); }); $A.enqueueAction(action); } })Apex class:
public class caseCreate { @auraenabled public static Id createCaseRecord(Case caseObj){ upsert caseObj; return caseObj.id; } @AuraEnabled public static Contact getContact(){ return [SELECT id, Name FROM Contact WHERE Email=: UserInfo.getUserEmail() LIMIT 1]; } }Any help/advice would be much appreciated.
Thanks!
apex class
Component