1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-06-05 22:09:38 +02:00

fix: Fix snackbar quando il salvataggio fallisce

This commit is contained in:
Maicol Battistini
2022-02-03 00:15:31 +01:00
parent 6ee6bff137
commit 0f462cd511
3 changed files with 52 additions and 11 deletions

View File

@@ -31,11 +31,13 @@ import type {
TextAreaT,
TextFieldT
} from '../../typings';
import {JSONAPI} from '../../typings';
import {
getFormData,
isFormValid,
showSnackbar
} from '../../utils';
import type {Select} from '../../WebComponents';
import DataTable from '../DataTable/DataTable';
import TableCell from '../DataTable/TableCell';
import TableColumn from '../DataTable/TableColumn';
@@ -43,7 +45,6 @@ import TableRow from '../DataTable/TableRow';
import LoadingButton from '../LoadingButton';
import Mdi from '../Mdi';
import Page from '../Page';
import {Select} from '../../WebComponents';
export type ColumnT = {
id?: string
@@ -388,14 +389,14 @@ export class RecordsPage extends Page {
}
this.rows.put(model.getId(), model);
loading.hide();
m.redraw();
await showSnackbar(__('Record salvato'), 4000);
}
} else {
loading.hide();
await showSnackbar(__('Campi non validi. Controlla i dati inseriti'));
}
loading.hide();
}
async setter(model: IModel, data: Collection<File | string>) {
@@ -410,16 +411,23 @@ export class RecordsPage extends Page {
await this.saveFields(model, relations, data);
// Save relations
for (const [relation, relatedModel] of Object.entries(relations)) {
const response = await relatedModel.save();
if (response.getModelId()) {
model.setRelation(relation, response.getModel());
try {
// Save relations
for (const [relation, relatedModel] of Object.entries(relations)) {
const response = await relatedModel.save();
if (response.getModelId()) {
model.setRelation(relation, response.getModel());
}
}
}
const response = await model.save();
return response.getModelId();
const response = await model.save();
return response.getModelId();
} catch (error) {
const {errors} = (error as JSONAPI.RequestError).response.data;
const errorMessage = errors.map((error_) => error_.detail)
.join(';\n');
void showSnackbar(__('Errore durante il salvataggio: :error', {error: errorMessage}), false);
}
}
// eslint-disable-next-line @typescript-eslint/require-await