cosmetic changes
This commit is contained in:
Родитель
f5b84a6b0a
Коммит
d64515ee16
|
@ -0,0 +1,52 @@
|
|||
<aura:component implements="flexipage:availableForAllPageTypes" controller="PropertyController" access="global">
|
||||
|
||||
<aura:attribute name="fullScreen" type="Boolean" default="false" />
|
||||
<aura:attribute name="atRiskProperties" type="Property__c[]" />
|
||||
|
||||
<aura:handler name="init" value="{! this }" action="{! c.onInit }"/>
|
||||
|
||||
<article class="slds-card">
|
||||
<div class="slds-grid slds-einstein-header slds-card__header">
|
||||
<header class="slds-media slds-media_center slds-has-flexi-truncate">
|
||||
<div class="slds-grid slds-grid_vertical-align-center slds-size_3-of-4 slds-medium-size_2-of-3">
|
||||
<div class="slds-media__body">
|
||||
<h2 class="slds-truncate" title="Einstein (10+)">
|
||||
<a href="javascript:void(0);" class="slds-card__header-link" title="Einstein (10+)">
|
||||
<span class="slds-text-heading_small">Action List</span>
|
||||
</a>
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="slds-einstein-header__figure slds-size_1-of-4 slds-medium-size_1-of-3"></div>
|
||||
</header>
|
||||
</div>
|
||||
<div class="slds-card__body slds-card__body_inner">
|
||||
Einstein predicts the following properties are at risk and will stay on the market for too long. Click Optimize to fix the issues.
|
||||
<aura:iteration items="{!v.atRiskProperties}" var="property" indexVar="i">
|
||||
<lightning:layout verticalAlign="center" class="row">
|
||||
<lightning:layoutItem flexibility="grow">
|
||||
{!property.Address__c}, {!property.City__c}
|
||||
<p><lightning:formattedNumber value="{!property.Price__c}" style="currency" currencyCode="USD" minimumFractionDigits="0" maximumFractionDigits="0"/></p>
|
||||
{!property.Predicted_Days_On_Market__c}
|
||||
</lightning:layoutItem>
|
||||
<lightning:layoutItem>
|
||||
<lightning:button label="Optimize" onclick="{!c.optimize}" name="{!property.Id}"/>
|
||||
</lightning:layoutItem>
|
||||
</lightning:layout>
|
||||
</aura:iteration>
|
||||
</div>
|
||||
</article>
|
||||
<aura:if isTrue="{!v.fullScreen==true}">
|
||||
<div role="dialog" tabindex="-1" aria-labelledby="header43" class="slds-modal slds-fade-in-open">
|
||||
<div class="slds-modal__container slds-card">
|
||||
<lightning:flow aura:id="flow" onstatuschange="{!c.flowStatusChange}"/>
|
||||
</div>
|
||||
<!-- <div class="btn slds-modal__close close x-large">
|
||||
<lightning:buttonIcon variant="bare" onclick="{!c.closeDialog}" size="large" iconName="utility:close" />
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="slds-backdrop slds-backdrop--open"></div>
|
||||
</aura:if>
|
||||
|
||||
|
||||
</aura:component>
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<AuraDefinitionBundle xmlns="urn:metadata.tooling.soap.sforce.com" fqn="ActivityList">
|
||||
<AuraDefinitionBundle xmlns="urn:metadata.tooling.soap.sforce.com" fqn="ActionList">
|
||||
<apiVersion>42.0</apiVersion>
|
||||
<description>A Lightning Component Bundle</description>
|
||||
</AuraDefinitionBundle>
|
|
@ -0,0 +1,27 @@
|
|||
.THIS {
|
||||
}
|
||||
|
||||
.THIS .slds-modal__container {
|
||||
height: 500px;
|
||||
width: 90%;
|
||||
max-width: initial;
|
||||
margin: auto;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.THIS .slds-modal {
|
||||
}
|
||||
|
||||
.THIS .slds-modal__close {
|
||||
position: absolute;
|
||||
top: 100px;
|
||||
right: 5%;
|
||||
}
|
||||
|
||||
.THIS .slds-card__body_inner .slds-grid {
|
||||
margin-top: 12px;
|
||||
}
|
До Ширина: | Высота: | Размер: 661 B После Ширина: | Высота: | Размер: 661 B |
|
@ -0,0 +1,24 @@
|
|||
({
|
||||
onInit : function(component, event, helper) {
|
||||
var property = component.get("v.property");
|
||||
var action = component.get("c.getAtRiskProperties");
|
||||
action.setCallback(this, function(response){
|
||||
component.set("v.atRiskProperties", response.getReturnValue());
|
||||
});
|
||||
$A.enqueueAction(action);
|
||||
},
|
||||
|
||||
optimize : function(component, event, helper) {
|
||||
var propertyId = event.getSource().get("v.name");
|
||||
component.set("v.fullScreen", true);
|
||||
var flow = component.find("flow");
|
||||
flow.startFlow("Optimize_Listing", [{name: 'recordId', type: 'String', value: propertyId}]);
|
||||
},
|
||||
|
||||
flowStatusChange : function(component, event, helper) {
|
||||
if (event.getParam("status") === "FINISHED") {
|
||||
component.set("v.fullScreen", false);
|
||||
}
|
||||
}
|
||||
|
||||
})
|
|
@ -0,0 +1,4 @@
|
|||
({
|
||||
helperMethod : function(component) {
|
||||
},
|
||||
})
|
|
@ -1,23 +0,0 @@
|
|||
<aura:component implements="flexipage:availableForAllPageTypes" access="global">
|
||||
|
||||
<article class="slds-card">
|
||||
<div class="slds-grid slds-einstein-header slds-card__header">
|
||||
<header class="slds-media slds-media_center slds-has-flexi-truncate">
|
||||
<div class="slds-grid slds-grid_vertical-align-center slds-size_3-of-4 slds-medium-size_2-of-3">
|
||||
<div class="slds-media__body">
|
||||
<h2 class="slds-truncate" title="Einstein (10+)">
|
||||
<a href="javascript:void(0);" class="slds-card__header-link" title="Einstein (10+)">
|
||||
<span class="slds-text-heading_small">Activity List</span>
|
||||
</a>
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="slds-einstein-header__figure slds-size_1-of-4 slds-medium-size_1-of-3"></div>
|
||||
</header>
|
||||
</div>
|
||||
<div class="slds-card__body slds-card__body_inner">
|
||||
<a href="https://connect-ruby-661-dev-ed.lightning.force.com/one/one.app#/n/Optimize_Property">Optimize Listing</a>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
</aura:component>
|
|
@ -1,2 +0,0 @@
|
|||
.THIS {
|
||||
}
|
|
@ -1,10 +1,10 @@
|
|||
<aura:component implements="lightning:availableForFlowScreens" access="global">
|
||||
<aura:component implements="lightning:availableForFlowScreens" controller="PropertyController" access="global">
|
||||
|
||||
<ltng:require scripts="{!$Resource.cache}" afterScriptsLoaded="{!c.onJSLoaded}" />
|
||||
|
||||
<aura:attribute name="recordId" type="Id" access="global" />
|
||||
<aura:attribute name="recordId" type="String" access="global" />
|
||||
<aura:attribute name="columns" type="List" />
|
||||
<aura:attribute name="properties" type="List" />
|
||||
<aura:attribute name="comparableProperties" type="List" />
|
||||
|
||||
<aura:handler name="init" value="{! this }" action="{! c.onInit }"/>
|
||||
|
||||
<div>
|
||||
|
||||
|
@ -23,9 +23,8 @@
|
|||
<c:PropertyView recordId="{!v.recordId}"/>
|
||||
</lightning:layoutItem>
|
||||
<lightning:layoutItem class="content">
|
||||
<header>This listing doesn't compare favorably with similar properties in the same neighborhood. Take a look at
|
||||
the most competitive properties below:</header>
|
||||
<lightning:datatable data="{!v.properties}" columns="{!v.columns}" keyField="Id" hideCheckboxColumn="true" />
|
||||
<header>First, examine how your listing stacks up against comprable properties nearby. Here is a list of competitive listings:</header>
|
||||
<lightning:datatable data="{!v.comparableProperties}" columns="{!v.columns}" keyField="Id" hideCheckboxColumn="true" />
|
||||
</lightning:layoutItem>
|
||||
</lightning:layout>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.THIS {
|
||||
height: 380px;
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
.THIS header {
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
<design:component >
|
||||
|
||||
<design:attribute name="recordId" label="Record Id" />
|
||||
</design:component>
|
|
@ -1,19 +1,24 @@
|
|||
({
|
||||
onJSLoaded: function(component, event, helper) {
|
||||
|
||||
component.set("v.recordId", window.recordId);
|
||||
onInit: function(component, event, helper) {
|
||||
|
||||
component.set('v.columns', [
|
||||
{label: 'Address', fieldName: 'Address__c', type: 'text', initialWidth: 150},
|
||||
{label: 'City', fieldName: 'City__c', type: 'text'},
|
||||
{label: 'Price', fieldName: 'Price__c', type: 'currency'},
|
||||
{label: 'Beds', fieldName: 'Beds__c', type: 'number'},
|
||||
{label: 'Baths', fieldName: 'Baths__c', type: 'number'},
|
||||
{label: 'SQFT', fieldName: 'Sqft__c', type: 'number'},
|
||||
{label: 'Predicted Days', fieldName: 'Days_Prediction__c', type: 'number', initialWidth: 160}
|
||||
{label: 'Price', fieldName: 'Price__c', type: 'currency'},
|
||||
{label: 'Predicted Days', fieldName: 'Predicted_Days_On_Market__c', type: 'number', initialWidth: 160}
|
||||
]);
|
||||
|
||||
helper.loadComparableRentals(component);
|
||||
var action = component.get("c.getComparableProperties");
|
||||
action.setStorable();
|
||||
action.setParams({
|
||||
propertyId: component.get("v.recordId")
|
||||
});
|
||||
action.setCallback(this, function(response){
|
||||
component.set("v.comparableProperties", response.getReturnValue());
|
||||
});
|
||||
$A.enqueueAction(action);
|
||||
|
||||
},
|
||||
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
<aura:component implements="lightning:availableForFlowScreens" access="global">
|
||||
|
||||
<ltng:require scripts="{!$Resource.cache}" afterScriptsLoaded="{!c.onJSLoaded}" />
|
||||
|
||||
<aura:attribute name="recordId" type="Id" access="global" />
|
||||
<aura:attribute name="recordId" type="String" default="" access="global" />
|
||||
<aura:attribute name="property" type="Property__c" />
|
||||
|
||||
<force:recordData aura:id="propertyService" recordId="{!v.recordId}"
|
||||
|
@ -32,9 +30,9 @@
|
|||
<div class="slds-align_absolute-center">
|
||||
<ul class="slds-list_dotted">
|
||||
<li>You compared this listing to comparable rentals in the neighborhood.</li>
|
||||
<li>You reduced the price to <lightning:formattedNumber value="{!v.property.Price__c}" style="currency" currencyCode="USD" minimumFractionDigits="0" maximumFractionDigits="0"/></li>
|
||||
<li>You set the price to <lightning:formattedNumber value="{!v.property.Price__c}" style="currency" currencyCode="USD" minimumFractionDigits="0" maximumFractionDigits="0"/></li>
|
||||
<li>Interested renters have been notified of the new price.</li>
|
||||
<li>You have added 2 pictures to the listing.</li>
|
||||
<li>You have added pictures to the listing.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer slds-align_absolute-center">This listing now compares favorably with similar properties in the neighborhood.</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.THIS {
|
||||
height: 380px;
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
.THIS header {
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
<design:component >
|
||||
|
||||
<design:attribute name="recordId" label="Property Id" />
|
||||
</design:component>
|
|
@ -1,7 +1,4 @@
|
|||
({
|
||||
onJSLoaded : function(component, event, helper) {
|
||||
component.set("v.recordId", window.recordId);
|
||||
var propertyService = component.find("propertyService");
|
||||
propertyService.reloadRecord();
|
||||
myMethod : function(component, event, helper) {
|
||||
},
|
||||
})
|
|
@ -1,10 +1,10 @@
|
|||
<aura:component implements="lightning:availableForFlowScreens" controller="PropertyController" access="global">
|
||||
|
||||
<ltng:require scripts="{!$Resource.cache}" afterScriptsLoaded="{!c.onJSLoaded}" />
|
||||
|
||||
<aura:attribute name="recordId" type="Id" access="global" />
|
||||
<aura:attribute name="recordId" type="String" default="" access="global" />
|
||||
<aura:attribute name="files" type="Object[]" />
|
||||
|
||||
<aura:handler name="init" value="{! this }" action="{! c.onInit }"/>
|
||||
|
||||
<div>
|
||||
|
||||
<div class="slds-text-heading_medium slds-align_absolute-center title">Let's get this property moving!</div>
|
||||
|
@ -22,7 +22,7 @@
|
|||
<c:PropertyView recordId="{!v.recordId}"/>
|
||||
</lightning:layoutItem>
|
||||
<lightning:layoutItem flexibility="grow" class="content">
|
||||
<header>This property has only one picture. Properties that have three pictures or more sell faster. Use this screen to add pictures.</header>
|
||||
<header>This property has {!v.files.length} pictures. Properties that have more pictures sell faster. Use this screen to add pictures.</header>
|
||||
|
||||
<aura:if isTrue="{!v.files.length > 0}">
|
||||
<lightning:carousel disableAutoRefresh="false" disableAutoScroll="true" class="slds-align_absolute-center">
|
||||
|
@ -31,10 +31,10 @@
|
|||
</aura:iteration>
|
||||
</lightning:carousel>
|
||||
<aura:set attribute="else">
|
||||
<div class="slds-align_absolute-center">
|
||||
<lightning:icon iconName="utility:photo" size="large" />
|
||||
<p>There are currently no pictures for this property.</p>
|
||||
</div>
|
||||
<div class="no-pic-msg">
|
||||
<div class="slds-align_absolute-center"><lightning:icon iconName="utility:photo" size="large" /></div>
|
||||
<div class="slds-align_absolute-center">There are currently no pictures for this property.</div>
|
||||
</div>
|
||||
</aura:set>
|
||||
</aura:if>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.THIS {
|
||||
height: 380px;
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
.THIS .slds-carousel {
|
||||
|
@ -31,4 +31,8 @@
|
|||
|
||||
.THIS .title {
|
||||
padding-top: 4px;
|
||||
}
|
||||
|
||||
.THIS .no-pic-msg {
|
||||
margin: 12px 0 24px 0;
|
||||
}
|
|
@ -1,3 +1,3 @@
|
|||
<design:component >
|
||||
|
||||
<design:attribute name="recordId" label="Property Id" />
|
||||
</design:component>
|
|
@ -1,6 +1,5 @@
|
|||
({
|
||||
onJSLoaded: function (component, event, helper) {
|
||||
component.set("v.recordId", window.recordId);
|
||||
onInit: function (component, event, helper) {
|
||||
helper.loadPictures(component);
|
||||
},
|
||||
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
<aura:component implements="lightning:availableForFlowScreens" access="global">
|
||||
|
||||
<ltng:require scripts="{!$Resource.cache}" afterScriptsLoaded="{!c.onJSLoaded}" />
|
||||
|
||||
<aura:attribute name="recordId" type="Id" access="global" />
|
||||
<aura:attribute name="recordId" type="String" access="global" />
|
||||
<aura:attribute name="property" type="Property__c" />
|
||||
|
||||
<force:recordData aura:id="propertyService" recordId="{!v.recordId}" targetFields="{!v.property}" fields="['Id','Price__c']" mode="EDIT"/>
|
||||
|
@ -24,7 +22,7 @@
|
|||
<c:PropertyView recordId="{!v.recordId}"/>
|
||||
</lightning:layoutItem>
|
||||
<lightning:layoutItem flexibility="grow" class="content">
|
||||
<header>This property doesn't compare favorably with similar properties in the neighborhood. We recommend you adjust the price to increase the appeal of the listing.</header>
|
||||
<header>Use the tool below to adjust the price of your property based on comparable listings nearby.</header>
|
||||
<div class="slds-align_absolute-center">
|
||||
<c:PriceOptimizationWidget price="{!v.property.Price__c}" />
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.THIS {
|
||||
height: 380px;
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
.THIS header {
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
<design:component >
|
||||
|
||||
<design:attribute name="recordId" label="Property Id" />
|
||||
</design:component>
|
|
@ -1,9 +1,4 @@
|
|||
({
|
||||
onJSLoaded : function(component, event, helper) {
|
||||
component.set("v.recordId", window.recordId);
|
||||
var propertyService = component.find("propertyService");
|
||||
propertyService.reloadRecord();
|
||||
},
|
||||
|
||||
onPriceChange : function(component, event, helper) {
|
||||
var property = component.get("v.property");
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
<aura:documentation>
|
||||
<aura:description>Documentation</aura:description>
|
||||
<aura:example name="ExampleName" ref="exampleComponentName" label="Label">
|
||||
Example Description
|
||||
</aura:example>
|
||||
</aura:documentation>
|
|
@ -0,0 +1,50 @@
|
|||
<aura:component implements="flexipage:availableForAllPageTypes,force:hasRecordId" access="global">
|
||||
|
||||
<aura:attribute name="recordId" type="Id" />
|
||||
<aura:attribute name="property" type="Property__c" />
|
||||
|
||||
<force:recordData recordId="{!v.recordId}" targetFields="{!v.property}" fields="['Id', 'Predicted_Days_on_Market__c']" />
|
||||
|
||||
<article class="slds-card">
|
||||
<div class="slds-grid slds-einstein-header slds-card__header">
|
||||
<header class="slds-media slds-media_center slds-has-flexi-truncate">
|
||||
<div class="slds-grid slds-grid_vertical-align-center slds-size_3-of-4 slds-medium-size_2-of-3">
|
||||
<div class="slds-media__body">
|
||||
<h2 class="slds-truncate" title="Einstein (10+)">
|
||||
<a href="javascript:void(0);" class="slds-card__header-link" title="Einstein (10+)">
|
||||
<span class="slds-text-heading_small">Predicted Days on Market</span>
|
||||
</a>
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="slds-einstein-header__figure slds-size_1-of-4 slds-medium-size_1-of-3"></div>
|
||||
</header>
|
||||
</div>
|
||||
<div class="slds-card__body slds-card__body_inner">
|
||||
<div class="prediction slds-align_absolute-center">{!v.property.Predicted_Days_on_Market__c}</div>
|
||||
<lightning:layout>
|
||||
<lightning:layoutItem size="6">
|
||||
<div class="factors">
|
||||
<h2>Top positive factors</h2>
|
||||
<ul>
|
||||
<li><span class="ring-green"></span>Location</li>
|
||||
<li><span class="ring-green"></span>Amenities</li>
|
||||
<li><span class="ring-green"></span>School district</li>
|
||||
</ul>
|
||||
</div>
|
||||
</lightning:layoutItem>
|
||||
<lightning:layoutItem size="6">
|
||||
<div class="factors">
|
||||
<h2>Top negative factors</h2>
|
||||
<ul>
|
||||
<li><span class="ring-red"></span>Number of pictures</li>
|
||||
<li><span class="ring-red"></span>Price</li>
|
||||
<li><span class="ring-red"></span>Number of open houses</li>
|
||||
</ul>
|
||||
</div>
|
||||
</lightning:layoutItem>
|
||||
</lightning:layout>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
</aura:component>
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<AuraDefinitionBundle xmlns="urn:metadata.tooling.soap.sforce.com" fqn="PredictedDaysOnMarket">
|
||||
<apiVersion>42.0</apiVersion>
|
||||
<description>A Lightning Component Bundle</description>
|
||||
</AuraDefinitionBundle>
|
|
@ -0,0 +1,48 @@
|
|||
.THIS {
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
.THIS .prediction {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
text-align: center;
|
||||
/* padding: 12px; */
|
||||
border: solid 3px #c23934;
|
||||
border-radius: 50%;
|
||||
color: #c23934;
|
||||
margin-bottom: 8px;
|
||||
/* margin: 8px auto; */
|
||||
font-size: 24px;
|
||||
/* font-weight: 300; */
|
||||
}
|
||||
|
||||
.THIS .factors {
|
||||
border: solid 1px #EEE;
|
||||
border-radius: 4px;
|
||||
text-align: left;
|
||||
margin: 0 4px;
|
||||
padding: 8px;
|
||||
height: 96px;
|
||||
}
|
||||
|
||||
.THIS .ring-red {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border: solid 2px #c23934;
|
||||
border-radius: 50%;
|
||||
display: inline-block;
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
.THIS .ring-green {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border: solid 2px #04844b;
|
||||
border-radius: 50%;
|
||||
display: inline-block;
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
.THIS .slds-card__body_inner {
|
||||
padding: 0 0.2rem;
|
||||
margin-bottom: .3rem;
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
<design:component label="Predicted Days On Market">
|
||||
|
||||
</design:component>
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="120px" height="120px" viewBox="0 0 120 120" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M120,108 C120,114.6 114.6,120 108,120 L12,120 C5.4,120 0,114.6 0,108 L0,12 C0,5.4 5.4,0 12,0 L108,0 C114.6,0 120,5.4 120,12 L120,108 L120,108 Z" id="Shape" fill="#2A739E"/>
|
||||
<path d="M77.7383308,20 L61.1640113,20 L44.7300055,63.2000173 L56.0543288,63.2000173 L40,99.623291 L72.7458388,54.5871812 L60.907727,54.5871812 L77.7383308,20 Z" id="Path-1" fill="#FFFFFF"/>
|
||||
</g>
|
||||
</svg>
|
После Ширина: | Высота: | Размер: 661 B |
|
@ -0,0 +1,5 @@
|
|||
({
|
||||
|
||||
// Your renderer method overrides go here
|
||||
|
||||
})
|
|
@ -1,3 +1,3 @@
|
|||
<design:component >
|
||||
<design:component label="Property Carousel">
|
||||
|
||||
</design:component>
|
|
@ -7,10 +7,6 @@
|
|||
helper.loadPictures(component);
|
||||
},
|
||||
|
||||
/*
|
||||
When a new Property is selected (in another component), load the corresponding
|
||||
property record.
|
||||
*/
|
||||
recordChangeHandler: function (component, event, helper) {
|
||||
component.set("v.recordId", event.getParam("recordId"));
|
||||
helper.loadPictures(component);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<design:component >
|
||||
<design:component label="Property Filters">
|
||||
<design:attribute name="einsteinVisionModelId"
|
||||
label="Einstein Vision Model Id"
|
||||
description="Einstein Vision Model Id" />
|
||||
|
|
|
@ -29,4 +29,4 @@
|
|||
helper.fireFilterChangeEvent(component);
|
||||
},
|
||||
|
||||
})
|
||||
})
|
|
@ -1,3 +1,3 @@
|
|||
<design:component >
|
||||
<design:component label="Property List Map">
|
||||
|
||||
</design:component>
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
<div>
|
||||
<!-- <img src="{!v.property.Picture__c}" class="pic" /> -->
|
||||
<img src="https://s3-us-west-1.amazonaws.com/sfdc-demo/apt/121chestnut.jpg" class="pic" />
|
||||
<img src="{!v.property.Picture__c}" class="pic" />
|
||||
<lightning:formattedAddress street="{!v.property.Address__c}" city="{!v.property.City__c}" province="{!v.property.State__c}"
|
||||
postalCode="{!v.property.Zip__c}" />
|
||||
<p>Bedrooms: {!v.property.Beds__c} Bathrooms: {!v.property.Baths__c}</p>
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
.THIS img {
|
||||
.THIS {
|
||||
width: 210px;
|
||||
}
|
||||
|
||||
.THIS .pic {
|
||||
width: 210px;
|
||||
max-width: inherit;
|
||||
margin-bottom: 8px;
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
<design:component >
|
||||
<design:component label="360 Viewer">
|
||||
|
||||
</design:component>
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<aura:attribute name="modelId" type="String" />
|
||||
<aura:attribute name="files" type="Object[]" />
|
||||
<aura:attribute name="predictions" type="Object[]" />
|
||||
<aura:attribute name="predictions" type="List" />
|
||||
<aura:attribute name="waiting" type="Boolean" default="false" />
|
||||
<aura:attribute name="pictureSrc" type="String" />
|
||||
|
||||
|
|
|
@ -1,30 +1,29 @@
|
|||
({
|
||||
readFile: function(component, helper, file) {
|
||||
console.log('readfile: ' + new Date());
|
||||
|
||||
if (!file.type.match(/(image.*)/)) {
|
||||
return alert('Image file not supported');
|
||||
}
|
||||
var reader = new FileReader();
|
||||
reader.onloadend = function() {
|
||||
console.log('readfile onloadend: ' + new Date());
|
||||
var dataURL = reader.result;
|
||||
component.set("v.pictureSrc", dataURL);
|
||||
helper.upload(component, file, dataURL.match(/,(.*)$/)[1]);
|
||||
};
|
||||
reader.readAsDataURL(file);
|
||||
},
|
||||
readFile: function (component, helper, file) {
|
||||
if (!file.type.match(/(image.*)/)) {
|
||||
return alert('Image file not supported');
|
||||
}
|
||||
var reader = new FileReader();
|
||||
reader.onloadend = function () {
|
||||
console.log('readfile onloadend: ' + new Date());
|
||||
var dataURL = reader.result;
|
||||
component.set("v.pictureSrc", dataURL);
|
||||
//helper.upload(component, file, dataURL.match(/,(.*)$/)[1]);
|
||||
helper.simulateUpload(component, file, dataURL.match(/,(.*)$/)[1]);
|
||||
};
|
||||
reader.readAsDataURL(file);
|
||||
},
|
||||
|
||||
upload: function(component, file, base64Data) {
|
||||
upload: function (component, file, base64Data) {
|
||||
console.log('upload: ' + new Date());
|
||||
var action = component.get("c.predict");
|
||||
var modelId = component.get("v.modelId");
|
||||
var action = component.get("c.predict");
|
||||
var modelId = component.get("v.modelId");
|
||||
action.setParams({
|
||||
fileName: file.name,
|
||||
content: base64Data,
|
||||
content: base64Data,
|
||||
modelId: modelId
|
||||
});
|
||||
action.setCallback(this, function(a) {
|
||||
action.setCallback(this, function (a) {
|
||||
console.log('upload callback: ' + new Date());
|
||||
component.set("v.waiting", false);
|
||||
var state = a.getState();
|
||||
|
@ -35,7 +34,7 @@
|
|||
var result = a.getReturnValue();
|
||||
var predictions = [];
|
||||
if (result && result.length) {
|
||||
for (var i=0; i<result.length; i++) {
|
||||
for (var i = 0; i < result.length; i++) {
|
||||
predictions.push({
|
||||
label: result[i].label,
|
||||
formattedProbability: '' + Math.round(result[i].probability * 100) + '%'
|
||||
|
@ -51,7 +50,48 @@
|
|||
});
|
||||
component.set("v.predictions", null);
|
||||
component.set("v.waiting", true);
|
||||
$A.enqueueAction(action);
|
||||
//$A.enqueueAction(action);
|
||||
},
|
||||
|
||||
simulateUpload: function (component, file, base64Data) {
|
||||
component.set("v.waiting", true);
|
||||
window.setTimeout(
|
||||
$A.getCallback(function () {
|
||||
component.set("v.waiting", false);
|
||||
var predictions;
|
||||
if (file.name == 'house1.jpg') {
|
||||
predictions = [
|
||||
{ label: "victorian", formattedProbability: "88.3%" },
|
||||
{ label: "colonial", formattedProbability: "11.7%" },
|
||||
{ label: "contemporary", formattedProbability: "0%" },
|
||||
];
|
||||
} else if (file.name == 'house2.jpg') {
|
||||
predictions = [
|
||||
{ label: "contemporary", formattedProbability: "96.7%" },
|
||||
{ label: "colonial", formattedProbability: "3.1%" },
|
||||
{ label: "victorian", formattedProbability: "0.2%" },
|
||||
];
|
||||
} else {
|
||||
predictions = [
|
||||
{ label: "colonial", formattedProbability: "66.2%" },
|
||||
{ label: "victorian", formattedProbability: "31.7%" },
|
||||
{ label: "victorian", formattedProbability: "2.1%" },
|
||||
];
|
||||
}
|
||||
console.log(predictions);
|
||||
component.set("v.predictions", predictions);
|
||||
var predictionEvent = component.getEvent("onPrediction");
|
||||
predictionEvent.setParams({
|
||||
"predictions": predictions
|
||||
});
|
||||
predictionEvent.fire();
|
||||
}), 1500
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
})
|
|
@ -1,3 +1,3 @@
|
|||
<design:component >
|
||||
<design:component label="Voice Search">
|
||||
|
||||
</design:component>
|
|
@ -0,0 +1,30 @@
|
|||
public with sharing class HandlerDashboard implements BotHandler {
|
||||
|
||||
public BotResponse handle(String utterance, String[] params, Map<String, String> session, String fileName, String fileContent) {
|
||||
|
||||
System.debug('**** HandlerDashboard');
|
||||
|
||||
String key = '%' + params[0] + '%';
|
||||
List<Dashboard> dashboards =
|
||||
[SELECT Id, Title, FolderName FROM Dashboard
|
||||
WHERE Title LIKE :key
|
||||
ORDER BY Title
|
||||
LIMIT 5];
|
||||
|
||||
System.debug(dashboards);
|
||||
|
||||
List<BotRecord> records = new List<BotRecord>();
|
||||
|
||||
for (Dashboard d : dashboards) {
|
||||
List<BotField> fields = new List<BotField>();
|
||||
fields.add(new BotField('Title', d.Title, '#/sObject/' + d.Id + '/view' ));
|
||||
fields.add(new BotField('Folder', d.FolderName));
|
||||
records.add(new BotRecord(fields));
|
||||
}
|
||||
|
||||
System.debug(records);
|
||||
|
||||
return new BotResponse(new BotMessage('Astro', 'Here is a list of dashboards matching "' + params[0] + '":', records));
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ApexClass xmlns="urn:metadata.tooling.soap.sforce.com" fqn="HandlerDashboard">
|
||||
<apiVersion>42.0</apiVersion>
|
||||
<status>Active</status>
|
||||
</ApexClass>
|
|
@ -8,6 +8,12 @@ public with sharing class HandlerFindPropertiesByBedrooms implements BotHandler
|
|||
}
|
||||
|
||||
public BotResponse handle(String utterance, String[] params, Map<String, String> session, String fileName, String fileContent) {
|
||||
if (params[0] == 'one') params[0] = '1';
|
||||
if (params[0] == 'two') params[0] = '2';
|
||||
if (params[0] == 'three') params[0] = '3';
|
||||
if (params[0] == 'four') params[0] = '4';
|
||||
if (params[0] == 'five') params[0] = '5';
|
||||
if (params[0] == 'six') params[0] = '6';
|
||||
List<Property__c> properties =
|
||||
[SELECT Id, Name, Beds__c, Baths__c, Price__c FROM Property__c
|
||||
WHERE City__c = :params[1] AND
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
public with sharing class HandlerReport implements BotHandler {
|
||||
|
||||
public BotResponse handle(String utterance, String[] params, Map<String, String> session, String fileName, String fileContent) {
|
||||
|
||||
String key = '%' + params[0] + '%';
|
||||
List<Report> reports =
|
||||
[SELECT Id, Name, FolderName FROM Report
|
||||
WHERE Name LIKE :key
|
||||
ORDER BY Name
|
||||
LIMIT 5];
|
||||
|
||||
List<BotRecord> records = new List<BotRecord>();
|
||||
|
||||
for (Report r : reports) {
|
||||
List<BotField> fields = new List<BotField>();
|
||||
fields.add(new BotField('Name', r.Name, '#/sObject/' + r.Id + '/view' ));
|
||||
fields.add(new BotField('Folder', r.FolderName));
|
||||
records.add(new BotRecord(fields));
|
||||
}
|
||||
|
||||
return new BotResponse(new BotMessage('Astro', 'Here is a list of reports matching "' + params[0] + '":', records));
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ApexClass xmlns="urn:metadata.tooling.soap.sforce.com" fqn="HandlerReport">
|
||||
<apiVersion>42.0</apiVersion>
|
||||
<status>Active</status>
|
||||
</ApexClass>
|
|
@ -55,6 +55,22 @@ global with sharing class PropertyController {
|
|||
WHERE Date_Listed__c != NULL AND (Date_Agreement__c = NULL OR Date_Agreement__c = LAST_N_DAYS:90)];
|
||||
}
|
||||
|
||||
@AuraEnabled
|
||||
public static Property__c[] getAtRiskProperties() {
|
||||
return [SELECT id, name, address__c, city__c, price__c, Predicted_Days_On_Market__c
|
||||
FROM Property__c
|
||||
WHERE Predicted_Days_On_Market__c > 30];
|
||||
}
|
||||
|
||||
@AuraEnabled
|
||||
public static List<Property__c> getComparableProperties(Id propertyId) {
|
||||
Property__c property = [SELECT Id, Price__c FROM Property__c WHERE Id = :propertyId];
|
||||
return [
|
||||
SELECT Id, Name, Address__c, City__c, State__c, Zip__c, Beds__c, Baths__c, Price__c, Predicted_Days_On_Market__c
|
||||
FROM Property__c WHERE Id != :propertyId AND Price__c > :property.Price__c - 100000 AND Price__c < :property.Price__c + 100000 LIMIT 8
|
||||
];
|
||||
}
|
||||
|
||||
@AuraEnabled
|
||||
public static List<Property__c> getSimilarProperties (Id propertyId, Decimal bedrooms, Decimal price, String searchCriteria) {
|
||||
if (searchCriteria == 'Bedrooms') {
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DashboardFolder xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<name>DreamHouse Dashboards</name>
|
||||
</DashboardFolder>
|
|
@ -0,0 +1,123 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Dashboard xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<backgroundEndColor>#FFFFFF</backgroundEndColor>
|
||||
<backgroundFadeDirection>Diagonal</backgroundFadeDirection>
|
||||
<backgroundStartColor>#FFFFFF</backgroundStartColor>
|
||||
<dashboardGridLayout>
|
||||
<dashboardGridComponents>
|
||||
<colSpan>2</colSpan>
|
||||
<columnIndex>0</columnIndex>
|
||||
<dashboardComponent>
|
||||
<autoselectColumnsFromReport>false</autoselectColumnsFromReport>
|
||||
<chartSummary>
|
||||
<aggregate>Sum</aggregate>
|
||||
<column>Property__c.Price__c</column>
|
||||
</chartSummary>
|
||||
<componentType>Metric</componentType>
|
||||
<header>Total Portfolio</header>
|
||||
<indicatorBreakpoint1>5000000.0</indicatorBreakpoint1>
|
||||
<indicatorBreakpoint2>1.0E7</indicatorBreakpoint2>
|
||||
<indicatorHighColor>#00716B</indicatorHighColor>
|
||||
<indicatorLowColor>#C23934</indicatorLowColor>
|
||||
<indicatorMiddleColor>#FFB75D</indicatorMiddleColor>
|
||||
<report>DreamHouse_Reports/Properties_by_Broker</report>
|
||||
</dashboardComponent>
|
||||
<rowIndex>0</rowIndex>
|
||||
<rowSpan>3</rowSpan>
|
||||
</dashboardGridComponents>
|
||||
<dashboardGridComponents>
|
||||
<colSpan>2</colSpan>
|
||||
<columnIndex>2</columnIndex>
|
||||
<dashboardComponent>
|
||||
<autoselectColumnsFromReport>false</autoselectColumnsFromReport>
|
||||
<chartAxisRange>Auto</chartAxisRange>
|
||||
<chartSummary>
|
||||
<axisBinding>y</axisBinding>
|
||||
<column>RowCount</column>
|
||||
</chartSummary>
|
||||
<componentType>Donut</componentType>
|
||||
<drillEnabled>false</drillEnabled>
|
||||
<drillToDetailEnabled>false</drillToDetailEnabled>
|
||||
<enableHover>false</enableHover>
|
||||
<expandOthers>true</expandOthers>
|
||||
<groupingColumn>BucketField_33803839</groupingColumn>
|
||||
<header>Portfolio Health</header>
|
||||
<legendPosition>Right</legendPosition>
|
||||
<report>DreamHouse_Reports/Portfolio_Health</report>
|
||||
<showPercentage>false</showPercentage>
|
||||
<showTotal>false</showTotal>
|
||||
<showValues>false</showValues>
|
||||
<sortBy>RowValueDescending</sortBy>
|
||||
<useReportChart>false</useReportChart>
|
||||
</dashboardComponent>
|
||||
<rowIndex>0</rowIndex>
|
||||
<rowSpan>3</rowSpan>
|
||||
</dashboardGridComponents>
|
||||
<dashboardGridComponents>
|
||||
<colSpan>5</colSpan>
|
||||
<columnIndex>4</columnIndex>
|
||||
<dashboardComponent>
|
||||
<autoselectColumnsFromReport>false</autoselectColumnsFromReport>
|
||||
<chartAxisRange>Auto</chartAxisRange>
|
||||
<chartSummary>
|
||||
<aggregate>Sum</aggregate>
|
||||
<axisBinding>y</axisBinding>
|
||||
<column>Property__c.Days_On_Market__c</column>
|
||||
</chartSummary>
|
||||
<componentType>Bar</componentType>
|
||||
<drillEnabled>false</drillEnabled>
|
||||
<drillToDetailEnabled>false</drillToDetailEnabled>
|
||||
<enableHover>false</enableHover>
|
||||
<expandOthers>false</expandOthers>
|
||||
<groupingColumn>CUST_NAME</groupingColumn>
|
||||
<header>Days on Market</header>
|
||||
<legendPosition>Bottom</legendPosition>
|
||||
<report>DreamHouse_Reports/Days_on_Market</report>
|
||||
<showPercentage>false</showPercentage>
|
||||
<showPicturesOnCharts>false</showPicturesOnCharts>
|
||||
<showValues>true</showValues>
|
||||
<sortBy>RowValueDescending</sortBy>
|
||||
<useReportChart>false</useReportChart>
|
||||
</dashboardComponent>
|
||||
<rowIndex>0</rowIndex>
|
||||
<rowSpan>7</rowSpan>
|
||||
</dashboardGridComponents>
|
||||
<dashboardGridComponents>
|
||||
<colSpan>4</colSpan>
|
||||
<columnIndex>0</columnIndex>
|
||||
<dashboardComponent>
|
||||
<autoselectColumnsFromReport>false</autoselectColumnsFromReport>
|
||||
<chartAxisRange>Auto</chartAxisRange>
|
||||
<chartSummary>
|
||||
<aggregate>Sum</aggregate>
|
||||
<axisBinding>y</axisBinding>
|
||||
<column>Property__c.Price__c</column>
|
||||
</chartSummary>
|
||||
<componentType>Column</componentType>
|
||||
<drillEnabled>false</drillEnabled>
|
||||
<drillToDetailEnabled>false</drillToDetailEnabled>
|
||||
<enableHover>false</enableHover>
|
||||
<expandOthers>false</expandOthers>
|
||||
<groupingColumn>FK_NAME</groupingColumn>
|
||||
<header>Properties by Broker</header>
|
||||
<legendPosition>Bottom</legendPosition>
|
||||
<report>DreamHouse_Reports/Properties_by_Broker</report>
|
||||
<showPercentage>false</showPercentage>
|
||||
<showValues>true</showValues>
|
||||
<sortBy>RowValueDescending</sortBy>
|
||||
<useReportChart>false</useReportChart>
|
||||
</dashboardComponent>
|
||||
<rowIndex>3</rowIndex>
|
||||
<rowSpan>4</rowSpan>
|
||||
</dashboardGridComponents>
|
||||
<numberOfColumns>9</numberOfColumns>
|
||||
<rowHeight>80</rowHeight>
|
||||
</dashboardGridLayout>
|
||||
<dashboardType>SpecifiedUser</dashboardType>
|
||||
<isGridLayout>true</isGridLayout>
|
||||
<runningUser>cc@spring18.org</runningUser>
|
||||
<textColor>#000000</textColor>
|
||||
<title>My Dashboard</title>
|
||||
<titleColor>#000000</titleColor>
|
||||
<titleSize>12</titleSize>
|
||||
</Dashboard>
|
|
@ -0,0 +1,101 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<FlexiPage xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<flexiPageRegions>
|
||||
<componentInstances>
|
||||
<componentInstanceProperties>
|
||||
<name>collapsed</name>
|
||||
<value>false</value>
|
||||
</componentInstanceProperties>
|
||||
<componentName>force:highlightsPanel</componentName>
|
||||
</componentInstances>
|
||||
<mode>Replace</mode>
|
||||
<name>header</name>
|
||||
<type>Region</type>
|
||||
</flexiPageRegions>
|
||||
<flexiPageRegions>
|
||||
<componentInstances>
|
||||
<componentName>force:relatedListContainer</componentName>
|
||||
</componentInstances>
|
||||
<mode>Replace</mode>
|
||||
<name>relatedTabContent</name>
|
||||
<type>Facet</type>
|
||||
</flexiPageRegions>
|
||||
<flexiPageRegions>
|
||||
<componentInstances>
|
||||
<componentName>force:detailPanel</componentName>
|
||||
</componentInstances>
|
||||
<mode>Replace</mode>
|
||||
<name>detailTabContent</name>
|
||||
<type>Facet</type>
|
||||
</flexiPageRegions>
|
||||
<flexiPageRegions>
|
||||
<componentInstances>
|
||||
<componentInstanceProperties>
|
||||
<name>body</name>
|
||||
<value>relatedTabContent</value>
|
||||
</componentInstanceProperties>
|
||||
<componentInstanceProperties>
|
||||
<name>title</name>
|
||||
<value>Standard.Tab.relatedLists</value>
|
||||
</componentInstanceProperties>
|
||||
<componentName>flexipage:tab</componentName>
|
||||
</componentInstances>
|
||||
<componentInstances>
|
||||
<componentInstanceProperties>
|
||||
<name>active</name>
|
||||
<value>true</value>
|
||||
</componentInstanceProperties>
|
||||
<componentInstanceProperties>
|
||||
<name>body</name>
|
||||
<value>detailTabContent</value>
|
||||
</componentInstanceProperties>
|
||||
<componentInstanceProperties>
|
||||
<name>title</name>
|
||||
<value>Standard.Tab.detail</value>
|
||||
</componentInstanceProperties>
|
||||
<componentName>flexipage:tab</componentName>
|
||||
</componentInstances>
|
||||
<mode>Replace</mode>
|
||||
<name>maintabs</name>
|
||||
<type>Facet</type>
|
||||
</flexiPageRegions>
|
||||
<flexiPageRegions>
|
||||
<componentInstances>
|
||||
<componentInstanceProperties>
|
||||
<name>tabs</name>
|
||||
<value>maintabs</value>
|
||||
</componentInstanceProperties>
|
||||
<componentName>flexipage:tabset</componentName>
|
||||
</componentInstances>
|
||||
<mode>Replace</mode>
|
||||
<name>main</name>
|
||||
<type>Region</type>
|
||||
</flexiPageRegions>
|
||||
<flexiPageRegions>
|
||||
<componentInstances>
|
||||
<componentInstanceProperties>
|
||||
<name>parentFieldApiName</name>
|
||||
<value>Broker__c.Id</value>
|
||||
</componentInstanceProperties>
|
||||
<componentInstanceProperties>
|
||||
<name>relatedListApiName</name>
|
||||
<value>Properties__r</value>
|
||||
</componentInstanceProperties>
|
||||
<componentInstanceProperties>
|
||||
<name>relatedListComponentOverride</name>
|
||||
<value>NONE</value>
|
||||
</componentInstanceProperties>
|
||||
<componentName>force:relatedListSingleContainer</componentName>
|
||||
</componentInstances>
|
||||
<mode>Replace</mode>
|
||||
<name>sidebar</name>
|
||||
<type>Region</type>
|
||||
</flexiPageRegions>
|
||||
<masterLabel>Broker Record Page</masterLabel>
|
||||
<parentFlexiPage>flexipage__default_rec_L</parentFlexiPage>
|
||||
<sobjectType>Broker__c</sobjectType>
|
||||
<template>
|
||||
<name>flexipage:recordHomeTemplateDesktop</name>
|
||||
</template>
|
||||
<type>RecordPage</type>
|
||||
</FlexiPage>
|
|
@ -29,7 +29,7 @@
|
|||
</flexiPageRegions>
|
||||
<flexiPageRegions>
|
||||
<componentInstances>
|
||||
<componentName>ActivityList</componentName>
|
||||
<componentName>ActionList</componentName>
|
||||
</componentInstances>
|
||||
<componentInstances>
|
||||
<componentName>home:recentRecordContainer</componentName>
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<FlexiPage xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<flexiPageRegions>
|
||||
<componentInstances>
|
||||
<componentName>home:heroChart</componentName>
|
||||
</componentInstances>
|
||||
<mode>Replace</mode>
|
||||
<name>top</name>
|
||||
<type>Region</type>
|
||||
</flexiPageRegions>
|
||||
<flexiPageRegions>
|
||||
<componentInstances>
|
||||
<componentName>home:eventContainer</componentName>
|
||||
</componentInstances>
|
||||
<componentInstances>
|
||||
<componentName>home:recentRecordContainer</componentName>
|
||||
</componentInstances>
|
||||
<mode>Replace</mode>
|
||||
<name>bottomLeft</name>
|
||||
<type>Region</type>
|
||||
</flexiPageRegions>
|
||||
<flexiPageRegions>
|
||||
<componentInstances>
|
||||
<componentName>runtime_sales_activities:todayTaskContainer</componentName>
|
||||
</componentInstances>
|
||||
<componentInstances>
|
||||
<componentName>home:topDealsContainer</componentName>
|
||||
</componentInstances>
|
||||
<mode>Replace</mode>
|
||||
<name>bottomRight</name>
|
||||
<type>Region</type>
|
||||
</flexiPageRegions>
|
||||
<flexiPageRegions>
|
||||
<componentInstances>
|
||||
<componentName>ActionList</componentName>
|
||||
</componentInstances>
|
||||
<componentInstances>
|
||||
<componentName>home:assistant</componentName>
|
||||
</componentInstances>
|
||||
<mode>Replace</mode>
|
||||
<name>sidebar</name>
|
||||
<type>Region</type>
|
||||
</flexiPageRegions>
|
||||
<masterLabel>Home Page Default</masterLabel>
|
||||
<parentFlexiPage>home__desktopDefault</parentFlexiPage>
|
||||
<template>
|
||||
<name>home:desktopTemplate</name>
|
||||
</template>
|
||||
<type>HomePage</type>
|
||||
</FlexiPage>
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<FlexiPage xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<flexiPageRegions>
|
||||
<componentInstances>
|
||||
<componentInstanceProperties>
|
||||
<name>flowArguments</name>
|
||||
<value>[{"label":"recordId","dataType":"String","supportsRecordId":true,"value":"{!Record.Id}"}]</value>
|
||||
</componentInstanceProperties>
|
||||
<componentInstanceProperties>
|
||||
<name>flowLayout</name>
|
||||
<value>oneColumn</value>
|
||||
</componentInstanceProperties>
|
||||
<componentInstanceProperties>
|
||||
<name>flowName</name>
|
||||
<value>Optimize_Listing</value>
|
||||
</componentInstanceProperties>
|
||||
<componentName>flowruntime:interview</componentName>
|
||||
</componentInstances>
|
||||
<name>main</name>
|
||||
<type>Region</type>
|
||||
</flexiPageRegions>
|
||||
<masterLabel>Optimize Listing</masterLabel>
|
||||
<sobjectType>Property__c</sobjectType>
|
||||
<template>
|
||||
<name>flexipage:recordHomeSingleColNoHeaderTemplateDesktop</name>
|
||||
</template>
|
||||
<type>RecordPage</type>
|
||||
</FlexiPage>
|
|
@ -2,13 +2,17 @@
|
|||
<FlexiPage xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<flexiPageRegions>
|
||||
<componentInstances>
|
||||
<componentInstanceProperties>
|
||||
<name>flowArguments</name>
|
||||
<value>[{"label":"recordId","dataType":"String","supportsRecordId":false,"value":"{!recordId}"}]</value>
|
||||
</componentInstanceProperties>
|
||||
<componentInstanceProperties>
|
||||
<name>flowLayout</name>
|
||||
<value>oneColumn</value>
|
||||
</componentInstanceProperties>
|
||||
<componentInstanceProperties>
|
||||
<name>flowName</name>
|
||||
<value>Optimize_Property</value>
|
||||
<value>Optimize_Listing</value>
|
||||
</componentInstanceProperties>
|
||||
<componentName>flowruntime:interview</componentName>
|
||||
</componentInstances>
|
||||
|
|
|
@ -13,33 +13,20 @@
|
|||
</flexiPageRegions>
|
||||
<flexiPageRegions>
|
||||
<componentInstances>
|
||||
<componentInstanceProperties>
|
||||
<name>pageSize</name>
|
||||
<value>8</value>
|
||||
</componentInstanceProperties>
|
||||
<componentName>PropertyTileList</componentName>
|
||||
<componentName>VoiceInputCard</componentName>
|
||||
</componentInstances>
|
||||
<componentInstances>
|
||||
<componentName>PropertyListMap</componentName>
|
||||
</componentInstances>
|
||||
<name>center</name>
|
||||
<type>Region</type>
|
||||
</flexiPageRegions>
|
||||
<flexiPageRegions>
|
||||
<componentInstances>
|
||||
<componentName>PropertyDaysOnMarketChart</componentName>
|
||||
<componentName>PropertySummary</componentName>
|
||||
</componentInstances>
|
||||
<componentInstances>
|
||||
<componentInstanceProperties>
|
||||
<name>latField</name>
|
||||
<value>Location__Latitude__s</value>
|
||||
</componentInstanceProperties>
|
||||
<componentInstanceProperties>
|
||||
<name>longField</name>
|
||||
<value>Location__Longitude__s</value>
|
||||
</componentInstanceProperties>
|
||||
<componentInstanceProperties>
|
||||
<name>titleField</name>
|
||||
<value>Name</value>
|
||||
</componentInstanceProperties>
|
||||
<componentName>MapCard</componentName>
|
||||
<componentName>PropertyDaysOnMarketChart</componentName>
|
||||
</componentInstances>
|
||||
<componentInstances>
|
||||
<componentInstanceProperties>
|
||||
|
|
|
@ -13,10 +13,11 @@
|
|||
</flexiPageRegions>
|
||||
<flexiPageRegions>
|
||||
<componentInstances>
|
||||
<componentName>VoiceInputCard</componentName>
|
||||
</componentInstances>
|
||||
<componentInstances>
|
||||
<componentName>PropertyListMap</componentName>
|
||||
<componentInstanceProperties>
|
||||
<name>pageSize</name>
|
||||
<value>8</value>
|
||||
</componentInstanceProperties>
|
||||
<componentName>PropertyTileList</componentName>
|
||||
</componentInstances>
|
||||
<name>center</name>
|
||||
<type>Region</type>
|
||||
|
|
|
@ -126,6 +126,9 @@
|
|||
<type>Region</type>
|
||||
</flexiPageRegions>
|
||||
<flexiPageRegions>
|
||||
<componentInstances>
|
||||
<componentName>PredictedDaysOnMarket</componentName>
|
||||
</componentInstances>
|
||||
<componentInstances>
|
||||
<componentInstanceProperties>
|
||||
<name>latField</name>
|
||||
|
@ -147,9 +150,6 @@
|
|||
<componentInstances>
|
||||
<componentName>PropertyCarousel</componentName>
|
||||
</componentInstances>
|
||||
<componentInstances>
|
||||
<componentName>PropertyDaysOnMarketChart</componentName>
|
||||
</componentInstances>
|
||||
<componentInstances>
|
||||
<componentInstanceProperties>
|
||||
<name>searchCriteria</name>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<FlowDefinition xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<activeVersionNumber>2</activeVersionNumber>
|
||||
<activeVersionNumber>3</activeVersionNumber>
|
||||
</FlowDefinition>
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<FlowDefinition xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<activeVersionNumber>1</activeVersionNumber>
|
||||
</FlowDefinition>
|
|
@ -1,13 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<interviewLabel>Optimize Property {!$Flow.CurrentDateTime}</interviewLabel>
|
||||
<label>Optimize Property</label>
|
||||
<interviewLabel>Optimize Listing {!$Flow.CurrentDateTime}</interviewLabel>
|
||||
<label>Optimize Listing</label>
|
||||
<processType>Flow</processType>
|
||||
<screens>
|
||||
<name>Comp_List</name>
|
||||
<label>Comp List</label>
|
||||
<locationX>329</locationX>
|
||||
<locationY>83</locationY>
|
||||
<locationX>378</locationX>
|
||||
<locationY>98</locationY>
|
||||
<allowBack>true</allowBack>
|
||||
<allowFinish>true</allowFinish>
|
||||
<allowPause>true</allowPause>
|
||||
|
@ -26,13 +26,13 @@
|
|||
<screens>
|
||||
<name>Complete</name>
|
||||
<label>Complete</label>
|
||||
<locationX>323</locationX>
|
||||
<locationY>449</locationY>
|
||||
<locationX>363</locationX>
|
||||
<locationY>602</locationY>
|
||||
<allowBack>true</allowBack>
|
||||
<allowFinish>true</allowFinish>
|
||||
<allowPause>true</allowPause>
|
||||
<fields>
|
||||
<name>processComplete</name>
|
||||
<name>compl</name>
|
||||
<extensionName>c:FlowScreenComplete</extensionName>
|
||||
<fieldType>ComponentInstance</fieldType>
|
||||
<isRequired>true</isRequired>
|
||||
|
@ -43,13 +43,13 @@
|
|||
<screens>
|
||||
<name>Price_Change</name>
|
||||
<label>Price Change</label>
|
||||
<locationX>353</locationX>
|
||||
<locationY>197</locationY>
|
||||
<locationX>376</locationX>
|
||||
<locationY>236</locationY>
|
||||
<allowBack>true</allowBack>
|
||||
<allowFinish>true</allowFinish>
|
||||
<allowPause>true</allowPause>
|
||||
<connector>
|
||||
<targetReference>Upload_Pictures</targetReference>
|
||||
<targetReference>Upload_Pics</targetReference>
|
||||
</connector>
|
||||
<fields>
|
||||
<name>priceChange</name>
|
||||
|
@ -61,10 +61,10 @@
|
|||
<showHeader>false</showHeader>
|
||||
</screens>
|
||||
<screens>
|
||||
<name>Upload_Pictures</name>
|
||||
<label>Upload Pictures</label>
|
||||
<locationX>380</locationX>
|
||||
<locationY>351</locationY>
|
||||
<name>Upload_Pics</name>
|
||||
<label>Upload Pics</label>
|
||||
<locationX>377</locationX>
|
||||
<locationY>430</locationY>
|
||||
<allowBack>true</allowBack>
|
||||
<allowFinish>true</allowFinish>
|
||||
<allowPause>true</allowPause>
|
|
@ -1,13 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<interviewLabel>Optimize Property {!$Flow.CurrentDateTime}</interviewLabel>
|
||||
<label>Optimize Property</label>
|
||||
<interviewLabel>Optimize Listing {!$Flow.CurrentDateTime}</interviewLabel>
|
||||
<label>Optimize Listing</label>
|
||||
<processType>Flow</processType>
|
||||
<screens>
|
||||
<name>Comp_List</name>
|
||||
<label>Comp List</label>
|
||||
<locationX>329</locationX>
|
||||
<locationY>83</locationY>
|
||||
<locationX>378</locationX>
|
||||
<locationY>98</locationY>
|
||||
<allowBack>true</allowBack>
|
||||
<allowFinish>true</allowFinish>
|
||||
<allowPause>true</allowPause>
|
||||
|
@ -18,6 +18,12 @@
|
|||
<name>compList</name>
|
||||
<extensionName>c:FlowScreenCompList</extensionName>
|
||||
<fieldType>ComponentInstance</fieldType>
|
||||
<inputParameters>
|
||||
<name>recordId</name>
|
||||
<value>
|
||||
<elementReference>recordId</elementReference>
|
||||
</value>
|
||||
</inputParameters>
|
||||
<isRequired>true</isRequired>
|
||||
</fields>
|
||||
<showFooter>true</showFooter>
|
||||
|
@ -26,13 +32,13 @@
|
|||
<screens>
|
||||
<name>Complete</name>
|
||||
<label>Complete</label>
|
||||
<locationX>323</locationX>
|
||||
<locationY>449</locationY>
|
||||
<locationX>363</locationX>
|
||||
<locationY>602</locationY>
|
||||
<allowBack>true</allowBack>
|
||||
<allowFinish>true</allowFinish>
|
||||
<allowPause>true</allowPause>
|
||||
<fields>
|
||||
<name>processComplete</name>
|
||||
<name>compl</name>
|
||||
<extensionName>c:FlowScreenComplete</extensionName>
|
||||
<fieldType>ComponentInstance</fieldType>
|
||||
<isRequired>true</isRequired>
|
||||
|
@ -43,13 +49,13 @@
|
|||
<screens>
|
||||
<name>Price_Change</name>
|
||||
<label>Price Change</label>
|
||||
<locationX>353</locationX>
|
||||
<locationY>197</locationY>
|
||||
<locationX>376</locationX>
|
||||
<locationY>236</locationY>
|
||||
<allowBack>true</allowBack>
|
||||
<allowFinish>true</allowFinish>
|
||||
<allowPause>true</allowPause>
|
||||
<connector>
|
||||
<targetReference>Upload_Pictures</targetReference>
|
||||
<targetReference>Upload_Pics</targetReference>
|
||||
</connector>
|
||||
<fields>
|
||||
<name>priceChange</name>
|
||||
|
@ -61,10 +67,10 @@
|
|||
<showHeader>false</showHeader>
|
||||
</screens>
|
||||
<screens>
|
||||
<name>Upload_Pictures</name>
|
||||
<label>Upload Pictures</label>
|
||||
<locationX>380</locationX>
|
||||
<locationY>351</locationY>
|
||||
<name>Upload_Pics</name>
|
||||
<label>Upload Pics</label>
|
||||
<locationX>377</locationX>
|
||||
<locationY>430</locationY>
|
||||
<allowBack>true</allowBack>
|
||||
<allowFinish>true</allowFinish>
|
||||
<allowPause>true</allowPause>
|
||||
|
@ -78,7 +84,14 @@
|
|||
<isRequired>true</isRequired>
|
||||
</fields>
|
||||
<showFooter>true</showFooter>
|
||||
<showHeader>true</showHeader>
|
||||
<showHeader>false</showHeader>
|
||||
</screens>
|
||||
<startElementReference>Comp_List</startElementReference>
|
||||
<variables>
|
||||
<name>recordId</name>
|
||||
<dataType>String</dataType>
|
||||
<isCollection>false</isCollection>
|
||||
<isInput>true</isInput>
|
||||
<isOutput>false</isOutput>
|
||||
</variables>
|
||||
</Flow>
|
|
@ -0,0 +1,115 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<interviewLabel>Optimize Listing {!$Flow.CurrentDateTime}</interviewLabel>
|
||||
<label>Optimize Listing</label>
|
||||
<processType>Flow</processType>
|
||||
<screens>
|
||||
<name>Comp_List</name>
|
||||
<label>Comp List</label>
|
||||
<locationX>378</locationX>
|
||||
<locationY>98</locationY>
|
||||
<allowBack>true</allowBack>
|
||||
<allowFinish>true</allowFinish>
|
||||
<allowPause>true</allowPause>
|
||||
<connector>
|
||||
<targetReference>Price_Change</targetReference>
|
||||
</connector>
|
||||
<fields>
|
||||
<name>compList</name>
|
||||
<extensionName>c:FlowScreenCompList</extensionName>
|
||||
<fieldType>ComponentInstance</fieldType>
|
||||
<inputParameters>
|
||||
<name>recordId</name>
|
||||
<value>
|
||||
<elementReference>recordId</elementReference>
|
||||
</value>
|
||||
</inputParameters>
|
||||
<isRequired>true</isRequired>
|
||||
</fields>
|
||||
<showFooter>true</showFooter>
|
||||
<showHeader>false</showHeader>
|
||||
</screens>
|
||||
<screens>
|
||||
<name>Complete</name>
|
||||
<label>Complete</label>
|
||||
<locationX>363</locationX>
|
||||
<locationY>602</locationY>
|
||||
<allowBack>true</allowBack>
|
||||
<allowFinish>true</allowFinish>
|
||||
<allowPause>true</allowPause>
|
||||
<fields>
|
||||
<name>compl</name>
|
||||
<extensionName>c:FlowScreenComplete</extensionName>
|
||||
<fieldType>ComponentInstance</fieldType>
|
||||
<inputParameters>
|
||||
<name>recordId</name>
|
||||
<value>
|
||||
<elementReference>recordId</elementReference>
|
||||
</value>
|
||||
</inputParameters>
|
||||
<isRequired>true</isRequired>
|
||||
</fields>
|
||||
<showFooter>true</showFooter>
|
||||
<showHeader>false</showHeader>
|
||||
</screens>
|
||||
<screens>
|
||||
<name>Price_Change</name>
|
||||
<label>Price Change</label>
|
||||
<locationX>376</locationX>
|
||||
<locationY>236</locationY>
|
||||
<allowBack>true</allowBack>
|
||||
<allowFinish>true</allowFinish>
|
||||
<allowPause>true</allowPause>
|
||||
<connector>
|
||||
<targetReference>Upload_Pics</targetReference>
|
||||
</connector>
|
||||
<fields>
|
||||
<name>priceChange</name>
|
||||
<extensionName>c:FlowScreenPriceChange</extensionName>
|
||||
<fieldType>ComponentInstance</fieldType>
|
||||
<inputParameters>
|
||||
<name>recordId</name>
|
||||
<value>
|
||||
<elementReference>recordId</elementReference>
|
||||
</value>
|
||||
</inputParameters>
|
||||
<isRequired>true</isRequired>
|
||||
</fields>
|
||||
<showFooter>true</showFooter>
|
||||
<showHeader>false</showHeader>
|
||||
</screens>
|
||||
<screens>
|
||||
<name>Upload_Pics</name>
|
||||
<label>Upload Pics</label>
|
||||
<locationX>377</locationX>
|
||||
<locationY>430</locationY>
|
||||
<allowBack>true</allowBack>
|
||||
<allowFinish>true</allowFinish>
|
||||
<allowPause>true</allowPause>
|
||||
<connector>
|
||||
<targetReference>Complete</targetReference>
|
||||
</connector>
|
||||
<fields>
|
||||
<name>imageUpload</name>
|
||||
<extensionName>c:FlowScreenImageUpload</extensionName>
|
||||
<fieldType>ComponentInstance</fieldType>
|
||||
<inputParameters>
|
||||
<name>recordId</name>
|
||||
<value>
|
||||
<elementReference>recordId</elementReference>
|
||||
</value>
|
||||
</inputParameters>
|
||||
<isRequired>true</isRequired>
|
||||
</fields>
|
||||
<showFooter>true</showFooter>
|
||||
<showHeader>false</showHeader>
|
||||
</screens>
|
||||
<startElementReference>Comp_List</startElementReference>
|
||||
<variables>
|
||||
<name>recordId</name>
|
||||
<dataType>String</dataType>
|
||||
<isCollection>false</isCollection>
|
||||
<isInput>true</isInput>
|
||||
<isOutput>false</isOutput>
|
||||
</variables>
|
||||
</Flow>
|
|
@ -0,0 +1,236 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<assignments>
|
||||
<name>myVariable_waitStartTimeAssignment</name>
|
||||
<label>myVariable_waitStartTimeAssignment</label>
|
||||
<locationX>0</locationX>
|
||||
<locationY>0</locationY>
|
||||
<assignmentItems>
|
||||
<assignToReference>myVariable_waitStartTimeVariable</assignToReference>
|
||||
<operator>Assign</operator>
|
||||
<value>
|
||||
<elementReference>$Flow.CurrentDateTime</elementReference>
|
||||
</value>
|
||||
</assignmentItems>
|
||||
<connector>
|
||||
<targetReference>isChangedDecision2_myRule_1_Asking_Price_c</targetReference>
|
||||
</connector>
|
||||
</assignments>
|
||||
<decisions>
|
||||
<name>isChangedDecision2_myRule_1_Asking_Price_c</name>
|
||||
<label>isChangedDecision2_myRule_1_Asking_Price_c</label>
|
||||
<locationX>0</locationX>
|
||||
<locationY>0</locationY>
|
||||
<defaultConnector>
|
||||
<targetReference>myDecision</targetReference>
|
||||
</defaultConnector>
|
||||
<defaultConnectorLabel>default</defaultConnectorLabel>
|
||||
<rules>
|
||||
<name>isChangedRule_2_myRule_1_Asking_Price_c</name>
|
||||
<conditionLogic>and</conditionLogic>
|
||||
<conditions>
|
||||
<leftValueReference>myVariable_old</leftValueReference>
|
||||
<operator>IsNull</operator>
|
||||
<rightValue>
|
||||
<booleanValue>false</booleanValue>
|
||||
</rightValue>
|
||||
</conditions>
|
||||
<conditions>
|
||||
<leftValueReference>myVariable_old.Asking_Price__c</leftValueReference>
|
||||
<operator>NotEqualTo</operator>
|
||||
<rightValue>
|
||||
<elementReference>myVariable_current.Asking_Price__c</elementReference>
|
||||
</rightValue>
|
||||
</conditions>
|
||||
<connector>
|
||||
<targetReference>myDecision</targetReference>
|
||||
</connector>
|
||||
<label>isChangedRule_2_myRule_1_Asking_Price_c</label>
|
||||
</rules>
|
||||
</decisions>
|
||||
<decisions>
|
||||
<processMetadataValues>
|
||||
<name>index</name>
|
||||
<value>
|
||||
<numberValue>0.0</numberValue>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<name>myDecision</name>
|
||||
<label>myDecision</label>
|
||||
<locationX>50</locationX>
|
||||
<locationY>0</locationY>
|
||||
<defaultConnectorLabel>default</defaultConnectorLabel>
|
||||
<rules>
|
||||
<name>myRule_1</name>
|
||||
<conditionLogic>and</conditionLogic>
|
||||
<conditions>
|
||||
<processMetadataValues>
|
||||
<name>inputDataType</name>
|
||||
<value>
|
||||
<stringValue>Boolean</stringValue>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<processMetadataValues>
|
||||
<name>leftHandSideType</name>
|
||||
<value>
|
||||
<stringValue>Number</stringValue>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<processMetadataValues>
|
||||
<name>operatorDataType</name>
|
||||
<value>
|
||||
<stringValue>Number</stringValue>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<processMetadataValues>
|
||||
<name>rightHandSideType</name>
|
||||
<value>
|
||||
<stringValue>Boolean</stringValue>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<leftValueReference>isChangedRule_2_myRule_1_Asking_Price_c</leftValueReference>
|
||||
<operator>EqualTo</operator>
|
||||
<rightValue>
|
||||
<booleanValue>true</booleanValue>
|
||||
</rightValue>
|
||||
</conditions>
|
||||
<connector>
|
||||
<targetReference>myRule_1_A1</targetReference>
|
||||
</connector>
|
||||
<label>Price Change?</label>
|
||||
</rules>
|
||||
</decisions>
|
||||
<interviewLabel>Push_Price_Change-1_InterviewLabel</interviewLabel>
|
||||
<label>Publish Price Change</label>
|
||||
<processMetadataValues>
|
||||
<name>ObjectType</name>
|
||||
<value>
|
||||
<stringValue>Property__c</stringValue>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<processMetadataValues>
|
||||
<name>ObjectVariable</name>
|
||||
<value>
|
||||
<elementReference>myVariable_current</elementReference>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<processMetadataValues>
|
||||
<name>OldObjectVariable</name>
|
||||
<value>
|
||||
<elementReference>myVariable_old</elementReference>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<processMetadataValues>
|
||||
<name>TriggerType</name>
|
||||
<value>
|
||||
<stringValue>onAllChanges</stringValue>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<processType>Workflow</processType>
|
||||
<recordCreates>
|
||||
<name>myRule_1_A1</name>
|
||||
<label>Publish Price Change Event</label>
|
||||
<locationX>100</locationX>
|
||||
<locationY>200</locationY>
|
||||
<inputAssignments>
|
||||
<processMetadataValues>
|
||||
<name>dataType</name>
|
||||
<value>
|
||||
<stringValue>Number</stringValue>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<processMetadataValues>
|
||||
<name>isRequired</name>
|
||||
<value>
|
||||
<booleanValue>false</booleanValue>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<processMetadataValues>
|
||||
<name>leftHandSideLabel</name>
|
||||
<value>
|
||||
<stringValue>Price</stringValue>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<processMetadataValues>
|
||||
<name>leftHandSideReferenceTo</name>
|
||||
<value>
|
||||
<stringValue/>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<processMetadataValues>
|
||||
<name>rightHandSideType</name>
|
||||
<value>
|
||||
<stringValue>Reference</stringValue>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<field>Price__c</field>
|
||||
<value>
|
||||
<elementReference>myVariable_current.Asking_Price__c</elementReference>
|
||||
</value>
|
||||
</inputAssignments>
|
||||
<inputAssignments>
|
||||
<processMetadataValues>
|
||||
<name>dataType</name>
|
||||
<value>
|
||||
<stringValue>String</stringValue>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<processMetadataValues>
|
||||
<name>isRequired</name>
|
||||
<value>
|
||||
<booleanValue>false</booleanValue>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<processMetadataValues>
|
||||
<name>leftHandSideLabel</name>
|
||||
<value>
|
||||
<stringValue>Property Id</stringValue>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<processMetadataValues>
|
||||
<name>leftHandSideReferenceTo</name>
|
||||
<value>
|
||||
<stringValue/>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<processMetadataValues>
|
||||
<name>rightHandSideType</name>
|
||||
<value>
|
||||
<stringValue>Reference</stringValue>
|
||||
</value>
|
||||
</processMetadataValues>
|
||||
<field>Property_Id__c</field>
|
||||
<value>
|
||||
<elementReference>myVariable_current.Id</elementReference>
|
||||
</value>
|
||||
</inputAssignments>
|
||||
<object>Price_Change__e</object>
|
||||
</recordCreates>
|
||||
<startElementReference>myVariable_waitStartTimeAssignment</startElementReference>
|
||||
<variables>
|
||||
<name>myVariable_current</name>
|
||||
<dataType>SObject</dataType>
|
||||
<isCollection>false</isCollection>
|
||||
<isInput>true</isInput>
|
||||
<isOutput>true</isOutput>
|
||||
<objectType>Property__c</objectType>
|
||||
</variables>
|
||||
<variables>
|
||||
<name>myVariable_old</name>
|
||||
<dataType>SObject</dataType>
|
||||
<isCollection>false</isCollection>
|
||||
<isInput>true</isInput>
|
||||
<isOutput>false</isOutput>
|
||||
<objectType>Property__c</objectType>
|
||||
</variables>
|
||||
<variables>
|
||||
<name>myVariable_waitStartTimeVariable</name>
|
||||
<dataType>DateTime</dataType>
|
||||
<isCollection>false</isCollection>
|
||||
<isInput>false</isInput>
|
||||
<isOutput>false</isOutput>
|
||||
<value>
|
||||
<elementReference>$Flow.CurrentDateTime</elementReference>
|
||||
</value>
|
||||
</variables>
|
||||
</Flow>
|
|
@ -39,6 +39,14 @@
|
|||
<behavior>Edit</behavior>
|
||||
<field>Price_Sold__c</field>
|
||||
</layoutItems>
|
||||
<layoutItems>
|
||||
<behavior>Edit</behavior>
|
||||
<field>Predicted_Days_on_Market__c</field>
|
||||
</layoutItems>
|
||||
<layoutItems>
|
||||
<behavior>Edit</behavior>
|
||||
<field>Asking_Price__c</field>
|
||||
</layoutItems>
|
||||
</layoutColumns>
|
||||
<layoutColumns>
|
||||
<layoutItems>
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<deploymentStatus>Deployed</deploymentStatus>
|
||||
<eventType>StandardVolume</eventType>
|
||||
<label>Price Change</label>
|
||||
<pluralLabel>Price Changes</pluralLabel>
|
||||
</CustomObject>
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<fullName>Price__c</fullName>
|
||||
<externalId>false</externalId>
|
||||
<isFilteringDisabled>false</isFilteringDisabled>
|
||||
<isNameField>false</isNameField>
|
||||
<isSortingDisabled>false</isSortingDisabled>
|
||||
<label>Price</label>
|
||||
<precision>8</precision>
|
||||
<required>false</required>
|
||||
<scale>0</scale>
|
||||
<type>Number</type>
|
||||
<unique>false</unique>
|
||||
</CustomField>
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<fullName>Property_Id__c</fullName>
|
||||
<externalId>false</externalId>
|
||||
<isFilteringDisabled>false</isFilteringDisabled>
|
||||
<isNameField>false</isNameField>
|
||||
<isSortingDisabled>false</isSortingDisabled>
|
||||
<label>Property Id</label>
|
||||
<length>18</length>
|
||||
<required>false</required>
|
||||
<type>Text</type>
|
||||
<unique>false</unique>
|
||||
</CustomField>
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<fullName>Asking_Price__c</fullName>
|
||||
<externalId>false</externalId>
|
||||
<label>Asking Price</label>
|
||||
<precision>8</precision>
|
||||
<required>false</required>
|
||||
<scale>0</scale>
|
||||
<trackFeedHistory>false</trackFeedHistory>
|
||||
<trackHistory>false</trackHistory>
|
||||
<trackTrending>false</trackTrending>
|
||||
<type>Number</type>
|
||||
<unique>false</unique>
|
||||
</CustomField>
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<fullName>Predicted_Days_on_Market__c</fullName>
|
||||
<externalId>false</externalId>
|
||||
<label>Predicted Days on Market</label>
|
||||
<precision>4</precision>
|
||||
<required>false</required>
|
||||
<scale>0</scale>
|
||||
<trackFeedHistory>false</trackFeedHistory>
|
||||
<trackHistory>false</trackHistory>
|
||||
<trackTrending>false</trackTrending>
|
||||
<type>Number</type>
|
||||
<unique>false</unique>
|
||||
</CustomField>
|
|
@ -2,7 +2,7 @@
|
|||
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<fullName>Price__c</fullName>
|
||||
<externalId>false</externalId>
|
||||
<label>Asking Price</label>
|
||||
<label>Price</label>
|
||||
<precision>8</precision>
|
||||
<required>false</required>
|
||||
<scale>0</scale>
|
||||
|
|
|
@ -469,6 +469,18 @@
|
|||
pattern: "(?i).*account ([A-Za-z0-9]*)",
|
||||
sampleUtterance: "Account United"
|
||||
},
|
||||
{
|
||||
name: "Report",
|
||||
apexClass: "HandlerReport",
|
||||
pattern: "(?i).*([A-Za-z0-9]*) report",
|
||||
sampleUtterance: "open market report"
|
||||
},
|
||||
{
|
||||
name: "Dashboard",
|
||||
apexClass: "HandlerDashboard",
|
||||
pattern: "(?i).*([A-Za-z0-9]*) dashboard",
|
||||
sampleUtterance: "open portfolio dashboard"
|
||||
},
|
||||
{
|
||||
name: "Find Contact",
|
||||
apexClass: "HandlerFindContact",
|
||||
|
@ -484,7 +496,7 @@
|
|||
{
|
||||
name: "Find Properties by Bedrooms",
|
||||
apexClass: "HandlerFindPropertiesByBedrooms",
|
||||
pattern: "(?i)([0-9]*) bedrooms in ([A-Za-z]*)",
|
||||
pattern: "(?i)([A-Za-z0-9]*) bedrooms in ([A-Za-z]*)",
|
||||
sampleUtterance: "3 bedrooms in Boston"
|
||||
},
|
||||
{
|
||||
|
|
|
@ -61,6 +61,10 @@
|
|||
<apexClass>HandlerCostCenter</apexClass>
|
||||
<enabled>true</enabled>
|
||||
</classAccesses>
|
||||
<classAccesses>
|
||||
<apexClass>HandlerDashboard</apexClass>
|
||||
<enabled>true</enabled>
|
||||
</classAccesses>
|
||||
<classAccesses>
|
||||
<apexClass>HandlerEmployeeId</apexClass>
|
||||
<enabled>true</enabled>
|
||||
|
@ -117,6 +121,10 @@
|
|||
<apexClass>HandlerQuarter</apexClass>
|
||||
<enabled>true</enabled>
|
||||
</classAccesses>
|
||||
<classAccesses>
|
||||
<apexClass>HandlerReport</apexClass>
|
||||
<enabled>true</enabled>
|
||||
</classAccesses>
|
||||
<classAccesses>
|
||||
<apexClass>HandlerSOQL</apexClass>
|
||||
<enabled>true</enabled>
|
||||
|
@ -240,6 +248,16 @@
|
|||
<field>Broker__c.Title__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Price_Change__e.Price__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Price_Change__e.Property_Id__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Property_Favorite__c.Property__c</field>
|
||||
|
@ -255,6 +273,11 @@
|
|||
<field>Property__c.Address__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>true</editable>
|
||||
<field>Property__c.Asking_Price__c</field>
|
||||
<readable>true</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Property__c.Assessed_Value__c</field>
|
||||
|
@ -330,6 +353,11 @@
|
|||
<field>Property__c.Picture__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>true</editable>
|
||||
<field>Property__c.Predicted_Days_on_Market__c</field>
|
||||
<readable>true</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Property__c.Price_Sold__c</field>
|
||||
|
@ -392,6 +420,10 @@
|
|||
<layoutAssignments>
|
||||
<layout>Property__c-Property Layout</layout>
|
||||
</layoutAssignments>
|
||||
<loginIpRanges>
|
||||
<endAddress>255.255.255.255</endAddress>
|
||||
<startAddress>0.0.0.0</startAddress>
|
||||
</loginIpRanges>
|
||||
<objectPermissions>
|
||||
<allowCreate>true</allowCreate>
|
||||
<allowDelete>true</allowDelete>
|
||||
|
@ -410,6 +442,15 @@
|
|||
<object>Broker__c</object>
|
||||
<viewAllRecords>true</viewAllRecords>
|
||||
</objectPermissions>
|
||||
<objectPermissions>
|
||||
<allowCreate>true</allowCreate>
|
||||
<allowDelete>true</allowDelete>
|
||||
<allowEdit>true</allowEdit>
|
||||
<allowRead>true</allowRead>
|
||||
<modifyAllRecords>true</modifyAllRecords>
|
||||
<object>Price_Change__e</object>
|
||||
<viewAllRecords>true</viewAllRecords>
|
||||
</objectPermissions>
|
||||
<objectPermissions>
|
||||
<allowCreate>true</allowCreate>
|
||||
<allowDelete>true</allowDelete>
|
||||
|
@ -432,10 +473,6 @@
|
|||
<apexPage>DreamHouseSampleData</apexPage>
|
||||
<enabled>true</enabled>
|
||||
</pageAccesses>
|
||||
<tabVisibilities>
|
||||
<tab>Optimize_Property</tab>
|
||||
<visibility>DefaultOn</visibility>
|
||||
</tabVisibilities>
|
||||
<userLicense>Salesforce</userLicense>
|
||||
<userPermissions>
|
||||
<enabled>true</enabled>
|
||||
|
|
|
@ -61,6 +61,10 @@
|
|||
<apexClass>HandlerCostCenter</apexClass>
|
||||
<enabled>false</enabled>
|
||||
</classAccesses>
|
||||
<classAccesses>
|
||||
<apexClass>HandlerDashboard</apexClass>
|
||||
<enabled>false</enabled>
|
||||
</classAccesses>
|
||||
<classAccesses>
|
||||
<apexClass>HandlerEmployeeId</apexClass>
|
||||
<enabled>false</enabled>
|
||||
|
@ -117,6 +121,10 @@
|
|||
<apexClass>HandlerQuarter</apexClass>
|
||||
<enabled>false</enabled>
|
||||
</classAccesses>
|
||||
<classAccesses>
|
||||
<apexClass>HandlerReport</apexClass>
|
||||
<enabled>false</enabled>
|
||||
</classAccesses>
|
||||
<classAccesses>
|
||||
<apexClass>HandlerSOQL</apexClass>
|
||||
<enabled>false</enabled>
|
||||
|
@ -240,6 +248,16 @@
|
|||
<field>Broker__c.Title__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Price_Change__e.Price__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Price_Change__e.Property_Id__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Property_Favorite__c.Property__c</field>
|
||||
|
@ -255,6 +273,11 @@
|
|||
<field>Property__c.Address__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>true</editable>
|
||||
<field>Property__c.Asking_Price__c</field>
|
||||
<readable>true</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Property__c.Assessed_Value__c</field>
|
||||
|
@ -330,6 +353,11 @@
|
|||
<field>Property__c.Picture__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>true</editable>
|
||||
<field>Property__c.Predicted_Days_on_Market__c</field>
|
||||
<readable>true</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Property__c.Price_Sold__c</field>
|
||||
|
@ -396,10 +424,6 @@
|
|||
<apexPage>DreamHouseSampleData</apexPage>
|
||||
<enabled>false</enabled>
|
||||
</pageAccesses>
|
||||
<tabVisibilities>
|
||||
<tab>Optimize_Property</tab>
|
||||
<visibility>DefaultOn</visibility>
|
||||
</tabVisibilities>
|
||||
<userLicense>Salesforce</userLicense>
|
||||
<userPermissions>
|
||||
<enabled>true</enabled>
|
||||
|
|
|
@ -61,6 +61,10 @@
|
|||
<apexClass>HandlerCostCenter</apexClass>
|
||||
<enabled>false</enabled>
|
||||
</classAccesses>
|
||||
<classAccesses>
|
||||
<apexClass>HandlerDashboard</apexClass>
|
||||
<enabled>false</enabled>
|
||||
</classAccesses>
|
||||
<classAccesses>
|
||||
<apexClass>HandlerEmployeeId</apexClass>
|
||||
<enabled>false</enabled>
|
||||
|
@ -117,6 +121,10 @@
|
|||
<apexClass>HandlerQuarter</apexClass>
|
||||
<enabled>false</enabled>
|
||||
</classAccesses>
|
||||
<classAccesses>
|
||||
<apexClass>HandlerReport</apexClass>
|
||||
<enabled>false</enabled>
|
||||
</classAccesses>
|
||||
<classAccesses>
|
||||
<apexClass>HandlerSOQL</apexClass>
|
||||
<enabled>false</enabled>
|
||||
|
@ -240,6 +248,16 @@
|
|||
<field>Broker__c.Title__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Price_Change__e.Price__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Price_Change__e.Property_Id__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Property_Favorite__c.Property__c</field>
|
||||
|
@ -255,6 +273,11 @@
|
|||
<field>Property__c.Address__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>true</editable>
|
||||
<field>Property__c.Asking_Price__c</field>
|
||||
<readable>true</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Property__c.Assessed_Value__c</field>
|
||||
|
@ -330,6 +353,11 @@
|
|||
<field>Property__c.Picture__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>true</editable>
|
||||
<field>Property__c.Predicted_Days_on_Market__c</field>
|
||||
<readable>true</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Property__c.Price_Sold__c</field>
|
||||
|
@ -396,10 +424,6 @@
|
|||
<apexPage>DreamHouseSampleData</apexPage>
|
||||
<enabled>false</enabled>
|
||||
</pageAccesses>
|
||||
<tabVisibilities>
|
||||
<tab>Optimize_Property</tab>
|
||||
<visibility>DefaultOn</visibility>
|
||||
</tabVisibilities>
|
||||
<userLicense>Salesforce</userLicense>
|
||||
<userPermissions>
|
||||
<enabled>true</enabled>
|
||||
|
|
|
@ -61,6 +61,10 @@
|
|||
<apexClass>HandlerCostCenter</apexClass>
|
||||
<enabled>false</enabled>
|
||||
</classAccesses>
|
||||
<classAccesses>
|
||||
<apexClass>HandlerDashboard</apexClass>
|
||||
<enabled>false</enabled>
|
||||
</classAccesses>
|
||||
<classAccesses>
|
||||
<apexClass>HandlerEmployeeId</apexClass>
|
||||
<enabled>false</enabled>
|
||||
|
@ -117,6 +121,10 @@
|
|||
<apexClass>HandlerQuarter</apexClass>
|
||||
<enabled>false</enabled>
|
||||
</classAccesses>
|
||||
<classAccesses>
|
||||
<apexClass>HandlerReport</apexClass>
|
||||
<enabled>false</enabled>
|
||||
</classAccesses>
|
||||
<classAccesses>
|
||||
<apexClass>HandlerSOQL</apexClass>
|
||||
<enabled>false</enabled>
|
||||
|
@ -240,6 +248,16 @@
|
|||
<field>Broker__c.Title__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Price_Change__e.Price__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Price_Change__e.Property_Id__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Property_Favorite__c.Property__c</field>
|
||||
|
@ -255,6 +273,11 @@
|
|||
<field>Property__c.Address__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>true</editable>
|
||||
<field>Property__c.Asking_Price__c</field>
|
||||
<readable>true</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Property__c.Assessed_Value__c</field>
|
||||
|
@ -330,6 +353,11 @@
|
|||
<field>Property__c.Picture__c</field>
|
||||
<readable>false</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>true</editable>
|
||||
<field>Property__c.Predicted_Days_on_Market__c</field>
|
||||
<readable>true</readable>
|
||||
</fieldPermissions>
|
||||
<fieldPermissions>
|
||||
<editable>false</editable>
|
||||
<field>Property__c.Price_Sold__c</field>
|
||||
|
@ -396,10 +424,6 @@
|
|||
<apexPage>DreamHouseSampleData</apexPage>
|
||||
<enabled>false</enabled>
|
||||
</pageAccesses>
|
||||
<tabVisibilities>
|
||||
<tab>Optimize_Property</tab>
|
||||
<visibility>DefaultOn</visibility>
|
||||
</tabVisibilities>
|
||||
<userLicense>Salesforce</userLicense>
|
||||
<userPermissions>
|
||||
<enabled>true</enabled>
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ReportFolder xmlns="http://soap.sforce.com/2006/04/metadata">
|
||||
<name>DreamHouse Reports</name>
|
||||
</ReportFolder>
|
|
@ -0,0 +1,56 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Report xmlns="http://soap.sforce.com/2006/04/metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<chart>
|
||||
<backgroundColor1>#FFFFFF</backgroundColor1>
|
||||
<backgroundColor2>#FFFFFF</backgroundColor2>
|
||||
<backgroundFadeDir>Diagonal</backgroundFadeDir>
|
||||
<chartSummaries>
|
||||
<aggregate>Sum</aggregate>
|
||||
<axisBinding>y</axisBinding>
|
||||
<column>Property__c.Days_On_Market__c</column>
|
||||
</chartSummaries>
|
||||
<chartType>HorizontalBar</chartType>
|
||||
<enableHoverLabels>false</enableHoverLabels>
|
||||
<expandOthers>true</expandOthers>
|
||||
<groupingColumn>CUST_NAME</groupingColumn>
|
||||
<location>CHART_BOTTOM</location>
|
||||
<showAxisLabels>true</showAxisLabels>
|
||||
<showPercentage>false</showPercentage>
|
||||
<showTotal>false</showTotal>
|
||||
<showValues>false</showValues>
|
||||
<size>Medium</size>
|
||||
<summaryAxisRange>Auto</summaryAxisRange>
|
||||
<textColor>#000000</textColor>
|
||||
<textSize>12</textSize>
|
||||
<title>Days on Market</title>
|
||||
<titleColor>#000000</titleColor>
|
||||
<titleSize>18</titleSize>
|
||||
</chart>
|
||||
<columns>
|
||||
<field>Property__c.Date_Listed__c</field>
|
||||
</columns>
|
||||
<columns>
|
||||
<aggregateTypes>Sum</aggregateTypes>
|
||||
<field>Property__c.Days_On_Market__c</field>
|
||||
</columns>
|
||||
<format>Summary</format>
|
||||
<groupingsDown>
|
||||
<dateGranularity>Day</dateGranularity>
|
||||
<field>CUST_NAME</field>
|
||||
<sortOrder>Asc</sortOrder>
|
||||
</groupingsDown>
|
||||
<name>Days on Market</name>
|
||||
<params>
|
||||
<name>co</name>
|
||||
<value>1</value>
|
||||
</params>
|
||||
<reportType>CustomEntity$Property__c</reportType>
|
||||
<scope>user</scope>
|
||||
<showDetails>true</showDetails>
|
||||
<sortColumn>Property__c.Days_On_Market__c</sortColumn>
|
||||
<sortOrder>Asc</sortOrder>
|
||||
<timeFrameFilter>
|
||||
<dateColumn>Property__c.Date_Agreement__c</dateColumn>
|
||||
<interval>INTERVAL_CUSTOM</interval>
|
||||
</timeFrameFilter>
|
||||
</Report>
|
|
@ -0,0 +1,93 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Report xmlns="http://soap.sforce.com/2006/04/metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<buckets>
|
||||
<bucketType>number</bucketType>
|
||||
<developerName>BucketField_33803839</developerName>
|
||||
<masterLabel>Days on Market</masterLabel>
|
||||
<nullTreatment>z</nullTreatment>
|
||||
<sourceColumnName>Property__c.Days_On_Market__c</sourceColumnName>
|
||||
<useOther>false</useOther>
|
||||
<values>
|
||||
<sourceValues>
|
||||
<to>30</to>
|
||||
</sourceValues>
|
||||
<value><30 days</value>
|
||||
</values>
|
||||
<values>
|
||||
<sourceValues>
|
||||
<from>30</from>
|
||||
<to>60</to>
|
||||
</sourceValues>
|
||||
<value>30-60 days</value>
|
||||
</values>
|
||||
<values>
|
||||
<sourceValues>
|
||||
<from>60</from>
|
||||
</sourceValues>
|
||||
<value>>60 days</value>
|
||||
</values>
|
||||
</buckets>
|
||||
<chart>
|
||||
<backgroundColor1>#FFFFFF</backgroundColor1>
|
||||
<backgroundColor2>#FFFFFF</backgroundColor2>
|
||||
<backgroundFadeDir>Diagonal</backgroundFadeDir>
|
||||
<chartSummaries>
|
||||
<axisBinding>y</axisBinding>
|
||||
<column>RowCount</column>
|
||||
</chartSummaries>
|
||||
<chartType>Donut</chartType>
|
||||
<enableHoverLabels>false</enableHoverLabels>
|
||||
<expandOthers>false</expandOthers>
|
||||
<groupingColumn>BucketField_33803839</groupingColumn>
|
||||
<legendPosition>Right</legendPosition>
|
||||
<location>CHART_BOTTOM</location>
|
||||
<showAxisLabels>true</showAxisLabels>
|
||||
<showPercentage>false</showPercentage>
|
||||
<showTotal>false</showTotal>
|
||||
<showValues>false</showValues>
|
||||
<size>Medium</size>
|
||||
<summaryAxisRange>Auto</summaryAxisRange>
|
||||
<textColor>#000000</textColor>
|
||||
<textSize>12</textSize>
|
||||
<titleColor>#000000</titleColor>
|
||||
<titleSize>18</titleSize>
|
||||
</chart>
|
||||
<columns>
|
||||
<field>CUST_NAME</field>
|
||||
</columns>
|
||||
<columns>
|
||||
<field>Property__c.Date_Listed__c</field>
|
||||
</columns>
|
||||
<columns>
|
||||
<field>Property__c.Beds__c</field>
|
||||
</columns>
|
||||
<columns>
|
||||
<field>Property__c.Baths__c</field>
|
||||
</columns>
|
||||
<columns>
|
||||
<field>Property__c.Price__c</field>
|
||||
</columns>
|
||||
<columns>
|
||||
<field>Property__c.Days_On_Market__c</field>
|
||||
</columns>
|
||||
<format>Summary</format>
|
||||
<groupingsDown>
|
||||
<dateGranularity>Day</dateGranularity>
|
||||
<field>BucketField_33803839</field>
|
||||
<sortOrder>Asc</sortOrder>
|
||||
</groupingsDown>
|
||||
<name>Portfolio Health</name>
|
||||
<params>
|
||||
<name>co</name>
|
||||
<value>1</value>
|
||||
</params>
|
||||
<reportType>CustomEntity$Property__c</reportType>
|
||||
<scope>user</scope>
|
||||
<showDetails>true</showDetails>
|
||||
<sortColumn>Property__c.Days_On_Market__c</sortColumn>
|
||||
<sortOrder>Asc</sortOrder>
|
||||
<timeFrameFilter>
|
||||
<dateColumn>Property__c.Date_Agreement__c</dateColumn>
|
||||
<interval>INTERVAL_CUSTOM</interval>
|
||||
</timeFrameFilter>
|
||||
</Report>
|
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Report xmlns="http://soap.sforce.com/2006/04/metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<chart>
|
||||
<backgroundColor1>#FFFFFF</backgroundColor1>
|
||||
<backgroundColor2>#FFFFFF</backgroundColor2>
|
||||
<backgroundFadeDir>Diagonal</backgroundFadeDir>
|
||||
<chartSummaries>
|
||||
<aggregate>Sum</aggregate>
|
||||
<axisBinding>y</axisBinding>
|
||||
<column>Property__c.Price__c</column>
|
||||
</chartSummaries>
|
||||
<chartType>VerticalColumn</chartType>
|
||||
<enableHoverLabels>false</enableHoverLabels>
|
||||
<expandOthers>true</expandOthers>
|
||||
<groupingColumn>FK_NAME</groupingColumn>
|
||||
<location>CHART_BOTTOM</location>
|
||||
<showAxisLabels>true</showAxisLabels>
|
||||
<showPercentage>false</showPercentage>
|
||||
<showTotal>false</showTotal>
|
||||
<showValues>true</showValues>
|
||||
<size>Medium</size>
|
||||
<summaryAxisRange>Auto</summaryAxisRange>
|
||||
<textColor>#000000</textColor>
|
||||
<textSize>12</textSize>
|
||||
<titleColor>#000000</titleColor>
|
||||
<titleSize>18</titleSize>
|
||||
</chart>
|
||||
<columns>
|
||||
<field>CUST_NAME</field>
|
||||
</columns>
|
||||
<columns>
|
||||
<field>Property__c.Beds__c</field>
|
||||
</columns>
|
||||
<columns>
|
||||
<field>Property__c.Baths__c</field>
|
||||
</columns>
|
||||
<columns>
|
||||
<field>Property__c.Date_Listed__c</field>
|
||||
</columns>
|
||||
<columns>
|
||||
<field>Property__c.Days_On_Market__c</field>
|
||||
</columns>
|
||||
<columns>
|
||||
<aggregateTypes>Sum</aggregateTypes>
|
||||
<field>Property__c.Price__c</field>
|
||||
</columns>
|
||||
<format>Summary</format>
|
||||
<groupingsDown>
|
||||
<dateGranularity>Day</dateGranularity>
|
||||
<field>FK_NAME</field>
|
||||
<sortOrder>Asc</sortOrder>
|
||||
</groupingsDown>
|
||||
<name>Properties by Broker</name>
|
||||
<params>
|
||||
<name>co</name>
|
||||
<value>1</value>
|
||||
</params>
|
||||
<reportType>CustomEntity$Property__c@Property__c.Broker__c</reportType>
|
||||
<scope>user</scope>
|
||||
<showDetails>true</showDetails>
|
||||
<sortColumn>Property__c.Days_On_Market__c</sortColumn>
|
||||
<sortOrder>Desc</sortOrder>
|
||||
<timeFrameFilter>
|
||||
<dateColumn>Property__c.Date_Agreement__c</dateColumn>
|
||||
<interval>INTERVAL_CUSTOM</interval>
|
||||
</timeFrameFilter>
|
||||
</Report>
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workflow xmlns="http://soap.sforce.com/2006/04/metadata"/>
|
Загрузка…
Ссылка в новой задаче