]> source.dussan.org Git - nextcloud-server.git/commitdiff
interface and API to change display names
authorBjörn Schießle <schiessle@owncloud.com>
Mon, 28 Jan 2013 13:09:11 +0000 (14:09 +0100)
committerBjörn Schießle <schiessle@owncloud.com>
Mon, 28 Jan 2013 13:09:11 +0000 (14:09 +0100)
lib/user.php
lib/user/backend.php
settings/js/users.js
settings/routes.php
settings/templates/users.php

index 65f899aa27c3bc72a7daa13ba08ce3bd9ca8f43b..b91abd71fe6a2f06e16d316c475452bae8ce34c6 100644 (file)
@@ -269,10 +269,25 @@ class OC_User {
        /**\r
         * @brief Sets user display name for session\r
         */\r
-       private static function setDisplayName($uid) {
-               $_SESSION['display_name'] = self::determineDisplayName($uid);\r
+       public static function setDisplayName($uid, $displayName = null) {
+               $result = false;
+               if ($displayName ) {\r
+                       foreach(self::$_usedBackends as $backend) {\r
+                               if($backend->implementsActions(OC_USER_BACKEND_SET_DISPLAYNAME)) {\r
+                                       if($backend->userExists($uid)) {\r
+                                               $success |= $backend->setDisplayName($uid, $displayName);\r
+                                       }\r
+                               }\r
+                       }
+               } else {
+                       $displayName = self::determineDisplayName($uid);
+                       $result = true;
+               }
+               $_SESSION['display_name'] = $displayName;
+               return result;\r
        }
        
+       
        /**\r
         * @brief get display name\r
         * @param $uid The username\r
index fe37a64cc033b1a276743880d2ad278816c22574..efea622e3122cb97d04597f94e0842e1f46ebe21 100644 (file)
@@ -36,6 +36,7 @@ define('OC_USER_BACKEND_SET_PASSWORD',      0x000010);
 define('OC_USER_BACKEND_CHECK_PASSWORD',    0x000100);
 define('OC_USER_BACKEND_GET_HOME',                     0x001000);
 define('OC_USER_BACKEND_GET_DISPLAYNAME',      0x010000);
+define('OC_USER_BACKEND_SET_DISPLAYNAME',      0x010000);
 
 
 /**
@@ -52,6 +53,7 @@ abstract class OC_User_Backend implements OC_User_Interface {
                OC_USER_BACKEND_CHECK_PASSWORD => 'checkPassword',
                OC_USER_BACKEND_GET_HOME => 'getHome',
                OC_USER_BACKEND_GET_DISPLAYNAME => 'getDisplayName',
+               OC_USER_BACKEND_SET_DISPLAYNAME => 'setDisplayName',
        );
 
        /**
index fa6f058d923329170e9ba6abee76375a6045506f..835f46f6ed3f4e53c524386966cca1a911c72910 100644 (file)
@@ -300,6 +300,43 @@ $(document).ready(function () {
     $('td.password').live('click', function (event) {
         $(this).children('img').click();
     });
+    
+    $('td.displayName>img').live('click', function (event) {
+        event.stopPropagation();
+        var img = $(this);
+        var uid = img.parent().parent().attr('data-uid');
+        var input = $('<input type="text">');
+        img.css('display', 'none');
+        img.parent().children('span').replaceWith(input);
+        input.focus();
+        input.keypress(function (event) {
+               console.log("event!");
+            if (event.keyCode == 13) {
+               console.log("13");
+                if ($(this).val().length > 0) {
+                       console.log("post");
+                    $.post(
+                        OC.filePath('settings', 'ajax', 'changedisplayname.php'),
+                        {username:uid, displayName:$(this).val()},
+                        function (result) {
+                               console.log("come back!");
+                        }
+                    );
+                    input.blur();
+                } else {
+                    input.blur();
+                }
+            }
+        });
+        input.blur(function () {
+            $(this).replaceWith($(this).val());
+            img.css('display', '');
+        });
+    });
+    $('td.displayName').live('click', function (event) {
+        $(this).children('img').click();
+    });
+    
 
     $('select.quota, select.quota-user').live('change', function () {
         var select = $(this);
index 9b5bf809230cc74b0aa6248d1f76524f05c92558..c9156f9a115050e6cae126e0c3b1879ea104bd8b 100644 (file)
@@ -39,6 +39,8 @@ $this->create('settings_ajax_removegroup', '/settings/ajax/removegroup.php')
        ->actionInclude('settings/ajax/removegroup.php');
 $this->create('settings_ajax_changepassword', '/settings/ajax/changepassword.php')
        ->actionInclude('settings/ajax/changepassword.php');
+$this->create('settings_ajax_changedisplayname', '/settings/ajax/changedisplayname.php')\r
+->actionInclude('settings/ajax/changedisplayname.php');
 // personel
 $this->create('settings_ajax_lostpassword', '/settings/ajax/lostpassword.php')
        ->actionInclude('settings/ajax/lostpassword.php');
index 64dce38ba317f29fe4ea759636ef78fcc711eeba..2ba57fb4a7c699e8724fe872b3ba0c34437d2d47 100644 (file)
@@ -93,7 +93,7 @@ var isadmin = <?php echo $_['isadmin']?'true':'false'; ?>;
                <?php foreach($_["users"] as $user): ?>
                <tr data-uid="<?php echo $user["name"] ?>">
                        <td class="name"><?php echo $user["name"]; ?></td>
-                       <td class="displayName"><?php echo $user["displayName"]; ?> <img class="svg action"
+                       <td class="displayName"><span><?php echo $user["displayName"]; ?></span> <img class="svg action"
                                src="<?php echo image_path('core', 'actions/rename.svg')?>"
                                alt="change display name" title="change display name"/>
                        </td>