From 2a15d8e1aab5676e09ce73b8959998c6c3eb254e Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Fri, 19 Apr 2019 20:57:06 +0000 Subject: [PATCH] --- ayanova/devdocs/todo.txt | 16 ++++----- ayanova/src/App.vue | 2 +- ayanova/src/api/gzmenu.js | 40 +++++++++++---------- ayanova/src/views/About.vue | 7 ++-- ayanova/src/views/inventory-widget-edit.vue | 5 +-- ayanova/src/views/login.vue | 2 +- 6 files changed, 39 insertions(+), 33 deletions(-) diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index 15fc24e9..4a2393eb 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -6,10 +6,10 @@ All platforms and browsers - STATUS: I'm going to do another update and see if it's handled properly - I thought they would update automatically via the loader code?!? - - - IMPLEMENTED / NOT TESTED: Login user name field auto capitalizes first character on phones, need that to not do it - - IMPLEMENTED / NOT TESTED: Login, doesn't have any ui if failed login, maybe a red frowny face icon? :) - - IMPLEMENTED / NOT TESTED: need clear buttons on pw and login - - IMPLEMENTED / NOT TESTED: Numeric input fields don't give numeric keyboard + - DONE: Login user name field auto capitalizes first character on phones, need that to not do it + - 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 Global Help link on *every* page - will change on each page @@ -37,13 +37,12 @@ All platforms and browsers - DONE Instead, change back to using data but add a third parameter to make sure that keys are unique somehow - DONE That way we can put anything into the data key again because in future might need whole objects etc (almost certainly will) - DONE Move ABOUT item to just above HELP in menu and remove from main NAV and make it navigate properly on click - - DONE Make about contextual and insert a menu item to view log - - TODO navigating through menu doesn't "back" properly when clicking back on browser controls + - DONE Make about contextual and insert a menu item to view log - WIRE up save menu item and add code to disable save on broken rules (and make red, disabled etc) - Wire up delete menu item - api code is stubbed out for delete, need to write that as well + - DONE TODO navigating through menu doesn't "back" properly when clicking back on browser controls - - DO I need to institute a back button? (in APP MODE?? installed to "desktop" on device will I be able to easily navigate without back and forward buttons) - 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 @@ -54,7 +53,7 @@ All platforms and browsers - 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? - - IMPLEMENTED / NOT TESTED: 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 - 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. - On login, sometimes the home page is not showing as localized! Some kind of timing issue or wrong event used to localize it or something. ?? @@ -67,6 +66,7 @@ All platforms and browsers End to end action - Code for new record to the server +TODO: INVESTIGATE - DO I need to institute a back button? (in APP MODE?? installed to "desktop" on device will I be able to easily navigate without back and forward buttons) 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 diff --git a/ayanova/src/App.vue b/ayanova/src/App.vue index c5efd214..946ab959 100644 --- a/ayanova/src/App.vue +++ b/ayanova/src/App.vue @@ -128,7 +128,7 @@ export default { mounted() { //redirect to login if not authenticated if (!this.$store.state.authenticated) { - this.$router.replace({ name: "login" }); + this.$router.push({ name: "login" }); } }, computed: { diff --git a/ayanova/src/api/gzmenu.js b/ayanova/src/api/gzmenu.js index 3233edd8..8a951897 100644 --- a/ayanova/src/api/gzmenu.js +++ b/ayanova/src/api/gzmenu.js @@ -87,7 +87,7 @@ export default { // // Deal with a menu change request // called from App.vue - handleAppClick(that, menuitem) { + handleAppClick(that, menuItem) { //Key will start with the string "app:" if it's a global application command that should be handled here, //otherwise it's a local command for a local form only //If there is any extended information required for the command it will be in the data property of the menu item @@ -95,41 +95,45 @@ export default { //each part is separated by a colon //Handle different items - if (!menuitem.disabled && menuitem.key.startsWith("app:")) { - var keyparts = menuitem.key.split(":"); - var cmd = keyparts[1]; - switch (cmd) { + var item = this.parseMenuItem(menuItem); + if (!item.disabled && item.owner == "app") { + switch (item.key) { case "help": - var helpurl = that.$store.state.helpUrl + menuitem.data; + var helpurl = that.$store.state.helpUrl + item.data; window.open(helpurl, "_blank"); break; case "logout": processLogout(); - that.$router.replace({ name: "login" }); + that.$router.push({ name: "login" }); break; case "nav": - that.$router.replace({ name: menuitem.data }); + that.$router.push({ name: item.data }); break; default: alert( "gzmenu:handleAppClick - unrecognized command [" + - menuitem.key + + menuItem.key + "]" ); } } }, /////////////////////////////// - // CONFIRM RELEVANT CLICK + // PARSE MENU ITEM CLICK // - // confirm the click is relevant - // to a contextual caller - // called by all forms except app.vue - isRelevantClick(menuitem) { - if (!menuitem.disabled && !menuitem.key.startsWith("app:")) { - return true; - } - return false; + // parse out the parts of a + // menu item from a click event + // + parseMenuItem(menuItem) { + //format is "AREA:KEY:UNIQUEID" + //and data is in data portion + var keyparts = menuItem.key.split(":"); + return { + owner: keyparts[0], + key: keyparts[1], + data: menuItem.data, + disabled: menuItem.disabled + }; } //new functions above here }; diff --git a/ayanova/src/views/About.vue b/ayanova/src/views/About.vue index 57f89ca5..fe624241 100644 --- a/ayanova/src/views/About.vue +++ b/ayanova/src/views/About.vue @@ -107,9 +107,10 @@ /* Xeslint-disable */ import aboutInfo from "../api/aboutinfo"; -// function clickHandler(item) { -// if (this.$gzmenu.isRelevantClick(item)) { -// alert("about.vue::context click: " + item.key); +// function clickHandler(menuItem) { +// var item = this.$gzmenu.parseMenuItem(menuItem); +// if (item.owner == "about" && !item.disabled) { +// alert("about::context click: " + item.key); // } // } diff --git a/ayanova/src/views/inventory-widget-edit.vue b/ayanova/src/views/inventory-widget-edit.vue index 1f14e67e..b00e03ad 100644 --- a/ayanova/src/views/inventory-widget-edit.vue +++ b/ayanova/src/views/inventory-widget-edit.vue @@ -130,8 +130,9 @@