diff --git a/src/admin/public/style.css b/src/admin/public/style.css index a6bc145..8dee3f1 100644 --- a/src/admin/public/style.css +++ b/src/admin/public/style.css @@ -444,6 +444,22 @@ pre { font-size: 0.8rem; white-space: pre-wrap; word-break: break-all; max-width flex-wrap: wrap; } +.pf-location-selects { + display: flex; + gap: 0.4rem; + flex-wrap: wrap; +} + +.pf-location-selects select { + flex: 1; + min-width: 120px; + padding: 0.4rem; + border: 1px solid #d1d5db; + border-radius: 6px; + font-size: 0.85rem; + background: #fff; +} + .pf-loc-tag { display: inline-block; padding: 0.2rem 0.5rem; diff --git a/src/admin/routes/catalog.js b/src/admin/routes/catalog.js index 8c40971..1452b3d 100644 --- a/src/admin/routes/catalog.js +++ b/src/admin/routes/catalog.js @@ -29,7 +29,7 @@ router.get('/', async (req, res) => { id: l.id, cats: (cl[l.id]||[]).map(c=>({...c, subs: sc[c.id]||[]})) }; } - res.send(renderCatalog(tree, products, { loc, cat, sub }, categories, subcategories, msg||'', msg_type||'info')); + res.send(renderCatalog(tree, products, { loc, cat, sub }, categories, subcategories, locations, msg||'', msg_type||'info')); }); router.post('/locations', async (req, res) => { diff --git a/src/admin/views/catalog.js b/src/admin/views/catalog.js index d410f43..15e36de 100644 --- a/src/admin/views/catalog.js +++ b/src/admin/views/catalog.js @@ -1,13 +1,14 @@ import { layout, flash } from './layout.js'; import { renderProductEditForm } from './catalogProduct.js'; -export function renderCatalog(tree, products, filter, categories, subcategories, msg, msgType) { +export function renderCatalog(tree, products, filter, categories, subcategories, locations, msg, msgType) { const { loc, cat, sub } = filter; const catOptions = categories.map(c => ``).join(''); const subcatJson = JSON.stringify(subcategories.map(s => ({ id: s.id, name: s.name, category_id: s.category_id }))); - const addFormHtml = renderProductEditForm('/catalog/products', catOptions, subcatJson) + const locJson = JSON.stringify(locations || []); + const addFormHtml = renderProductEditForm('/catalog/products', catOptions, subcatJson, locations) .replace(/`/g, '\\`').replace(/\$/g, '\\$'); - const editFormHtml = renderProductEditForm('/catalog/products/__ID__/edit', catOptions, subcatJson) + const editFormHtml = renderProductEditForm('/catalog/products/__ID__/edit', catOptions, subcatJson, locations) .replace(/`/g, '\\`').replace(/\$/g, '\\$'); let treeHtml = '
All Products(' + products.length + ')
'; @@ -67,15 +68,93 @@ export function renderCatalog(tree, products, filter, categories, subcategories,