mirror of
https://github.com/pnp/sp-dev-fx-webparts.git
synced 2025-03-06 03:39:19 +00:00
Fix date handling problems and redirect after edit
This commit is contained in:
parent
6c0fedc1c0
commit
2c861fbe78
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "react-form-webpart",
|
||||
"version": "1.0.4",
|
||||
"version": "1.0.5",
|
||||
"private": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
@ -45,4 +45,4 @@
|
||||
"gulp": "~3.9.1",
|
||||
"tslint-microsoft-contrib": "5.0.0"
|
||||
}
|
||||
}
|
||||
}
|
@ -154,13 +154,14 @@ export class ListFormService implements IListFormService {
|
||||
},
|
||||
};
|
||||
const formValues = this.GetFormValues(fieldsSchema, data, originalData);
|
||||
let createAttachmetns = this.GetAttachmentsCreate(data);
|
||||
let deleteAttachmetns = this.GetAttachmentsDelete(data, originalData);
|
||||
let createAttachments = this.GetAttachmentsCreate(data);
|
||||
let deleteAttachments = this.GetAttachmentsDelete(data, originalData);
|
||||
httpClientOptions.body = JSON.stringify({
|
||||
bNewDocumentUpdate: false,
|
||||
checkInComment: null,
|
||||
formValues,
|
||||
});
|
||||
|
||||
const endpoint = `${webUrl}/_api/web/GetList(@listUrl)/items(@itemId)/ValidateUpdateListItem()`
|
||||
+ `?@listUrl=${encodeURIComponent('\'' + listUrl + '\'')}&@itemId=%27${itemId}%27`;
|
||||
try {
|
||||
@ -170,12 +171,12 @@ export class ListFormService implements IListFormService {
|
||||
}
|
||||
let responseData = await response.json();
|
||||
responseData.AttachmentResponse = [];
|
||||
if (deleteAttachmetns.length > 0) {
|
||||
let deleteResponse = await this.deleteAttachments(webUrl, listUrl, itemId, deleteAttachmetns);
|
||||
if (deleteAttachments.length > 0) {
|
||||
let deleteResponse = await this.deleteAttachments(webUrl, listUrl, itemId, deleteAttachments);
|
||||
responseData.AttachmentResponse.push(deleteResponse);
|
||||
}
|
||||
if (createAttachmetns.length > 0) {
|
||||
let createResponse = await this.uploadAttachments(webUrl, listUrl, itemId, createAttachmetns);
|
||||
if (createAttachments.length > 0) {
|
||||
let createResponse = await this.uploadAttachments(webUrl, listUrl, itemId, createAttachments);
|
||||
responseData.AttachmentResponse.push(createResponse);
|
||||
}
|
||||
return responseData.d.ValidateUpdateListItem.results;
|
||||
@ -323,6 +324,15 @@ export class ListFormService implements IListFormService {
|
||||
HasException: false,
|
||||
};
|
||||
}
|
||||
else if (field.FieldType === "DateTime") {
|
||||
let dateValue = data[field.InternalName].split('').map((c) => { return (c.charCodeAt(0) < 127) ? c : ''; }).join('');
|
||||
return {
|
||||
ErrorMessage: null,
|
||||
FieldName: field.InternalName,
|
||||
FieldValue: dateValue,
|
||||
HasException: false,
|
||||
};
|
||||
}
|
||||
else {
|
||||
return {
|
||||
ErrorMessage: null,
|
||||
|
@ -34,6 +34,29 @@ export default class ListFormWebPart extends BaseClientSideWebPart<IListFormWebP
|
||||
protected onInit(): Promise<void> {
|
||||
return super.onInit().then((_) => {
|
||||
this.listService = new ListService(this.context.spHttpClient);
|
||||
//Polyfill array find
|
||||
if (!Array.prototype["find"]) {
|
||||
Array.prototype["find"] = function (predicate) {
|
||||
if (this == null) {
|
||||
throw new TypeError('Array.prototype.find called on null or undefined');
|
||||
}
|
||||
if (typeof predicate !== 'function') {
|
||||
throw new TypeError('predicate must be a function');
|
||||
}
|
||||
var list = Object(this);
|
||||
var length = list.length >>> 0;
|
||||
var thisArg = arguments[1];
|
||||
var value;
|
||||
|
||||
for (var i = 0; i < length; i++) {
|
||||
value = list[i];
|
||||
if (predicate.call(thisArg, value, i, list)) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -35,7 +35,7 @@ export default class DateFormField extends React.Component<IDateFormFieldProps,
|
||||
public componentDidUpdate(prevProps: IDateFormFieldProps, prevState: IDateFormFieldState) {
|
||||
//Component Value property got updated from List State
|
||||
if (this.props.value && prevProps.value != this.props.value) {
|
||||
let momentDate = moment(this.props.value);
|
||||
let momentDate = moment(this.props.value, moment.localeData(this.props.locale).longDateFormat('L'));
|
||||
this.setState({
|
||||
hours: momentDate.hour(),
|
||||
minutes: momentDate.minute(),
|
||||
|
@ -38,7 +38,7 @@ const SPFieldTaxonomyEdit: React.SFC<ISPFormFieldProps> = (props) => {
|
||||
initialValues={terms}
|
||||
context={context}
|
||||
onChange={(items) => props.valueChanged(getUpdatedValue(items))}
|
||||
isTermSetSelectable={false} />
|
||||
isTermSetSelectable={false} />;
|
||||
};
|
||||
|
||||
function getUpdatedValue(terms) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user