From 868eea06f69fbfdb361d5c9142ecce98918d927b Mon Sep 17 00:00:00 2001 From: arno Date: Wed, 22 Sep 2010 15:07:15 +0200 Subject: [PATCH] fixes: ui is not correctly refreshed after account creation --- application/controllers/UserController.php | 4 +++- public/js/syj.js | 28 ++++++++++++++-------- public/js/utils.js | 4 ++-- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/application/controllers/UserController.php b/application/controllers/UserController.php index f802b16..1d4ed18 100644 --- a/application/controllers/UserController.php +++ b/application/controllers/UserController.php @@ -62,6 +62,8 @@ class UserController extends Zend_Controller_Action } $this->_helper->SyjSession->login($user->id); - $this->_helper->SyjApi->setCode(200); + + $data = array('pseudo' => $user->pseudo); + $this->_helper->SyjApi->setBodyJson($data)->setCode(200); } } diff --git a/public/js/syj.js b/public/js/syj.js index 50184b2..3606cd0 100644 --- a/public/js/syj.js +++ b/public/js/syj.js @@ -789,7 +789,14 @@ var SYJUserClass = Class.create(SYJModalClass, { }, success: function(transport) { - LoginMgr.login(); + if (!transport.responseJSON || + typeof transport.responseJSON.pseudo !== "string" + ) { + this.messenger.setMessage(SyjStrings.unknownError, "error"); + return; + } + + LoginMgr.login(transport.responseJSON.pseudo); SYJView.messenger.setMessage(SyjStrings.userSuccess, "success"); this.modalbox.hide(); if (SYJView.needsFormResubmit) { @@ -867,14 +874,8 @@ var SYJLoginClass = Class.create(SYJModalClass, { this.messenger.setMessage(SyjStrings.unknownError, "error"); return; } - LoginMgr.login(transport.responseJSON.iscreator); - $$('.logged-pseudo').each(function(elt) { - $A(elt.childNodes).filter(function(node) { - return (node.nodeType === 3 || node.tagName.toLowerCase() === 'br'); - }).each(function(node) { - node.nodeValue = node.nodeValue.replace('%s', transport.responseJSON.pseudo); - }); - }); + LoginMgr.login(transport.responseJSON.pseudo, transport.responseJSON.iscreator); + SYJView.messenger.setMessage(SyjStrings.loginSuccess, "success"); this.modalbox.hide(); if (SYJView.needsFormResubmit) { @@ -957,11 +958,18 @@ var LoginMgr = Object.extend(gLoggedInfo, { } }, - login: function(aIsCreator) { + login: function(aPseudo, aIsCreator) { if (typeof aIsCreator === "boolean") { this.iscreator = aIsCreator; } this.logged = true; + $$('.logged-pseudo').each(function(elt) { + $A(elt.childNodes).filter(function(node) { + return (node.nodeType === 3 || node.tagName.toLowerCase() === 'br'); + }).each(function(node) { + node.nodeValue = node.nodeValue.replace('%s', aPseudo); + }); + }); this.updateUI(); } }); diff --git a/public/js/utils.js b/public/js/utils.js index aba7b1d..b16a9c2 100644 --- a/public/js/utils.js +++ b/public/js/utils.js @@ -395,7 +395,7 @@ Element.addMethods('div', { while (node) { nextNode = node.nextSibling; - if (node.nodeType === 3 || node.tagName.toLowerCase() === 'br') { + if (node.nodeType === 3 || node.tagName.toLowerCase() === 'br' || node.textContent || node.innerText) { div.removeChild(node); } node = nextNode; @@ -408,7 +408,7 @@ Element.addMethods('div', { var node = (div.ownerDocument || document).createTextNode(message); if ($A(div.childNodes).filter(function(node) { - return (node.nodeType === 3 || node.tagName.toLowerCase() === 'br'); + return (node.nodeType === 3 || node.tagName.toLowerCase() === 'br' || node.textContent || node.innerText); }).length) { div.insert(new Element('br')); } -- 2.39.2