From 826a72e1e5d841046b40b185035cc9f3b75059a5 Mon Sep 17 00:00:00 2001 From: 18alantom <2.alan.tom@gmail.com> Date: Fri, 30 Jun 2023 11:57:43 +0530 Subject: [PATCH] incr: route to lastRoute on open - add file Misc singles doc --- fyo/model/types.ts | 2 ++ models/baseModels/Misc.ts | 8 ++++++++ models/index.ts | 4 +++- src/App.vue | 8 +++++--- src/router.ts | 6 ++++-- 5 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 models/baseModels/Misc.ts diff --git a/fyo/model/types.ts b/fyo/model/types.ts index 8c2f5279..e88c1db8 100644 --- a/fyo/model/types.ts +++ b/fyo/model/types.ts @@ -9,6 +9,7 @@ import type { AccountingSettings } from 'models/baseModels/AccountingSettings/Ac import type { Defaults } from 'models/baseModels/Defaults/Defaults'; import type { PrintSettings } from 'models/baseModels/PrintSettings/PrintSettings'; import type { InventorySettings } from 'models/inventory/InventorySettings'; +import { Misc } from 'models/baseModels/Misc'; /** * The functions below are used for dynamic evaluation @@ -55,6 +56,7 @@ export interface SinglesMap { InventorySettings?: InventorySettings; PrintSettings?: PrintSettings; Defaults?: Defaults; + Misc?: Misc; [key: string]: Doc | undefined; } diff --git a/models/baseModels/Misc.ts b/models/baseModels/Misc.ts new file mode 100644 index 00000000..87544f55 --- /dev/null +++ b/models/baseModels/Misc.ts @@ -0,0 +1,8 @@ +import { Doc } from 'fyo/model/doc'; +import { HiddenMap } from 'fyo/model/types'; + +export class Misc extends Doc { + openCount?: number; + useFullWidth?: boolean; + override hidden: HiddenMap = {}; +} diff --git a/models/index.ts b/models/index.ts index fbebae43..e2009b84 100644 --- a/models/index.ts +++ b/models/index.ts @@ -7,12 +7,14 @@ import { Defaults } from './baseModels/Defaults/Defaults'; import { Item } from './baseModels/Item/Item'; import { JournalEntry } from './baseModels/JournalEntry/JournalEntry'; import { JournalEntryAccount } from './baseModels/JournalEntryAccount/JournalEntryAccount'; +import { Misc } from './baseModels/Misc'; import { Party } from './baseModels/Party/Party'; import { Payment } from './baseModels/Payment/Payment'; import { PaymentFor } from './baseModels/PaymentFor/PaymentFor'; import { PriceList } from './baseModels/PriceList/PriceList'; import { PriceListItem } from './baseModels/PriceList/PriceListItem'; import { PrintSettings } from './baseModels/PrintSettings/PrintSettings'; +import { PrintTemplate } from './baseModels/PrintTemplate'; import { PurchaseInvoice } from './baseModels/PurchaseInvoice/PurchaseInvoice'; import { PurchaseInvoiceItem } from './baseModels/PurchaseInvoiceItem/PurchaseInvoiceItem'; import { SalesInvoice } from './baseModels/SalesInvoice/SalesInvoice'; @@ -32,7 +34,6 @@ import { StockLedgerEntry } from './inventory/StockLedgerEntry'; import { StockMovement } from './inventory/StockMovement'; import { StockMovementItem } from './inventory/StockMovementItem'; -import { PrintTemplate } from './baseModels/PrintTemplate'; export const models = { Account, AccountingLedgerEntry, @@ -43,6 +44,7 @@ export const models = { Item, JournalEntry, JournalEntryAccount, + Misc, Party, Payment, PaymentFor, diff --git a/src/App.vue b/src/App.vue index 843f63cd..9f7e9883 100644 --- a/src/App.vue +++ b/src/App.vue @@ -232,13 +232,15 @@ export default defineComponent({ const { onboardingComplete } = await fyo.doc.getDoc('GetStarted'); const { hideGetStarted } = await fyo.doc.getDoc('SystemSettings'); + let route = '/get-started'; if (hideGetStarted || onboardingComplete) { - await routeTo('/'); - } else { - await routeTo('/get-started'); + route = '/'; } + + await routeTo(localStorage.getItem('lastRoute') || route); }, async showDbSelector(): Promise { + localStorage.clear(); fyo.config.set('lastSelectedFilePath', null); fyo.telemetry.stop(); await fyo.purgeCache(); diff --git a/src/router.ts b/src/router.ts index 4a276434..9fed1277 100644 --- a/src/router.ts +++ b/src/router.ts @@ -10,9 +10,9 @@ import QuickEditForm from 'src/pages/QuickEditForm.vue'; import Report from 'src/pages/Report.vue'; import Settings from 'src/pages/Settings/Settings.vue'; import TemplateBuilder from 'src/pages/TemplateBuilder/TemplateBuilder.vue'; +import type { HistoryState } from 'vue-router'; import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'; import { historyState } from './utils/refs'; -import type { HistoryState } from 'vue-router'; const routes: RouteRecordRaw[] = [ { @@ -122,10 +122,12 @@ const routes: RouteRecordRaw[] = [ const router = createRouter({ routes, history: createWebHistory() }); -router.afterEach(() => { +router.afterEach(({ fullPath }) => { const state = history.state as HistoryState; historyState.forward = !!state.forward; historyState.back = !!state.back; + + localStorage.setItem('lastRoute', fullPath); }); export default router;