diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index 1c1af501..68753e8c 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -5,17 +5,8 @@ PRIORITY - ALWAYS Lowest level stuff first, i.e. TODO at server, api route chang WIFI change 5g channel to 52,56,60 and 2g channel to 8 recheck before doing as it seems to vary, maybe someone else's is auto switching +todo: check for license, if the server already got it recently then it should trigger the same result as if the user just force fetched it -todo: generate and send needs acknowledgement it's completed, maybe nav back to site again or..? -todo: show DBID on adm-license when no active license so can copy, or maybe make it a menu option copy dbid - - -todo: license email: -Thank you for your purchase! -Your AyaNova license key is ready to be installed. -AyaNova will fetch it automatically within 24 hours or you can force it to fetch immediately from the License page in AyaNova now. ---- -rockfishCore.Controllers.RvlController+dtoRavLicense <===call to string, apparently it doesn't, incorrect guess ##### todo: licensed UI is all over to the left, add centering code to it maybe diff --git a/ayanova/src/views/adm-license.vue b/ayanova/src/views/adm-license.vue index 852156c4..821e765c 100644 --- a/ayanova/src/views/adm-license.vue +++ b/ayanova/src/views/adm-license.vue @@ -278,7 +278,7 @@ export default { purchaseLink() { return ( "https://www.ayanova.com/purchase_AyaNova_online.htm?dbid=" + - this.currentLicenseInfo.serverDbId + window.$gz.store.state.globalSettings.serverDbId ); }, helpRestore() { @@ -382,6 +382,26 @@ export default { async fetchKey() { let vm = this; try { + //check if we're still on the same "page" or the server has a different license + //It might have been just installed by the server on it's own so check if we are not working with the most current license + let currentServerLicenseInfo = await window.$gz.api.get("license"); + if (currentServerLicenseInfo.error) { + throw currentServerLicenseInfo.error; + } + currentServerLicenseInfo = currentServerLicenseInfo.data.license; + console.log("cached:", vm.currentLicenseInfo); + console.log("at server:", currentServerLicenseInfo); + if ( + currentServerLicenseInfo.keySerial != vm.currentLicenseInfo.keySerial + ) { + //the license has changed behind the scenes so act like it was a successful fetch + await window.$gz.dialog.displayLTModalNotificationMessage( + "NewLicenseInstalled" + ); + vm.$router.push("/login"); + return; + } + //call fetch key on server let r = await window.$gz.api.upsertEx("license"); //r should just be a string response unless there is an error in which case it's an object @@ -475,6 +495,11 @@ function clickHandler(menuItem) { case "erase": m.vm.erase(); break; + case "copydbid": + window.$gz.util.copyToClipboard( + window.$gz.store.state.globalSettings.serverDbId + ); + break; default: window.$gz.eventBus.$emit( @@ -500,6 +525,14 @@ function generateMenu(vm) { menuItems: [] }; + //copy dbid + menuOptions.menuItems.push({ + title: vm.$ay.t("CopyDbId"), + icon: "fa-copy", + key: FORM_KEY + ":copydbid", + vm: vm + }); + if (vm.rights.change) { //Trigger license check menuOptions.menuItems.push({ @@ -535,14 +568,11 @@ function initForm(vm) { } vm.currentLicenseInfo = res.data.license; - await fetchTranslatedText(vm); res = await window.$gz.api.get("license/database-empty"); if (res.error) { throw res.error; } vm.dbIsEmpty = res.data; - - // await populateSelectionLists(vm); } catch (err) { reject(err); } @@ -581,7 +611,8 @@ function fetchTranslatedText(vm) { "NewLicenseInstalled", "NewLicenseNotFound", "HelpReleaseKey", - "HelpRestore" + "HelpRestore", + "CopyDbId" ]); } diff --git a/ayanova/src/views/ay-evaluate.vue b/ayanova/src/views/ay-evaluate.vue index 488a5e77..edd211dc 100644 --- a/ayanova/src/views/ay-evaluate.vue +++ b/ayanova/src/views/ay-evaluate.vue @@ -147,7 +147,7 @@ export default { supportLink() { return ( "https://contact.ayanova.com/contact?dbid=" + - window.$gz.store.state.globalSettings.dbId + window.$gz.store.state.globalSettings.serverDbId ); }, async generate() {