Skip to content

Commit a922822

Browse files
committed
V14: Integrations (Dynamics)
- Add settimeout to handle async await
1 parent 8327d9c commit a922822

File tree

3 files changed

+65
-50
lines changed

3 files changed

+65
-50
lines changed

src/Umbraco.Cms.Integrations.Crm.Dynamics/Client/src/config/authorization/authorization-property-editor.element.ts

Lines changed: 43 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ export class DynamicsAuthorizationElement extends UmbElementMixin(LitElement){
1919
isAccessTokenValid: false
2020
};
2121

22+
@state()
23+
private _loading: boolean = true;
24+
2225
constructor() {
2326
super();
2427

@@ -34,10 +37,12 @@ export class DynamicsAuthorizationElement extends UmbElementMixin(LitElement){
3437
async connectedCallback() {
3538
super.connectedCallback();
3639

37-
await this.#checkOAuthConfiguration();
40+
setTimeout(() => {
41+
this.#checkConfiguration();
42+
}, 3000);
3843
}
3944

40-
async #checkOAuthConfiguration(){
45+
#checkConfiguration(){
4146
if (!this.#settingsModel) return;
4247

4348
if (!this.#settingsModel.isAuthorized) {
@@ -49,6 +54,8 @@ export class DynamicsAuthorizationElement extends UmbElementMixin(LitElement){
4954
isAccessTokenValid: true
5055
}
5156
}
57+
58+
this._loading = false;
5259
}
5360

5461
async #connectButtonClick(){
@@ -83,7 +90,6 @@ export class DynamicsAuthorizationElement extends UmbElementMixin(LitElement){
8390

8491
this.dispatchEvent(new CustomEvent("connect"));
8592
}
86-
8793
}
8894

8995
async #revokeButtonClick(){
@@ -114,33 +120,40 @@ export class DynamicsAuthorizationElement extends UmbElementMixin(LitElement){
114120

115121
render(){
116122
return html`
117-
<div>
118-
${this._oauthSetup.isConnected ?
119-
html`
120-
<span>
121-
<b>Connected</b>: ${this.#settingsModel?.fullName}
122-
</span>
123-
` :
124-
html`
125-
<span>
126-
<b>Disconnected</b>
127-
</span>
128-
`}
129-
130-
</div>
131-
<div>
132-
<uui-button
133-
look="primary"
134-
label="Connect"
135-
?disabled=${this._oauthSetup?.isConnected}
136-
@click=${this.#connectButtonClick}></uui-button>
137-
<uui-button
138-
color="danger"
139-
look="secondary"
140-
label="Revoke"
141-
?disabled=${!this._oauthSetup?.isConnected}
142-
@click=${this.#revokeButtonClick}></uui-button>
143-
</div>
123+
${this._loading ?
124+
html`
125+
<div class="center loader"><uui-loader></uui-loader></div>
126+
` :
127+
html`
128+
<div>
129+
${this._oauthSetup.isConnected ?
130+
html`
131+
<span>
132+
<b>Connected</b>: ${this.#settingsModel?.fullName}
133+
</span>
134+
` :
135+
html`
136+
<span>
137+
<b>Disconnected</b>
138+
</span>
139+
`}
140+
141+
</div>
142+
<div>
143+
<uui-button
144+
look="primary"
145+
label="Connect"
146+
?disabled=${this._oauthSetup?.isConnected}
147+
@click=${this.#connectButtonClick}></uui-button>
148+
<uui-button
149+
color="danger"
150+
look="secondary"
151+
label="Revoke"
152+
?disabled=${!this._oauthSetup?.isConnected}
153+
@click=${this.#revokeButtonClick}></uui-button>
154+
</div>
155+
`
156+
}
144157
`;
145158
}
146159
}

src/Umbraco.Cms.Integrations.Crm.Dynamics/Client/src/modal/dynamics-form-modal.element.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@ import { customElement, html, repeat, state } from "@umbraco-cms/backoffice/exte
22
import { UmbModalBaseElement } from "@umbraco-cms/backoffice/modal";
33
import { DynamicsFormPickerModalData, DynamicsFormPickerModalValue } from "./dynamics.modal-token";
44
import { DYNAMICS_CONTEXT_TOKEN } from "../context/dynamics.context";
5-
import { DynamicsModuleModel, FormDtoModel, OAuthConfigurationDtoModel } from "@umbraco-integrations/dynamics/generated";
5+
import { FormDtoModel, OAuthConfigurationDtoModel } from "@umbraco-integrations/dynamics/generated";
66
import { UMB_NOTIFICATION_CONTEXT, UmbNotificationColor } from "@umbraco-cms/backoffice/notification";
77
import { UUIInputEvent } from "@umbraco-cms/backoffice/external/uui";
88
import { UmbPropertyValueChangeEvent } from "@umbraco-cms/backoffice/property-editor";
9-
import { UmbArrayState } from "@umbraco-cms/backoffice/observable-api";
109

1110
const elementName = "dynamics-forms-modal";
1211
enum testEnum {
@@ -18,7 +17,6 @@ enum testEnum {
1817
export default class DynamicsFormModalElement extends UmbModalBaseElement<DynamicsFormPickerModalData, DynamicsFormPickerModalValue>{
1918
#dynamicsContext!: typeof DYNAMICS_CONTEXT_TOKEN.TYPE;
2019
#settingsModel?: OAuthConfigurationDtoModel;
21-
//#selectionState: UmbArrayState<FormDtoModel> = [];
2220

2321
@state()
2422
private _loading = false;
@@ -50,9 +48,7 @@ export default class DynamicsFormModalElement extends UmbModalBaseElement<Dynami
5048
}
5149

5250
async #checkOAuthConfiguration(){
53-
if (!this.#settingsModel) {
54-
return;
55-
}
51+
if (!this.#settingsModel) return;
5652

5753
if (!this.#settingsModel.isAuthorized) {
5854
this._showError("Unable to connect to Dynamics. Please review the settings of the form picker property's data type.");
@@ -68,7 +64,6 @@ export default class DynamicsFormModalElement extends UmbModalBaseElement<Dynami
6864

6965
this._forms = data;
7066
this._filterForms = data;
71-
//this.#selectionState.setValue(data);
7267
this._loading = false;
7368
}
7469

src/Umbraco.Cms.Integrations.Crm.Dynamics/Client/src/property-editor/dynamics-form-picker-property-editor.element.ts

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -55,17 +55,18 @@ export class DynamicsFormPickerPropertyEditor extends UmbLitElement implements U
5555
async connectedCallback() {
5656
super.connectedCallback();
5757

58+
setTimeout(() => {
59+
this.#checkConfiguration();
60+
}, 3000);
61+
}
62+
63+
#checkConfiguration(){
5864
if (this.value == null || this.value.length == 0) return;
5965

6066
if(!this.#settingsModel) return;
6167
if(!this.#settingsModel.isAuthorized) this._showError("Unable to connect to Dynamics. Please review the settings of the form picker property's data type.");
6268

63-
await this.#getForm();
64-
}
65-
66-
async #getForm(){
67-
const model: FormDtoModel = JSON.parse(JSON.stringify(this.value));
68-
this.selectedForm = model;
69+
this.selectedForm = JSON.parse(JSON.stringify(this.value));
6970
}
7071

7172
#deleteForm(){
@@ -109,13 +110,19 @@ export class DynamicsFormPickerPropertyEditor extends UmbLitElement implements U
109110
</div>
110111
` :
111112
html`
112-
<div>
113-
<uui-ref-node-form name=${this.selectedForm?.name ?? ""}>
114-
<uui-action-bar slot="actions">
115-
<uui-button label="Remove" @click=${this.#deleteForm}>Remove</uui-button>
116-
</uui-action-bar>
117-
</uui-ref-node-form>
118-
</div>
113+
${this.selectedForm ?
114+
html`
115+
<div>
116+
<uui-ref-node-form name=${this.selectedForm.name}>
117+
<uui-action-bar slot="actions">
118+
<uui-button label="Remove" @click=${this.#deleteForm}>Remove</uui-button>
119+
</uui-action-bar>
120+
</uui-ref-node-form>
121+
</div>
122+
` :
123+
html`
124+
<div class="center loader"><uui-loader></uui-loader></div>
125+
`}
119126
`}
120127
`;
121128
}

0 commit comments

Comments
 (0)