From 9d40b832d7ab41fe474d7fbbd5ef8b3c2f30cbb3 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 2 May 2019 20:54:07 +0000 Subject: [PATCH] --- ayanova/devdocs/todo.txt | 50 +++++++++++---------- ayanova/src/api/gzdialog.js | 25 ++++++++++- ayanova/src/api/gzform.js | 22 --------- ayanova/src/api/gzmenu.js | 42 ----------------- ayanova/src/views/About.vue | 18 ++++++-- ayanova/src/views/inventory-widget-edit.vue | 7 +-- 6 files changed, 67 insertions(+), 97 deletions(-) diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index ac9b1340..74f16e71 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -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: need clear buttons on pw and login - DONE: Numeric input fields don't give numeric keyboard - - MENU STUFF + - DONE: MENU STUFF - DONE Global Help link on *every* page - will change on each 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 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 Not authenticated at all 401 - 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 Object without readonly flag present so fully editable!!! WOOT! - DONE If no rights then should redirect back to HOME, NOT LOGIN!!! - - 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 user with no rights = SubContractorLimited - 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 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 Need prompt, are you sure?? - 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 - - - - 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 widget form now not localized title at menu top - 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 - - A small title top left that stands out might be approprpiate, also a icon beside it? + - 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 + - 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? - - 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. - 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 +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 - Code for new record to the server - 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: 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 -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 - 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?? @@ -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 - 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?? -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 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. diff --git a/ayanova/src/api/gzdialog.js b/ayanova/src/api/gzdialog.js index 3e8a4df9..5739109d 100644 --- a/ayanova/src/api/gzdialog.js +++ b/ayanova/src/api/gzdialog.js @@ -5,7 +5,7 @@ // utils and handlers // export default { - /////////////////////////////////// + /////////////////////////////////// // WIRE UP DIALOG EVENTS // // called once from app.vue only @@ -52,6 +52,29 @@ export default { 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 }; diff --git a/ayanova/src/api/gzform.js b/ayanova/src/api/gzform.js index 5098c8b0..b5ce2789 100644 --- a/ayanova/src/api/gzform.js +++ b/ayanova/src/api/gzform.js @@ -502,27 +502,5 @@ export default { 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 - } - ] - }); } }; diff --git a/ayanova/src/api/gzmenu.js b/ayanova/src/api/gzmenu.js index a957050f..b51421f1 100644 --- a/ayanova/src/api/gzmenu.js +++ b/ayanova/src/api/gzmenu.js @@ -185,48 +185,6 @@ export default { vm.$gzevent.$on("menu-click", function handleMenuClick(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 }; diff --git a/ayanova/src/views/About.vue b/ayanova/src/views/About.vue index b2f999e8..b53f7def 100644 --- a/ayanova/src/views/About.vue +++ b/ayanova/src/views/About.vue @@ -1,5 +1,5 @@