view views/index.jade @ 3:98a070c98982

add Twitter support
author Mathias Gebbe <mgebbe@intevation.de>
date Thu, 05 Jun 2014 18:02:25 +0200
parents b73191efc65b
children a94ac7c3b182
line wrap: on
line source
doctype html
html(lang="en")
  head
    title= pageTitle

    link(rel='stylesheet', href='/stylesheets/style.css')
    link(rel='icon', href='/images/favicon.ico',type='image/x-icon')
    link(rel='stylesheet', href='/stylesheets/bootstrap.min.css')

    // load jquery
    script(src='https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js')

    // load googleplus api
    script(type='text/javascript').
      (function() {
       var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
       po.src = 'https://apis.google.com/js/client:plusone.js';
       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
      })();

    
    // load googleplus api sign in

    script(type='text/javascript').
    

     (function() {
     var po = document.createElement('script');
     po.type = 'text/javascript'; po.async = true;
     po.src = 'https://apis.google.com/js/client:plusone.js?onload=render';
     var s = document.getElementsByTagName('script')[0];
      s.parentNode.insertBefore(po, s);
       })();

     /* Executed when the APIs finish loading */
     function render() {

     gapi.signin.render('gp-root', {
      'callback': 'signinCallback',
      'clientid': '460404084439-rgb5r2vh7hh8hvf2na65c7n1ofhmomek.apps.googleusercontent.com',
      'redirecturi': 'postmessage',
      'response_type' : 'code',
      'accesstype': 'offline',
      'approvalprompt': 'force',
      'cookiepolicy': "https://do.blessuren.de:3000",
      'requestvisibleactions': 'http://schemas.google.com/AddActivity',
      'scope': 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email'
     });
     }

    // handle googleplus callback

    script(type='text/javascript').
     function signinCallback(authResult) {
      if (authResult['status']['signed_in']) {
       // Update the app to reflect a signed in user
       // Hide the sign-in button now that the user is authorized, for example:
       //document.getElementById('signinButton').setAttribute('style', 'display: none');
       //alert('googleplus is ready for bridging');
       
       gapi.client.load('plus', 'v1', function() {
          var request = gapi.client.plus.people.get({
            'userId': 'me'
          });
          request.execute(function(resp) { 
                                          //alert(JSON.stringify(resp)); 
                                          $('#gpstatus').html('<a href=' + resp.url + '> ' + resp.displayName + '</a>');
                                          var token = gapi.auth.getToken();
                                          //alert(JSON.stringify(resp.id)); 
                                          $('#gpid').val(resp.id+'@google');
                                          $('#gptoken').val(token.access_token + ';' + token.code);
                                         }); 
       }); 

 
     } else {
       // Update the app to reflect a signed out user
       // Possible error values:
       //   "user_signed_out" - User is signed-out
       //   "access_denied" - User denied access to your app
       //   "immediate_failed" - Could not automatically log in the user
       //alert('you cancelled login or did not fully authorize: ' + authResult['error']);
      }
     }

    script. 
     // twitter stuff
     function getCookie(cname) {
       var name = cname + "=";
       var ca = document.cookie.split(';');
       for(var i=0; i<ca.length; i++) {
           var c = ca[i].trim();
           if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
       }
       return "";
     }
     
 

    // load facebook api
    script.
     $(document).ready(function () {
     
         $('#twstatus').html('<a href=https://twitter.com/account/redirect_by_id/' + getCookie('twitterid') + '> ' + getCookie('twitteruser') + '</a>');
       
         $.ajaxSetup({
             cache: true
         });

         $.getScript('//connect.facebook.net/en_UK/all.js', function () {
             FB.init({
                 appId: '771281529571170',
                 status     : true
             });

         FB.getLoginStatus(function(response) {
            if (response.status === 'connected') {
               // the user is logged in and has authenticated your
               // app, and response.authResponse supplies
               // the user's ID, a valid access token, a signed
               // request, and the time the access token 
               //  and signed request each expire
               var uid = response.authResponse.userID;
               var accessToken = response.authResponse.accessToken;
               $('#fbtoken').val(accessToken);
                FB.api('/me', function(response) {
                 $('#fbstatus').html('<a href=//facebook.com/' + response.id + '> ' + response.name + '</a>');
                 $('#fbid').val(response.id+'@facebook');
                });
            } else if (response.status === 'not_authorized') {
               // the user is logged in to Facebook, 
               // but has not authenticated your app
               $('#fbstatus').html('not authorized');
            } else {
               // the user isn't logged in to Facebook.
               $('#fbstatus').html('not logged in');
            }
           });
 

         });
   

        $('.fbloginbutton').on('click', function(e){
           FB.login(function(response) {
             if (response.authResponse) {
               FB.api('/me', function(response) {
                 //document.getElementById("logoutbutton").disabled = false;
               });
             } else {
               //Not logged in
               //alert('you cancelled login or did not fully authorize.');
             }
           }, {scope: 'publish_actions,publish_stream,read_stream,read_friendlists,user_likes,read_insights,user_activities'});
         })

        //$('.logoutbutton').on('click', function(e){
        //   FB.logout();
        // })
        $('#pumpobj').val(JSON.stringify(!{JSON.stringify(user)})); 
           });

  body
   block content
  .main 
      h1(class='headline') pumpbridge.<br>connecting social networks
      #fb-root.fb-root
         input(id='fbloginbutton',type='image',class='fbloginbutton',value='fbLogin',src='images/fb.svg',width='100px',height='100px')
      #gp-root.gp-root
         input(id='gploginbutton',type='image',class='gploginbutton',value='gpLogin',src='images/gp.svg',width='100px',height='100px')
         //span.g-signin(data-scope='https://www.googleapis.com/auth/plus.login', data-clientid='460404084439-rgb5r2vh7hh8hvf2na65c7n1ofhmomek.apps.googleusercontent.com', data-redirecturi='postmessage', data-accesstype='offline', data-cookiepolicy='single_host_origin', data-callback='signInCallback', approval_prompt='force')
      #tw-root.tw-root
         a(href='/add-account'): input(id='twloginbutton',type='image',class='twloginbutton',value='twLogin',src='images/twitter.svg',width='100px',height='100px')
      #pump-root.pump-root
         a(href='/login')         
          input(id='pumploginbutton',type='image',class='pumploginbutton',value='pumpLogin',src='images/pumpiologo.svg',width='100px',height='100px')
      br
     form(class='',action='/bridge',method='post')
      #connect.connect
      ul
       li Facebook:
         i(id='fbstatus') &nbsp; not logged in
         br
         input(id='fbid',name='fbid',hidden='true')
         input(id='fbtoken',name='fbtoken',hidden='true')
       li GooglePlus:
         i(id='gpstatus') &nbsp; not logged in
         br
         input(id='gpid',name='gpid',hidden='true')
         input(id='gptoken',name='gptoken',hidden='true',size=100)
       li Twitter:
         i(id='twstatus') &nbsp; not logged in
         br
         input(id='twid',name='twid',hidden='true')
         input(id='twtoken',name='twtoken',hidden='true',size=100)
       li pump.io:  
         a(id='pumpstatus',class='pumpstatus',href=user.homepage)= user.id 
         br
         input(id='pumpid',name='pumpid',hidden='true',value=user.id)
         input(id='pumptoken',name='pumptoken',hidden='true', value=user.token)
         input(id='pumpsecret',name='pumpsecret',hidden='true', value=user.secret)
         input(id='pumpobj',name='pumpobj', hidden='true' value='')
      br
      input(type='submit',class='btn btn-default',value='save tokens')
   .footer
    #logout.logout
         //input(id='logoutbutton',type='button',class='logoutbutton',value='Logout',disabled)
         form(class='',action='/logout',method='post')
          input(type='submit',class='btn btn-default',value='logout')
         br
     p.
      here our bridge will be.
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)