This commit is contained in:
2021-04-15 18:00:31 +00:00
parent ff56c48899
commit a5ddcb5017
2 changed files with 12 additions and 8 deletions

View File

@@ -228,19 +228,23 @@ todo: many biz objects are not using new PUT methodology
CURRENTLY DOING: error and ordering stuff
OVERALL
ORDERING AND ERRORS
- Must support doing it by ID instead, this is necessary and much better than hoping the order is consistent
ORDERING AND ERRORS
- New idea: since each graph item is saved one by one, the client knows which one it's sending so the Client should hydrate the correct collection error index
server should act like its' a standalone object when reporting errors
this way, no need to modify existing code at all (po etc)
- NO WON'T WORK: Must support doing it by ID instead, this is necessary and much better than hoping the order is consistent
NO, this can't work because a collection of new items all have no id so which would be which??
i.e. the server sets the error index by the ID not the order, the client checks by ID as well, this way it matters not what the physical order is
This would be the definitive resolution since it would then work with re-ordering
would require any currently index style errors to be re-worked (unless I add a new protocol atop i.e. Items[id:23].ScheduledUsers[id:2] which would be interpreted differently by the error system)
The forms though might have a problem with it since they are working very well with indexes right now
perhaps the server returns error in form of id, but the client translates it back to an index for actual display?
ErrorIdToIndex(blah) method
- make it consistent with all collections / go back and retro the others (PO, CONTRACT ETC)
make it consistent with all collections / go back and retro the others (PO, CONTRACT ETC)
- test partial save (and delete) with fail at each level (make up a fail if have to at server)
- test partial save (### and delete ###) with fail at each level (make up a fail if have to at server)
- Error messages should display correctly both in alert box and in each item's controls
- Test out role rights, login as various roles and ensure it works as expected
- once past this step then second pass at new features **that affect models** (not necessarily UI stuff just fields required etc)

View File

@@ -694,7 +694,7 @@ async function deleteItems(vm, err) {
`${API_BASE_URL}items/${vm.deletedGraphItems.items[i]}`
);
if (res.error) {
err.items.push(res.error);
err.items.push({ e: res.error, i: i });
err.error = true;
} else {
vm.deletedGraphItems.items.splice(i, 1);
@@ -727,7 +727,7 @@ async function saveItems(vm, err) {
const isPost = o.id == 0;
let res = await window.$gz.api.upsert(`${API_BASE_URL}items`, o);
if (res.error) {
err.items.push(res.error);
err.items.push({ e: res.error, i: i });
err.error = true;
if (isPost) {
//a post error precludes further operations on this item below
@@ -779,7 +779,7 @@ async function deleteScheduledUsers(vm, err) {
`${API_BASE_URL}items/scheduledusers/${vm.deletedGraphItems.scheduledUsers[i]}`
);
if (res.error) {
err.scheduledUsers.push(res.error);
err.scheduledUsers.push({ e: res.error, i: i });
err.error = true;
} else {
vm.deletedGraphItems.scheduledUsers.splice(i, 1);
@@ -802,7 +802,7 @@ async function saveScheduledUsers(vm, woitemindex, err) {
o
);
if (res.error) {
err.scheduledUsers.push(res.error);
err.scheduledUsers.push({ e: res.error, i: i });
err.error = true;
} else {
//update any server changed fields