diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index cc9760fd..21be94f2 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -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) diff --git a/ayanova/src/views/svc-workorder.vue b/ayanova/src/views/svc-workorder.vue index 5dee4ce8..9acb8d23 100644 --- a/ayanova/src/views/svc-workorder.vue +++ b/ayanova/src/views/svc-workorder.vue @@ -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