Skip to content

Commit bac1622

Browse files
Disabling fields, add field description
1 parent 66f0362 commit bac1622

File tree

6 files changed

+31
-6
lines changed

6 files changed

+31
-6
lines changed

src/controls/dynamicForm/DynamicForm.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ export class DynamicForm extends React.Component<IDynamicFormProps, IDynamicForm
260260

261261
//getting all the fields information as part of get ready process
262262
private getFieldInformations = async (): Promise<void> => {
263-
const { context, listId, listItemId } = this.props;
263+
const { context, listId, listItemId, disabledFields } = this.props;
264264
let contentTypeId = this.props.contentTypeId;
265265
//let arrayItems: { key: string; name: string }[] = [];
266266
try {
@@ -418,7 +418,7 @@ export class DynamicForm extends React.Component<IDynamicFormProps, IDynamicForm
418418
fieldTitle: field.Title,
419419
fieldDefaultValue: defaultValue,
420420
context: this.props.context,
421-
disabled: this.props.disabled,
421+
disabled: this.props.disabled || (disabledFields && disabledFields.indexOf(field.InternalName) > -1),
422422
listId: this.props.listId,
423423
columnInternalName: field.InternalName,
424424
label: field.Title,
@@ -428,7 +428,8 @@ export class DynamicForm extends React.Component<IDynamicFormProps, IDynamicForm
428428
Order: field.order,
429429
isRichText: richText,
430430
dateFormat: dateFormat,
431-
listItemId: listItemId
431+
listItemId: listItemId,
432+
description: field.Description
432433
});
433434
tempFields.sort((a, b) => a.Order - b.Order);
434435
}

src/controls/dynamicForm/IDynamicFormProps.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,8 @@ export interface IDynamicFormProps {
4242
* Used to execute WebSearch. If not provided SearchTab will not be available.
4343
*/
4444
//bingAPIKey?: string;
45+
/**
46+
* InternalName of fields that should be disabled
47+
*/
48+
disabledFields?: string[];
4549
}

src/controls/dynamicForm/dynamicField/DynamicField.tsx

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
7474
isRichText,
7575
//bingAPIKey,
7676
dateFormat,
77-
columnInternalName
77+
columnInternalName,
78+
description
7879
} = this.props;
7980

8081
const {
@@ -118,6 +119,7 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
118119
onBlur={this.onBlur}
119120
errorMessage={errorText}
120121
/>
122+
{ description && <div>{description}</div>}
121123
</div>;
122124

123125
case 'Note':
@@ -134,6 +136,7 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
134136
onChange={(newText) => { this.onChange(newText); return newText; }}
135137
isEditMode={disabled}>
136138
</RichText>
139+
{ description && <div>{description}</div>}
137140
{errorTextEl}
138141
</div>;
139142
}
@@ -153,6 +156,7 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
153156
onBlur={this.onBlur}
154157
errorMessage={errorText}
155158
/>
159+
{ description && <div>{description}</div>}
156160
</div>;
157161
}
158162

@@ -168,6 +172,7 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
168172
onChange={(e, option) => { this.onChange(option); }}
169173
onBlur={this.onBlur}
170174
errorMessage={errorText} />
175+
{ description && <div>{description}</div>}
171176
</div>;
172177

173178
case 'MultiChoice':
@@ -183,6 +188,7 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
183188
multiSelect
184189
onBlur={this.onBlur}
185190
errorMessage={errorText} />
191+
{ description && <div>{description}</div>}
186192
</div>;
187193

188194
case 'Location':
@@ -199,6 +205,7 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
199205
defaultValue={defaultValue}
200206
errorMessage={errorText}
201207
/>
208+
{ description && <div>{description}</div>}
202209
</div>;
203210

204211
case 'Lookup':
@@ -218,6 +225,7 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
218225
onSelectedItem={(newValue) => { this.onChange(newValue); }}
219226
context={context}
220227
/>
228+
{ description && <div>{description}</div>}
221229
{errorTextEl}
222230
</div>;
223231

@@ -238,6 +246,7 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
238246
onSelectedItem={(newValue) => { this.onChange(newValue); }}
239247
context={context}
240248
/>
249+
{ description && <div>{description}</div>}
241250
{errorTextEl}
242251
</div>;
243252

@@ -256,6 +265,7 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
256265
disabled={disabled}
257266
onBlur={this.onBlur}
258267
errorMessage={errorText} />
268+
{ description && <div>{description}</div>}
259269
</div>;
260270

