diff --git a/src/components/metadataEditor/metadataEditor.js b/src/components/metadataEditor/metadataEditor.js index 7cd3b907e28..a656adc49f3 100644 --- a/src/components/metadataEditor/metadataEditor.js +++ b/src/components/metadataEditor/metadataEditor.js @@ -38,35 +38,32 @@ function closeDialog() { } } -function submitUpdatedItem(form, item) { - function afterContentTypeUpdated() { +async function submitUpdatedItem(form, item) { + const afterContentTypeUpdated = () => { toast(globalize.translate('MessageItemSaved')); loading.hide(); closeDialog(); - } - + }; const apiClient = getApiClient(); - apiClient.updateItem(item).then(function () { - const newContentType = form.querySelector('#selectContentType').value || ''; + try { + await apiClient.updateItem(item); + const newContentType = form.querySelector('#selectContentType')?.value || ''; - if ((metadataEditorInfo.ContentType || '') !== newContentType) { - apiClient.ajax({ + await apiClient.ajax({ + url: apiClient.getUrl(`Items/${item.Id}/ContentType`, { + ContentType: newContentType + }), - url: apiClient.getUrl('Items/' + item.Id + '/ContentType', { - ContentType: newContentType - }), - - type: 'POST' + type: 'POST' + }); - }).then(function () { - afterContentTypeUpdated(); - }); - } else { - afterContentTypeUpdated(); - } - }); + afterContentTypeUpdated(); + } catch { + toast(globalize.translate('MessageItemSaveFailed')); + loading.hide(); + } } function getSelectedAirDays(form) { diff --git a/src/strings/en-us.json b/src/strings/en-us.json index 5377cbd88a3..0f02b3744e7 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -1123,6 +1123,7 @@ "MessageInvalidUser": "Invalid username or password. Please try again.", "MessageItemsAdded": "Items added.", "MessageItemSaved": "Item saved.", + "MessageItemSaveFailed": "Failed to save item", "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item or the global default value.", "MessageNoItemsAvailable": "No Items are currently available.", "MessageNoFavoritesAvailable": "No favorites are currently available.",