This commit is contained in:
2021-04-15 19:12:14 +00:00
parent a5ddcb5017
commit 171ae84f5b
4 changed files with 35 additions and 27 deletions

View File

@@ -312,10 +312,10 @@ export default {
flagGraphItemForDelete: function(item) {
switch (item.atype) {
case window.$gz.type.WorkOrderItem:
this.deletedGraphItems.items.push(item.id);
this.deletedGraphItems.items.push(item);
break;
case window.$gz.type.WorkOrderItemScheduledUser:
this.deletedGraphItems.scheduledUsers.push(item.id);
this.deletedGraphItems.scheduledUsers.push(item);
break;
//todo: other grandchildren
@@ -668,7 +668,7 @@ async function saveState(vm, err) {
//it's new so save it
let res = await window.$gz.api.upsert(`${API_BASE_URL}states`, o);
if (res.error) {
err.states.push(res.error);
err.states.push(res.error);//only saves one at a time so no need for collection stuff here
err.error = true;
} else {
vm.obj.states[i] = res.data;
@@ -690,11 +690,14 @@ async function deleteItems(vm, err) {
}
//walk the array backwards as items may or may not be spliced out
for (var i = vm.deletedGraphItems.items.length - 1; i >= 0; i--) {
let res = await window.$gz.api.remove(
`${API_BASE_URL}items/${vm.deletedGraphItems.items[i]}`
);
const d = vm.deletedGraphItems.items[i];
let res = await window.$gz.api.remove(`${API_BASE_URL}items/${d.id}`);
if (res.error) {
err.items.push({ e: res.error, i: i });
err.items.push({
e: res.error,
objectIndex: d.objectIndex,
woItemIndex: d.woItemIndex
});
err.error = true;
} else {
vm.deletedGraphItems.items.splice(i, 1);
@@ -727,7 +730,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({ e: res.error, i: i });
err.items.push({ e: res.error, objectIndex: i });
err.error = true;
if (isPost) {
//a post error precludes further operations on this item below
@@ -775,11 +778,16 @@ async function saveItems(vm, err) {
async function deleteScheduledUsers(vm, err) {
//walk the array backwards as items may or may not be spliced out
for (var i = vm.deletedGraphItems.scheduledUsers.length - 1; i >= 0; i--) {
const d = vm.deletedGraphItems.scheduledUsers[i];
let res = await window.$gz.api.remove(
`${API_BASE_URL}items/scheduledusers/${vm.deletedGraphItems.scheduledUsers[i]}`
`${API_BASE_URL}items/scheduledusers/${d.id}`
);
if (res.error) {
err.scheduledUsers.push({ e: res.error, i: i });
err.scheduledUsers.push({
e: res.error,
objectIndex: d.objectIndex,
woItemIndex: d.woItemIndex
});
err.error = true;
} else {
vm.deletedGraphItems.scheduledUsers.splice(i, 1);
@@ -788,13 +796,13 @@ async function deleteScheduledUsers(vm, err) {
return err;
}
async function saveScheduledUsers(vm, woitemindex, err) {
let totalItems = vm.obj.items[woitemindex].scheduledUsers.length;
async function saveScheduledUsers(vm, woItemIndex, err) {
let totalItems = vm.obj.items[woItemIndex].scheduledUsers.length;
if (totalItems == 0) {
return err;
}
for (let i = 0; i < totalItems; i++) {
let o = vm.obj.items[woitemindex].scheduledUsers[i];
let o = vm.obj.items[woItemIndex].scheduledUsers[i];
if (o.isDirty) {
const isPost = o.id == 0;
let res = await window.$gz.api.upsert(
@@ -802,7 +810,11 @@ async function saveScheduledUsers(vm, woitemindex, err) {
o
);
if (res.error) {
err.scheduledUsers.push({ e: res.error, i: i });
err.scheduledUsers.push({
e: res.error,
objectIndex: i,
woItemIndex: woItemIndex
});
err.error = true;
} else {
//update any server changed fields