diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index 094fdf32..cc9760fd 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -225,9 +225,20 @@ todo: many biz objects are not using new PUT methodology -CURRENTLY DOING: test partial +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 + 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) + + - 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 @@ -237,6 +248,7 @@ OVERALL - then full in front end and flow out to back end as required, remove any backend that was a defunct evolutionary path so no cruft left around - Keep working on front and back responds to front needs as I go - load and stress test on client + - ## Try to find every thing that will matter when more collections are added now, ensure a full flow from start to stop and everything in between to try to catch any gotchas now before get too deep into it ## todo: WorkOrderItemTask?? diff --git a/ayanova/src/components/work-order-items.vue b/ayanova/src/components/work-order-items.vue index 9d5c1557..42a76a0b 100644 --- a/ayanova/src/components/work-order-items.vue +++ b/ayanova/src/components/work-order-items.vue @@ -136,6 +136,7 @@ export default { workorderItemPriorityId: null, requestDate: null, warrantyService: false, + sequence: newIndex + 1, //indexes are zero based but sequences are visible to user so 1 based isDirty: true, expenses: [], labors: [], @@ -278,27 +279,29 @@ and it's probably not a big list to fill anyway return headers; }, itemList: function() { - return this.value.items.map((x, i) => { - return { - index: i, - id: x.id, - notes: x.notes, - quantityReceived: window.$gz.locale.decimalLocalized( - x.quantityReceived, - this.pvm.languageName - ), - status: x.workorderItemStatusId, //todo: get real status name etc here - requestDate: window.$gz.locale.utcDateToShortDateAndTimeLocalized( - x.requestDate, - this.pvm.timeZoneName, - this.pvm.languageName, - this.pvm.hour12 - ), - priority: x.workorderItemPriorityId, //todo: get actual priority, color etc here - warranty: x.warrantyService, - tags: x.tags - }; - }); + return this.value.items + .map((x, i) => { + return { + index: i, + id: x.id, + notes: x.notes, + quantityReceived: window.$gz.locale.decimalLocalized( + x.quantityReceived, + this.pvm.languageName + ), + status: x.workorderItemStatusId, //todo: get real status name etc here + requestDate: window.$gz.locale.utcDateToShortDateAndTimeLocalized( + x.requestDate, + this.pvm.timeZoneName, + this.pvm.languageName, + this.pvm.hour12 + ), + priority: x.workorderItemPriorityId, //todo: get actual priority, color etc here + warranty: x.warrantyService, + tags: x.tags + }; + }) + .sort((a, b) => a.sequence - b.sequence); }, formState: function() { return this.pvm.formState;