261271
case 'Currency':
@@ -273,6 +283,7 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
273283
disabled={disabled}
274284
onBlur={this.onBlur}
275285
errorMessage={errorText} />
286+
{ description && <div>{description}</div>}
276287
</div>;
277288

278289
case 'DateTime':
@@ -301,6 +312,7 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
301312
onChange={(newDate) => { this.onChange(newDate); }}
302313
disabled={disabled} />
303314
}
315+
{ description && <div>{description}</div>}
304316
{errorTextEl}
305317
</div>;
306318

@@ -318,6 +330,7 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
318330
onChange={(e, checkedvalue) => { this.onChange(checkedvalue); }}
319331
disabled={disabled}
320332
/>
333+
{ description && <div>{description}</div>}
321334
{errorTextEl}
322335
</div>;
323336

@@ -340,6 +353,7 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
340353
onChange={(items) => { this.onChange(items); }}
341354
disabled={disabled}
342355
/>
356+
{ description && <div>{description}</div>}
343357
{errorTextEl}
344358
</div>;
345359

@@ -362,6 +376,7 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
362376
onChange={(items) => { this.onChange(items); }}
363377
disabled={disabled}
364378
/>
379+
{ description && <div>{description}</div>}
365380
{errorTextEl}
366381
</div>;
367382

@@ -387,6 +402,7 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
387402
onChange={(e, newText) => { this.onURLChange(newText, false); }}
388403
disabled={disabled} />
389404
</Stack>
405+
{ description && <div>{description}</div>}
390406
{errorTextEl}
391407
</div>;
392408

@@ -434,6 +450,7 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
434450
/>}
435451
</div>
436452
</Stack>
453+
{ description && <div>{description}</div>}
437454
{errorTextEl}
438455
</div>;
439456

@@ -457,6 +474,7 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
457474
isTermSetSelectable={false}
458475
/>
459476
</div>
477+
{ description && <div>{description}</div>}
460478
{errorTextEl}
461479
</div>;
462480

@@ -479,6 +497,7 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
479497
onChange={(newValue?: IPickerTerms) => { this.onChange(newValue); }}
480498
isTermSetSelectable={false} />
481499
</div>
500+
{ description && <div>{description}</div>}
482501
{errorTextEl}
483502
</div>;
484503
}

src/controls/dynamicForm/dynamicField/IDynamicFieldProps.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,5 @@ export interface IDynamicFieldProps {
3232
//bingAPIKey?: string;
3333
dateFormat?: DateFormat;
3434
additionalData?: FieldChangeAdditionalData;
35+
description?: string;
3536
}

src/services/SPService.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ export default class SPService implements ISPService {
489489
body: JSON.stringify({
490490
parameters: {
491491
RenderOptions: 2,
492-
ViewXml: `<View>
492+
ViewXml: `<View Scope='RecursiveAll'>
493493
<ViewFields>
494494
<FieldRef Name="${fieldName}"/>
495495
</ViewFields>

src/webparts/controlsTest/components/ControlsTest.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -845,7 +845,7 @@ export default class ControlsTest extends React.Component<IControlsTestProps, IC
845845
<div className={styles.controlsTest}>
846846
<div className="ms-font-m">
847847
{/* Change the list Id and list item id before you start to test this control */}
848-
{/* <DynamicForm context={this.props.context} listId={"3071c058-549f-461d-9d73-8b9a52049a80"} listItemId={1} onCancelled={() => { console.log('Cancelled'); }} onSubmitted={async (listItem) => { let itemdata = await listItem.get(); console.log(itemdata["ID"]); }}></DynamicForm> */}
848+
<DynamicForm disabledFields={["TCorpDocumentType", "TCorpOrganisation", "TCorpPortalType", "TCorpReportType"]} context={this.props.context} contentTypeId="0x01010026CA1D190AC5324FBDB0BAD58CFAB19B0600862ABFDFDFDA2C42BC8301545D71FA46" listId={"c07d454d-6a5b-4182-b34b-501fb037fa78"} listItemId={24} onCancelled={() => { console.log('Cancelled'); }} onSubmitted={async (listItem) => { let itemdata = await listItem.get(); console.log(itemdata["ID"]); }}></DynamicForm>
849849
</div>
850850
<WebPartTitle displayMode={this.props.displayMode}
851851
title={this.props.title}

0 commit comments

Comments
 (0)