This commit is contained in:
2019-05-02 20:54:07 +00:00
parent 006fba9d29
commit 9d40b832d7
6 changed files with 67 additions and 97 deletions

View File

@@ -11,7 +11,7 @@ All platforms and browsers
- DONE: Login, doesn't have any ui if failed login, maybe a red frowny face icon? :) - DONE: Login, doesn't have any ui if failed login, maybe a red frowny face icon? :)
- DONE: need clear buttons on pw and login - DONE: need clear buttons on pw and login
- DONE: Numeric input fields don't give numeric keyboard - DONE: Numeric input fields don't give numeric keyboard
- MENU STUFF - DONE: MENU STUFF
- DONE Global Help link on *every* page - DONE Global Help link on *every* page
- will change on each page - will change on each page
- DONE Global Logout link on every page - DONE Global Logout link on every page
@@ -42,8 +42,7 @@ All platforms and browsers
- DONE WIRE up save menu item and add code to disable save on broken rules (and make red, disabled etc) - DONE WIRE up save menu item and add code to disable save on broken rules (and make red, disabled etc)
- DONE Move wire up event code from app.vue to gzmenu and call it from app.vue - DONE Move wire up event code from app.vue to gzmenu and call it from app.vue
### - RIGHTS in form state so can easily enable / disable etc ### - RIGHTS in form state so can easily enable / disable etc
- DONE INFO - SERVER will return on request of an object one of these: - DONE INFO - SERVER will return on request of an object one of these:
- DONE Not authenticated at all 401 - DONE Not authenticated at all 401
- DONE Redirect to login - DONE Redirect to login
@@ -52,15 +51,7 @@ All platforms and browsers
- DONE And client doesn't need to work out self owned etc - DONE And client doesn't need to work out self owned etc
- DONE Object without readonly flag present so fully editable!!! WOOT! - DONE Object without readonly flag present so fully editable!!! WOOT!
- DONE If no rights then should redirect back to HOME, NOT LOGIN!!! - DONE If no rights then should redirect back to HOME, NOT LOGIN!!!
- DONE user with no rights = SubContractorLimited - DONE user with no rights = SubContractorLimited
- TODO LIST OBJECT RESEARCH / DECISION
- TODO: ?? DECISION server widget lists and other lists
- Either the list should show items with alternate icons to EDIT if they are read only or...
- Use a generic OPEN icon and link instead and user doesn't see status until they open it.
- ReadFULL record but no change should show record read only
- To test use accounts: ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.InventoryLimited
- WidgetList should check if even possible to read any part of record, if not then no link to edit
- WidgetList should check if Own record possible and check the list object for owner ID (maybe all lists will need to provide owner ID's?)
- DONE BIG TODO: it would be far nicer if rights to objects were stored in a single JSON fragment that could be easily copied into javascript and c# - DONE BIG TODO: it would be far nicer if rights to objects were stored in a single JSON fragment that could be easily copied into javascript and c#
- DONE code automatically builds rights collection from json fragment so can use it between both projects and more easily update it in one central spot - DONE code automatically builds rights collection from json fragment so can use it between both projects and more easily update it in one central spot
- DONE Get that working then come back to the rest of the rights in client side - DONE Get that working then come back to the rest of the rights in client side
@@ -72,19 +63,13 @@ All platforms and browsers
- DONE api code is stubbed out for delete, need to write that as well - DONE api code is stubbed out for delete, need to write that as well
- DONE Need prompt, are you sure?? - DONE Need prompt, are you sure??
- DONE TODO navigating through menu doesn't "back" properly when clicking back on browser controls - DONE TODO navigating through menu doesn't "back" properly when clicking back on browser controls
- DONE widget form now not localized title at menu top - DONE widget form now not localized title at menu top
- Widget list, refresh page causes items per page to reset back to 5 from custom setting, it should cache that shit at least for a session anyway
- Although people probably would want this to be saved to survive sessions
- maybe it should save it per device locally only so that the customizations are local to the device so they can customize differently for different ui's?
- Or, maybe they always want to see 50 widgets no matter where but 10 clients??
- DONE Edit form title, does the edit form need a title so users know where they are at? - DONE Edit form title, does the edit form need a title so users know where they are at?
- currently widget edit doesn't have a particular look or title so if you are at the top of it on a small device you can't see the url fully or really know which page it is - DONE currently widget edit doesn't have a particular look or title so if you are at the top of it on a small device you can't see the url fully or really know which page it is
- A small title top left that stands out might be approprpiate, also a icon beside it? - DONE A small title top left that stands out might be approprpiate, also a icon beside it?
- DONE: Application name is all lowercase "ayanova" when installed to device, must be something in the manifest files? - DONE: Application name is all lowercase "ayanova" when installed to device, must be something in the manifest files?
- Check about page localization code, is it firing in the right place because on Edge and iPad firefox it didn't show localized at first until a refresh so it fetched the keys but didn't display properly - DONE: Check about page localization code, is it firing in the right place because on Edge and iPad firefox it didn't show localized at first until a refresh so it fetched the keys but didn't display properly
- Calendar on iPad in two occasions with ff and opera the calendar date could not be selected until a time was changed then the date worked. Before that it would always stay the same no matter what selection was made and the UI would not show a change on select or press of date either. - Calendar on iPad in two occasions with ff and opera the calendar date could not be selected until a time was changed then the date worked. Before that it would always stay the same no matter what selection was made and the UI would not show a change on select or press of date either.
- Navigation guard: navigate away with unsaved changes should warn and prevent but have option to continue anyway - Navigation guard: navigate away with unsaved changes should warn and prevent but have option to continue anyway
@@ -95,6 +80,23 @@ All platforms and browsers
End to end action End to end action
TODO: RIGHTS FOR LIST
- TODO LIST OBJECT RESEARCH / DECISION
- TODO: ?? DECISION server widget lists and other lists
- Either the list should show items with alternate icons to EDIT if they are read only or...
- Use a generic OPEN icon and link instead and user doesn't see status until they open it.
- ReadFULL record but no change should show record read only
- To test use accounts: ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.InventoryLimited
- WidgetList should check if even possible to read any part of record, if not then no link to edit
- WidgetList should check if Own record possible and check the list object for owner ID (maybe all lists will need to provide owner ID's?)
TODO: Persist view on return
- there's another item like this below somewhere.
- Widget list, refresh page causes items per page to reset back to 5 from custom setting, it should cache that shit at least for a session anyway
- Although people probably would want this to be saved to survive sessions
- maybe it should save it per device locally only so that the customizations are local to the device so they can customize differently for different ui's?
- Or, maybe they always want to see 50 widgets no matter where but 10 clients??
TODO: NEW WIDGET TODO: NEW WIDGET
- Code for new record to the server - Code for new record to the server
- Need a path to making a new record - Need a path to making a new record
@@ -110,7 +112,7 @@ TODO: INVESTIGATE - DO I need to institute a back button? (in APP MODE?? install
TODO: Delete widget button and rights stuff TODO: Delete widget button and rights stuff
TODO: History button, other AyaNova 7 example buttons all need to be there or their equivalent, do we need a top menu type thing? TODO: History button, other AyaNova 7 example buttons all need to be there or their equivalent, do we need a top menu type thing?
- Also Save button at bottom seems like an issue too - Also Save button at bottom seems like an issue too
TODO: Rights stuff for form if insufficient rights / read only etc
TODO: About AyaNova form should show the exact client browser and device info as much as possible as it also serves as the tech support info thing TODO: About AyaNova form should show the exact client browser and device info as much as possible as it also serves as the tech support info thing
- Maybe make a support info local class in client that can gather the correct info and then can be used to both display and to send to us for support with a click - Maybe make a support info local class in client that can gather the correct info and then can be used to both display and to send to us for support with a click
- Also add a tech support reporting form / button that will gather up support info and possibly also send it to us?? - Also add a tech support reporting form / button that will gather up support info and possibly also send it to us??
@@ -126,7 +128,7 @@ TODO: Grid / LIST VIEW = I know customers will want to control what shows in the
- I had a customer today request the Description field from unit show in the workorder service grid, it doesn't do that - I had a customer today request the Description field from unit show in the workorder service grid, it doesn't do that
- Customers probably want the option of picking what fields show and what don't - Customers probably want the option of picking what fields show and what don't
- Need to think this over, do I have defined columns or is the list just for display to select the record in which case can it just be one column with user selected values showing?? - Need to think this over, do I have defined columns or is the list just for display to select the record in which case can it just be one column with user selected values showing??
TODO: Move gzmenu popup and other notifications to their own file
TODO: Outstanding case with vuetify bug in clear button when readonly, check if fixed and if it isn't might need a workaround TODO: Outstanding case with vuetify bug in clear button when readonly, check if fixed and if it isn't might need a workaround
DON'T code the user options with the currency symbol etc until after it's all been worked out client side. Use static values instad in locale. DON'T code the user options with the currency symbol etc until after it's all been worked out client side. Use static values instad in locale.

View File

@@ -5,7 +5,7 @@
// utils and handlers // utils and handlers
// //
export default { export default {
/////////////////////////////////// ///////////////////////////////////
// WIRE UP DIALOG EVENTS // WIRE UP DIALOG EVENTS
// //
// called once from app.vue only // called once from app.vue only
@@ -52,6 +52,29 @@ export default {
timeout: 5000 timeout: 5000
}); });
}); });
},
////////////////////////////
//
//
confirmDelete(vm) {
//https://github.com/yariksav/vuetify-dialog#readme
return vm.$dialog.warning({
text: vm.$gzlocale.get("DeletePrompt"),
title: vm.$gzlocale.get("Delete"),
icon: "fa-exclamation-triangle",
actions: [
{
text: vm.$gzlocale.get("Cancel"),
key: false
},
{
text: vm.$gzlocale.get("Delete"),
color: "red",
key: true
}
]
});
} }
//new functions above here //new functions above here
}; };

