You need to sign in to do that
Don't have an account?
Thomas H
I have some UX display funtionality issues -- seems to be making 5 iterations ?
-- I am getting error messages and get display quirks after making a bunch of small tweaks.
Myself and a few others would like to understand what final corrections need to be made in the Trail code ...
The Trail is supposed to look like this ?
This is what I am supposed to be getting ....
Thanks in Advance for taking a look !
Trailhead UX Prototyping Basics -- Iterate on Your Prototype -- ** Please help with Display Quirks
I have some UX display funtionality issues -- seems to be making 5 iterations ?
-- I am getting error messages and get display quirks after making a bunch of small tweaks.
Myself and a few others would like to understand what final corrections need to be made in the Trail code ...
public with sharing class SearchResultsController { @AuraEnabled public static List<Account> getAccounts() { List<Account> accounts = [SELECT Id, Name, Phone, Website, OwnerId FROM Account LIMIT 5]; return accounts; } @AuraEnabled public static List<Contact> getContacts() { List<Contact> contacts = [SELECT Id, Name, Phone, Email, Title FROM Contact LIMIT 5]; return contacts; } @AuraEnabled public static List<Lead> getLeads() { List<Lead> leads = [SELECT Id, Name, Company, Email, Status, Phone FROM Lead LIMIT 5]; return leads; } }
<aura:component controller="SearchResultsController" implements="force:appHostable, flexipage:availableForAllPageTypes, flexipage:availableForRecordHome,force:hasRecordId, forceCommunity:availableForAllPageTypes, force:lightningQuickAction" access="global" > <aura:attribute name="accounts" type="Account[]"/> <aura:attribute name="contacts" type="Contact[]"/> <aura:attribute name="leads" type="Lead[]"/> <aura:handler name="init" value="{!this}" action="{!c.doInit}"/> <div class="slds-card"> <h2 class="slds-text-heading--medium slds-p-vertical--medium">Accounts</h2> <div class="slds-grid"> <ul class="slds-col slds-size--1-of-1"> <aura:iteration items="{!v.accounts}" var="account"> <li class="slds-size--1-of-3 slds-show--inline-block"> <lightning:card variant="narrow" iconName="standard:account" class="slds-m-around--small slds-card_boundary"> <aura:set attribute="title"> {!account.Name} </aura:set> <div class="slds-tile slds-p-horizontal--large"> <div class="slds-tile__detail slds-text-body--small"> <dl class="slds-list--horizontal slds-wrap"> <dt class="slds-item--label slds-text-color--weak slds-truncate" title="First Label">Phone:</dt> <dd class="slds-item--detail slds-truncate">{!account.Phone}</dd> <dt class="slds-item--label slds-text-color--weak slds-truncate" title="Second Label">Website:</dt> <dd class="slds-item--detail slds-truncate">{!account.Website}</dd> <dt class="slds-item--label slds-text-color--weak slds-truncate" title="Third Label">Account Owner:</dt> <dd class="slds-item--detail slds-truncate">{!account.OwnerId}</dd> </dl> </div> </div> </lightning:card> </li> </aura:iteration> </ul> </div> <h2 class="slds-text-heading--medium slds-p-vertical--medium">Contacts</h2> <div class="slds-grid"> <ul class="slds-col slds-size--1-of-1"> <aura:iteration items="{!v.contacts}" var="contact" indexVar="index"> <li class="slds-size--1-of-3 slds-show--inline-block"> <lightning:card variant="narrow" class="slds-m-around--small slds-card_boundary"> <aura:set attribute="title"> {!contact.Name} </aura:set> <div class="slds-tile slds-p-horizontal--large"> <div class="slds-tile__detail slds-text-body--small"> <dl class="slds-list--horizontal slds-wrap"> <dt class="slds-item--label slds-text-color--weak slds-truncate" title="First Label">Email Address:</dt> <dd class="slds-item--detail slds-truncate">{!contact.Email}</dd> <dt class="slds-item--label slds-text-color--weak slds-truncate" title="Second Label">Title:</dt> <dd class="slds-item--detail slds-truncate">{!contact.Title}</dd> <dt class="slds-item--label slds-text-color--weak slds-truncate" title="Third Label">Phone:</dt> <dd class="slds-item--detail slds-truncate">{!contact.Phone}</dd> </dl> </div> </div> </lightning:card> </li> </aura:iteration> </ul> </div> <h2 class="slds-text-heading--medium slds-p-vertical--medium">Leads</h2> <div class="slds-grid"> <ul class="slds-col slds-size--1-of-1"> <aura:iteration items="{!v.leads}" var="lead" indexVar="index"> <li class="slds-size--1-of-3 slds-show--inline-block"> <lightning:card variant="narrow" class="slds-m-around--small slds-card_boundary"> <aura:set attribute="title"> {!lead.Name} </aura:set> <div class="slds-tile slds-p-horizontal--large"> <div class="slds-tile__detail slds-text-body--small"> <dl class="slds-list--horizontal slds-wrap"> <dt class="slds-item--label slds-text-color--weak slds-truncate" title="Second Label">Company:</dt> <dd class="slds-item--detail slds-truncate">{!lead.Company}</dd> <dt class="slds-item--label slds-text-color--weak slds-truncate" title="Second Label">Email Address:</dt> <dd class="slds-item--detail slds-truncate">{!lead.Email}</dd> <dt class="slds-item--label slds-text-color--weak slds-truncate" title="Third Label">Status:</dt> <dd class="slds-item--detail slds-truncate">{!lead.Status}</dd> <dt class="slds-item--label slds-text-color--weak slds-truncate" title="First Label">Phone:</dt> <dd class="slds-item--detail slds-truncate">{!lead.Phone}</dd> </dl> </div> </div> </lightning:card> </li> </aura:iteration> </ul> </div> </div> </aura:component>
({ doInit : function(component, event, helper) { // Prepare the action to load account record var action = component.get("c.getAccount"); action.setParams({"accountId": component.get("v.recordId")}); // Configure response handler action.setCallback(this, function(response) { var state = response.getState(); if(component.isValid() && state === "SUCCESS") { component.set("v.account", response.getReturnValue()); } else { console.log('Problem getting account, response state: ' + state); } }); $A.enqueueAction(action); }, handleSaveContact: function(component, event, helper) { if(helper.validateContactForm(component)) { component.set("v.hasErrors", false); // Prepare the action to create the new contact var saveContactAction = component.get("c.saveContactWithAccount"); saveContactAction.setParams({ "contact": component.get("v.newContact"), "accountId": component.get("v.recordId") }); // Configure the response handler for the action saveContactAction.setCallback(this, function(response) { var state = response.getState(); if(component.isValid() && state === "SUCCESS") { // Prepare a toast UI message var resultsToast = $A.get("e.force:showToast"); resultsToast.setParams({ "title": "Contact Saved", "message": "The new contact was created." }); // Update the UI: close panel, show toast, refresh account page $A.get("e.force:closeQuickAction").fire(); resultsToast.fire(); $A.get("e.force:refreshView").fire(); } else if (state === "ERROR") { console.log('Problem saving contact, response state: ' + state); } else { console.log('Unknown problem, response state: ' + state); } }); // Send the request to create the new contact $A.enqueueAction(saveContactAction); } else { // New contact form failed validation, show a message to review errors component.set("v.hasErrors", true); } }, handleCancel: function(component, event, helper) { $A.get("e.force:closeQuickAction").fire(); } })
({ validateContactForm: function(component) { var validContact = true; // First and Last Name are required var firstNameField = component.find("contactFirstName"); if($A.util.isEmpty(firstNameField.get("v.value"))) { validContact = false; firstNameField.set("v.errors", [{message:"First name can't be blank"}]); } else { firstNameField.set("v.errors", null); } var lastNameField = component.find("contactLastName"); if($A.util.isEmpty(lastNameField.get("v.value"))) { validContact = false; lastNameField.set("v.errors", [{message:"Last name can't be blank"}]); } else { lastNameField.set("v.errors", null); } // Verify we have an account to attach it to var account = component.get("v.account"); if($A.util.isEmpty(account)) { validContact = false; console.log("Quick action context doesn't have a valid account."); } // TODO: (Maybe) Validate email and phone number return(validContact); } })
The Trail is supposed to look like this ?
This is what I am supposed to be getting ....
Thanks in Advance for taking a look !