diff --git a/ayanova/src/api/errorhandler.js b/ayanova/src/api/errorhandler.js index afd603dc..a5daf168 100644 --- a/ayanova/src/api/errorhandler.js +++ b/ayanova/src/api/errorhandler.js @@ -98,9 +98,16 @@ function decodeError(e, vm) { if (e.error) { const err = e.error; // { - // "code": "2002", - // "message": "See server log for details", - // "target": "Server internal error" + // "error": { + // "code": "2200", + // "details": [ + // { + // "message": "User not authorized for WorkOrder type object", + // "error": "2004" + // } + // ], + // "message": "ErrorAPI2200" + // } // } let msg = ""; if (err.code) { @@ -120,6 +127,12 @@ function decodeError(e, vm) { msg += err.message; msg += "\n"; } + + if (err.details) { + err.details.forEach(z => { + msg += `${z.error} ${z.message}\n`; + }); + } return msg; } diff --git a/ayanova/src/views/customer-workorder.vue b/ayanova/src/views/customer-workorder.vue index c5364a24..f20fa297 100644 --- a/ayanova/src/views/customer-workorder.vue +++ b/ayanova/src/views/customer-workorder.vue @@ -201,15 +201,20 @@ async function clickHandler(menuItem) { if (m.owner == FORM_KEY && !m.disabled) { switch (m.key) { case "report": - const res = await m.vm.$refs.reportSelector.open( - { - AType: window.$gz.type.WorkOrder, - selectedRowIds: [m.vm.obj.id] - }, - -100 //special code meaning customer workorder report which will be looked up at server - ); - if (res == null) { - return; + try { + const res = await m.vm.$refs.reportSelector.open( + { + AType: window.$gz.type.WorkOrder, + selectedRowIds: [m.vm.obj.id] + }, + -100 //special code meaning customer workorder report which will be looked up at server + ); + + if (res == null) { + return; + } + } catch (err) { + window.$gz.errorHandler.handleFormError(err, m.vm); } break; default: