Skip to content

Commit a7d7d8c

Browse files
authored
Merge pull request #61 from carfup/revert-60-acf_phonehandling
Revert "Acf phonehandling" - has to be merged on release first !
2 parents 387375a + 3f77a09 commit a7d7d8c

8 files changed

Lines changed: 47 additions & 223 deletions

File tree

AnyCompositeFields/AnyCompositeFIelds/ControlManifest.Input.xml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest>
3-
<control namespace="Carfup" constructor="AnyCompositeFIelds" version="0.0.75" display-name-key="Carfup.AnyCompositeFIelds" description-key="AnyCompositeFIelds will allow you to display any stack of fields as composite rendering." control-type="standard" preview-image="img/preview.png">
3+
<control namespace="Carfup" constructor="AnyCompositeFIelds" version="0.0.72" display-name-key="Carfup.AnyCompositeFIelds" description-key="AnyCompositeFIelds will allow you to display any stack of fields as composite rendering." control-type="standard" preview-image="img/preview.png">
44
<!-- property node identifies a specific, configurable piece of data that the control expects from CDS -->
55
<property name="FieldToAttachControl" display-name-key="FieldToAttachControl" description-key="Field to attach the control to" of-type-group="strings" usage="bound" required="true" />
66
<property name="separator" display-name-key="Values separator" description-key="Separator to split the mapped values (for a space, put %20)" of-type="SingleLine.Text" usage="input" required="true" default-value="%20" />
@@ -20,9 +20,6 @@
2020
<type>SingleLine.Email</type>
2121
<type>SingleLine.Text</type>
2222
<type>SingleLine.Phone</type>
23-
<type>SingleLine.TextArea</type>
24-
<type>SingleLine.URL</type>
25-
<type>Multiple</type>
2623
</type-group>
2724
<!--
2825
Property node's of-type attribute can be of-type-group attribute.

AnyCompositeFields/AnyCompositeFIelds/components/CompositeControl.tsx

Lines changed: 1 addition & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ import { TextField, ITextFieldStyles } from '@fluentui/react/lib/TextField';
44
import { Stack, IStackStyles } from '@fluentui/react/lib/Stack';
55
import { Callout, ICalloutContentStyles, DirectionalHint } from '@fluentui/react/lib/Callout';
66
import { CompositeValue } from '../EntitiesDefinition';
7-
import { IInputs } from '../generated/ManifestTypes';
8-
import { cpuUsage } from 'process';
97

108
export interface ICompositeControlProps {
119
disabled : boolean;
@@ -14,7 +12,6 @@ export interface ICompositeControlProps {
1412
doneLabel : string;
1513
randNumber: number;
1614
onClickedDone : (compositeValue? : CompositeValue) => void;
17-
context?: ComponentFramework.Context<IInputs>;
1815
}
1916

2017
export interface IBCompositeControlState {
@@ -56,29 +53,24 @@ export default class CompositeControl extends React.Component<ICompositeControlP
5653
{this.state.showCallout && (
5754
<Callout
5855
target={"#acf_compositeFullValue"+this.props.randNumber}
59-
onDismiss={this.onDismissCallout}
56+
onDismiss={() => this.setState({ showCallout : false }) }
6057
styles={calloutStyles}
6158
directionalHint={DirectionalHint.topCenter}
6259
>
6360
<Stack style={{margin : "10px"}}>
6461
{elements.map((value, index) => {
6562
// @ts-ignore
6663
let element = this.state.compositeValue[value];
67-
const isMultiline = element.type === "SingleLine.TextArea" || element.type === "Multiple";
6864

6965
return element.attributes.LogicalName != undefined && <TextField
7066
value={element.raw!}
7167
label={element.attributes.DisplayName}
7268
id={"acf_"+value}
7369
onChange={this.onChangeField}
74-
onDoubleClick={this.onDoubleClick}
7570
disabled={this.state.disabled || element.disabled!}
7671
styles={textFieldStyles}
77-
multiline={isMultiline}
78-
autoAdjustHeight={isMultiline}
7972
required={element.attributes.RequiredLevel == 1 || element.attributes.RequiredLevel == 2}
8073
maxLength={element.attributes.MaxLength}
81-
iconProps={{ iconName: this.getIcon(element.type) }}
8274
/>
8375
})}
8476

@@ -91,12 +83,6 @@ export default class CompositeControl extends React.Component<ICompositeControlP
9183
);
9284
}
9385

94-
private onDismissCallout = (ev?: any) : void => {
95-
if(this.props.context?.client.getClient() !== "Mobile"){
96-
this.setState({ showCallout : false });
97-
}
98-
}
99-
10086
private onChangeField = (event: React.FormEvent<HTMLInputElement | HTMLTextAreaElement>, newValue?: string | undefined) : void => {
10187
// @ts-ignore
10288
let target = event.target.id.replace('acf_', '');
@@ -113,47 +99,6 @@ export default class CompositeControl extends React.Component<ICompositeControlP
11399
this.props.onClickedDone(this.state.compositeValue);
114100
}
115101

116-
private onDoubleClick = (event: React.MouseEvent<HTMLInputElement | HTMLTextAreaElement, MouseEvent>) : void => {
117-
// @ts-ignore
118-
let target = event.target.id.replace('acf_', '');
119-
const compositeValue = {...this.state}.compositeValue;
120-
// @ts-ignore
121-
var contextInfo = this.props.context?.mode.contextInfo;
122-
// @ts-ignore
123-
switch(compositeValue[target].type){
124-
case "SingleLine.Phone":
125-
// @ts-ignore
126-
const currentValue : any = compositeValue[target].raw!;
127-
this.props.context?.navigation.openUrl(`tel:${currentValue}`);
128-
this.props.context?.navigation.openForm({
129-
entityName : "phonecall",
130-
createFromEntity : {
131-
// @ts-ignore
132-
id : contextInfo.entityId,
133-
// @ts-ignore
134-
entityType : contextInfo.entityTypeName,
135-
// @ts-ignore
136-
name : contextInfo.entityRecordName
137-
}
138-
});
139-
this.setState({showCallout : false});
140-
break;
141-
case "SingleLine.URL":
142-
// @ts-ignore
143-
const currentValue : any = compositeValue[target].raw!;
144-
this.props.context?.navigation.openUrl(`${currentValue}`);
145-
break;
146-
case "SingleLine.Email":
147-
// @ts-ignore
148-
const currentValue : any = compositeValue[target].raw!;
149-
this.props.context?.navigation.openUrl(`mailto:${currentValue}`);
150-
break;
151-
default :
152-
return;
153-
}
154-
155-
}
156-
157102
private buildFullValue = (compositeValue : CompositeValue) : void => {
158103
let arrayValues = [];
159104

@@ -170,23 +115,5 @@ export default class CompositeControl extends React.Component<ICompositeControlP
170115

171116
this.setState({compositeValue : compositeValue});
172117
}
173-
174-
private getIcon = (type: string) : string => {
175-
let icon = "";
176-
177-
switch(type){
178-
case "SingleLine.Phone" :
179-
icon = "Phone";
180-
break;
181-
case "SingleLine.URL":
182-
icon = "Globe";
183-
break;
184-
case "SingleLine.Email":
185-
icon = "EditMail";
186-
break;
187-
}
188-
189-
return icon;
190-
}
191118
};
192119

AnyCompositeFields/AnyCompositeFIelds/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@ export class AnyCompositeFIelds implements ComponentFramework.StandardControl<II
112112
);
113113

