From 4bbed7e9437e52889bad30ea7d801a2cd5f55f6d Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Tue, 12 Feb 2013 21:03:34 -0800 Subject: [PATCH] Cleanup, fix UserPanel --- js/id/connection.js | 2 +- js/id/ui.js | 12 ++---- js/id/ui/userpanel.js | 97 +++++++++++++++++++++---------------------- 3 files changed, 52 insertions(+), 59 deletions(-) diff --git a/js/id/connection.js b/js/id/connection.js index ea90c5591..f15aa80f8 100644 --- a/js/id/connection.js +++ b/js/id/connection.js @@ -228,7 +228,7 @@ iD.Connection = function(context) { if (img && img[0].getAttribute('href')) { image_url = img[0].getAttribute('href'); } - callback(connection.user({ + callback(undefined, connection.user({ display_name: u.attributes.display_name.nodeValue, image_url: image_url, id: u.attributes.id.nodeValue diff --git a/js/id/ui.js b/js/id/ui.js index 40e700801..115199edf 100644 --- a/js/id/ui.js +++ b/js/id/ui.js @@ -60,15 +60,9 @@ iD.ui = function(context) { var about = container.append('div') .attr('class','col12 about-block fillD pad1'); - var userContainer = about.append('div') - .attr('class', 'user-container'); - - userContainer.append('div') - .attr('class', 'hello'); - - userContainer.call(iD.ui.UserPanel(connection) - .on('logout.editor', connection.logout) - .on('login.editor', connection.authenticate)); + about.append('div') + .attr('class', 'user-container') + .call(iD.ui.UserPanel(context)); var linkList = about.append('ul') .attr('id', 'about') diff --git a/js/id/ui/userpanel.js b/js/id/ui/userpanel.js index 3dab2a5bd..f323706ae 100644 --- a/js/id/ui/userpanel.js +++ b/js/id/ui/userpanel.js @@ -1,54 +1,53 @@ -iD.ui.UserPanel = function(connection) { - var event = d3.dispatch('logout', 'login'); +iD.ui.UserPanel = function(context) { + var connection = context.connection(); - function user(selection) { - function update() { - if (connection.authenticated()) { - selection.style('display', 'block'); - connection.userDetails(function(err, user_details) { - - selection.html(''); - - if (err) return; - - // Link - var userLink = selection.append('a') - .attr('href', connection.url() + '/user/' + - user_details.display_name) - .attr('target', '_blank'); - - // Add thumbnail or dont - if (user_details.image_url) { - userLink.append('img') - .attr('class', 'icon icon-pre-text user-icon') - .attr('src', user_details.image_url); - } else { - userLink.append('span') - .attr('class','icon avatar icon-pre-text'); - } - - // Add user name - userLink.append('span') - .attr('class','label') - .text(user_details.display_name); - - selection - .append('a') - .attr('class', 'logout') - .attr('href', '#') - .text(t('logout')) - .on('click.logout', function() { - d3.event.preventDefault(); - event.logout(); - }); - }); - } else { - selection.html('').style('display', 'none'); - } + function update(selection) { + if (!connection.authenticated()) { + selection.html('') + .style('display', 'none'); + return; } - connection.on('auth', update); - update(); + + selection.style('display', 'block'); + + connection.userDetails(function(err, details) { + selection.html(''); + + if (err) return; + + // Link + var userLink = selection.append('a') + .attr('href', connection.url() + '/user/' + details.display_name) + .attr('target', '_blank'); + + // Add thumbnail or dont + if (details.image_url) { + userLink.append('img') + .attr('class', 'icon icon-pre-text user-icon') + .attr('src', details.image_url); + } else { + userLink.append('span') + .attr('class', 'icon avatar icon-pre-text'); + } + + // Add user name + userLink.append('span') + .attr('class', 'label') + .text(details.display_name); + + selection.append('a') + .attr('class', 'logout') + .attr('href', '#') + .text(t('logout')) + .on('click.logout', function() { + d3.event.preventDefault(); + connection.logout(); + }); + }); } - return d3.rebind(user, event, 'on'); + return function(selection) { + connection.on('auth', function() { update(selection); }); + update(selection); + }; };