Skip to content

Commit

Permalink
showing validation errors when server returns 400
Browse files Browse the repository at this point in the history
  • Loading branch information
Ducica committed Dec 2, 2024
1 parent 7880e08 commit b930733
Show file tree
Hide file tree
Showing 7 changed files with 46 additions and 45 deletions.
22 changes: 17 additions & 5 deletions oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/forms/hooks.js
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ export const useDepositApiClient = ({
errorMessage:
errorMessage ||
i18next.t(
"Draft saved with validation errors. Fields listed below that failed validation were not saved to the server"
"Draft saved with validation errors. Please correct the following issues and try again:"
),
errorPaths,
};
Expand All @@ -256,10 +256,22 @@ export const useDepositApiClient = ({
successMessage || i18next.t("Draft saved successfully.");
return response;
} catch (error) {
// handle 400 errors. Normally, axios would put messages in error.response. But for example
// offline Error message does not produce a response, so in this way we can display
// network error message
errorsObj["httpErrors"] = error?.response?.data?.message ?? error.message;
if (error?.response?.data?.errors?.length > 0) {
for (const err of error.response.data.errors) {
errorsObj = setIn(errorsObj, err.field, err.messages.join(" "));
}
errorsObj["BEvalidationErrors"] = {
errors: error.response.data.errors,
errorMessage:
errorMessage ||
i18next.t(
"Draft saved with validation errors. Please correct the following issues and try again:"
),
};
} else {
errorsObj["httpErrors"] =
error?.response?.data?.message ?? error.message;
}
return false;
} finally {
// put state changing calls together, in order to avoid multiple rerenders during form submit
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"api.draft":"API pracovního záznamu","api.latest":"API poslední verze záznamu","api.latest_html":"Stránka poslední verze záznamu","api.publish":"API pro publikování záznamu","api.record":"API této verze záznamu","api.self_html":"Stránka této verze záznamu","api.versions":"API všech verzí záznamu","JSON":"JSON","Record details":"Detaily záznamu","\n <a href=\"%(link)s\">Invenio</a>":"\n <a href=\"%(link)s\">Invenio</a>","New item":"Nový záznam","Edit item ":"Editace záznamu","Menu":"Menu","Close menu":"Zavřít menu","Requests":"Žádosti","Inbox":"Příchozí","Log in":"Přihlásit se","Sign up":"Registrovat se","My account":"Můj účet","Log out":"Odhlásit se","Search results":"Výsledky vyhledávání","Powered by\n <a href=\"%(link)s\">Invenio</a>":"Založeno na repozitářové platformě\n <a href=“%(link)s”>Invenio</a>","Remove field":"Odstranit položku","Language":"Jazyk","Search for a language by name (e.g \"eng\", \"fr\" or \"Polish\")":"Hledat jazyk dle jména","Add another language":"Přidat další jazyk","We couldn't find any matches for ":"Nenašli jsme žádné shody pro ","search":"hledat","Choose":"Vybrat","Selected records":"Vybrané záznamy","Something went wrong...":"Stala se nějaká chyba …","Search...":"Hledat …","No results found":"Nenalezeny žádné výsledky","Loading...":"Nahrávám …","Search External Database":"Hledat v externím zdroji","Search results from external API":"Hledat v externím zdroji","Draft saved with validation errors. Fields listed below that failed validation were not saved to the server":"Pracovní verze záznamu byla uložena s chybami. Následující pole nebyla uložena, prosím, opravte je a uložte znovu","Draft saved successfully.":"Pracovní záznam byl uložen.","Draft published successfully. Redirecting to record's detail page ...":"Pracovní záznam byl úspěšně publikován. Budete přesměrováni na stránku s detailem záznamu …","Draft deleted successfully. Redirecting to the main page ...":"Pracovní verze záznamu byla smazána. Za okamžik Vás přesměrujeme na hlavní stránku.","Draft was saved but could not be published due to following validation errors":"Koncept byl uložen, ale nemohl být publikován kvůli následujícím chybám ověření:","Start over":"Začít znovu","resultsPerPage":"Výsledků na stránku","Filters":"Filtry","Filter results":"Filtrovat výsledky","Sort by":"Řazení","Sort":"Řazení","Value":"Hodnota","totalResults_one":"{{count}} výsledek","totalResults_few":"{{count}} výsledky","totalResults_many":"{{count}} výsledků","totalResults_other":"{{count}} výsledků","Clear all filters":"Vymazat všechny filtry","totalResults_0":"{{count}} výsledek","totalResults_1":"{{count}} výsledky","totalResults_2":"{{count}} výsledků","Open definition":"Otevřít definici","YYYY":"RRRR","YYYY-MM":"RRRR-MM","YYYY-MM-DD":"RRRR-MM-DD","Format: YYYY-MM-DD/YYYY-MM-DD, YYYYY-MM/YYYY/MM or YYYY/YYYY.":"Formát: RRRR-MM-DD/RRRR-MM-DD, RRRR-MM/RRRR/MM nebo RRRR/RRRR.","Select date range":"Vyberte časové období","Format: YYYY-MM-DD, YYYYY-MM or YYYY.":"Formát: RRRR-MM-DD, RRRR-MM nebo RRRR.","Select date":"Vyberte datum","All document records":"Všechny záznamy s dokumentem","in":"v","Search":"Vyhledávání","Contact":"Kontakt","Powered by\n <a href=\"%(link)s\">Invenio</a>":"Založeno na technologii\n <a href=\"%(link)s\">Invenio</a>","Quick create":"Rychlé vytvoření","Actions":"Akce","Delete":"Smazat","Cancel":"Zrušit","Are you sure you wish delete this draft?":"Jste si jisti chcete tento koncept smazat?","If you delete the draft, the work you have done on it will be lost.":"Pokud koncept smažete, práce, kterou jste na něm vykonali, bude ztracena.","Previous Month":"Předchozí měsíc","Next Month":"Příští měsíc","Choose a date range":"Vyberte časové období","Write a date range or click on the calendar icon to select it":"Napište časové období nebo jej vyberte kliknutím na ikonu kalendáře.","Write a date or click on the calendar icon to select it":"Napište datum nebo jej vyberte kliknutím na ikonu kalendáře.","Preview":"Náhled","Publish":"Publikovat","Are you sure you wish to publish this draft?":"Jste si jisti že chcete tento koncept publikovat?","Save":"Uložit","Validate form":"Zkontrolovat formulář","api.files":"API souborů","Missing title":"Chybí název","Not set":"Není poskytnuto","Select: ":"Vybrat: ","Choose a date.":"Vyberte datum.","Date range.":"Časové období.","Single date.":"Jediné datum.","Choose the time interval in which the event took place.":"Vyberte časový interval, ve kterém se událost odehrála.","Choose one date.":"Vyberte jedno datum.","Choose date range (From - To).":"Vyberte časové období (Od - Do).","Choose a date from the calendar by clicking on the input.":"Vyberte datum z kalendáře kliknutím na vstup.","Year":"Rok","Year and month":"Rok a měsíc","Year, month and date":"Rok, měsíc a datum","is a required field":"je povinné pole","Items must be unique":"Položky musí být jedinečné","Gone":"Záznam smazán","\n The record you are trying to access was removed from %(sitename)s. The\n metadata of the record is kept for archival purposes.":"\n Záznam, který se snažíte zobrazit, byl smazán z repozitáře %(sitename)s. <br>Metadata\n záznamu jsou uložena pro archivní účely. <br>Potřebujete-li je, obraťte se na správce repozitáře.","You are previewing a new record version that has not yet been published.":"Prohlížíte si náhled nové verze záznamu, která ještě nebyla publikována.","Files":"Soubory","Your draft was saved. If you wish to preview it, please correct the following validation errors and click preview again:":"Váš koncept byl uložen. Pokud chcete zobrazit jeho náhled, opravte následující chyby ověření a znovu klikněte na náhled:","Once the record is published you will no longer be able to change record's files! However, you will still be able to update the record's metadata later.":"Jakmile bude záznam zveřejněn, již jej nebudete moci změnit soubory! Stále však budete moci aktualizovat metadata záznamu později.","Edit item":"Editace záznamu","File":"Soubor","Size":"Velikost","Your draft was saved. Redirecting to the preview page...":"Váš koncept byl uložen. Přesměrování na stránku náhledu...","Please provide an URL in valid format":"Zadejte prosím adresu URL v platném formátu","Identifiers and links":"Identifikátory a odkazy","metadata/originalRecord.label":"Odkaz na původní záznam","API":"API","Links":"Odkazy","Not found":"Nenalezeno","\n The record you are trying to access does not exist in this repository.":"\n Záznam, který se snažíte zobrazit, neexistuje v tomto repozitáři.","Permission denied":"Přístup odepřen","\n You do not have permissions to access this page on %(sitename)s.":"\n Nemáte oprávnění k zobrazení této stránky na %(sitename)s.","Copied!":"Zkopírováno!","Copy to clipboard failed!":"Kopírování se nezdařilo!","Export":"Exportovat","Export selection":"Exportovat výběr","Download file":"Stáhnout soubor","Remove":"Odstranit","Version: %(version)s":"Verze repozitáře: %(version)s","Filter data by date":"Filtrovat podle data","Reset":"Resetovat","You have no permission to create record in this community.":"Nemáte právo vytvořit záznam v této komunitě.","\n Reason: %(error)s":"\n Důvod: %(error)s","Type and press enter to search":"Zadejte a stiskněte Enter pro vyhledávání","Your draft has validation errors. Please correct them and try again:":"Váš koncept obsahuje chyby ověření. Opravte je a zkuste to znovu:","Delete draft":"Smazat koncept","Draft deleted successfully. Redirecting to your dashboard ...":"Koncept byl úspěšně smazán. Přesměrování na vaši nástěnku ..."}
{"api.draft":"API pracovního záznamu","api.latest":"API poslední verze záznamu","api.latest_html":"Stránka poslední verze záznamu","api.publish":"API pro publikování záznamu","api.record":"API této verze záznamu","api.self_html":"Stránka této verze záznamu","api.versions":"API všech verzí záznamu","JSON":"JSON","Record details":"Detaily záznamu","\n <a href=\"%(link)s\">Invenio</a>":"\n <a href=\"%(link)s\">Invenio</a>","New item":"Nový záznam","Edit item ":"Editace záznamu","Menu":"Menu","Close menu":"Zavřít menu","Requests":"Žádosti","Inbox":"Příchozí","Log in":"Přihlásit se","Sign up":"Registrovat se","My account":"Můj účet","Log out":"Odhlásit se","Search results":"Výsledky vyhledávání","Powered by\n <a href=\"%(link)s\">Invenio</a>":"Založeno na repozitářové platformě\n <a href=“%(link)s”>Invenio</a>","Remove field":"Odstranit položku","Language":"Jazyk","Search for a language by name (e.g \"eng\", \"fr\" or \"Polish\")":"Hledat jazyk dle jména","Add another language":"Přidat další jazyk","We couldn't find any matches for ":"Nenašli jsme žádné shody pro ","search":"hledat","Choose":"Vybrat","Selected records":"Vybrané záznamy","Something went wrong...":"Stala se nějaká chyba …","Search...":"Hledat …","No results found":"Nenalezeny žádné výsledky","Loading...":"Nahrávám …","Search External Database":"Hledat v externím zdroji","Search results from external API":"Hledat v externím zdroji","Draft saved with validation errors. Fields listed below that failed validation were not saved to the server":"Pracovní verze záznamu byla uložena s chybami. Následující pole nebyla uložena, prosím, opravte je a uložte znovu","Draft saved successfully.":"Pracovní záznam byl uložen.","Draft published successfully. Redirecting to record's detail page ...":"Pracovní záznam byl úspěšně publikován. Budete přesměrováni na stránku s detailem záznamu …","Draft deleted successfully. Redirecting to the main page ...":"Pracovní verze záznamu byla smazána. Za okamžik Vás přesměrujeme na hlavní stránku.","Draft was saved but could not be published due to following validation errors":"Koncept byl uložen, ale nemohl být publikován kvůli následujícím chybám ověření:","Start over":"Začít znovu","resultsPerPage":"Výsledků na stránku","Filters":"Filtry","Filter results":"Filtrovat výsledky","Sort by":"Řazení","Sort":"Řazení","Value":"Hodnota","totalResults_one":"{{count}} výsledek","totalResults_few":"{{count}} výsledky","totalResults_many":"{{count}} výsledků","totalResults_other":"{{count}} výsledků","Clear all filters":"Vymazat všechny filtry","totalResults_0":"{{count}} výsledek","totalResults_1":"{{count}} výsledky","totalResults_2":"{{count}} výsledků","Open definition":"Otevřít definici","YYYY":"RRRR","YYYY-MM":"RRRR-MM","YYYY-MM-DD":"RRRR-MM-DD","Format: YYYY-MM-DD/YYYY-MM-DD, YYYYY-MM/YYYY/MM or YYYY/YYYY.":"Formát: RRRR-MM-DD/RRRR-MM-DD, RRRR-MM/RRRR/MM nebo RRRR/RRRR.","Select date range":"Vyberte časové období","Format: YYYY-MM-DD, YYYYY-MM or YYYY.":"Formát: RRRR-MM-DD, RRRR-MM nebo RRRR.","Select date":"Vyberte datum","All document records":"Všechny záznamy s dokumentem","in":"v","Search":"Vyhledávání","Contact":"Kontakt","Powered by\n <a href=\"%(link)s\">Invenio</a>":"Založeno na technologii\n <a href=\"%(link)s\">Invenio</a>","Quick create":"Rychlé vytvoření","Actions":"Akce","Delete":"Smazat","Cancel":"Zrušit","Are you sure you wish delete this draft?":"Jste si jisti chcete tento koncept smazat?","If you delete the draft, the work you have done on it will be lost.":"Pokud koncept smažete, práce, kterou jste na něm vykonali, bude ztracena.","Previous Month":"Předchozí měsíc","Next Month":"Příští měsíc","Choose a date range":"Vyberte časové období","Write a date range or click on the calendar icon to select it":"Napište časové období nebo jej vyberte kliknutím na ikonu kalendáře.","Write a date or click on the calendar icon to select it":"Napište datum nebo jej vyberte kliknutím na ikonu kalendáře.","Preview":"Náhled","Publish":"Publikovat","Are you sure you wish to publish this draft?":"Jste si jisti že chcete tento koncept publikovat?","Save":"Uložit","Validate form":"Zkontrolovat formulář","api.files":"API souborů","Missing title":"Chybí název","Not set":"Není poskytnuto","Select: ":"Vybrat: ","Choose a date.":"Vyberte datum.","Date range.":"Časové období.","Single date.":"Jediné datum.","Choose the time interval in which the event took place.":"Vyberte časový interval, ve kterém se událost odehrála.","Choose one date.":"Vyberte jedno datum.","Choose date range (From - To).":"Vyberte časové období (Od - Do).","Choose a date from the calendar by clicking on the input.":"Vyberte datum z kalendáře kliknutím na vstup.","Year":"Rok","Year and month":"Rok a měsíc","Year, month and date":"Rok, měsíc a datum","is a required field":"je povinné pole","Items must be unique":"Položky musí být jedinečné","Gone":"Záznam smazán","\n The record you are trying to access was removed from %(sitename)s. The\n metadata of the record is kept for archival purposes.":"\n Záznam, který se snažíte zobrazit, byl smazán z repozitáře %(sitename)s. <br>Metadata\n záznamu jsou uložena pro archivní účely. <br>Potřebujete-li je, obraťte se na správce repozitáře.","You are previewing a new record version that has not yet been published.":"Prohlížíte si náhled nové verze záznamu, která ještě nebyla publikována.","Files":"Soubory","Your draft was saved. If you wish to preview it, please correct the following validation errors and click preview again:":"Váš koncept byl uložen. Pokud chcete zobrazit jeho náhled, opravte následující chyby ověření a znovu klikněte na náhled:","Once the record is published you will no longer be able to change record's files! However, you will still be able to update the record's metadata later.":"Jakmile bude záznam zveřejněn, již jej nebudete moci změnit soubory! Stále však budete moci aktualizovat metadata záznamu později.","Edit item":"Editace záznamu","File":"Soubor","Size":"Velikost","Your draft was saved. Redirecting to the preview page...":"Váš koncept byl uložen. Přesměrování na stránku náhledu...","Please provide an URL in valid format":"Zadejte prosím adresu URL v platném formátu","Identifiers and links":"Identifikátory a odkazy","metadata/originalRecord.label":"Odkaz na původní záznam","API":"API","Links":"Odkazy","Not found":"Nenalezeno","\n The record you are trying to access does not exist in this repository.":"\n Záznam, který se snažíte zobrazit, neexistuje v tomto repozitáři.","Permission denied":"Přístup odepřen","\n You do not have permissions to access this page on %(sitename)s.":"\n Nemáte oprávnění k zobrazení této stránky na %(sitename)s.","Copied!":"Zkopírováno!","Copy to clipboard failed!":"Kopírování se nezdařilo!","Export":"Exportovat","Export selection":"Exportovat výběr","Download file":"Stáhnout soubor","Remove":"Odstranit","Version: %(version)s":"Verze repozitáře: %(version)s","Filter data by date":"Filtrovat podle data","Reset":"Resetovat","You have no permission to create record in this community.":"Nemáte právo vytvořit záznam v této komunitě.","\n Reason: %(error)s":"\n Důvod: %(error)s","Type and press enter to search":"Zadejte a stiskněte Enter pro vyhledávání","Your draft has validation errors. Please correct them and try again:":"Váš koncept obsahuje chyby ověření. Opravte je a zkuste to znovu:","Delete draft":"Smazat koncept","Draft deleted successfully. Redirecting to your dashboard ...":"Koncept byl úspěšně smazán. Přesměrování na vaši nástěnku ...","Draft saved with validation errors. Please correct the following issues and try again:":"Koncept byl uložen s validačními chybami. Opravte následující problémy a zkuste to znovu:"}
Binary file modified oarepo_ui/translations/cs/LC_MESSAGES/messages.mo
Binary file not shown.
7 changes: 7 additions & 0 deletions oarepo_ui/translations/cs/LC_MESSAGES/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -574,3 +574,10 @@ msgstr "Smazat koncept"

msgid "Draft deleted successfully. Redirecting to your dashboard ..."
msgstr "Koncept byl úspěšně smazán. Přesměrování na vaši nástěnku ..."

msgid ""
"Draft saved with validation errors. Please correct the following issues and "
"try again:"
msgstr ""
"Koncept byl uložen s validačními chybami. Opravte následující problémy a "
"zkuste to znovu:"
5 changes: 5 additions & 0 deletions oarepo_ui/translations/en/LC_MESSAGES/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -626,3 +626,8 @@ msgstr ""

msgid "Draft deleted successfully. Redirecting to your dashboard ..."
msgstr ""

msgid ""
"Draft saved with validation errors. Please correct the following issues and "
"try again:"
msgstr ""
Binary file modified oarepo_ui/translations/messages.mo
Binary file not shown.
Loading

0 comments on commit b930733

Please sign in to comment.