114114
let optionsText = {
115-
context : this._context,
116115
compositeValue : this._compositeValue,
117116
doneLabel : this._context.resources.getString("Done"),
118117
disabled : this._context.mode.isControlDisabled,

QuickEditForm/QuickEditForm/ControlManifest.Input.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
<value name="true" display-name-key="True" description-key="true">true</value>
1010
<value name="false" display-name-key="False" description-key="false">false</value>
1111
</property>
12-
<property name="NumberOfColumn" display-name-key="Number of columns" description-key="Ability to split the fields in several columns" of-type="Whole.None" usage="input" required="false" default-value="1"/>
1312
<!--
1413
Property node's of-type attribute can be of-type-group attribute.
1514
Example:

QuickEditForm/QuickEditForm/EntitiesDefinition.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ export class EntityReferenceInfo{
33
public Id:string;
44
public Name:string;
55
public Attributes?: any;
6-
public SchemaName?: string;
7-
public QuickCreateEnabled?: boolean;
86
}
97

108
export class EntityReferenceIdName{

QuickEditForm/QuickEditForm/components/MessageBarControl.tsx

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
import * as React from 'react';
22
import {MessageBar, MessageBarType } from '@fluentui/react/lib/MessageBar';
3-
import { MessageBarButton } from '@fluentui/react/lib/Button';
3+
44

55
export interface IMessageProps {
66
messageType? : MessageBarType;
77
messageText? : string;
88
showMessageBar : boolean;
9-
onClickQuickCreate: () => void;
10-
showQuickCreateButton?: boolean;
119
}
1210

1311
export interface IMessageState {
@@ -36,11 +34,6 @@ export default class MessageBarControl extends React.Component<IMessageProps, IM
3634
<div style={{marginTop: "5px"}}>
3735
{this.state.showMessageBar &&
3836
<MessageBar
39-
actions={this.state.messageType == MessageBarType.info && this.props.showQuickCreateButton ? <div>
40-
<MessageBarButton
41-
onClick={this.props.onClickQuickCreate} >Open Quick Create Form
42-
</MessageBarButton>
43-
</div> : undefined}
4437
messageBarType={this.state.messageType}
4538
isMultiline={false}
4639
dismissButtonAriaLabel="Close"

QuickEditForm/QuickEditForm/components/TextFieldControl.tsx

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export default class TextFieldControl extends React.Component<ITextFieldControlP
3333
super(props);
3434
this.state = {
3535
fieldDefinition: this.props.fieldDefinition,
36-
type: props.icon === "NumberField" || props.icon === "Money" ? "number": "text",
36+
type: props.icon === "Money" ? "number": "text",
3737
};
3838
}
3939

@@ -69,15 +69,10 @@ export default class TextFieldControl extends React.Component<ITextFieldControlP
6969
}
7070

7171
private grabValueFromFieldDefinition = (fieldDef : DataFieldDefinition | undefined) : string => {
72-
let result = "";
73-
if(this.state.fieldDefinition?.fieldValue?.Name != undefined) {
74-
result = this.state.fieldDefinition?.fieldValue?.Name;
75-
}
76-
else {
77-
result = this.state.fieldDefinition?.fieldValue;
78-
}
72+
if(this.state.fieldDefinition?.fieldValue?.Name !== undefined)
73+
return this.state.fieldDefinition?.fieldValue?.Name;
7974

80-
return result;
75+
return this.state.fieldDefinition?.fieldValue;
8176
}
8277

8378
private onDoubleClick = (event: React.MouseEvent<HTMLInputElement | HTMLTextAreaElement, MouseEvent>) : void => {

0 commit comments

Comments
 (0)