From 2e7f0de9e9993db5a931b01377f0ebadeaeecf65 Mon Sep 17 00:00:00 2001
From: Lloyd Hilaiel <lloyd@hilaiel.com>
Date: Tue, 6 Mar 2012 10:35:58 -0700
Subject: [PATCH] update in-tree example RP for event api

---
 example/rp/index.html | 66 +++++++++++++++++++++++++------------------
 1 file changed, 39 insertions(+), 27 deletions(-)

diff --git a/example/rp/index.html b/example/rp/index.html
index d14fa1ad6..0d95e9a31 100644
--- a/example/rp/index.html
+++ b/example/rp/index.html
@@ -15,10 +15,11 @@ BrowserID Relying Party
 body { margin: auto; font: 13px/1.5 Helvetica, Arial, 'Liberation Sans', FreeSans, sans-serif; }
 a:link, a:visited { font-style: italic; text-decoration: none; color: #008; }
 a:hover { border-bottom: 2px solid black ; }
-.title { font-size: 2em; font-weight: bold; text-align: center; margin: 1.5em; }
-.intro { font-size: 1.2em; width: 600px; margin: auto; }
-.specify { font-size: 1.1em; width: 600px; padding-top: 2em; margin: auto; }
-.assertion, .verifierResp { width: 600px; margin: auto; }
+.title { font-size: 2em; font-weight: bold; text-align: center; margin: 1.5em auto 1.5em auto; }
+.intro { font-size: 1.2em;  }
+.specify { font-size: 1.1em; padding-top: 2em; }
+body div { width: 600px; margin: auto; }
+
 pre {
   font-family: 'lucida console', monaco, 'andale mono', 'bitstream vera sans mono', consolas, monospace;
   border: 3px solid #666;
@@ -31,7 +32,6 @@ pre {
   background-color: #333;
 /*  white-space: pre;*/
   font-size: .9em;
-  width:600px;
   word-wrap: break-word;
 }
 
@@ -60,12 +60,6 @@ pre {
   <p>What flavor of assertion would you like?</p>
   <ul>
     <li>
-      <input type="checkbox" id="silent"> 
-      <label for="silent">Silent</label>
-    </li><li>
-      <input type="checkbox" id="allowPersistent">
-      <label for="allowPersistent">Allow persistent sign-in</label>
-    </li><li>
       <input type="checkbox" id="privacy">
       <label for="privacy">Supply a privacy policy</label>
     </li><li>
@@ -79,12 +73,22 @@ pre {
     <button>Get an assertion</button>
 </div>
 
-<div class="verifierResp">
-  <pre> ... verifier response ... </pre>
+<div class="loginEvents">
+  <h2>login events</h2>
+  <pre> ... login events ... </pre>
+</div>
+
+<div class="logoutEvents">
+  <h2>logout events</h2>
+  <pre> ... logout events ... </pre>
+</div>
+
+<div class="loginCanceledEvents">
+  <h2>loginCanceled events</h2>
+  <pre> ... loginCanceled events ... </pre>
 </div>
 
-<div class="assertion">
-  <pre> ... ye' ol' assertion ... </pre>
+
 </body>
 
 </div>
@@ -103,15 +107,29 @@ function checkAssertion(assertion) {
       audience: window.location.protocol + "//" + window.location.host
     },
     success: function(data, textStatus, jqXHR) {
-      $(".verifierResp > pre").text(JSON.stringify(data, null, 4));
+      $(".loginEvents > pre").text(JSON.stringify(data, null, 4));
     },
     error: function(jqXHR, textStatus, errorThrown) {
       var resp = jqXHR.responseText ? JSON.parse(jqXHR.responseText) : errorThrown;
-      $(".verifierResp > pre").text(resp);
+      $(".loginEvents > pre").text(resp);
     }
   });
 };
 
+navigator.id.addEventListener('login', function(event) {
+  checkAssertion(event.assertion);
+});
+
+navigator.id.addEventListener('logout', function(event) {
+  var txt = 'got event at ' + (new Date).toString();
+  $(".logoutEvents > .pre").text(txt);
+});
+
+navigator.id.addEventListener('loginCanceled', function(event) {
+  var txt = 'got event at ' + (new Date).toString();
+  $(".logingCanceledEvents > .pre").text(txt);
+});
+
 $(document).ready(function() {
   $(".specify button").click(function() {
     $("pre").text("... waiting ...");
@@ -119,21 +137,15 @@ $(document).ready(function() {
     var requiredEmail = $.trim($('#requiredEmail').val());
     if (!requiredEmail.length) requiredEmail = undefined;
 
-    navigator.id.get(function(assertion) {
-      if (!assertion) {
-        $(".assertion pre").text("navigator.id.get() returns NULL");
-      } else {
-        $(".assertion pre").text(assertion);
-        checkAssertion(assertion);
-      }
-    }, {
-      silent: $('#silent').attr('checked'),
-      allowPersistent: $('#allowPersistent').attr('checked'),
+    navigator.id.request({
       privacyURL: $('#privacy').attr('checked') ? "/privacy.html" : undefined,
       tosURL: $('#tos').attr('checked') ? "/TOS.html" : undefined,
       requiredEmail: requiredEmail
     });
   });
+
+  // explicitly trigger events at document ready
+  navigator.id.setLoggedInUser(null);
 });
 
 </script>
-- 
GitLab