This commit is contained in:
2021-06-28 23:17:10 +00:00
parent ae14e63dc2
commit 3d43aa3883
2 changed files with 127 additions and 67 deletions

View File

@@ -428,12 +428,19 @@ consider: duplicate workorder if to be replacement for templates needs ability t
remove big chunks of things all at once
bugbug: tags are not *displaying* when a record is opened until click in a field
Does not happen on devops which was posted June 17th so it happened after june 17th
happens with chrome or firefox locally but not on devops so it's a local code issue
Same browser as devops so not a browser issue
happening in all objects with tags
not happening in wiki
reveals only when a change to the form is made of some kind that triggers I guess formfieldchanged
event. Fuck.
Look at changes to tag control, maybe it's in there?
or in form() manager code
tag picker hasn't been modified since april 30 and only to change a font
bug isn't due to change in tag picker itself
I'm leaning toward a regression when updated tag picker source <v-autocomplete with vuetify
look into that aspect
smoking gun: Vue and vuetify were updated the day after posting to devops working version
check for another use of v-autocomplete and see if same issue to confirm then check for update since or bug reports on vuetify
todo: User duplicate not working, error about optionsobj

View File

@@ -191,52 +191,95 @@ export default {
vm.formState.readOnly = !vm.rights.change;
window.$gz.eventBus.$on("menu-click", clickHandler);
// //id 0 means create a new record don't load one
// if (vm.$route.params.recordid != 0) {
// //is there already an obj from a prior operation?
// if (vm.$route.params.obj) {
// //yes, no need to fetch it
// vm.name = vm.$route.params.name;
// vm.obj = vm.$route.params.obj;
// window.$gz.form.setFormState({
// vm: vm,
// loading: false
// });
// } else {
// await vm.getDataFromApi(vm.$route.params.recordid); //let getdata handle loading
// }
// } else {
// //New record so there has to be a object type and objectId in route
// // path: "/home-reviews/:recordid/:aType?/:objectId?",
// vm.obj.objectId = window.$gz.util.stringToIntOrNull(
// vm.$route.params.objectId
// );
// vm.obj.aType = window.$gz.util.stringToIntOrNull(
// vm.$route.params.aType
// );
// if (!vm.obj.objectId || !vm.obj.aType) {
// throw "AType and ObjectId are required to create a review";
// }
// vm.name = vm.$route.params.name;
// window.$gz.form.setFormState({
// vm: vm,
// loading: false
// });
// }
// if (!vm.name) {
// vm.name = await window.$gz.api.fetchBizObjectName(
// vm.obj.aType,
// vm.obj.objectId
// );
// }
// window.$gz.form.setFormState({
// vm: vm,
// dirty: false,
// valid: true
// });
let setDirty = false;
let setValid = true;
//id 0 means create a new record don't load one
if (vm.$route.params.recordid != 0) {
//is there already an obj from a prior operation?
if (vm.$route.params.obj) {
if (this.$route.params.obj) {
//yes, no need to fetch it
vm.name = vm.$route.params.name;
vm.obj = vm.$route.params.obj;
window.$gz.form.setFormState({
vm: vm,
loading: false
});
this.obj = this.$route.params.obj;
} else {
await vm.getDataFromApi(vm.$route.params.recordid); //let getdata handle loading
}
} else {
//New record so there has to be a object type and objectId in route
// path: "/home-reviews/:recordid/:aType?/:objectId?",
vm.obj.objectId = window.$gz.util.stringToIntOrNull(
vm.$route.params.objectId
);
vm.obj.aType = window.$gz.util.stringToIntOrNull(
vm.$route.params.aType
);
//Might be a duplicate and contain another record
if (this.$route.params.obj) {
this.obj = this.$route.params.obj;
this.obj.concurrency = undefined;
this.obj.id = 0;
setDirty = true;
} else {
//New record so there has to be a object type and objectId in route
// path: "/home-reviews/:recordid/:aType?/:objectId?",
vm.obj.objectId = window.$gz.util.stringToIntOrNull(
vm.$route.params.objectId
);
vm.obj.aType = window.$gz.util.stringToIntOrNull(
vm.$route.params.aType
);
if (!vm.obj.objectId || !vm.obj.aType) {
throw "AType and ObjectId are required to create a review";
if (!vm.obj.objectId || !vm.obj.aType) {
throw "AType and ObjectId are required to create a review";
}
vm.name = vm.$route.params.name;
}
vm.name = vm.$route.params.name;
window.$gz.form.setFormState({
vm: vm,
loading: false
});
}
if (!vm.name) {
vm.name = await window.$gz.api.fetchBizObjectName(
vm.obj.aType,
vm.obj.objectId
);
}
window.$gz.form.setFormState({
vm: vm,
dirty: false,
valid: true
loading: false,
dirty: setDirty,
valid: setValid
});
generateMenu(vm);
@@ -542,41 +585,51 @@ export default {
}
},
async duplicate() {
let vm = this;
if (!vm.canDuplicate || vm.$route.params.recordid == 0) {
return;
}
window.$gz.form.setFormState({
vm: vm,
loading: true
});
let url = API_BASE_URL + "duplicate/" + vm.$route.params.recordid;
try {
window.$gz.form.deleteAllErrorBoxErrors(vm);
let res = await window.$gz.api.upsert(url);
if (res.error) {
vm.formState.serverError = res.error;
window.$gz.form.setErrorBoxErrors(vm);
} else {
//Navigate to new record
this.$router.push({
name: "review-edit",
params: {
recordid: res.data.id,
obj: res.data // Pass data object to new form
}
});
//Navigate to new record
this.$router.push({
name: "review-edit",
params: {
recordid: 0,
obj: this.obj
}
} catch (ex) {
window.$gz.errorHandler.handleFormError(ex, vm);
} finally {
window.$gz.form.setFormState({
vm: vm,
loading: false
});
}
});
}
// async duplicate() {
// let vm = this;
// if (!vm.canDuplicate || vm.$route.params.recordid == 0) {
// return;
// }
// window.$gz.form.setFormState({
// vm: vm,
// loading: true
// });
// let url = API_BASE_URL + "duplicate/" + vm.$route.params.recordid;
// try {
// window.$gz.form.deleteAllErrorBoxErrors(vm);
// let res = await window.$gz.api.upsert(url);
// if (res.error) {
// vm.formState.serverError = res.error;
// window.$gz.form.setErrorBoxErrors(vm);
// } else {
// //Navigate to new record
// this.$router.push({
// name: "review-edit",
// params: {
// recordid: res.data.id,
// obj: res.data // Pass data object to new form
// }
// });
// }
// } catch (ex) {
// window.$gz.errorHandler.handleFormError(ex, vm);
// } finally {
// window.$gz.form.setFormState({
// vm: vm,
// loading: false
// });
// }
// }
//end methods
}