This commit is contained in:
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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
|
|
||||||
}
|
|
||||||
]
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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: {}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user