mirror of
https://github.com/directus/directus.git
synced 2026-01-30 08:47:57 -05:00
Show errors for Save as Copy action (#11761)
* show errors for Save as Copy action * extract error handler for both save & saveAsCopy
This commit is contained in:
@@ -144,25 +144,7 @@ export function useItem(collection: Ref<string>, primaryKey: Ref<string | number
|
||||
edits.value = {};
|
||||
return response.data.data;
|
||||
} catch (err: any) {
|
||||
if (err?.response?.data?.errors) {
|
||||
validationErrors.value = err.response.data.errors
|
||||
.filter((err: APIError) => VALIDATION_TYPES.includes(err?.extensions?.code))
|
||||
.map((err: APIError) => {
|
||||
return err.extensions;
|
||||
});
|
||||
|
||||
const otherErrors = err.response.data.errors.filter(
|
||||
(err: APIError) => VALIDATION_TYPES.includes(err?.extensions?.code) === false
|
||||
);
|
||||
|
||||
if (otherErrors.length > 0) {
|
||||
otherErrors.forEach(unexpectedError);
|
||||
}
|
||||
} else {
|
||||
unexpectedError(err);
|
||||
}
|
||||
|
||||
throw err;
|
||||
saveErrorHandler(err);
|
||||
} finally {
|
||||
saving.value = false;
|
||||
}
|
||||
@@ -207,21 +189,33 @@ export function useItem(collection: Ref<string>, primaryKey: Ref<string | number
|
||||
|
||||
return primaryKeyField.value ? response.data.data[primaryKeyField.value.field] : null;
|
||||
} catch (err: any) {
|
||||
if (err?.response?.data?.errors) {
|
||||
validationErrors.value = err.response.data.errors
|
||||
.filter((err: APIError) => err?.extensions?.code === 'FAILED_VALIDATION')
|
||||
.map((err: APIError) => {
|
||||
return err.extensions;
|
||||
});
|
||||
} else {
|
||||
unexpectedError(err);
|
||||
throw err;
|
||||
}
|
||||
saveErrorHandler(err);
|
||||
} finally {
|
||||
saving.value = false;
|
||||
}
|
||||
}
|
||||
|
||||
function saveErrorHandler(err: any) {
|
||||
if (err?.response?.data?.errors) {
|
||||
validationErrors.value = err.response.data.errors
|
||||
.filter((err: APIError) => VALIDATION_TYPES.includes(err?.extensions?.code))
|
||||
.map((err: APIError) => {
|
||||
return err.extensions;
|
||||
});
|
||||
|
||||
const otherErrors = err.response.data.errors.filter(
|
||||
(err: APIError) => VALIDATION_TYPES.includes(err?.extensions?.code) === false
|
||||
);
|
||||
|
||||
if (otherErrors.length > 0) {
|
||||
otherErrors.forEach(unexpectedError);
|
||||
}
|
||||
} else {
|
||||
unexpectedError(err);
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
|
||||
async function archive() {
|
||||
if (!collectionInfo.value?.meta?.archive_field) return;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user