View File

@@ -502,27 +502,5 @@ export default {
newState.vm.formState.readOnly = newState.readOnly; newState.vm.formState.readOnly = newState.readOnly;
} }
}); });
},
////////////////////////////
//
//
confirmDelete(vm) {
//https://github.com/yariksav/vuetify-dialog#readme
return vm.$dialog.warning({
text: vm.$gzlocale.get("DeletePrompt"),
title: vm.$gzlocale.get("Delete"),
icon: "fa-exclamation-triangle",
actions: [
{
text: vm.$gzlocale.get("Cancel"),
key: false
},
{
text: vm.$gzlocale.get("Delete"),
color: "red",
key: true
}
]
});
} }
}; };

View File

@@ -185,48 +185,6 @@ export default {
vm.$gzevent.$on("menu-click", function handleMenuClick(menuitem) { vm.$gzevent.$on("menu-click", function handleMenuClick(menuitem) {
self.handleAppClick(vm, menuitem); self.handleAppClick(vm, menuitem);
}); });
//Notifications: pops up and slowly disappears
///////////
//ERROR
vm.$gzevent.$on("notify-error", function handleNotifyWarn(msg) {
vm.$dialog.notify.info(msg, {
position: "top-right",
icon: "fa-exclamation-triangle",
timeout: 8000
});
});
///////////
//WARNING
vm.$gzevent.$on("notify-warning", function handleNotifyWarn(msg) {
vm.$dialog.notify.warning(msg, {
position: "top-right",
icon: "fa-exclamation",
timeout: 7000
});
});
///////////
//INFO
vm.$gzevent.$on("notify-info", function handleNotifyWarn(msg) {
vm.$dialog.notify.info(msg, {
position: "top-right",
icon: "fa-info-circle",
timeout: 6000
});
});
///////////
//SUCCESS
vm.$gzevent.$on("notify-success", function handleNotifyWarn(msg) {
vm.$dialog.notify.success(msg, {
position: "top-right",
icon: "fa-check-circle ",
timeout: 5000
});
});
} }
//new functions above here //new functions above here
}; };

