From c596a82233f6b7bf6b69944f89cb134a572e14e8 Mon Sep 17 00:00:00 2001 From: Doxa Maps Date: Wed, 30 Sep 2026 07:43:18 +0000 Subject: [PATCH] Research Gallery: every tab's info names its strategy Each tabInfo row names its strategy literally (strategyKey), for the area scan, and MapInfo reads the bottom line and points from it. The rebuild of the consumers follows at landing, on the landed train. --- plugin-designs/doxa-maps-spa/src/tabInfo.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/plugin-designs/doxa-maps-spa/src/tabInfo.js b/plugin-designs/doxa-maps-spa/src/tabInfo.js index ffbf477c6..118eab48c 100644 --- a/plugin-designs/doxa-maps-spa/src/tabInfo.js +++ b/plugin-designs/doxa-maps-spa/src/tabInfo.js @@ -30,6 +30,10 @@ * ★ KEYS MUST NOT CONTAIN A DOT beyond the area separator: the gallery has no vue-i18n, so MapInfo * resolves through tStatic, which splits the path on "." and would never find a sentence-shaped key. */ +// STRATEGY: each row names its strategy literally (strategyKey). MapInfo reads .bottom, then .p1, .p2 … +// until the first missing key, so a row's point count lives in the catalogue alone (the same count in all 11 locales). +// The lead is the introduction. A row with examples shows EXAMPLES | STRATEGY tabs; a row without goes straight to the +// strategy; where a strategy exists the takeaway is not shown (it would say the same thing twice). // The UPG-100 zone's pre-generated packet ('full' variant) and card deck, shot once and shared: Simple // Research's packet is the same renderer, method and variant (usePosterPrints.printPacket, 'full'), so it // shows these pages too, CAPTIONED as an example zone, because their data is a UPG-100 zone and not a @@ -43,6 +47,7 @@ export const TAB_INFO = { storageKey: 'upg-100', pos: { side: '56px', narrow: { placement: 'top-left', side: '12px' } }, leadKey: 'mapInfo.tab.upg-100.lead', + strategyKey: 'mapInfo.tab.upg-100.strategy', takeawayKey: 'mapInfo.tab.upg-100.takeaway', noteKey: 'pins.approximate', examples: [ @@ -55,6 +60,7 @@ export const TAB_INFO = { storageKey: 'regions-dashboard', pos: { side: '56px', narrow: { placement: 'top-left', side: '8px' } }, leadKey: 'mapInfo.tab.regions-dashboard.lead', + strategyKey: 'mapInfo.tab.regions-dashboard.strategy', takeawayKey: 'mapInfo.tab.regions-dashboard.takeaway', // The note names India as the one country without prints: no sheet, no geometry, and 855 people // groups, too many to fit one poster legibly (library/data/country-posters.json carries that @@ -77,6 +83,7 @@ export const TAB_INFO = { // unclickable (rega, 1440). raise lifts the BUTTON over the bar; the pointer stays under it. pos: { top: '46px', raise: true }, leadKey: 'mapInfo.tab.dashboard-plus-grid.lead', + strategyKey: 'mapInfo.tab.dashboard-plus-grid.strategy', takeawayKey: 'mapInfo.tab.dashboard-plus-grid.takeaway', // Big Picture's export is a spreadsheet, so its example is a real excerpt of one (sr): the six // largest groups by population among those joinable locally, of the full list's 2,107. The column @@ -104,6 +111,7 @@ export const TAB_INFO = { trigger: 'control', pos: { top: '56px', side: '56px' }, leadKey: 'mapInfo.tab.research-map-plus-grid.lead', + strategyKey: 'mapInfo.tab.research-map-plus-grid.strategy', // No takeaway: this map's own view does not make a poster or a packet a reader can reach (its export // is behind the export switch), so the line that promised both is gone rather than reworded. noteKey: 'pins.approximate', @@ -117,6 +125,7 @@ export const TAB_INFO = { trigger: 'control', pos: { side: '56px' }, leadKey: 'mapInfo.tab.prayer-map.lead', + strategyKey: 'mapInfo.tab.prayer-map.strategy', takeawayKey: 'mapInfo.tab.prayer-map.takeaway', noteKey: 'pins.approximate', examples: [], @@ -126,6 +135,7 @@ export const TAB_INFO = { trigger: 'control', pos: { side: '56px', narrow: { side: '4px' } }, leadKey: 'mapInfo.tab.cities-internet.lead', + strategyKey: 'mapInfo.tab.cities-internet.strategy', takeawayKey: 'mapInfo.tab.cities-internet.takeaway', noteKey: 'pins.approximate', examples: [], @@ -135,6 +145,7 @@ export const TAB_INFO = { trigger: 'control', pos: { side: '56px', narrow: { side: '4px' } }, leadKey: 'mapInfo.tab.gospel-resources.lead', + strategyKey: 'mapInfo.tab.gospel-resources.strategy', takeawayKey: 'mapInfo.tab.gospel-resources.takeaway', noteKey: 'pins.approximate', examples: [],