From 5fe9a5fef61308515cd1913f0bb7cc4a4ecf0253 Mon Sep 17 00:00:00 2001 From: arno Date: Sun, 15 Aug 2010 00:31:03 +0200 Subject: [PATCH] display logged user pseudo in footer --- application/controllers/LoginController.php | 11 +++++------ application/layouts/scripts/footer.phtml | 4 +++- application/views/helpers/FooterLink.php | 4 ++-- public/js/syj.js | 18 ++++++++++++++---- 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/application/controllers/LoginController.php b/application/controllers/LoginController.php index 495c27c..ed1514f 100644 --- a/application/controllers/LoginController.php +++ b/application/controllers/LoginController.php @@ -52,9 +52,11 @@ class LoginController extends Zend_Controller_Action $userid = $authAdapter->getResultRowObject('id')->id; $this->_helper->SyjSession->login($userid); + $user = $this->_helper->SyjSession->user(); if ($httprequest) { $api = $this->_helper->SyjApi->setCode(200); + $data = array('pseudo' => $user->pseudo); $login_geom_id = $formData['login_geom_id']; if ($login_geom_id) { @@ -63,14 +65,11 @@ class LoginController extends Zend_Controller_Action if (!$pathMapper->find((int)$login_geom_id, $path)) { throw new Syj_Exception_Request(); } - if ($path->creator->id === $userid) { - $api->setBody("1"); // creator of displayed geometry - } else { - $api->setBody("0"); - } + $data['iscreator'] = ($path->creator->id === $userid); } else { - $api->setBody("1"); // no geometry displayed: creator of the (future) geometry + $data['iscreator'] = true; } + $api->setBodyJson($data); } else { $this->redirect(); } diff --git a/application/layouts/scripts/footer.phtml b/application/layouts/scripts/footer.phtml index cce5e7f..f2c1b13 100644 --- a/application/layouts/scripts/footer.phtml +++ b/application/layouts/scripts/footer.phtml @@ -37,7 +37,9 @@ if ($mainpage or $this->loggedUser) { 'action' => 'index', 'controller' => 'account'), $this->translate("my account"), true, - 'logged-show'); + 'logged-show logged-pseudo', + $this->loggedUser ? " ({$this->loggedUser->pseudo})": " (%s)" + ); } /* diff --git a/application/views/helpers/FooterLink.php b/application/views/helpers/FooterLink.php index 50a2f0b..d108b8f 100644 --- a/application/views/helpers/FooterLink.php +++ b/application/views/helpers/FooterLink.php @@ -4,7 +4,7 @@ class Syj_View_Helper_FooterLink extends Zend_View_Helper_Abstract { - public function FooterLink($routeoptions, $text, $redirect=true, $extraclass=null) { + public function FooterLink($routeoptions, $text, $redirect=true, $extraclass=null, $extratext="") { $page = new Zend_Navigation_Page_Mvc($routeoptions); if ($page->isActive()) { $link = $this->view->escape($text); @@ -20,7 +20,7 @@ class Syj_View_Helper_FooterLink extends Zend_View_Helper_Abstract if (isset($extraclass)) { $class = "$class $extraclass"; } - return '
' . $link . '
' . PHP_EOL; + return '
' . $link . $extratext . '
' . PHP_EOL; } } diff --git a/public/js/syj.js b/public/js/syj.js index 81fbc7a..5a5d5db 100644 --- a/public/js/syj.js +++ b/public/js/syj.js @@ -772,11 +772,21 @@ var SYJLoginClass = Class.create(SYJModalClass, { }, success: function(transport) { - if (transport.responseText === "1") { - LoginMgr.login(true); - } else { - LoginMgr.login(); + if (!transport.responseJSON || + typeof transport.responseJSON.iscreator !== "boolean" || + typeof transport.responseJSON.pseudo !== "string" + ) { + 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); + }); + }); SYJView.messenger.setMessage(SyjStrings.loginSuccess, "success"); this.modalbox.hide(); if (SYJView.needsFormResubmit) { -- 2.39.2