samedi 9 mai 2015

Close modal after authentication - Ember

Hi I have a login modal that does OAuth through Firebase. I'm trying to close the modal after social login, but I don't know where I should add the code to close the modal. Would it be part of the Authentication process or the modal?

Here's my modal:

{{#modal-dialog title="modal" id="modal" action="close"}}

<div class="tab-content">
    <!--login tab-->
    <div role="tabpanel" class="tab-pane active" id="login">

        <div class="modal-body text-center">
        <p>
        <button {{action "loginFacebook"}} class="btn btn-default">
          {{fa-icon "facebook"}}
            Sign in with Facebook
        </button>

        </p>
        <p>

        <button {{action "loginTwitter"}} class="btn btn-default">
          {{fa-icon "twitter"}}
            Sign in with Twitter
        </button>

        </p>
...

Modal.js

import Ember from 'ember';

export default Ember.Controller.extend({
  actions: {
    close: function() {
      return this.send('closeModal');
    }
  }
});

And here's my session.js for authentication:

var session = Ember.Object.extend({
    ref : new Firebase("http://ift.tt/1P8qtHR"),

    addFirebaseCallback: function() {
        var session = this;
        var ref = this.get('ref');

        ref.onAuth(function(authData) {
            if (authData) {
                var user = parseAuthData(authData);
                session.set("isAuthenticated", true);
                session.set('uid', authData.uid);
                session.set('user', user);
                ref.child('users').child(authData.uid).set(user);

            } else {
                session.set("isAuthenticated", false);
            }
        });
    }.on("init"),


    loginFacebook: function() {
        var session = this;
        return new Ember.RSVP.Promise(function (resolve, reject) {
            session.get("ref").authWithOAuthPopup("facebook", function(error, user) {
                if (user) {
                    resolve(user);
                } else {
                    reject(error);
                }
            },

            {
                remember: "sessionOnly",
                scope: "email"
            });
        });
    },

Thanks!!




Aucun commentaire:

Enregistrer un commentaire