<div style="font-family: arial; font-size: 14px;"><div fr-original-style="" style="box-sizing: border-box;">Hi Bob,</div><div fr-original-style="" style="box-sizing: border-box;"><br fr-original-style="" style="box-sizing: border-box;"></div><div fr-original-style="" style="box-sizing: border-box;">I don't want to derail the current effort to enable swapping in a new mapbook from a configured list, but your comments are food for thought.</div><div fr-original-style="" style="box-sizing: border-box;"><br fr-original-style="" style="box-sizing: border-box;"></div><div fr-original-style="" style="box-sizing: border-box;">With GM v3 we moved away from the v2 "No coding needed (just XML)" to a little bit of code  (app.js, etc) to build a site.  I see the wisdom of the v3 approach as configuring (actually coding) the XML to do sophisticated things was getting pretty complicated.</div><div fr-original-style="" style="box-sizing: border-box;"><br fr-original-style="" style="box-sizing: border-box;"></div><div fr-original-style="" style="box-sizing: border-box;">But if you're configuring Search, it requires specifying the mapsource/layer name in the app.js, and that ties it to a particular mapbook.  If you are willing to do without search, it is possible to write a fairly generic app.js.  This is the reason I proposed the two mapbook-editing-*.xml mapbooks would be a super-set of the the existing mapbook.xml: all the functions in the app.js would continue to work as the mapsources referenced in the app.js would be present in all three mapbooks (creating a need to make sure they're in sync).</div><div fr-original-style="" style="box-sizing: border-box;"><br fr-original-style="" style="box-sizing: border-box;"></div><div fr-original-style="" style="box-sizing: border-box;">I expect those interested in implementing Editing would implement some kind of user login to make sure only some users could edit data.  If the user was authorized for editing, they would see additional layers in the Catalog (or at least the additional editing tools).  The way I've done this in the past is to have a login page and process the credentials in a scripting language such as PHP or Python.  The script would then deliver the index.html and the app.js.  The app.js would not load a static mapbook.xml but would instead reference a "mapbook.php" (or .py) script which would, based on the session credentials, generate the mapbook with or without the editing layers/tools.  There are security holes in this method, so data backups (and VPNs, etc) are a really good idea.</div><div fr-original-style="" style="box-sizing: border-box;"><br fr-original-style="" style="box-sizing: border-box;"></div><div fr-original-style="" style="box-sizing: border-box;">I'm not sure if your idea of loading/overlaying mapbook segments would improve the above process, but as I said, food for thought!</div><div fr-original-style="" style="box-sizing: border-box;"><br fr-original-style="" style="box-sizing: border-box;"></div><div fr-original-style="" style="box-sizing: border-box;">Thanks! </div><div fr-original-style="" style="box-sizing: border-box;">Brent</div><div fr-original-style="" style="box-sizing: border-box;"><br fr-original-style="" style="box-sizing: border-box;"></div><div fr-original-style="" style="box-sizing: border-box;"><br fr-original-style="" style="box-sizing: border-box;"></div><hr id="previousmessagehr" fr-original-style="" style="box-sizing: border-box; clear: both; user-select: none;"><div fr-original-style="" style="box-sizing: border-box;"><span fr-original-style="" style="box-sizing: border-box;"><strong fr-original-style="" style="box-sizing: border-box; font-weight: 700;">From</strong>: "Basques, Bob (CI-StPaul)" <bob.basques@ci.stpaul.mn.us><br fr-original-style="" style="box-sizing: border-box;"><strong fr-original-style="" style="box-sizing: border-box; font-weight: 700;">Sent</strong>: 5/23/21 9:46 AM<br fr-original-style="" style="box-sizing: border-box;"><strong fr-original-style="" style="box-sizing: border-box; font-weight: 700;">To</strong>: Dan Little <theduckylittle@gmail.com>, GeoMOOSE PSC <geomoose-psc@lists.osgeo.org><br fr-original-style="" style="box-sizing: border-box;"><strong fr-original-style="" style="box-sizing: border-box; font-weight: 700;">Subject</strong>: Re: [geomoose-psc] Examples / Demos / Mulitple Mapbooks</span></div><div fr-original-style="" style="box-sizing: border-box;"><br fr-original-style="" style="box-sizing: border-box;"></div><div fr-original-class="WordSection1" fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="" style="box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;">I would like to reinforce the idea of getting the multiple mapbooks capability, this should help with uptake on the end users behalf of all the new work coming out.  Easier to organize too.</p><p fr-original-class="MsoNormal" fr-original-style="" style="box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;"> So, related to this, does multiple mapbooks really mean swapping mapbooks, or will we be able to source multiple mapbooks at the same time, in one interface?   :c).   I can see business cases for isolating the editing functions as well as mixing them into a larger lookup interface.  So swapping of Mapbooks would certainly be used, but having separate mapbooks for lookup and editing??</p><p fr-original-class="MsoNormal" fr-original-style="" style="box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;"> I like the old way of mapbook= for swapping since it's bookmarkable.</p><p fr-original-class="MsoNormal" fr-original-style="" style="box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;"> Bobb</p><p fr-original-class="MsoNormal" fr-original-style="" style="box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;">  </p><div fr-original-style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in;" style="border-color: rgb(181, 196, 223) currentcolor currentcolor; border-style: solid none none; border-width: 1pt medium medium; border-image: none 100% / 1 / 0 stretch; padding: 3pt 0in 0in; box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;"><strong fr-original-style="" style="box-sizing: border-box; font-weight: 700;"><span fr-original-style="font-size:12.0pt;color:black;" style="font-size: 12pt; color: black; box-sizing: border-box;">From: </span></strong><span fr-original-style="font-size:12.0pt;color:black;" style="font-size: 12pt; color: black; box-sizing: border-box;">geomoose-psc <geomoose-psc-bounces@lists.osgeo.org> on behalf of Dan Little <theduckylittle@gmail.com><br fr-original-style="" style="box-sizing: border-box;"> <strong fr-original-style="" style="box-sizing: border-box; font-weight: 700;">Date: </strong>Saturday, May 22, 2021 at 10:36 AM<br fr-original-style="" style="box-sizing: border-box;"> <strong fr-original-style="" style="box-sizing: border-box; font-weight: 700;">To: </strong>"geomoose-psc@lists.osgeo.org" <geomoose-psc@lists.osgeo.org><br fr-original-style="" style="box-sizing: border-box;"> <strong fr-original-style="" style="box-sizing: border-box; font-weight: 700;">Subject: </strong>[geomoose-psc] Examples / Demos / Mulitple Mapbooks</span></p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;"> </p></div><table fr-original-class="MsoNormalTable" fr-original-style="margin-left:.5in;background:#E2F700;border:solid black 1.0pt;" style="margin-left: 0.5in; background: rgb(226, 247, 0) none repeat scroll 0% 0%; border: 1pt solid black; box-sizing: border-box; border-collapse: collapse; empty-cells: show; max-width: 100%;" cellpadding="0" border="1"><tbody fr-original-style="" style="box-sizing: border-box;"><tr fr-original-style="" style="box-sizing: border-box; user-select: none;"><td fr-original-style="border:none;padding:.75pt .75pt .75pt .75pt;" style="border: medium none; padding: 0.75pt; box-sizing: border-box; min-width: 5px; user-select: text;"><p fr-original-class="MsoNormal" fr-original-style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;" style="box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;"><strong fr-original-style="" style="box-sizing: border-box; font-weight: 700;"><span fr-original-style="font-family:"Calibri",sans-serif;color:#FF3333;" style="font-family: "Calibri", sans-serif; color: rgb(255, 51, 51); box-sizing: border-box;">Think Before You Click: </span></strong><span fr-original-style="color:black;" style="color: black; box-sizing: border-box;">This email originated <strong fr-original-style="" style="box-sizing: border-box; font-weight: 700;"><span fr-original-style="font-family:"Calibri",sans-serif;" style="font-family: "Calibri", sans-serif; box-sizing: border-box;">outside </span></strong>our organization.</span></p></td></tr></tbody></table><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;"> </p><div fr-original-style="" style="box-sizing: border-box;"><div fr-original-style="" style="box-sizing: border-box;"><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;">I think we have hit a critical mass of needing *four* Desktop demos:</p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;"> </p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;">1. Editing - The two mapbooks below should be identical but for their target server. I am in favor of having these be a more limited workflow that shows how editing works in a practical way.</p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;">  A. Based on GeoServer.</p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;">  B. Based on PostGIS.</p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;">2. "The Desktop Demo" a la the status quo. The demo that people will "Copy Pasta" and turn into their deployed Website. Drop all the scary warning messages, ensure our comments are up to date, and that we remove the "Test code". We attempt to show a reasonable set of data types that people would find around in a "typical" County/City/Division website.</p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;">3. "The testing mapbook":</p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;"> - This can have the same layers configured in different ways (WFS, WMS)</p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;"> - "Test grids" - So we can test scaling and printing issues.</p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;"> - Can include stuff that is intentionally broken to test error handling.</p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;"> - I feel we can add stuff with a <exp:> prefix to denote some experimental stuff we could point users to but not feel the need to adopt and support long term.</p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;"> </p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;">Does this seem like a lot? Sure. Maybe? Why I don't think it is:</p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;">1. The editing workflow is pretty dedicated and I feel Brent has put some real time into making sure it is well tested. I feel like that will continue and we have historically had good stakeholders for that functionality.</p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;">2. The "Desktop demo" will be a subset of the functionality that starts in the testing mapbook.</p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;">3. I find it harder to comment, uncomment, and generally futz around with the "Desktop demo" all the time to make sure it looks okay AND that we have all of the needed functionality ready to test. While, yes, additional unit-testing will help it is very hard to beat a real-world end-to-end test.</p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;"> </p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;">I may take an initial swipe at this when I do the multiple mapbooks support but drafting an official RFC may be prudent here.</p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;"> </p></div><div fr-original-style="" style="box-sizing: border-box;"><p fr-original-class="MsoNormal" fr-original-style="margin-left:.5in;" style="margin-left: 0.5in; box-sizing: border-box; color: rgb(68, 68, 68); margin-top: 1px;">Thanks for reading!</p></div></div></div></div></div>