Sha256: 45603f5b7812e48510b29cda9b0f6c0f0ccb6980e7113acf0aa442be80513088

Contents?: true

Size: 1.38 KB

Versions: 2

Compression:

Stored size: 1.38 KB

Contents

// https://stackoverflow.com/questions/8578617/inject-a-script-tag-with-remote-src-and-wait-for-it-to-execute
function prxInjectScript(src, callback) {
  const script = document.createElement('script');

  script.type = 'text/javascript';
  script.async = false;
  script.src = src;

  script.onload = function () { script.onload = null; callback(); }

  document.getElementsByTagName('head')[0].appendChild(script);
}

document.addEventListener('DOMContentLoaded', function () {

  const widget = document.getElementById('prx-user-widget');
  const account = document.getElementById('prx-user-widget-menu-account');

  const idHost = 'https://' + widget.getAttribute('data-id-host');;
  const scriptUrl = idHost + '/widget.js';

  prxInjectScript(scriptUrl, function () {
    const signIn = new PRXSignIn(idHost);

    signIn.signedIn(function (prx) {

      if (!prx.userinfo) {
        // Not logged in
        widget.classList.add('no-user-info');

        const url = idHost + '/session?return_to=' + encodeURIComponent(window.location);

        account.innerHTML = '<a class=sign-in href="' + url + '">Sign in</a>';
      } else {
        // Logged in
        widget.classList.add('user-info');

        const account = document.getElementById('prx-user-widget-menu-account');
        account.innerText = prx.userinfo.email;

        signIn.listApps('prx-user-widget-menu-apps');
      }
    });
  });
});

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
prx_auth-rails-1.8.0 app/assets/javascripts/prx_auth-rails/user_widget.js.erb
prx_auth-rails-1.7.0 app/assets/javascripts/prx_auth-rails/user_widget.js.erb