View File

@@ -1,5 +1,5 @@
<template> <template>
<v-layout row> <v-layout row v-if="this.formState.ready">
<v-flex> <v-flex>
<v-card> <v-card>
<!-- <v-toolbar> <!-- <v-toolbar>
@@ -204,6 +204,7 @@ import aboutInfo from "../api/aboutinfo";
export default { export default {
beforeCreate() { beforeCreate() {
var vm = this;
this.$gzlocale.fetch([ this.$gzlocale.fetch([
"HelpAboutAyaNova", "HelpAboutAyaNova",
"ClientApp", "ClientApp",
@@ -221,7 +222,11 @@ export default {
"SupportedUntil", "SupportedUntil",
"LicensedOptions", "LicensedOptions",
"Log" "Log"
]); ]).then(() => (vm.formState.ready = true))
.catch(err => {
vm.formState.ready = true;
vm.$gzHandleFormError(err);
});
}, },
created() { created() {
this.$gzevent.$emit("menu-change", { this.$gzevent.$emit("menu-change", {
@@ -256,7 +261,14 @@ export default {
data() { data() {
return { return {
serverInfo: { license: { license: {} } }, serverInfo: { license: { license: {} } },
clientInfo: {} clientInfo: {},
formState: {
ready: false,
loading: true,
errorBoxMessage: null,
appError: null,
serverError: {}
}
}; };
} }
}; };

View File

@@ -260,10 +260,7 @@ export default {
]; ];
var vm = this; var vm = this;
this.$gzlocale this.$gzlocale
.fetch(ltKeysRequired) .fetch(ltKeysRequired)
// .then(function() {
// generateMenu(vm, );
// })
.then(() => (vm.formState.ready = true)) .then(() => (vm.formState.ready = true))
.catch(err => { .catch(err => {
vm.formState.ready = true; vm.formState.ready = true;
@@ -406,7 +403,7 @@ export default {
remove() { remove() {
var vm = this; var vm = this;
//Prompt: //Prompt:
vm.$gzform.confirmDelete(vm).then(dialogResult => { vm.$gzdialog.confirmDelete(vm).then(dialogResult => {
if (dialogResult == true) { if (dialogResult == true) {
//do the delete //do the delete
vm.formState.loading = true; vm.formState.loading = true;