]> dev.renevier.net Git - syj.git/commitdiff
display logged user pseudo in footer
authorarno <arno@renevier.net>
Sat, 14 Aug 2010 22:31:03 +0000 (00:31 +0200)
committerarno <arno@renevier.net>
Sun, 15 Aug 2010 13:07:01 +0000 (15:07 +0200)
application/controllers/LoginController.php
application/layouts/scripts/footer.phtml
application/views/helpers/FooterLink.php
public/js/syj.js

index 495c27c408b38939ddc861047cd75be9ca0c5d3f..ed1514f1ec85ce1b776802b07a55fc8c8f63e1e8 100644 (file)
@@ -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();
         }
index cce5e7fce79304c1d92debe6f9f563e6a83ab835..f2c1b13e85483ae9ef8c6d2246660cd7dbfd1768 100644 (file)
@@ -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)"
+        );
 }
 
 /*
index 50a2f0b8abde8b2accf8c8db030fc9503a20a181..d108b8f270fb4dcb8b1fa0ae124838618a30bb20 100644 (file)
@@ -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 '<div class="' . $class . '">' . $link . '</div>' . PHP_EOL;
+        return '<div class="' . $class . '">' . $link . $extratext . '</div>' . PHP_EOL;
     }
 }
 
index 81fbc7aa97326d88eac364cc04d337b8aac993e1..5a5d5dbedc51d8895e5d80fe11f37b7081aa05fa 100644 (file)
@@ -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) {