]> gitweb.michael.orlitzky.com - charm-bypass.git/blobdiff - index.html.in
index.html.in: do-over of the legend/form spacing
[charm-bypass.git] / index.html.in
index 96dd04a437b2dab5ae75e188045850419311e235..411dc47680ca953b0dcc0a6a6eb60419778e121f 100644 (file)
@@ -2,17 +2,27 @@
 <html lang="en-US">
   <head>
     <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <link rel="icon" href="favicon.svg" />
 
     <title>
-      CharmBypass: doing transit equity whether they like it or not
+      CharmBypass: it's transit equity y'all
     </title>
 
     <style>
+      fieldset {
+        margin-top: 1em;
+        padding-top: 1em;
+      }
+
       input[type=submit] {
         margin-top: 1em;
         margin-bottom: 1em;
       }
 
+      legend {
+        font-weight: bold;
+      }
+
       svg {
         /* Set the height to 100% of the screen, which we'll keep; and the
          *  initial position to (0,0), which we're going to change
@@ -55,7 +65,7 @@
           url("data:font/woff2;base64,@CBPREGULAR@") format("woff2")
       }
 
-      #servicename, #tickettime, #ticketdate, #codetext, #zone {
+      #origindest, #servicename, #tickettime, #ticketdate, #codetext, #zone {
         font-family: "CharmBypass Regular", sans-serif;
       }
 
   <body>
     <div id="menu">
       <h1>CharmBypass</h1>
-      <h2>doing transit equity whether they like it or not</h2>
+      <h2>it's transit equity y'all</h2>
 
       <p>
         <em>Hint:</em> If you think the driver or fare inspector will
 
       <form>
         <fieldset>
-          <legend>BaltimoreLink (Bus, Light Rail, Metro)</legend>
+          <legend>Local Bus, Light Rail, or Metro</legend>
           <div>
             <label for="code1">
               Daily security code (optional):
             <input id="code1"
                    name="code"
                    type="text"
+                   size="2"
                    minlength="2"
                    maxlength="2"
                    pattern="[a-zA-Z0-9]*" />
           </div>
           <input type="hidden" name="servicename" value="BaltimoreLink" />
-          <input type="submit" name="go" value="Get Ticket" />
+          <input type="submit" name="go" value="Generate Ticket" />
         </fieldset>
       </form>
       <form>
             <input id="code2"
                    name="code"
                    type="text"
+                   size="2"
                    minlength="2"
                    maxlength="2"
                    pattern="[a-zA-Z0-9]*" />
           </div>
 
-          <h3>Zone</h3>
+          <p>Zone:</p>
           <div>
             <input required type="radio" id="zone1" name="zone" value="Zone 1" />
             <label for="zone1">Zone 1</label>
             <label for="zone5">Zone 5</label>
           </div>
 
-          <input type="submit" name="go" value="Get Ticket" />
+          <input type="submit" name="go" value="Generate Ticket" />
         </fieldset>
       </form>
       <form>
             <input id="code3"
                    name="code"
                    type="text"
+                   size="2"
                    minlength="2"
                    maxlength="2"
                    pattern="[a-zA-Z0-9]*" />
           </div>
 
-          <h3>Origin</h3>
-
+          <p>Origin:</p>
           <div>
             <input required type="radio" id="origin1" name="origin" value="BAL" />
             <label for="origin1">Baltimore/Penn (Penn Line)</label>
             <label for="origin8">West Baltimore (Penn Line)</label>
           </div>
 
-          <h3>Destination</h3>
+          <p>Destination:</p>
           <div>
             <input required type="radio" id="destination1" name="destination" value="BAL" />
             <label for="destination1">Baltimore/Penn (Penn Line)</label>
 
           <input type="hidden" name="serviceid" value="R" />
           <input type="hidden" name="servicename" value="MARC Train" />
-          <input type="submit" name="go" value="Get Ticket" />
+          <input type="submit" name="go" value="Generate Ticket" />
         </fieldset>
       </form>
     </div>
       /************************/
       /* Set the service zone */
       /************************/
-      function set_service_zone(zone) {
-        /* We can take the zone as a parameter too; this allows
-         * us to use this function for the (computed) MARC Train
-         * zone and not just the querystring Commuter Bus zone */
+      function set_service_zone(event, zone) {
+        /* We can take the zone as a parameter too; this allows us to
+         * use this function for the (computed) MARC Train zone and
+         * not just the querystring Commuter Bus zone. The extra
+         * "event" parameter is there for the event listener, which
+         * would otherwise stuff an onload event into the zone
+         * parameter. "Thankfully" javascript lets us call a
+         * two-argument function with one argument and thereby abuse
+         * the event handler for this. */
         const z = document.getElementById("zone");
         const params = new URLSearchParams(document.location.search);
 
           const dest = params.get("destination");
           const zone = compute_marc_zone(src, dest);
 
-          set_service_zone(zone);
+          set_service_zone(null, zone);
+        }
+      }
+
+
+      /*****************************************************/
+      /* Set the origin and destination for the MARC Train */
+      /*****************************************************/
+
+      function set_marc_origin_destination() {
+        const params = new URLSearchParams(document.location.search);
+        if (!params.get("origin") || !params.get("destination")) {
+          return;
         }
+
+        const src = params.get("origin");
+        const dest = params.get("destination");
+
+        /* origindest contains both the origin and destination */
+        const origindest = document.getElementById("origindest");
+
+        const origin = document.getElementById("origin");
+        const destination = document.getElementById("destination");
+
+        origin.textContent = params.get("origin");
+        destination.textContent = params.get("destination");
+
+        origindest.style.display = "block"; /* It's hidden by default */
       }
 
       /******************************************/
         /* Set the ticket expiration date/time upon page load */
         window.addEventListener("load", set_ticket_expiry);
 
+        /* Set the MARC Train origin and destination, if applicable */
+        window.addEventListener("load", set_marc_origin_destination);
+
         /* Set the MARC Train zone, if applicable */
         window.addEventListener("load", set_marc_zone);