2
0
mirror of https://github.com/frappe/books.git synced 2024-09-20 03:29:00 +00:00

fix(ui): sticky quick edit form header

- fix quick search create routing
This commit is contained in:
18alantom 2023-03-15 11:01:48 +05:30
parent a11384a2d6
commit 6719c070e1
2 changed files with 34 additions and 25 deletions

View File

@ -5,7 +5,17 @@
> >
<!-- Quick edit Tool bar --> <!-- Quick edit Tool bar -->
<div <div
class="flex items-center justify-between px-4 h-row-largest" class="
flex
items-center
justify-between
px-4
h-row-largest
sticky
top-0
bg-white
"
style="z-index: 1"
:class="{ 'border-b': showName }" :class="{ 'border-b': showName }"
> >
<!-- Close Button and Status Text --> <!-- Close Button and Status Text -->

View File

@ -72,11 +72,12 @@ export function getGroupLabelMap() {
}; };
} }
async function openFormEditDoc(schemaName: string, fyo: Fyo) { function getCreateAction(fyo: Fyo, schemaName: string, initData?: RawValueMap) {
const doc = fyo.doc.getNewDoc(schemaName); return async function action() {
const name = doc.name; const doc = fyo.doc.getNewDoc(schemaName, initData);
const route = getFormRoute(schemaName, doc.name!);
routeTo(`/edit/${schemaName}/${name}`); await routeTo(route);
};
} }
function getCreateList(fyo: Fyo): SearchItem[] { function getCreateList(fyo: Fyo): SearchItem[] {
@ -97,9 +98,7 @@ function getCreateList(fyo: Fyo): SearchItem[] {
({ ({
label: fyo.schemaMap[schemaName]?.label, label: fyo.schemaMap[schemaName]?.label,
group: 'Create', group: 'Create',
action() { action: getCreateAction(fyo, schemaName),
openFormEditDoc(schemaName, fyo);
},
} as SearchItem) } as SearchItem)
); );
@ -107,16 +106,12 @@ function getCreateList(fyo: Fyo): SearchItem[] {
{ {
label: t`Sales Payments`, label: t`Sales Payments`,
schemaName: ModelNameEnum.Payment, schemaName: ModelNameEnum.Payment,
route: `/list/Payment/${t`Sales Payments`}`,
create: createFilters.SalesPayments, create: createFilters.SalesPayments,
filter: routeFilters.SalesPayments,
}, },
{ {
label: t`Purchase Payments`, label: t`Purchase Payments`,
schemaName: ModelNameEnum.Payment, schemaName: ModelNameEnum.Payment,
route: `/list/Payment/${t`Purchase Payments`}`,
create: createFilters.PurchasePayments, create: createFilters.PurchasePayments,
filter: routeFilters.PurchasePayments,
}, },
{ {
label: t`Customers`, label: t`Customers`,
@ -140,30 +135,28 @@ function getCreateList(fyo: Fyo): SearchItem[] {
label: t`Sales Items`, label: t`Sales Items`,
schemaName: ModelNameEnum.Item, schemaName: ModelNameEnum.Item,
create: createFilters.SalesItems, create: createFilters.SalesItems,
filter: routeFilters.SalesItems,
}, },
{ {
label: t`Purchase Items`, label: t`Purchase Items`,
schemaName: ModelNameEnum.Item, schemaName: ModelNameEnum.Item,
create: createFilters.PurchaseItems, create: createFilters.PurchaseItems,
filter: routeFilters.PurchaseItems,
}, },
{ {
label: t`Items`, label: t`Items`,
schemaName: ModelNameEnum.Item, schemaName: ModelNameEnum.Item,
create: createFilters.Items, create: createFilters.Items,
filter: routeFilters.Items,
}, },
].map(({ label, filter, create, schemaName }) => { ].map(({ label, filter, create, schemaName }) => {
const route = { let action: Function;
path: `/list/${schemaName}/${label}`, if (!filter) {
query: { filters: JSON.stringify(filter) }, action = getCreateAction(fyo, schemaName, create);
}; } else {
const route = {
path: `/list/${schemaName}/${label}`,
query: { filters: JSON.stringify(filter) },
};
return { action = async () => {
label,
group: 'Create',
async action() {
await routeTo(route); await routeTo(route);
const doc = fyo.doc.getNewDoc(schemaName, create); const doc = fyo.doc.getNewDoc(schemaName, create);
const { openQuickEdit } = await import('src/utils/ui'); const { openQuickEdit } = await import('src/utils/ui');
@ -172,7 +165,13 @@ function getCreateList(fyo: Fyo): SearchItem[] {
name: doc.name as string, name: doc.name as string,
listFilters: filter, listFilters: filter,
}); });
}, };
}
return {
label,
group: 'Create',
action,
} as SearchItem; } as SearchItem;
}); });