payment: note that Stripe has instituted an additional 1% fee for non-US cards
[hcoop/portal.git] / exn.mlt
diff --git a/exn.mlt b/exn.mlt
index efb7dfb..1b28abe 100644 (file)
--- a/exn.mlt
+++ b/exn.mlt
@@ -2,17 +2,53 @@
 <title>Hcoop Portal: Exception</title>
 </head><body>
 
-<h1><b>Exception</b></h1>
+<h1>Exception</h1>
 
 <% switch Web.getExn () of
      Fail msg => %>
 <b>Fail</b>: <% Web.htmlNl msg %>
+<% | OS.SysErr (name, NONE) => %>
+<b>System error</b>: <% Web.html name %>
+<% | OS.SysErr (name, SOME syserr) => %>
+<b>System error</b>: <% Web.html name %>: <% Web.html (OS.errorName syserr) %>: <% Web.htmlNl (OS.errorMsg syserr) %>
+<% | IO.Io {name, function, cause, ...} => %>
+<b>IO error</b>: <% Web.html name %> for <% Web.html function %><br>
+<b>Cause</b>: <% Web.html (Init.explain cause) %><br>
+<b>Tokens</b>: <p><% Web.htmlNl (Init.tokens ()) %></p>
 <% | Init.C.Sql msg => %>
 <b>SQL</b>: <% Web.htmlNl msg %>
 <% | Init.Access msg => %>
 <b>Authorization error</b>: <% Web.htmlNl msg %>
 <% | Web.Format s => %>
 <b>Format</b>: <% Web.htmlNl s %>
+<% | DynLinkage.DynLinkError s => %>
+<b>Linking error</b>: <% Web.htmlNl s %>
+
+<% | Init.NeedTos => %>
+<p><b>Our records indicate that you need to agree to our Terms of Service.</b></p>
+
+<% val ap = #app (Init.getUser ());
+
+App.readTosBody () %>
+
+<br><hr><br>
+<form action="portal" method="post">
+
+<% val ap = App.lookupApp ap;
+switch #gname ap of
+         NONE => %>
+<b>Real name:</b> <% Web.html (#rname ap) %><br>
+<input type="checkbox" name="agree">
+<% App.readTosAgree ()
+       | SOME gname => %>
+<b>Member name:</b> <% Web.html (#rname ap) %><br>
+<b>Legal guardian name:</b> <% Web.html gname %><br>
+<input type="checkbox" name="agree">
+<% App.readTosMinorAgree ()
+end %>
+<br><br><input type="submit" value="Agree">
+</form>
+
 <% | ex => %>
 <b>Unknown exception kind.</b> Backtrace:
 <% foreach s in SMLofNJ.exnHistory ex do %>